@hegemonart/get-design-done 1.27.7 → 1.28.5
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 +2 -2
- package/.claude-plugin/plugin.json +2 -2
- package/CHANGELOG.md +142 -0
- package/SKILL.md +1 -1
- package/agents/design-verifier.md +17 -0
- package/hooks/gdd-decision-injector.js +149 -3
- package/package.json +1 -1
- package/reference/accessibility.md +4 -0
- package/reference/adr-format.md +96 -0
- package/reference/apply-reflections-procedure.md +68 -0
- package/reference/architecture-vocabulary.md +102 -0
- package/reference/audit-scoring.md +14 -0
- package/reference/cache-policy.md +126 -0
- package/reference/color-theory.md +279 -0
- package/reference/compare-rubric.md +171 -0
- package/reference/composition.md +349 -0
- package/reference/connections-onboarding.md +417 -0
- package/reference/context-md-format.md +106 -0
- package/reference/contrast-advanced.md +205 -0
- package/reference/darkmode-audit-procedure.md +258 -0
- package/reference/debug-feedback-loops.md +119 -0
- package/reference/design-procedure.md +304 -0
- package/reference/design-system-guidance.md +2 -0
- package/reference/discover-procedure.md +204 -0
- package/reference/explore-procedure.md +267 -0
- package/reference/form-patterns.md +2 -0
- package/reference/health-mcp-detection.md +44 -0
- package/reference/health-skill-length-report.md +69 -0
- package/reference/heuristics.md +84 -0
- package/reference/i18n.md +554 -0
- package/reference/iconography.md +2 -0
- package/reference/milestone-completeness-rubric.md +87 -0
- package/reference/motion-interpolate.md +1 -0
- package/reference/palette-catalog.md +2 -0
- package/reference/peer-cli-protocol.md +161 -0
- package/reference/plan-procedure.md +278 -0
- package/reference/proportion-systems.md +267 -0
- package/reference/registry.json +204 -1
- package/reference/registry.schema.json +1 -1
- package/reference/router-rules.md +84 -0
- package/reference/rtl-cjk-cultural.md +2 -0
- package/reference/scan-procedure.md +731 -0
- package/reference/shared-preamble.md +78 -6
- package/reference/skill-authoring-contract.md +128 -0
- package/reference/start-procedure.md +115 -0
- package/reference/style-doc-procedure.md +150 -0
- package/reference/style-vocabulary.md +2 -0
- package/reference/threat-modeling.md +101 -0
- package/reference/typography.md +4 -0
- package/reference/verify-procedure.md +512 -0
- package/reference/visual-hierarchy-layout.md +4 -0
- package/scripts/validate-skill-length.cjs +283 -0
- package/skills/add-backlog/SKILL.md +1 -0
- package/skills/analyze-dependencies/SKILL.md +33 -122
- package/skills/apply-reflections/SKILL.md +1 -40
- package/skills/audit/SKILL.md +3 -1
- package/skills/bandit-status/SKILL.md +31 -66
- package/skills/benchmark/SKILL.md +15 -55
- package/skills/brief/SKILL.md +12 -1
- package/skills/cache-manager/SKILL.md +3 -57
- package/skills/check-update/SKILL.md +38 -75
- package/skills/compare/SKILL.md +29 -269
- package/skills/complete-cycle/SKILL.md +1 -1
- package/skills/connections/SKILL.md +21 -427
- package/skills/continue/SKILL.md +1 -0
- package/skills/darkmode/SKILL.md +32 -287
- package/skills/debug/SKILL.md +11 -8
- package/skills/design/SKILL.md +27 -245
- package/skills/discover/SKILL.md +26 -133
- package/skills/discuss/SKILL.md +18 -2
- package/skills/explore/SKILL.md +42 -176
- package/skills/fast/SKILL.md +1 -0
- package/skills/figma-write/SKILL.md +2 -2
- package/skills/health/SKILL.md +11 -33
- package/skills/help/SKILL.md +1 -0
- package/skills/list-assumptions/SKILL.md +1 -0
- package/skills/map/SKILL.md +8 -31
- package/skills/new-cycle/SKILL.md +3 -1
- package/skills/next/SKILL.md +1 -0
- package/skills/note/SKILL.md +1 -0
- package/skills/optimize/SKILL.md +21 -44
- package/skills/pause/SKILL.md +1 -0
- package/skills/peer-cli-add/SKILL.md +26 -108
- package/skills/peer-cli-customize/SKILL.md +22 -42
- package/skills/peers/SKILL.md +33 -57
- package/skills/plan/SKILL.md +33 -220
- package/skills/plant-seed/SKILL.md +1 -0
- package/skills/pr-branch/SKILL.md +1 -0
- package/skills/progress/SKILL.md +1 -7
- package/skills/quality-gate/SKILL.md +34 -166
- package/skills/quick/SKILL.md +1 -0
- package/skills/reapply-patches/SKILL.md +1 -0
- package/skills/recall/SKILL.md +1 -0
- package/skills/resume/SKILL.md +1 -0
- package/skills/review-backlog/SKILL.md +1 -0
- package/skills/router/SKILL.md +3 -59
- package/skills/scan/SKILL.md +36 -675
- package/skills/settings/SKILL.md +1 -0
- package/skills/ship/SKILL.md +1 -0
- package/skills/sketch/SKILL.md +1 -1
- package/skills/sketch-wrap-up/SKILL.md +13 -54
- package/skills/spike/SKILL.md +1 -1
- package/skills/spike-wrap-up/SKILL.md +12 -46
- package/skills/start/SKILL.md +13 -112
- package/skills/stats/SKILL.md +1 -0
- package/skills/style/SKILL.md +18 -140
- package/skills/synthesize/SKILL.md +1 -0
- package/skills/timeline/SKILL.md +1 -0
- package/skills/todo/SKILL.md +1 -0
- package/skills/turn-closeout/SKILL.md +36 -56
- package/skills/undo/SKILL.md +1 -0
- package/skills/update/SKILL.md +1 -0
- package/skills/verify/SKILL.md +42 -457
- package/skills/warm-cache/SKILL.md +3 -35
- package/skills/zoom-out/SKILL.md +26 -0
|
@@ -20,6 +20,8 @@ This catalog gives design agents and the brief-stage palette picker a pre-verifi
|
|
|
20
20
|
|
|
21
21
|
**Step 4 — Adjust for brand uniqueness.** All values here are mid-point baselines. Shift the primary hue ±15°, adjust lightness ±10%, or introduce a proprietary tint to differentiate the brand. Do not use these hex values verbatim in production without at least one brand-distinguishing adjustment.
|
|
22
22
|
|
|
23
|
+
**See:** [`./color-theory.md`](./color-theory.md) §Color Harmonies for the OKLCH model that grounds these hue-shift instructions (perceptual lightness preserved across hues; sRGB ±15° distorts perceived brightness asymmetrically across yellow/blue).
|
|
24
|
+
|
|
23
25
|
**Step 5 — Verify pairing.** After choosing the palette, consult `reference/typography.md` for matching typeface pairings that reinforce the vertical's tone.
|
|
24
26
|
|
|
25
27
|
## WCAG Compliance Notes
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: peer-cli-protocol
|
|
3
|
+
type: heuristic
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
phase: 28.5
|
|
6
|
+
tags: [peer-cli, acp, asp, protocol, verification-ladder, add-peer, customize, cc-multi-cli]
|
|
7
|
+
last_updated: 2026-05-18
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
<!-- Procedural patterns adapted from greenpolo/cc-multi-cli (Apache 2.0). See ../NOTICE for full attribution. -->
|
|
11
|
+
|
|
12
|
+
# Peer-CLI Protocol — Add + Customize Procedures
|
|
13
|
+
|
|
14
|
+
Procedural reference for the peer-CLI delegation layer. Centralizes the verification
|
|
15
|
+
ladder, adapter scaffolding shape, rewire-discipline, and Windows quirks so the three
|
|
16
|
+
peer-CLI skills (`peers`, `peer-cli-add`, `peer-cli-customize`) can cross-link rather
|
|
17
|
+
than each carry the full procedure inline. See `./peer-protocols.md` for the protocol
|
|
18
|
+
shape (JSON-RPC framing, initialize handshake, error envelope); this file is the
|
|
19
|
+
procedure layer that sits above it.
|
|
20
|
+
|
|
21
|
+
## Verification ladder (run before any code edit when adding a peer)
|
|
22
|
+
|
|
23
|
+
When a user wants to add a brand-new peer to the capability matrix, walk these four
|
|
24
|
+
rungs in order. Stop at the first rung that fails — do not proceed to scaffold a broken
|
|
25
|
+
adapter.
|
|
26
|
+
|
|
27
|
+
### Rung 1 — Binary on PATH
|
|
28
|
+
|
|
29
|
+
`which <peer-binary>` (POSIX) or `where <peer-binary>` (Windows). If exit non-zero, stop
|
|
30
|
+
and ask the user to install the peer first. Adapters cannot be tested without the binary.
|
|
31
|
+
|
|
32
|
+
### Rung 2 — Handshake test
|
|
33
|
+
|
|
34
|
+
Spawn the peer with the protocol entry point:
|
|
35
|
+
|
|
36
|
+
- **ACP peers** — `<peer-binary> acp` (or whatever the peer documents — Gemini uses
|
|
37
|
+
`gemini acp`; some peers use a flag).
|
|
38
|
+
- **ASP peers** — `<peer-binary> app-server` (Codex convention; other ASP peers may
|
|
39
|
+
differ).
|
|
40
|
+
|
|
41
|
+
Send an `initialize` JSON-RPC message over stdin with `protocolVersion: '2025-06-18'`
|
|
42
|
+
(ACP) or `service_name: 'gdd_peer_delegation'` (ASP). Capture the reply on stdout. A
|
|
43
|
+
valid JSON-RPC response with `result.protocolVersion` (ACP) or `result.threadId` (ASP)
|
|
44
|
+
means the peer speaks the protocol. No valid reply within 5 seconds means either
|
|
45
|
+
wrong-protocol or non-standard entry point — stop and ask the user for the correct
|
|
46
|
+
invocation.
|
|
47
|
+
|
|
48
|
+
### Rung 3 — Model-ID `-preview`-suffix trap
|
|
49
|
+
|
|
50
|
+
Many peers expose preview models with a `-preview` suffix (e.g., `gpt-5-preview` vs
|
|
51
|
+
`gpt-5`). The suffix drifts: today's preview is tomorrow's GA. Capture the peer's model
|
|
52
|
+
list (most peers expose `<peer-binary> models` or similar) and document parent names in
|
|
53
|
+
the new entry's `provider_model_id` field so the runtime-models entry survives the
|
|
54
|
+
suffix flipping.
|
|
55
|
+
|
|
56
|
+
### Rung 4 — Windows quirks
|
|
57
|
+
|
|
58
|
+
If the peer-binary ends in `.cmd` and the user is on Windows, confirm
|
|
59
|
+
`scripts/lib/peer-cli/spawn-cmd.cjs` will pick it up. That module handles `.cmd`
|
|
60
|
+
detection per Plan 27-03 / D-04. Document any other Windows-specific quirks in the new
|
|
61
|
+
adapter's leading comment.
|
|
62
|
+
|
|
63
|
+
## Adapter scaffold shape
|
|
64
|
+
|
|
65
|
+
Use the existing five adapters at `../scripts/lib/peer-cli/adapters/{codex,gemini,cursor,copilot,qwen}.cjs`
|
|
66
|
+
as templates. Pick the closest match by protocol (ASP if `<protocol> = asp`, otherwise
|
|
67
|
+
ACP). Each adapter exports:
|
|
68
|
+
|
|
69
|
+
- `claims(role)` — boolean predicate against `ROLES_CLAIMED`.
|
|
70
|
+
- `dispatch({command, args, cwd, env}, role, text, opts)` — async dispatch with optional
|
|
71
|
+
`opts.onNotification` callback.
|
|
72
|
+
- `ROLES_CLAIMED` — array of role identifiers the peer claims.
|
|
73
|
+
- `ROLE_PREFIX` — per-role prompt prefix object (empty string when no prefix needed).
|
|
74
|
+
- `name`, `protocol` — string identifiers.
|
|
75
|
+
|
|
76
|
+
Canonical skeleton (ACP variant; for ASP swap to `createAspClient` from `asp-client.cjs`):
|
|
77
|
+
|
|
78
|
+
```js
|
|
79
|
+
'use strict';
|
|
80
|
+
const { createAcpClient } = require('../acp-client.cjs');
|
|
81
|
+
|
|
82
|
+
const ROLES_CLAIMED = ['<role-1>', '<role-2>'];
|
|
83
|
+
const ROLE_PREFIX = { '<role-1>': '', '<role-2>': '' };
|
|
84
|
+
|
|
85
|
+
function claims(role) { return ROLES_CLAIMED.includes(role); }
|
|
86
|
+
async function dispatch({ command, args, cwd, env }, role, text, opts) {
|
|
87
|
+
if (!claims(role)) throw new Error(`<peer-id> does not claim role: ${role}`);
|
|
88
|
+
const client = createAcpClient({ command, args, cwd, env });
|
|
89
|
+
try {
|
|
90
|
+
await client.initialize({ protocolVersion: '2025-06-18' });
|
|
91
|
+
return await client.prompt((ROLE_PREFIX[role] || '') + text, { onNotification: opts?.onNotification });
|
|
92
|
+
} finally { await client.close(); }
|
|
93
|
+
}
|
|
94
|
+
module.exports = { claims, dispatch, ROLES_CLAIMED, ROLE_PREFIX, name: '<peer-id>', protocol: '<protocol>' };
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Three-file footprint (peer add)
|
|
98
|
+
|
|
99
|
+
A new peer integrates cleanly with a 3-file diff plus the capability-matrix doc:
|
|
100
|
+
|
|
101
|
+
1. **`scripts/lib/peer-cli/adapters/<new-peer-id>.cjs`** — new adapter.
|
|
102
|
+
2. **`scripts/lib/install/runtimes.cjs`** — add a `peerBinary` field (platform-aware:
|
|
103
|
+
`<binary>.cmd` on Windows, plain `<binary>` elsewhere).
|
|
104
|
+
3. **`reference/peer-cli-capabilities.md`** — add a row to the capability matrix and a
|
|
105
|
+
per-peer section with the verification evidence from Rung 1–4 above.
|
|
106
|
+
4. **`scripts/lib/peer-cli/registry.cjs`** — append to `CAPABILITY_MATRIX` (and
|
|
107
|
+
`KNOWN_PEERS` if separate).
|
|
108
|
+
|
|
109
|
+
## Rewire discipline (customize)
|
|
110
|
+
|
|
111
|
+
When rewiring `delegate_to:` on a specific agent's frontmatter:
|
|
112
|
+
|
|
113
|
+
- Validate the new value against the capability matrix BEFORE editing the file. The
|
|
114
|
+
peer must exist; the role must be in the peer's `claims` list.
|
|
115
|
+
- Three frontmatter cases: field absent + add it, field present + change it, field
|
|
116
|
+
present + remove it (revert to default).
|
|
117
|
+
- Re-run `npm run validate:frontmatter` after every edit; offer to revert if it fails.
|
|
118
|
+
- The peer must also be in `.design/config.json#peer_cli.enabled_peers` for dispatch
|
|
119
|
+
to fire at runtime — but that's a runtime concern, not a frontmatter validation
|
|
120
|
+
concern.
|
|
121
|
+
|
|
122
|
+
## Verification gate (after any peer-CLI change)
|
|
123
|
+
|
|
124
|
+
Run, in order, until each passes:
|
|
125
|
+
|
|
126
|
+
1. `npx tsc --noEmit` — clean.
|
|
127
|
+
2. `node --test tests/peer-cli-registry.test.cjs tests/peer-cli-adapters.test.cjs` —
|
|
128
|
+
no regression on existing tests.
|
|
129
|
+
3. `node --test tests/reference-registry.test.cjs` — capability-matrix doc is in
|
|
130
|
+
`reference/registry.json`.
|
|
131
|
+
4. `npm run validate:frontmatter` — no agent's `delegate_to:` field is broken.
|
|
132
|
+
|
|
133
|
+
Any failure: surface the error and offer to revert.
|
|
134
|
+
|
|
135
|
+
## Edge cases
|
|
136
|
+
|
|
137
|
+
- **Peer speaks neither ACP nor ASP** — gdd v1.27 ships only those two protocols. Stop
|
|
138
|
+
and document the gap in `.design/RESEARCH.md` for a future phase.
|
|
139
|
+
- **Peer claims a role no existing peer claims** — fine, capability matrix is open. But
|
|
140
|
+
document the role in `peer-cli-capabilities.md` so future peers can compete on it.
|
|
141
|
+
- **Peer claims ALL roles** (generalist) — accept, but flag in the per-peer section.
|
|
142
|
+
Generalist peers are usually weaker than specialist peers; the bandit will sort it
|
|
143
|
+
out via measurement.
|
|
144
|
+
- **Peer-ID collides with an existing peer** — fail. Peer-IDs must be globally unique.
|
|
145
|
+
- **Rewire target peer not in capability matrix** — direct user to `peer-cli-add` first;
|
|
146
|
+
do not allow the frontmatter edit until the peer exists in the matrix.
|
|
147
|
+
- **Rewire target role peer does not claim** — refuse with a list of what the peer DOES
|
|
148
|
+
claim. Suggest a closer match when obvious.
|
|
149
|
+
|
|
150
|
+
## Cross-references
|
|
151
|
+
|
|
152
|
+
- `./peer-protocols.md` — protocol-level reference (JSON-RPC framing, handshake shape).
|
|
153
|
+
- `./peer-cli-capabilities.md` — capability matrix doc (per-peer claimed roles).
|
|
154
|
+
- `../scripts/lib/peer-cli/registry.cjs` (Plan 27-05) — capability-matrix data source.
|
|
155
|
+
- `../scripts/lib/peer-cli/adapters/*.cjs` (Plan 27-04) — adapter template.
|
|
156
|
+
- `../scripts/lib/peer-cli/spawn-cmd.cjs` (Plan 27-03) — Windows `.cmd` handling.
|
|
157
|
+
- `../scripts/lib/install/runtimes.cjs` (Plan 27-11) — `peerBinary` field per runtime.
|
|
158
|
+
- `../skills/peers/SKILL.md` — discovery surface.
|
|
159
|
+
- `../skills/peer-cli-add/SKILL.md` — add-peer flow.
|
|
160
|
+
- `../skills/peer-cli-customize/SKILL.md` — rewire flow.
|
|
161
|
+
- `../NOTICE` — Apache 2.0 attribution to greenpolo/cc-multi-cli.
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan-procedure
|
|
3
|
+
type: meta-rules
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
phase: 28.5
|
|
6
|
+
tags: [plan, procedure, extracted, pipeline-stage, research, planner, checker]
|
|
7
|
+
last_updated: 2026-05-18
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Source: extracted from `skills/plan/SKILL.md` (Phase 28.5 rework — D-10 extract-then-link).
|
|
11
|
+
The skill's load-bearing workflow stays in `../skills/plan/SKILL.md`; this file holds the
|
|
12
|
+
detail the agent reaches for when executing a specific step (agent spawn prompts, chromatic
|
|
13
|
+
scoping, synthesizer wiring, research-synthesis persistence, exploration artifact globbing).
|
|
14
|
+
|
|
15
|
+
# Plan Procedure
|
|
16
|
+
|
|
17
|
+
Detailed procedure for the get-design-done `plan` Stage 3 orchestrator. Companion to
|
|
18
|
+
`../skills/plan/SKILL.md`. Read this file when executing a specific plan step; the
|
|
19
|
+
SKILL.md keeps the load-bearing workflow + decision tree, this file holds the deep
|
|
20
|
+
agent prompts and pre-plan research wiring.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Stage entry
|
|
25
|
+
|
|
26
|
+
1. `mcp__gdd_state__transition_stage` with `to: "plan"`.
|
|
27
|
+
- Gate failure surfaces `error.context.blockers` to the user; do not advance.
|
|
28
|
+
2. `mcp__gdd_state__get` -> snapshot `state`. Use this snapshot for `<position>`, `<connections>`, `<must_haves>`, `<blockers>`, `<decisions>` in the current stage; do not re-read STATE.md directly.
|
|
29
|
+
|
|
30
|
+
Abort with a clear error only if the user is trying to plan without DESIGN-CONTEXT.md — that is the true prerequisite, not STATE.md.
|
|
31
|
+
|
|
32
|
+
## Flag Parsing
|
|
33
|
+
|
|
34
|
+
Parse $ARGUMENTS:
|
|
35
|
+
- `--auto` -> auto_mode=true (skip approvals, skip optional research)
|
|
36
|
+
- `--parallel` -> parallel_mode=true (planner fills Touches:/Parallel: fields)
|
|
37
|
+
|
|
38
|
+
## Parallelism Decision (before any multi-agent spawn)
|
|
39
|
+
|
|
40
|
+
- Read `.design/config.json` `parallelism` (or defaults from `reference/config-schema.md`).
|
|
41
|
+
- Apply rules from `reference/parallelism-rules.md`.
|
|
42
|
+
- Plan's pipeline is inherently sequential (researcher -> pattern-mapper -> planner -> checker). Expected verdict: **serial** (rule 1).
|
|
43
|
+
|
|
44
|
+
<!-- Parallelism decision is currently carried as the status string of an update_progress call. A dedicated tool may be added in a follow-on plan; until then, the status string is the canonical carrier. -->
|
|
45
|
+
|
|
46
|
+
After the parallelism decision is made:
|
|
47
|
+
- Call `mcp__gdd_state__update_progress` with `task_progress: "<current>/<total>"` and `status: "plan_parallelism_decided: batch_size=<N>, reason=<short-reason>"`.
|
|
48
|
+
|
|
49
|
+
## Probe Chromatic connection
|
|
50
|
+
|
|
51
|
+
Run at stage entry, after reading STATE.md:
|
|
52
|
+
|
|
53
|
+
Step C1 — CLI presence:
|
|
54
|
+
Bash: command -v chromatic 2>/dev/null || npx chromatic --version 2>/dev/null
|
|
55
|
+
-> found -> proceed to Step C2
|
|
56
|
+
-> not found -> chromatic: not_configured (skip all Chromatic steps)
|
|
57
|
+
|
|
58
|
+
Step C2 — Token check:
|
|
59
|
+
Bash: test -n "${CHROMATIC_PROJECT_TOKEN}"
|
|
60
|
+
-> true -> chromatic: available
|
|
61
|
+
-> false -> chromatic: unavailable
|
|
62
|
+
|
|
63
|
+
Also check: if storybook: not_configured -> chromatic effectively unavailable (emit note, do not run).
|
|
64
|
+
|
|
65
|
+
Write chromatic status to STATE.md `<connections>` via `mcp__gdd_state__probe_connections` — pass the single-entry probe result (`[{ name: "chromatic", status: "<verdict>" }]`). Do not edit `<connections>` directly.
|
|
66
|
+
|
|
67
|
+
## Chromatic Change-Risk Scoping (when chromatic: available)
|
|
68
|
+
|
|
69
|
+
Before writing DESIGN-PLAN.md, if chromatic: available:
|
|
70
|
+
1. Identify token/component files to be changed (from DESIGN-CONTEXT.md scope)
|
|
71
|
+
2. Run: Bash: npx chromatic --project-token $CHROMATIC_PROJECT_TOKEN --trace-changed=expanded --dry-run 2>&1
|
|
72
|
+
3. Parse output — count story files that depend on changed source files
|
|
73
|
+
4. Pass story count to design-planner.md (see design-planner.md Chromatic Change-Risk section)
|
|
74
|
+
If unavailable: design-planner proceeds without story-count annotation.
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Step 1 — Optional Research (skip if auto_mode)
|
|
79
|
+
|
|
80
|
+
Complexity heuristic: if DESIGN-CONTEXT.md `<domain>` spans 3+ scopes OR `<decisions>` count > 6 -> spawn design-phase-researcher. Otherwise skip.
|
|
81
|
+
|
|
82
|
+
If spawning:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
Task("design-phase-researcher", """
|
|
86
|
+
<required_reading>
|
|
87
|
+
@.design/STATE.md
|
|
88
|
+
@.design/DESIGN-CONTEXT.md
|
|
89
|
+
</required_reading>
|
|
90
|
+
|
|
91
|
+
You are the design-phase-researcher agent. Identify the project type from DESIGN-CONTEXT.md
|
|
92
|
+
and research relevant design patterns, pitfalls, and stack-specific conventions.
|
|
93
|
+
|
|
94
|
+
Output file: .design/DESIGN-RESEARCH.md
|
|
95
|
+
Target: ~100 lines, ~2 min budget.
|
|
96
|
+
|
|
97
|
+
Emit `## RESEARCH COMPLETE` when done.
|
|
98
|
+
""")
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Wait for `## RESEARCH COMPLETE`. Call `mcp__gdd_state__update_progress` with `task_progress: "1/3"` and a short `status` summary.
|
|
102
|
+
|
|
103
|
+
## Step 1.5 — Pattern Mapping (mandatory, brownfield protection)
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
Task("design-pattern-mapper", """
|
|
107
|
+
<required_reading>
|
|
108
|
+
@.design/STATE.md
|
|
109
|
+
@.design/DESIGN-CONTEXT.md
|
|
110
|
+
@reference/audit-scoring.md
|
|
111
|
+
</required_reading>
|
|
112
|
+
|
|
113
|
+
You are design-pattern-mapper. Grep the codebase for existing design patterns
|
|
114
|
+
(color tokens, spacing scale, typography conventions, component styling) and
|
|
115
|
+
write .design/DESIGN-PATTERNS.md. Classify by design concern — NOT by code
|
|
116
|
+
architecture (no controllers, services, middleware vocabulary).
|
|
117
|
+
|
|
118
|
+
Output file: .design/DESIGN-PATTERNS.md
|
|
119
|
+
Emit `## MAPPING COMPLETE` when done.
|
|
120
|
+
""")
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Wait for `## MAPPING COMPLETE`. Call `mcp__gdd_state__update_progress` with `task_progress: "1/3"` and a short `status` summary.
|
|
124
|
+
|
|
125
|
+
## Step 1.6 — Assumptions Analysis (optional, same flag as research)
|
|
126
|
+
|
|
127
|
+
If assumptions analysis enabled (skip if auto_mode):
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
Task("design-assumptions-analyzer", """
|
|
131
|
+
<required_reading>
|
|
132
|
+
@.design/STATE.md
|
|
133
|
+
@.design/DESIGN-CONTEXT.md
|
|
134
|
+
@.design/DESIGN-PATTERNS.md
|
|
135
|
+
</required_reading>
|
|
136
|
+
|
|
137
|
+
You are design-assumptions-analyzer. Surface hidden design assumptions with
|
|
138
|
+
confidence levels and evidence citations.
|
|
139
|
+
|
|
140
|
+
Emit `## ANALYSIS COMPLETE` when done.
|
|
141
|
+
""")
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Wait for `## ANALYSIS COMPLETE`.
|
|
145
|
+
|
|
146
|
+
## Step 1.7 — Synthesize pre-plan research inputs (Plan 10.1-04, D-13/D-15)
|
|
147
|
+
|
|
148
|
+
If 2+ of the pre-plan research agents ran (`design-phase-researcher` Step 1, `design-pattern-mapper` Step 1.5, `design-assumptions-analyzer` Step 1.6), invoke synthesize to merge their outputs into a single compact brief. If only one ran, skip this step.
|
|
149
|
+
|
|
150
|
+
Skill("synthesize", {
|
|
151
|
+
outputs: [
|
|
152
|
+
(if Step 1 ran) "=== from design-phase-researcher ===\n" + <read .design/DESIGN-RESEARCH.md>,
|
|
153
|
+
(if Step 1.5 ran) "=== from design-pattern-mapper ===\n" + <read .design/DESIGN-PATTERNS.md>,
|
|
154
|
+
(if Step 1.6 ran) "=== from design-assumptions-analyzer ===\n" + <read .design/DESIGN-ASSUMPTIONS.md>
|
|
155
|
+
],
|
|
156
|
+
directive: "Merge into a single compact pre-plan brief. Preserve per-source section headers so the planner can trace provenance. Consolidate duplicate recommendations with source tags. Target ~150 lines.",
|
|
157
|
+
output_shape: "markdown"
|
|
158
|
+
})
|
|
159
|
+
|
|
160
|
+
Wait for `## SYNTHESIS COMPLETE`. Write to `.design/DESIGN-PREPLAN-BRIEF.md` (overwrite if present). Add `@.design/DESIGN-PREPLAN-BRIEF.md` to the planner's `<required_reading>` in Step 2 — individual files remain on disk for drill-down.
|
|
161
|
+
|
|
162
|
+
**Parallel synthesizer note (future):** if a future plan variant spawns N parallel phase-researchers (e.g., one per project-type family), wire synthesize the same way as `skills/map/` Step 3.5.
|
|
163
|
+
|
|
164
|
+
## Research-synthesis persistence (decisions + must-haves)
|
|
165
|
+
|
|
166
|
+
When the synthesizer (design-phase-researcher / design-pattern-mapper / design-assumptions-analyzer) produces D-XX decisions and M-XX must-haves, persist each one through MCP instead of editing STATE.md directly.
|
|
167
|
+
|
|
168
|
+
For each D-XX decision the synthesizer produces:
|
|
169
|
+
- Call `mcp__gdd_state__add_decision` with `{ id: "D-XX", text: "...", status: "locked"|"tentative" }`.
|
|
170
|
+
|
|
171
|
+
For each M-XX must-have the synthesizer produces:
|
|
172
|
+
- Call `mcp__gdd_state__add_must_have` with `{ id: "M-XX", text: "...", status: "pending" }`.
|
|
173
|
+
|
|
174
|
+
Issue these sequentially. Each call is event-emitting and lockfile-safe. Parallel issuance would serialize on the STATE.md lockfile with no throughput gain.
|
|
175
|
+
|
|
176
|
+
## Step 2 — Plan
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
Task("design-planner", """
|
|
180
|
+
<required_reading>
|
|
181
|
+
@.design/STATE.md
|
|
182
|
+
@.design/DESIGN-CONTEXT.md
|
|
183
|
+
@reference/audit-scoring.md
|
|
184
|
+
@.design/DESIGN-PATTERNS.md
|
|
185
|
+
[@.design/DESIGN-RESEARCH.md — only include if research step ran]
|
|
186
|
+
[@.design/DESIGN-ASSUMPTIONS.md — only include if assumptions analysis ran]
|
|
187
|
+
[@.design/DESIGN-PREPLAN-BRIEF.md — include if Step 1.7 synthesize ran; planner prefers this compact brief over the individual files above]
|
|
188
|
+
[@.design/sketches/*/WINNER.md — include all completed sketch winners if present]
|
|
189
|
+
[@.design/spikes/*/FINDINGS.md — include all completed spike findings if present]
|
|
190
|
+
[@./.claude/skills/design-*-conventions.md — include all project-local design conventions if present]
|
|
191
|
+
[@~/.claude/gdd/global-skills/*.md — include all global skills if directory exists; global conventions inform but do not override project-local D-XX decisions]
|
|
192
|
+
</required_reading>
|
|
193
|
+
|
|
194
|
+
You are the design-planner agent. Read DESIGN-CONTEXT.md and produce .design/DESIGN-PLAN.md
|
|
195
|
+
with wave-ordered tasks, acceptance criteria, and (if parallel mode) Touches:/Parallel: fields.
|
|
196
|
+
|
|
197
|
+
Context:
|
|
198
|
+
- Pipeline stage: plan
|
|
199
|
+
- auto_mode: <true|false>
|
|
200
|
+
- parallel_mode: <true|false>
|
|
201
|
+
|
|
202
|
+
Output file: .design/DESIGN-PLAN.md
|
|
203
|
+
Format: per agents/design-planner.md Output Format section.
|
|
204
|
+
|
|
205
|
+
Emit `## PLANNING COMPLETE` when done.
|
|
206
|
+
""")
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Wait for `## PLANNING COMPLETE`. Call `mcp__gdd_state__update_progress` with `task_progress: "2/3"` and a short `status` summary.
|
|
210
|
+
|
|
211
|
+
## Step 3 — Check
|
|
212
|
+
|
|
213
|
+
```
|
|
214
|
+
Task("design-plan-checker", """
|
|
215
|
+
<required_reading>
|
|
216
|
+
@.design/STATE.md
|
|
217
|
+
@.design/DESIGN-PLAN.md
|
|
218
|
+
@.design/DESIGN-CONTEXT.md
|
|
219
|
+
</required_reading>
|
|
220
|
+
|
|
221
|
+
You are the design-plan-checker agent. Validate DESIGN-PLAN.md will achieve DESIGN-CONTEXT.md
|
|
222
|
+
brief goals across 5 dimensions: requirement coverage, task completeness, wave ordering,
|
|
223
|
+
must-have derivation, auto mode compliance.
|
|
224
|
+
|
|
225
|
+
Context:
|
|
226
|
+
- auto_mode: <true|false>
|
|
227
|
+
|
|
228
|
+
Output: structured result as response text (no file). Start with `## PLAN CHECK RESULT: PASS`
|
|
229
|
+
or `## PLAN CHECK RESULT: ISSUES FOUND`.
|
|
230
|
+
|
|
231
|
+
Emit `## PLAN CHECK COMPLETE` when done.
|
|
232
|
+
""")
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
Wait for `## PLAN CHECK COMPLETE`. Call `mcp__gdd_state__update_progress` with `task_progress: "3/3"` and a short `status` summary.
|
|
236
|
+
|
|
237
|
+
If `## PLAN CHECK RESULT: ISSUES FOUND` and any BLOCKER issues:
|
|
238
|
+
- Present issues to user and offer: (a) revise plan now — re-spawn design-planner with issue list, (b) accept and proceed, (c) abort.
|
|
239
|
+
- If auto_mode: auto-accept WARNING issues, abort on BLOCKER issues.
|
|
240
|
+
|
|
241
|
+
## Stage exit
|
|
242
|
+
|
|
243
|
+
1. Call `mcp__gdd_state__set_status` with `status: "plan_complete"`.
|
|
244
|
+
2. Call `mcp__gdd_state__checkpoint` to stamp `last_checkpoint` and finalize the plan stage.
|
|
245
|
+
|
|
246
|
+
The next stage (design) calls `mcp__gdd_state__transition_stage` on entry — this skill does NOT issue the transition itself, preserving the stage-owned-transition discipline established by brief->explore and explore->plan.
|
|
247
|
+
|
|
248
|
+
## After Completion
|
|
249
|
+
|
|
250
|
+
Print user-facing summary:
|
|
251
|
+
- Plan tasks: N waves, M total tasks
|
|
252
|
+
- Files: .design/DESIGN-PLAN.md (and .design/DESIGN-RESEARCH.md if research ran)
|
|
253
|
+
- Next: `/get-design-done:design` to execute the plan
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## Exploration artifacts & project-local conventions
|
|
258
|
+
|
|
259
|
+
When building the planner spawn prompt, also glob for:
|
|
260
|
+
- `.design/sketches/*/WINNER.md` — winning sketch rationale (informs directional tasks)
|
|
261
|
+
- `.design/spikes/*/FINDINGS.md` — spike verdicts (inform task feasibility)
|
|
262
|
+
- `./.claude/skills/design-*-conventions.md` — project-local design conventions
|
|
263
|
+
|
|
264
|
+
Include each matching file in `<files_to_read>` / `<required_reading>` so the planner sees them when creating tasks. Spike findings from `.design/spikes/` inform task feasibility; sketch winners inform directional choice; project-local conventions override defaults.
|
|
265
|
+
|
|
266
|
+
## --research mode (removed)
|
|
267
|
+
|
|
268
|
+
V2-04 deferred the `--research` flag. Rationale: complexity of an additional
|
|
269
|
+
agent spawn + Context7 integration outweighs the benefit of discover-stage
|
|
270
|
+
auto-detect for most projects. Use /discover's Auto Mode for research-assisted
|
|
271
|
+
discovery instead.
|
|
272
|
+
|
|
273
|
+
The optional research step that already exists (Step 1, triggered by complexity
|
|
274
|
+
heuristic: 3+ domain scopes OR 6+ decisions) covers the core use case without
|
|
275
|
+
a separate CLI flag.
|
|
276
|
+
|
|
277
|
+
If --research is reintroduced in a future version, define its scope in
|
|
278
|
+
ROADMAP.md V2+ and update this section.
|