@hegemonart/get-design-done 1.57.1 → 1.57.2

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.
Files changed (113) hide show
  1. package/.claude-plugin/marketplace.json +26 -41
  2. package/.claude-plugin/plugin.json +23 -48
  3. package/CHANGELOG.md +91 -0
  4. package/README.md +166 -511
  5. package/SKILL.md +2 -0
  6. package/agents/README.md +33 -36
  7. package/agents/a11y-mapper.md +3 -3
  8. package/agents/component-benchmark-harvester.md +6 -6
  9. package/agents/component-benchmark-synthesizer.md +3 -3
  10. package/agents/compose-executor.md +3 -3
  11. package/agents/cost-forecaster.md +2 -2
  12. package/agents/design-auditor.md +7 -7
  13. package/agents/design-authority-watcher.md +15 -15
  14. package/agents/design-context-builder.md +4 -4
  15. package/agents/design-context-checker-gate.md +1 -1
  16. package/agents/design-discussant.md +2 -2
  17. package/agents/design-doc-writer.md +1 -1
  18. package/agents/design-executor.md +2 -2
  19. package/agents/design-figma-writer.md +2 -2
  20. package/agents/design-fixer.md +7 -7
  21. package/agents/design-integration-checker-gate.md +1 -1
  22. package/agents/design-integration-checker.md +1 -1
  23. package/agents/design-paper-writer.md +3 -3
  24. package/agents/design-pencil-writer.md +1 -1
  25. package/agents/design-planner.md +21 -0
  26. package/agents/design-reflector.md +39 -39
  27. package/agents/design-research-synthesizer.md +1 -0
  28. package/agents/design-start-writer.md +1 -1
  29. package/agents/design-update-checker.md +5 -5
  30. package/agents/design-verifier-gate.md +1 -1
  31. package/agents/design-verifier.md +52 -48
  32. package/agents/ds-generator.md +2 -2
  33. package/agents/ds-migration-planner.md +4 -4
  34. package/agents/email-executor.md +9 -9
  35. package/agents/experiment-result-ingester.md +3 -3
  36. package/agents/flutter-executor.md +5 -5
  37. package/agents/gdd-graph-refresh.md +3 -3
  38. package/agents/gdd-intel-updater.md +2 -2
  39. package/agents/motion-mapper.md +2 -2
  40. package/agents/motion-verifier.md +4 -4
  41. package/agents/pdf-executor.md +8 -8
  42. package/agents/perf-analyzer.md +17 -17
  43. package/agents/pr-commenter.md +9 -9
  44. package/agents/prototype-gate.md +2 -2
  45. package/agents/quality-gate-runner.md +1 -1
  46. package/agents/rollout-coordinator.md +3 -3
  47. package/agents/swift-executor.md +4 -4
  48. package/agents/ticket-sync-agent.md +6 -6
  49. package/agents/user-research-synthesizer.md +2 -2
  50. package/connections/connections.md +44 -45
  51. package/connections/cursor.md +73 -0
  52. package/connections/preview.md +3 -3
  53. package/dist/claude-code/.claude/skills/cache-manager/SKILL.md +3 -3
  54. package/dist/claude-code/.claude/skills/cache-manager/cache-policy.md +1 -1
  55. package/dist/claude-code/.claude/skills/design/SKILL.md +19 -0
  56. package/dist/claude-code/.claude/skills/explore/SKILL.md +11 -0
  57. package/dist/claude-code/.claude/skills/figma-write/SKILL.md +13 -2
  58. package/dist/claude-code/.claude/skills/paper-write/SKILL.md +54 -0
  59. package/dist/claude-code/.claude/skills/pencil-write/SKILL.md +54 -0
  60. package/dist/claude-code/.claude/skills/report-issue/SKILL.md +2 -2
  61. package/dist/claude-code/.claude/skills/router/SKILL.md +2 -2
  62. package/dist/claude-code/.claude/skills/verify/verify-procedure.md +10 -11
  63. package/dist/claude-code/.claude/skills/warm-cache/SKILL.md +1 -1
  64. package/hooks/first-run-nudge.cjs +171 -0
  65. package/hooks/gdd-intel-trigger.js +243 -0
  66. package/hooks/gdd-mcp-circuit-breaker.js +62 -7
  67. package/hooks/gdd-precompact-snapshot.js +50 -29
  68. package/hooks/gdd-protected-paths.js +150 -18
  69. package/hooks/gdd-risk-gate.js +93 -1
  70. package/hooks/gdd-sessionstart-recap.js +59 -24
  71. package/hooks/hooks.json +13 -4
  72. package/hooks/inject-using-gdd.cjs +188 -0
  73. package/hooks/update-check.cjs +511 -0
  74. package/package.json +9 -2
  75. package/reference/STATE-TEMPLATE.md +10 -13
  76. package/reference/audit-scoring.md +1 -1
  77. package/reference/cache-tier-doctrine.md +46 -0
  78. package/reference/config-schema.md +9 -9
  79. package/reference/i18n.md +1 -1
  80. package/reference/intel-schema.md +37 -2
  81. package/reference/meta-rules.md +4 -4
  82. package/reference/model-tiers.md +2 -2
  83. package/reference/registry.json +101 -94
  84. package/reference/runtime-models.md +11 -1
  85. package/reference/shared-preamble.md +13 -14
  86. package/reference/skill-graph.md +24 -1
  87. package/scripts/bootstrap.cjs +373 -0
  88. package/scripts/injection-patterns.cjs +58 -0
  89. package/scripts/lib/apply-reflections/incubator-proposals.cjs +57 -26
  90. package/scripts/lib/install/converters/codex-plugin.cjs +5 -2
  91. package/scripts/lib/install/converters/cursor.cjs +20 -0
  92. package/scripts/lib/issue-reporter/report-flow.cjs +1 -1
  93. package/scripts/lib/manifest/skills.json +80 -13
  94. package/scripts/lib/state/query-surface.cjs +67 -9
  95. package/scripts/lib/state/state-store.cjs +68 -26
  96. package/sdk/cli/commands/stage.ts +17 -0
  97. package/sdk/cli/index.js +14 -0
  98. package/skills/cache-manager/SKILL.md +3 -3
  99. package/skills/cache-manager/cache-policy.md +1 -1
  100. package/skills/design/SKILL.md +19 -0
  101. package/skills/explore/SKILL.md +11 -0
  102. package/skills/figma-write/SKILL.md +13 -2
  103. package/skills/paper-write/SKILL.md +54 -0
  104. package/skills/pencil-write/SKILL.md +54 -0
  105. package/skills/report-issue/SKILL.md +2 -2
  106. package/skills/router/SKILL.md +2 -2
  107. package/skills/verify/verify-procedure.md +10 -11
  108. package/skills/warm-cache/SKILL.md +1 -1
  109. package/hooks/first-run-nudge.sh +0 -82
  110. package/hooks/inject-using-gdd.sh +0 -72
  111. package/hooks/update-check.sh +0 -251
  112. package/scripts/lib/audit-aggregator/index.cjs +0 -219
  113. package/scripts/lib/hedge-ensemble.cjs +0 -217
@@ -122,7 +122,7 @@ Agents never read config directly - the profile is always injected at spawn time
122
122
 
123
123
  ## .design/budget.json Schema (Phase 10.1)
124
124
 
125
- Governs the optimization layer introduced in Phase 10.1. Read by every `Agent` tool spawn via `hooks/budget-enforcer.js` (PreToolUse). Bootstrap writes defaults if the file is missing.
125
+ Governs the optimization layer introduced in Phase 10.1. Read by every `Agent` tool spawn via `hooks/budget-enforcer.ts` (PreToolUse). Bootstrap writes defaults if the file is missing.
126
126
 
127
127
  ## Full Schema
128
128
 
@@ -215,11 +215,11 @@ If `.design/budget.json` is missing when any `/gdd:*` command runs, `scripts/boo
215
215
 
216
216
  ## .design/telemetry/costs.jsonl + .design/agent-metrics.json (Phase 10.1)
217
217
 
218
- Phase 10.1 introduces two measurement artifacts written by `hooks/budget-enforcer.js` (PreToolUse on `Agent` spawns) and `scripts/aggregate-agent-metrics.ts` (detached child of the hook + refresh step of `/gdd:optimize`). Both files live under the gitignored `.design/` directory - they are local session state, not committed.
218
+ Phase 10.1 introduces two measurement artifacts written by `hooks/budget-enforcer.ts` (PreToolUse on `Agent` spawns) and `scripts/aggregate-agent-metrics.ts` (detached child of the hook + refresh step of `/gdd:optimize`). Both files live under the gitignored `.design/` directory - they are local session state, not committed.
219
219
 
220
220
  ### .design/telemetry/costs.jsonl
221
221
 
222
- Append-only ledger. One JSON object per line. Written by `hooks/budget-enforcer.js` on every PreToolUse decision: spawn allowed, spawn blocked by cap, tier downgraded, cache-hit short-circuit, lazy-gate skip. Consumed by the Phase 11 reflector (`agents/design-reflector.md`) and by `/gdd:optimize`.
222
+ Append-only ledger. One JSON object per line. Written by `hooks/budget-enforcer.ts` on every PreToolUse decision: spawn allowed, spawn blocked by cap, tier downgraded, cache-hit short-circuit, lazy-gate skip. Consumed by the Phase 11 reflector (`agents/design-reflector.md`) and by `/gdd:optimize`.
223
223
 
224
224
  **Row schema** (verbatim from ROADMAP criterion 7):
225
225
 
@@ -292,11 +292,11 @@ Both files sit inside `.design/`, which is already `.gitignore`d at the project
292
292
 
293
293
  ### Refresh cadence
294
294
 
295
- The aggregator is invoked as a detached child process by `hooks/budget-enforcer.js` after every telemetry row write. It is also invoked directly by `/gdd:optimize` before analysis. There is no cron, no daemon, and no scheduled task - metrics are always at most one spawn stale.
295
+ The aggregator is invoked as a detached child process by `hooks/budget-enforcer.ts` after every telemetry row write. It is also invoked directly by `/gdd:optimize` before analysis. There is no cron, no daemon, and no scheduled task - metrics are always at most one spawn stale.
296
296
 
297
297
  ## .design/cache-manifest.json Schema (Phase 10.1)
298
298
 
299
- Authored and maintained by `skills/cache-manager/SKILL.md`. Read by `hooks/budget-enforcer.js` (PreToolUse on Agent spawns) for short-circuiting cached spawns per D-05. Layer B of the D-08 two-layer cache. Flat KV shape - keys are SHA-256 hex of the deterministic input-hash, values are entry objects. Schema version 1.
299
+ Authored and maintained by `skills/cache-manager/SKILL.md`. Read by `hooks/budget-enforcer.ts` (PreToolUse on Agent spawns) for short-circuiting cached spawns per D-05. Layer B of the D-08 two-layer cache. Flat KV shape - keys are SHA-256 hex of the deterministic input-hash, values are entry objects. Schema version 1.
300
300
 
301
301
  ## Full Schema
302
302
 
@@ -357,22 +357,22 @@ String - ISO-8601 UTC timestamp equal to `written_at + ttl_seconds`. Precomputed
357
357
  - TTL is copied into each entry at write time - **not** recomputed on read. Budget.json changes do not retroactively affect existing entries.
358
358
  - `expires_at` = `written_at + ttl_seconds`, computed once, stored in the entry.
359
359
  - Stale entries are **not** actively purged (lazy cleanup): they remain in the file until overwritten by a new write with the same key, or pruned manually. A proactive reaper is out of v1 scope.
360
- - Readers (`hooks/budget-enforcer.js`) check `Date.now() / 1000 > Date.parse(expires_at) / 1000`; if true, return miss.
360
+ - Readers (`hooks/budget-enforcer.ts`) check `Date.now() / 1000 > Date.parse(expires_at) / 1000`; if true, return miss.
361
361
 
362
362
  ## Read/Write contract
363
363
 
364
364
  - **Single writer**: `skills/cache-manager/SKILL.md` Phase 4 (`write-result-on-completion`). Other code must not write this file directly.
365
- - **Multiple readers**: `hooks/budget-enforcer.js`, any orchestrator that runs Phase 2 (`lookup`) for dry-run planning. Readers treat malformed JSON as "manifest absent" (empty cache) - do not throw.
365
+ - **Multiple readers**: `hooks/budget-enforcer.ts`, any orchestrator that runs Phase 2 (`lookup`) for dry-run planning. Readers treat malformed JSON as "manifest absent" (empty cache) - do not throw.
366
366
  - **Concurrency**: Claude Code agent spawns are serialized at the hook level (PreToolUse is synchronous). No file locking is needed at v1 scale. Concurrent writes from parallel orchestrators are theoretically possible but exceedingly rare; last-writer-wins is acceptable (cache miss on next read re-populates).
367
367
 
368
368
  ## Bootstrap behavior
369
369
 
370
- If `.design/cache-manifest.json` is missing when `hooks/budget-enforcer.js` reads it, the hook treats every lookup as a miss and the spawn proceeds normally. No bootstrap action is required - the manifest is created lazily on first successful spawn when `skills/cache-manager/SKILL.md` Phase 4 fires. Unlike `.design/budget.json`, missing cache-manifest.json is the **correct** initial state on a fresh repo.
370
+ If `.design/cache-manifest.json` is missing when `hooks/budget-enforcer.ts` reads it, the hook treats every lookup as a miss and the spawn proceeds normally. No bootstrap action is required - the manifest is created lazily on first successful spawn when `skills/cache-manager/SKILL.md` Phase 4 fires. Unlike `.design/budget.json`, missing cache-manifest.json is the **correct** initial state on a fresh repo.
371
371
 
372
372
  ## Cross-references
373
373
 
374
374
  - `skills/cache-manager/SKILL.md` - producer; documents the four-phase contract.
375
- - `hooks/budget-enforcer.js` (Plan 10.1-01) - reader; short-circuits spawns on hit.
375
+ - `hooks/budget-enforcer.ts` (Plan 10.1-01) - reader; short-circuits spawns on hit.
376
376
  - `.design/budget.json` - provides `cache_ttl_seconds` default.
377
377
  - `.design/telemetry/costs.jsonl` (Plan 10.1-05) - records `cache_hit: true` rows with zero tokens and zero cost when the short-circuit fires.
378
378
  - D-05, D-08, D-09 in `.planning/phases/10.1-optimization-layer-cost-governance/10.1-CONTEXT.md` - decision lineage.
package/reference/i18n.md CHANGED
@@ -465,7 +465,7 @@ The auditor catches a missed 3.1.2 by scanning for untranslated quotes, proper n
465
465
 
466
466
  ## Verifier Integration Spec
467
467
 
468
- This section specifies two probes for [agents/design-verifier.md](../agents/design-verifier.md). 28-06 implements; this file owns the spec. Both probes attach to a new `### i18n probes` subsection at the end of Phase 1 - Re-Audit + Category Scoring (after the existing `### Category Scores` subsection), and both classify findings under the orthogonal lens-tag `i18n_readiness` (per D-03 / D-07 - no new pillar, no audit-format change).
468
+ This section specifies two probes for [agents/design-verifier.md](../agents/design-verifier.md). The verifier agent implements; this file owns the spec. Both probes attach to a new `### i18n probes` subsection at the end of Stage 1 - Re-Audit + Category Scoring (after the existing `### Category Scores` subsection), and both classify findings under the orthogonal lens-tag `i18n_readiness` (no new pillar, no audit-format change).
469
469
 
470
470
  ### Probe 1: Hardcoded-string scan
471
471
 
@@ -8,8 +8,11 @@ Path: `.design/intel/` (gitignored - runtime data only)
8
8
  The intel store is a set of flat JSON files (slices) that index the design surface.
9
9
  Each slice is an independent file. Agents read slices they need; the updater rewrites only changed slices.
10
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).
11
+ Slices are rebuilt by `scripts/build-intel.cjs` (full initial build) and refreshed on-demand
12
+ by the `gdd-intel-updater` agent (incremental updates when run by the user or a skill that
13
+ spawns it). The store is **not auto-current**: it reflects the last invocation of build-intel
14
+ or the updater. Skills that depend on fresh intel should invoke the updater first or treat
15
+ slice timestamps as best-effort.
13
16
 
14
17
  ## Slice Definitions
15
18
 
@@ -244,6 +247,38 @@ Cross-reference graph: nodes are files, edges are dependency relationships from
244
247
  }
245
248
  ```
246
249
 
250
+ ---
251
+
252
+ ### agent-tiers.json
253
+
254
+ Runtime-neutral tier index per agent; populated by `gdd-intel-updater` so downstream
255
+ tooling reads tier information without re-parsing every agent's markdown frontmatter.
256
+ Both the model-tier (`opus|sonnet|haiku`) and the equivalent runtime-neutral
257
+ reasoning class (`high|medium|low`) are emitted side-by-side using the locked
258
+ equivalence map (opus↔high, sonnet↔medium, haiku↔low).
259
+
260
+ ```json
261
+ {
262
+ "generated": "<ISO-8601>",
263
+ "agents": [
264
+ {
265
+ "name": "design-planner",
266
+ "default_tier": "opus",
267
+ "reasoning_class": "high"
268
+ },
269
+ {
270
+ "name": "design-verifier-gate",
271
+ "default_tier": "haiku",
272
+ "reasoning_class": "low"
273
+ }
274
+ ]
275
+ }
276
+ ```
277
+
278
+ Consumers: router, budget enforcer, multi-runtime tier resolver.
279
+ Validation: every agent in `agents/*.md` (except README.md) MUST appear exactly once.
280
+ Written atomically (.tmp + rename) when the updater runs; absent on a fresh checkout.
281
+
247
282
  ## Incremental Update Rules
248
283
 
249
284
  1. On each run, compare current file `mtime` and `git_hash` against `files.json` entries.
@@ -14,7 +14,7 @@ When the orchestrator's prompt contains a `<required_reading>` block, you MUST r
14
14
 
15
15
  Only write files declared in your frontmatter `writes:` list. Agents with `reads-only: true` must never call `Write` or `Edit` on any file. If the task appears to require writing outside your declared scope, stop and return a `<blocker>` in STATE.md rather than expanding your write surface.
16
16
 
17
- If your agent runs in a phase that enforces atomic commits (most do), commit only files in your declared `writes:` list. Use the repo commit convention: `docs(phase-N-P): short imperative description` for documentation-class changes, `feat(phase-N-P): ...` for new capability, `fix(phase-N-P): ...` for bug fixes. Phase and plan numbers come from `.design/STATE.md` `phase:` and the invoking plan's frontmatter.
17
+ If your agent runs in a context that enforces atomic commits (most do), commit only files in your declared `writes:` list. Use the repo's conventional-commit convention: `feat(<scope>): ...` for new capability, `fix(<scope>): ...` for bug fixes, `docs(<scope>): ...` for documentation. The `<scope>` should match a recognisable subsystem in the downstream project (e.g. `feat(verify): ...`, `fix(planner): ...`); do not propagate any internal plugin-development numbering.
18
18
 
19
19
  ## Deviation Handling
20
20
 
@@ -43,7 +43,7 @@ The orchestrator detects failure by reading STATE.md for a `<blocker>`, not by t
43
43
 
44
44
  ## Context-Exhaustion & Budget Awareness
45
45
 
46
- A PostToolUse hook at `hooks/context-exhaustion.js` watches your tool output for the string `<context-exhaustion>` in your response. If you determine you cannot finish the task in the remaining context, emit:
46
+ A PostToolUse hook at `hooks/context-exhaustion.ts` watches your tool output for the string `<context-exhaustion>` in your response. If you determine you cannot finish the task in the remaining context, emit:
47
47
 
48
48
  ```xml
49
49
  <context-exhaustion>
@@ -54,12 +54,12 @@ resume-hint: <one-sentence instruction for a resumption spawn>
54
54
 
55
55
  …before your completion marker. The hook captures this into STATE.md so the orchestrator can re-spawn you with a narrower scope. Do not guess when you're near exhaustion - only emit when a concrete obstacle (file too large to read, required diff too wide) forced the call.
56
56
 
57
- A PreToolUse hook at `hooks/budget-enforcer.js` intercepts every `Task` spawn (including the one that invoked you). The hook may:
57
+ A PreToolUse hook at `hooks/budget-enforcer.ts` intercepts every `Task` spawn (including the one that invoked you). The hook may:
58
58
  - **Short-circuit** your spawn with a cached result from `.design/cache-manifest.json` (transparent - you never run).
59
59
  - **Downgrade** your tier to Haiku at the 80% per-task cap soft-threshold, silently (`auto_downgrade_on_cap: true` in `.design/budget.json`, D-03).
60
60
  - **Hard-block** your spawn at the 100% per-task or per-phase cap with an actionable error (D-02).
61
61
 
62
- Implication for you as the agent: **do not assume a specific model tier is live.** Your output must be correct whether you run on Haiku, Sonnet, or Opus. If a task genuinely requires reasoning density beyond Haiku, the `size_budget` + `default-tier` combination should have been set at authoring time so the router routes it correctly - the remedy is a frontmatter update (a Phase 11 reflector proposal), not a mid-run assumption.
62
+ Implication for you as the agent: **do not assume a specific model tier is live.** Your output must be correct whether you run on Haiku, Sonnet, or Opus. If a task genuinely requires reasoning density beyond Haiku, the `size_budget` + `default-tier` combination should have been set at authoring time so the router routes it correctly - the remedy is a frontmatter update via the reflector loop, not a mid-run assumption.
63
63
 
64
64
  ---
65
65
 
@@ -82,7 +82,7 @@ When the budget-enforcer hook resolves which tier to spawn an agent at, it walks
82
82
 
83
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
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.
85
+ 3. **Hardcoded fallback `"sonnet"`** - belt-and-suspenders in `hooks/budget-enforcer.ts` for agents that somehow lack the frontmatter field. Should never fire in practice after Phase 10.1.
86
86
 
87
87
  Plus two modifiers that can override the above at spawn time:
88
88
 
@@ -108,7 +108,7 @@ Phase 11's reflector encodes these heuristics. This section documents the philos
108
108
 
109
109
  ## Integration Points
110
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.
111
+ - **`hooks/budget-enforcer.ts`** (Plan 10.1-01 Task 04) - implements the precedence chain above. `resolveTier(agent, agentDefaultTier, overrides)` is the concrete function.
112
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
113
  - **`skills/optimize/SKILL.md`** (Plan 10.1-04) - advisory command; may suggest tier moves based on telemetry + this doc's heuristics.
114
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.