@tgoodington/intuition 6.0.0 → 7.0.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/docs/v7_design_spec.md +1111 -0
- package/docs/v7_plan.md +339 -0
- package/package.json +2 -2
- package/scripts/install-skills.js +2 -0
- package/scripts/uninstall-skills.js +1 -0
- package/skills/intuition-design/SKILL.md +25 -13
- package/skills/intuition-engineer/SKILL.md +278 -0
- package/skills/intuition-execute/SKILL.md +91 -50
- package/skills/intuition-handoff/SKILL.md +201 -373
- package/skills/intuition-initialize/SKILL.md +42 -34
- package/skills/intuition-initialize/references/claude_template.md +18 -1
- package/skills/intuition-initialize/references/design_brief_template.md +4 -2
- package/skills/intuition-initialize/references/execution_brief_template.md +5 -3
- package/skills/intuition-initialize/references/intuition_readme_template.md +22 -2
- package/skills/intuition-initialize/references/planning_brief_template.md +4 -2
- package/skills/intuition-initialize/references/state_template.json +30 -28
- package/skills/intuition-plan/SKILL.md +52 -14
- package/skills/intuition-prompt/SKILL.md +34 -3
- package/skills/intuition-start/SKILL.md +155 -72
|
@@ -14,549 +14,377 @@ You are the handoff orchestrator. You process phase outputs, update project memo
|
|
|
14
14
|
|
|
15
15
|
These are non-negotiable. Violating any of these means the protocol has failed.
|
|
16
16
|
|
|
17
|
-
1. You MUST
|
|
18
|
-
2. You MUST
|
|
19
|
-
3. You MUST
|
|
20
|
-
4. You MUST
|
|
21
|
-
5. You MUST
|
|
22
|
-
6. You MUST
|
|
23
|
-
7. You MUST NOT
|
|
24
|
-
8. You MUST
|
|
25
|
-
9. You MUST
|
|
26
|
-
10. You MUST
|
|
17
|
+
1. You MUST resolve the active context and context_path before every transition. NEVER hardcode `docs/project_notes/` for workflow artifacts.
|
|
18
|
+
2. You MUST detect which transition is happening before doing anything else.
|
|
19
|
+
3. You MUST read all phase output files before processing.
|
|
20
|
+
4. You MUST update memory files with proper formatting (see formats below).
|
|
21
|
+
5. You MUST generate a brief for the next agent.
|
|
22
|
+
6. You MUST update `.project-memory-state.json` — you are the ONLY skill that writes to this file.
|
|
23
|
+
7. You MUST NOT evaluate or critique phase outputs. Process and document, never judge.
|
|
24
|
+
8. You MUST NOT skip the user profile merge step during prompt→planning transitions.
|
|
25
|
+
9. You MUST suggest the correct next skill after completing the transition.
|
|
26
|
+
10. You MUST NOT modify discovery_brief.md, plan.md, design_spec_*.md, or other phase output files — they are read-only inputs.
|
|
27
|
+
11. You MUST manage the design loop: track which items are designed, route to next item or to execute when all are done.
|
|
28
|
+
|
|
29
|
+
## CONTEXT PATH RESOLUTION
|
|
30
|
+
|
|
31
|
+
Before ANY transition, resolve the active context:
|
|
32
|
+
|
|
33
|
+
1. Read `docs/project_notes/.project-memory-state.json`
|
|
34
|
+
2. Get `active_context` value
|
|
35
|
+
3. IF active_context == "trunk": `context_path = "docs/project_notes/trunk/"`
|
|
36
|
+
ELSE: `context_path = "docs/project_notes/branches/{active_context}/"`
|
|
37
|
+
4. Get context_workflow:
|
|
38
|
+
IF active_context == "trunk": `context_workflow = state.trunk`
|
|
39
|
+
ELSE: `context_workflow = state.branches[active_context]`
|
|
40
|
+
5. Use `context_path` for all workflow artifact file operations
|
|
41
|
+
6. Use `context_workflow` for all status checks and state writes
|
|
42
|
+
7. Shared files (key_facts.md, decisions.md, issues.md, bugs.md) always stay at `docs/project_notes/` — do NOT use context_path for these.
|
|
27
43
|
|
|
28
44
|
## PROTOCOL: COMPLETE FLOW
|
|
29
45
|
|
|
30
|
-
Execute these steps in order:
|
|
31
|
-
|
|
32
46
|
```
|
|
33
|
-
Step 1:
|
|
34
|
-
Step 2:
|
|
35
|
-
Step 3:
|
|
36
|
-
Step 4:
|
|
37
|
-
Step 5:
|
|
38
|
-
Step 6:
|
|
39
|
-
Step 7:
|
|
40
|
-
Step 8:
|
|
47
|
+
Step 1: Resolve context_path and context_workflow (see above)
|
|
48
|
+
Step 2: Detect transition type from context_workflow
|
|
49
|
+
Step 3: Read phase output files from {context_path}
|
|
50
|
+
Step 4: Extract insights and structure findings
|
|
51
|
+
Step 5: Update shared memory files (key_facts.md, decisions.md, issues.md)
|
|
52
|
+
Step 6: Merge user profile learnings (prompt→planning only)
|
|
53
|
+
Step 7: Generate brief for next agent at {context_path}
|
|
54
|
+
Step 8: Update .project-memory-state.json (target active context object)
|
|
55
|
+
Step 9: Report what was processed and suggest next skill
|
|
41
56
|
```
|
|
42
57
|
|
|
43
58
|
## STEP 1: DETECT TRANSITION
|
|
44
59
|
|
|
45
|
-
|
|
60
|
+
After resolving context_path and context_workflow, determine:
|
|
46
61
|
|
|
47
62
|
```
|
|
48
|
-
IF
|
|
49
|
-
AND planning.started == false:
|
|
63
|
+
IF context_workflow.status == "prompt" AND workflow.prompt.completed == true
|
|
64
|
+
AND workflow.planning.started == false:
|
|
50
65
|
→ TRANSITION: Prompt → Planning
|
|
51
66
|
|
|
52
|
-
IF
|
|
53
|
-
AND design.started == false:
|
|
67
|
+
IF context_workflow.status == "planning" AND workflow.planning.completed == true
|
|
68
|
+
AND workflow.design.started == false:
|
|
54
69
|
→ TRANSITION: Planning → Design (initial setup)
|
|
55
70
|
|
|
56
|
-
IF
|
|
57
|
-
→ Check design.items array
|
|
71
|
+
IF context_workflow.status == "design":
|
|
72
|
+
→ Check workflow.design.items array
|
|
58
73
|
→ IF current item just completed AND more items remain:
|
|
59
74
|
→ TRANSITION: Design → Design (next item)
|
|
60
75
|
→ IF all items completed:
|
|
61
76
|
→ TRANSITION: Design → Execution
|
|
62
77
|
|
|
63
|
-
IF
|
|
78
|
+
IF context_workflow.status == "executing" AND workflow.execution.completed == true:
|
|
64
79
|
→ TRANSITION: Execution → Complete
|
|
65
80
|
|
|
66
81
|
IF no clear transition detected:
|
|
67
82
|
→ ASK USER: "Which phase just completed?" (use AskUserQuestion)
|
|
68
83
|
```
|
|
69
84
|
|
|
70
|
-
## STATE SCHEMA
|
|
85
|
+
## STATE SCHEMA (v4.0)
|
|
71
86
|
|
|
72
87
|
This is the authoritative schema for `.project-memory-state.json`:
|
|
73
88
|
|
|
74
89
|
```json
|
|
75
90
|
{
|
|
76
91
|
"initialized": true,
|
|
77
|
-
"version": "
|
|
78
|
-
"
|
|
92
|
+
"version": "4.0",
|
|
93
|
+
"active_context": "trunk",
|
|
94
|
+
"trunk": {
|
|
79
95
|
"status": "none | prompt | planning | design | executing | complete",
|
|
80
|
-
"
|
|
81
|
-
"started": false,
|
|
82
|
-
"completed": false,
|
|
83
|
-
"
|
|
84
|
-
"completed_at": null
|
|
85
|
-
"output_files": []
|
|
86
|
-
},
|
|
87
|
-
"planning": {
|
|
88
|
-
"started": false,
|
|
89
|
-
"completed": false,
|
|
90
|
-
"completed_at": null,
|
|
91
|
-
"approved": false
|
|
92
|
-
},
|
|
93
|
-
"design": {
|
|
94
|
-
"started": false,
|
|
95
|
-
"completed": false,
|
|
96
|
-
"completed_at": null,
|
|
97
|
-
"items": [],
|
|
98
|
-
"current_item": null
|
|
99
|
-
},
|
|
100
|
-
"execution": {
|
|
101
|
-
"started": false,
|
|
102
|
-
"completed": false,
|
|
103
|
-
"completed_at": null
|
|
96
|
+
"workflow": {
|
|
97
|
+
"prompt": { "started": false, "completed": false, "started_at": null, "completed_at": null, "output_files": [] },
|
|
98
|
+
"planning": { "started": false, "completed": false, "completed_at": null, "approved": false },
|
|
99
|
+
"design": { "started": false, "completed": false, "completed_at": null, "items": [], "current_item": null },
|
|
100
|
+
"execution": { "started": false, "completed": false, "completed_at": null }
|
|
104
101
|
}
|
|
105
102
|
},
|
|
103
|
+
"branches": {},
|
|
106
104
|
"last_handoff": null,
|
|
107
105
|
"last_handoff_transition": null
|
|
108
106
|
}
|
|
109
107
|
```
|
|
110
108
|
|
|
109
|
+
### Branch Entry Schema
|
|
110
|
+
|
|
111
|
+
Each branch in `branches` has: `display_name`, `created_from`, `created_at`, `purpose`, `status`, and a `workflow` object identical to trunk's workflow structure.
|
|
112
|
+
|
|
111
113
|
### Design Items Schema
|
|
112
114
|
|
|
113
|
-
Each item in `design.items`
|
|
115
|
+
Each item in `design.items`: `{ "name": "snake_case", "display_name": "Human Name", "status": "pending|in_progress|completed|skipped", "plan_tasks": [N], "spec_file": null, "flagged_reason": "..." }`
|
|
116
|
+
|
|
117
|
+
When updating state, preserve all existing fields and only modify the relevant ones. Always set `last_handoff` to the current ISO timestamp and `last_handoff_transition` to the transition name.
|
|
118
|
+
|
|
119
|
+
### State Write Pattern
|
|
120
|
+
|
|
121
|
+
All state writes MUST target the active context object:
|
|
114
122
|
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
"plan_tasks": [3, 4, 5],
|
|
121
|
-
"spec_file": null,
|
|
122
|
-
"flagged_reason": "Why plan flagged this for design"
|
|
123
|
-
}
|
|
123
|
+
```
|
|
124
|
+
IF active_context == "trunk":
|
|
125
|
+
Update state.trunk.status and state.trunk.workflow.*
|
|
126
|
+
ELSE:
|
|
127
|
+
Update state.branches[active_context].status and state.branches[active_context].workflow.*
|
|
124
128
|
```
|
|
125
129
|
|
|
126
|
-
|
|
130
|
+
## TRANSITION 0: BRANCH CREATION
|
|
131
|
+
|
|
132
|
+
Triggered when start routes to handoff with branch creation intent. User has provided: branch name, purpose, parent context.
|
|
133
|
+
|
|
134
|
+
### Protocol
|
|
135
|
+
|
|
136
|
+
1. **Validate branch name**: Convert to kebab-case for the state key. Reject names containing `/`, `\`, `.`, or `..` — only alphanumeric characters and hyphens allowed. Reject if `state.branches[branch_key]` already exists — tell user to pick a different name.
|
|
137
|
+
2. **Create branch directory**: `docs/project_notes/branches/{branch_key}/`
|
|
138
|
+
3. **Add branch to state**:
|
|
139
|
+
- `display_name`: user-provided name
|
|
140
|
+
- `created_from`: parent context key ("trunk" or another branch key)
|
|
141
|
+
- `created_at`: ISO timestamp
|
|
142
|
+
- `purpose`: user-provided sentence
|
|
143
|
+
- `status`: "none"
|
|
144
|
+
- `workflow`: identical structure to trunk's workflow (all false/null/empty)
|
|
145
|
+
4. **Set `active_context`** to the new branch key.
|
|
146
|
+
5. **Write updated state**. Set `last_handoff_transition` to "branch_creation".
|
|
147
|
+
6. **Route user**: "Branch **[display_name]** created. Run `/intuition-prompt` to define what this branch will accomplish."
|
|
148
|
+
|
|
149
|
+
## V3 STATE MIGRATION
|
|
150
|
+
|
|
151
|
+
Fires automatically when handoff detects a v3.0 state before processing any transition.
|
|
152
|
+
|
|
153
|
+
### Detection
|
|
154
|
+
|
|
155
|
+
`version == "3.0"` OR missing `active_context` field in state.
|
|
156
|
+
|
|
157
|
+
### Migration Steps
|
|
158
|
+
|
|
159
|
+
1. Create `docs/project_notes/trunk/` directory.
|
|
160
|
+
2. Move existing workflow artifacts from `docs/project_notes/` into `docs/project_notes/trunk/`:
|
|
161
|
+
- `discovery_brief.md`, `discovery_output.json`, `planning_brief.md`, `plan.md`
|
|
162
|
+
- `design_brief.md`, `design_spec_*.md`, `execution_brief.md`
|
|
163
|
+
- `.planning_research/` directory (entire folder)
|
|
164
|
+
- Only move files that exist. Skip missing files silently.
|
|
165
|
+
3. Restructure state:
|
|
166
|
+
- Wrap existing `status` and `workflow` into a `trunk` object
|
|
167
|
+
- Add `active_context: "trunk"`
|
|
168
|
+
- Add `branches: {}`
|
|
169
|
+
- Set `version: "4.0"`
|
|
170
|
+
- Preserve all other top-level fields (`initialized`, `last_handoff`, `last_handoff_transition`)
|
|
171
|
+
4. Write updated state.
|
|
172
|
+
5. Report to user: list which files were migrated and confirm v4.0 upgrade. Then continue with the original transition.
|
|
173
|
+
|
|
174
|
+
Leave shared files (`key_facts.md`, `decisions.md`, `issues.md`, `bugs.md`) at `docs/project_notes/` — do NOT move them.
|
|
127
175
|
|
|
128
176
|
## TRANSITION 1: PROMPT → PLANNING
|
|
129
177
|
|
|
130
178
|
### Read Outputs
|
|
131
179
|
|
|
132
|
-
Read
|
|
133
|
-
- `
|
|
134
|
-
- `
|
|
180
|
+
Read from `{context_path}`:
|
|
181
|
+
- `{context_path}discovery_brief.md` — human-readable discovery summary
|
|
182
|
+
- `{context_path}discovery_output.json` — structured data (if exists)
|
|
135
183
|
|
|
136
184
|
If `discovery_output.json` doesn't exist, extract insights manually from `discovery_brief.md`.
|
|
137
185
|
|
|
138
186
|
### Extract and Structure
|
|
139
187
|
|
|
140
188
|
From the outputs, identify:
|
|
141
|
-
- **Key facts** → add to `key_facts.md`
|
|
142
|
-
- **Constraints** → add to `key_facts.md` under constraints category
|
|
143
|
-
- **Suggested decisions** → create ADRs in `decisions.md`
|
|
189
|
+
- **Key facts** → add to `docs/project_notes/key_facts.md`
|
|
190
|
+
- **Constraints** → add to `docs/project_notes/key_facts.md` under constraints category
|
|
191
|
+
- **Suggested decisions** → create ADRs in `docs/project_notes/decisions.md`
|
|
144
192
|
- **Assumptions** → reference in brief, not directly added to memory
|
|
145
|
-
- **Follow-up items** → add to `issues.md`
|
|
193
|
+
- **Follow-up items** → add to `docs/project_notes/issues.md`
|
|
146
194
|
|
|
147
195
|
### User Profile Merge
|
|
148
196
|
|
|
149
|
-
If `
|
|
150
|
-
|
|
197
|
+
If `{context_path}discovery_output.json` contains `user_profile_learnings` AND `.claude/USER_PROFILE.json` exists:
|
|
151
198
|
1. Read existing USER_PROFILE.json
|
|
152
|
-
2. Merge learnings
|
|
153
|
-
- If a profile field is `null` and learnings have a value → add it
|
|
154
|
-
- If a profile field is populated → only overwrite if discovery_confidence is "high"
|
|
155
|
-
- Always update `metadata.last_updated`
|
|
199
|
+
2. Merge learnings (null fields get new values; populated fields only overwrite if confidence is "high")
|
|
156
200
|
3. Save updated profile
|
|
157
201
|
|
|
158
|
-
If USER_PROFILE.json does NOT exist, skip this step.
|
|
202
|
+
If USER_PROFILE.json does NOT exist, skip this step.
|
|
159
203
|
|
|
160
204
|
### Generate Planning Brief
|
|
161
205
|
|
|
162
|
-
Write `
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
## Problem Statement
|
|
171
|
-
[Clear statement of what needs to be solved]
|
|
172
|
-
|
|
173
|
-
## Goals & Success Criteria
|
|
174
|
-
[What success looks like]
|
|
175
|
-
|
|
176
|
-
## Key Constraints
|
|
177
|
-
- [Constraint 1]
|
|
178
|
-
- [Constraint 2]
|
|
179
|
-
|
|
180
|
-
## Architectural Context
|
|
181
|
-
[Existing decisions and patterns relevant to planning]
|
|
182
|
-
|
|
183
|
-
## Assumptions & Risks
|
|
184
|
-
- [Assumption]: Confidence High/Medium/Low
|
|
185
|
-
- [Risk]: Should be explored during planning
|
|
186
|
-
|
|
187
|
-
## References
|
|
188
|
-
- Discovery Brief: docs/project_notes/discovery_brief.md
|
|
189
|
-
- Relevant Decisions: [ADR numbers]
|
|
190
|
-
```
|
|
206
|
+
Write `{context_path}planning_brief.md` with these sections:
|
|
207
|
+
- **Discovery Summary** (1-2 paragraphs)
|
|
208
|
+
- **Problem Statement**
|
|
209
|
+
- **Goals & Success Criteria**
|
|
210
|
+
- **Key Constraints**
|
|
211
|
+
- **Architectural Context** (existing decisions/patterns)
|
|
212
|
+
- **Assumptions & Risks** (with confidence levels)
|
|
213
|
+
- **References** (discovery_brief path, relevant ADR numbers)
|
|
191
214
|
|
|
192
215
|
### Update State
|
|
193
216
|
|
|
194
|
-
|
|
195
|
-
{
|
|
196
|
-
"workflow": {
|
|
197
|
-
"status": "planning",
|
|
198
|
-
"prompt": { "completed": true, "completed_at": "[ISO timestamp]" },
|
|
199
|
-
"planning": { "started": true }
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
```
|
|
217
|
+
Update the active context: set `status` to `"planning"`, mark `prompt.completed = true` with timestamp, set `planning.started = true`.
|
|
203
218
|
|
|
204
219
|
### Route User
|
|
205
220
|
|
|
206
|
-
|
|
221
|
+
"Discovery processed. Planning brief saved to `{context_path}planning_brief.md`. Run `/intuition-plan` to create a structured plan."
|
|
207
222
|
|
|
208
223
|
## TRANSITION 2: PLANNING → DESIGN (Initial Setup)
|
|
209
224
|
|
|
210
225
|
### Read Outputs
|
|
211
226
|
|
|
212
|
-
Read: `
|
|
227
|
+
Read: `{context_path}plan.md`
|
|
213
228
|
|
|
214
229
|
### Extract Design Items
|
|
215
230
|
|
|
216
|
-
From the plan, find
|
|
217
|
-
|
|
218
|
-
If no "Design Recommendations" section exists in the plan, check each task: if any task lacks sufficient detail for execution (ambiguous implementation path, multiple valid approaches, user-facing decisions needed), flag it yourself. Present your assessment to the user.
|
|
231
|
+
From the plan, find "Design Recommendations" section. Extract all items flagged for design with rationale and task numbers. If no section exists, assess tasks yourself and present to user.
|
|
219
232
|
|
|
220
233
|
### Extract and Structure
|
|
221
234
|
|
|
222
|
-
From the plan,
|
|
223
|
-
- **New architectural decisions** → create ADRs in `decisions.md`
|
|
224
|
-
- **Risks and dependencies** → include in design brief
|
|
225
|
-
- **Planning work completed** → log in `issues.md`
|
|
235
|
+
From the plan: new architectural decisions → `docs/project_notes/decisions.md`, risks/dependencies → include in brief, planning work → `docs/project_notes/issues.md`.
|
|
226
236
|
|
|
227
237
|
### Present Design Items to User
|
|
228
238
|
|
|
229
|
-
Use AskUserQuestion
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
[For each flagged item:]
|
|
235
|
-
- **[Item Name]** (Tasks [N, M]): [Rationale from plan]
|
|
236
|
-
|
|
237
|
-
Which items need design? You can also add items not listed."
|
|
238
|
-
|
|
239
|
-
Header: "Design Items"
|
|
240
|
-
Options:
|
|
241
|
-
- "All recommended items need design"
|
|
242
|
-
- "Some items — let me specify"
|
|
243
|
-
- "None — skip design, go straight to execution"
|
|
244
|
-
```
|
|
239
|
+
Use AskUserQuestion:
|
|
240
|
+
- Header: "Design Items"
|
|
241
|
+
- Question: List each flagged item with rationale
|
|
242
|
+
- Options: "All recommended items need design" / "Some items — let me specify" / "None — skip design, go straight to execution"
|
|
245
243
|
|
|
246
|
-
If
|
|
247
|
-
If user selects "None," skip to generating an execution brief instead (use Transition 4B below).
|
|
244
|
+
If "Some items," follow up. If "None," use Transition 4B.
|
|
248
245
|
|
|
249
246
|
### Generate Design Brief
|
|
250
247
|
|
|
251
|
-
Write `
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
**
|
|
258
|
-
|
|
259
|
-
## Plan Context
|
|
260
|
-
[1-2 paragraph summary of what the plan says about this item]
|
|
261
|
-
|
|
262
|
-
## Task Details
|
|
263
|
-
- **Plan Tasks**: [Task numbers]
|
|
264
|
-
- **Description**: [From plan.md]
|
|
265
|
-
- **Acceptance Criteria**: [From plan.md]
|
|
266
|
-
- **Dependencies**: [From plan.md]
|
|
267
|
-
|
|
268
|
-
## Design Rationale
|
|
269
|
-
[Why plan flagged this for design — what needs elaboration before execution]
|
|
270
|
-
|
|
271
|
-
## Constraints
|
|
272
|
-
- [From plan's architectural decisions]
|
|
273
|
-
- [From discovery constraints]
|
|
274
|
-
|
|
275
|
-
## Design Queue
|
|
276
|
-
[For each item, show status:]
|
|
277
|
-
- **[Item 1 Name] (current)**
|
|
278
|
-
- [Item 2 Name] (pending)
|
|
279
|
-
- [Item 3 Name] (pending)
|
|
280
|
-
|
|
281
|
-
## References
|
|
282
|
-
- Plan: docs/project_notes/plan.md
|
|
283
|
-
- Discovery: docs/project_notes/discovery_brief.md
|
|
284
|
-
```
|
|
248
|
+
Write `{context_path}design_brief.md` for the FIRST item with these sections:
|
|
249
|
+
- **Current Item** (name + description)
|
|
250
|
+
- **Plan Context** (1-2 paragraphs)
|
|
251
|
+
- **Task Details** (task numbers, description, acceptance criteria, dependencies)
|
|
252
|
+
- **Design Rationale** (why flagged)
|
|
253
|
+
- **Constraints**
|
|
254
|
+
- **Design Queue** (all items with status)
|
|
255
|
+
- **References** (plan path, discovery path)
|
|
285
256
|
|
|
286
257
|
### Update State
|
|
287
258
|
|
|
288
|
-
|
|
289
|
-
{
|
|
290
|
-
"workflow": {
|
|
291
|
-
"status": "design",
|
|
292
|
-
"planning": { "completed": true, "completed_at": "[ISO timestamp]", "approved": true },
|
|
293
|
-
"design": {
|
|
294
|
-
"started": true,
|
|
295
|
-
"items": [
|
|
296
|
-
{
|
|
297
|
-
"name": "[snake_case_name]",
|
|
298
|
-
"display_name": "[Human Name]",
|
|
299
|
-
"status": "pending",
|
|
300
|
-
"plan_tasks": [3, 4, 5],
|
|
301
|
-
"spec_file": null,
|
|
302
|
-
"flagged_reason": "[reason]"
|
|
303
|
-
}
|
|
304
|
-
],
|
|
305
|
-
"current_item": "[first_item_snake_case_name]"
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
```
|
|
310
|
-
|
|
311
|
-
Mark the first item's status as `"in_progress"`.
|
|
259
|
+
Update active context: set `status` to `"design"`, mark `planning.completed = true` with timestamp and `approved = true`, set `design.started = true`, populate `design.items` array with all confirmed items, set `design.current_item` to first item, mark first item status `"in_progress"`.
|
|
312
260
|
|
|
313
261
|
### Route User
|
|
314
262
|
|
|
315
|
-
|
|
263
|
+
"Plan processed. Design brief prepared for **[First Item Name]**. Run `/intuition-design` to begin design exploration."
|
|
316
264
|
|
|
317
265
|
## TRANSITION 3: DESIGN → DESIGN (Next Item)
|
|
318
266
|
|
|
319
267
|
### Read Outputs
|
|
320
268
|
|
|
321
269
|
Read:
|
|
322
|
-
-
|
|
270
|
+
- `{context_path}design_spec_[completed_item].md`
|
|
323
271
|
- Current `.project-memory-state.json`
|
|
324
272
|
|
|
325
273
|
### Extract and Structure
|
|
326
274
|
|
|
327
|
-
From
|
|
328
|
-
- **New architectural decisions** → create ADRs in `decisions.md`
|
|
329
|
-
- **Key technical facts** → add to `key_facts.md`
|
|
330
|
-
- **Design work completed** → log in `issues.md`
|
|
275
|
+
From completed spec: decisions → `docs/project_notes/decisions.md`, key facts → `docs/project_notes/key_facts.md`, design work → `docs/project_notes/issues.md`.
|
|
331
276
|
|
|
332
277
|
### Determine Next Item
|
|
333
278
|
|
|
334
|
-
|
|
279
|
+
Find next item with status `"pending"` in `design.items`. If none remain, proceed to Transition 4.
|
|
335
280
|
|
|
336
281
|
### Update Design Brief
|
|
337
282
|
|
|
338
|
-
Overwrite `
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
[1-2 paragraph summary for this item]
|
|
348
|
-
|
|
349
|
-
## Task Details
|
|
350
|
-
[Same structure as Transition 2]
|
|
351
|
-
|
|
352
|
-
## Design Rationale
|
|
353
|
-
[Why this item needs design]
|
|
354
|
-
|
|
355
|
-
## Prior Design Context
|
|
356
|
-
[1-2 sentences about what was designed in previous items that may be relevant]
|
|
357
|
-
|
|
358
|
-
## Constraints
|
|
359
|
-
[Updated constraints including any decisions from prior design items]
|
|
360
|
-
|
|
361
|
-
## Design Queue
|
|
362
|
-
- [x] [Item 1 Name] (completed) → design_spec_[item1].md
|
|
363
|
-
- **[Item 2 Name] (current)**
|
|
364
|
-
- [ ] [Item 3 Name] (pending)
|
|
365
|
-
|
|
366
|
-
## References
|
|
367
|
-
- Plan: docs/project_notes/plan.md
|
|
368
|
-
- Prior design specs: [list completed spec files]
|
|
369
|
-
```
|
|
283
|
+
Overwrite `{context_path}design_brief.md` for the next item with these sections:
|
|
284
|
+
- **Current Item** (name + description)
|
|
285
|
+
- **Plan Context**
|
|
286
|
+
- **Task Details**
|
|
287
|
+
- **Design Rationale**
|
|
288
|
+
- **Prior Design Context** (relevant prior design decisions)
|
|
289
|
+
- **Constraints** (updated with prior design decisions)
|
|
290
|
+
- **Design Queue** (show completed, current, pending items)
|
|
291
|
+
- **References** (plan path, completed spec paths)
|
|
370
292
|
|
|
371
293
|
### Update State
|
|
372
294
|
|
|
373
|
-
|
|
374
|
-
{
|
|
375
|
-
"design": {
|
|
376
|
-
"items": [
|
|
377
|
-
{ "name": "item_1", "status": "completed", "spec_file": "design_spec_item_1.md" },
|
|
378
|
-
{ "name": "item_2", "status": "in_progress", "spec_file": null },
|
|
379
|
-
{ "name": "item_3", "status": "pending", "spec_file": null }
|
|
380
|
-
],
|
|
381
|
-
"current_item": "item_2"
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
```
|
|
295
|
+
Update active context's `design.items`: mark completed item as `"completed"` with `spec_file`, mark next item as `"in_progress"`, set `design.current_item` to next item.
|
|
385
296
|
|
|
386
297
|
### Route User
|
|
387
298
|
|
|
388
|
-
|
|
299
|
+
"[Previous Item] design complete. Design brief updated for **[Next Item Name]** ([N] of [total], [remaining] remaining). Run `/intuition-design` to continue."
|
|
389
300
|
|
|
390
301
|
## TRANSITION 4: DESIGN → EXECUTION
|
|
391
302
|
|
|
392
|
-
Triggers when ALL design items have status `"completed"`
|
|
303
|
+
Triggers when ALL design items have status `"completed"` or `"skipped"`.
|
|
393
304
|
|
|
394
305
|
### Read Outputs
|
|
395
306
|
|
|
396
|
-
Read all design specs: `
|
|
397
|
-
Read: `
|
|
307
|
+
Read all design specs: `{context_path}design_spec_*.md`
|
|
308
|
+
Read: `{context_path}plan.md`
|
|
398
309
|
|
|
399
310
|
### Extract and Structure
|
|
400
311
|
|
|
401
|
-
From
|
|
402
|
-
- **All architectural decisions** → ensure they're in `decisions.md`
|
|
403
|
-
- **Key facts discovered during design** → add to `key_facts.md`
|
|
404
|
-
- **All design work** → log in `issues.md`
|
|
312
|
+
From design specs: decisions → `docs/project_notes/decisions.md`, key facts → `docs/project_notes/key_facts.md`, design work → `docs/project_notes/issues.md`.
|
|
405
313
|
|
|
406
314
|
### Generate Execution Brief
|
|
407
315
|
|
|
408
|
-
Write `
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
[What will be accomplished]
|
|
418
|
-
|
|
419
|
-
## Discovery Context
|
|
420
|
-
[Brief reminder of why this matters]
|
|
421
|
-
|
|
422
|
-
## Design Specifications
|
|
423
|
-
[List all design specs produced, with one-line summary of each:]
|
|
424
|
-
- design_spec_[item1].md — [summary]
|
|
425
|
-
- design_spec_[item2].md — [summary]
|
|
426
|
-
|
|
427
|
-
**IMPORTANT:** Execute agents MUST read these specs before implementing flagged tasks. Implement exactly what's specified. If ambiguity is found, escalate to user — do not make design decisions autonomously.
|
|
428
|
-
|
|
429
|
-
## Task Summary
|
|
430
|
-
[List tasks in execution order with brief descriptions]
|
|
431
|
-
[Mark which tasks have associated design specs]
|
|
432
|
-
|
|
433
|
-
## Quality Gates
|
|
434
|
-
- Security review: MANDATORY
|
|
435
|
-
- Tests must pass
|
|
436
|
-
- Code review required
|
|
437
|
-
|
|
438
|
-
## Known Risks
|
|
439
|
-
- [Risk]: Mitigation [strategy]
|
|
440
|
-
|
|
441
|
-
## References
|
|
442
|
-
- Full Plan: docs/project_notes/plan.md
|
|
443
|
-
- Discovery Brief: docs/project_notes/discovery_brief.md
|
|
444
|
-
- Design Specs: docs/project_notes/design_spec_*.md
|
|
445
|
-
```
|
|
316
|
+
Write `{context_path}execution_brief.md` with these sections:
|
|
317
|
+
- **Plan Summary** (1-2 paragraphs)
|
|
318
|
+
- **Objective**
|
|
319
|
+
- **Discovery Context** (brief reminder)
|
|
320
|
+
- **Design Specifications** (list each spec with one-line summary; include: "Execute agents MUST read these specs before implementing flagged tasks.")
|
|
321
|
+
- **Task Summary** (execution order, mark tasks with design specs)
|
|
322
|
+
- **Quality Gates** (security review, tests, code review)
|
|
323
|
+
- **Known Risks** (with mitigations)
|
|
324
|
+
- **References** (plan path, discovery path, design spec paths)
|
|
446
325
|
|
|
447
326
|
### Update State
|
|
448
327
|
|
|
449
|
-
|
|
450
|
-
{
|
|
451
|
-
"workflow": {
|
|
452
|
-
"status": "executing",
|
|
453
|
-
"design": { "completed": true, "completed_at": "[ISO timestamp]" },
|
|
454
|
-
"execution": { "started": true }
|
|
455
|
-
}
|
|
456
|
-
}
|
|
457
|
-
```
|
|
328
|
+
Update active context: set `status` to `"executing"`, mark `design.completed = true` with timestamp, set `execution.started = true`.
|
|
458
329
|
|
|
459
330
|
### Route User
|
|
460
331
|
|
|
461
|
-
|
|
332
|
+
"All design specs processed. Execution brief saved to `{context_path}execution_brief.md`. Run `/intuition-execute` to begin implementation."
|
|
462
333
|
|
|
463
334
|
## TRANSITION 4B: PLANNING → EXECUTION (Skip Design)
|
|
464
335
|
|
|
465
|
-
Used when
|
|
336
|
+
Used when user confirms NO items need design.
|
|
466
337
|
|
|
467
338
|
### Generate Execution Brief
|
|
468
339
|
|
|
469
|
-
Same format as Transition 4 but without the "Design Specifications" section.
|
|
340
|
+
Same format as Transition 4 but without the "Design Specifications" section. Write to `{context_path}execution_brief.md`.
|
|
470
341
|
|
|
471
342
|
### Update State
|
|
472
343
|
|
|
473
|
-
|
|
474
|
-
{
|
|
475
|
-
"workflow": {
|
|
476
|
-
"status": "executing",
|
|
477
|
-
"planning": { "completed": true, "completed_at": "[ISO timestamp]", "approved": true },
|
|
478
|
-
"design": { "started": false, "completed": false, "items": [] },
|
|
479
|
-
"execution": { "started": true }
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
```
|
|
344
|
+
Update active context: set `status` to `"executing"`, mark `planning.completed = true` with timestamp and `approved = true`, set `design.started = false`, `design.completed = false`, `design.items = []`, set `execution.started = true`.
|
|
483
345
|
|
|
484
346
|
### Route User
|
|
485
347
|
|
|
486
|
-
|
|
348
|
+
"Plan processed. No design items flagged. Execution brief saved to `{context_path}execution_brief.md`. Run `/intuition-execute` to begin implementation."
|
|
487
349
|
|
|
488
350
|
## TRANSITION 5: EXECUTION → COMPLETE
|
|
489
351
|
|
|
490
352
|
### Read Outputs
|
|
491
353
|
|
|
492
|
-
Read execution results from any
|
|
354
|
+
Read execution results from `{context_path}` for any reports the execution phase produced.
|
|
493
355
|
|
|
494
356
|
### Extract and Structure
|
|
495
357
|
|
|
496
|
-
|
|
497
|
-
- **Lessons learned** → add to `key_facts.md`
|
|
498
|
-
- **Work completed** → update `issues.md`
|
|
358
|
+
Bugs found → `docs/project_notes/bugs.md`, lessons learned → `docs/project_notes/key_facts.md`, work completed → `docs/project_notes/issues.md`.
|
|
499
359
|
|
|
500
360
|
### Update State
|
|
501
361
|
|
|
502
|
-
|
|
503
|
-
{
|
|
504
|
-
"workflow": {
|
|
505
|
-
"status": "complete",
|
|
506
|
-
"execution": { "completed": true, "completed_at": "[ISO timestamp]" }
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
```
|
|
362
|
+
Update active context: set `status` to `"complete"`, mark `execution.completed = true` with timestamp.
|
|
510
363
|
|
|
511
364
|
### Route User
|
|
512
365
|
|
|
513
|
-
|
|
366
|
+
"Workflow cycle complete for [context display name]. Run `/intuition-start` to see your project status and decide what's next."
|
|
514
367
|
|
|
515
368
|
## MEMORY FILE FORMATS
|
|
516
369
|
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
```markdown
|
|
520
|
-
## [Category]
|
|
521
|
-
|
|
522
|
-
- **[Fact]**: [value] (discovered [date])
|
|
523
|
-
- **[Fact]**: [value] (discovered [date])
|
|
524
|
-
```
|
|
370
|
+
All shared memory files live at `docs/project_notes/` (never context_path).
|
|
525
371
|
|
|
526
|
-
|
|
372
|
+
**key_facts.md**: Categories with bulleted facts: `- **[Fact]**: [value] (discovered [date])`. Add categories as needed; never remove existing facts unless outdated.
|
|
527
373
|
|
|
528
|
-
|
|
374
|
+
**decisions.md**: ADR format: `### ADR-NNN: [Title] ([date])` with Status, Context, Decision, Consequences, Discovered During fields.
|
|
529
375
|
|
|
530
|
-
|
|
531
|
-
### ADR-NNN: [Title] ([date])
|
|
532
|
-
|
|
533
|
-
**Status**: Proposed | Accepted | Superseded
|
|
534
|
-
**Context:** [Why this decision was needed]
|
|
535
|
-
**Decision:** [What was chosen]
|
|
536
|
-
**Consequences:** [Benefits and trade-offs]
|
|
537
|
-
**Discovered During**: [Phase name]
|
|
538
|
-
```
|
|
539
|
-
|
|
540
|
-
### issues.md
|
|
541
|
-
|
|
542
|
-
```markdown
|
|
543
|
-
### [Date] - [ID]: [Title]
|
|
544
|
-
|
|
545
|
-
- **Status**: Completed | In Progress | Blocked
|
|
546
|
-
- **Description**: [1-2 line summary]
|
|
547
|
-
- **Source**: [Phase and file reference]
|
|
548
|
-
```
|
|
376
|
+
**issues.md**: `### [Date] - [ID]: [Title]` with Status, Description, Source fields.
|
|
549
377
|
|
|
550
378
|
## EDGE CASES
|
|
551
379
|
|
|
552
|
-
- **Missing discovery_output.json**: Extract insights
|
|
553
|
-
- **Poor output quality**: Process as-is. Note concerns in
|
|
554
|
-
- **
|
|
555
|
-
- **Interrupted handoff**: Check what's
|
|
556
|
-
- **Corrupted state**:
|
|
557
|
-
- **Design item skipped mid-loop**:
|
|
558
|
-
- **No Design Recommendations in plan**:
|
|
559
|
-
- **Plan revision after design started**:
|
|
380
|
+
- **Missing discovery_output.json**: Extract insights from discovery_brief.md manually.
|
|
381
|
+
- **Poor output quality**: Process as-is. Note concerns in brief. Do NOT fix outputs.
|
|
382
|
+
- **New constraints from planning**: Update key_facts.md, create ADR if architectural.
|
|
383
|
+
- **Interrupted handoff**: Check what's updated, continue from there, don't duplicate.
|
|
384
|
+
- **Corrupted state**: Infer phase from existing files. Ask user to confirm.
|
|
385
|
+
- **Design item skipped mid-loop**: Mark as `"skipped"`, proceed to next. Note in execution brief.
|
|
386
|
+
- **No Design Recommendations in plan**: Present tasks to user, ask if any need design. If none, use 4B.
|
|
387
|
+
- **Plan revision after design started**: Alert user. Ask whether to continue or re-evaluate.
|
|
560
388
|
|
|
561
389
|
## VOICE
|
|
562
390
|
|