Mechanical rename produced by scripts/msd-rename.cjs: gsd/Gsd/GSD -> msd/Msd/MSD across contents and paths, upstream package/repo coordinates -> @golem15/msd-core and golem15com/msd-core. Deep links into upstream history, sibling upstream packages, the GSD-2 import feature, CHANGELOG.md and .changeset/ are kept as-is. Hand edits on top: MSD block-letter banner and logos, LICENSE copyright line, package/plugin identity, regenerated lockfile, install-tree fixtures, derived registries and benchmark baseline; migration checksum baseline re-locked (MSD keeps its own install state, so no install had applied the old sums); sort-order and regex-escaped expectations in tests adjusted.
177 lines
5.5 KiB
Markdown
177 lines
5.5 KiB
Markdown
# How to drive MSD Core from a tracker issue
|
||
|
||
**Goal:** Take a single well-scoped GitHub, Linear, or Jira issue through the full MSD pipeline — from isolated workspace to merged PR — using only commands that already exist in MSD Core, with no custom scripts or tracker integrations.
|
||
|
||
**Prerequisites:** MSD Core is installed. The issue has bounded scope, observable acceptance criteria, and no upstream blockers.
|
||
|
||
For the concepts and design rationale behind this pattern, see [Issue-driven orchestration explained](../issue-driven-orchestration.md).
|
||
|
||
---
|
||
|
||
## Step 1: Map the issue to a phase
|
||
|
||
Open your tracker issue and decide how it maps onto `ROADMAP.md`:
|
||
|
||
- **Issue matches an existing phase** → note the phase number and move to Step 2.
|
||
- **Issue is standalone new work** → add a phase:
|
||
|
||
```bash
|
||
/msd-phase "Description matching the issue title"
|
||
```
|
||
|
||
- **Issue is urgent and must slot between existing phases** → insert a decimal phase:
|
||
|
||
```bash
|
||
/msd-phase --insert 3 "Fix: description from issue"
|
||
```
|
||
|
||
Copy the tracker issue URL. You will paste it into `CONTEXT.md` in Step 3 so traceability survives context compaction.
|
||
|
||
---
|
||
|
||
## Step 2: Create an isolated workspace
|
||
|
||
Every issue gets its own workspace — a git worktree with an independent `.planning/` directory. Partial work, aborted plans, and exploratory commits stay outside `main`.
|
||
|
||
```bash
|
||
/msd-workspace --new --name my-issue-slug --repos . --strategy worktree
|
||
```
|
||
|
||
Switch into the workspace directory before continuing:
|
||
|
||
```bash
|
||
cd ~/msd-workspaces/my-issue-slug
|
||
```
|
||
|
||
---
|
||
|
||
## Step 3: Discuss the phase
|
||
|
||
Run discuss-phase to lock in implementation decisions before any planning happens. When the session opens, paste the tracker issue URL into the discussion so it is captured in `CONTEXT.md`.
|
||
|
||
```bash
|
||
/msd-discuss-phase N
|
||
```
|
||
|
||
MSD asks about ambiguities in the issue scope — error handling, edge cases, interface contracts, technology choices. Your answers shape the plan that follows.
|
||
|
||
If you already know all the answers and want to move quickly:
|
||
|
||
```bash
|
||
/msd-discuss-phase N --auto
|
||
```
|
||
|
||
---
|
||
|
||
## Step 4: Plan the phase
|
||
|
||
```bash
|
||
/msd-plan-phase N
|
||
```
|
||
|
||
MSD spawns research agents, reads your `CONTEXT.md` decisions (including the issue URL), and produces atomic `PLAN.md` files. A plan-checker validates each plan before saving.
|
||
|
||
If you want peer review from external AI CLIs before execution (recommended for significant changes):
|
||
|
||
```bash
|
||
/msd-review --phase N
|
||
/msd-plan-phase N --reviews
|
||
```
|
||
|
||
Or run the full plan–review–converge loop until no HIGH concerns remain:
|
||
|
||
```bash
|
||
/msd-plan-review-convergence N
|
||
```
|
||
|
||
---
|
||
|
||
## Step 5: Execute the phase
|
||
|
||
For interactive, phase-at-a-time execution:
|
||
|
||
```bash
|
||
/msd-execute-phase N
|
||
```
|
||
|
||
For a hands-off run through all remaining phases:
|
||
|
||
```bash
|
||
/msd-autonomous
|
||
```
|
||
|
||
For an interactive dashboard where you can watch progress and dispatch work across phases:
|
||
|
||
```bash
|
||
/msd-manager
|
||
```
|
||
|
||
All three approaches update `STATE.md`, commit each task atomically, and run the post-phase verifier.
|
||
|
||
---
|
||
|
||
## Step 6: Verify the work
|
||
|
||
```bash
|
||
/msd-verify-work N
|
||
```
|
||
|
||
MSD walks you through the acceptance criteria from the phase goal (which reflects your tracker issue) one at a time. If anything fails, MSD diagnoses the root cause and creates a fix plan. Re-run execute and re-verify until all checks pass.
|
||
|
||
Treat `verification_failed` as a blocker even when the code looks correct — the failure usually surfaces a missed acceptance criterion from the original issue.
|
||
|
||
---
|
||
|
||
## Step 7: Review and ship
|
||
|
||
Run a code review before opening the PR:
|
||
|
||
```bash
|
||
/msd-code-review N
|
||
/msd-code-review N --fix
|
||
```
|
||
|
||
Then create the PR:
|
||
|
||
```bash
|
||
/msd-ship N
|
||
```
|
||
|
||
MSD assembles the PR body from your planning artifacts: phase goal, changes summary, requirements addressed, verification status, and key decisions. Include `Closes #NNN` or `Fixes #NNN` in the PR body (or set it via `/msd-config`) so the tracker issue closes automatically when the PR merges.
|
||
|
||
---
|
||
|
||
## Step 8: Capture follow-up work
|
||
|
||
As you work through the issue you will often discover related work. Capture it without losing context:
|
||
|
||
```bash
|
||
/msd-capture "Follow-up: description of discovered work" # Add as a todo
|
||
/msd-capture --seed "Idea worth a future phase" # Preserve for the next milestone
|
||
/msd-capture --backlog "Not urgent but worth tracking" # Park in the backlog
|
||
```
|
||
|
||
MSD does not post to your tracker automatically. Creating a tracker issue from captured follow-ups is a separate manual step — this keeps human review in the loop.
|
||
|
||
---
|
||
|
||
## Conditionals
|
||
|
||
| Situation | What to do |
|
||
|-----------|-----------|
|
||
| Issue is very small (typo, config change) | Skip workspace + discuss + plan; use `/msd-quick` instead |
|
||
| Issue has multiple independent sub-tasks | Use `/msd-manager` to parallelise execution across plans |
|
||
| Issue is blocked on another issue | Do not start until the upstream blocker is resolved; MSD has no automatic dependency poller |
|
||
| Issue scope turns out larger than expected mid-execution | Stop, run `/msd-phase --insert N` to add sub-phases, continue |
|
||
| You want to skip the interactive discussion | Use `--auto` flag with `/msd-discuss-phase`, or set `workflow.skip_discuss: true` for project-wide automation |
|
||
| Multiple issues form a coherent release | Run `/msd-new-milestone` to group them and `/msd-autonomous` to execute in sequence |
|
||
|
||
---
|
||
|
||
## Related
|
||
|
||
- [Issue-driven orchestration explained](../issue-driven-orchestration.md)
|
||
- [Isolate work with workspaces](isolate-work-with-workspaces.md)
|
||
- [Verify and ship](verify-and-ship.md)
|
||
- [docs index](../README.md)
|