@hegemonart/get-design-done 1.0.7
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/.claude-plugin/marketplace.json +63 -0
- package/.claude-plugin/plugin.json +54 -0
- package/CHANGELOG.md +221 -0
- package/LICENSE +21 -0
- package/README.md +724 -0
- package/SKILL.md +232 -0
- package/agents/README.md +226 -0
- package/agents/a11y-mapper.md +118 -0
- package/agents/component-taxonomy-mapper.md +88 -0
- package/agents/design-advisor.md +139 -0
- package/agents/design-assumptions-analyzer.md +171 -0
- package/agents/design-auditor.md +383 -0
- package/agents/design-context-builder.md +544 -0
- package/agents/design-context-checker-gate.md +90 -0
- package/agents/design-context-checker.md +260 -0
- package/agents/design-discussant.md +98 -0
- package/agents/design-doc-writer.md +229 -0
- package/agents/design-executor.md +452 -0
- package/agents/design-figma-writer.md +302 -0
- package/agents/design-fixer.md +180 -0
- package/agents/design-integration-checker-gate.md +93 -0
- package/agents/design-integration-checker.md +326 -0
- package/agents/design-pattern-mapper.md +206 -0
- package/agents/design-phase-researcher.md +229 -0
- package/agents/design-plan-checker.md +164 -0
- package/agents/design-planner.md +352 -0
- package/agents/design-reflector.md +175 -0
- package/agents/design-research-synthesizer.md +127 -0
- package/agents/design-verifier-gate.md +97 -0
- package/agents/design-verifier.md +605 -0
- package/agents/gdd-graphify-sync.md +100 -0
- package/agents/gdd-intel-updater.md +88 -0
- package/agents/gdd-learnings-extractor.md +85 -0
- package/agents/motion-mapper.md +103 -0
- package/agents/token-mapper.md +103 -0
- package/agents/visual-hierarchy-mapper.md +95 -0
- package/connections/chromatic.md +247 -0
- package/connections/claude-design.md +190 -0
- package/connections/connections.md +218 -0
- package/connections/figma-writer.md +139 -0
- package/connections/figma.md +146 -0
- package/connections/graphify.md +197 -0
- package/connections/pinterest.md +153 -0
- package/connections/preview.md +173 -0
- package/connections/refero.md +189 -0
- package/connections/storybook.md +280 -0
- package/hooks/budget-enforcer.js +318 -0
- package/hooks/context-exhaustion.js +127 -0
- package/hooks/gdd-read-injection-scanner.js +44 -0
- package/hooks/hooks.json +44 -0
- package/package.json +60 -0
- package/reference/BRANCH-PROTECTION.md +65 -0
- package/reference/DEPRECATIONS.md +41 -0
- package/reference/STATE-TEMPLATE.md +200 -0
- package/reference/accessibility.md +190 -0
- package/reference/anti-patterns.md +336 -0
- package/reference/audit-scoring.md +205 -0
- package/reference/checklists.md +137 -0
- package/reference/config-schema.md +319 -0
- package/reference/debugger-philosophy.md +32 -0
- package/reference/heuristics.md +201 -0
- package/reference/intel-schema.md +266 -0
- package/reference/model-prices.md +37 -0
- package/reference/model-tiers.md +118 -0
- package/reference/motion.md +285 -0
- package/reference/parallelism-rules.md +108 -0
- package/reference/priority-matrix.md +31 -0
- package/reference/project-skills-guide.md +42 -0
- package/reference/review-format.md +107 -0
- package/reference/schemas/config.schema.json +41 -0
- package/reference/schemas/hooks.schema.json +55 -0
- package/reference/schemas/intel.schema.json +191 -0
- package/reference/schemas/marketplace.schema.json +72 -0
- package/reference/schemas/plugin.schema.json +59 -0
- package/reference/shared-preamble.md +82 -0
- package/reference/typography.md +229 -0
- package/scripts/aggregate-agent-metrics.js +144 -0
- package/scripts/apply-branch-protection.sh +75 -0
- package/scripts/bootstrap-manifest.txt +3 -0
- package/scripts/bootstrap.sh +80 -0
- package/scripts/build-intel.cjs +458 -0
- package/scripts/detect-stale-refs.cjs +101 -0
- package/scripts/extract-changelog-section.cjs +57 -0
- package/scripts/release-smoke-test.cjs +169 -0
- package/scripts/rollback-release.sh +42 -0
- package/scripts/run-injection-scanner-ci.cjs +92 -0
- package/scripts/validate-frontmatter.cjs +68 -0
- package/scripts/validate-schemas.cjs +225 -0
- package/scripts/verify-version-sync.cjs +30 -0
- package/skills/add-backlog/SKILL.md +47 -0
- package/skills/analyze-dependencies/SKILL.md +184 -0
- package/skills/apply-reflections/SKILL.md +112 -0
- package/skills/audit/SKILL.md +54 -0
- package/skills/brief/SKILL.md +75 -0
- package/skills/cache-manager/SKILL.md +120 -0
- package/skills/compare/SKILL.md +322 -0
- package/skills/complete-cycle/SKILL.md +33 -0
- package/skills/darkmode/SKILL.md +331 -0
- package/skills/debug/SKILL.md +38 -0
- package/skills/design/SKILL.md +281 -0
- package/skills/discover/SKILL.md +172 -0
- package/skills/discuss/SKILL.md +67 -0
- package/skills/do/SKILL.md +45 -0
- package/skills/explore/SKILL.md +109 -0
- package/skills/extract-learnings/SKILL.md +98 -0
- package/skills/fast/SKILL.md +44 -0
- package/skills/figma-write/SKILL.md +40 -0
- package/skills/graphify/SKILL.md +48 -0
- package/skills/health/SKILL.md +48 -0
- package/skills/help/SKILL.md +76 -0
- package/skills/list-assumptions/SKILL.md +60 -0
- package/skills/map/SKILL.md +112 -0
- package/skills/new-cycle/SKILL.md +35 -0
- package/skills/new-project/SKILL.md +53 -0
- package/skills/next/SKILL.md +42 -0
- package/skills/note/SKILL.md +47 -0
- package/skills/optimize/SKILL.md +120 -0
- package/skills/pause/SKILL.md +41 -0
- package/skills/plan/SKILL.md +251 -0
- package/skills/plant-seed/SKILL.md +47 -0
- package/skills/pr-branch/SKILL.md +31 -0
- package/skills/progress/SKILL.md +60 -0
- package/skills/quick/SKILL.md +43 -0
- package/skills/reapply-patches/SKILL.md +31 -0
- package/skills/reflect/SKILL.md +73 -0
- package/skills/resume/SKILL.md +37 -0
- package/skills/review-backlog/SKILL.md +45 -0
- package/skills/router/SKILL.md +67 -0
- package/skills/scan/SKILL.md +721 -0
- package/skills/settings/SKILL.md +78 -0
- package/skills/ship/SKILL.md +31 -0
- package/skills/sketch/SKILL.md +78 -0
- package/skills/sketch-wrap-up/SKILL.md +88 -0
- package/skills/skill-manifest/SKILL.md +79 -0
- package/skills/spike/SKILL.md +67 -0
- package/skills/spike-wrap-up/SKILL.md +81 -0
- package/skills/stats/SKILL.md +50 -0
- package/skills/style/SKILL.md +193 -0
- package/skills/synthesize/SKILL.md +93 -0
- package/skills/todo/SKILL.md +54 -0
- package/skills/undo/SKILL.md +30 -0
- package/skills/update/SKILL.md +36 -0
- package/skills/verify/SKILL.md +452 -0
- package/skills/warm-cache/SKILL.md +113 -0
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
# Intel Store Schema
|
|
2
|
+
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Path: `.design/intel/` (gitignored — runtime data only)
|
|
5
|
+
|
|
6
|
+
## Overview
|
|
7
|
+
|
|
8
|
+
The intel store is a set of flat JSON files (slices) that index the design surface.
|
|
9
|
+
Each slice is an independent file. Agents read slices they need; the updater rewrites only changed slices.
|
|
10
|
+
|
|
11
|
+
Slices are rebuilt by `scripts/build-intel.cjs` (full initial build) and kept current by the
|
|
12
|
+
`gdd-intel-updater` agent (incremental updates triggered by file changes).
|
|
13
|
+
|
|
14
|
+
## Slice Definitions
|
|
15
|
+
|
|
16
|
+
### files.json
|
|
17
|
+
|
|
18
|
+
Index of all design-surface files tracked in the project.
|
|
19
|
+
|
|
20
|
+
```json
|
|
21
|
+
{
|
|
22
|
+
"generated": "<ISO-8601 timestamp>",
|
|
23
|
+
"git_hash": "<short SHA of HEAD at build time>",
|
|
24
|
+
"files": [
|
|
25
|
+
{
|
|
26
|
+
"path": "skills/scan/SKILL.md",
|
|
27
|
+
"type": "skill",
|
|
28
|
+
"mtime": "<ISO-8601>",
|
|
29
|
+
"size_bytes": 1240,
|
|
30
|
+
"git_hash": "<short SHA of last commit touching this file>"
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
`type` values: `skill`, `agent`, `reference`, `connection`, `script`, `hook`, `config`, `test`, `other`
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
### exports.json
|
|
41
|
+
|
|
42
|
+
Named exports from each file (frontmatter `name:` fields, command names, agent names).
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"generated": "<ISO-8601>",
|
|
47
|
+
"exports": [
|
|
48
|
+
{
|
|
49
|
+
"file": "skills/scan/SKILL.md",
|
|
50
|
+
"kind": "skill",
|
|
51
|
+
"name": "gdd-scan",
|
|
52
|
+
"command": "/gdd:scan"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"file": "agents/design-verifier.md",
|
|
56
|
+
"kind": "agent",
|
|
57
|
+
"name": "design-verifier"
|
|
58
|
+
}
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
`kind` values: `skill`, `agent`, `reference`, `other`
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
### symbols.json
|
|
68
|
+
|
|
69
|
+
Headings, section anchors, and named concepts extracted from markdown files.
|
|
70
|
+
|
|
71
|
+
```json
|
|
72
|
+
{
|
|
73
|
+
"generated": "<ISO-8601>",
|
|
74
|
+
"symbols": [
|
|
75
|
+
{
|
|
76
|
+
"file": "reference/accessibility.md",
|
|
77
|
+
"heading": "## WCAG Contrast Thresholds",
|
|
78
|
+
"level": 2,
|
|
79
|
+
"anchor": "wcag-contrast-thresholds",
|
|
80
|
+
"line": 42
|
|
81
|
+
}
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
### tokens.json
|
|
89
|
+
|
|
90
|
+
Design token references found across skill and agent files (color, spacing, typography, radius).
|
|
91
|
+
|
|
92
|
+
```json
|
|
93
|
+
{
|
|
94
|
+
"generated": "<ISO-8601>",
|
|
95
|
+
"tokens": [
|
|
96
|
+
{
|
|
97
|
+
"file": "skills/style/SKILL.md",
|
|
98
|
+
"token": "--color-primary",
|
|
99
|
+
"category": "color",
|
|
100
|
+
"line": 18,
|
|
101
|
+
"context": "Check `--color-primary` against WCAG AA"
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
`category` values: `color`, `spacing`, `typography`, `radius`, `shadow`, `motion`, `other`
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
### components.json
|
|
112
|
+
|
|
113
|
+
Component names referenced or defined across design surface files.
|
|
114
|
+
|
|
115
|
+
```json
|
|
116
|
+
{
|
|
117
|
+
"generated": "<ISO-8601>",
|
|
118
|
+
"components": [
|
|
119
|
+
{
|
|
120
|
+
"file": "skills/design/SKILL.md",
|
|
121
|
+
"component": "Button",
|
|
122
|
+
"role": "reference",
|
|
123
|
+
"line": 31
|
|
124
|
+
}
|
|
125
|
+
]
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
`role` values: `definition`, `reference`, `example`
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
### patterns.json
|
|
134
|
+
|
|
135
|
+
Design patterns classified by concern, extracted from design-pattern-mapper output and reference docs.
|
|
136
|
+
|
|
137
|
+
```json
|
|
138
|
+
{
|
|
139
|
+
"generated": "<ISO-8601>",
|
|
140
|
+
"patterns": [
|
|
141
|
+
{
|
|
142
|
+
"name": "color-system",
|
|
143
|
+
"category": "color-system",
|
|
144
|
+
"source_file": "reference/heuristics.md",
|
|
145
|
+
"description": "Semantic color token usage pattern"
|
|
146
|
+
}
|
|
147
|
+
]
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
`category` values: `color-system`, `spacing-system`, `typography-system`, `component-styling`, `layout`, `interaction`, `other`
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
### dependencies.json
|
|
156
|
+
|
|
157
|
+
Intra-project @-references and explicit reads-from relationships between files.
|
|
158
|
+
|
|
159
|
+
```json
|
|
160
|
+
{
|
|
161
|
+
"generated": "<ISO-8601>",
|
|
162
|
+
"dependencies": [
|
|
163
|
+
{
|
|
164
|
+
"from": "skills/verify/SKILL.md",
|
|
165
|
+
"to": "reference/accessibility.md",
|
|
166
|
+
"kind": "at-reference",
|
|
167
|
+
"line": 7
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"from": "agents/design-verifier.md",
|
|
171
|
+
"to": "reference/heuristics.md",
|
|
172
|
+
"kind": "reads-from",
|
|
173
|
+
"line": 3
|
|
174
|
+
}
|
|
175
|
+
]
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
`kind` values: `at-reference`, `reads-from`, `skill-calls-agent`, `agent-calls-agent`
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
### decisions.json
|
|
184
|
+
|
|
185
|
+
Architectural decisions extracted from DESIGN-CONTEXT.md and `.design/DESIGN-DECISIONS.md` (if present).
|
|
186
|
+
|
|
187
|
+
```json
|
|
188
|
+
{
|
|
189
|
+
"generated": "<ISO-8601>",
|
|
190
|
+
"decisions": [
|
|
191
|
+
{
|
|
192
|
+
"id": "D-01",
|
|
193
|
+
"summary": "Use Figma MCP for token extraction — merge not replace grep results",
|
|
194
|
+
"source_file": ".design/DESIGN-CONTEXT.md",
|
|
195
|
+
"line": 12,
|
|
196
|
+
"date": "2026-04-18"
|
|
197
|
+
}
|
|
198
|
+
]
|
|
199
|
+
}
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
### debt.json
|
|
205
|
+
|
|
206
|
+
Design debt items extracted from `.design/DESIGN-DEBT.md`.
|
|
207
|
+
|
|
208
|
+
```json
|
|
209
|
+
{
|
|
210
|
+
"generated": "<ISO-8601>",
|
|
211
|
+
"debt": [
|
|
212
|
+
{
|
|
213
|
+
"id": "DEBT-01",
|
|
214
|
+
"summary": "Spacing token --space-4 used inconsistently across 3 components",
|
|
215
|
+
"severity": "medium",
|
|
216
|
+
"source_file": ".design/DESIGN-DEBT.md",
|
|
217
|
+
"line": 8
|
|
218
|
+
}
|
|
219
|
+
]
|
|
220
|
+
}
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
`severity` values: `high`, `medium`, `low`
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
### graph.json
|
|
228
|
+
|
|
229
|
+
Cross-reference graph: nodes are files, edges are dependency relationships from dependencies.json.
|
|
230
|
+
|
|
231
|
+
```json
|
|
232
|
+
{
|
|
233
|
+
"generated": "<ISO-8601>",
|
|
234
|
+
"nodes": [
|
|
235
|
+
{ "id": "skills/verify/SKILL.md", "type": "skill", "name": "gdd-verify" }
|
|
236
|
+
],
|
|
237
|
+
"edges": [
|
|
238
|
+
{
|
|
239
|
+
"from": "skills/verify/SKILL.md",
|
|
240
|
+
"to": "reference/accessibility.md",
|
|
241
|
+
"kind": "at-reference"
|
|
242
|
+
}
|
|
243
|
+
]
|
|
244
|
+
}
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
## Incremental Update Rules
|
|
248
|
+
|
|
249
|
+
1. On each run, compare current file `mtime` and `git_hash` against `files.json` entries.
|
|
250
|
+
2. Only re-extract slices for files that changed.
|
|
251
|
+
3. Always regenerate `graph.json` after any dependency slice update.
|
|
252
|
+
4. `generated` timestamp in each slice reflects the last time that slice was written.
|
|
253
|
+
|
|
254
|
+
## Usage by Agents
|
|
255
|
+
|
|
256
|
+
Agents read slices conditionally using the `@.design/intel/<slice>.json (if present)` pattern.
|
|
257
|
+
This allows graceful degradation when the intel store has not been built yet.
|
|
258
|
+
|
|
259
|
+
Example conditional read block in an agent:
|
|
260
|
+
|
|
261
|
+
```
|
|
262
|
+
<required_reading>
|
|
263
|
+
@.design/intel/tokens.json (if present)
|
|
264
|
+
@.design/intel/components.json (if present)
|
|
265
|
+
</required_reading>
|
|
266
|
+
```
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Model Prices — Static Price Table
|
|
2
|
+
|
|
3
|
+
**Source of truth for `est_cost_usd` calculations** in the router (`skills/router/SKILL.md`) and budget-enforcer hook (`hooks/budget-enforcer.js`). Anthropic-only pricing. Update the table here when prices change — downstream calculators read this file.
|
|
4
|
+
|
|
5
|
+
## Pricing (USD per 1M tokens)
|
|
6
|
+
|
|
7
|
+
| Model | Tier | input_per_1m | output_per_1m | cached_input_per_1m |
|
|
8
|
+
|-------|------|--------------|---------------|----------------------|
|
|
9
|
+
| claude-haiku-4-5 | haiku | 1.00 | 5.00 | 0.10 |
|
|
10
|
+
| claude-sonnet-4-7 | sonnet | 3.00 | 15.00 | 0.30 |
|
|
11
|
+
| claude-opus-4-7 | opus | 15.00 | 75.00 | 1.50 |
|
|
12
|
+
|
|
13
|
+
## size_budget → conservative token ranges
|
|
14
|
+
|
|
15
|
+
Agent frontmatter carries `size_budget: S|M|L|XL`. The router uses these conservative token ranges to compute a pre-spawn `est_cost_usd` without a live model call:
|
|
16
|
+
|
|
17
|
+
| size_budget | input_tokens (conservative max) | output_tokens (conservative max) |
|
|
18
|
+
|-------------|----------------------------------|-----------------------------------|
|
|
19
|
+
| S | 4000 | 1000 |
|
|
20
|
+
| M | 10000 | 2500 |
|
|
21
|
+
| L | 25000 | 6000 |
|
|
22
|
+
| XL | 60000 | 15000 |
|
|
23
|
+
|
|
24
|
+
## Estimator formula
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
est_cost_usd =
|
|
28
|
+
(input_tokens / 1_000_000) * input_per_1m
|
|
29
|
+
+ (output_tokens / 1_000_000) * output_per_1m
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
When `cache_hit: true` (see D-08), the hook re-runs the formula with `cached_input_per_1m` in place of `input_per_1m` for the input portion.
|
|
33
|
+
|
|
34
|
+
## Update protocol
|
|
35
|
+
|
|
36
|
+
1. Pricing change: update the table above; commit as `chore(reference): update Anthropic pricing YYYY-MM-DD`.
|
|
37
|
+
2. size_budget revision: requires a Phase 11 reflector proposal under `[FRONTMATTER]` scope; do not hand-edit agent ranges.
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# Model Tiers — Selection Guide + Per-Agent Map
|
|
2
|
+
|
|
3
|
+
**Purpose:** Source of truth for the `default-tier: haiku|sonnet|opus` frontmatter field carried by every agent at `agents/*.md`. Tiers are one of three Anthropic model classes — priced in `reference/model-prices.md`.
|
|
4
|
+
|
|
5
|
+
Phase 10.1 (OPT-06) locked the initial per-agent tier assignment. Phase 11's `design-reflector` (`agents/design-reflector.md`) proposes refinements from measured `.design/agent-metrics.json` data; no auto-apply — proposals flow through `/gdd:apply-reflections` and `/gdd:optimize`.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Tier Assignment Rules
|
|
10
|
+
|
|
11
|
+
### haiku — Verifiers and checkers with deterministic rubrics
|
|
12
|
+
|
|
13
|
+
Pick `haiku` when the agent is:
|
|
14
|
+
- Applying a fixed scoring rubric (`design-verifier` runs five deterministic passes with numeric category scores).
|
|
15
|
+
- Producing a boolean + rationale answer (`design-plan-checker`, `design-context-checker`, `design-integration-checker` all return "gaps found" + structured list).
|
|
16
|
+
- Performing a read-only state sync (`gdd-graphify-sync` mirrors graph state — no reasoning density beyond schema matching).
|
|
17
|
+
- Running at high frequency where cost compounds (checkers run on every `/gdd:verify` pass — cost multiplies with iterations).
|
|
18
|
+
|
|
19
|
+
Haiku's ~20x price advantage over Opus per 1M tokens (see `reference/model-prices.md`) makes it correct for deterministic-rubric work where the marginal quality gain of larger models is negligible.
|
|
20
|
+
|
|
21
|
+
### sonnet — Researchers, mappers, doc-writers, executors, fixers
|
|
22
|
+
|
|
23
|
+
Pick `sonnet` when the agent is:
|
|
24
|
+
- Doing open-ended pattern recognition on codebase data (`a11y-mapper`, `component-taxonomy-mapper`, `design-pattern-mapper`, `motion-mapper`, `token-mapper`, `visual-hierarchy-mapper`).
|
|
25
|
+
- Synthesizing prose from structured input (`design-doc-writer`, `design-research-synthesizer`, `design-context-builder`).
|
|
26
|
+
- Executing a concrete plan under supervision (`design-executor`, `design-fixer`, `design-figma-writer`).
|
|
27
|
+
- Conducting targeted research under a time budget (`design-phase-researcher` — 2-minute web-search budget).
|
|
28
|
+
- Updating / extracting / maintaining project state (`gdd-intel-updater`, `gdd-learnings-extractor`, `design-auditor`).
|
|
29
|
+
|
|
30
|
+
Sonnet balances reasoning density against cost. This is the default — if you're uncertain about an agent's role, it's probably sonnet.
|
|
31
|
+
|
|
32
|
+
### opus — Planners, critics, advisors, strategic reflectors
|
|
33
|
+
|
|
34
|
+
Pick `opus` when the agent is:
|
|
35
|
+
- Proposing a plan that downstream executors will follow (`design-planner` — the plan becomes the contract for the whole design stage).
|
|
36
|
+
- Critiquing or advising on ambiguity (`design-advisor`, `design-assumptions-analyzer` — these agents question the prompt itself).
|
|
37
|
+
- Facilitating interactive decision-gathering (`design-discussant`).
|
|
38
|
+
- Cross-phase strategic reasoning (`design-reflector` — Phase 11 — proposes changes to the plugin itself from measured data).
|
|
39
|
+
|
|
40
|
+
Opus cost (~5x Sonnet, ~25x Haiku) is justified only when a single wrong decision cascades into many downstream agent spawns. Planners fit. Mappers don't.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Per-Agent Tier Map
|
|
45
|
+
|
|
46
|
+
| Agent | Role class | default-tier | Rationale |
|
|
47
|
+
|-------|------------|--------------|-----------|
|
|
48
|
+
| design-verifier | Verifier | haiku | Runs a deterministic 5-pass scoring rubric; Haiku handles structured grading without quality loss. |
|
|
49
|
+
| design-plan-checker | Checker | haiku | Checks the plan against a fixed schema — boolean + gap-list output. |
|
|
50
|
+
| design-context-checker | Checker | haiku | Checks context completeness against a schema — boolean + gap-list output. |
|
|
51
|
+
| design-integration-checker | Checker | haiku | Checks cross-artifact references — deterministic link-integrity work. |
|
|
52
|
+
| gdd-graphify-sync | Sync agent | haiku | Mirrors graph state to the graph store — no reasoning density required. |
|
|
53
|
+
| a11y-mapper | Mapper | sonnet | Open-ended a11y pattern recognition across many files; Sonnet's breadth matters. |
|
|
54
|
+
| component-taxonomy-mapper | Mapper | sonnet | Classifies components by role — requires nuance Haiku lacks, not enough to warrant Opus. |
|
|
55
|
+
| design-auditor | Worker | sonnet | Emits structured findings from code inspection; Sonnet balances depth with cost. |
|
|
56
|
+
| design-context-builder | Builder | sonnet | Assembles DESIGN-CONTEXT.md from discover outputs — prose synthesis. |
|
|
57
|
+
| design-doc-writer | Writer | sonnet | Produces polished prose documentation; Sonnet's style quality is sufficient. |
|
|
58
|
+
| design-executor | Executor | sonnet | Follows an Opus-authored plan — executes rather than plans. |
|
|
59
|
+
| design-figma-writer | Writer | sonnet | Emits Figma-formatted output from existing spec. |
|
|
60
|
+
| design-fixer | Fixer | sonnet | Applies targeted fixes to a localized artifact; structured input, structured diff output. |
|
|
61
|
+
| design-pattern-mapper | Mapper | sonnet | Catalogs design patterns present in codebase. |
|
|
62
|
+
| design-phase-researcher | Researcher | sonnet | Time-budgeted research on project-type conventions. |
|
|
63
|
+
| design-research-synthesizer | Synthesizer | sonnet | Collapses multiple research outputs into one; synthesis is Sonnet territory. |
|
|
64
|
+
| gdd-intel-updater | Updater | sonnet | Refreshes .planning/intel/ files from current codebase. |
|
|
65
|
+
| gdd-learnings-extractor | Extractor | sonnet | Pulls decisions + lessons + patterns from phase artifacts. |
|
|
66
|
+
| motion-mapper | Mapper | sonnet | Inventories motion patterns — open-ended visual reasoning. |
|
|
67
|
+
| token-mapper | Mapper | sonnet | Extracts design tokens from source — pattern recognition across files. |
|
|
68
|
+
| visual-hierarchy-mapper | Mapper | sonnet | Maps visual hierarchy signals — breadth across many files. |
|
|
69
|
+
| design-advisor | Advisor | opus | Questions prompts to surface ambiguity — wrong advice cascades. |
|
|
70
|
+
| design-assumptions-analyzer | Critic | opus | Surfaces load-bearing assumptions before planning — one wrong assumption derails the phase. |
|
|
71
|
+
| design-discussant | Facilitator | opus | Interactive decision gathering — user-facing, quality-critical. |
|
|
72
|
+
| design-planner | Planner | opus | Authors DESIGN-PLAN.md — the contract every downstream agent follows. |
|
|
73
|
+
| design-reflector | Strategic reflector | opus | Phase 11 — reads telemetry + proposes changes to the plugin itself. |
|
|
74
|
+
|
|
75
|
+
**Row count:** 26 — matches the agent suite ls. Every row has a rationale; no blank rationales.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Override Precedence
|
|
80
|
+
|
|
81
|
+
When the budget-enforcer hook resolves which tier to spawn an agent at, it walks this precedence (D-04):
|
|
82
|
+
|
|
83
|
+
1. **`.design/budget.json.tier_overrides[{agent_name}]`** — per-project configuration. Wins over frontmatter. Use this knob when the project has budget constraints that differ from the plugin defaults.
|
|
84
|
+
2. **Agent frontmatter `default-tier`** (this file's per-agent map) — plugin default. Set at authoring time.
|
|
85
|
+
3. **Hardcoded fallback `"sonnet"`** — belt-and-suspenders in `hooks/budget-enforcer.js` for agents that somehow lack the frontmatter field. Should never fire in practice after Phase 10.1.
|
|
86
|
+
|
|
87
|
+
Plus two modifiers that can override the above at spawn time:
|
|
88
|
+
|
|
89
|
+
- **`auto_downgrade_on_cap: true`** (D-03): at 80% of `per_task_cap_usd`, the hook force-downgrades the tier to `haiku` for the remainder of the task, regardless of the precedence chain. Logged as `tier_downgraded: true` in `.design/telemetry/costs.jsonl`.
|
|
90
|
+
- **Hard-cap block** (D-02): at 100% of `per_task_cap_usd` or `per_phase_cap_usd`, the hook blocks the spawn outright. Tier is irrelevant — nothing runs.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## When to Upgrade or Downgrade
|
|
95
|
+
|
|
96
|
+
The plugin ships with the Per-Agent Tier Map above as a well-reasoned baseline. **Do not hand-edit agent frontmatter `default-tier` fields without evidence.** Two legitimate paths to change a tier assignment:
|
|
97
|
+
|
|
98
|
+
1. **Phase 11 reflector proposal.** `agents/design-reflector.md` reads `.design/agent-metrics.json` and surfaces cases where measured `gap_rate` or `deviation_rate` suggests a tier is too low (verifier missed gaps a Sonnet would catch) or too high (planner over-reasoned simple plans a Sonnet would handle). Proposals flow through `/gdd:apply-reflections` — user-reviewed, never auto-applied.
|
|
99
|
+
2. **Budget constraint.** Project-level override via `.design/budget.json.tier_overrides` — does not require touching the frontmatter.
|
|
100
|
+
|
|
101
|
+
Signals that a tier move might be warranted (Phase 11 reflector's heuristics):
|
|
102
|
+
- **Downgrade signal** (Sonnet → Haiku, or Opus → Sonnet): agent's `gap_rate < 10%` over ≥ 10 runs AND measured output length < 25% of `size_budget` ceiling → agent is over-provisioned.
|
|
103
|
+
- **Upgrade signal** (Haiku → Sonnet, or Sonnet → Opus): agent's `deviation_rate > 15%` over ≥ 5 runs (agent frequently misinterprets prompt) → reasoning density may be the bottleneck.
|
|
104
|
+
|
|
105
|
+
Phase 11's reflector encodes these heuristics. This section documents the philosophy so contributors understand why an edit to this file shows up in a reflector proposal.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Integration Points
|
|
110
|
+
|
|
111
|
+
- **`hooks/budget-enforcer.js`** (Plan 10.1-01 Task 04) — implements the precedence chain above. `resolveTier(agent, agentDefaultTier, overrides)` is the concrete function.
|
|
112
|
+
- **`skills/router/SKILL.md`** (Plan 10.1-01 Task 03) — consults this file's tier map + `reference/model-prices.md` to produce `estimated_cost_usd` pre-spawn.
|
|
113
|
+
- **`skills/optimize/SKILL.md`** (Plan 10.1-04) — advisory command; may suggest tier moves based on telemetry + this doc's heuristics.
|
|
114
|
+
- **`agents/design-reflector.md`** (Phase 11, already merged) — may propose edits to this file + paired frontmatter updates. Proposals land in `.design/reflections/` for user review.
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
*Maintained as part of Phase 10.1 (OPT-06). Edits to the Per-Agent Tier Map MUST be paired with matching frontmatter edits in `agents/*.md` — the two are the same fact stored twice (router cross-checks). A mismatch indicates drift; Phase 11 reflector detects and reports it.*
|