Files
msd-core/docs/how-to/drive-msd-from-a-tracker-issue.md
Jakub Zych a9a7a328e6 refactor: hard-fork GSD -> MSD (Make Software Done)
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.
2026-10-06 01:47:40 +02:00

177 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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)