| name | mspec-archive |
| description | archive step of mspec workflow — deterministic merge into SoT spec and archive move |
| when_to_use | User runs /mspec:archive, or workflow auto-continues to archive |
Procedure
- Run
mspec status --change <change-dir> --json and confirm all prior steps are done or skipped.
- Run
mspec archive <change-dir> --dry-run and show the diff to the user.
3b. Read the full content of the change directory — all artifacts (proposal, research, design, design-rationale, checklist, tasks) and the confirmed Delta Spec requirements. Generate a ## Summary (Lessons / Next Steps) section with:
### Lessons — 3-5 bullet points (1-2 lines each) summarizing: what was learned, what worked well, what was surprising, Constitution Check ⚠️/❌ items and their resolution.
### Next Steps — 2-4 bullet points (1 line + related FR-ID link) identifying: follow-up changes needed, open choices left unresolved, RENAMED requirements deferred.
Keep total length ≤ 30 lines / 1,500 characters.
Replace the placeholder comment <!-- archive ステップで AI が生成 --> (or <!-- archive step will auto-fill -->) in changes/<change-dir>/readme.md with this generated content.
This step MUST complete before step 3 (the mspec archive -y call) so that the filled readme is present when the CLI validates and moves the change directory.
- On confirmation, run
mspec archive <change-dir> -y. The CLI:
- Validates the change.
- Parses the Delta Spec sections and applies ADDED / MODIFIED / REMOVED / RENAMED to
specs/<capability>/spec.md (no LLM involved).
- Moves
changes/<change-dir>/ → changes/archive/<change-dir>/ via git mv.
- Re-runs
mspec anchor check to confirm anchors still resolve.
3c. [ポストモーテムフック] archive 完了後、以下の 2 フローを順番に実行する。
Lessons 分析フロー:
- アーカイブ済み readme.md のパスを確認する:
changes/archive/<change-dir>/readme.md
### Lessons セクションの存在と内容を確認する
- 空または存在しない場合は「Lessons なし: スキップ」を通知してスキップする
- 存在する場合は
mspec-lessons-analyzer サブエージェントを Agent tool でインライン起動する:
Agent(prompt="...", subagent_type="mspec-lessons-analyzer")
入力: { readme_path: "<絶対パス>" }
- 返ってきた
LessonsProposal[] が空の場合はスキップして通知する
- 空でない場合は AskUserQuestion(multi-select)で全提案を一覧表示する:
Q: constitution.md に追加する原則・制約を選択してください(複数選択可)
Options: 各提案の text と target_section と source_lesson を表示
- ユーザーが承認したエントリのみ
memory/constitution.md の指定セクションに追記する:
target_section = "Core Principles" → ## Core Principles セクション末尾に追記
target_section = "Additional Constraints" → ## Additional Constraints の箇条書き末尾に追記
- MUST NOT: ユーザーが却下したエントリは constitution.md に一切書き込まない
Next Steps 評価フロー:
-
同じ readme.md の ### Next Steps セクションの存在と内容を確認する
-
空または存在しない場合は「Next Steps なし: スキップ」を通知してスキップする
-
存在する場合は mspec-nextaction-planner サブエージェントを Agent tool でインライン起動する:
Agent(prompt="...", subagent_type="mspec-nextaction-planner")
入力: { readme_path: "<絶対パス>" }
-
返ってきた NextActionProposal[] が空の場合はスキップして通知する
-
空でない場合は AskUserQuestion(multi-select)で全提案を優先度付きで一覧表示する:
Q: 新しいチェンジとして登録する Next Steps を選択してください(複数選択可)
Options: [HIGH/MEDIUM/LOW] kebab_name: summary
-
ユーザーが承認したエントリについて mspec new <kebab_name> を実行する(changes/ 配下のみ)
- kebab_name はサブエージェントが正規化済みのため、そのまま引数に使用する
-
MUST NOT: ユーザーが却下したエントリに対して mspec new を実行しない
-
Report the merge summary to the user. Workflow complete.
Verification (C2)
mspec archive <change> --dry-run — マージ差分の事前確認
mspec anchor check — アーカイブ後のアンカー解決確認
mspec validate --change <change> — アーティファクト整合性チェック
Learning (C3)
このスキルの実行で発生した学習候補を記録する:
<!-- LEARNING: <パターン説明> | source: <FR-ID> | confidence: low|medium|high -->
mspec learn コマンドが archive 済み changes からこれらを収集してpost-condition候補をproposeする。