the-grid-cc 1.7.1 → 1.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/01-SUMMARY.md +95 -0
- package/README.md +31 -13
- package/assets/terminal.svg +120 -0
- package/commands/grid/VERSION +1 -1
- package/commands/grid/help.md +7 -0
- package/commands/grid/mc.md +31 -3
- package/commands/grid/model.md +188 -0
- package/commands/grid/refine.md +4 -4
- package/package.json +1 -1
- package/tools/grid-viz/PLAN.md +235 -0
- package/tools/grid-viz/README.md +84 -0
- package/tools/grid-viz/VERIFICATION.md +197 -0
- package/tools/grid-viz/grid-viz.js +248 -0
- package/tools/grid-viz/node_modules/.package-lock.json +78 -0
- package/tools/grid-viz/node_modules/ansi-styles/index.d.ts +345 -0
- package/tools/grid-viz/node_modules/ansi-styles/index.js +163 -0
- package/tools/grid-viz/node_modules/ansi-styles/license +9 -0
- package/tools/grid-viz/node_modules/ansi-styles/package.json +56 -0
- package/tools/grid-viz/node_modules/ansi-styles/readme.md +152 -0
- package/tools/grid-viz/node_modules/chalk/index.d.ts +415 -0
- package/tools/grid-viz/node_modules/chalk/license +9 -0
- package/tools/grid-viz/node_modules/chalk/package.json +68 -0
- package/tools/grid-viz/node_modules/chalk/readme.md +341 -0
- package/tools/grid-viz/node_modules/chalk/source/index.js +229 -0
- package/tools/grid-viz/node_modules/chalk/source/templates.js +134 -0
- package/tools/grid-viz/node_modules/chalk/source/util.js +39 -0
- package/tools/grid-viz/node_modules/color-convert/CHANGELOG.md +54 -0
- package/tools/grid-viz/node_modules/color-convert/LICENSE +21 -0
- package/tools/grid-viz/node_modules/color-convert/README.md +68 -0
- package/tools/grid-viz/node_modules/color-convert/conversions.js +839 -0
- package/tools/grid-viz/node_modules/color-convert/index.js +81 -0
- package/tools/grid-viz/node_modules/color-convert/package.json +48 -0
- package/tools/grid-viz/node_modules/color-convert/route.js +97 -0
- package/tools/grid-viz/node_modules/color-name/LICENSE +8 -0
- package/tools/grid-viz/node_modules/color-name/README.md +11 -0
- package/tools/grid-viz/node_modules/color-name/index.js +152 -0
- package/tools/grid-viz/node_modules/color-name/package.json +28 -0
- package/tools/grid-viz/node_modules/has-flag/index.d.ts +39 -0
- package/tools/grid-viz/node_modules/has-flag/index.js +8 -0
- package/tools/grid-viz/node_modules/has-flag/license +9 -0
- package/tools/grid-viz/node_modules/has-flag/package.json +46 -0
- package/tools/grid-viz/node_modules/has-flag/readme.md +89 -0
- package/tools/grid-viz/node_modules/supports-color/browser.js +5 -0
- package/tools/grid-viz/node_modules/supports-color/index.js +135 -0
- package/tools/grid-viz/node_modules/supports-color/license +9 -0
- package/tools/grid-viz/node_modules/supports-color/package.json +53 -0
- package/tools/grid-viz/node_modules/supports-color/readme.md +76 -0
- package/tools/grid-viz/package-lock.json +89 -0
- package/tools/grid-viz/package.json +23 -0
package/01-SUMMARY.md
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
cluster: grid-viz
|
|
3
|
+
block: 01
|
|
4
|
+
subsystem: tooling
|
|
5
|
+
requires:
|
|
6
|
+
- block: none
|
|
7
|
+
provides: "Initial block"
|
|
8
|
+
provides:
|
|
9
|
+
- "Terminal visualization tool for Grid state"
|
|
10
|
+
- "Colorful CLI output with progress bars and status"
|
|
11
|
+
- "Scratchpad, blockers, and learnings display"
|
|
12
|
+
affects:
|
|
13
|
+
- Future Grid monitoring and debugging workflows
|
|
14
|
+
tech-stack:
|
|
15
|
+
added: [chalk@4.1.2, Node.js CLI]
|
|
16
|
+
patterns: [markdown parsing, terminal visualization, ANSI colors]
|
|
17
|
+
key-files:
|
|
18
|
+
created:
|
|
19
|
+
- tools/grid-viz/grid-viz.js
|
|
20
|
+
- tools/grid-viz/package.json
|
|
21
|
+
- tools/grid-viz/README.md
|
|
22
|
+
- tools/grid-viz/package-lock.json
|
|
23
|
+
modified: []
|
|
24
|
+
commits: [210b17a, 13407a9, 8e3313b]
|
|
25
|
+
|
|
26
|
+
# WARMTH - knowledge that survives to next Program
|
|
27
|
+
lessons_learned:
|
|
28
|
+
codebase_patterns:
|
|
29
|
+
- "Grid state lives in .grid/ directory at project root"
|
|
30
|
+
- "STATE.md uses markdown with ## headings and **Label:** format"
|
|
31
|
+
- "Scratchpad entries use ### for entry headers"
|
|
32
|
+
- "LEARNINGS.md, BLOCKERS.md, DECISIONS.md use bullet lists"
|
|
33
|
+
gotchas:
|
|
34
|
+
- "chalk ^4.1.2 is CommonJS compatible; v5+ is ESM only"
|
|
35
|
+
- "Node.js scripts need #!/usr/bin/env node shebang"
|
|
36
|
+
- "chmod +x required for executable scripts"
|
|
37
|
+
user_preferences:
|
|
38
|
+
- "User prefers ANSI art and terminal aesthetics (Grid theme)"
|
|
39
|
+
- "Clean output with visual hierarchy (colors, spacing)"
|
|
40
|
+
- "'End of Line.' footer matches Grid lore"
|
|
41
|
+
almost_did:
|
|
42
|
+
- "Considered using chalk v5, chose v4 for CommonJS compatibility"
|
|
43
|
+
- "Almost used JSON for state, but Grid uses markdown"
|
|
44
|
+
fragile_areas:
|
|
45
|
+
- "Markdown parsing is basic - assumes specific formatting"
|
|
46
|
+
- "Progress percentage extraction uses regex - brittle if format changes"
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
# Block 01: grid-viz Terminal Visualization Summary
|
|
50
|
+
|
|
51
|
+
**One-liner:** Terminal visualization tool displaying Grid state with colorful CLI output, progress bars, and scratchpad entries using chalk@4.1.2
|
|
52
|
+
|
|
53
|
+
## Tasks Completed
|
|
54
|
+
|
|
55
|
+
| Thread | Name | Commit | Files |
|
|
56
|
+
|--------|------|--------|-------|
|
|
57
|
+
| 1 | Create grid-viz.js | 210b17a | grid-viz.js (248 lines) |
|
|
58
|
+
| 2 | Create package.json and README | 13407a9 | package.json, README.md |
|
|
59
|
+
| 3 | Test and install dependencies | 8e3313b | node_modules/, package-lock.json |
|
|
60
|
+
|
|
61
|
+
## Deviations from Plan
|
|
62
|
+
|
|
63
|
+
None - plan executed exactly as written.
|
|
64
|
+
|
|
65
|
+
## Decisions Made
|
|
66
|
+
|
|
67
|
+
**1. Use chalk v4.1.2 instead of v5+**
|
|
68
|
+
- Rationale: v4 uses CommonJS (require), v5+ is ESM-only
|
|
69
|
+
- Grid tooling expects traditional Node.js scripts
|
|
70
|
+
- Better compatibility with existing tools
|
|
71
|
+
|
|
72
|
+
**2. Auto-discover .grid directory**
|
|
73
|
+
- Rationale: User can run from anywhere in project tree
|
|
74
|
+
- Searches current directory and parents
|
|
75
|
+
- More convenient than requiring exact path
|
|
76
|
+
|
|
77
|
+
**3. Graceful degradation for missing files**
|
|
78
|
+
- Rationale: Not all .grid files exist in every project
|
|
79
|
+
- Tool should show what's available
|
|
80
|
+
- Better UX than failing on missing files
|
|
81
|
+
|
|
82
|
+
**4. Parse markdown instead of JSON**
|
|
83
|
+
- Rationale: Grid uses markdown for human readability
|
|
84
|
+
- STATE.md, SCRATCHPAD.md are markdown format
|
|
85
|
+
- Simple regex/string parsing sufficient
|
|
86
|
+
|
|
87
|
+
## Next Block Readiness
|
|
88
|
+
|
|
89
|
+
Tool is ready for integration into Grid CLI if desired. Potential enhancements:
|
|
90
|
+
- Add watch mode (--watch flag for live updates)
|
|
91
|
+
- Export JSON format for programmatic use
|
|
92
|
+
- Add filtering options (--blockers-only, --scratchpad-only)
|
|
93
|
+
- Integration with grid status command
|
|
94
|
+
|
|
95
|
+
No blockers for future work.
|
package/README.md
CHANGED
|
@@ -1,33 +1,51 @@
|
|
|
1
|
-
|
|
1
|
+
<h1 align="center">THE GRID</h1>
|
|
2
2
|
|
|
3
3
|
<p align="center">
|
|
4
|
-
<strong>
|
|
5
|
-
<br>
|
|
6
|
-
Multi-agent orchestration for Claude Code that keeps your context clean
|
|
4
|
+
<strong>Multi-agent orchestration for Claude Code that keeps your context clean.</strong>
|
|
7
5
|
</p>
|
|
8
6
|
|
|
9
7
|
<p align="center">
|
|
10
|
-
|
|
11
|
-
<a href="#three-modes">Three Modes</a> •
|
|
12
|
-
<a href="#commands">Commands</a> •
|
|
13
|
-
<a href="#faq">FAQ</a>
|
|
8
|
+
Solves context rot — the quality degradation that happens as Claude fills its context window.
|
|
14
9
|
</p>
|
|
15
10
|
|
|
16
11
|
<p align="center">
|
|
17
12
|
<a href="https://www.npmjs.com/package/the-grid-cc">
|
|
18
13
|
<img src="https://img.shields.io/npm/v/the-grid-cc?style=for-the-badge&logo=npm&logoColor=white&color=CB3837" alt="npm version"/>
|
|
19
14
|
</a>
|
|
20
|
-
<a href="https://github.com/JamesWeatherhead/grid/stargazers">
|
|
21
|
-
<img src="https://img.shields.io/github/stars/JamesWeatherhead/grid?style=for-the-badge" alt="GitHub stars"/>
|
|
22
|
-
</a>
|
|
23
15
|
<a href="https://www.npmjs.com/package/the-grid-cc">
|
|
24
|
-
<img src="https://img.shields.io/npm/dm/the-grid-cc?style=for-the-badge" alt="npm downloads"/>
|
|
16
|
+
<img src="https://img.shields.io/npm/dm/the-grid-cc?style=for-the-badge&color=blue" alt="npm downloads"/>
|
|
17
|
+
</a>
|
|
18
|
+
<a href="https://github.com/JamesWeatherhead/grid/stargazers">
|
|
19
|
+
<img src="https://img.shields.io/github/stars/JamesWeatherhead/grid?style=for-the-badge&color=yellow" alt="GitHub stars"/>
|
|
25
20
|
</a>
|
|
21
|
+
</p>
|
|
22
|
+
|
|
23
|
+
<p align="center">
|
|
26
24
|
<a href="https://github.com/JamesWeatherhead/grid/blob/main/LICENSE">
|
|
27
|
-
<img src="https://img.shields.io/badge/
|
|
25
|
+
<img src="https://img.shields.io/badge/LICENSE-MIT-cyan.svg?style=for-the-badge" alt="MIT License"/>
|
|
28
26
|
</a>
|
|
29
27
|
</p>
|
|
30
28
|
|
|
29
|
+
<br>
|
|
30
|
+
|
|
31
|
+
<p align="center">
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
npx the-grid-cc
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
</p>
|
|
38
|
+
|
|
39
|
+
<p align="center">
|
|
40
|
+
<strong>Works on Mac, Windows, and Linux.</strong>
|
|
41
|
+
</p>
|
|
42
|
+
|
|
43
|
+
<br>
|
|
44
|
+
|
|
45
|
+
<p align="center">
|
|
46
|
+
<img src="assets/terminal.svg" alt="The Grid Terminal" width="700"/>
|
|
47
|
+
</p>
|
|
48
|
+
|
|
31
49
|
---
|
|
32
50
|
|
|
33
51
|
## The Problem
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 520">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="termBg" x1="0%" y1="0%" x2="0%" y2="100%">
|
|
4
|
+
<stop offset="0%" style="stop-color:#2d2d2d"/>
|
|
5
|
+
<stop offset="100%" style="stop-color:#1a1a1a"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
</defs>
|
|
8
|
+
|
|
9
|
+
<!-- Terminal window -->
|
|
10
|
+
<rect width="800" height="520" rx="10" fill="url(#termBg)"/>
|
|
11
|
+
|
|
12
|
+
<!-- Title bar -->
|
|
13
|
+
<rect width="800" height="32" rx="10" fill="#3d3d3d"/>
|
|
14
|
+
<rect y="22" width="800" height="10" fill="#3d3d3d"/>
|
|
15
|
+
|
|
16
|
+
<!-- Traffic lights -->
|
|
17
|
+
<circle cx="20" cy="16" r="6" fill="#ff5f57"/>
|
|
18
|
+
<circle cx="40" cy="16" r="6" fill="#febc2e"/>
|
|
19
|
+
<circle cx="60" cy="16" r="6" fill="#28c840"/>
|
|
20
|
+
|
|
21
|
+
<!-- Title -->
|
|
22
|
+
<text x="400" y="20" fill="#888" font-family="SF Mono, Monaco, monospace" font-size="13" text-anchor="middle">Terminal</text>
|
|
23
|
+
|
|
24
|
+
<!-- Prompt line -->
|
|
25
|
+
<text x="20" y="60" font-family="SF Mono, Monaco, Consolas, monospace" font-size="14">
|
|
26
|
+
<tspan fill="#6cf">~</tspan>
|
|
27
|
+
<tspan fill="#888"> $ </tspan>
|
|
28
|
+
<tspan fill="#fff">npx the-grid-cc</tspan>
|
|
29
|
+
</text>
|
|
30
|
+
|
|
31
|
+
<!-- TRON-style GRID logo using rectangles -->
|
|
32
|
+
<g fill="#0ff" transform="translate(60, 85)">
|
|
33
|
+
<!-- T -->
|
|
34
|
+
<rect x="0" y="0" width="40" height="8"/>
|
|
35
|
+
<rect x="16" y="8" width="8" height="32"/>
|
|
36
|
+
|
|
37
|
+
<!-- H -->
|
|
38
|
+
<rect x="50" y="0" width="8" height="40"/>
|
|
39
|
+
<rect x="50" y="16" width="24" height="8"/>
|
|
40
|
+
<rect x="66" y="0" width="8" height="40"/>
|
|
41
|
+
|
|
42
|
+
<!-- E -->
|
|
43
|
+
<rect x="84" y="0" width="24" height="8"/>
|
|
44
|
+
<rect x="84" y="0" width="8" height="40"/>
|
|
45
|
+
<rect x="84" y="16" width="20" height="8"/>
|
|
46
|
+
<rect x="84" y="32" width="24" height="8"/>
|
|
47
|
+
|
|
48
|
+
<!-- Space -->
|
|
49
|
+
|
|
50
|
+
<!-- G -->
|
|
51
|
+
<rect x="130" y="0" width="28" height="8"/>
|
|
52
|
+
<rect x="130" y="0" width="8" height="40"/>
|
|
53
|
+
<rect x="130" y="32" width="28" height="8"/>
|
|
54
|
+
<rect x="150" y="20" width="8" height="20"/>
|
|
55
|
+
<rect x="142" y="20" width="16" height="8"/>
|
|
56
|
+
|
|
57
|
+
<!-- R - FIXED: proper R shape with diagonal leg -->
|
|
58
|
+
<rect x="168" y="0" width="8" height="40"/>
|
|
59
|
+
<rect x="168" y="0" width="28" height="8"/>
|
|
60
|
+
<rect x="188" y="0" width="8" height="20"/>
|
|
61
|
+
<rect x="168" y="16" width="28" height="8"/>
|
|
62
|
+
<!-- diagonal leg of R - approximated with angled rectangles -->
|
|
63
|
+
<rect x="180" y="24" width="8" height="8"/>
|
|
64
|
+
<rect x="188" y="32" width="8" height="8"/>
|
|
65
|
+
|
|
66
|
+
<!-- I -->
|
|
67
|
+
<rect x="210" y="0" width="24" height="8"/>
|
|
68
|
+
<rect x="218" y="8" width="8" height="24"/>
|
|
69
|
+
<rect x="210" y="32" width="24" height="8"/>
|
|
70
|
+
|
|
71
|
+
<!-- D -->
|
|
72
|
+
<rect x="244" y="0" width="8" height="40"/>
|
|
73
|
+
<rect x="244" y="0" width="20" height="8"/>
|
|
74
|
+
<rect x="264" y="4" width="8" height="32"/>
|
|
75
|
+
<rect x="244" y="32" width="20" height="8"/>
|
|
76
|
+
</g>
|
|
77
|
+
|
|
78
|
+
<!-- Version and description -->
|
|
79
|
+
<text font-family="SF Mono, Monaco, Consolas, monospace" font-size="14">
|
|
80
|
+
<tspan x="60" y="165" fill="#fff">The Grid</tspan>
|
|
81
|
+
<tspan fill="#888"> v1.7.2</tspan>
|
|
82
|
+
<tspan x="60" y="185" fill="#888">Multi-agent orchestration for Claude Code</tspan>
|
|
83
|
+
</text>
|
|
84
|
+
|
|
85
|
+
<!-- Installation checkmarks -->
|
|
86
|
+
<text font-family="SF Mono, Monaco, Consolas, monospace" font-size="14">
|
|
87
|
+
<tspan x="60" y="225" fill="#28c840">✓</tspan>
|
|
88
|
+
<tspan fill="#ccc"> Installed commands/grid</tspan>
|
|
89
|
+
<tspan x="60" y="245" fill="#28c840">✓</tspan>
|
|
90
|
+
<tspan fill="#ccc"> Installed agents</tspan>
|
|
91
|
+
</text>
|
|
92
|
+
|
|
93
|
+
<!-- Done message -->
|
|
94
|
+
<text x="60" y="285" font-family="SF Mono, Monaco, Consolas, monospace" font-size="14">
|
|
95
|
+
<tspan fill="#28c840">Done!</tspan>
|
|
96
|
+
<tspan fill="#ccc"> Run </tspan>
|
|
97
|
+
<tspan fill="#fff">/grid</tspan>
|
|
98
|
+
<tspan fill="#ccc"> to get started.</tspan>
|
|
99
|
+
</text>
|
|
100
|
+
|
|
101
|
+
<!-- Second prompt - /grid session -->
|
|
102
|
+
<text x="20" y="330" font-family="SF Mono, Monaco, Consolas, monospace" font-size="14">
|
|
103
|
+
<tspan fill="#6cf">~</tspan>
|
|
104
|
+
<tspan fill="#888"> $ </tspan>
|
|
105
|
+
<tspan fill="#fff">/grid</tspan>
|
|
106
|
+
</text>
|
|
107
|
+
|
|
108
|
+
<!-- Master Control output -->
|
|
109
|
+
<text font-family="SF Mono, Monaco, Consolas, monospace" font-size="14">
|
|
110
|
+
<tspan x="60" y="375" fill="#0ff" font-weight="bold">THE GRID</tspan>
|
|
111
|
+
<tspan x="60" y="393" fill="#0ff">════════</tspan>
|
|
112
|
+
<tspan x="60" y="430" fill="#fff">Master Control online.</tspan>
|
|
113
|
+
<tspan x="60" y="465" fill="#ccc">What would you like to build?</tspan>
|
|
114
|
+
</text>
|
|
115
|
+
|
|
116
|
+
<!-- Blinking cursor -->
|
|
117
|
+
<rect x="60" y="480" width="8" height="14" fill="#fff" opacity="0.8">
|
|
118
|
+
<animate attributeName="opacity" values="0.8;0;0.8" dur="1s" repeatCount="indefinite"/>
|
|
119
|
+
</rect>
|
|
120
|
+
</svg>
|
package/commands/grid/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.7.
|
|
1
|
+
1.7.3
|
package/commands/grid/help.md
CHANGED
|
@@ -19,6 +19,7 @@ COMMANDS
|
|
|
19
19
|
/grid:refine Run Refinement Swarm (visual, E2E, personas)
|
|
20
20
|
/grid:debug Start systematic bug investigation
|
|
21
21
|
/grid:status Show current Grid state
|
|
22
|
+
/grid:model Configure model selection (opus/sonnet/haiku)
|
|
22
23
|
/grid:help This help
|
|
23
24
|
|
|
24
25
|
MODES
|
|
@@ -26,6 +27,12 @@ MODES
|
|
|
26
27
|
GUIDED MC drives, asks only when essential.
|
|
27
28
|
HANDS ON Collaborative decisions.
|
|
28
29
|
|
|
30
|
+
MODEL TIERS
|
|
31
|
+
/grid:model quality Opus for all agents (default, best results)
|
|
32
|
+
/grid:model balanced Sonnet for most (good balance)
|
|
33
|
+
/grid:model budget Haiku where possible (lowest cost)
|
|
34
|
+
/grid:model custom Configure per-agent
|
|
35
|
+
|
|
29
36
|
REFINEMENT SWARM
|
|
30
37
|
/grid:refine Full swarm (visual + E2E + personas)
|
|
31
38
|
/grid:refine visual Screenshot + vision analysis only
|
package/commands/grid/mc.md
CHANGED
|
@@ -259,20 +259,48 @@ depends_on: []
|
|
|
259
259
|
|
|
260
260
|
### Model Routing
|
|
261
261
|
|
|
262
|
-
|
|
262
|
+
**Default: QUALITY tier (Opus for all agents)**
|
|
263
|
+
|
|
264
|
+
Check `.grid/config.json` for user model preferences. Users can configure via `/grid:model`.
|
|
263
265
|
|
|
264
266
|
| Program | Quality | Balanced | Budget |
|
|
265
267
|
|---------|---------|----------|--------|
|
|
266
268
|
| Planner | opus | sonnet | sonnet |
|
|
267
269
|
| Executor | opus | sonnet | sonnet |
|
|
268
|
-
| Recognizer |
|
|
270
|
+
| Recognizer | opus | sonnet | haiku |
|
|
271
|
+
| Visual Inspector | opus | sonnet | haiku |
|
|
272
|
+
| E2E Exerciser | opus | sonnet | haiku |
|
|
273
|
+
| Persona Simulator | opus | sonnet | sonnet |
|
|
274
|
+
| Refinement Synth | opus | sonnet | sonnet |
|
|
275
|
+
|
|
276
|
+
**Model Selection Logic:**
|
|
277
|
+
```python
|
|
278
|
+
def get_model(program_type):
|
|
279
|
+
"""Get model based on .grid/config.json or default to opus."""
|
|
280
|
+
try:
|
|
281
|
+
config = json.loads(read(".grid/config.json"))
|
|
282
|
+
tier = config.get("model_tier", "quality")
|
|
283
|
+
except:
|
|
284
|
+
tier = "quality" # Default: Opus
|
|
285
|
+
|
|
286
|
+
if tier == "quality":
|
|
287
|
+
return "opus"
|
|
288
|
+
elif tier == "balanced":
|
|
289
|
+
return "sonnet"
|
|
290
|
+
elif tier == "budget":
|
|
291
|
+
# Some programs need reasoning capability
|
|
292
|
+
if program_type in ["planner", "executor", "persona_simulator"]:
|
|
293
|
+
return "sonnet"
|
|
294
|
+
return "haiku"
|
|
295
|
+
return "opus"
|
|
296
|
+
```
|
|
269
297
|
|
|
270
298
|
Pass `model` parameter to Task():
|
|
271
299
|
```python
|
|
272
300
|
Task(
|
|
273
301
|
prompt="...",
|
|
274
302
|
subagent_type="general-purpose",
|
|
275
|
-
model="
|
|
303
|
+
model="opus", # Default: quality tier
|
|
276
304
|
description="..."
|
|
277
305
|
)
|
|
278
306
|
```
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# /grid:model - Configure Model Selection
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: grid:model
|
|
5
|
+
description: Configure which Claude model to use for Grid agents
|
|
6
|
+
allowed-tools:
|
|
7
|
+
- Read
|
|
8
|
+
- Write
|
|
9
|
+
- Edit
|
|
10
|
+
- Bash
|
|
11
|
+
- AskUserQuestion
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
Configure which Claude models The Grid uses for its agents.
|
|
15
|
+
|
|
16
|
+
## USAGE
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
/grid:model # Show current config + options
|
|
20
|
+
/grid:model quality # Use Opus for everything (best results, highest cost)
|
|
21
|
+
/grid:model balanced # Use Sonnet for most tasks (good balance)
|
|
22
|
+
/grid:model budget # Use Haiku where possible (lowest cost)
|
|
23
|
+
/grid:model custom # Configure per-agent models
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## MODEL TIERS
|
|
27
|
+
|
|
28
|
+
### QUALITY (Default)
|
|
29
|
+
All agents use **Opus** - best reasoning, highest quality output.
|
|
30
|
+
|
|
31
|
+
| Agent | Model |
|
|
32
|
+
|-------|-------|
|
|
33
|
+
| Planner | opus |
|
|
34
|
+
| Executor | opus |
|
|
35
|
+
| Recognizer | opus |
|
|
36
|
+
| Visual Inspector | opus |
|
|
37
|
+
| E2E Exerciser | opus |
|
|
38
|
+
| Persona Simulator | opus |
|
|
39
|
+
|
|
40
|
+
**Best for:** Complex projects, production code, when quality matters most.
|
|
41
|
+
**Cost:** ~3-5x more than Balanced.
|
|
42
|
+
|
|
43
|
+
### BALANCED
|
|
44
|
+
Most agents use **Sonnet** - good reasoning, moderate cost.
|
|
45
|
+
|
|
46
|
+
| Agent | Model |
|
|
47
|
+
|-------|-------|
|
|
48
|
+
| Planner | sonnet |
|
|
49
|
+
| Executor | sonnet |
|
|
50
|
+
| Recognizer | sonnet |
|
|
51
|
+
| Visual Inspector | sonnet |
|
|
52
|
+
| E2E Exerciser | sonnet |
|
|
53
|
+
| Persona Simulator | sonnet |
|
|
54
|
+
|
|
55
|
+
**Best for:** Most projects, good quality/cost tradeoff.
|
|
56
|
+
**Cost:** Baseline.
|
|
57
|
+
|
|
58
|
+
### BUDGET
|
|
59
|
+
Use **Haiku** where possible, Sonnet for complex reasoning.
|
|
60
|
+
|
|
61
|
+
| Agent | Model |
|
|
62
|
+
|-------|-------|
|
|
63
|
+
| Planner | sonnet (needs reasoning) |
|
|
64
|
+
| Executor | sonnet (needs reasoning) |
|
|
65
|
+
| Recognizer | haiku |
|
|
66
|
+
| Visual Inspector | haiku |
|
|
67
|
+
| E2E Exerciser | haiku |
|
|
68
|
+
| Persona Simulator | sonnet (needs reasoning) |
|
|
69
|
+
|
|
70
|
+
**Best for:** Prototypes, learning, cost-sensitive projects.
|
|
71
|
+
**Cost:** ~50-70% less than Balanced.
|
|
72
|
+
|
|
73
|
+
### CUSTOM
|
|
74
|
+
Set each agent individually.
|
|
75
|
+
|
|
76
|
+
## EXECUTION
|
|
77
|
+
|
|
78
|
+
When user runs `/grid:model`:
|
|
79
|
+
|
|
80
|
+
### No argument - Show current config
|
|
81
|
+
```
|
|
82
|
+
MODEL CONFIGURATION
|
|
83
|
+
═══════════════════
|
|
84
|
+
|
|
85
|
+
Current tier: {tier}
|
|
86
|
+
|
|
87
|
+
| Agent | Model |
|
|
88
|
+
|-------------------|---------|
|
|
89
|
+
| Planner | {model} |
|
|
90
|
+
| Executor | {model} |
|
|
91
|
+
| Recognizer | {model} |
|
|
92
|
+
| Visual Inspector | {model} |
|
|
93
|
+
| E2E Exerciser | {model} |
|
|
94
|
+
| Persona Simulator | {model} |
|
|
95
|
+
|
|
96
|
+
Commands:
|
|
97
|
+
/grid:model quality - Opus for everything
|
|
98
|
+
/grid:model balanced - Sonnet for most
|
|
99
|
+
/grid:model budget - Haiku where possible
|
|
100
|
+
/grid:model custom - Configure individually
|
|
101
|
+
|
|
102
|
+
End of Line.
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### With tier argument - Set tier
|
|
106
|
+
```python
|
|
107
|
+
# Read or create config
|
|
108
|
+
config_path = ".grid/config.json"
|
|
109
|
+
try:
|
|
110
|
+
config = json.loads(read(config_path))
|
|
111
|
+
except:
|
|
112
|
+
config = {}
|
|
113
|
+
|
|
114
|
+
# Set tier
|
|
115
|
+
config["model_tier"] = tier # "quality" | "balanced" | "budget"
|
|
116
|
+
|
|
117
|
+
# Write config
|
|
118
|
+
write(config_path, json.dumps(config, indent=2))
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Display:
|
|
122
|
+
```
|
|
123
|
+
MODEL TIER SET: {TIER}
|
|
124
|
+
═════════════════════
|
|
125
|
+
|
|
126
|
+
All Grid agents will now use {tier} models.
|
|
127
|
+
|
|
128
|
+
| Agent | Model |
|
|
129
|
+
|-------------------|---------|
|
|
130
|
+
| Planner | {model} |
|
|
131
|
+
| ... | ... |
|
|
132
|
+
|
|
133
|
+
To change: /grid:model {other_tier}
|
|
134
|
+
|
|
135
|
+
End of Line.
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Custom mode - Interactive selection
|
|
139
|
+
Use AskUserQuestion to let user pick model for each agent type:
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
CUSTOM MODEL CONFIGURATION
|
|
143
|
+
══════════════════════════
|
|
144
|
+
|
|
145
|
+
Select model for each agent type:
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Then save to `.grid/config.json`:
|
|
149
|
+
```json
|
|
150
|
+
{
|
|
151
|
+
"model_tier": "custom",
|
|
152
|
+
"models": {
|
|
153
|
+
"planner": "opus",
|
|
154
|
+
"executor": "sonnet",
|
|
155
|
+
"recognizer": "haiku",
|
|
156
|
+
"visual_inspector": "haiku",
|
|
157
|
+
"e2e_exerciser": "haiku",
|
|
158
|
+
"persona_simulator": "sonnet"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## CONFIG FILE FORMAT
|
|
164
|
+
|
|
165
|
+
`.grid/config.json`:
|
|
166
|
+
```json
|
|
167
|
+
{
|
|
168
|
+
"model_tier": "quality",
|
|
169
|
+
"models": {
|
|
170
|
+
"planner": "opus",
|
|
171
|
+
"executor": "opus",
|
|
172
|
+
"recognizer": "opus",
|
|
173
|
+
"visual_inspector": "opus",
|
|
174
|
+
"e2e_exerciser": "opus",
|
|
175
|
+
"persona_simulator": "opus"
|
|
176
|
+
},
|
|
177
|
+
"topology": "hierarchical"
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## RULES
|
|
182
|
+
|
|
183
|
+
1. Default to "quality" (Opus) if no config exists
|
|
184
|
+
2. Never use Haiku for Planner/Executor (needs reasoning capability)
|
|
185
|
+
3. Show cost implications when changing tiers
|
|
186
|
+
4. Config persists in `.grid/config.json`
|
|
187
|
+
|
|
188
|
+
End of Line.
|
package/commands/grid/refine.md
CHANGED
|
@@ -127,7 +127,7 @@ Dev server command: {dev_command}
|
|
|
127
127
|
Execute visual inspection. Save to .grid/refinement/
|
|
128
128
|
""",
|
|
129
129
|
subagent_type="general-purpose",
|
|
130
|
-
model="
|
|
130
|
+
model="opus", # Default: quality tier
|
|
131
131
|
description="Visual Inspector"
|
|
132
132
|
)
|
|
133
133
|
|
|
@@ -141,7 +141,7 @@ Dev server command: {dev_command}
|
|
|
141
141
|
Execute E2E testing. Save to .grid/refinement/
|
|
142
142
|
""",
|
|
143
143
|
subagent_type="general-purpose",
|
|
144
|
-
model="
|
|
144
|
+
model="opus", # Default: quality tier
|
|
145
145
|
description="E2E Exerciser"
|
|
146
146
|
)
|
|
147
147
|
|
|
@@ -162,7 +162,7 @@ Become this persona. Use the product. Report findings.
|
|
|
162
162
|
Save to .grid/refinement/personas/{persona.slug}.md
|
|
163
163
|
""",
|
|
164
164
|
subagent_type="general-purpose",
|
|
165
|
-
model="
|
|
165
|
+
model="opus", # Default: quality tier
|
|
166
166
|
description=f"Persona: {persona.name}"
|
|
167
167
|
)
|
|
168
168
|
```
|
|
@@ -196,7 +196,7 @@ Task(
|
|
|
196
196
|
Synthesize all findings into .grid/REFINEMENT_PLAN.md
|
|
197
197
|
""",
|
|
198
198
|
subagent_type="general-purpose",
|
|
199
|
-
model="
|
|
199
|
+
model="opus", # Default: quality tier
|
|
200
200
|
description="Refinement Synthesizer"
|
|
201
201
|
)
|
|
202
202
|
```
|