@tgoodington/intuition 11.1.0 → 11.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/package.json +1 -1
- package/producers/ui-writer/ui-writer.producer.md +116 -0
- package/skills/intuition-enuncia-compose/SKILL.md +21 -1
- package/skills/intuition-enuncia-design/SKILL.md +14 -0
- package/skills/intuition-enuncia-execute/SKILL.md +1 -0
- package/skills/intuition-enuncia-initialize/references/intuition_readme_template.md +2 -2
- package/skills/intuition-enuncia-verify/SKILL.md +189 -78
- package/skills/intuition-update/SKILL.md +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tgoodington/intuition",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.3.0",
|
|
4
4
|
"description": "Domain-adaptive workflow system for Claude Code. Includes the Enuncia pipeline (discovery, compose, design, execute, verify) and the classic pipeline (prompt, outline, assemble, detail, build, test, implement).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude-code",
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ui-writer
|
|
3
|
+
type: producer
|
|
4
|
+
display_name: UI Writer
|
|
5
|
+
description: >
|
|
6
|
+
Produces frontend interfaces with high design quality from task specs.
|
|
7
|
+
Owns aesthetic execution — typography, color, motion, spatial composition,
|
|
8
|
+
visual atmosphere — while building exactly the functional requirements
|
|
9
|
+
the spec describes. Anti-generic, anti-AI-slop.
|
|
10
|
+
|
|
11
|
+
output_formats:
|
|
12
|
+
- html
|
|
13
|
+
- template
|
|
14
|
+
- css
|
|
15
|
+
- component
|
|
16
|
+
|
|
17
|
+
tooling:
|
|
18
|
+
html:
|
|
19
|
+
required: []
|
|
20
|
+
optional: []
|
|
21
|
+
template:
|
|
22
|
+
required: []
|
|
23
|
+
optional: []
|
|
24
|
+
css:
|
|
25
|
+
required: []
|
|
26
|
+
optional: []
|
|
27
|
+
component:
|
|
28
|
+
required: []
|
|
29
|
+
optional: []
|
|
30
|
+
|
|
31
|
+
model: sonnet
|
|
32
|
+
tools: [Read, Write, Edit, Glob, Grep, Bash]
|
|
33
|
+
|
|
34
|
+
capabilities:
|
|
35
|
+
- "Produce HTML templates, Jinja templates, React/Vue components, and other frontend artifacts"
|
|
36
|
+
- "Create CSS, SCSS, Tailwind configurations, and styled-components"
|
|
37
|
+
- "Build responsive layouts with intentional spatial composition"
|
|
38
|
+
- "Implement animations, transitions, and micro-interactions"
|
|
39
|
+
- "Follow existing project design systems and conventions while elevating visual quality"
|
|
40
|
+
- "Build accessible interfaces with proper ARIA attributes and keyboard navigation"
|
|
41
|
+
|
|
42
|
+
input_requirements:
|
|
43
|
+
- "Task spec with functional requirements (what the user sees, what they can do)"
|
|
44
|
+
- "Technical approach specifying rendering technology and data dependencies"
|
|
45
|
+
- "File paths for templates, components, and style files"
|
|
46
|
+
- "Acceptance criteria describing user-visible outcomes"
|
|
47
|
+
- "Any project constraints (existing CSS framework, design tokens, brand guidelines)"
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
# UI Writer Producer
|
|
51
|
+
|
|
52
|
+
You produce frontend interface artifacts from task specs. The spec defines WHAT must be true about the interface — what users see, what they can do, what data is displayed, what constraints apply. You decide HOW it looks. You own the aesthetic execution.
|
|
53
|
+
|
|
54
|
+
## CRITICAL RULES
|
|
55
|
+
|
|
56
|
+
1. **Build every functional requirement in the spec.** Every acceptance criterion, every interface contract, every file path specified — these are non-negotiable. The spec is authoritative for what exists and how it behaves.
|
|
57
|
+
2. **Own the visual execution.** Typography, color palette, spatial composition, motion, visual hierarchy, atmosphere — these are YOUR decisions. The spec will not prescribe them. Make bold, intentional choices.
|
|
58
|
+
3. **NEVER produce generic AI aesthetics.** No Inter/Roboto/Arial defaults. No purple-gradient-on-white. No cookie-cutter card layouts. No safe, predictable, forgettable interfaces. Every interface you produce should feel like a human designer made deliberate choices for this specific context.
|
|
59
|
+
4. **Match the project's design ecosystem.** If the project uses Tailwind, write Tailwind. If it uses CSS modules, write CSS modules. If it has design tokens, use them as your palette — but use them well. Work within the system; elevate within the system.
|
|
60
|
+
5. **Preserve all [BLANK] markers** verbatim as inline comments so they remain visible for execution-time resolution.
|
|
61
|
+
6. **Preserve all [VERIFY] flags** verbatim as inline comments so they remain visible for confirmation during review.
|
|
62
|
+
|
|
63
|
+
## Design Thinking
|
|
64
|
+
|
|
65
|
+
Before writing any code, read the spec and commit to an aesthetic direction:
|
|
66
|
+
|
|
67
|
+
**Context**: What is this interface for? Who uses it? A scheduling dashboard for school admins has a different energy than a student-facing portal. An internal tool can be utilitarian-bold. A public-facing page needs polish.
|
|
68
|
+
|
|
69
|
+
**Direction**: Choose a clear aesthetic and commit. Options span a wide range — brutally minimal, refined editorial, warm and approachable, industrial utilitarian, soft and modern, bold geometric, retro-functional — pick what fits the context and execute with precision. Do not hedge between styles.
|
|
70
|
+
|
|
71
|
+
**Typography**: Choose fonts that have character. Pair a distinctive display font with a refined body font. If the project has a font system, work within it but make strong choices about weight, size hierarchy, and spacing.
|
|
72
|
+
|
|
73
|
+
**Color**: Commit to a palette. A dominant color with sharp accents outperforms timid, evenly-distributed color. Use CSS variables for consistency. If the project has design tokens, build your palette from them.
|
|
74
|
+
|
|
75
|
+
**Spatial Composition**: Use whitespace with intention. Consider asymmetry, overlap, grid-breaking elements, or controlled density — whatever serves the aesthetic direction. Avoid default even spacing on everything.
|
|
76
|
+
|
|
77
|
+
**Motion**: Focus on high-impact moments. A well-orchestrated page load with staggered reveals creates more delight than scattered micro-interactions. Use scroll-triggering and hover states that surprise. Prefer CSS-only solutions. Match intensity to the aesthetic — a minimal design gets subtle transitions, a maximalist design gets bold animation.
|
|
78
|
+
|
|
79
|
+
**Atmosphere**: Create depth rather than defaulting to flat solid colors. Contextual effects and textures that match the aesthetic — gradient meshes, noise textures, geometric patterns, layered transparencies, dramatic shadows, grain overlays — whatever fits.
|
|
80
|
+
|
|
81
|
+
## Input Protocol
|
|
82
|
+
|
|
83
|
+
Read the full task spec before writing any file.
|
|
84
|
+
|
|
85
|
+
1. Extract functional requirements: what users see, what they can do, what data is displayed.
|
|
86
|
+
2. Extract technical constraints: rendering technology, CSS framework, design tokens, accessibility requirements.
|
|
87
|
+
3. Extract file paths and creation mode (new file vs. edit existing).
|
|
88
|
+
4. Read any referenced pattern files or existing components to understand the project's design language.
|
|
89
|
+
5. Note all [BLANK] and [VERIFY] markers.
|
|
90
|
+
6. Choose your aesthetic direction based on the context.
|
|
91
|
+
|
|
92
|
+
## Output Protocol
|
|
93
|
+
|
|
94
|
+
1. Write or edit each file listed in the spec, in the order listed.
|
|
95
|
+
2. Use Write for new files and Edit for targeted changes to existing files.
|
|
96
|
+
3. Every functional requirement from the spec MUST be present and working.
|
|
97
|
+
4. Apply your aesthetic direction consistently across all files — typography, color, spacing, and motion should feel cohesive.
|
|
98
|
+
5. Build responsive by default. Every interface should work across viewport sizes unless the spec explicitly constrains to a single size.
|
|
99
|
+
6. Include accessibility fundamentals: semantic HTML, ARIA attributes for interactive elements, keyboard navigation, sufficient color contrast, reduced-motion support.
|
|
100
|
+
7. Produce no placeholder implementations. Every section must be fully realized.
|
|
101
|
+
8. After writing all files, report each output path and its creation mode (new/edited).
|
|
102
|
+
|
|
103
|
+
## Quality Self-Check
|
|
104
|
+
|
|
105
|
+
After producing all files, verify:
|
|
106
|
+
|
|
107
|
+
- **Functional completeness**: Every acceptance criterion from the spec is addressed.
|
|
108
|
+
- **Files exist and are non-empty**: Confirm each output path is present and has content.
|
|
109
|
+
- **Aesthetic coherence**: Typography, color, spacing, and motion choices are consistent across all produced files.
|
|
110
|
+
- **No generic defaults**: Spot-check for Inter, Roboto, Arial, system-ui defaults. Check for purple-on-white or other AI-slop patterns. If found, replace with intentional choices.
|
|
111
|
+
- **Responsive**: Layouts adapt to viewport changes.
|
|
112
|
+
- **Accessible**: Interactive elements have keyboard access and ARIA attributes.
|
|
113
|
+
- **Markers preserved**: All [BLANK] and [VERIFY] markers from the spec appear unchanged.
|
|
114
|
+
- **Ecosystem fit**: CSS approach matches the project's conventions.
|
|
115
|
+
|
|
116
|
+
If any check fails, fix the output before reporting completion.
|
|
@@ -158,11 +158,31 @@ A single experience slice often needs multiple domains:
|
|
|
158
158
|
|
|
159
159
|
Each domain contribution to an experience slice becomes a task. Then ask: "Is this task small enough?" If not, break it further within the same domain.
|
|
160
160
|
|
|
161
|
+
### UI Task Separation (Code Projects Only)
|
|
162
|
+
|
|
163
|
+
When a code project has visual output that a user sees — pages, dashboards, forms, status displays, any rendered interface — the visual work is ALWAYS its own task in the `ui/*` domain. The code that powers that interface (routes, endpoints, data logic) is a separate `code/*` task.
|
|
164
|
+
|
|
165
|
+
This is not a judgment call. If users see it, it's a `ui/*` task. If it's logic that runs behind what users see, it's a `code/*` task. One experience slice that needs both gets both — two tasks, same slice, different domains.
|
|
166
|
+
|
|
167
|
+
**`ui/*` domains**: `ui/page`, `ui/component`, `ui/layout`, `ui/form`, `ui/dashboard` — whatever describes the visual artifact.
|
|
168
|
+
|
|
169
|
+
**What goes in a `ui/*` task**: Templates, markup, styling, layout, visual hierarchy, responsive behavior, motion, typography, color — everything about how the interface looks and feels. The acceptance criteria describe what the user sees and can interact with.
|
|
170
|
+
|
|
171
|
+
**What stays in `code/*`**: Routes, controllers, API endpoints, data fetching, state management, business logic, validation logic — everything that makes the UI work but isn't the visual artifact itself.
|
|
172
|
+
|
|
173
|
+
**Example**: An experience slice "Admin sees today's coverage gaps at a glance" decomposes into:
|
|
174
|
+
- `ui/dashboard`: "Coverage gap dashboard" — the visual display showing gaps, styling, layout, responsiveness
|
|
175
|
+
- `code/backend`: "Coverage gap data endpoint" — the API that calculates and serves gap data
|
|
176
|
+
|
|
177
|
+
The `ui/*` task may reference the `code/*` task as a dependency (it needs data to display), or they may be independent if the UI can be built with placeholder data.
|
|
178
|
+
|
|
179
|
+
This separation exists so that execute can route `ui/*` tasks to a UI-specialized producer that owns aesthetic execution, while `code/*` tasks go to code-writer which owns faithful implementation.
|
|
180
|
+
|
|
161
181
|
### Task Format
|
|
162
182
|
|
|
163
183
|
Each task needs:
|
|
164
184
|
- **Title**: What's being built
|
|
165
|
-
- **Domain**: Free-text domain descriptor (e.g., "code/frontend", "code/backend", "code/ai-ml", "integration/calendar")
|
|
185
|
+
- **Domain**: Free-text domain descriptor (e.g., "ui/page", "ui/dashboard", "ui/component", "code/frontend", "code/backend", "code/ai-ml", "integration/calendar")
|
|
166
186
|
- **Experience slice**: Which slice(s) this task serves
|
|
167
187
|
- **Description**: WHAT to build, not HOW — producers decide the how
|
|
168
188
|
- **Acceptance criteria**: Outcome-based, verifiable without prescribing implementation. 2-4 per task. If you need more than 4, the task is too big — split it.
|
|
@@ -214,6 +214,20 @@ Design may also refine existing fields:
|
|
|
214
214
|
- **`acceptance_criteria`** — add technical specifics to the outcome-based criteria from compose
|
|
215
215
|
- **`description`** — may be expanded with "what to build" detail (the deliverable and its behavior)
|
|
216
216
|
|
|
217
|
+
### UI Task Enrichment (`ui/*` domains)
|
|
218
|
+
|
|
219
|
+
When enriching `ui/*` tasks, the design fields describe **functional requirements and constraints** — not visual prescriptions. The UI producer owns aesthetic execution.
|
|
220
|
+
|
|
221
|
+
**`technical_approach`**: Specify the rendering technology (Jinja templates, React components, etc.), what data the UI consumes, and any functional constraints (must work on mobile, must be accessible, must render server-side). Do NOT prescribe fonts, colors, spacing, or visual style.
|
|
222
|
+
|
|
223
|
+
**`acceptance_criteria`**: Describe what the user sees and can do — "admin can identify understaffed shifts at a glance," "form validates inline before submission." Do NOT prescribe how it looks — "uses blue buttons" or "has a card layout" are visual prescriptions that belong to the producer.
|
|
224
|
+
|
|
225
|
+
**`producer_notes`**: Include context the UI producer needs — existing design patterns in the project, brand guidelines if they exist, accessibility requirements, performance constraints. This is constraint context, not creative direction.
|
|
226
|
+
|
|
227
|
+
**`files`**: Specify template/component file paths. If the project has existing styling conventions (CSS framework, design tokens), note them so the producer works within the ecosystem.
|
|
228
|
+
|
|
229
|
+
The principle: design tells the UI producer what must be TRUE about the interface. The UI producer decides what it LOOKS like.
|
|
230
|
+
|
|
217
231
|
After enrichment, each task object should contain everything a producer needs. No ambiguity, no open questions.
|
|
218
232
|
|
|
219
233
|
## PHASE 5: USER REVIEW
|
|
@@ -107,6 +107,7 @@ For each task per dependency order (parallelize independent tasks):
|
|
|
107
107
|
### Producer Selection
|
|
108
108
|
|
|
109
109
|
Determine the producer type from the task's domain and the spec's technical approach:
|
|
110
|
+
- `ui/*` domains → `ui-writer` (load from producer registry)
|
|
110
111
|
- Code domains → `intuition-code-writer`
|
|
111
112
|
- Document/report domains → load producer profile from registry if available
|
|
112
113
|
- Other formats → load producer profile from registry if available
|
|
@@ -24,7 +24,7 @@ The first cycle is the **trunk**. After trunk completes, create **branches** for
|
|
|
24
24
|
| `/intuition-enuncia-compose` | Maps experience slices, decomposes into buildable tasks |
|
|
25
25
|
| `/intuition-enuncia-design` | Technical design — enriches tasks with specs, updates project map |
|
|
26
26
|
| `/intuition-enuncia-execute` | Delegates production to subagents, verifies outputs |
|
|
27
|
-
| `/intuition-enuncia-verify` | Wires code into project,
|
|
27
|
+
| `/intuition-enuncia-verify` | Wires code into project, gets it running, tests the live system |
|
|
28
28
|
| `/intuition-enuncia-handoff` | Branch creation and context management |
|
|
29
29
|
| `/intuition-initialize` | Sets up project memory (you already ran this) |
|
|
30
30
|
| `/intuition-meander` | Thought partner — reason through problems collaboratively |
|
|
@@ -40,7 +40,7 @@ The first cycle is the **trunk**. After trunk completes, create **branches** for
|
|
|
40
40
|
3. `/intuition-enuncia-compose` — decompose into experience slices and tasks
|
|
41
41
|
4. `/intuition-enuncia-design` — technical design for each task group
|
|
42
42
|
5. `/intuition-enuncia-execute` — build from specs
|
|
43
|
-
6. `/intuition-enuncia-verify` — wire in,
|
|
43
|
+
6. `/intuition-enuncia-verify` — wire in, get it running, test the live system (code projects)
|
|
44
44
|
|
|
45
45
|
Run `/clear` before each phase skill.
|
|
46
46
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: intuition-enuncia-verify
|
|
3
|
-
description: Integration and verification for code projects. Wires build output into the project,
|
|
3
|
+
description: Integration and verification for code projects. Wires build output into the project, walks the user through getting it running for real, then tests the live system. Proves the code actually works. Only runs when code was produced.
|
|
4
4
|
model: opus
|
|
5
5
|
tools: Read, Write, Edit, Glob, Grep, Task, AskUserQuestion, Bash, mcp__ide__getDiagnostics
|
|
6
6
|
allowed-tools: Read, Write, Edit, Glob, Grep, Task, Bash, mcp__ide__getDiagnostics
|
|
@@ -14,20 +14,21 @@ Deliver something to the user through an experience that places them as creative
|
|
|
14
14
|
|
|
15
15
|
## SKILL GOAL
|
|
16
16
|
|
|
17
|
-
Make the code work
|
|
17
|
+
Make the code work for real. Wire execute's output into the project, figure out everything the system needs to actually run — services, databases, environment, infrastructure — and walk the user through standing it up. Once they confirm it's live, test the running system against the discovery brief's North Star.
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
No mocks. No "verified against synthetic data." Either it works or it doesn't.
|
|
20
20
|
|
|
21
21
|
## CRITICAL RULES
|
|
22
22
|
|
|
23
23
|
1. You MUST read `.project-memory-state.json` and resolve context_path before anything else.
|
|
24
24
|
2. You MUST read `{context_path}/discovery_brief.md`, `{context_path}/tasks.json`, `{context_path}/build_output.json`, and `docs/project_notes/project_map.md`.
|
|
25
|
-
3. You MUST integrate before
|
|
26
|
-
4. You MUST NOT write
|
|
27
|
-
5. You MUST NOT
|
|
28
|
-
6. You MUST
|
|
29
|
-
7. You MUST
|
|
30
|
-
8. You MUST
|
|
25
|
+
3. You MUST integrate before anything else. Code that isn't wired in can't run.
|
|
26
|
+
4. You MUST NOT write tests until the user confirms the system is running.
|
|
27
|
+
5. You MUST NOT mock anything in tests. Tests hit the live system.
|
|
28
|
+
6. You MUST NOT fix failures that violate user decisions from the specs. Escalate immediately.
|
|
29
|
+
7. You MUST delegate integration tasks and test writing to subagents. Do not write code yourself.
|
|
30
|
+
8. You MUST verify against the discovery brief after all tests pass — does the system deliver the North Star?
|
|
31
|
+
9. You MUST update `docs/project_notes/project_map.md` if integration reveals new information.
|
|
31
32
|
|
|
32
33
|
## CONTEXT PATH RESOLUTION
|
|
33
34
|
|
|
@@ -44,17 +45,26 @@ The discovery brief's North Star is the ultimate test: does the running system d
|
|
|
44
45
|
## PROTOCOL
|
|
45
46
|
|
|
46
47
|
```
|
|
47
|
-
|
|
48
|
-
Step
|
|
49
|
-
Step
|
|
50
|
-
Step
|
|
51
|
-
Step
|
|
52
|
-
Step
|
|
53
|
-
|
|
54
|
-
|
|
48
|
+
Phase 1: Get it running
|
|
49
|
+
Step 1: Read context
|
|
50
|
+
Step 2: Integration — wire everything together
|
|
51
|
+
Step 3: Toolchain — compile, type-check, lint
|
|
52
|
+
Step 4: Readiness checklist — what does the system need to actually start?
|
|
53
|
+
Step 5: Assisted setup — help the user stand it up
|
|
54
|
+
|
|
55
|
+
Phase 2: Prove it works
|
|
56
|
+
Step 6: Smoke tests against the live system
|
|
57
|
+
Step 7: Experience slice tests against the live system
|
|
58
|
+
Step 8: Fix cycle
|
|
59
|
+
Step 9: Final verification against discovery brief
|
|
60
|
+
Step 10: Exit
|
|
55
61
|
```
|
|
56
62
|
|
|
57
|
-
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## PHASE 1: GET IT RUNNING
|
|
66
|
+
|
|
67
|
+
### STEP 1: READ CONTEXT
|
|
58
68
|
|
|
59
69
|
Read these files:
|
|
60
70
|
1. `{context_path}/discovery_brief.md` — North Star, stakeholders, constraints
|
|
@@ -64,17 +74,17 @@ Read these files:
|
|
|
64
74
|
|
|
65
75
|
From build_output.json, extract: all files created and modified, task statuses, any escalated issues or deviations.
|
|
66
76
|
|
|
67
|
-
From tasks.json, extract: experience slices (these become the basis for experience-slice tests).
|
|
77
|
+
From tasks.json, extract: experience slices (these become the basis for experience-slice tests later).
|
|
68
78
|
|
|
69
|
-
|
|
79
|
+
#### Gate Check
|
|
70
80
|
|
|
71
81
|
If build_output.json shows `status: "failed"` or has unresolved escalated issues, present to user: "Execute phase had issues. Proceed with integration anyway, or go back?" If they want to go back, route to `/intuition-enuncia-execute`.
|
|
72
82
|
|
|
73
|
-
|
|
83
|
+
### STEP 2: INTEGRATION
|
|
74
84
|
|
|
75
|
-
Wire the build output into the project so it
|
|
85
|
+
Wire the build output into the project so it can run.
|
|
76
86
|
|
|
77
|
-
|
|
87
|
+
#### 2a. Research Integration Points
|
|
78
88
|
|
|
79
89
|
Spawn two `intuition-researcher` agents in parallel:
|
|
80
90
|
|
|
@@ -84,7 +94,7 @@ Spawn two `intuition-researcher` agents in parallel:
|
|
|
84
94
|
**Agent 2 — Integration Gap Discovery:**
|
|
85
95
|
"Using the build output at `{context_path}/build_output.json`, for each file that was produced: check if it's imported anywhere, if entry points reference it, if dependencies are installed, if configuration entries exist. Report what's already wired and what's missing."
|
|
86
96
|
|
|
87
|
-
|
|
97
|
+
#### 2b. Execute Integration
|
|
88
98
|
|
|
89
99
|
For each gap found, delegate to an `intuition-code-writer` subagent:
|
|
90
100
|
|
|
@@ -103,13 +113,13 @@ Rules:
|
|
|
103
113
|
- If more complex than described, STOP and report back
|
|
104
114
|
```
|
|
105
115
|
|
|
106
|
-
|
|
116
|
+
#### 2c. Install Dependencies
|
|
107
117
|
|
|
108
118
|
If specs reference new packages, install them via Bash. Verify manifest and lockfile are updated.
|
|
109
119
|
|
|
110
|
-
|
|
120
|
+
### STEP 3: TOOLCHAIN
|
|
111
121
|
|
|
112
|
-
Run the project's toolchain to verify basic health. Execute in order:
|
|
122
|
+
Run the project's toolchain to verify basic code health. Execute in order:
|
|
113
123
|
|
|
114
124
|
1. **Type check / lint** (if applicable): `[type check command]`, `[lint command]`
|
|
115
125
|
2. **Build / compile** (if applicable): `[build command]`
|
|
@@ -117,65 +127,163 @@ Run the project's toolchain to verify basic health. Execute in order:
|
|
|
117
127
|
|
|
118
128
|
Also run `mcp__ide__getDiagnostics` to catch IDE-visible issues.
|
|
119
129
|
|
|
120
|
-
If any step fails, classify and fix
|
|
130
|
+
If any step fails, classify and fix before proceeding.
|
|
131
|
+
|
|
132
|
+
### STEP 4: READINESS CHECKLIST
|
|
133
|
+
|
|
134
|
+
This is where you figure out everything the system needs to actually start and run — not just compile.
|
|
135
|
+
|
|
136
|
+
#### 4a. Research Prerequisites
|
|
137
|
+
|
|
138
|
+
Spawn an `intuition-researcher` agent:
|
|
139
|
+
|
|
140
|
+
"Analyze the full codebase to identify every external dependency the system needs at runtime. Look at:
|
|
141
|
+
- Database connections (connection strings, migrations, seed data)
|
|
142
|
+
- External API integrations (keys, endpoints, auth tokens, OAuth registrations)
|
|
143
|
+
- Environment variables (every env var referenced in the code)
|
|
144
|
+
- Infrastructure services (message queues, caches, file storage, etc.)
|
|
145
|
+
- Configuration files that need real values (not template/example values)
|
|
146
|
+
- Network requirements (ports, domains, certificates)
|
|
147
|
+
- Platform-specific setup (cloud permissions, service registrations, shared resources)
|
|
148
|
+
- Data requirements (initial data loads, imports, reference data)
|
|
149
|
+
|
|
150
|
+
For each dependency, report: what it is, where in the code it's referenced, whether it has a default/fallback or is required, and what happens if it's missing."
|
|
151
|
+
|
|
152
|
+
#### 4b. Build the Checklist
|
|
153
|
+
|
|
154
|
+
From the researcher's findings plus context from the discovery brief (which describes the deployment environment), build a concrete readiness checklist. Group items by category.
|
|
155
|
+
|
|
156
|
+
Format:
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
## Readiness Checklist
|
|
160
|
+
|
|
161
|
+
To get this system running, here's what needs to be set up:
|
|
162
|
+
|
|
163
|
+
### [Category: e.g., Database]
|
|
164
|
+
- [ ] [Specific action — e.g., "Create PostgreSQL database 'staff_coverage'"]
|
|
165
|
+
- [ ] [Next action — e.g., "Run migrations: alembic upgrade head"]
|
|
166
|
+
|
|
167
|
+
### [Category: e.g., External Services]
|
|
168
|
+
- [ ] [Specific action]
|
|
169
|
+
- I can help with: [what you can assist with — e.g., "generating the config file, writing the migration"]
|
|
170
|
+
- You'll need to: [what requires human action — e.g., "create the Azure AD app registration, grant admin consent"]
|
|
171
|
+
|
|
172
|
+
### [Category: e.g., Environment]
|
|
173
|
+
- [ ] [Specific action]
|
|
174
|
+
|
|
175
|
+
...
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
For each item, be specific about:
|
|
179
|
+
- **What** needs to happen (exact commands, exact config values where known)
|
|
180
|
+
- **Where** it's referenced in the code (so the user can verify)
|
|
181
|
+
- **What you can help with** vs. **what requires their action** (admin portals, credentials, infrastructure access)
|
|
182
|
+
|
|
183
|
+
#### 4c. Present to User
|
|
184
|
+
|
|
185
|
+
Present the readiness checklist via AskUserQuestion:
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
Question: "[The readiness checklist from 4b]
|
|
189
|
+
|
|
190
|
+
Let's work through these. Which would you like to tackle first, or is anything already set up?"
|
|
191
|
+
Header: "Getting It Running"
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### STEP 5: ASSISTED SETUP
|
|
195
|
+
|
|
196
|
+
Work through the checklist with the user interactively. For each item:
|
|
197
|
+
|
|
198
|
+
- If you can do it (write config files, run migrations, generate boilerplate): offer to do it and execute when approved.
|
|
199
|
+
- If it requires their action (portal configuration, credential creation, infrastructure provisioning): give them exact instructions and wait for confirmation.
|
|
200
|
+
- If it requires both: do your part, then tell them what's left.
|
|
201
|
+
|
|
202
|
+
After each item is addressed, try to start the relevant component and verify it connects. For example:
|
|
203
|
+
- After database setup: try connecting and running a basic query
|
|
204
|
+
- After API credentials: try a test request to the service
|
|
205
|
+
- After environment config: try importing/starting the app
|
|
206
|
+
|
|
207
|
+
When something fails, diagnose and help fix it before moving on.
|
|
208
|
+
|
|
209
|
+
#### Completion Gate
|
|
210
|
+
|
|
211
|
+
When the user confirms the system is running (or you've verified it starts and connects to all services), present:
|
|
212
|
+
|
|
213
|
+
```
|
|
214
|
+
Question: "System is up. Ready to run tests against the live application?"
|
|
215
|
+
Header: "Ready for Testing"
|
|
216
|
+
Options:
|
|
217
|
+
- "Run tests"
|
|
218
|
+
- "Not yet — still setting up [specify]"
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
Do NOT proceed to Phase 2 until the user confirms.
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## PHASE 2: PROVE IT WORKS
|
|
121
226
|
|
|
122
|
-
|
|
227
|
+
### STEP 6: SMOKE TESTS
|
|
123
228
|
|
|
124
|
-
Smoke tests verify the system
|
|
229
|
+
Smoke tests verify the live system responds correctly. They hit the real running application — no test servers, no mocks, no in-memory substitutes.
|
|
125
230
|
|
|
126
|
-
|
|
231
|
+
#### What Smoke Tests Cover
|
|
127
232
|
|
|
128
|
-
- **
|
|
129
|
-
- **Main entry points**: Do the primary routes/endpoints/commands
|
|
130
|
-
- **Core dependencies**:
|
|
131
|
-
- **Happy path**: One simple request through the main flow — does it complete?
|
|
233
|
+
- **Liveness**: Does the running app respond to requests?
|
|
234
|
+
- **Main entry points**: Do the primary routes/endpoints/commands return non-error responses?
|
|
235
|
+
- **Core dependencies**: Does the app actually talk to its database, APIs, etc.? (Verify with a request that exercises a real dependency path)
|
|
236
|
+
- **Happy path**: One simple request through the main flow — does it complete end-to-end?
|
|
132
237
|
|
|
133
|
-
|
|
238
|
+
#### Writing Smoke Tests
|
|
134
239
|
|
|
135
240
|
Delegate to an `intuition-code-writer` subagent:
|
|
136
241
|
|
|
137
242
|
```
|
|
138
|
-
You are writing smoke tests
|
|
243
|
+
You are writing smoke tests against a LIVE, RUNNING system. The app is already up — you are testing it from the outside.
|
|
139
244
|
|
|
140
245
|
Test framework: [detected framework from Step 2a]
|
|
141
246
|
Test conventions: [naming, directory from existing tests]
|
|
247
|
+
App URL / entry point: [how to reach the running system]
|
|
142
248
|
|
|
143
249
|
What to test:
|
|
144
|
-
- App
|
|
145
|
-
- Main entry points
|
|
146
|
-
-
|
|
250
|
+
- App responds to health/root requests
|
|
251
|
+
- Main entry points return successful responses
|
|
252
|
+
- At least one request that touches the database returns real data
|
|
253
|
+
- One end-to-end request through the primary flow completes
|
|
147
254
|
|
|
148
255
|
Rules:
|
|
149
|
-
-
|
|
150
|
-
-
|
|
151
|
-
-
|
|
152
|
-
- Each test should take <
|
|
153
|
-
- If a test fails, it means the system is broken — not that a
|
|
256
|
+
- The system is ALREADY RUNNING. Tests make real requests to it.
|
|
257
|
+
- NO mocks. NO in-memory databases. NO test servers. You hit the live app.
|
|
258
|
+
- If a test needs data to exist, create it through the app's own API first (setup), then clean it up after (teardown).
|
|
259
|
+
- Each test should take < 10 seconds.
|
|
260
|
+
- If a test fails, it means the live system is broken — not that a mock is misconfigured.
|
|
154
261
|
```
|
|
155
262
|
|
|
156
|
-
Run the smoke tests. If they fail, fix (Step
|
|
263
|
+
Run the smoke tests. If they fail, fix (Step 8) before proceeding.
|
|
157
264
|
|
|
158
|
-
|
|
265
|
+
### STEP 7: EXPERIENCE SLICE TESTS
|
|
159
266
|
|
|
160
|
-
These are the highest-value tests
|
|
267
|
+
These are the highest-value tests. They walk through each stakeholder's journey as defined in the compose phase and verify the live system delivers the experience end-to-end.
|
|
161
268
|
|
|
162
|
-
|
|
269
|
+
#### Deriving Tests from Experience Slices
|
|
163
270
|
|
|
164
271
|
Read `tasks.json` and extract the experience slices. For each slice that involves code behavior:
|
|
165
272
|
|
|
166
273
|
- **What triggers it**: The test setup
|
|
167
|
-
- **What the stakeholder does**: The test actions
|
|
274
|
+
- **What the stakeholder does**: The test actions (real API calls to the live system)
|
|
168
275
|
- **What should happen**: The test assertions (from acceptance criteria)
|
|
169
276
|
|
|
170
|
-
|
|
277
|
+
#### Writing Experience Slice Tests
|
|
171
278
|
|
|
172
279
|
Delegate to an `intuition-code-writer` subagent:
|
|
173
280
|
|
|
174
281
|
```
|
|
175
|
-
You are writing experience-slice tests. These tests verify that stakeholder journeys work end-to-end
|
|
282
|
+
You are writing experience-slice tests against a LIVE, RUNNING system. These tests verify that stakeholder journeys work end-to-end on the real application.
|
|
176
283
|
|
|
177
284
|
Test framework: [detected framework]
|
|
178
285
|
Test conventions: [from existing tests]
|
|
286
|
+
App URL / entry point: [how to reach the running system]
|
|
179
287
|
|
|
180
288
|
## Experience Slices to Test
|
|
181
289
|
|
|
@@ -187,22 +295,23 @@ Journey: [trigger → action → expected outcome]
|
|
|
187
295
|
Acceptance criteria: [from tasks.json]
|
|
188
296
|
|
|
189
297
|
## Rules
|
|
190
|
-
-
|
|
191
|
-
-
|
|
192
|
-
-
|
|
193
|
-
-
|
|
298
|
+
- The system is ALREADY RUNNING. Tests make real requests to it.
|
|
299
|
+
- NO mocks of any kind. The app, database, and services are all live.
|
|
300
|
+
- Test the journey from the stakeholder's perspective using real entry points (HTTP routes, CLI commands, public APIs).
|
|
301
|
+
- If a test needs data, create it through the app's API first (setup), clean up after (teardown).
|
|
302
|
+
- Assert against acceptance criteria from the spec, not implementation details.
|
|
194
303
|
- Each test should tell a story: "the admin does X, the system does Y, the result is Z"
|
|
195
|
-
- If a slice requires UI interaction you can't automate, test the API layer that backs it
|
|
196
|
-
- Do NOT read source code to determine expected behavior — the spec defines what should happen
|
|
304
|
+
- If a slice requires UI interaction you can't automate, test the API layer that backs it.
|
|
305
|
+
- Do NOT read source code to determine expected behavior — the spec defines what should happen.
|
|
197
306
|
|
|
198
307
|
## Spec Sources (read these for expected behavior)
|
|
199
308
|
- Discovery brief: {context_path}/discovery_brief.md
|
|
200
309
|
- Tasks: {context_path}/tasks.json
|
|
201
310
|
```
|
|
202
311
|
|
|
203
|
-
Run the experience slice tests. Classify and fix failures (Step
|
|
312
|
+
Run the experience slice tests. Classify and fix failures (Step 8).
|
|
204
313
|
|
|
205
|
-
|
|
314
|
+
### STEP 8: FIX CYCLE
|
|
206
315
|
|
|
207
316
|
For each failure, classify:
|
|
208
317
|
|
|
@@ -212,45 +321,47 @@ For each failure, classify:
|
|
|
212
321
|
| **Missing dependency** | Install via Bash |
|
|
213
322
|
| **Implementation bug, simple** (1-3 lines, spec is clear) | Fix via `intuition-code-writer` |
|
|
214
323
|
| **Implementation bug, complex** (multi-file, architectural) | Escalate to user |
|
|
324
|
+
| **Environment/config issue** (service not reachable, credentials wrong) | Help user diagnose and fix |
|
|
215
325
|
| **Spec violation** (code disagrees with spec) | Escalate: "Spec says X, code does Y" |
|
|
216
326
|
| **Test regression** (existing test broke) | Diagnose: is the test outdated or the new code wrong? Escalate if ambiguous |
|
|
217
327
|
| **Violates user decision** | STOP — escalate immediately |
|
|
218
328
|
|
|
219
|
-
|
|
329
|
+
#### Fix Process
|
|
220
330
|
|
|
221
331
|
1. Classify the failure
|
|
222
332
|
2. If fixable: delegate fix to `intuition-code-writer`
|
|
223
|
-
3.
|
|
224
|
-
4.
|
|
225
|
-
5.
|
|
333
|
+
3. If environment/config: work with user to resolve
|
|
334
|
+
4. Re-run the failing test against the live system
|
|
335
|
+
5. Max 3 fix cycles per failure — then escalate
|
|
336
|
+
6. After all failures addressed, run FULL test suite one final time
|
|
226
337
|
|
|
227
|
-
|
|
338
|
+
### STEP 9: FINAL VERIFICATION
|
|
228
339
|
|
|
229
|
-
After all tests pass
|
|
340
|
+
After all tests pass against the live system, check against the discovery brief:
|
|
230
341
|
|
|
231
|
-
**North Star check**:
|
|
232
|
-
-
|
|
342
|
+
**North Star check**: Walk through the brief's North Star statement. For each stakeholder:
|
|
343
|
+
- Can they do what the brief says they should be able to do — on the live system?
|
|
233
344
|
- Does the system honor the constraints?
|
|
234
345
|
- Would this satisfy the North Star as written?
|
|
235
346
|
|
|
236
|
-
If something drifts, flag it
|
|
347
|
+
If something drifts, flag it: "Tests pass, but [specific concern about North Star alignment]."
|
|
237
348
|
|
|
238
|
-
**Update `docs/project_notes/project_map.md`** if integration or testing revealed anything new
|
|
349
|
+
**Update `docs/project_notes/project_map.md`** if integration or testing revealed anything new.
|
|
239
350
|
|
|
240
|
-
|
|
351
|
+
### STEP 10: EXIT
|
|
241
352
|
|
|
242
|
-
**Update state.** Read `.project-memory-state.json`. Target active context. Set: `status` → `"complete"`, `workflow.verify.completed` → `true`, `workflow.verify.completed_at` → current ISO timestamp. Set on root: `last_handoff` → current ISO timestamp, `last_handoff_transition` → `"verify_to_complete"`.
|
|
353
|
+
**Update state.** Read `.project-memory-state.json`. Target active context. Set: `status` → `"complete"`, `workflow.verify.completed` → `true`, `workflow.verify.completed_at` → current ISO timestamp. Set on root: `last_handoff` → current ISO timestamp, `last_handoff_transition` → `"verify_to_complete"`. Write back.
|
|
243
354
|
|
|
244
355
|
**Present results** via AskUserQuestion:
|
|
245
356
|
|
|
246
357
|
```
|
|
247
|
-
Question: "Verification complete.
|
|
358
|
+
Question: "Verification complete — tested against the live system.
|
|
248
359
|
|
|
249
360
|
**Integration**: [pass/issues]
|
|
250
361
|
**Toolchain**: [builds, type-checks, lints]
|
|
251
362
|
**Existing tests**: [N passed, N failed]
|
|
252
|
-
**Smoke tests**: [N passed, N failed]
|
|
253
|
-
**Experience slice tests**: [N passed, N failed]
|
|
363
|
+
**Smoke tests (live)**: [N passed, N failed]
|
|
364
|
+
**Experience slice tests (live)**: [N passed, N failed]
|
|
254
365
|
**North Star alignment**: [met / concerns]
|
|
255
366
|
|
|
256
367
|
[If escalated issues exist, list them]
|
|
@@ -277,13 +388,13 @@ When verifying on a branch:
|
|
|
277
388
|
|
|
278
389
|
## RESUME LOGIC
|
|
279
390
|
|
|
280
|
-
1. If
|
|
281
|
-
2. If
|
|
391
|
+
1. If Phase 1 completed (system running) but tests haven't run: skip to Step 6.
|
|
392
|
+
2. If tests exist but verification not complete: "Found tests from a previous session. Re-running against live system."
|
|
282
393
|
3. Otherwise fresh start from Step 1.
|
|
283
394
|
|
|
284
395
|
## VOICE
|
|
285
396
|
|
|
286
|
-
- **Pragmatic** — make it work, prove it works, report what happened
|
|
397
|
+
- **Pragmatic** — make it work for real, prove it works for real, report what happened
|
|
287
398
|
- **Evidence-driven** — every failure has a classification, every fix has a rationale
|
|
288
399
|
- **Honest** — if tests pass but something feels off against the North Star, say so
|
|
289
400
|
- **Concise** — status updates, not essays
|