@polymorphism-tech/morph-spec 7.4.0 → 7.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +2 -2
  2. package/bin/morph-spec.js +18 -0
  3. package/claude-plugin.json +1 -1
  4. package/docs/CHEATSHEET.md +1 -1
  5. package/docs/QUICKSTART.md +1 -1
  6. package/framework/CLAUDE.md +9 -4
  7. package/framework/MORPH.md +4 -4
  8. package/framework/commands/create-umbraco-lp.md +35 -0
  9. package/framework/commands/migrate-lp-to-umbraco.md +33 -0
  10. package/framework/commands/morph-archive.md +17 -27
  11. package/framework/hooks/claude-code/core/enforce-phase-writes.js +115 -90
  12. package/framework/hooks/claude-code/core/protect-spec-files.js +32 -30
  13. package/framework/hooks/claude-code/core/state-sync.js +16 -48
  14. package/framework/hooks/shared/state-reader.js +74 -8
  15. package/framework/hooks/shared/state-writer.js +124 -0
  16. package/framework/rules/morph-task-tracking.md +69 -49
  17. package/framework/rules/morph-workflow.md +192 -191
  18. package/framework/skills/core/create-umbraco-lp/SKILL.md +252 -0
  19. package/framework/skills/core/migrate-lp-to-umbraco/SKILL.md +452 -0
  20. package/framework/skills/core/morph-apply/SKILL.md +15 -15
  21. package/framework/skills/core/morph-brainstorming/SKILL.md +5 -5
  22. package/framework/skills/core/morph-eval/SKILL.md +1 -1
  23. package/framework/skills/core/morph-implement/SKILL.md +5 -4
  24. package/framework/skills/core/morph-plan/SKILL.md +6 -6
  25. package/framework/skills/core/morph-proposal/SKILL.md +8 -7
  26. package/framework/skills/core/morph-review/SKILL.md +3 -3
  27. package/framework/skills/core/morph-stack-scan/SKILL.md +1 -1
  28. package/framework/skills/core/morph-standards/SKILL.md +1 -1
  29. package/framework/templates/REGISTRY.json +1 -3
  30. package/framework/templates/context/CONTEXT-FEATURE.md +10 -17
  31. package/framework/templates/context/CONTEXT.md +181 -180
  32. package/framework/templates/docs/onboarding.md +122 -118
  33. package/framework/templates/docs/proposal.md +10 -0
  34. package/framework/templates/docs/spec.md +228 -228
  35. package/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +80 -80
  36. package/framework/templates/meta-prompts/squad-leaders/backend-squad.md +90 -89
  37. package/framework/templates/meta-prompts/squad-leaders/frontend-squad.md +2 -1
  38. package/framework/templates/meta-prompts/squad-leaders/squad-leader.md +44 -43
  39. package/framework/templates/meta-prompts/validators/checkpoint-validator.md +107 -107
  40. package/package.json +1 -1
  41. package/src/commands/project/update.js +415 -368
  42. package/src/commands/project/worktree.js +212 -210
  43. package/src/commands/state/advance.js +82 -0
  44. package/src/commands/state/archive.js +111 -0
  45. package/src/commands/validation/validate-feature.js +229 -105
  46. package/src/core/state/state-manager.js +238 -66
  47. package/src/dashboard/scanner/state-scanner.js +35 -8
  48. package/src/lib/generators/context-generator.js +12 -8
  49. package/src/utils/file-copier.js +7 -0
@@ -4,7 +4,7 @@ description: Orquestra a fase de proposta+plano de uma feature morph-spec. Encad
4
4
  version: core
5
5
  when-to-invoke: ao receber instrução "use /morph-proposal" do usuário, ou ao iniciar uma nova feature
6
6
  user-invokable: true
7
- cliVersion: "7.4.0"
7
+ cliVersion: "7.5.0"
8
8
  ---
9
9
 
10
10
  # morph-proposal
@@ -17,7 +17,7 @@ Conduzir uma feature do request inicial até o plano aprovado (Gate 2), sem inte
17
17
 
18
18
  - Usuário pede "use /morph-proposal {feature}" ou "vamos planejar {feature}".
19
19
  - Início de qualquer feature nova num projeto morph-spec.
20
- - Em sessões retomadas, antes de continuar uma feature em progresso, verificar via `.morph/state.json` se a feature já passou pelos Gates.
20
+ - Em sessões retomadas, antes de continuar uma feature em progresso, verificar via `.morph/features/{feature-name}/feature.json` (estado autoritativo da feature) se ela já passou pelos Gates.
21
21
 
22
22
  ## Argumentos
23
23
 
@@ -82,11 +82,12 @@ Escopo: {incluído} | Excluído: {exclusões}
82
82
  Stack: {compliance}
83
83
  ```
84
84
 
85
- O hook `state-sync.js` registra a aprovação automaticamente via PostToolUse em AskUserQuestion. Quando auto-aprovado, marcar manualmente:
85
+ No caminho manual, o hook `state-sync.js` registra a aprovação automaticamente via PostToolUse quando a `AskUserQuestion` é respondida com "aprovado" (grava o gate no `feature.json` autoritativo, `approvedBy: "manual"`). Em `trust: auto` (sem AskUserQuestion), **aprove via CLI — nunca via Edit à mão de state.json**:
86
86
 
87
- ```js
88
- // auto-aprovação: o hook detecta "aprovado" no answer label, mas em auto-mode
89
- // não há AskUserQuestion. Skill atualiza .morph/state.json via Edit fallback.
87
+ ```
88
+ morph-spec approve {feature} proposal --mode auto
89
+ # ou, para já aprovar o Gate 1 e criar a pasta 2-plan/ num passo só:
90
+ morph-spec advance {feature}
90
91
  ```
91
92
 
92
93
  ### 4. Verificar retomada antes de morph-plan
@@ -128,7 +129,7 @@ Lógica idêntica ao passo 3 (`shouldPauseGate` + AskUserQuestion ou auto-aprova
128
129
  - `.morph/features/{feature}/2-plan/spec.md`
129
130
  - `.morph/features/{feature}/2-plan/mandate.md`
130
131
  - `.morph/features/{feature}/2-plan/tasks.json`
131
- - Gates 1 e 2 marcados aprovados em `.morph/state.json` (via hook state-sync).
132
+ - Gates 1 e 2 registrados aprovados em `.morph/features/{feature}/feature.json` (autoritativo) — via `morph-spec approve`/`morph-spec advance` em auto, ou via hook state-sync no caminho manual.
132
133
 
133
134
  ## Referências
134
135
 
@@ -4,7 +4,7 @@ description: Conduz a fase de revisão e produz o review-report.md para o Gate 3
4
4
  version: core
5
5
  when-to-invoke: ao iniciar a fase review, após todas as tasks de tasks.json estarem com status `done`
6
6
  user-invokable: true
7
- cliVersion: "7.4.0"
7
+ cliVersion: "7.5.0"
8
8
  ---
9
9
 
10
10
  # morph-review
@@ -88,12 +88,12 @@ e o `recap.md` estar atualizado. Normalmente invocada pela skill orquestradora `
88
88
  **Recomendação:** Aprovado
89
89
  ```
90
90
 
91
- O hook state-sync detecta a aprovação em answers de AskUserQuestion e marca `features[X].approvalGates.review = true`. Em auto sem AskUserQuestion, a skill atualiza state.json direto.
91
+ No caminho manual, o hook state-sync detecta a aprovação em answers de AskUserQuestion e grava `approvalGates.review = { approved: true, timestamp, approvedBy: "manual" }` no `feature.json` autoritativo da feature. Em auto sem AskUserQuestion, aprove via `morph-spec approve {feature} review --mode auto` — nunca via Edit à mão de state.json.
92
92
 
93
93
  ## Output esperado
94
94
  - `.morph/features/{feature}/4-review/review-report.md` com scores e recomendação
95
95
  - Trace da fase com `phase_summary` preenchido
96
- - Gate 3 marcado aprovado em state.json (auto ou manual)
96
+ - Gate 3 registrado aprovado em `.morph/features/{feature}/feature.json` (autoritativo), na forma canônica `{ approved, timestamp, approvedBy }` — via `morph-spec approve` em auto, ou pelo hook state-sync no caminho manual
97
97
 
98
98
  ## Referências
99
99
  - `.morph/framework/MORPH.md` — seção 5 (Gate 3), seção 1 (papel Evaluator), Trust Mode
@@ -4,7 +4,7 @@ description: Varre o codebase existente, detecta stack atual, compara com o stac
4
4
  version: core
5
5
  when-to-invoke: ao iniciar uma feature em projeto brownfield (codebase já existente)
6
6
  user-invokable: true
7
- cliVersion: "7.4.0"
7
+ cliVersion: "7.5.0"
8
8
  ---
9
9
 
10
10
  # morph-stack-scan
@@ -4,7 +4,7 @@ description: Localiza e carrega um standard específico do STANDARDS.json sob de
4
4
  version: core
5
5
  when-to-invoke: quando precisar consultar um standard específico durante a implementação
6
6
  user-invokable: true
7
- cliVersion: "7.4.0"
7
+ cliVersion: "7.5.0"
8
8
  ---
9
9
 
10
10
  # morph-standards
@@ -193,7 +193,6 @@
193
193
  "COMPLEXITY",
194
194
  "CONTRACTS_PATH",
195
195
  "CURRENT_TASK",
196
- "CURRENT_TASK_ID",
197
196
  "DECISIONS_PATH",
198
197
  "DESCRIPTION",
199
198
  "FEATURE_ID",
@@ -213,8 +212,7 @@
213
212
  "TASKS_TOTAL",
214
213
  "TEAM_LEAD",
215
214
  "TIMESTAMP",
216
- "VALIDATION_TIMESTAMP",
217
- "VALIDATOR"
215
+ "VALIDATION_TIMESTAMP"
218
216
  ],
219
217
  "stackSpecific": false,
220
218
  "engine": "handlebars",
@@ -229,21 +229,17 @@ No validation runs yet. Validators run automatically via checkpoints.
229
229
  ## Quick Actions
230
230
 
231
231
  ### Continue Implementation
232
- ```bash
233
- # Start a task (dispatch gate + state tracking)
234
- morph-spec task start {{FEATURE_NAME}} <task-id>
235
-
236
- # Complete current task (runs validators)
237
- morph-spec task done {{FEATURE_NAME}} {{CURRENT_TASK_ID}}
238
-
239
- # Generate recap after task completion
240
- morph-spec generate recap {{FEATURE_NAME}}
241
- ```
232
+ During the implement phase, track your work with the native `TaskCreate`/`TaskUpdate`
233
+ tools. Persist progress by writing `tasks.json` (`2-plan/tasks.json`), touching ONLY
234
+ the mutable fields `status`, `outputs`, and `notes` — via the `Write` tool or an `Edit`
235
+ that touches only those fields. The plan contract (`title`, `description`,
236
+ `dependencies`, `effort`, `doneCriteria`, `group`) is frozen after Gate 2. The recap is
237
+ written by the implement skill; state syncs automatically via the `state-sync` hook.
242
238
 
243
239
  ### Advance Phase
244
240
  ```bash
245
- # Check prerequisites and advance
246
- morph-spec phase advance {{FEATURE_NAME}}
241
+ # Approve the current gate and scaffold the next phase folder in one step
242
+ morph-spec advance {{FEATURE_NAME}}
247
243
 
248
244
  # Validate feature outputs
249
245
  morph-spec validate-feature {{FEATURE_NAME}}
@@ -251,11 +247,8 @@ morph-spec validate-feature {{FEATURE_NAME}}
251
247
 
252
248
  ### Validation
253
249
  ```bash
254
- # Run all validators for active agents
255
- morph-spec validate {{FEATURE_NAME}}
256
-
257
- # Run specific validator
258
- morph-spec validate-{{VALIDATOR}} {{FEATURE_NAME}}
250
+ # Validate this feature's outputs against active standards
251
+ morph-spec validate-feature {{FEATURE_NAME}}
259
252
  ```
260
253
 
261
254
  ---
@@ -1,180 +1,181 @@
1
- # {{PROJECT_NAME}} - Project Context
2
-
3
- > Auto-generated by MORPH-SPEC Framework
4
- > Last updated: {{TIMESTAMP}}
5
-
6
- ## Project Overview
7
-
8
- **Name:** {{PROJECT_NAME}}
9
- **Type:** {{PROJECT_TYPE}}
10
- **Repository:** {{REPOSITORY_URL}}
11
-
12
- {{PROJECT_DESCRIPTION}}
13
-
14
- ---
15
-
16
- ## Technology Stack
17
-
18
- ### Frontend
19
- {{#if NEXTJS_ENABLED}}- **Next.js** {{NEXTJS_VERSION}}{{/if}}
20
- {{#if UI_LIBRARY}}- **UI Library:** {{UI_LIBRARY}}{{/if}}
21
-
22
- ### Backend
23
- - **.NET** {{DOTNET_VERSION}}
24
- {{#if EF_VERSION}}- **Entity Framework Core** {{EF_VERSION}}{{/if}}
25
- {{#if DAPPER_ENABLED}}- **Dapper** (Micro-ORM){{/if}}
26
- {{#if HANGFIRE_ENABLED}}- **Hangfire** (Background Jobs){{/if}}
27
- {{#if AGENT_FRAMEWORK_ENABLED}}- **Microsoft Agent Framework** (AI Agents){{/if}}
28
-
29
- ### Database
30
- {{#if SQL_ENABLED}}- **Azure SQL** ({{SQL_SERVER}}/{{SQL_DATABASE}}){{/if}}
31
- {{#if NEON_ENABLED}}- **Neon** (PostgreSQL + Connection Pooling)
32
- - Project: {{NEON_PROJECT_ID}}
33
- - Region: {{NEON_REGION}}
34
- {{/if}}
35
-
36
- ### Infrastructure
37
- {{#if AZURE_ENABLED}}- **Azure** ({{AZURE_LOCATION}})
38
- {{#if CONTAINER_APPS_ENABLED}}- **Container Apps** ({{CONTAINER_ENV}}){{/if}}
39
- {{#if OPENAI_ENABLED}}- **Azure OpenAI** ({{OPENAI_MODEL}}){{/if}}
40
- {{#if MONITORING_ENABLED}}- **Application Insights** ({{APP_INSIGHTS}}){{/if}}
41
- {{/if}}
42
-
43
- {{#if EASYPANEL_ENABLED}}- **EasyPanel** (Docker Deployment)
44
- - API: {{EASYPANEL_API_URL}}
45
- - Web: {{EASYPANEL_WEB_URL}}
46
- {{/if}}
47
-
48
- ---
49
-
50
- ## Active Features
51
-
52
- {{#each ACTIVE_FEATURES}}
53
- ### {{name}} ({{phase}})
54
- **Status:** {{status}}
55
- **Complexity:** {{complexity}}
56
- **Active Agents:** {{activeAgents}}
57
-
58
- {{#if description}}{{description}}{{/if}}
59
-
60
- **Progress:**
61
- - Tasks: {{tasks.completed}}/{{tasks.total}}
62
- - Outputs: {{outputs}}
63
-
64
- {{/each}}
65
-
66
- ---
67
-
68
- ## Project Standards
69
-
70
- ### Coding Standards
71
- {{#each PROJECT_STANDARDS}}
72
- - [{{name}}]({{path}}){{#if description}} - {{description}}{{/if}}
73
- {{/each}}
74
-
75
- ### Inferred Patterns
76
- {{#if INFERRED_STANDARDS}}
77
- {{INFERRED_STANDARDS}}
78
- {{/if}}
79
-
80
- ---
81
-
82
- ## Active Agents ({{AGENT_COUNT}})
83
-
84
- ### Tier 1: Orchestrators
85
- {{#each TIER_1_AGENTS}}
86
- - **{{title}}** (`{{id}}`) {{#if always_active}}[Always Active]{{/if}}
87
- {{/each}}
88
-
89
- ### Tier 2: Domain Leaders
90
- {{#each TIER_2_AGENTS}}
91
- - **{{title}}** (`{{id}}`) - {{domains}}
92
- {{/each}}
93
-
94
- ### Tier 3: Specialists
95
- {{#each TIER_3_AGENTS}}
96
- - **{{title}}** (`{{id}}`) - Reports to `{{reports_to}}`
97
- {{/each}}
98
-
99
- ---
100
-
101
- ## Agent Teams Status
102
-
103
- {{#if AGENT_TEAMS_ENABLED}}
104
- ✅ **Enabled** (Display Mode: {{AGENT_TEAMS_DISPLAY_MODE}})
105
-
106
- **Spawn Thresholds:**
107
- - Complexity: {{AGENT_TEAMS_THRESHOLDS.complexity}}
108
- - Estimated Files: ≥ {{AGENT_TEAMS_THRESHOLDS.estimatedFiles}}
109
- - Active Agents: ≥ {{AGENT_TEAMS_THRESHOLDS.activeAgents}}
110
- - Multi-Domain: {{AGENT_TEAMS_THRESHOLDS.multiDomain}}
111
-
112
- {{else}}
113
- ❌ **Disabled** - Use single session with subagents
114
- {{/if}}
115
-
116
- ---
117
-
118
- ## Recent Checkpoints
119
-
120
- {{#each RECENT_CHECKPOINTS}}
121
- ### {{timestamp}}
122
- **Feature:** {{feature}}
123
- **Phase:** {{phase}}
124
- **Note:** {{note}}
125
-
126
- {{#if validation}}
127
- **Validation:** {{validation.passed}}/{{validation.total}} checks passed
128
- {{/if}}
129
-
130
- {{/each}}
131
-
132
- ---
133
-
134
- {{#if DEVOPS_ENABLED}}
135
- ## DevOps Integration
136
-
137
- **Organization:** {{DEVOPS_ORG}}
138
- **Project:** {{DEVOPS_PROJECT}}
139
-
140
- - **Boards:** {{#if DEVOPS_BOARDS_ENABLED}}Enabled ({{DEVOPS_AREA_PATH}}){{else}}Disabled{{/if}}
141
- - **Wiki:** {{#if DEVOPS_WIKI_ENABLED}}Enabled ({{DEVOPS_WIKI_NAME}}){{else}}Disabled{{/if}}
142
- - **Pipelines:** CI: {{DEVOPS_BUILD_PIPELINE}}, CD: {{DEVOPS_RELEASE_PIPELINE}}
143
-
144
- ---
145
-
146
- {{/if}}
147
-
148
- ## Quick Reference
149
-
150
- ### Workflow Commands
151
- ```bash
152
- # Detect agents for feature
153
- morph-spec detect-agents "{feature description}"
154
-
155
- # Initialize new feature
156
- morph-spec state init
157
-
158
- # Update design system (run morph-phase-uiux skill or edit manually)
159
- # .morph/context/design-system.md
160
-
161
- # Advance to next phase
162
- morph-spec phase advance {feature}
163
-
164
- # Mark task complete (runs validators)
165
- morph-spec task done {feature} {task-id}
166
-
167
- # Generate recap
168
- morph-spec generate recap {feature}
169
- ```
170
-
171
- ### Key Paths
172
- - **Outputs:** `.morph/features/{feature}/`
173
- - **Standards:** `.morph/context/` (project overrides)
174
- - **Config:** `.morph/config/config.json`
175
- - **State:** `.morph/state.json`
176
- - **Templates:** `.morph/framework/templates/`
177
-
178
- ---
179
-
180
- *Generated by MORPH-SPEC Framework v{{MORPH_VERSION}}*
1
+ # {{PROJECT_NAME}} - Project Context
2
+
3
+ > Auto-generated by MORPH-SPEC Framework
4
+ > Last updated: {{TIMESTAMP}}
5
+
6
+ ## Project Overview
7
+
8
+ **Name:** {{PROJECT_NAME}}
9
+ **Type:** {{PROJECT_TYPE}}
10
+ **Repository:** {{REPOSITORY_URL}}
11
+
12
+ {{PROJECT_DESCRIPTION}}
13
+
14
+ ---
15
+
16
+ ## Technology Stack
17
+
18
+ ### Frontend
19
+ {{#if NEXTJS_ENABLED}}- **Next.js** {{NEXTJS_VERSION}}{{/if}}
20
+ {{#if UI_LIBRARY}}- **UI Library:** {{UI_LIBRARY}}{{/if}}
21
+
22
+ ### Backend
23
+ - **.NET** {{DOTNET_VERSION}}
24
+ {{#if EF_VERSION}}- **Entity Framework Core** {{EF_VERSION}}{{/if}}
25
+ {{#if DAPPER_ENABLED}}- **Dapper** (Micro-ORM){{/if}}
26
+ {{#if HANGFIRE_ENABLED}}- **Hangfire** (Background Jobs){{/if}}
27
+ {{#if AGENT_FRAMEWORK_ENABLED}}- **Microsoft Agent Framework** (AI Agents){{/if}}
28
+
29
+ ### Database
30
+ {{#if SQL_ENABLED}}- **Azure SQL** ({{SQL_SERVER}}/{{SQL_DATABASE}}){{/if}}
31
+ {{#if NEON_ENABLED}}- **Neon** (PostgreSQL + Connection Pooling)
32
+ - Project: {{NEON_PROJECT_ID}}
33
+ - Region: {{NEON_REGION}}
34
+ {{/if}}
35
+
36
+ ### Infrastructure
37
+ {{#if AZURE_ENABLED}}- **Azure** ({{AZURE_LOCATION}})
38
+ {{#if CONTAINER_APPS_ENABLED}}- **Container Apps** ({{CONTAINER_ENV}}){{/if}}
39
+ {{#if OPENAI_ENABLED}}- **Azure OpenAI** ({{OPENAI_MODEL}}){{/if}}
40
+ {{#if MONITORING_ENABLED}}- **Application Insights** ({{APP_INSIGHTS}}){{/if}}
41
+ {{/if}}
42
+
43
+ {{#if EASYPANEL_ENABLED}}- **EasyPanel** (Docker Deployment)
44
+ - API: {{EASYPANEL_API_URL}}
45
+ - Web: {{EASYPANEL_WEB_URL}}
46
+ {{/if}}
47
+
48
+ ---
49
+
50
+ ## Active Features
51
+
52
+ {{#each ACTIVE_FEATURES}}
53
+ ### {{name}} ({{phase}})
54
+ **Status:** {{status}}
55
+ **Complexity:** {{complexity}}
56
+ **Active Agents:** {{activeAgents}}
57
+
58
+ {{#if description}}{{description}}{{/if}}
59
+
60
+ **Progress:**
61
+ - Tasks: {{tasks.completed}}/{{tasks.total}}
62
+ - Outputs: {{outputs}}
63
+
64
+ {{/each}}
65
+
66
+ ---
67
+
68
+ ## Project Standards
69
+
70
+ ### Coding Standards
71
+ {{#each PROJECT_STANDARDS}}
72
+ - [{{name}}]({{path}}){{#if description}} - {{description}}{{/if}}
73
+ {{/each}}
74
+
75
+ ### Inferred Patterns
76
+ {{#if INFERRED_STANDARDS}}
77
+ {{INFERRED_STANDARDS}}
78
+ {{/if}}
79
+
80
+ ---
81
+
82
+ ## Active Agents ({{AGENT_COUNT}})
83
+
84
+ ### Tier 1: Orchestrators
85
+ {{#each TIER_1_AGENTS}}
86
+ - **{{title}}** (`{{id}}`) {{#if always_active}}[Always Active]{{/if}}
87
+ {{/each}}
88
+
89
+ ### Tier 2: Domain Leaders
90
+ {{#each TIER_2_AGENTS}}
91
+ - **{{title}}** (`{{id}}`) - {{domains}}
92
+ {{/each}}
93
+
94
+ ### Tier 3: Specialists
95
+ {{#each TIER_3_AGENTS}}
96
+ - **{{title}}** (`{{id}}`) - Reports to `{{reports_to}}`
97
+ {{/each}}
98
+
99
+ ---
100
+
101
+ ## Agent Teams Status
102
+
103
+ {{#if AGENT_TEAMS_ENABLED}}
104
+ ✅ **Enabled** (Display Mode: {{AGENT_TEAMS_DISPLAY_MODE}})
105
+
106
+ **Spawn Thresholds:**
107
+ - Complexity: {{AGENT_TEAMS_THRESHOLDS.complexity}}
108
+ - Estimated Files: ≥ {{AGENT_TEAMS_THRESHOLDS.estimatedFiles}}
109
+ - Active Agents: ≥ {{AGENT_TEAMS_THRESHOLDS.activeAgents}}
110
+ - Multi-Domain: {{AGENT_TEAMS_THRESHOLDS.multiDomain}}
111
+
112
+ {{else}}
113
+ ❌ **Disabled** - Use single session with subagents
114
+ {{/if}}
115
+
116
+ ---
117
+
118
+ ## Recent Checkpoints
119
+
120
+ {{#each RECENT_CHECKPOINTS}}
121
+ ### {{timestamp}}
122
+ **Feature:** {{feature}}
123
+ **Phase:** {{phase}}
124
+ **Note:** {{note}}
125
+
126
+ {{#if validation}}
127
+ **Validation:** {{validation.passed}}/{{validation.total}} checks passed
128
+ {{/if}}
129
+
130
+ {{/each}}
131
+
132
+ ---
133
+
134
+ {{#if DEVOPS_ENABLED}}
135
+ ## DevOps Integration
136
+
137
+ **Organization:** {{DEVOPS_ORG}}
138
+ **Project:** {{DEVOPS_PROJECT}}
139
+
140
+ - **Boards:** {{#if DEVOPS_BOARDS_ENABLED}}Enabled ({{DEVOPS_AREA_PATH}}){{else}}Disabled{{/if}}
141
+ - **Wiki:** {{#if DEVOPS_WIKI_ENABLED}}Enabled ({{DEVOPS_WIKI_NAME}}){{else}}Disabled{{/if}}
142
+ - **Pipelines:** CI: {{DEVOPS_BUILD_PIPELINE}}, CD: {{DEVOPS_RELEASE_PIPELINE}}
143
+
144
+ ---
145
+
146
+ {{/if}}
147
+
148
+ ## Quick Reference
149
+
150
+ ### Workflow Commands
151
+ ```bash
152
+ # Check feature status and pending gates
153
+ morph-spec status {feature}
154
+ morph-spec approval-status {feature}
155
+
156
+ # Approve the current gate and scaffold the next phase folder in one step
157
+ morph-spec advance {feature}
158
+
159
+ # Validate feature outputs
160
+ morph-spec validate-feature {feature}
161
+
162
+ # Archive a finished feature (after Gate 3)
163
+ morph-spec archive {feature}
164
+ ```
165
+
166
+ > Feature work starts by asking Claude Code to implement something — the proposal
167
+ > phase is created for you. During the implement phase, task progress is tracked
168
+ > with the native `TaskCreate`/`TaskUpdate` tools and persisted by writing
169
+ > `tasks.json` (only `status`, `outputs`, `notes`); the recap is written by the
170
+ > implement skill. State syncs automatically via the `state-sync` hook.
171
+
172
+ ### Key Paths
173
+ - **Outputs:** `.morph/features/{feature}/`
174
+ - **Standards:** `.morph/context/` (project overrides)
175
+ - **Config:** `.morph/config/config.json`
176
+ - **State:** `.morph/state.json`
177
+ - **Templates:** `.morph/framework/templates/`
178
+
179
+ ---
180
+
181
+ *Generated by MORPH-SPEC Framework v{{MORPH_VERSION}}*