@polymorphism-tech/morph-spec 7.2.0 → 7.3.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.
- package/README.md +2 -2
- package/claude-plugin.json +1 -1
- package/docs/CHEATSHEET.md +1 -1
- package/docs/QUICKSTART.md +1 -1
- package/framework/CLAUDE.md +1 -1
- package/framework/commands/morph-apply.md +1 -1
- package/framework/commands/morph-proposal.md +1 -1
- package/framework/hooks/README.md +1 -1
- package/framework/hooks/claude-code/core/validate-completion.js +136 -136
- package/framework/phases.json +1 -1
- package/framework/skills/README.md +1 -1
- package/framework/skills/core/morph-apply/SKILL.md +1 -1
- package/framework/skills/core/morph-brainstorming/SKILL.md +1 -1
- package/framework/skills/core/morph-eval/SKILL.md +1 -1
- package/framework/skills/core/morph-implement/SKILL.md +1 -1
- package/framework/skills/core/morph-plan/SKILL.md +1 -1
- package/framework/skills/core/morph-proposal/SKILL.md +1 -1
- package/framework/skills/core/morph-review/SKILL.md +1 -1
- package/framework/skills/core/morph-stack-scan/SKILL.md +1 -1
- package/framework/skills/core/morph-standards/SKILL.md +1 -1
- package/framework/templates/README.md +708 -709
- package/framework/templates/REGISTRY.json +1 -20
- package/framework/templates/context/CONTEXT-FEATURE.md +276 -276
- package/framework/templates/docs/proposal.md +171 -171
- package/framework/templates/feature/recap.md +145 -145
- package/package.json +1 -1
- package/src/commands/project/doctor.js +941 -946
- package/src/commands/project/status.js +373 -376
- package/src/commands/validation/validate-feature.js +315 -287
- package/src/core/state/state-manager.js +900 -934
- package/src/dashboard/app/App.jsx +29 -31
- package/src/dashboard/app/components/Sidebar.jsx +44 -45
- package/src/dashboard/scanner/index.js +20 -21
- package/src/lib/context/context-builder.js +3 -3
- package/src/lib/generators/context-generator.js +2 -3
- package/src/lib/generators/mandate-generator.js +48 -92
- package/src/lib/generators/metadata-extractor.js +385 -386
- package/src/lib/generators/recap-generator.js +285 -285
- package/src/lib/validators/content/content-validator.js +89 -286
- package/src/lib/validators/content/index.js +0 -1
- package/framework/templates/feature/tasks.md +0 -199
- package/framework/workflows/README.md +0 -1041
- package/framework/workflows/configs/fast-track.json +0 -46
- package/framework/workflows/configs/full.json +0 -64
- package/framework/workflows/configs/quick.json +0 -32
- package/framework/workflows/configs/standard.json +0 -57
- package/framework/workflows/docs/STORY-DRIVEN-DEVELOPMENT.md +0 -392
- package/framework/workflows/docs/design-impl.md +0 -37
- package/framework/workflows/docs/enforcement-pipeline.md +0 -668
- package/framework/workflows/docs/fast-track.md +0 -29
- package/framework/workflows/docs/full-morph.md +0 -69
- package/framework/workflows/docs/standard.md +0 -49
- package/framework/workflows/docs/ui-refresh.md +0 -39
- package/src/commands/state/index.js +0 -7
- package/src/core/workflows/workflow-detector.js +0 -586
- package/src/core/workflows/workflow-router.js +0 -204
- package/src/dashboard/app/pages/Workflows.jsx +0 -346
- package/src/dashboard/scanner/workflows-scanner.js +0 -18
- package/src/lib/phase-chain/phase-validator.js +0 -359
- package/src/lib/validators/content/cross-phase-validator.js +0 -281
- package/src/lib/validators/spec-validator.js +0 -312
|
@@ -67,24 +67,6 @@
|
|
|
67
67
|
"technology": "handlebars",
|
|
68
68
|
"validatePlaceholders": true
|
|
69
69
|
},
|
|
70
|
-
{
|
|
71
|
-
"id": "tasks",
|
|
72
|
-
"kind": "template",
|
|
73
|
-
"name": "Implementation Tasks",
|
|
74
|
-
"path": "feature/tasks.md",
|
|
75
|
-
"location": "framework",
|
|
76
|
-
"category": "documentation",
|
|
77
|
-
"phase": "plan",
|
|
78
|
-
"required": true,
|
|
79
|
-
"description": "Task breakdown with IDs, dependencies, estimates, and checkpoints",
|
|
80
|
-
"outputName": "tasks.md",
|
|
81
|
-
"placeholders": [],
|
|
82
|
-
"stackSpecific": false,
|
|
83
|
-
"engine": "handlebars",
|
|
84
|
-
"deprecated": false,
|
|
85
|
-
"technology": "handlebars",
|
|
86
|
-
"validatePlaceholders": true
|
|
87
|
-
},
|
|
88
70
|
{
|
|
89
71
|
"id": "decisions",
|
|
90
72
|
"kind": "template",
|
|
@@ -232,8 +214,7 @@
|
|
|
232
214
|
"TEAM_LEAD",
|
|
233
215
|
"TIMESTAMP",
|
|
234
216
|
"VALIDATION_TIMESTAMP",
|
|
235
|
-
"VALIDATOR"
|
|
236
|
-
"WORKFLOW_TYPE"
|
|
217
|
+
"VALIDATOR"
|
|
237
218
|
],
|
|
238
219
|
"stackSpecific": false,
|
|
239
220
|
"engine": "handlebars",
|
|
@@ -1,276 +1,276 @@
|
|
|
1
|
-
# {{FEATURE_NAME}} - Feature Context
|
|
2
|
-
|
|
3
|
-
> Auto-generated by MORPH-SPEC Framework
|
|
4
|
-
> Last updated: {{TIMESTAMP}}
|
|
5
|
-
|
|
6
|
-
## Feature Overview
|
|
7
|
-
|
|
8
|
-
**Name:** {{FEATURE_NAME}}
|
|
9
|
-
**Phase:** {{PHASE}}
|
|
10
|
-
**Status:** {{STATUS}}
|
|
11
|
-
**Complexity:** {{COMPLEXITY}}
|
|
12
|
-
|
|
13
|
-
{{#if DESCRIPTION}}
|
|
14
|
-
{{DESCRIPTION}}
|
|
15
|
-
{{/if}}
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## Progress Tracking
|
|
20
|
-
|
|
21
|
-
### Current Phase: {{PHASE}}
|
|
22
|
-
|
|
23
|
-
{{PHASE_DESCRIPTION}}
|
|
24
|
-
|
|
25
|
-
**Completed Phases:**
|
|
26
|
-
{{#each COMPLETED_PHASES}}
|
|
27
|
-
- ✅ {{name}} - {{completedAt}}
|
|
28
|
-
{{/each}}
|
|
29
|
-
|
|
30
|
-
**Next Phases:**
|
|
31
|
-
{{#each UPCOMING_PHASES}}
|
|
32
|
-
- ⏭️ {{name}}
|
|
33
|
-
{{/each}}
|
|
34
|
-
|
|
35
|
-
### Task Progress
|
|
36
|
-
|
|
37
|
-
**Total Tasks:** {{TASKS_TOTAL}}
|
|
38
|
-
**Completed:** {{TASKS_COMPLETED}} ({{TASKS_PROGRESS}}%)
|
|
39
|
-
**In Progress:** {{TASKS_IN_PROGRESS}}
|
|
40
|
-
**Blocked:** {{TASKS_BLOCKED}}
|
|
41
|
-
|
|
42
|
-
{{#if CURRENT_TASK}}
|
|
43
|
-
**Current Task:** {{CURRENT_TASK.id}} - {{CURRENT_TASK.title}}
|
|
44
|
-
{{/if}}
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## Active Agents ({{ACTIVE_AGENTS_COUNT}})
|
|
49
|
-
|
|
50
|
-
### Team Structure
|
|
51
|
-
|
|
52
|
-
{{#if TEAM_LEAD}}
|
|
53
|
-
**Team Lead:** {{TEAM_LEAD.title}} (`{{TEAM_LEAD.id}}`)
|
|
54
|
-
{{/if}}
|
|
55
|
-
|
|
56
|
-
{{#each SQUADS}}
|
|
57
|
-
### {{leader.title}} Squad
|
|
58
|
-
**Leader:** `{{leader.id}}`
|
|
59
|
-
**Members ({{members.length}}):**
|
|
60
|
-
{{#each members}}
|
|
61
|
-
- {{title}} (`{{id}}`) {{#if status}}[{{status}}]{{/if}}
|
|
62
|
-
{{/each}}
|
|
63
|
-
{{/each}}
|
|
64
|
-
|
|
65
|
-
### Validators (Run in Hooks)
|
|
66
|
-
{{#each VALIDATORS}}
|
|
67
|
-
- {{title}} (`{{id}}`)
|
|
68
|
-
{{/each}}
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## Agent Teams
|
|
73
|
-
|
|
74
|
-
{{#if AGENT_TEAMS_DECISION}}
|
|
75
|
-
{{#if AGENT_TEAMS_DECISION.useAgentTeams}}
|
|
76
|
-
✅ **Agent Teams Recommended**
|
|
77
|
-
|
|
78
|
-
**Reason:** {{AGENT_TEAMS_DECISION.reason}}
|
|
79
|
-
**Display Mode:** {{AGENT_TEAMS_DECISION.displayMode}}
|
|
80
|
-
**Total Teammates:** {{AGENT_TEAMS_DECISION.totalTeammates}}
|
|
81
|
-
|
|
82
|
-
**Team Composition:**
|
|
83
|
-
- Team Lead: {{AGENT_TEAMS_DECISION.teamLead}}
|
|
84
|
-
- Domain Leaders: {{AGENT_TEAMS_DECISION.squads}}
|
|
85
|
-
- Validators (hooks): {{AGENT_TEAMS_DECISION.validators}}
|
|
86
|
-
|
|
87
|
-
{{else}}
|
|
88
|
-
❌ **Single Session Recommended**
|
|
89
|
-
|
|
90
|
-
**Reason:** {{AGENT_TEAMS_DECISION.reason}}
|
|
91
|
-
**Recommendation:** {{AGENT_TEAMS_DECISION.recommendation}}
|
|
92
|
-
{{/if}}
|
|
93
|
-
{{/if}}
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## Outputs Generated
|
|
98
|
-
|
|
99
|
-
{{#each OUTPUTS}}
|
|
100
|
-
### {{type}}
|
|
101
|
-
**Status:** {{#if generated}}✅ Generated{{else}}⏳ Pending{{/if}}
|
|
102
|
-
{{#if path}}**Path:** `{{path}}`{{/if}}
|
|
103
|
-
{{#if generatedAt}}**Generated:** {{generatedAt}}{{/if}}
|
|
104
|
-
{{/each}}
|
|
105
|
-
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
## Decisions Log
|
|
109
|
-
|
|
110
|
-
{{#each DECISIONS}}
|
|
111
|
-
### ADR-{{id}}: {{title}}
|
|
112
|
-
|
|
113
|
-
**Status:** {{status}}
|
|
114
|
-
**Date:** {{date}}
|
|
115
|
-
**Decided By:** {{decidedBy}}
|
|
116
|
-
|
|
117
|
-
**Context:** {{context}}
|
|
118
|
-
|
|
119
|
-
**Decision:** {{decision}}
|
|
120
|
-
|
|
121
|
-
{{#if constraints}}
|
|
122
|
-
**Constraints for Validators:**
|
|
123
|
-
```json
|
|
124
|
-
{{constraints}}
|
|
125
|
-
```
|
|
126
|
-
{{/if}}
|
|
127
|
-
|
|
128
|
-
{{#if alternatives}}
|
|
129
|
-
**Alternatives Considered:**
|
|
130
|
-
{{#each alternatives}}
|
|
131
|
-
- {{name}}: {{rationale}}
|
|
132
|
-
{{/each}}
|
|
133
|
-
{{/if}}
|
|
134
|
-
|
|
135
|
-
---
|
|
136
|
-
{{/each}}
|
|
137
|
-
|
|
138
|
-
{{#unless DECISIONS}}
|
|
139
|
-
No decisions documented yet. Decisions will be logged in `decisions.md` during Design phase.
|
|
140
|
-
{{/unless}}
|
|
141
|
-
|
|
142
|
-
---
|
|
143
|
-
|
|
144
|
-
## Validation Status
|
|
145
|
-
|
|
146
|
-
{{#if VALIDATION_RESULTS}}
|
|
147
|
-
### Latest Validation ({{VALIDATION_TIMESTAMP}})
|
|
148
|
-
|
|
149
|
-
**Overall:** {{#if VALIDATION_PASSED}}✅ PASSED{{else}}❌ FAILED{{/if}}
|
|
150
|
-
|
|
151
|
-
{{#each VALIDATION_RESULTS}}
|
|
152
|
-
#### {{validator}}
|
|
153
|
-
**Status:** {{#if passed}}✅ PASSED{{else}}❌ FAILED{{/if}}
|
|
154
|
-
{{#if issues}}
|
|
155
|
-
**Issues ({{issues.length}}):**
|
|
156
|
-
{{#each issues}}
|
|
157
|
-
- [{{severity}}] {{message}} ({{file}}:{{line}})
|
|
158
|
-
{{/each}}
|
|
159
|
-
{{/if}}
|
|
160
|
-
{{/each}}
|
|
161
|
-
|
|
162
|
-
{{else}}
|
|
163
|
-
No validation runs yet. Validators run automatically via checkpoints.
|
|
164
|
-
{{/if}}
|
|
165
|
-
|
|
166
|
-
---
|
|
167
|
-
|
|
168
|
-
## Tasks Breakdown
|
|
169
|
-
|
|
170
|
-
{{#each TASKS}}
|
|
171
|
-
### {{id}}: {{title}}
|
|
172
|
-
|
|
173
|
-
**Status:** {{status}}
|
|
174
|
-
{{#if priority}}**Priority:** {{priority}}{{/if}}
|
|
175
|
-
{{#if estimatedFiles}}**Estimated Files:** {{estimatedFiles}}{{/if}}
|
|
176
|
-
{{#if dependencies}}**Dependencies:** {{dependencies}}{{/if}}
|
|
177
|
-
|
|
178
|
-
{{#if description}}
|
|
179
|
-
{{description}}
|
|
180
|
-
{{/if}}
|
|
181
|
-
|
|
182
|
-
{{#if agent}}**Assigned Agent:** `{{agent}}`{{/if}}
|
|
183
|
-
|
|
184
|
-
{{#if checkpointAfter}}🔖 **Checkpoint after this task**{{/if}}
|
|
185
|
-
|
|
186
|
-
{{#if completedAt}}✅ Completed: {{completedAt}}{{/if}}
|
|
187
|
-
{{#if blockedReason}}❌ Blocked: {{blockedReason}}{{/if}}
|
|
188
|
-
|
|
189
|
-
---
|
|
190
|
-
{{/each}}
|
|
191
|
-
|
|
192
|
-
---
|
|
193
|
-
|
|
194
|
-
## Checkpoints
|
|
195
|
-
|
|
196
|
-
{{#each CHECKPOINTS}}
|
|
197
|
-
### {{timestamp}}
|
|
198
|
-
**Phase:** {{phase}}
|
|
199
|
-
**Tasks Completed:** {{tasksCompleted}}/{{tasksTotal}}
|
|
200
|
-
|
|
201
|
-
{{#if note}}
|
|
202
|
-
**Note:** {{note}}
|
|
203
|
-
{{/if}}
|
|
204
|
-
|
|
205
|
-
{{#if validation}}
|
|
206
|
-
**Validation:** {{validation.passed}}/{{validation.total}} checks passed
|
|
207
|
-
{{#if validation.issues}}
|
|
208
|
-
- Issues: {{validation.issues}}
|
|
209
|
-
{{/if}}
|
|
210
|
-
{{/if}}
|
|
211
|
-
|
|
212
|
-
---
|
|
213
|
-
{{/each}}
|
|
214
|
-
|
|
215
|
-
---
|
|
216
|
-
|
|
217
|
-
## Related Standards
|
|
218
|
-
|
|
219
|
-
{{#each RELATED_STANDARDS}}
|
|
220
|
-
### {{name}}
|
|
221
|
-
**Path:** `{{path}}`
|
|
222
|
-
{{#if relevantSections}}
|
|
223
|
-
**Relevant Sections:** {{relevantSections}}
|
|
224
|
-
{{/if}}
|
|
225
|
-
{{/each}}
|
|
226
|
-
|
|
227
|
-
---
|
|
228
|
-
|
|
229
|
-
## Quick Actions
|
|
230
|
-
|
|
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
|
-
```
|
|
242
|
-
|
|
243
|
-
### Advance Phase
|
|
244
|
-
```bash
|
|
245
|
-
# Check prerequisites and advance
|
|
246
|
-
morph-spec phase advance {{FEATURE_NAME}}
|
|
247
|
-
|
|
248
|
-
# Validate feature outputs
|
|
249
|
-
morph-spec validate-feature {{FEATURE_NAME}}
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
### Validation
|
|
253
|
-
```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}}
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
---
|
|
262
|
-
|
|
263
|
-
## File Paths
|
|
264
|
-
|
|
265
|
-
- **Outputs Directory:** `.morph/features/{{FEATURE_NAME}}/`
|
|
266
|
-
- **Proposal:** `{{PROPOSAL_PATH}}`
|
|
267
|
-
- **Spec:** `{{SPEC_PATH}}`
|
|
268
|
-
- **Contracts:** `{{CONTRACTS_PATH}}`
|
|
269
|
-
- **Tasks:** `{{TASKS_PATH}}`
|
|
270
|
-
- **Decisions:** `{{DECISIONS_PATH}}`
|
|
271
|
-
- **Recap:** `{{RECAP_PATH}}`
|
|
272
|
-
|
|
273
|
-
---
|
|
274
|
-
|
|
275
|
-
*Generated by MORPH-SPEC Framework v{{MORPH_VERSION}}*
|
|
276
|
-
*Feature ID: {{FEATURE_ID}}*
|
|
1
|
+
# {{FEATURE_NAME}} - Feature Context
|
|
2
|
+
|
|
3
|
+
> Auto-generated by MORPH-SPEC Framework
|
|
4
|
+
> Last updated: {{TIMESTAMP}}
|
|
5
|
+
|
|
6
|
+
## Feature Overview
|
|
7
|
+
|
|
8
|
+
**Name:** {{FEATURE_NAME}}
|
|
9
|
+
**Phase:** {{PHASE}}
|
|
10
|
+
**Status:** {{STATUS}}
|
|
11
|
+
**Complexity:** {{COMPLEXITY}}
|
|
12
|
+
|
|
13
|
+
{{#if DESCRIPTION}}
|
|
14
|
+
{{DESCRIPTION}}
|
|
15
|
+
{{/if}}
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Progress Tracking
|
|
20
|
+
|
|
21
|
+
### Current Phase: {{PHASE}}
|
|
22
|
+
|
|
23
|
+
{{PHASE_DESCRIPTION}}
|
|
24
|
+
|
|
25
|
+
**Completed Phases:**
|
|
26
|
+
{{#each COMPLETED_PHASES}}
|
|
27
|
+
- ✅ {{name}} - {{completedAt}}
|
|
28
|
+
{{/each}}
|
|
29
|
+
|
|
30
|
+
**Next Phases:**
|
|
31
|
+
{{#each UPCOMING_PHASES}}
|
|
32
|
+
- ⏭️ {{name}}
|
|
33
|
+
{{/each}}
|
|
34
|
+
|
|
35
|
+
### Task Progress
|
|
36
|
+
|
|
37
|
+
**Total Tasks:** {{TASKS_TOTAL}}
|
|
38
|
+
**Completed:** {{TASKS_COMPLETED}} ({{TASKS_PROGRESS}}%)
|
|
39
|
+
**In Progress:** {{TASKS_IN_PROGRESS}}
|
|
40
|
+
**Blocked:** {{TASKS_BLOCKED}}
|
|
41
|
+
|
|
42
|
+
{{#if CURRENT_TASK}}
|
|
43
|
+
**Current Task:** {{CURRENT_TASK.id}} - {{CURRENT_TASK.title}}
|
|
44
|
+
{{/if}}
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Active Agents ({{ACTIVE_AGENTS_COUNT}})
|
|
49
|
+
|
|
50
|
+
### Team Structure
|
|
51
|
+
|
|
52
|
+
{{#if TEAM_LEAD}}
|
|
53
|
+
**Team Lead:** {{TEAM_LEAD.title}} (`{{TEAM_LEAD.id}}`)
|
|
54
|
+
{{/if}}
|
|
55
|
+
|
|
56
|
+
{{#each SQUADS}}
|
|
57
|
+
### {{leader.title}} Squad
|
|
58
|
+
**Leader:** `{{leader.id}}`
|
|
59
|
+
**Members ({{members.length}}):**
|
|
60
|
+
{{#each members}}
|
|
61
|
+
- {{title}} (`{{id}}`) {{#if status}}[{{status}}]{{/if}}
|
|
62
|
+
{{/each}}
|
|
63
|
+
{{/each}}
|
|
64
|
+
|
|
65
|
+
### Validators (Run in Hooks)
|
|
66
|
+
{{#each VALIDATORS}}
|
|
67
|
+
- {{title}} (`{{id}}`)
|
|
68
|
+
{{/each}}
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Agent Teams
|
|
73
|
+
|
|
74
|
+
{{#if AGENT_TEAMS_DECISION}}
|
|
75
|
+
{{#if AGENT_TEAMS_DECISION.useAgentTeams}}
|
|
76
|
+
✅ **Agent Teams Recommended**
|
|
77
|
+
|
|
78
|
+
**Reason:** {{AGENT_TEAMS_DECISION.reason}}
|
|
79
|
+
**Display Mode:** {{AGENT_TEAMS_DECISION.displayMode}}
|
|
80
|
+
**Total Teammates:** {{AGENT_TEAMS_DECISION.totalTeammates}}
|
|
81
|
+
|
|
82
|
+
**Team Composition:**
|
|
83
|
+
- Team Lead: {{AGENT_TEAMS_DECISION.teamLead}}
|
|
84
|
+
- Domain Leaders: {{AGENT_TEAMS_DECISION.squads}}
|
|
85
|
+
- Validators (hooks): {{AGENT_TEAMS_DECISION.validators}}
|
|
86
|
+
|
|
87
|
+
{{else}}
|
|
88
|
+
❌ **Single Session Recommended**
|
|
89
|
+
|
|
90
|
+
**Reason:** {{AGENT_TEAMS_DECISION.reason}}
|
|
91
|
+
**Recommendation:** {{AGENT_TEAMS_DECISION.recommendation}}
|
|
92
|
+
{{/if}}
|
|
93
|
+
{{/if}}
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Outputs Generated
|
|
98
|
+
|
|
99
|
+
{{#each OUTPUTS}}
|
|
100
|
+
### {{type}}
|
|
101
|
+
**Status:** {{#if generated}}✅ Generated{{else}}⏳ Pending{{/if}}
|
|
102
|
+
{{#if path}}**Path:** `{{path}}`{{/if}}
|
|
103
|
+
{{#if generatedAt}}**Generated:** {{generatedAt}}{{/if}}
|
|
104
|
+
{{/each}}
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Decisions Log
|
|
109
|
+
|
|
110
|
+
{{#each DECISIONS}}
|
|
111
|
+
### ADR-{{id}}: {{title}}
|
|
112
|
+
|
|
113
|
+
**Status:** {{status}}
|
|
114
|
+
**Date:** {{date}}
|
|
115
|
+
**Decided By:** {{decidedBy}}
|
|
116
|
+
|
|
117
|
+
**Context:** {{context}}
|
|
118
|
+
|
|
119
|
+
**Decision:** {{decision}}
|
|
120
|
+
|
|
121
|
+
{{#if constraints}}
|
|
122
|
+
**Constraints for Validators:**
|
|
123
|
+
```json
|
|
124
|
+
{{constraints}}
|
|
125
|
+
```
|
|
126
|
+
{{/if}}
|
|
127
|
+
|
|
128
|
+
{{#if alternatives}}
|
|
129
|
+
**Alternatives Considered:**
|
|
130
|
+
{{#each alternatives}}
|
|
131
|
+
- {{name}}: {{rationale}}
|
|
132
|
+
{{/each}}
|
|
133
|
+
{{/if}}
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
{{/each}}
|
|
137
|
+
|
|
138
|
+
{{#unless DECISIONS}}
|
|
139
|
+
No decisions documented yet. Decisions will be logged in `decisions.md` during Design phase.
|
|
140
|
+
{{/unless}}
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Validation Status
|
|
145
|
+
|
|
146
|
+
{{#if VALIDATION_RESULTS}}
|
|
147
|
+
### Latest Validation ({{VALIDATION_TIMESTAMP}})
|
|
148
|
+
|
|
149
|
+
**Overall:** {{#if VALIDATION_PASSED}}✅ PASSED{{else}}❌ FAILED{{/if}}
|
|
150
|
+
|
|
151
|
+
{{#each VALIDATION_RESULTS}}
|
|
152
|
+
#### {{validator}}
|
|
153
|
+
**Status:** {{#if passed}}✅ PASSED{{else}}❌ FAILED{{/if}}
|
|
154
|
+
{{#if issues}}
|
|
155
|
+
**Issues ({{issues.length}}):**
|
|
156
|
+
{{#each issues}}
|
|
157
|
+
- [{{severity}}] {{message}} ({{file}}:{{line}})
|
|
158
|
+
{{/each}}
|
|
159
|
+
{{/if}}
|
|
160
|
+
{{/each}}
|
|
161
|
+
|
|
162
|
+
{{else}}
|
|
163
|
+
No validation runs yet. Validators run automatically via checkpoints.
|
|
164
|
+
{{/if}}
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Tasks Breakdown
|
|
169
|
+
|
|
170
|
+
{{#each TASKS}}
|
|
171
|
+
### {{id}}: {{title}}
|
|
172
|
+
|
|
173
|
+
**Status:** {{status}}
|
|
174
|
+
{{#if priority}}**Priority:** {{priority}}{{/if}}
|
|
175
|
+
{{#if estimatedFiles}}**Estimated Files:** {{estimatedFiles}}{{/if}}
|
|
176
|
+
{{#if dependencies}}**Dependencies:** {{dependencies}}{{/if}}
|
|
177
|
+
|
|
178
|
+
{{#if description}}
|
|
179
|
+
{{description}}
|
|
180
|
+
{{/if}}
|
|
181
|
+
|
|
182
|
+
{{#if agent}}**Assigned Agent:** `{{agent}}`{{/if}}
|
|
183
|
+
|
|
184
|
+
{{#if checkpointAfter}}🔖 **Checkpoint after this task**{{/if}}
|
|
185
|
+
|
|
186
|
+
{{#if completedAt}}✅ Completed: {{completedAt}}{{/if}}
|
|
187
|
+
{{#if blockedReason}}❌ Blocked: {{blockedReason}}{{/if}}
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
{{/each}}
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Checkpoints
|
|
195
|
+
|
|
196
|
+
{{#each CHECKPOINTS}}
|
|
197
|
+
### {{timestamp}}
|
|
198
|
+
**Phase:** {{phase}}
|
|
199
|
+
**Tasks Completed:** {{tasksCompleted}}/{{tasksTotal}}
|
|
200
|
+
|
|
201
|
+
{{#if note}}
|
|
202
|
+
**Note:** {{note}}
|
|
203
|
+
{{/if}}
|
|
204
|
+
|
|
205
|
+
{{#if validation}}
|
|
206
|
+
**Validation:** {{validation.passed}}/{{validation.total}} checks passed
|
|
207
|
+
{{#if validation.issues}}
|
|
208
|
+
- Issues: {{validation.issues}}
|
|
209
|
+
{{/if}}
|
|
210
|
+
{{/if}}
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
{{/each}}
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Related Standards
|
|
218
|
+
|
|
219
|
+
{{#each RELATED_STANDARDS}}
|
|
220
|
+
### {{name}}
|
|
221
|
+
**Path:** `{{path}}`
|
|
222
|
+
{{#if relevantSections}}
|
|
223
|
+
**Relevant Sections:** {{relevantSections}}
|
|
224
|
+
{{/if}}
|
|
225
|
+
{{/each}}
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Quick Actions
|
|
230
|
+
|
|
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
|
+
```
|
|
242
|
+
|
|
243
|
+
### Advance Phase
|
|
244
|
+
```bash
|
|
245
|
+
# Check prerequisites and advance
|
|
246
|
+
morph-spec phase advance {{FEATURE_NAME}}
|
|
247
|
+
|
|
248
|
+
# Validate feature outputs
|
|
249
|
+
morph-spec validate-feature {{FEATURE_NAME}}
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### Validation
|
|
253
|
+
```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}}
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
## File Paths
|
|
264
|
+
|
|
265
|
+
- **Outputs Directory:** `.morph/features/{{FEATURE_NAME}}/`
|
|
266
|
+
- **Proposal:** `{{PROPOSAL_PATH}}`
|
|
267
|
+
- **Spec:** `{{SPEC_PATH}}`
|
|
268
|
+
- **Contracts:** `{{CONTRACTS_PATH}}`
|
|
269
|
+
- **Tasks:** `{{TASKS_PATH}}`
|
|
270
|
+
- **Decisions:** `{{DECISIONS_PATH}}`
|
|
271
|
+
- **Recap:** `{{RECAP_PATH}}`
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
*Generated by MORPH-SPEC Framework v{{MORPH_VERSION}}*
|
|
276
|
+
*Feature ID: {{FEATURE_ID}}*
|