opencode-goopspec 0.1.2 → 0.1.3
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 +36 -34
- package/agents/goop-orchestrator.md +106 -20
- package/commands/goop-accept.md +43 -163
- package/commands/goop-amend.md +26 -155
- package/commands/goop-complete.md +30 -187
- package/commands/goop-debug.md +25 -303
- package/commands/goop-discuss.md +9 -125
- package/commands/goop-execute.md +49 -115
- package/commands/goop-map-codebase.md +3 -3
- package/commands/goop-milestone.md +20 -196
- package/commands/goop-pause.md +22 -43
- package/commands/goop-plan.md +404 -46
- package/commands/goop-quick.md +29 -145
- package/commands/goop-research.md +43 -77
- package/commands/goop-resume.md +19 -40
- package/commands/goop-setup.md +207 -116
- package/commands/goop-specify.md +58 -134
- package/commands/goop-status.md +32 -134
- package/dist/index.js +5952 -2796
- package/package.json +1 -1
- package/references/interactive-questioning.md +122 -0
- package/references/ui-interaction-patterns.md +133 -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/package.json
CHANGED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Interactive Questioning Protocol
|
|
2
|
+
|
|
3
|
+
**GoopSpec Voice:** Direct, Purposeful, Memory-First.
|
|
4
|
+
|
|
5
|
+
We use interactive questioning to trade ambiguity for clarity without halting momentum. Every question must earn its right to interrupt the user.
|
|
6
|
+
|
|
7
|
+
## Core Philosophy
|
|
8
|
+
|
|
9
|
+
1. **Memory First:** Never ask what you already know.
|
|
10
|
+
2. **Gate-Oriented:** Questions should drive towards a Decision Gate (Contract, Checkpoint, Acceptance).
|
|
11
|
+
3. **Skill-Backed:** Use skills to frame questions intelligently, not just to gather data.
|
|
12
|
+
4. **Progressive:** Start high-level; drill down only when necessary.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 1. Memory-Aware Questioning
|
|
17
|
+
|
|
18
|
+
Before formulating a question, you **MUST** search memory.
|
|
19
|
+
|
|
20
|
+
### The Protocol
|
|
21
|
+
1. **Search:** `memory_search({ query: "[topic] preference" })`
|
|
22
|
+
2. **Evaluate:** Do I have a high-confidence answer (Importance > 7)?
|
|
23
|
+
3. **Action:**
|
|
24
|
+
* **High Confidence:** Use it. Inform user: "Using saved preference for X."
|
|
25
|
+
* **Medium Confidence:** Confirm. "I recall you prefer X. Still true?"
|
|
26
|
+
* **No Data:** Ask. Then **SAVE** the answer.
|
|
27
|
+
|
|
28
|
+
### Examples
|
|
29
|
+
|
|
30
|
+
**❌ Bad (Amnesic):**
|
|
31
|
+
> "What database should we use?"
|
|
32
|
+
*(User has answered this 5 times before)*
|
|
33
|
+
|
|
34
|
+
**✅ Good (Memory-Aware):**
|
|
35
|
+
> ⬢ **Memory Recall:** You prefer **PostgreSQL** for new services.
|
|
36
|
+
> Proceeding with Postgres? [Y/n]
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 2. Skill-Aware Questioning
|
|
41
|
+
|
|
42
|
+
Don't just ask "What do you want?". Use loaded skills to provide *informed options*.
|
|
43
|
+
|
|
44
|
+
### The Protocol
|
|
45
|
+
1. **Consult Skill:** Use `research` or `security` or `architecture` skills to analyze the situation.
|
|
46
|
+
2. **Frame Options:** Present choices based on expert analysis.
|
|
47
|
+
3. **Ask:** specific, constrained questions.
|
|
48
|
+
|
|
49
|
+
### Examples
|
|
50
|
+
|
|
51
|
+
**❌ Bad (Generic):**
|
|
52
|
+
> "How should we handle authentication?"
|
|
53
|
+
|
|
54
|
+
**✅ Good (Skill-Backed - Security):**
|
|
55
|
+
> ⬢ **Security Skill Analysis:**
|
|
56
|
+
> For this stack, I recommend **OAuth2 with PKCE** for these reasons:
|
|
57
|
+
> 1. Matches your security baseline.
|
|
58
|
+
> 2. Best support for mobile clients.
|
|
59
|
+
>
|
|
60
|
+
> **Decision:** Implement OAuth2? [Y/n] or "Explain alternatives"
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 3. Decision Gates
|
|
65
|
+
|
|
66
|
+
Use formal Gates for high-impact questions. Stop the world.
|
|
67
|
+
|
|
68
|
+
### Contract Gate (Planning Phase)
|
|
69
|
+
*Must resolve scope before work begins.*
|
|
70
|
+
|
|
71
|
+
> **Question:** "Are these MUST-HAVES correct and complete?"
|
|
72
|
+
> **Trigger:** `/goop-specify`
|
|
73
|
+
> **Action:** Lock SPEC.md upon confirmation.
|
|
74
|
+
|
|
75
|
+
### Checkpoint Gate (Execution Phase)
|
|
76
|
+
*Stop for architectural forks in the road.*
|
|
77
|
+
|
|
78
|
+
> **Question:** "I found two valid patterns. A is faster, B is more scalable. Which path?"
|
|
79
|
+
> **Trigger:** Rule 4 (Architectural Decision).
|
|
80
|
+
> **Action:** Wait for user selection.
|
|
81
|
+
|
|
82
|
+
### Acceptance Gate (Completion Phase)
|
|
83
|
+
*Verify completion against the contract.*
|
|
84
|
+
|
|
85
|
+
> **Question:** "I have verified requirements A, B, and C. Ready to accept?"
|
|
86
|
+
> **Trigger:** `/goop-accept`
|
|
87
|
+
> **Action:** Archive task and update memory.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 4. Progressive Disclosure
|
|
92
|
+
|
|
93
|
+
Don't wall-of-text the user. Reveal complexity in layers.
|
|
94
|
+
|
|
95
|
+
### Level 1: The "Happy Path" Proposal
|
|
96
|
+
State the most likely path and ask for confirmation.
|
|
97
|
+
> "I plan to use **React Hook Form** for this form. Proceed?"
|
|
98
|
+
|
|
99
|
+
### Level 2: The Fork
|
|
100
|
+
If rejected or ambiguous, offer distinct high-level options.
|
|
101
|
+
> "Okay. Options:
|
|
102
|
+
> 1. **React Hook Form** (Standard, performant)
|
|
103
|
+
> 2. **Formik** (Legacy compatibility)
|
|
104
|
+
> 3. **Raw State** (Simple forms only)"
|
|
105
|
+
|
|
106
|
+
### Level 3: The Deep Dive
|
|
107
|
+
Only if requested, show full tradeoffs.
|
|
108
|
+
> "Here is the detailed comparison of bundle size, re-render performance, and API surface..."
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Checklist: Before You Ask
|
|
113
|
+
|
|
114
|
+
- [ ] **Did I search memory?** (Don't be amnesic)
|
|
115
|
+
- [ ] **Is this a "One-Way Door" decision?** (If yes, use a Gate)
|
|
116
|
+
- [ ] **Can I propose a default instead?** (Bias for action)
|
|
117
|
+
- [ ] **Is the question binary or multiple choice?** (Reduce cognitive load)
|
|
118
|
+
- [ ] **Am I ready to save the answer?** (Build the knowledge base)
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
**Remember:** Every question is a context switch. Make it count.
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# UI Interaction Patterns
|
|
2
|
+
|
|
3
|
+
**GoopSpec Voice:** Clean, Consistent, Terminal-First.
|
|
4
|
+
|
|
5
|
+
Our UI communicates reliability and structured thinking. It distinguishes between *information*, *questions*, and *gates*.
|
|
6
|
+
|
|
7
|
+
## Visual Language
|
|
8
|
+
|
|
9
|
+
* **Hexagon (`⬢`):** The GoopSpec anchor. Use for system messages and prompts.
|
|
10
|
+
* **Borders:** Use for Gates and Checkpoints to arrest attention.
|
|
11
|
+
* **Indentation:** Hierarchy is meaning.
|
|
12
|
+
* **Colors:** (Implicit)
|
|
13
|
+
* **Blue/Cyan:** Info & Progress
|
|
14
|
+
* **Green:** Success & Memory Recall
|
|
15
|
+
* **Yellow:** Warning & Checkpoints
|
|
16
|
+
* **Red:** Errors & Blockers
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Interaction Primitives
|
|
21
|
+
|
|
22
|
+
### 1. The Inline Notice
|
|
23
|
+
*For status updates, memory recalls, and skill activations.*
|
|
24
|
+
|
|
25
|
+
**Format:** `⬢ [Category] Message`
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
⬢ Memory: Using preference "TypeScript Strict Mode"
|
|
29
|
+
⬢ Skill: Loading "octocode-research"...
|
|
30
|
+
⬢ Status: Analyzing dependency tree...
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 2. The Structured Prompt
|
|
34
|
+
*For standard questions and choices.*
|
|
35
|
+
|
|
36
|
+
**Format:** Question followed by clear options.
|
|
37
|
+
|
|
38
|
+
```text
|
|
39
|
+
⬢ Decision Required: Database Selection
|
|
40
|
+
|
|
41
|
+
1. PostgreSQL (Recommended based on project)
|
|
42
|
+
2. SQLite (Simpler setup)
|
|
43
|
+
|
|
44
|
+
► Select [1-2]:
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 3. The Gate (Boxed)
|
|
48
|
+
*For critical stops: Contract, Checkpoint, Acceptance.*
|
|
49
|
+
|
|
50
|
+
**Format:** ASCII Box with Title and Action.
|
|
51
|
+
|
|
52
|
+
```text
|
|
53
|
+
╭─ ⬢ GoopSpec ───────────────────────────────────────╮
|
|
54
|
+
│ │
|
|
55
|
+
│ 🔒 CONTRACT GATE │
|
|
56
|
+
│ │
|
|
57
|
+
│ Summary: Login Feature │
|
|
58
|
+
│ • Auth Provider: Auth0 │
|
|
59
|
+
│ • MFA: Required │
|
|
60
|
+
│ │
|
|
61
|
+
│ ► Type "confirm" to Lock Spec and Plan. │
|
|
62
|
+
│ │
|
|
63
|
+
╰────────────────────────────────────────────────────╯
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Patterns
|
|
69
|
+
|
|
70
|
+
### The "Recall & Confirm"
|
|
71
|
+
*Don't just apply memory silently; validate it lightly.*
|
|
72
|
+
|
|
73
|
+
```text
|
|
74
|
+
⬢ Memory: I see you use Tailwind in other projects.
|
|
75
|
+
Apply Tailwind to this project too? [Y/n]
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### The "Skill Injection"
|
|
79
|
+
*Show that an agent is doing deep work.*
|
|
80
|
+
|
|
81
|
+
```text
|
|
82
|
+
⬢ Researching: "Best state management for Svelte 5"
|
|
83
|
+
└─ ⚡ Found 3 relevant libraries
|
|
84
|
+
└─ ⚡ Analyzed GitHub stars & issues
|
|
85
|
+
|
|
86
|
+
Recommendation: Runes (Native)
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### The "Progressive Drill-Down"
|
|
90
|
+
*Handle complexity without overwhelm.*
|
|
91
|
+
|
|
92
|
+
**Step 1 (High Level):**
|
|
93
|
+
```text
|
|
94
|
+
⬢ Strategy: I recommend a "Feature Folder" structure.
|
|
95
|
+
Proceed? [Y/n/details]
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**Step 2 (If 'details' selected):**
|
|
99
|
+
```text
|
|
100
|
+
⬢ Feature Folder Structure:
|
|
101
|
+
src/features/auth/
|
|
102
|
+
├── components/
|
|
103
|
+
├── api/
|
|
104
|
+
└── types.ts
|
|
105
|
+
|
|
106
|
+
Pros: Scalable, self-contained.
|
|
107
|
+
Cons: More initial boilerplate.
|
|
108
|
+
|
|
109
|
+
► Confirm structure? [Y/n]
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Anti-Patterns (Don't Do This)
|
|
115
|
+
|
|
116
|
+
* **The Wall of Text:** unstructured paragraphs mixing info and questions.
|
|
117
|
+
* **The Hidden Question:** burying a question in the middle of a log.
|
|
118
|
+
* **The "Double Ask":** asking for info, then asking for confirmation of the info in the same turn.
|
|
119
|
+
* **The "Fake Choice":** offering options that are clearly bad/wrong.
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Checklist: UI Audit
|
|
124
|
+
|
|
125
|
+
- [ ] **Is the Hexagon present?** (Brand anchor)
|
|
126
|
+
- [ ] **Is the hierarchy clear?** (Indentation)
|
|
127
|
+
- [ ] **Are options numbered or binary?** (Ease of input)
|
|
128
|
+
- [ ] **Is the critical info boxed?** (Gates)
|
|
129
|
+
- [ ] **Did I acknowledge memory/skills?** (Show intelligence)
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
**Goal:** The user should be able to scan the output and know exactly *where they are* and *what they need to do*.
|
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
# Workflow: Accept Phase
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**GoopSpec Voice:** Critical, Celebratory, Final.
|
|
4
|
+
|
|
5
|
+
The Accept phase answers: **Did we deliver what we promised?** It is the final quality gate.
|
|
4
6
|
|
|
5
7
|
## Position in Workflow
|
|
6
8
|
|
|
7
9
|
```
|
|
8
|
-
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
9
|
-
│ PLAN │ ──▶ │ RESEARCH │ ──▶ │ SPECIFY │
|
|
10
|
-
│ (Intent) │ │ (Explore) │ │ (Contract) │
|
|
11
|
-
└─────────────┘ └─────────────┘ └─────────────┘
|
|
12
|
-
│
|
|
13
|
-
┌──────────────────────────────────────┘
|
|
14
|
-
▼
|
|
15
10
|
┌─────────────┐ ┌─────────────┐
|
|
16
11
|
│ EXECUTE │ ──▶ │ ACCEPT │
|
|
17
12
|
│ (Build) │ │ (Verify) │
|
|
@@ -20,117 +15,31 @@ The Accept phase verifies the implementation against the specification and obtai
|
|
|
20
15
|
(You are here)
|
|
21
16
|
|
|
22
17
|
╔══════════════════════════════════════════════╗
|
|
23
|
-
║ ACCEPTANCE GATE
|
|
18
|
+
║ ACCEPTANCE GATE ║
|
|
24
19
|
║ User MUST confirm completion ║
|
|
25
20
|
╚══════════════════════════════════════════════╝
|
|
26
21
|
```
|
|
27
22
|
|
|
28
|
-
##
|
|
29
|
-
|
|
30
|
-
The Accept phase answers: **Did we deliver what we promised?**
|
|
31
|
-
|
|
32
|
-
This is the final verification against the locked specification. The user confirms the work is complete before it's considered done.
|
|
33
|
-
|
|
34
|
-
## Entry Criteria
|
|
35
|
-
|
|
36
|
-
- Execute phase complete
|
|
37
|
-
- All tasks finished
|
|
38
|
-
- All tests passing
|
|
39
|
-
- CHRONICLE.md updated
|
|
40
|
-
|
|
41
|
-
## Verification Activities
|
|
42
|
-
|
|
43
|
-
### 1. Spec Compliance Check
|
|
44
|
-
|
|
45
|
-
Verify each must-have from SPEC.md:
|
|
46
|
-
|
|
47
|
-
```markdown
|
|
48
|
-
## Must-Have Verification
|
|
49
|
-
|
|
50
|
-
| Requirement | Status | Evidence |
|
|
51
|
-
|-------------|--------|----------|
|
|
52
|
-
| User can log in | ✓ | Test: auth.test.ts:15 |
|
|
53
|
-
| Session persists | ✓ | Test: session.test.ts:42 |
|
|
54
|
-
| Error messages shown | ✓ | Manual verification |
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### 2. Automated Verification
|
|
58
|
-
|
|
59
|
-
Run all quality gates:
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
# Type checking
|
|
63
|
-
npm run typecheck
|
|
23
|
+
## Verification Protocol
|
|
64
24
|
|
|
65
|
-
|
|
66
|
-
npm run lint
|
|
25
|
+
Before asking the user, the agent runs the **Verifier**.
|
|
67
26
|
|
|
68
|
-
|
|
69
|
-
|
|
27
|
+
### 1. Automated Checks
|
|
28
|
+
* Linting
|
|
29
|
+
* Type Checking
|
|
30
|
+
* Unit/Integration Tests
|
|
31
|
+
* Build Verification
|
|
70
32
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
### 3. Manual Verification
|
|
33
|
+
### 2. Spec Compliance
|
|
34
|
+
Compare `CHRONICLE.md` against `SPEC.md`.
|
|
35
|
+
* Are all "Must Haves" marked complete?
|
|
36
|
+
* Are there any open deviations?
|
|
76
37
|
|
|
77
|
-
|
|
38
|
+
## The Acceptance Gate
|
|
78
39
|
|
|
79
|
-
|
|
80
|
-
## Manual Verification Checklist
|
|
40
|
+
Present the evidence clearly.
|
|
81
41
|
|
|
82
|
-
|
|
83
|
-
- [ ] Error states display correctly
|
|
84
|
-
- [ ] Mobile responsive (if applicable)
|
|
85
|
-
- [ ] Accessibility check (keyboard nav, screen reader)
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### 4. Security Audit (If Applicable)
|
|
89
|
-
|
|
90
|
-
For security-sensitive features:
|
|
91
|
-
|
|
92
|
-
```markdown
|
|
93
|
-
## Security Verification
|
|
94
|
-
|
|
95
|
-
- [ ] Input validation present
|
|
96
|
-
- [ ] No hardcoded secrets
|
|
97
|
-
- [ ] Auth/authz properly enforced
|
|
98
|
-
- [ ] No obvious vulnerabilities
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
## Verifier Agent
|
|
102
|
-
|
|
103
|
-
Delegate comprehensive verification to goop-verifier:
|
|
104
|
-
|
|
105
|
-
```
|
|
106
|
-
task({
|
|
107
|
-
subagent_type: "general",
|
|
108
|
-
description: "Verify spec",
|
|
109
|
-
prompt: `
|
|
110
|
-
Verify implementation against specification.
|
|
111
|
-
|
|
112
|
-
SPEC: .goopspec/SPEC.md
|
|
113
|
-
CHRONICLE: .goopspec/CHRONICLE.md
|
|
114
|
-
|
|
115
|
-
Verify:
|
|
116
|
-
1. All must-haves implemented
|
|
117
|
-
2. Acceptance criteria met
|
|
118
|
-
3. No regressions introduced
|
|
119
|
-
4. Security considerations addressed
|
|
120
|
-
5. Code quality standards met
|
|
121
|
-
|
|
122
|
-
Return: Detailed verification report
|
|
123
|
-
`
|
|
124
|
-
})
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
## Acceptance Gate
|
|
128
|
-
|
|
129
|
-
**CRITICAL**: User MUST explicitly accept the work.
|
|
130
|
-
|
|
131
|
-
### Acceptance Prompt
|
|
132
|
-
|
|
133
|
-
```
|
|
42
|
+
```text
|
|
134
43
|
╭─ ⬢ GoopSpec ───────────────────────────────────────╮
|
|
135
44
|
│ │
|
|
136
45
|
│ ✓ ACCEPTANCE GATE │
|
|
@@ -138,188 +47,66 @@ task({
|
|
|
138
47
|
│ Implementation complete. Verification results: │
|
|
139
48
|
│ │
|
|
140
49
|
│ MUST HAVES: │
|
|
141
|
-
│ ☑
|
|
142
|
-
│ ☑
|
|
143
|
-
│ ☑ Errors displayed - VERIFIED │
|
|
50
|
+
│ ☑ Login Form - VERIFIED │
|
|
51
|
+
│ ☑ API Integration - VERIFIED │
|
|
144
52
|
│ │
|
|
145
|
-
│
|
|
146
|
-
│ ✓
|
|
147
|
-
│ ✓
|
|
148
|
-
│ ✓ Tests: 24/24 passing │
|
|
149
|
-
│ ✓ Build: Successful │
|
|
150
|
-
│ │
|
|
151
|
-
│ NICE TO HAVES COMPLETED: │
|
|
152
|
-
│ ☑ Remember me option │
|
|
53
|
+
│ QUALITY METRICS: │
|
|
54
|
+
│ ✓ Tests: 14/14 Passing │
|
|
55
|
+
│ ✓ Build: Success │
|
|
153
56
|
│ │
|
|
154
57
|
│ ───────────────────────────────────────────── │
|
|
155
|
-
│ Type "accept" to
|
|
156
|
-
│ Type "issues: [
|
|
58
|
+
│ ► Type "accept" to Archive and Complete. │
|
|
59
|
+
│ ► Type "issues: [details]" to Reject. │
|
|
157
60
|
│ │
|
|
158
61
|
╰────────────────────────────────────────────────────╯
|
|
159
62
|
```
|
|
160
63
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
| Response | Effect |
|
|
164
|
-
|----------|--------|
|
|
165
|
-
| `accept` | Work marked complete, proceed to archive |
|
|
166
|
-
| `issues: [desc]` | Return to Execute phase for fixes |
|
|
167
|
-
| `amend: [change]` | Modify spec, reassess what's needed |
|
|
168
|
-
|
|
169
|
-
## Post-Acceptance
|
|
170
|
-
|
|
171
|
-
After user accepts:
|
|
172
|
-
|
|
173
|
-
### 1. Generate Summary
|
|
64
|
+
## Handling Rejection
|
|
174
65
|
|
|
175
|
-
|
|
176
|
-
|
|
66
|
+
If the user types `issues: ...`:
|
|
67
|
+
1. **Log:** Create a new "Fix" Wave in `BLUEPRINT.md`.
|
|
68
|
+
2. **Execute:** Return to Execute Phase.
|
|
69
|
+
3. **Verify:** Re-run verification.
|
|
70
|
+
4. **Gate:** Re-present Acceptance Gate.
|
|
177
71
|
|
|
178
|
-
|
|
179
|
-
**Duration:** [time]
|
|
180
|
-
**Tasks:** 12 completed
|
|
181
|
-
**Commits:** 12
|
|
72
|
+
## Completion Activities
|
|
182
73
|
|
|
183
|
-
|
|
184
|
-
- Must-have 1 ✓
|
|
185
|
-
- Must-have 2 ✓
|
|
186
|
-
- Nice-to-have 1 ✓ (bonus)
|
|
74
|
+
Once accepted:
|
|
187
75
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
76
|
+
1. **Archive:** Move documents to `.goopspec/archive/`.
|
|
77
|
+
2. **Retrospective:** Generate `RETROSPECTIVE.md`.
|
|
78
|
+
3. **Memory Extraction:** The most important step for future intelligence.
|
|
191
79
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
- src/auth/session.ts (new)
|
|
195
|
-
- src/routes/api.ts (modified)
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
### 2. Archive (For Milestones)
|
|
199
|
-
|
|
200
|
-
If this completes a milestone:
|
|
80
|
+
### Memory Extraction
|
|
81
|
+
Extract **Patterns**, **Decisions**, and **Learnings**.
|
|
201
82
|
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
This triggers:
|
|
207
|
-
1. Move to archive/
|
|
208
|
-
2. Generate RETROSPECTIVE.md
|
|
209
|
-
3. Extract LEARNINGS.md
|
|
210
|
-
4. Persist learnings to memory
|
|
211
|
-
5. Tag git with version
|
|
212
|
-
|
|
213
|
-
### 3. Clean Up
|
|
214
|
-
|
|
215
|
-
- Clear active workflow state
|
|
216
|
-
- Keep SPEC.md and CHRONICLE.md for reference
|
|
217
|
-
- Ready for next task
|
|
218
|
-
|
|
219
|
-
## Handling Issues
|
|
220
|
-
|
|
221
|
-
### Minor Issues
|
|
222
|
-
|
|
223
|
-
Issues that don't fundamentally change the spec:
|
|
224
|
-
|
|
225
|
-
```
|
|
226
|
-
User: "issues: Login button color should be blue, not gray"
|
|
227
|
-
|
|
228
|
-
Agent:
|
|
229
|
-
1. Note as fix task
|
|
230
|
-
2. Delegate quick fix
|
|
231
|
-
3. Re-verify affected area
|
|
232
|
-
4. Present for re-acceptance
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
### Major Issues
|
|
236
|
-
|
|
237
|
-
Issues that reveal missing requirements:
|
|
238
|
-
|
|
239
|
-
```
|
|
240
|
-
User: "issues: Wait, it also needs OAuth support"
|
|
241
|
-
|
|
242
|
-
Agent:
|
|
243
|
-
1. Note as spec change
|
|
244
|
-
2. Prompt for `/goop-amend`
|
|
245
|
-
3. Update SPEC.md
|
|
246
|
-
4. Re-plan affected tasks
|
|
247
|
-
5. Execute additions
|
|
248
|
-
6. Re-verify
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
## Verification Report
|
|
252
|
-
|
|
253
|
-
Full verification saved to CHRONICLE.md:
|
|
254
|
-
|
|
255
|
-
```markdown
|
|
256
|
-
## Verification Report
|
|
257
|
-
|
|
258
|
-
**Date:** [timestamp]
|
|
259
|
-
**Verifier:** goop-verifier
|
|
260
|
-
|
|
261
|
-
### Spec Compliance
|
|
262
|
-
| Must-Have | Status | Evidence |
|
|
263
|
-
|-----------|--------|----------|
|
|
264
|
-
| Req 1 | PASS | test:auth:15 |
|
|
265
|
-
| Req 2 | PASS | test:session:42 |
|
|
266
|
-
|
|
267
|
-
### Quality Metrics
|
|
268
|
-
- TypeScript: Clean
|
|
269
|
-
- Lint: Clean
|
|
270
|
-
- Test Coverage: 87%
|
|
271
|
-
- Build: Success
|
|
272
|
-
|
|
273
|
-
### Security Review
|
|
274
|
-
- Input validation: Present
|
|
275
|
-
- Auth checks: Proper
|
|
276
|
-
- No secrets: Verified
|
|
277
|
-
|
|
278
|
-
### Recommendation
|
|
279
|
-
READY FOR ACCEPTANCE
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
## Quick Mode Accept
|
|
283
|
-
|
|
284
|
-
For Quick tasks:
|
|
285
|
-
- Abbreviated verification
|
|
286
|
-
- No formal report
|
|
287
|
-
- Quick confirmation prompt
|
|
288
|
-
- Direct archive to quick/
|
|
289
|
-
|
|
290
|
-
## Memory Protocol
|
|
291
|
-
|
|
292
|
-
### Before Verifying
|
|
293
|
-
```
|
|
294
|
-
memory_search({
|
|
295
|
-
query: "verification patterns, past issues",
|
|
296
|
-
types: ["observation"]
|
|
297
|
-
})
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
### During Verification
|
|
301
|
-
```
|
|
302
|
-
memory_note({
|
|
303
|
-
note: "Verification passed for [feature]"
|
|
304
|
-
})
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
### After Acceptance
|
|
308
|
-
```
|
|
83
|
+
```javascript
|
|
84
|
+
// Example Extraction
|
|
309
85
|
memory_save({
|
|
310
86
|
type: "observation",
|
|
311
|
-
title: "
|
|
312
|
-
content: "
|
|
313
|
-
concepts: ["
|
|
314
|
-
importance: 0.
|
|
87
|
+
title: "Completed: Auth Feature",
|
|
88
|
+
content: "Successfully implemented Auth0. Key learning: User prefers JWT over session cookies.",
|
|
89
|
+
concepts: ["auth", "completion", "preference"],
|
|
90
|
+
importance: 0.9 // High importance for future recall
|
|
315
91
|
})
|
|
316
92
|
```
|
|
317
93
|
|
|
318
94
|
## Commands
|
|
319
95
|
|
|
320
96
|
| Command | Effect |
|
|
321
|
-
|
|
322
|
-
| `/goop-accept` | Trigger
|
|
323
|
-
| `/goop-
|
|
324
|
-
| `/goop-
|
|
325
|
-
|
|
97
|
+
| :--- | :--- |
|
|
98
|
+
| `/goop-accept` | Trigger the Acceptance Gate. |
|
|
99
|
+
| `/goop-complete` | Finalize, archive, and reset state. |
|
|
100
|
+
| `/goop-milestone` | Start a new milestone after completion. |
|
|
101
|
+
|
|
102
|
+
## The "Celebrate" Pattern
|
|
103
|
+
|
|
104
|
+
End on a high note.
|
|
105
|
+
|
|
106
|
+
```text
|
|
107
|
+
⬢ Milestone Completed: Auth Feature 🚀
|
|
108
|
+
Saved to Archive: .goopspec/archive/v1.0-auth/
|
|
109
|
+
Memory Updated: +3 new patterns
|
|
110
|
+
|
|
111
|
+
Ready for next plan?
|
|
112
|
+
```
|