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.
This commit is contained in:
Jakub Zych
2026-10-06 01:47:40 +02:00
parent fe069b2a56
commit a9a7a328e6
2763 changed files with 78465 additions and 78434 deletions

View File

@@ -1,4 +1,4 @@
# GSD Agent Reference
# MSD Agent Reference
> Full role cards for 22 primary agents plus concise stubs for 12 advanced/specialized agents (34 shipped agents total). The `agents/` directory and [`docs/INVENTORY.md`](INVENTORY.md) are the authoritative roster; see [Architecture](ARCHITECTURE.md) for context.
@@ -6,7 +6,7 @@
## Overview
GSD uses a multi-agent architecture where thin orchestrators (workflow files) spawn specialized agents with fresh context windows. Each agent has a focused role, limited tool access, and produces specific artifacts.
MSD uses a multi-agent architecture where thin orchestrators (workflow files) spawn specialized agents with fresh context windows. Each agent has a focused role, limited tool access, and produces specific artifacts.
**Required reading (#3423):** the canonical spawn-block tag is `<required_reading>` on BOTH sides — orchestrators emit it, and gating agents enforce it ("you MUST use the Read tool to load every file listed there before performing any other actions"). The legacy `<files_to_read>` emit-tag is retired and banned repo-wide by `tests/agent-required-reading-consistency.test.cjs`, because a mismatched pair silently disarms the enforcement clause.
@@ -34,13 +34,13 @@ GSD uses a multi-agent architecture where thin orchestrators (workflow files) sp
## Agent Details
### gsd-project-researcher
### msd-project-researcher
**Role:** Researches domain ecosystem before roadmap creation.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-new-project`, `/gsd-new-milestone` |
| **Spawned by** | `/msd-new-project`, `/msd-new-milestone` |
| **Parallelism** | 4 instances (stack, features, architecture, pitfalls) |
| **Tools** | Read, Write, Bash, Grep, Glob, Skill, WebSearch, WebFetch, mcp__context7__*, mcp__plugin_context7_context7__*, mcp__firecrawl__*, mcp__exa__*, mcp__tavily__*, mcp__ref__*, mcp__jina__*, mcp__perplexity__* |
| **Model (balanced)** | Sonnet |
@@ -54,13 +54,13 @@ GSD uses a multi-agent architecture where thin orchestrators (workflow files) sp
---
### gsd-phase-researcher
### msd-phase-researcher
**Role:** Researches how to implement a specific phase before planning.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-plan-phase` |
| **Spawned by** | `/msd-plan-phase` |
| **Parallelism** | 4 instances (same focus areas as project researcher) |
| **Tools** | Read, Write, Edit, Bash, Grep, Glob, Skill, WebSearch, WebFetch, mcp__context7__*, mcp__plugin_context7_context7__*, mcp__firecrawl__*, mcp__exa__*, mcp__tavily__*, mcp__ref__*, mcp__jina__*, mcp__perplexity__* |
| **Model (balanced)** | Sonnet |
@@ -77,13 +77,13 @@ GSD uses a multi-agent architecture where thin orchestrators (workflow files) sp
---
### gsd-ui-researcher
### msd-ui-researcher
**Role:** Produces UI design contracts for frontend phases.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-ui-phase` |
| **Spawned by** | `/msd-ui-phase` |
| **Parallelism** | Single instance |
| **Tools** | Read, Write, Edit, Bash, Grep, Glob, Skill, WebSearch, WebFetch, mcp__context7__*, mcp__plugin_context7_context7__*, mcp__firecrawl__*, mcp__exa__*, mcp__tavily__*, mcp__ref__*, mcp__jina__* |
| **Model (balanced)** | Sonnet |
@@ -99,7 +99,7 @@ GSD uses a multi-agent architecture where thin orchestrators (workflow files) sp
---
### gsd-assumptions-analyzer
### msd-assumptions-analyzer
**Role:** Deeply analyzes codebase for a phase and returns structured assumptions with evidence, confidence levels, and consequences if wrong.
@@ -122,7 +122,7 @@ GSD uses a multi-agent architecture where thin orchestrators (workflow files) sp
---
### gsd-advisor-researcher
### msd-advisor-researcher
**Role:** Researches a single gray area decision during discuss-phase advisor mode and returns a structured comparison table.
@@ -144,13 +144,13 @@ GSD uses a multi-agent architecture where thin orchestrators (workflow files) sp
---
### gsd-research-synthesizer
### msd-research-synthesizer
**Role:** Combines outputs from parallel researchers into a unified summary.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-new-project` (after 4 researchers complete) |
| **Spawned by** | `/msd-new-project` (after 4 researchers complete) |
| **Parallelism** | Single instance (sequential after researchers) |
| **Tools** | Read, Write, Bash, Skill |
| **Model (balanced)** | Sonnet |
@@ -159,13 +159,13 @@ GSD uses a multi-agent architecture where thin orchestrators (workflow files) sp
---
### gsd-planner
### msd-planner
**Role:** Creates executable phase plans with task breakdown, dependency analysis, and goal-backward verification.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-plan-phase`, `/gsd-quick` |
| **Spawned by** | `/msd-plan-phase`, `/msd-quick` |
| **Parallelism** | Single instance |
| **Tools** | Read, Write, Edit, Bash, Glob, Grep, Skill, WebFetch, mcp__context7__*, mcp__plugin_context7_context7__* |
| **Model (balanced)** | Opus |
@@ -186,13 +186,13 @@ GSD uses a multi-agent architecture where thin orchestrators (workflow files) sp
---
### gsd-roadmapper
### msd-roadmapper
**Role:** Creates project roadmaps with phase breakdown and requirement mapping.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-new-project` |
| **Spawned by** | `/msd-new-project` |
| **Parallelism** | Single instance |
| **Tools** | Read, Write, Bash, Glob, Grep, Skill |
| **Model (balanced)** | Sonnet |
@@ -207,13 +207,13 @@ GSD uses a multi-agent architecture where thin orchestrators (workflow files) sp
---
### gsd-executor
### msd-executor
**Role:** Executes GSD plans with atomic commits, deviation handling, and checkpoint protocols.
**Role:** Executes MSD plans with atomic commits, deviation handling, and checkpoint protocols.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-execute-phase`, `/gsd-quick` |
| **Spawned by** | `/msd-execute-phase`, `/msd-quick` |
| **Parallelism** | Multiple (parallel within waves, sequential across waves) |
| **Tools** | Read, Write, Edit, Bash, Grep, Glob, Skill, mcp__context7__*, mcp__plugin_context7_context7__* |
| **Model (balanced)** | Sonnet |
@@ -231,13 +231,13 @@ GSD uses a multi-agent architecture where thin orchestrators (workflow files) sp
---
### gsd-plan-checker
### msd-plan-checker
**Role:** Verifies plans will achieve phase goals before execution.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-plan-phase` (verification loop, max 3 iterations) |
| **Spawned by** | `/msd-plan-phase` (verification loop, max 3 iterations) |
| **Parallelism** | Single instance (iterative) |
| **Tools** | Read, Bash, Glob, Grep, Skill |
| **Disallowed Tools** | Write, Edit, MultiEdit |
@@ -270,13 +270,13 @@ Three further dimensions carry no number: **Verify Command Format Sanity**,
---
### gsd-integration-checker
### msd-integration-checker
**Role:** Verifies cross-phase integration and end-to-end flows.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-audit-milestone` |
| **Spawned by** | `/msd-audit-milestone` |
| **Parallelism** | Single instance |
| **Tools** | Read, Bash, Grep, Glob, Skill |
| **Disallowed Tools** | Write, Edit, MultiEdit |
@@ -286,13 +286,13 @@ Three further dimensions carry no number: **Verify Command Format Sanity**,
---
### gsd-ui-checker
### msd-ui-checker
**Role:** Validates UI-SPEC.md design contracts against quality dimensions.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-ui-phase` (validation loop, max 2 iterations) |
| **Spawned by** | `/msd-ui-phase` (validation loop, max 2 iterations) |
| **Parallelism** | Single instance |
| **Tools** | Read, Bash, Glob, Grep, Skill |
| **Disallowed Tools** | Write, Edit, MultiEdit |
@@ -318,13 +318,13 @@ Three further dimensions carry no number: **Verify Command Format Sanity**,
---
### gsd-verifier
### msd-verifier
**Role:** Verifies phase goal achievement through goal-backward analysis.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-execute-phase` (after all executors complete) |
| **Spawned by** | `/msd-execute-phase` (after all executors complete) |
| **Parallelism** | Single instance |
| **Tools** | Read, Write, Bash, Grep, Glob, Skill |
| **Disallowed Tools** | Edit, MultiEdit |
@@ -335,25 +335,25 @@ Three further dimensions carry no number: **Verify Command Format Sanity**,
**Key behaviors:**
- Checks codebase against phase goals, not just task completion
- PASS/FAIL with specific evidence
- Logs issues for `/gsd-verify-work` to address
- Logs issues for `/msd-verify-work` to address
- Milestone scope filtering: gaps addressed in later phases are marked as "deferred", not reported as failures (v1.32)
- **Test quality audit** (v1.32): verifies that tests prove what they claim by checking for disabled/skipped tests on requirements, circular test patterns (system generating its own expected values), assertion strength (existence vs. value vs. behavioral), and expected value provenance. Blockers from test quality audit override an otherwise passing verification
- Runs the full workspace test suite at most once per verification — proves a test *exists* by enumeration and that it *passes* via a single named test, never re-running the whole suite per must-have.
- **Behavior-dependent calibration (#966):** a must-have that asserts a state transition or a cancellation/cleanup/ordering invariant is marked `⚠️ PRESENT_BEHAVIOR_UNVERIFIED` (not `VERIFIED`) when no test exercises it — excluded from the `verified_truths` score, counted in the `behavior_unverified` frontmatter field, and routed to human verification, so a clean `N/N` certifies behavioral evidence rather than mere symbol presence.
- **Coincidental-reliance advisory (#1955):** a truth that reaches `✓ VERIFIED` is additionally asked *why* it holds. When the recorded evidence shows the truth holding for an incidental reason — `undeclared-precondition`, `incidental-ordering`, or `fixture-only` — the verdict is qualified as `✓ VERIFIED (coincidental-reliance)` and the truth is listed in the `coincidental_reliance_items` frontmatter field with what to harden. This is **advisory**: the base `✓ VERIFIED` token is unchanged, the truth still counts toward `verified_truths`, the overall `status` is unaffected, and no human-verification item is emitted — a passing phase still passes. It classifies evidence the verifier already gathered rather than asking it to rate its own confidence — but it is honestly an **endogenous** check, and `gsd-core/references/honest-verifier.md` records that endogenous gates are measurably weaker than the exogenous `backstop` tag it routes on. Advisory status is the consequence, not a coincidence: a miss costs exactly today's behaviour (a plain `✓ VERIFIED`) and a false positive costs one line of prose, never a failed phase, so a weaker mechanism is affordable here in a way it would not be on a pass/fail axis. Its precision is unmeasured. It complements the two existing axes: `PRESENT_BEHAVIOR_UNVERIFIED` is *no* behavioral evidence, `insufficient_spec` is an under-specified truth, and this is evidence that exists and passes for the wrong reason.
- **Coincidental-reliance advisory (#1955):** a truth that reaches `✓ VERIFIED` is additionally asked *why* it holds. When the recorded evidence shows the truth holding for an incidental reason — `undeclared-precondition`, `incidental-ordering`, or `fixture-only` — the verdict is qualified as `✓ VERIFIED (coincidental-reliance)` and the truth is listed in the `coincidental_reliance_items` frontmatter field with what to harden. This is **advisory**: the base `✓ VERIFIED` token is unchanged, the truth still counts toward `verified_truths`, the overall `status` is unaffected, and no human-verification item is emitted — a passing phase still passes. It classifies evidence the verifier already gathered rather than asking it to rate its own confidence — but it is honestly an **endogenous** check, and `msd-core/references/honest-verifier.md` records that endogenous gates are measurably weaker than the exogenous `backstop` tag it routes on. Advisory status is the consequence, not a coincidence: a miss costs exactly today's behaviour (a plain `✓ VERIFIED`) and a false positive costs one line of prose, never a failed phase, so a weaker mechanism is affordable here in a way it would not be on a pass/fail axis. Its precision is unmeasured. It complements the two existing axes: `PRESENT_BEHAVIOR_UNVERIFIED` is *no* behavioral evidence, `insufficient_spec` is an under-specified truth, and this is evidence that exists and passes for the wrong reason.
The advisory is carried by two surfaces. `agents/gsd-verifier.md` (Step 3, sub-step 5c) holds the detection rule, and the verifier's eagerly-imported `gsd-core/references/verifier-phase-gates.md` points at the canonical report template `@~/.claude/gsd-core/templates/verification-report.md`, whose `## Guidelines` carry the same instruction. (The former third surface, the retired `verify-phase` workflow, was deleted as an orphan in #1892 — every verification path is subagent-shaped today.)
- **Convergence evidence gate (#3304):** during re-verification (after a `/gsd-plan-phase --gaps` cycle), Step 7's anti-pattern scan re-runs at full, unbounded scope — by design — but a 🛑 Blocker it finds no longer auto-reverts a completed gap-closure round on its own judgment alone. A blocker other than the self-evidencing debt-marker check (`TBD`/`FIXME`/`XXX`) blocks unconditionally only if it is a carried-forward gap from the prior `VERIFICATION.md` or its file was git-modified since the prior pass (a regression, fail-closed toward blocking when history is unresolvable); otherwise it predates the gap-closure round unflagged and needs deterministic evidence — a named test run red, or another concrete reproducible artifact — to stay blocking. Unevidenced, it downgrades to the `advisory:` frontmatter list and the report's "Advisory (New Scope, Unevidenced)" section instead of setting `status: gaps_found`. Full algorithm in `gsd-core/references/verifier-evidence-gate.md`.
The advisory is carried by two surfaces. `agents/msd-verifier.md` (Step 3, sub-step 5c) holds the detection rule, and the verifier's eagerly-imported `msd-core/references/verifier-phase-gates.md` points at the canonical report template `@~/.claude/msd-core/templates/verification-report.md`, whose `## Guidelines` carry the same instruction. (The former third surface, the retired `verify-phase` workflow, was deleted as an orphan in #1892 — every verification path is subagent-shaped today.)
- **Convergence evidence gate (#3304):** during re-verification (after a `/msd-plan-phase --gaps` cycle), Step 7's anti-pattern scan re-runs at full, unbounded scope — by design — but a 🛑 Blocker it finds no longer auto-reverts a completed gap-closure round on its own judgment alone. A blocker other than the self-evidencing debt-marker check (`TBD`/`FIXME`/`XXX`) blocks unconditionally only if it is a carried-forward gap from the prior `VERIFICATION.md` or its file was git-modified since the prior pass (a regression, fail-closed toward blocking when history is unresolvable); otherwise it predates the gap-closure round unflagged and needs deterministic evidence — a named test run red, or another concrete reproducible artifact — to stay blocking. Unevidenced, it downgrades to the `advisory:` frontmatter list and the report's "Advisory (New Scope, Unevidenced)" section instead of setting `status: gaps_found`. Full algorithm in `msd-core/references/verifier-evidence-gate.md`.
---
### gsd-nyquist-auditor
### msd-nyquist-auditor
**Role:** Fills Nyquist validation gaps by generating tests.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-validate-phase` |
| **Spawned by** | `/msd-validate-phase` |
| **Parallelism** | Single instance |
| **Tools** | Read, Write, Edit, Bash, Glob, Grep, Skill |
| **Model (balanced)** | Sonnet |
@@ -367,13 +367,13 @@ Three further dimensions carry no number: **Verify Command Format Sanity**,
---
### gsd-ui-auditor
### msd-ui-auditor
**Role:** Retroactive 6-pillar visual audit of implemented frontend code.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-ui-review` |
| **Spawned by** | `/msd-ui-review` |
| **Parallelism** | Single instance |
| **Tools** | Read, Write, Bash, Grep, Glob, Skill |
| **Disallowed Tools** | Edit, MultiEdit |
@@ -393,7 +393,7 @@ Three further dimensions carry no number: **Verify Command Format Sanity**,
**Interaction capture (default-off).** The static screenshots are three viewport captures of
the first paint, taken with `npx playwright screenshot`, which has no interaction verb — so a
hover state, an open menu, a focus ring or a form's validation state never appears in them.
With `workflow.ui_interaction_capture` on, `/gsd-ui-review` passes `interaction_capture: true`
With `workflow.ui_interaction_capture` on, `/msd-ui-review` passes `interaction_capture: true`
in the auditor's `<config>` block and the auditor adds post-interaction captures through the
`chrome-devtools` CLI (the second binary in the `chrome-devtools-mcp` package), driven from
`Bash` against a throwaway `--isolated` profile: no MCP server, no `tools:` change. It needs an
@@ -405,7 +405,7 @@ observed. See [Enable UI interaction capture](how-to/enable-ui-interaction-captu
---
### gsd-dom-verifier
### msd-dom-verifier
**Role:** Observes a live DOM and reports which of a wave's stated UI acceptance criteria hold. Additive — never blocks.
@@ -420,7 +420,7 @@ observed. See [Enable UI interaction capture](how-to/enable-ui-interaction-captu
| **Produces** | `{phase}-DOM-VERIFY.md` |
| **Gated by** | `workflow.live_dom_uat` (default `false`) |
This is the **only** GSD agent carrying browser MCP tools. `gsd-executor` is deliberately not widened — for a first-party agent the static `tools:` list is the only control that exists ([ADR-1244](adr/1244-capability-ecosystem.md) D2, [ADR-857](adr/857-capability-system.md) D4). It carries no `Bash`: it does not start dev servers or shell out.
This is the **only** MSD agent carrying browser MCP tools. `msd-executor` is deliberately not widened — for a first-party agent the static `tools:` list is the only control that exists ([ADR-1244](adr/1244-capability-ecosystem.md) D2, [ADR-857](adr/857-capability-system.md) D4). It carries no `Bash`: it does not start dev servers or shell out.
**Outcome codes** (`nothing_to_report` and `could_not_look` are never conflated):
@@ -436,13 +436,13 @@ This is the **only** GSD agent carrying browser MCP tools. `gsd-executor` is del
---
### gsd-codebase-mapper
### msd-codebase-mapper
**Role:** Explores codebase and writes structured analysis documents.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-map-codebase`, post-execute drift gate in `/gsd-execute-phase` |
| **Spawned by** | `/msd-map-codebase`, post-execute drift gate in `/msd-execute-phase` |
| **Parallelism** | 4 instances (tech, architecture, quality, concerns) |
| **Tools** | Read, Bash, Grep, Glob, Write, Skill |
| **Model (balanced)** | Haiku |
@@ -464,13 +464,13 @@ runs its default whole-repo scan.
---
### gsd-debugger
### msd-debugger
**Role:** Investigates bugs using scientific method with persistent state.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-debug`, `/gsd-verify-work` (for failures) |
| **Spawned by** | `/msd-debug`, `/msd-verify-work` (for failures) |
| **Parallelism** | Single instance (interactive) |
| **Tools** | Read, Write, Edit, Bash, Grep, Glob, Skill, WebSearch |
| **Model (balanced)** | Sonnet |
@@ -496,13 +496,13 @@ runs its default whole-repo scan.
---
### gsd-user-profiler
### msd-user-profiler
**Role:** Analyzes session messages across 8 behavioral dimensions to produce a scored developer profile.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-profile-user` |
| **Spawned by** | `/msd-profile-user` |
| **Parallelism** | Single instance |
| **Tools** | Read |
| **Model (balanced)** | Sonnet |
@@ -519,13 +519,13 @@ Communication style, decision patterns, debugging approach, UX preferences, vend
---
### gsd-doc-writer
### msd-doc-writer
**Role:** Writes and updates project documentation. Spawned with a doc_assignment block specifying doc type, mode, and project context.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-docs-update` |
| **Spawned by** | `/msd-docs-update` |
| **Parallelism** | Multiple instances (one per doc type) |
| **Tools** | Read, Bash, Grep, Glob, Write, Edit, Skill |
| **Model (balanced)** | Sonnet |
@@ -536,18 +536,18 @@ Communication style, decision patterns, debugging approach, UX preferences, vend
- Supports modes: create, update, supplement, fix
- Handles doc types: readme, architecture, getting_started, development, testing, api, configuration, deployment, contributing, custom
- Monorepo-aware: can generate per-package READMEs
- Fix mode accepts failure objects from gsd-doc-verifier for targeted corrections
- Fix mode accepts failure objects from msd-doc-verifier for targeted corrections
- Writes directly to disk — does not return content to orchestrator
---
### gsd-doc-verifier
### msd-doc-verifier
**Role:** Verifies factual claims in generated documentation against the live codebase.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-docs-update` (after doc-writer completes) |
| **Spawned by** | `/msd-docs-update` (after doc-writer completes) |
| **Parallelism** | Multiple instances (one per doc file) |
| **Tools** | Read, Write, Bash, Grep, Glob |
| **Disallowed Tools** | Edit, MultiEdit |
@@ -563,13 +563,13 @@ Communication style, decision patterns, debugging approach, UX preferences, vend
---
### gsd-security-auditor
### msd-security-auditor
**Role:** Verifies threat mitigations from PLAN.md threat model exist in implemented code.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-secure-phase` |
| **Spawned by** | `/msd-secure-phase` |
| **Parallelism** | Single instance |
| **Tools** | Read, Bash, Glob, Grep, Skill |
| **Model (balanced)** | Sonnet |
@@ -587,15 +587,15 @@ Communication style, decision patterns, debugging approach, UX preferences, vend
## Advanced and Specialized Agents
Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty workflows (`/gsd-ai-integration-phase`, `/gsd-eval-review`, `/gsd-code-review`, `/gsd-code-review --fix`, `/gsd-debug`, `/gsd-map-codebase --query`, `/gsd-ingest-docs`) and by the planner pipeline. Each carries full frontmatter in its agent file; the stubs below are concise by design. The authoritative roster (with spawner and primary-doc status per agent) lives in [`docs/INVENTORY.md`](INVENTORY.md).
Twelve additional agents ship under `agents/msd-*.md` and are used by specialty workflows (`/msd-ai-integration-phase`, `/msd-eval-review`, `/msd-code-review`, `/msd-code-review --fix`, `/msd-debug`, `/msd-map-codebase --query`, `/msd-ingest-docs`) and by the planner pipeline. Each carries full frontmatter in its agent file; the stubs below are concise by design. The authoritative roster (with spawner and primary-doc status per agent) lives in [`docs/INVENTORY.md`](INVENTORY.md).
### gsd-pattern-mapper
### msd-pattern-mapper
**Role:** Read-only codebase analysis that maps files-to-be-created or modified to their closest existing analogs, producing `PATTERNS.md` for the planner to consume.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-plan-phase` (between research and planning) |
| **Spawned by** | `/msd-plan-phase` (between research and planning) |
| **Parallelism** | Single instance |
| **Tools** | Read, Bash, Glob, Grep, Write |
| **Model (balanced)** | Sonnet |
@@ -609,13 +609,13 @@ Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty
---
### gsd-debug-session-manager
### msd-debug-session-manager
**Role:** Runs the full `/gsd-debug` checkpoint-and-continuation loop in an isolated context so the orchestrator's main context stays lean; spawns `gsd-debugger` agents, dispatches specialist skills, and handles user checkpoints via AskUserQuestion.
**Role:** Runs the full `/msd-debug` checkpoint-and-continuation loop in an isolated context so the orchestrator's main context stays lean; spawns `msd-debugger` agents, dispatches specialist skills, and handles user checkpoints via AskUserQuestion.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-debug` |
| **Spawned by** | `/msd-debug` |
| **Parallelism** | Single instance (interactive, stateful) |
| **Tools** | Read, Write, Edit, Bash, Grep, Glob, Agent, AskUserQuestion |
| **Model (balanced)** | Sonnet |
@@ -629,13 +629,13 @@ Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty
---
### gsd-code-reviewer
### msd-code-reviewer
**Role:** Reviews source files for bugs, security vulnerabilities, and code-quality problems; produces a structured `REVIEW.md` with severity-classified findings.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-code-review` |
| **Spawned by** | `/msd-code-review` |
| **Parallelism** | Typically single instance per review scope |
| **Tools** | Read, Write, Bash, Grep, Glob, Skill |
| **Model (balanced)** | Sonnet |
@@ -651,13 +651,13 @@ Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty
---
### gsd-code-fixer
### msd-code-fixer
**Role:** Applies fixes to findings from `REVIEW.md` with intelligent (non-blind) patching and atomic per-fix commits; produces `REVIEW-FIX.md`.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-code-review --fix` |
| **Spawned by** | `/msd-code-review --fix` |
| **Parallelism** | Single instance |
| **Tools** | Read, Edit, Write, Bash, Grep, Glob, Skill |
| **Model (balanced)** | Sonnet |
@@ -671,13 +671,13 @@ Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty
---
### gsd-ai-researcher
### msd-ai-researcher
**Role:** Researches a chosen AI/LLM framework's official documentation and distills it into implementation-ready guidance — framework quick reference, patterns, and pitfalls — for the Section 3–4b body of `AI-SPEC.md`.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-ai-integration-phase` |
| **Spawned by** | `/msd-ai-integration-phase` |
| **Parallelism** | Single instance (sequential with domain-researcher / eval-planner) |
| **Tools** | Read, Write, Edit, Bash, Grep, Glob, WebFetch, WebSearch, mcp__context7__*, mcp__plugin_context7_context7__* |
| **Model (balanced)** | Sonnet |
@@ -690,13 +690,13 @@ Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty
---
### gsd-domain-researcher
### msd-domain-researcher
**Role:** Surfaces the business-domain and real-world evaluation context for an AI system — expert rubric ingredients, failure modes, regulatory context — before the eval-planner turns it into measurable rubrics. Writes Section 1b of `AI-SPEC.md`.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-ai-integration-phase` |
| **Spawned by** | `/msd-ai-integration-phase` |
| **Parallelism** | Single instance |
| **Tools** | Read, Write, Edit, Bash, Grep, Glob, WebSearch, WebFetch, mcp__context7__*, mcp__plugin_context7_context7__* |
| **Model (balanced)** | Sonnet |
@@ -709,20 +709,20 @@ Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty
---
### gsd-eval-planner
### msd-eval-planner
**Role:** Designs the structured evaluation strategy for an AI phase — failure modes, eval dimensions with rubrics, tooling, reference dataset, guardrails, production monitoring. Writes Sections 5–7 of `AI-SPEC.md`.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-ai-integration-phase` |
| **Spawned by** | `/msd-ai-integration-phase` |
| **Parallelism** | Single instance (sequential after domain-researcher) |
| **Tools** | Read, Write, Edit, Bash, Grep, Glob, AskUserQuestion |
| **Model (balanced)** | Sonnet |
| **Color** | Orange |
| **Produces** | Sections 5–7 of `AI-SPEC.md` (Evaluation Strategy, Guardrails, Production Monitoring) |
**Required reading:** `gsd-core/references/ai-evals.md` (evaluation framework).
**Required reading:** `msd-core/references/ai-evals.md` (evaluation framework).
**Key behaviors:**
- Turns domain-researcher rubric ingredients into measurable, tooled evaluation criteria
@@ -730,13 +730,13 @@ Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty
---
### gsd-eval-auditor
### msd-eval-auditor
**Role:** Retroactive audit of an implemented AI phase's evaluation coverage against its planned `AI-SPEC.md` eval strategy. Scores each eval dimension `COVERED` / `PARTIAL` / `MISSING` and produces `EVAL-REVIEW.md`.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-eval-review` |
| **Spawned by** | `/msd-eval-review` |
| **Parallelism** | Single instance |
| **Tools** | Read, Write, Bash, Grep, Glob, Skill |
| **Disallowed Tools** | Edit, MultiEdit |
@@ -744,7 +744,7 @@ Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty
| **Color** | Red |
| **Produces** | `EVAL-REVIEW.md` with dimension scores, findings, and remediation guidance |
**Required reading:** `gsd-core/references/ai-evals.md`.
**Required reading:** `msd-core/references/ai-evals.md`.
**Key behaviors:**
- Compares the implemented codebase against the planned eval strategy — never re-plans
@@ -752,20 +752,20 @@ Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty
---
### gsd-framework-selector
### msd-framework-selector
**Role:** Interactive decision-matrix agent that runs a ≤6-question interview, scores candidate AI/LLM frameworks, and returns a ranked recommendation with rationale.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-ai-integration-phase` |
| **Spawned by** | `/msd-ai-integration-phase` |
| **Parallelism** | Single instance (interactive) |
| **Tools** | Read, Bash, Grep, Glob, WebSearch, AskUserQuestion |
| **Model (balanced)** | Sonnet |
| **Color** | Cyan |
| **Produces** | Scored ranked recommendation (structured return to orchestrator) |
**Required reading:** `gsd-core/references/ai-frameworks.md` (decision matrix).
**Required reading:** `msd-core/references/ai-frameworks.md` (decision matrix).
**Key behaviors:**
- Scans `package.json`, `pyproject.toml`, `requirements*.txt` for existing AI libraries before the interview to avoid recommending a rejected framework
@@ -773,32 +773,32 @@ Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty
---
### gsd-intel-updater
### msd-intel-updater
**Role:** Reads project source and writes structured intel (JSON + Markdown) into `.planning/intel/`, building a queryable codebase knowledge base that other agents use instead of performing expensive fresh exploration.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-map-codebase --query` (refresh / update flows) |
| **Spawned by** | `/msd-map-codebase --query` (refresh / update flows) |
| **Parallelism** | Single instance |
| **Tools** | Read, Write, Bash, Glob, Grep |
| **Model (balanced)** | Sonnet |
| **Color** | Cyan |
| **Produces** | `.planning/intel/*.json` (and companion Markdown) consumed by `gsd-tools query intel` |
| **Produces** | `.planning/intel/*.json` (and companion Markdown) consumed by `msd-tools query intel` |
**Key behaviors:**
- Writes current state only — no temporal language, every claim references an actual file path
- Uses Glob / Read / Grep for cross-platform correctness; Bash is reserved for `gsd-tools query intel` CLI calls
- Uses Glob / Read / Grep for cross-platform correctness; Bash is reserved for `msd-tools query intel` CLI calls
---
### gsd-doc-classifier
### msd-doc-classifier
**Role:** Classifies a single planning document as ADR, PRD, SPEC, DOC, or UNKNOWN. Extracts title, scope summary, and cross-references. Writes a JSON classification file used by `gsd-doc-synthesizer` to build a consolidated context.
**Role:** Classifies a single planning document as ADR, PRD, SPEC, DOC, or UNKNOWN. Extracts title, scope summary, and cross-references. Writes a JSON classification file used by `msd-doc-synthesizer` to build a consolidated context.
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-ingest-docs` (parallel fan-out over the doc corpus) |
| **Spawned by** | `/msd-ingest-docs` (parallel fan-out over the doc corpus) |
| **Parallelism** | One instance per input document |
| **Tools** | Read, Write, Grep, Glob |
| **Model (balanced)** | Haiku |
@@ -812,13 +812,13 @@ Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty
---
### gsd-doc-synthesizer
### msd-doc-synthesizer
**Role:** Synthesizes classified planning docs into a single consolidated context. Applies precedence rules, detects cross-reference cycles, enforces LOCKED-vs-LOCKED hard-blocks, and writes `INGEST-CONFLICTS.md` with three buckets (auto-resolved, competing-variants, unresolved-blockers).
| Property | Value |
|----------|-------|
| **Spawned by** | `/gsd-ingest-docs` (after classifier fan-in) |
| **Spawned by** | `/msd-ingest-docs` (after classifier fan-in) |
| **Parallelism** | Single instance |
| **Tools** | Read, Write, Grep, Glob, Bash |
| **Model (balanced)** | Sonnet |
@@ -827,12 +827,12 @@ Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty
**Key behaviors:**
- Hard-blocks on LOCKED-vs-LOCKED ADR contradictions instead of silently picking a winner
- Follows the `references/doc-conflict-engine.md` contract so `/gsd-import` and `/gsd-ingest-docs` produce consistent conflict reports
- Follows the `references/doc-conflict-engine.md` contract so `/msd-import` and `/msd-ingest-docs` produce consistent conflict reports
- **Extraction discipline (#1578):** few-shot exemplars plus a terminal schema restatement and a mark-absent (no-fabrication) rule for missing fields.
---
### gsd-mempalace-curator
### msd-mempalace-curator
**Role:** Ship-time memory curation — writes per-agent diary entries, proposes and creates cross-project tunnels, runs wing-scoped sync pruning, and mirrors `extract-learnings` output into MemPalace's temporal knowledge graph with provenance.
@@ -855,7 +855,7 @@ Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty
## Agent Tool Permissions Summary
> **Scope:** this table covers the 22 primary agents only. The 13 advanced/specialized agents listed above carry their own tool surfaces in their `agents/gsd-*.md` frontmatter (summarized in the per-agent stubs above and in [`docs/INVENTORY.md`](INVENTORY.md)).
> **Scope:** this table covers the 22 primary agents only. The 13 advanced/specialized agents listed above carry their own tool surfaces in their `agents/msd-*.md` frontmatter (summarized in the per-agent stubs above and in [`docs/INVENTORY.md`](INVENTORY.md)).
| Agent | Read | Write | Edit | Bash | Grep | Glob | WebSearch | WebFetch | MCP |
|-------|------|-------|------|------|------|------|-----------|----------|-----|
@@ -889,7 +889,7 @@ Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty
## Completion Contracts (machine-enforced)
Every agent's return contract is declared in [`gsd-core/references/agent-contracts.md`](../gsd-core/references/agent-contracts.md)'s **Agent Registry** table — `(Agent, Completion Markers, Consumed by, Kind)` — and enforced by `npm run check:contract-drift` (part of `lint:ci`).
Every agent's return contract is declared in [`msd-core/references/agent-contracts.md`](../msd-core/references/agent-contracts.md)'s **Agent Registry** table — `(Agent, Completion Markers, Consumed by, Kind)` — and enforced by `npm run check:contract-drift` (part of `lint:ci`).
The `Kind` column records how a caller actually detects the agent's completion:
@@ -899,7 +899,7 @@ The `Kind` column records how a caller actually detects the agent's completion:
| `artifact+query` | The agent writes a file; the caller reads or queries that artifact |
| `structured-return` | The agent returns parseable sections/JSON inline; the caller reads the return text |
When you add an agent or change what it returns, update its registry row in the same change — a stale row is a build failure, not a documentation cleanup for later. Markers are extracted **fence-aware** (a heading inside a fenced block is the emitted template; the same words outside a fence are prose documentation), producer scope includes `@`-included `gsd-core/references/**` files, and consumers are matched **exact-case** (a case-insensitive hit is reported as a collision, never accepted). A marker that is deliberately emitted but matched by nothing carries an `(unconsumed: <reason>)` annotation — an auditable exemption that waives only the consumer requirement.
When you add an agent or change what it returns, update its registry row in the same change — a stale row is a build failure, not a documentation cleanup for later. Markers are extracted **fence-aware** (a heading inside a fenced block is the emitted template; the same words outside a fence are prose documentation), producer scope includes `@`-included `msd-core/references/**` files, and consumers are matched **exact-case** (a case-insensitive hit is reported as a collision, never accepted). A marker that is deliberately emitted but matched by nothing carries an `(unconsumed: <reason>)` annotation — an auditable exemption that waives only the consumer requirement.
The same check also enforces the read-tag pairing: whenever a declared consumer emits `<required_reading>`, the producing agent's instructions must reference the gate (directly or via an `@`-included reference) — and the retired `<files_to_read>` vocabulary may not reappear under `workflows/`, `commands/`, or `agents/`.