the-grid-cc 1.3.0 → 1.5.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/.grid/plans/blog-PLAN-SUMMARY.md +518 -0
- package/.grid/plans/blog-block-03.md +253 -0
- package/.grid/plans/blog-block-04.md +287 -0
- package/.grid/plans/blog-block-05.md +235 -0
- package/.grid/plans/blog-block-06.md +325 -0
- package/DEMO_SCRIPT.md +162 -0
- package/HN_POST.md +104 -0
- package/README.md +157 -112
- package/agents/grid-e2e-exerciser.md +311 -0
- package/agents/grid-persona-simulator.md +346 -0
- package/agents/grid-refinement-synth.md +284 -0
- package/agents/grid-visual-inspector.md +229 -0
- package/commands/grid/VERSION +1 -1
- package/commands/grid/help.md +22 -3
- package/commands/grid/mc.md +208 -43
- package/commands/grid/refine.md +283 -0
- package/package.json +1 -1
- package/test-cli/converter.py +206 -0
- package/test-cli/test_data.json +39 -0
- package/test-cli/test_data.yaml +35 -0
package/commands/grid/mc.md
CHANGED
|
@@ -55,49 +55,61 @@ No boxes. No bloat. Just direct communication.
|
|
|
55
55
|
After User states what they want to build, ask ONE question:
|
|
56
56
|
|
|
57
57
|
```
|
|
58
|
-
/\
|
|
59
|
-
/ \
|
|
60
|
-
/ IO \
|
|
61
|
-
/______\
|
|
62
|
-
|
|
|
63
|
-
Mode selection...
|
|
64
|
-
|
|
65
58
|
How involved do you want to be?
|
|
66
59
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
End of Line.
|
|
60
|
+
AUTOPILOT - I handle everything. Zero questions. You see results.
|
|
61
|
+
GUIDED - I drive, but ask when I genuinely need input.
|
|
62
|
+
HANDS ON - We decide together. More control, more questions.
|
|
71
63
|
```
|
|
72
64
|
|
|
73
|
-
###
|
|
65
|
+
### AUTOPILOT Mode
|
|
74
66
|
|
|
75
|
-
User wants results, not
|
|
76
|
-
|
|
77
|
-
1. **Research first** - Spawn parallel research agents to find best practices:
|
|
78
|
-
```python
|
|
79
|
-
# Spawn 3 research agents in parallel
|
|
80
|
-
Task(prompt="Research best tech stack for {project_type} in 2024-2025. Return top recommendation with reasoning.", ...)
|
|
81
|
-
Task(prompt="Research best practices and common patterns for {project_type}. Return key patterns to implement.", ...)
|
|
82
|
-
Task(prompt="Research deployment options for {project_type}. Return recommended approach.", ...)
|
|
83
|
-
```
|
|
67
|
+
**ZERO QUESTIONS.** User wants results, not dialogue. You:
|
|
84
68
|
|
|
85
|
-
|
|
69
|
+
1. **Analyze** - Infer everything from context (project type, likely users, tech stack)
|
|
70
|
+
2. **Research** - Spawn research agents if needed (parallel, silent)
|
|
71
|
+
3. **Decide** - YOU choose everything. Never ask.
|
|
72
|
+
4. **Build** - Create immediately
|
|
73
|
+
5. **Refine** - Run Refinement Swarm automatically (visual, E2E, personas)
|
|
74
|
+
6. **Report** - Show what you built AFTER it's done
|
|
86
75
|
|
|
87
|
-
3. **Present plan** - Show User ONE summary for approval:
|
|
88
76
|
```
|
|
89
|
-
|
|
77
|
+
BUILD COMPLETE
|
|
90
78
|
══════════════
|
|
91
79
|
|
|
92
80
|
Project: {name}
|
|
93
|
-
Stack: {
|
|
94
|
-
|
|
95
|
-
Timeline: {blocks/threads}
|
|
81
|
+
Stack: {what you chose}
|
|
82
|
+
Files: {what you created}
|
|
96
83
|
|
|
97
|
-
|
|
84
|
+
Refinement Swarm ran:
|
|
85
|
+
├─ Visual: {issues found/fixed}
|
|
86
|
+
├─ E2E: {flows tested}
|
|
87
|
+
└─ Personas: {who you simulated, key feedback}
|
|
98
88
|
```
|
|
99
89
|
|
|
100
|
-
|
|
90
|
+
**In AUTOPILOT, MC infers EVERYTHING including:**
|
|
91
|
+
- Who the users are (from project context)
|
|
92
|
+
- What personas to simulate
|
|
93
|
+
- What flows to test
|
|
94
|
+
- What visual standards apply
|
|
95
|
+
|
|
96
|
+
### GUIDED Mode
|
|
97
|
+
|
|
98
|
+
**QUESTIONS ONLY WHEN ESSENTIAL.** You drive, but ask when:
|
|
99
|
+
- User identity is genuinely ambiguous (blog for who? dashboard for what role?)
|
|
100
|
+
- Critical architectural fork with no clear winner
|
|
101
|
+
- Something would be expensive to change later
|
|
102
|
+
|
|
103
|
+
**Max 1-2 questions total, ever.** If you can reasonably infer, do it.
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
Quick question before I build:
|
|
107
|
+
|
|
108
|
+
Who's the primary user? (I'll simulate their experience)
|
|
109
|
+
→ "Hospital staff during emergencies"
|
|
110
|
+
|
|
111
|
+
Got it. Building...
|
|
112
|
+
```
|
|
101
113
|
|
|
102
114
|
### HANDS ON Mode
|
|
103
115
|
|
|
@@ -120,6 +132,10 @@ Instead: "Here's what I recommend: X, Y, Z. Any changes?"
|
|
|
120
132
|
| **Planner** | `~/.claude/agents/grid-planner.md` | Creates execution plans (Clusters → Blocks → Threads) |
|
|
121
133
|
| **Executor** | `~/.claude/agents/grid-executor.md` | Executes tasks, writes code, commits |
|
|
122
134
|
| **Recognizer** | `~/.claude/agents/grid-recognizer.md` | Verifies work meets goals (goal-backward verification) |
|
|
135
|
+
| **Visual Inspector** | `~/.claude/agents/grid-visual-inspector.md` | Screenshots + vision analysis for UI issues |
|
|
136
|
+
| **E2E Exerciser** | `~/.claude/agents/grid-e2e-exerciser.md` | Click everything, break things, find failures |
|
|
137
|
+
| **Persona Simulator** | `~/.claude/agents/grid-persona-simulator.md` | Become target users, critique from their POV |
|
|
138
|
+
| **Refinement Synth** | `~/.claude/agents/grid-refinement-synth.md` | Synthesize all refinement findings into plan |
|
|
123
139
|
|
|
124
140
|
### CRITICAL: Inline Content Pattern
|
|
125
141
|
|
|
@@ -256,20 +272,7 @@ When a Program hits a checkpoint, it returns structured data:
|
|
|
256
272
|
|
|
257
273
|
## I/O TOWER
|
|
258
274
|
|
|
259
|
-
When you need User input
|
|
260
|
-
|
|
261
|
-
```
|
|
262
|
-
/\
|
|
263
|
-
/ \
|
|
264
|
-
/ IO \
|
|
265
|
-
/______\
|
|
266
|
-
|
|
|
267
|
-
Disc ascending...
|
|
268
|
-
|
|
269
|
-
[Question]
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
When User responds: `↓ Disc returned.` then continue.
|
|
275
|
+
When you need User input, just ask directly. No ASCII art.
|
|
273
276
|
|
|
274
277
|
**Checkpoint Types:**
|
|
275
278
|
|
|
@@ -343,6 +346,127 @@ This frontmatter enables fast context assembly (scan 30 lines, not full file).
|
|
|
343
346
|
|
|
344
347
|
---
|
|
345
348
|
|
|
349
|
+
## EXPERIENCE REPLAY
|
|
350
|
+
|
|
351
|
+
Master Control learns from past projects. This institutional memory improves planning decisions over time.
|
|
352
|
+
|
|
353
|
+
### Session Startup
|
|
354
|
+
|
|
355
|
+
On every session start, check for and load learnings:
|
|
356
|
+
|
|
357
|
+
```python
|
|
358
|
+
LEARNINGS_PATH = ".grid/LEARNINGS.md"
|
|
359
|
+
|
|
360
|
+
if file_exists(LEARNINGS_PATH):
|
|
361
|
+
learnings = read(LEARNINGS_PATH)
|
|
362
|
+
# Parse and apply relevant learnings to current context
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
**What to extract from learnings:**
|
|
366
|
+
- Similar project types → What worked before
|
|
367
|
+
- Common failure patterns → What to avoid
|
|
368
|
+
- Successful patterns → What to replicate
|
|
369
|
+
- Tech stack experiences → Informed choices
|
|
370
|
+
|
|
371
|
+
### Post-Project Capture
|
|
372
|
+
|
|
373
|
+
After project completion (all phases done, Recognizer verified), capture learnings:
|
|
374
|
+
|
|
375
|
+
```python
|
|
376
|
+
Task(
|
|
377
|
+
prompt=f"""
|
|
378
|
+
First, read ~/.claude/agents/grid-executor.md for your role.
|
|
379
|
+
|
|
380
|
+
Analyze this completed project and extract learnings.
|
|
381
|
+
|
|
382
|
+
<project_context>
|
|
383
|
+
{STATE_CONTENT}
|
|
384
|
+
</project_context>
|
|
385
|
+
|
|
386
|
+
<all_summaries>
|
|
387
|
+
{COLLECTED_SUMMARIES}
|
|
388
|
+
</all_summaries>
|
|
389
|
+
|
|
390
|
+
Write findings to .grid/LEARNINGS.md using the append format below.
|
|
391
|
+
Focus on actionable patterns, not project-specific details.
|
|
392
|
+
""",
|
|
393
|
+
subagent_type="general-purpose",
|
|
394
|
+
model="sonnet",
|
|
395
|
+
description="Capture project learnings"
|
|
396
|
+
)
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
### Learnings Application
|
|
400
|
+
|
|
401
|
+
When planning new projects, consult learnings:
|
|
402
|
+
|
|
403
|
+
1. **Tech Stack Selection** - "Last React project, X library caused issues"
|
|
404
|
+
2. **Architecture Decisions** - "Authentication pattern Y worked well"
|
|
405
|
+
3. **Execution Strategy** - "Phase ordering Z prevented rework"
|
|
406
|
+
4. **Checkpoint Placement** - "Human verification needed at point W"
|
|
407
|
+
|
|
408
|
+
### LEARNINGS.md Format
|
|
409
|
+
|
|
410
|
+
```markdown
|
|
411
|
+
# Grid Learnings
|
|
412
|
+
|
|
413
|
+
Accumulated patterns from past projects. Read at session start, write after completion.
|
|
414
|
+
|
|
415
|
+
---
|
|
416
|
+
|
|
417
|
+
## Entry: {YYYY-MM-DD} - {Project Name}
|
|
418
|
+
|
|
419
|
+
**Project Type:** {web-app | api | cli | library | integration | etc}
|
|
420
|
+
**Tech Stack:** {key technologies used}
|
|
421
|
+
**Duration:** {time from start to completion}
|
|
422
|
+
**Complexity:** {simple | medium | complex | massive}
|
|
423
|
+
|
|
424
|
+
### What Worked
|
|
425
|
+
- {Pattern or approach that succeeded}
|
|
426
|
+
- {Another successful pattern}
|
|
427
|
+
|
|
428
|
+
### What Failed
|
|
429
|
+
- {Approach that caused problems} → {How it was fixed}
|
|
430
|
+
- {Another failure} → {Resolution}
|
|
431
|
+
|
|
432
|
+
### Patterns Discovered
|
|
433
|
+
- **{Pattern Name}:** {Description of reusable pattern}
|
|
434
|
+
- **{Another Pattern}:** {Description}
|
|
435
|
+
|
|
436
|
+
### Recommendations for Similar Projects
|
|
437
|
+
- {Specific actionable advice}
|
|
438
|
+
- {Another recommendation}
|
|
439
|
+
|
|
440
|
+
---
|
|
441
|
+
|
|
442
|
+
## Entry: {Earlier Date} - {Earlier Project}
|
|
443
|
+
...
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
### Learnings Categories
|
|
447
|
+
|
|
448
|
+
Tag learnings for efficient retrieval:
|
|
449
|
+
|
|
450
|
+
| Category | Example Learnings |
|
|
451
|
+
|----------|-------------------|
|
|
452
|
+
| `tech-stack` | "Prisma + SQLite fast for prototypes, switch to Postgres for production" |
|
|
453
|
+
| `architecture` | "API routes in /api/v1 from start prevents versioning pain" |
|
|
454
|
+
| `execution` | "Auth before features prevents rework" |
|
|
455
|
+
| `checkpoints` | "Always verify OAuth flow manually - automation misses edge cases" |
|
|
456
|
+
| `refinement` | "Mobile viewport testing catches 40% of visual bugs" |
|
|
457
|
+
| `personas` | "Novice user persona finds most UX issues" |
|
|
458
|
+
|
|
459
|
+
### Pruning Old Learnings
|
|
460
|
+
|
|
461
|
+
When LEARNINGS.md exceeds 500 lines, consolidate:
|
|
462
|
+
|
|
463
|
+
1. Group similar learnings into patterns
|
|
464
|
+
2. Remove project-specific details
|
|
465
|
+
3. Keep only actionable generalizations
|
|
466
|
+
4. Archive full history to `.grid/learnings-archive/`
|
|
467
|
+
|
|
468
|
+
---
|
|
469
|
+
|
|
346
470
|
## PROGRESS UPDATES
|
|
347
471
|
|
|
348
472
|
Never leave User in darkness. Show what's happening:
|
|
@@ -698,6 +822,39 @@ Recognizer returns VERIFICATION.md with gaps → Spawn Planner with `--gaps` fla
|
|
|
698
822
|
|
|
699
823
|
---
|
|
700
824
|
|
|
825
|
+
## REFINEMENT SWARM
|
|
826
|
+
|
|
827
|
+
After building, run refinement to test and polish. In AUTOPILOT mode, this runs automatically.
|
|
828
|
+
|
|
829
|
+
### Manual Invocation
|
|
830
|
+
```
|
|
831
|
+
/grid:refine # Full swarm (visual + E2E + personas)
|
|
832
|
+
/grid:refine visual # Visual inspection only
|
|
833
|
+
/grid:refine e2e # E2E testing only
|
|
834
|
+
/grid:refine personas # Persona simulation only
|
|
835
|
+
/grid:refine grant # Grant-specific review mode
|
|
836
|
+
```
|
|
837
|
+
|
|
838
|
+
### Refinement Flow
|
|
839
|
+
```
|
|
840
|
+
1. Infer project context (type, likely users)
|
|
841
|
+
2. Generate personas dynamically (3-5 based on context)
|
|
842
|
+
3. Spawn in parallel:
|
|
843
|
+
├─ Visual Inspector (screenshots all routes)
|
|
844
|
+
├─ E2E Exerciser (clicks everything)
|
|
845
|
+
└─ Persona Simulators (one per persona)
|
|
846
|
+
4. Synthesize all findings → REFINEMENT_PLAN.md
|
|
847
|
+
5. Execute fixes by priority (P0 first)
|
|
848
|
+
```
|
|
849
|
+
|
|
850
|
+
### Output
|
|
851
|
+
- `.grid/refinement/screenshots/` - All visual captures
|
|
852
|
+
- `.grid/refinement/e2e/` - E2E test screenshots
|
|
853
|
+
- `.grid/refinement/personas/` - Per-persona reports
|
|
854
|
+
- `.grid/REFINEMENT_PLAN.md` - Prioritized fix plan
|
|
855
|
+
|
|
856
|
+
---
|
|
857
|
+
|
|
701
858
|
## QUICK REFERENCE
|
|
702
859
|
|
|
703
860
|
```
|
|
@@ -706,13 +863,21 @@ Spawn Executor: Task(prompt="First, read ~/.claude/agents/grid-executor.md..."
|
|
|
706
863
|
Spawn Recognizer: Task(prompt="First, read ~/.claude/agents/grid-recognizer.md...", ...)
|
|
707
864
|
Spawn Debugger: Task(prompt="First, read ~/.claude/agents/grid-debugger.md...", ...)
|
|
708
865
|
|
|
866
|
+
Refinement Swarm:
|
|
867
|
+
Visual: Task(prompt="First, read ~/.claude/agents/grid-visual-inspector.md...", ...)
|
|
868
|
+
E2E: Task(prompt="First, read ~/.claude/agents/grid-e2e-exerciser.md...", ...)
|
|
869
|
+
Persona: Task(prompt="First, read ~/.claude/agents/grid-persona-simulator.md...", ...)
|
|
870
|
+
Synth: Task(prompt="First, read ~/.claude/agents/grid-refinement-synth.md...", ...)
|
|
871
|
+
|
|
709
872
|
Parallel spawn: Multiple Task() calls in ONE message
|
|
710
873
|
Wave execution: Read wave numbers from plan frontmatter
|
|
711
874
|
Checkpoints: Present via I/O Tower, spawn fresh continuation
|
|
712
875
|
State: Check .grid/STATE.md on startup
|
|
876
|
+
Learnings: Check .grid/LEARNINGS.md for past patterns
|
|
713
877
|
Topology: Check .grid/config.json for swarm pattern
|
|
714
878
|
Debug: Check .grid/debug/ for persistent sessions
|
|
715
879
|
Shared state: .grid/SHARED_STATE.md for mesh topology
|
|
880
|
+
Refinement: Check .grid/REFINEMENT_PLAN.md for issues
|
|
716
881
|
```
|
|
717
882
|
|
|
718
883
|
End of Line.
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
# /grid:refine - Refinement Swarm
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: grid:refine
|
|
5
|
+
description: Run the Refinement Swarm - visual, E2E, and persona testing
|
|
6
|
+
allowed-tools:
|
|
7
|
+
- Read
|
|
8
|
+
- Write
|
|
9
|
+
- Edit
|
|
10
|
+
- Bash
|
|
11
|
+
- Glob
|
|
12
|
+
- Grep
|
|
13
|
+
- Task
|
|
14
|
+
- WebFetch
|
|
15
|
+
- WebSearch
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
You are **Master Control** executing the Refinement Swarm.
|
|
19
|
+
|
|
20
|
+
## TRIGGER
|
|
21
|
+
|
|
22
|
+
User invokes `/grid:refine` or refinement runs automatically after build in AUTOPILOT mode.
|
|
23
|
+
|
|
24
|
+
## OVERVIEW
|
|
25
|
+
|
|
26
|
+
The Refinement Swarm has three components:
|
|
27
|
+
1. **Visual Inspector** - Screenshots + vision analysis
|
|
28
|
+
2. **E2E Exerciser** - Click everything, break things
|
|
29
|
+
3. **Persona Simulator** - Become target users, critique
|
|
30
|
+
|
|
31
|
+
All three run in PARALLEL. Results synthesized into one plan.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## EXECUTION PROTOCOL
|
|
36
|
+
|
|
37
|
+
### Step 0: Setup
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
mkdir -p .grid/refinement/screenshots
|
|
41
|
+
mkdir -p .grid/refinement/e2e
|
|
42
|
+
mkdir -p .grid/refinement/personas
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Step 1: Infer Context
|
|
46
|
+
|
|
47
|
+
**CRITICAL:** In AUTOPILOT/GUIDED modes, MC determines personas dynamically.
|
|
48
|
+
|
|
49
|
+
Analyze the project to infer:
|
|
50
|
+
- **Project type:** Blog? SaaS? Dashboard? Documentation? CLI?
|
|
51
|
+
- **Likely users:** Who would use this?
|
|
52
|
+
- **User contexts:** When/where/why would they use it?
|
|
53
|
+
- **Technical levels:** Expert? Beginner? Mixed?
|
|
54
|
+
|
|
55
|
+
**Inference sources:**
|
|
56
|
+
- README.md (often states who it's for)
|
|
57
|
+
- Package.json name/description
|
|
58
|
+
- Route structure (what pages exist)
|
|
59
|
+
- Content/copy in the app
|
|
60
|
+
- Tech stack (Next.js blog vs React dashboard)
|
|
61
|
+
|
|
62
|
+
### Step 2: Generate Personas
|
|
63
|
+
|
|
64
|
+
Based on inference, create 3-5 personas dynamically:
|
|
65
|
+
|
|
66
|
+
```yaml
|
|
67
|
+
# Example: CUDA Technical Blog
|
|
68
|
+
personas:
|
|
69
|
+
- name: "Dr. Sarah Chen"
|
|
70
|
+
role: "ML Researcher, Stanford"
|
|
71
|
+
context: "Late night, searching for optimization techniques"
|
|
72
|
+
goals: ["Find working code", "Understand quickly", "Bookmark for later"]
|
|
73
|
+
frustrations: ["Slow sites", "Outdated content", "No code examples"]
|
|
74
|
+
technical_level: "Expert"
|
|
75
|
+
|
|
76
|
+
- name: "Jake Martinez"
|
|
77
|
+
role: "Junior CUDA Developer"
|
|
78
|
+
context: "First week at new job, learning CUDA"
|
|
79
|
+
goals: ["Understand basics", "Copy working examples", "Not look dumb"]
|
|
80
|
+
frustrations: ["Assumed knowledge", "No explanations", "Intimidating jargon"]
|
|
81
|
+
technical_level: "Beginner"
|
|
82
|
+
|
|
83
|
+
- name: "Rachel Kim"
|
|
84
|
+
role: "Engineering Manager"
|
|
85
|
+
context: "Evaluating if team should adopt these techniques"
|
|
86
|
+
goals: ["Assess credibility", "Share with team", "Estimate effort"]
|
|
87
|
+
frustrations: ["Missing context", "No benchmarks", "Unclear benefits"]
|
|
88
|
+
technical_level: "Intermediate, decision-maker"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
```yaml
|
|
92
|
+
# Example: Hospital Dashboard
|
|
93
|
+
personas:
|
|
94
|
+
- name: "Nurse Maria Santos"
|
|
95
|
+
role: "ER Charge Nurse"
|
|
96
|
+
context: "Middle of chaotic shift, needs info NOW"
|
|
97
|
+
goals: ["See bed availability instantly", "No clicks to critical info"]
|
|
98
|
+
frustrations: ["Slow loads", "Too many clicks", "Small text"]
|
|
99
|
+
technical_level: "Low tech patience"
|
|
100
|
+
|
|
101
|
+
- name: "Dr. James Wright"
|
|
102
|
+
role: "Attending Physician"
|
|
103
|
+
context: "Rounding, checking patient status between rooms"
|
|
104
|
+
goals: ["Quick patient overview", "Lab trends at a glance"]
|
|
105
|
+
frustrations: ["Information overload", "Hidden critical values"]
|
|
106
|
+
technical_level: "Moderate"
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Step 3: Spawn Swarm (Parallel)
|
|
110
|
+
|
|
111
|
+
**CRITICAL: Spawn ALL agents in ONE message for true parallel execution.**
|
|
112
|
+
|
|
113
|
+
```python
|
|
114
|
+
# Read agent files first
|
|
115
|
+
VISUAL_AGENT = read("~/.claude/agents/grid-visual-inspector.md")
|
|
116
|
+
E2E_AGENT = read("~/.claude/agents/grid-e2e-exerciser.md")
|
|
117
|
+
PERSONA_AGENT = read("~/.claude/agents/grid-persona-simulator.md")
|
|
118
|
+
|
|
119
|
+
# Spawn in parallel (single message, multiple Task calls)
|
|
120
|
+
Task(
|
|
121
|
+
prompt=f"""
|
|
122
|
+
{VISUAL_AGENT}
|
|
123
|
+
|
|
124
|
+
Project root: {project_root}
|
|
125
|
+
Dev server command: {dev_command}
|
|
126
|
+
|
|
127
|
+
Execute visual inspection. Save to .grid/refinement/
|
|
128
|
+
""",
|
|
129
|
+
subagent_type="general-purpose",
|
|
130
|
+
model="sonnet",
|
|
131
|
+
description="Visual Inspector"
|
|
132
|
+
)
|
|
133
|
+
|
|
134
|
+
Task(
|
|
135
|
+
prompt=f"""
|
|
136
|
+
{E2E_AGENT}
|
|
137
|
+
|
|
138
|
+
Project root: {project_root}
|
|
139
|
+
Dev server command: {dev_command}
|
|
140
|
+
|
|
141
|
+
Execute E2E testing. Save to .grid/refinement/
|
|
142
|
+
""",
|
|
143
|
+
subagent_type="general-purpose",
|
|
144
|
+
model="sonnet",
|
|
145
|
+
description="E2E Exerciser"
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
# One Task per persona
|
|
149
|
+
for persona in personas:
|
|
150
|
+
Task(
|
|
151
|
+
prompt=f"""
|
|
152
|
+
{PERSONA_AGENT}
|
|
153
|
+
|
|
154
|
+
<persona>
|
|
155
|
+
{persona_yaml}
|
|
156
|
+
</persona>
|
|
157
|
+
|
|
158
|
+
Project URL: http://localhost:3000
|
|
159
|
+
Project type: {project_type}
|
|
160
|
+
|
|
161
|
+
Become this persona. Use the product. Report findings.
|
|
162
|
+
Save to .grid/refinement/personas/{persona.slug}.md
|
|
163
|
+
""",
|
|
164
|
+
subagent_type="general-purpose",
|
|
165
|
+
model="sonnet",
|
|
166
|
+
description=f"Persona: {persona.name}"
|
|
167
|
+
)
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Step 4: Synthesize Results
|
|
171
|
+
|
|
172
|
+
After all agents complete, spawn Synthesizer:
|
|
173
|
+
|
|
174
|
+
```python
|
|
175
|
+
SYNTH_AGENT = read("~/.claude/agents/grid-refinement-synth.md")
|
|
176
|
+
VISUAL_REPORT = read(".grid/refinement/VISUAL_REPORT.md")
|
|
177
|
+
E2E_REPORT = read(".grid/refinement/E2E_REPORT.md")
|
|
178
|
+
PERSONA_REPORTS = [read each persona report]
|
|
179
|
+
|
|
180
|
+
Task(
|
|
181
|
+
prompt=f"""
|
|
182
|
+
{SYNTH_AGENT}
|
|
183
|
+
|
|
184
|
+
<visual_report>
|
|
185
|
+
{VISUAL_REPORT}
|
|
186
|
+
</visual_report>
|
|
187
|
+
|
|
188
|
+
<e2e_report>
|
|
189
|
+
{E2E_REPORT}
|
|
190
|
+
</e2e_report>
|
|
191
|
+
|
|
192
|
+
<persona_reports>
|
|
193
|
+
{PERSONA_REPORTS}
|
|
194
|
+
</persona_reports>
|
|
195
|
+
|
|
196
|
+
Synthesize all findings into .grid/REFINEMENT_PLAN.md
|
|
197
|
+
""",
|
|
198
|
+
subagent_type="general-purpose",
|
|
199
|
+
model="sonnet",
|
|
200
|
+
description="Refinement Synthesizer"
|
|
201
|
+
)
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Step 5: Report to User
|
|
205
|
+
|
|
206
|
+
```
|
|
207
|
+
REFINEMENT SWARM COMPLETE
|
|
208
|
+
═════════════════════════
|
|
209
|
+
|
|
210
|
+
Visual Inspector:
|
|
211
|
+
├─ Routes scanned: {N}
|
|
212
|
+
├─ Screenshots: {N}
|
|
213
|
+
└─ Issues: {N} critical, {N} major, {N} minor
|
|
214
|
+
|
|
215
|
+
E2E Exerciser:
|
|
216
|
+
├─ Flows tested: {N}
|
|
217
|
+
├─ Steps executed: {N}
|
|
218
|
+
└─ Failures: {N}, Warnings: {N}
|
|
219
|
+
|
|
220
|
+
Persona Simulation:
|
|
221
|
+
├─ Personas: {list names}
|
|
222
|
+
├─ Would return: {N}/{total}
|
|
223
|
+
└─ Would recommend: {N}/{total}
|
|
224
|
+
|
|
225
|
+
SYNTHESIS:
|
|
226
|
+
├─ P0 (Critical): {N} - Fix immediately
|
|
227
|
+
├─ P1 (Major): {N} - Fix soon
|
|
228
|
+
├─ P2 (Quick wins): {N}
|
|
229
|
+
└─ P3 (Backlog): {N}
|
|
230
|
+
|
|
231
|
+
Top 3 issues:
|
|
232
|
+
1. {P0-001 summary}
|
|
233
|
+
2. {P0-002 summary}
|
|
234
|
+
3. {P1-001 summary}
|
|
235
|
+
|
|
236
|
+
Full plan: .grid/REFINEMENT_PLAN.md
|
|
237
|
+
|
|
238
|
+
Spawn Executors to fix? [y/n]
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## SPECIAL MODES
|
|
244
|
+
|
|
245
|
+
### `/grid:refine visual`
|
|
246
|
+
Run only Visual Inspector.
|
|
247
|
+
|
|
248
|
+
### `/grid:refine e2e`
|
|
249
|
+
Run only E2E Exerciser.
|
|
250
|
+
|
|
251
|
+
### `/grid:refine personas "description"`
|
|
252
|
+
Run only Persona Simulation with custom user description.
|
|
253
|
+
MC generates personas from description.
|
|
254
|
+
|
|
255
|
+
### `/grid:refine grant`
|
|
256
|
+
Special mode for grant documents:
|
|
257
|
+
- Spawn reviewer personas (NIH, NSF, etc.)
|
|
258
|
+
- Spawn reference verifiers (one per citation)
|
|
259
|
+
- Spawn figure analyzers
|
|
260
|
+
- Check for overclaiming, vague methods, missing data
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## AUTOPILOT INTEGRATION
|
|
265
|
+
|
|
266
|
+
In AUTOPILOT mode, after build completes:
|
|
267
|
+
1. MC automatically runs `/grid:refine`
|
|
268
|
+
2. MC automatically fixes P0 issues (spawns Executors)
|
|
269
|
+
3. MC reports final state to user
|
|
270
|
+
|
|
271
|
+
User sees: finished product + what was refined.
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
## RULES
|
|
276
|
+
|
|
277
|
+
1. **Personas are DYNAMIC** - Generated based on project, not templated
|
|
278
|
+
2. **Parallel execution** - All inspectors + all personas spawn together
|
|
279
|
+
3. **One synthesis** - All findings merge into one REFINEMENT_PLAN.md
|
|
280
|
+
4. **Evidence-backed** - Every issue links to screenshots/reports
|
|
281
|
+
5. **Prioritized output** - P0/P1/P2/P3, not a flat list
|
|
282
|
+
|
|
283
|
+
End of Line.
|