opencode-goopspec 0.1.2 → 0.1.4
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 +255 -331
- package/agents/goop-debugger.md +175 -172
- package/agents/goop-designer.md +232 -160
- package/agents/goop-executor.md +197 -127
- package/agents/goop-explorer.md +148 -150
- package/agents/goop-librarian.md +218 -164
- package/agents/goop-orchestrator.md +392 -280
- package/agents/goop-planner.md +331 -153
- package/agents/goop-researcher.md +198 -126
- package/agents/goop-tester.md +277 -202
- package/agents/goop-verifier.md +191 -201
- package/agents/goop-writer.md +241 -133
- package/agents/memory-distiller.md +228 -136
- package/commands/goop-accept.md +434 -160
- package/commands/goop-amend.md +35 -151
- package/commands/goop-complete.md +39 -183
- package/commands/goop-debug.md +33 -298
- package/commands/goop-discuss.md +381 -85
- package/commands/goop-execute.md +391 -108
- package/commands/goop-help.md +11 -0
- package/commands/goop-map-codebase.md +16 -3
- package/commands/goop-memory.md +11 -0
- package/commands/goop-milestone.md +29 -192
- package/commands/goop-pause.md +31 -40
- package/commands/goop-plan.md +458 -46
- package/commands/goop-quick.md +38 -142
- package/commands/goop-recall.md +11 -0
- package/commands/goop-remember.md +12 -0
- package/commands/goop-research.md +52 -73
- package/commands/goop-resume.md +28 -37
- package/commands/goop-setup.md +225 -124
- package/commands/goop-specify.md +321 -121
- package/commands/goop-status.md +256 -110
- package/dist/index.js +6289 -2820
- package/package.json +1 -1
- package/references/context-injection.md +307 -0
- package/references/discovery-interview.md +278 -0
- package/references/enforcement-system.md +213 -0
- package/references/handoff-protocol.md +290 -0
- package/references/interactive-questioning.md +122 -0
- package/references/model-profiles.md +1 -1
- package/references/phase-gates.md +360 -0
- package/references/plugin-architecture.md +212 -0
- package/references/response-format.md +41 -9
- package/references/subagent-protocol.md +83 -33
- package/references/ui-interaction-patterns.md +133 -0
- package/references/visual-style.md +199 -0
- package/references/workflow-accept.md +60 -273
- package/references/workflow-execute.md +63 -274
- package/references/workflow-plan.md +86 -133
- package/references/workflow-research.md +78 -186
- package/references/workflow-specify.md +64 -221
- package/references/xml-response-schema.md +236 -0
- package/templates/blueprint.md +88 -41
- package/templates/chronicle.md +130 -16
- package/templates/handoff.md +140 -0
- package/templates/project.md +114 -0
- package/templates/requirements.md +121 -0
- package/templates/spec.md +85 -20
- package/templates/state.md +103 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Session Handoff
|
|
2
|
+
|
|
3
|
+
**Generated:** {{generated_timestamp}}
|
|
4
|
+
**Phase:** {{current_phase}}
|
|
5
|
+
**Session:** {{session_id}}
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Accomplished This Session
|
|
10
|
+
|
|
11
|
+
### Completed Tasks
|
|
12
|
+
{{#completed_tasks}}
|
|
13
|
+
- [x] {{task_id}}: {{description}} {{#commit}}(commit: `{{commit}}`){{/commit}}
|
|
14
|
+
{{/completed_tasks}}
|
|
15
|
+
|
|
16
|
+
### Key Outcomes
|
|
17
|
+
{{#key_outcomes}}
|
|
18
|
+
- {{.}}
|
|
19
|
+
{{/key_outcomes}}
|
|
20
|
+
|
|
21
|
+
### Decisions Made
|
|
22
|
+
{{#decisions}}
|
|
23
|
+
- **{{title}}**: {{choice}} — {{rationale}}
|
|
24
|
+
{{/decisions}}
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Current State
|
|
29
|
+
|
|
30
|
+
### Workflow Position
|
|
31
|
+
| Attribute | Value |
|
|
32
|
+
|-----------|-------|
|
|
33
|
+
| **Phase** | {{phase}} |
|
|
34
|
+
| **Spec Locked** | {{spec_locked}} |
|
|
35
|
+
| **Wave** | {{current_wave}} of {{total_waves}} |
|
|
36
|
+
| **Task** | {{current_task}} of {{total_tasks}} |
|
|
37
|
+
|
|
38
|
+
### Files Modified
|
|
39
|
+
{{#files_modified}}
|
|
40
|
+
- `{{path}}` — {{description}}
|
|
41
|
+
{{/files_modified}}
|
|
42
|
+
|
|
43
|
+
### Commits Made
|
|
44
|
+
{{#commits}}
|
|
45
|
+
- `{{sha}}` — {{message}}
|
|
46
|
+
{{/commits}}
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Next Session Instructions
|
|
51
|
+
|
|
52
|
+
### Command to Run
|
|
53
|
+
```
|
|
54
|
+
{{next_command}}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Files to Read First
|
|
58
|
+
{{#files_to_read}}
|
|
59
|
+
1. `{{path}}` — {{reason}}
|
|
60
|
+
{{/files_to_read}}
|
|
61
|
+
|
|
62
|
+
### Context Summary
|
|
63
|
+
|
|
64
|
+
{{context_summary}}
|
|
65
|
+
|
|
66
|
+
### Immediate Next Task
|
|
67
|
+
|
|
68
|
+
**Task:** {{next_task_id}} — {{next_task_name}}
|
|
69
|
+
|
|
70
|
+
**Files:**
|
|
71
|
+
{{#next_task_files}}
|
|
72
|
+
- `{{.}}`
|
|
73
|
+
{{/next_task_files}}
|
|
74
|
+
|
|
75
|
+
**Action:** {{next_task_action}}
|
|
76
|
+
|
|
77
|
+
**Verify:** `{{next_task_verify}}`
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Warnings & Blockers
|
|
82
|
+
|
|
83
|
+
### Active Blockers
|
|
84
|
+
{{#blockers}}
|
|
85
|
+
- **{{title}}**: {{description}}
|
|
86
|
+
- Type: {{type}}
|
|
87
|
+
- Resolution: {{resolution}}
|
|
88
|
+
{{/blockers}}
|
|
89
|
+
|
|
90
|
+
{{^blockers}}
|
|
91
|
+
None — clear to proceed.
|
|
92
|
+
{{/blockers}}
|
|
93
|
+
|
|
94
|
+
### Gotchas Discovered
|
|
95
|
+
{{#gotchas}}
|
|
96
|
+
- {{.}}
|
|
97
|
+
{{/gotchas}}
|
|
98
|
+
|
|
99
|
+
{{^gotchas}}
|
|
100
|
+
None discovered this session.
|
|
101
|
+
{{/gotchas}}
|
|
102
|
+
|
|
103
|
+
### Pending Decisions
|
|
104
|
+
{{#pending_decisions}}
|
|
105
|
+
- **{{title}}**: {{description}}
|
|
106
|
+
- Options: {{options}}
|
|
107
|
+
- Recommendation: {{recommendation}}
|
|
108
|
+
{{/pending_decisions}}
|
|
109
|
+
|
|
110
|
+
{{^pending_decisions}}
|
|
111
|
+
None — no user input needed.
|
|
112
|
+
{{/pending_decisions}}
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Memory Saved
|
|
117
|
+
|
|
118
|
+
Key learnings persisted to memory this session:
|
|
119
|
+
|
|
120
|
+
{{#memory_saved}}
|
|
121
|
+
- **{{title}}** ({{type}}, importance: {{importance}})
|
|
122
|
+
{{/memory_saved}}
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Resume Checklist
|
|
127
|
+
|
|
128
|
+
For the next session:
|
|
129
|
+
|
|
130
|
+
- [ ] Start new session for fresh context
|
|
131
|
+
- [ ] Run: `{{next_command}}`
|
|
132
|
+
- [ ] Read files listed above
|
|
133
|
+
- [ ] Continue with immediate next task
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
*Start a new session for fresh 200k context window.*
|
|
138
|
+
*All state is preserved in GoopSpec files.*
|
|
139
|
+
|
|
140
|
+
*Session Handoff — GoopSpec v0.1.4*
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# PROJECT: {{project_name}}
|
|
2
|
+
|
|
3
|
+
**Type:** {{project_type}}
|
|
4
|
+
**Created:** {{created_date}}
|
|
5
|
+
**Status:** Active
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Vision
|
|
10
|
+
|
|
11
|
+
{{vision_statement}}
|
|
12
|
+
|
|
13
|
+
### Why This Matters
|
|
14
|
+
{{why_it_matters}}
|
|
15
|
+
|
|
16
|
+
### Target Users
|
|
17
|
+
{{target_users}}
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Success Criteria
|
|
22
|
+
|
|
23
|
+
When complete, we will have:
|
|
24
|
+
|
|
25
|
+
{{#success_criteria}}
|
|
26
|
+
- {{.}}
|
|
27
|
+
{{/success_criteria}}
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Technical Foundation
|
|
32
|
+
|
|
33
|
+
### Stack
|
|
34
|
+
| Layer | Technology | Version |
|
|
35
|
+
|-------|------------|---------|
|
|
36
|
+
| Runtime | {{runtime}} | {{runtime_version}} |
|
|
37
|
+
| Language | {{language}} | {{language_version}} |
|
|
38
|
+
| Framework | {{framework}} | {{framework_version}} |
|
|
39
|
+
| Database | {{database}} | {{database_version}} |
|
|
40
|
+
| Testing | {{testing}} | {{testing_version}} |
|
|
41
|
+
|
|
42
|
+
### Key Dependencies
|
|
43
|
+
{{#dependencies}}
|
|
44
|
+
- `{{name}}`: {{purpose}}
|
|
45
|
+
{{/dependencies}}
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Conventions
|
|
50
|
+
|
|
51
|
+
### Naming
|
|
52
|
+
- **Files:** {{file_naming}}
|
|
53
|
+
- **Functions:** {{function_naming}}
|
|
54
|
+
- **Components:** {{component_naming}}
|
|
55
|
+
- **Constants:** {{constant_naming}}
|
|
56
|
+
|
|
57
|
+
### Code Style
|
|
58
|
+
- **Exports:** {{export_style}}
|
|
59
|
+
- **Types:** {{type_style}}
|
|
60
|
+
- **Error Handling:** {{error_handling}}
|
|
61
|
+
|
|
62
|
+
### Git
|
|
63
|
+
- **Branch Format:** {{branch_format}}
|
|
64
|
+
- **Commit Format:** {{commit_format}}
|
|
65
|
+
- **PR Process:** {{pr_process}}
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Architecture Overview
|
|
70
|
+
|
|
71
|
+
{{architecture_description}}
|
|
72
|
+
|
|
73
|
+
### Directory Structure
|
|
74
|
+
```
|
|
75
|
+
{{directory_structure}}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Key Integration Points
|
|
79
|
+
{{#integration_points}}
|
|
80
|
+
- **{{name}}:** {{description}}
|
|
81
|
+
{{/integration_points}}
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Boundaries
|
|
86
|
+
|
|
87
|
+
### Always Do
|
|
88
|
+
{{#always_do}}
|
|
89
|
+
- {{.}}
|
|
90
|
+
{{/always_do}}
|
|
91
|
+
|
|
92
|
+
### Ask First
|
|
93
|
+
{{#ask_first}}
|
|
94
|
+
- {{.}}
|
|
95
|
+
{{/ask_first}}
|
|
96
|
+
|
|
97
|
+
### Never Do
|
|
98
|
+
{{#never_do}}
|
|
99
|
+
- {{.}}
|
|
100
|
+
{{/never_do}}
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Milestones
|
|
105
|
+
|
|
106
|
+
| Milestone | Status | Target |
|
|
107
|
+
|-----------|--------|--------|
|
|
108
|
+
{{#milestones}}
|
|
109
|
+
| {{name}} | {{status}} | {{target_date}} |
|
|
110
|
+
{{/milestones}}
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
*Project foundation document - GoopSpec v0.1.4*
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# REQUIREMENTS: {{feature_name}}
|
|
2
|
+
|
|
3
|
+
**Generated:** {{generated_date}}
|
|
4
|
+
**Interview Status:** {{interview_status}}
|
|
5
|
+
**Ready for Planning:** {{ready_for_planning}}
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Vision
|
|
10
|
+
|
|
11
|
+
{{vision_statement}}
|
|
12
|
+
|
|
13
|
+
**Problem Solved:** {{problem_solved}}
|
|
14
|
+
|
|
15
|
+
**Why Now:** {{why_now}}
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Must-Haves (The Contract)
|
|
20
|
+
|
|
21
|
+
These are non-negotiable. The feature is incomplete without ALL of these:
|
|
22
|
+
|
|
23
|
+
{{#must_haves}}
|
|
24
|
+
- [ ] **{{id}}**: {{title}}
|
|
25
|
+
- {{description}}
|
|
26
|
+
- **Acceptance:** {{acceptance_criteria}}
|
|
27
|
+
{{/must_haves}}
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Nice-to-Haves
|
|
32
|
+
|
|
33
|
+
These enhance the deliverable but are not required for acceptance:
|
|
34
|
+
|
|
35
|
+
{{#nice_to_haves}}
|
|
36
|
+
- [ ] **{{id}}**: {{title}}
|
|
37
|
+
- {{description}}
|
|
38
|
+
- **Defer if:** {{defer_condition}}
|
|
39
|
+
{{/nice_to_haves}}
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Out of Scope
|
|
44
|
+
|
|
45
|
+
Explicitly excluded from this work:
|
|
46
|
+
|
|
47
|
+
{{#out_of_scope}}
|
|
48
|
+
- **{{item}}**: {{reason}}
|
|
49
|
+
{{/out_of_scope}}
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Constraints
|
|
54
|
+
|
|
55
|
+
### Technical Constraints
|
|
56
|
+
{{#technical_constraints}}
|
|
57
|
+
- {{.}}
|
|
58
|
+
{{/technical_constraints}}
|
|
59
|
+
|
|
60
|
+
### Practical Constraints
|
|
61
|
+
{{#practical_constraints}}
|
|
62
|
+
- {{.}}
|
|
63
|
+
{{/practical_constraints}}
|
|
64
|
+
|
|
65
|
+
### Integration Constraints
|
|
66
|
+
{{#integration_constraints}}
|
|
67
|
+
- **{{system}}:** {{constraint}}
|
|
68
|
+
{{/integration_constraints}}
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Assumptions
|
|
73
|
+
|
|
74
|
+
We are assuming the following to be true:
|
|
75
|
+
|
|
76
|
+
{{#assumptions}}
|
|
77
|
+
- **{{assumption}}**
|
|
78
|
+
- If false: {{impact}}
|
|
79
|
+
{{/assumptions}}
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Risks & Mitigations
|
|
84
|
+
|
|
85
|
+
| Risk | Impact | Likelihood | Mitigation |
|
|
86
|
+
|------|--------|------------|------------|
|
|
87
|
+
{{#risks}}
|
|
88
|
+
| {{risk}} | {{impact}} | {{likelihood}} | {{mitigation}} |
|
|
89
|
+
{{/risks}}
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Open Questions
|
|
94
|
+
|
|
95
|
+
Questions that need answers before or during planning:
|
|
96
|
+
|
|
97
|
+
{{#open_questions}}
|
|
98
|
+
- [ ] **Q{{number}}:** {{question}}
|
|
99
|
+
- Status: {{status}}
|
|
100
|
+
- Answer: {{answer}}
|
|
101
|
+
{{/open_questions}}
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Interview Checklist
|
|
106
|
+
|
|
107
|
+
| Question | Answered |
|
|
108
|
+
|----------|----------|
|
|
109
|
+
| Vision defined | {{vision_answered}} |
|
|
110
|
+
| Must-haves listed | {{must_haves_answered}} |
|
|
111
|
+
| Constraints documented | {{constraints_answered}} |
|
|
112
|
+
| Out of scope defined | {{out_of_scope_answered}} |
|
|
113
|
+
| Assumptions listed | {{assumptions_answered}} |
|
|
114
|
+
| Risks identified | {{risks_answered}} |
|
|
115
|
+
|
|
116
|
+
**Interview Complete:** {{interview_complete}}
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
*Discovery interview output - GoopSpec v0.1.4*
|
|
121
|
+
*Run `/goop-plan` when ready for planning.*
|
package/templates/spec.md
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
**Created:** {{created_date}}
|
|
5
5
|
**Last Updated:** {{updated_date}}
|
|
6
6
|
**Status:** {{status}}
|
|
7
|
+
**Locked:** {{locked}}
|
|
8
|
+
{{#locked_at}}**Locked At:** {{locked_at}}{{/locked_at}}
|
|
7
9
|
|
|
8
10
|
---
|
|
9
11
|
|
|
@@ -13,6 +15,8 @@
|
|
|
13
15
|
|
|
14
16
|
**Why this matters:** {{why}}
|
|
15
17
|
|
|
18
|
+
**Target Users:** {{target_users}}
|
|
19
|
+
|
|
16
20
|
---
|
|
17
21
|
|
|
18
22
|
## Must-Haves (The Contract)
|
|
@@ -20,17 +24,27 @@
|
|
|
20
24
|
These are non-negotiable. The spec is not complete until ALL must-haves are delivered.
|
|
21
25
|
|
|
22
26
|
{{#must_haves}}
|
|
23
|
-
|
|
24
|
-
|
|
27
|
+
### MH{{number}}: {{title}}
|
|
28
|
+
|
|
29
|
+
{{description}}
|
|
30
|
+
|
|
31
|
+
**Acceptance Criteria:**
|
|
32
|
+
{{#acceptance_criteria}}
|
|
33
|
+
- [ ] {{.}}
|
|
34
|
+
{{/acceptance_criteria}}
|
|
35
|
+
|
|
36
|
+
**Traced To:** {{#traced_to}}Wave {{wave}}, Task {{task}}{{/traced_to}}{{^traced_to}}*Not yet mapped*{{/traced_to}}
|
|
25
37
|
|
|
26
38
|
---
|
|
39
|
+
{{/must_haves}}
|
|
27
40
|
|
|
28
41
|
## Nice-to-Haves
|
|
29
42
|
|
|
30
43
|
These enhance the deliverable but are not required for acceptance.
|
|
31
44
|
|
|
32
45
|
{{#nice_to_haves}}
|
|
33
|
-
- [ ] **{{title}}**: {{description}}
|
|
46
|
+
- [ ] **NH{{number}}: {{title}}**: {{description}}
|
|
47
|
+
- Defer if: {{defer_condition}}
|
|
34
48
|
{{/nice_to_haves}}
|
|
35
49
|
|
|
36
50
|
---
|
|
@@ -40,7 +54,7 @@ These enhance the deliverable but are not required for acceptance.
|
|
|
40
54
|
Explicitly excluded to prevent scope creep.
|
|
41
55
|
|
|
42
56
|
{{#out_of_scope}}
|
|
43
|
-
- {{item}}
|
|
57
|
+
- **{{item}}** — {{reason}}
|
|
44
58
|
{{/out_of_scope}}
|
|
45
59
|
|
|
46
60
|
---
|
|
@@ -48,17 +62,21 @@ Explicitly excluded to prevent scope creep.
|
|
|
48
62
|
## Technical Constraints
|
|
49
63
|
|
|
50
64
|
### Stack (Non-Negotiable)
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
65
|
+
| Component | Technology | Version |
|
|
66
|
+
|-----------|------------|---------|
|
|
67
|
+
| Runtime | {{runtime}} | {{runtime_version}} |
|
|
68
|
+
| Language | {{language}} | {{language_version}} |
|
|
69
|
+
| Framework | {{framework}} | {{framework_version}} |
|
|
70
|
+
| Database | {{database}} | {{database_version}} |
|
|
71
|
+
| Testing | {{testing}} | {{testing_version}} |
|
|
56
72
|
|
|
57
73
|
### Conventions
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
74
|
+
| Aspect | Standard |
|
|
75
|
+
|--------|----------|
|
|
76
|
+
| Files | {{file_naming}} |
|
|
77
|
+
| Components | {{component_naming}} |
|
|
78
|
+
| Functions | {{function_naming}} |
|
|
79
|
+
| Commits | {{commit_format}} |
|
|
62
80
|
|
|
63
81
|
### Boundaries
|
|
64
82
|
|
|
@@ -79,25 +97,72 @@ Explicitly excluded to prevent scope creep.
|
|
|
79
97
|
|
|
80
98
|
---
|
|
81
99
|
|
|
100
|
+
## Assumptions
|
|
101
|
+
|
|
102
|
+
We are assuming:
|
|
103
|
+
|
|
104
|
+
{{#assumptions}}
|
|
105
|
+
- **{{assumption}}**
|
|
106
|
+
- If false: {{impact}}
|
|
107
|
+
{{/assumptions}}
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Risks & Mitigations
|
|
112
|
+
|
|
113
|
+
| Risk | Impact | Likelihood | Mitigation |
|
|
114
|
+
|------|--------|------------|------------|
|
|
115
|
+
{{#risks}}
|
|
116
|
+
| {{risk}} | {{impact}} | {{likelihood}} | {{mitigation}} |
|
|
117
|
+
{{/risks}}
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Traceability Matrix
|
|
122
|
+
|
|
123
|
+
Every must-have maps to specific blueprint tasks:
|
|
124
|
+
|
|
125
|
+
| Must-Have | Covered By | Status |
|
|
126
|
+
|-----------|------------|--------|
|
|
127
|
+
{{#traceability}}
|
|
128
|
+
| MH{{mh_number}}: {{mh_title}} | Wave {{wave}}, Task {{task}} | {{status}} |
|
|
129
|
+
{{/traceability}}
|
|
130
|
+
|
|
131
|
+
**Coverage:** {{coverage_percentage}}% of must-haves mapped
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
82
135
|
## Acceptance Criteria
|
|
83
136
|
|
|
84
137
|
The spec is complete when:
|
|
85
138
|
|
|
86
|
-
{{#
|
|
139
|
+
{{#final_acceptance}}
|
|
87
140
|
1. {{.}}
|
|
88
|
-
{{/
|
|
141
|
+
{{/final_acceptance}}
|
|
89
142
|
|
|
90
143
|
---
|
|
91
144
|
|
|
92
145
|
## Amendment History
|
|
93
146
|
|
|
94
|
-
| Version | Date | Change | Approved By |
|
|
95
|
-
|
|
147
|
+
| Version | Date | Change | Impact | Approved By |
|
|
148
|
+
|---------|------|--------|--------|-------------|
|
|
96
149
|
{{#amendments}}
|
|
97
|
-
| {{version}} | {{date}} | {{change}} | {{approved_by}} |
|
|
150
|
+
| {{version}} | {{date}} | {{change}} | {{impact}} | {{approved_by}} |
|
|
98
151
|
{{/amendments}}
|
|
99
152
|
|
|
100
153
|
---
|
|
101
154
|
|
|
102
|
-
|
|
103
|
-
|
|
155
|
+
## Verification Protocol
|
|
156
|
+
|
|
157
|
+
Before acceptance, verify:
|
|
158
|
+
|
|
159
|
+
- [ ] All must-haves pass acceptance criteria
|
|
160
|
+
- [ ] All tests pass
|
|
161
|
+
- [ ] No type errors
|
|
162
|
+
- [ ] Security checklist reviewed
|
|
163
|
+
- [ ] Documentation updated
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
*This specification is a CONTRACT. Changes require explicit amendment via `/goop-amend`.*
|
|
168
|
+
*GoopSpec v0.1.4*
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Current State
|
|
2
|
+
|
|
3
|
+
**Last Updated:** {{last_updated}}
|
|
4
|
+
**Session:** {{session_id}}
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Workflow Position
|
|
9
|
+
|
|
10
|
+
| Attribute | Value |
|
|
11
|
+
|-----------|-------|
|
|
12
|
+
| **Phase** | {{phase}} |
|
|
13
|
+
| **Interview Complete** | {{interview_complete}} |
|
|
14
|
+
| **Spec Locked** | {{spec_locked}} |
|
|
15
|
+
| **Wave** | {{current_wave}} of {{total_waves}} |
|
|
16
|
+
| **Task** | {{current_task}} of {{total_tasks}} |
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Quick Resume
|
|
21
|
+
|
|
22
|
+
### Command to Run
|
|
23
|
+
```
|
|
24
|
+
{{next_command}}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### What's Next
|
|
28
|
+
{{next_task_description}}
|
|
29
|
+
|
|
30
|
+
### Files to Read
|
|
31
|
+
{{#files_to_read}}
|
|
32
|
+
1. `{{.}}`
|
|
33
|
+
{{/files_to_read}}
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Progress Summary
|
|
38
|
+
|
|
39
|
+
### Completed
|
|
40
|
+
{{#completed_items}}
|
|
41
|
+
- [x] {{.}}
|
|
42
|
+
{{/completed_items}}
|
|
43
|
+
|
|
44
|
+
### In Progress
|
|
45
|
+
{{#in_progress_items}}
|
|
46
|
+
- [ ] {{.}} ← **Current**
|
|
47
|
+
{{/in_progress_items}}
|
|
48
|
+
|
|
49
|
+
### Remaining
|
|
50
|
+
{{#remaining_items}}
|
|
51
|
+
- [ ] {{.}}
|
|
52
|
+
{{/remaining_items}}
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Active Blockers
|
|
57
|
+
|
|
58
|
+
{{#blockers}}
|
|
59
|
+
### {{title}}
|
|
60
|
+
- **Type:** {{type}}
|
|
61
|
+
- **Impact:** {{impact}}
|
|
62
|
+
- **Resolution:** {{resolution}}
|
|
63
|
+
{{/blockers}}
|
|
64
|
+
|
|
65
|
+
{{^blockers}}
|
|
66
|
+
No active blockers.
|
|
67
|
+
{{/blockers}}
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Pending Decisions
|
|
72
|
+
|
|
73
|
+
{{#pending_decisions}}
|
|
74
|
+
### {{title}}
|
|
75
|
+
- **Context:** {{context}}
|
|
76
|
+
- **Options:** {{options}}
|
|
77
|
+
- **Recommendation:** {{recommendation}}
|
|
78
|
+
{{/pending_decisions}}
|
|
79
|
+
|
|
80
|
+
{{^pending_decisions}}
|
|
81
|
+
No pending decisions.
|
|
82
|
+
{{/pending_decisions}}
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Recent Activity
|
|
87
|
+
|
|
88
|
+
| Time | Action | Agent |
|
|
89
|
+
|------|--------|-------|
|
|
90
|
+
{{#recent_activity}}
|
|
91
|
+
| {{time}} | {{action}} | {{agent}} |
|
|
92
|
+
{{/recent_activity}}
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Session Context
|
|
97
|
+
|
|
98
|
+
{{session_context}}
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
*Human-readable state mirror - GoopSpec v0.1.4*
|
|
103
|
+
*See also: state.json for machine-readable state*
|