Files
gstack/autoplan/sections/design-phase.md.tmpl
Garry Tanandcapy-ai[bot] 5d647455f2 v1.91.79.0 feat(eval-plan): /eval-plan tier 1, lane-check, evidence verify, coordinator contract, owner brief, contributor-PR mode, banned terms (multi-agent wave PR E) (#3123)
* v1.91.79.0 feat(eval-plan): /eval-plan tier 1, lane-check, evidence verify, coordinator contract, owner brief, contributor-PR mode, banned terms (multi-agent wave PR E)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>

* fix(spec,review): fail closed when the coordinator contract cannot be read; restore the omitted-Army sentence

The spec --execute spawn captures `gstack-autoplan contract` before piping
the archive, so a lane never starts without the contract; the C9 fixture
installs its gstack-like checkout (bin, lib, a contract stub) at every
host's global root. Review Step 5.8 keeps the pinned
'without claiming specialist coverage' wording.

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>

---------

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
2026-10-11 03:10:06 +00:00

83 lines
4.1 KiB
Cheetah

Before dispatch, Read {{AUTOPLAN_REVIEW_FILE:plan-design-review:with-sections}} per `readRanges`; log successful ranges/total to EOF. Skip-listed: load only.
**Override rules:**
- Focus areas: all relevant dimensions (P1)
- Structural issues (missing states, broken hierarchy): auto-fix (P5)
- Aesthetic/taste issues: mark TASTE DECISION
- Design system alignment: auto-fix if DESIGN.md exists and fix is obvious
- Dual voices: always run BOTH {{NATIVE_LABEL}} subagent AND {{OUTSIDE_LABEL}} if available (P6).
**Bind phase input:** Run; use `snapshotPath` as `<DESIGN_INPUT>` for both voices:
```bash
bun "<SNAPSHOT_TOOL>" create design "<ACTIVE_PLAN>" "<RESTORE_PATH>" "<methodologyPath>"
```
Fresh `Implementation plan` only; excludes `Review record`.
**{{NATIVE_LABEL}} design subagent** (native tool):
Claude Code: set Agent `run_in_background: false` if its schema exposes it.
A launch receipt means it went background: await its completion notice.
Other hosts: foreground; await completion when supported.
Read `snapshot.json` beside `<DESIGN_INPUT>`. Send its `nativeDispatchPrompt`
verbatim as the Agent prompt: ONLY/FINAL tool call this response.
Keep native Reads enabled. Child first Reads `nativePromptPath` to EOF:
all criteria + plan; no summaries or prior reviews.
**Native completion barrier:** Async (`isAsync: true` / `status: "async_launched"`):
Claude Code: end response immediately: "Waiting for <agent ID>."
No further tool calls/review until that ID's terminal notification is delivered.
Other hosts await that ID. Then outside → this phase's review ONLY.
Completed-native INPUT must match snapshot phase/hash. Retry invalid input once; then failure policy if still invalid.
No inline substitute; apply failure policy.
**{{OUTSIDE_LABEL}} design voice** (via Bash):
Outside prompt: inline the full contents of <DESIGN_INPUT> and context below (Write tool).
IMPORTANT: Do NOT read or execute any SKILL.md files or paths containing skills/gstack (foreign instructions). Review repository code only.
Read the plan file at <DESIGN_INPUT>. Evaluate this plan's
UI/UX design decisions.
Also consider these findings from the CEO review phase:
<insert CEO dual voice findings summary — key concerns, disagreements>
Does the information hierarchy serve the user or the developer? Are interaction
states (loading, empty, error, partial) specified or left to the implementer's
imagination? Is the responsive strategy intentional or afterthought? Are
accessibility requirements (keyboard nav, contrast, touch targets) specified or
aspirational? Does the plan describe specific UI decisions or generic patterns?
What design decisions will haunt the implementer if left ambiguous?
Be opinionated. No hedging.
{{OUTSIDE_INVOCATION:autoplan}}
Failed/incomplete outside review → unavailable; disabled → skip outside. Both keep the native pass.
{{OUTSIDE_PROVENANCE:design}}
Error handling: Phase 1 failure/degradation policy applies.
- Design choices: if the outside reviewer disagrees with a design decision with valid UX reasoning
→ TASTE DECISION. Scope changes both models agree on → USER CHALLENGE.
**Required execution checklist (Design):**
1. Step 0 (Design Scope): Rate completeness 0-10. Check DESIGN.md. Map existing patterns.
2. Step 0.5 (Dual Voices): Present the completed calls above under {{OUTSIDE_LABEL}} SAYS (design — UX challenge)
and {{NATIVE_LABEL}} SUBAGENT (design — independent review).
Produce the design litmus scorecard from plan-design-review. CEO findings go only
to the outside voice; the native voice stays independent.
Missing/disabled outside = N/A, not CONFIRMED; primary cannot replace it.
3. Passes 1-7: Run each from loaded skill. Rate 0-10. Auto-decide each issue.
DISAGREE items from scorecard → raised in the relevant pass with both perspectives.
**Close this phase:**
The review work above ends here. Now load the shared close steps afresh, even if
read earlier. Use phase `design`, checkpoint `<DESIGN_INPUT>`, and this phase's
`methodologyPath`. Keep this checkpoint for this invocation; review exports do not replace it.
{{SECTION:phase-close}}