name: mspec-implement description: implement step of mspec workflow — write code/tests with TDD red→green and anchors when_to_use: User runs /mspec:implement, or workflow auto-continues to implement
Procedure
- Run
mspec status --change <change-dir> --jsonfirst. - Read
tasks.md. - For each task in dependency order:
- Copy its 3-line
anchor:block to the head of the target file (within the first 10 lines, language-appropriate comment). - If it is an E2E test task: write the failing test, then run
mspec test --expect-red <task-id> --change <change-dir>to record red evidence. - If it is an implementation task: implement the code, then run
mspec test --expect-green <task-id> --change <change-dir>to record green evidence. - After
--expect-greenis recorded, read the task's anchorRequirements implemented: FR-NNNlist. For each FR-NNN, scanchecklist.mdand update any- [ ] ... <!-- verify: fr-NNN -->lines to- [x] ... <!-- verify: fr-NNN -->(idempotent: skip lines already- [x]; skip if no matching annotation found — checklist.md remains unchanged). - After
--expect-greenis recorded (全テスト GREEN の場合のみ)、tasks.mdの当該タスク行- [ ] TNNN: …を- [x] TNNN: …に更新する(冪等: すでに- [x]の行は変更しない)。 3a. max_iterations エスカレーション(FR-025): 各タスクで TDD red→green サイクルを試みる際、mspec schema showでmax_iterationsを読み込む。同一タスクで green がmax_iterations回連続して失敗した場合は以下を実行する:
design.md末尾に以下のセクションを追記する(既存セクションには触れない):## Escalation Summary - Task: <task-id> - Iterations: <n> / <max_iterations> - Reason: <失敗理由の要約(テストエラー・設計上の矛盾点)> - Recommendation: 設計変更 | 仕様見直し | 環境確認- AskUserQuestion でユーザーに判断を委ねる(「設計を変更しますか?仕様を見直しますか?」)。ユーザーの回答に従い継続または中断する。
- Copy its 3-line
- Use AskUserQuestion if any decision deviates from
design.md. 4a. critical FR の verify: human 未達警告(verify-routing FR-004):--expect-green記録後、checklist.md にrisk_tier: criticalの FR に対応する<!-- verify: human -->未チェック項目が残っている場合、以下の警告を出力して処理を継続する(エラー停止はしない):Warning: FR-NNN (critical) requires human review. Mark as verify: human before archive. - After all tasks complete, scan
checklist.mdfor remaining unchecked items and report:verify: human未チェック項目あり → 一覧をユーザーに提示し、人間レビューを要求してブロックする(block)verify: fr-NNN未チェック項目あり(gap)→ 対象 FR 番号とギャップ(tasks.md のRequirements implementedアンカーに対応 FR が存在しない)を警告し、ユーザーの確認を待つ(警告 + block)- 未チェック項目ゼロ → 実装完了を宣言(block なし)
- After all tasks:
- Run
mspec anchor check --change <change-dir>(must pass;enforce_anchor: true). - Run
mspec validate --change <change-dir>(checksenforce_e2eandenforce_tdd).
- Run
block: true— stop and ask the user to run/mspec:continue.
Verification (C2)
mspec test expect-green <task-id> --change <change>— TDD green確認mspec validate --change <change>— アーティファクト整合性チェックmspec anchor check --change <change>— アンカー解決確認mspec validate --change <change> --strict— enforce_anchor / enforce_tdd 確認
Learning (C3)
このスキルの実行で発生した学習候補を記録する:
<!-- LEARNING: <パターン説明> | source: <FR-ID> | confidence: low|medium|high -->
mspec learn コマンドが archive 済み changes からこれらを収集してpost-condition候補をproposeする。