aw-ecc 1.4.32 → 1.4.47
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/plugin.json +1 -1
- package/.codex/hooks/aw-post-tool-use.sh +8 -2
- package/.codex/hooks/aw-session-start.sh +11 -4
- package/.codex/hooks/aw-stop.sh +8 -2
- package/.codex/hooks/aw-user-prompt-submit.sh +10 -2
- package/.codex/hooks.json +8 -8
- package/.cursor/INSTALL.md +7 -5
- package/.cursor/hooks/adapter.js +41 -4
- package/.cursor/hooks/after-agent-response.js +62 -0
- package/.cursor/hooks/before-submit-prompt.js +7 -1
- package/.cursor/hooks/post-tool-use-failure.js +21 -0
- package/.cursor/hooks/post-tool-use.js +39 -0
- package/.cursor/hooks/shared/aw-phase-definitions.js +53 -0
- package/.cursor/hooks/shared/aw-phase-runner.js +3 -1
- package/.cursor/hooks/subagent-start.js +22 -4
- package/.cursor/hooks/subagent-stop.js +18 -1
- package/.cursor/hooks.json +23 -2
- package/.opencode/package.json +1 -1
- package/AGENTS.md +3 -3
- package/README.md +5 -5
- package/commands/adk.md +52 -0
- package/commands/build.md +22 -9
- package/commands/deploy.md +12 -0
- package/commands/execute.md +9 -0
- package/commands/feature.md +333 -0
- package/commands/investigate.md +18 -5
- package/commands/plan.md +23 -9
- package/commands/publish.md +65 -0
- package/commands/review.md +12 -0
- package/commands/ship.md +12 -0
- package/commands/test.md +12 -0
- package/commands/verify.md +9 -0
- package/hooks/hooks.json +36 -0
- package/manifests/install-components.json +8 -0
- package/manifests/install-modules.json +83 -0
- package/manifests/install-profiles.json +7 -0
- package/package.json +1 -1
- package/scripts/ci/validate-rules.js +51 -0
- package/scripts/cursor-aw-home/hooks.json +23 -2
- package/scripts/cursor-aw-hooks/adapter.js +41 -4
- package/scripts/cursor-aw-hooks/before-submit-prompt.js +7 -1
- package/scripts/hooks/aw-usage-commit-created.js +32 -0
- package/scripts/hooks/aw-usage-post-tool-use-failure.js +56 -0
- package/scripts/hooks/aw-usage-post-tool-use.js +242 -0
- package/scripts/hooks/aw-usage-prompt-submit.js +112 -0
- package/scripts/hooks/aw-usage-session-start.js +48 -0
- package/scripts/hooks/aw-usage-stop.js +182 -0
- package/scripts/hooks/aw-usage-telemetry-send.js +84 -0
- package/scripts/hooks/cost-tracker.js +3 -23
- package/scripts/hooks/shared/aw-phase-definitions.js +53 -0
- package/scripts/hooks/shared/aw-phase-runner.js +3 -1
- package/scripts/lib/aw-hook-contract.js +2 -2
- package/scripts/lib/aw-pricing.js +306 -0
- package/scripts/lib/aw-usage-telemetry.js +472 -0
- package/scripts/lib/codex-hook-config.js +8 -8
- package/scripts/lib/cursor-hook-config.js +25 -10
- package/scripts/lib/install-targets/cursor-project.js +3 -0
- package/scripts/lib/install-targets/helpers.js +20 -3
- package/skills/aw-adk/SKILL.md +317 -0
- package/skills/aw-adk/agents/analyzer.md +113 -0
- package/skills/aw-adk/agents/comparator.md +113 -0
- package/skills/aw-adk/agents/grader.md +115 -0
- package/skills/aw-adk/assets/eval_review.html +76 -0
- package/skills/aw-adk/eval-viewer/generate_review.py +164 -0
- package/skills/aw-adk/eval-viewer/viewer.html +181 -0
- package/skills/aw-adk/evals/eval-colocated-placement.md +84 -0
- package/skills/aw-adk/evals/eval-create-agent.md +90 -0
- package/skills/aw-adk/evals/eval-create-command.md +98 -0
- package/skills/aw-adk/evals/eval-create-eval.md +89 -0
- package/skills/aw-adk/evals/eval-create-rule.md +99 -0
- package/skills/aw-adk/evals/eval-create-skill.md +97 -0
- package/skills/aw-adk/evals/eval-delete-agent.md +79 -0
- package/skills/aw-adk/evals/eval-delete-command.md +89 -0
- package/skills/aw-adk/evals/eval-delete-rule.md +86 -0
- package/skills/aw-adk/evals/eval-delete-skill.md +90 -0
- package/skills/aw-adk/evals/eval-meta-eval-coverage.md +78 -0
- package/skills/aw-adk/evals/eval-meta-eval-determinism.md +81 -0
- package/skills/aw-adk/evals/eval-meta-eval-false-pass.md +81 -0
- package/skills/aw-adk/evals/eval-score-accuracy.md +95 -0
- package/skills/aw-adk/evals/eval-type-redirect.md +68 -0
- package/skills/aw-adk/evals/evals.json +96 -0
- package/skills/aw-adk/references/artifact-wiring.md +162 -0
- package/skills/aw-adk/references/cross-ide-mapping.md +71 -0
- package/skills/aw-adk/references/eval-placement-guide.md +183 -0
- package/skills/aw-adk/references/external-resources.md +75 -0
- package/skills/aw-adk/references/getting-started.md +66 -0
- package/skills/aw-adk/references/registry-structure.md +152 -0
- package/skills/aw-adk/references/rubric-agent.md +36 -0
- package/skills/aw-adk/references/rubric-command.md +36 -0
- package/skills/aw-adk/references/rubric-eval.md +36 -0
- package/skills/aw-adk/references/rubric-meta-eval.md +132 -0
- package/skills/aw-adk/references/rubric-rule.md +36 -0
- package/skills/aw-adk/references/rubric-skill.md +36 -0
- package/skills/aw-adk/references/schemas.md +222 -0
- package/skills/aw-adk/references/template-agent.md +251 -0
- package/skills/aw-adk/references/template-command.md +279 -0
- package/skills/aw-adk/references/template-eval.md +176 -0
- package/skills/aw-adk/references/template-rule.md +119 -0
- package/skills/aw-adk/references/template-skill.md +123 -0
- package/skills/aw-adk/references/type-classifier.md +98 -0
- package/skills/aw-adk/references/writing-good-agents.md +227 -0
- package/skills/aw-adk/references/writing-good-commands.md +258 -0
- package/skills/aw-adk/references/writing-good-evals.md +271 -0
- package/skills/aw-adk/references/writing-good-rules.md +214 -0
- package/skills/aw-adk/references/writing-good-skills.md +159 -0
- package/skills/aw-adk/scripts/aggregate-benchmark.py +190 -0
- package/skills/aw-adk/scripts/lint-artifact.sh +211 -0
- package/skills/aw-adk/scripts/score-artifact.sh +179 -0
- package/skills/aw-adk/scripts/trigger-eval.py +192 -0
- package/skills/aw-build/SKILL.md +19 -2
- package/skills/aw-deploy/SKILL.md +65 -3
- package/skills/aw-design/SKILL.md +156 -0
- package/skills/aw-design/references/highrise-tokens.md +394 -0
- package/skills/aw-design/references/micro-interactions.md +76 -0
- package/skills/aw-design/references/prompt-template.md +160 -0
- package/skills/aw-design/references/quality-checklist.md +70 -0
- package/skills/aw-design/references/self-review.md +497 -0
- package/skills/aw-design/references/stitch-workflow.md +127 -0
- package/skills/aw-feature/SKILL.md +293 -0
- package/skills/aw-investigate/SKILL.md +17 -0
- package/skills/aw-plan/SKILL.md +34 -3
- package/skills/aw-publish/SKILL.md +300 -0
- package/skills/aw-publish/evals/eval-confirmation-gate.md +60 -0
- package/skills/aw-publish/evals/eval-intent-detection.md +111 -0
- package/skills/aw-publish/evals/eval-push-modes.md +67 -0
- package/skills/aw-publish/evals/eval-rules-push.md +60 -0
- package/skills/aw-publish/evals/evals.json +29 -0
- package/skills/aw-publish/references/push-modes.md +38 -0
- package/skills/aw-review/SKILL.md +88 -9
- package/skills/aw-rules-review/SKILL.md +124 -0
- package/skills/aw-rules-review/agents/openai.yaml +3 -0
- package/skills/aw-rules-review/scripts/generate-review-template.mjs +323 -0
- package/skills/aw-ship/SKILL.md +16 -0
- package/skills/aw-spec/SKILL.md +15 -0
- package/skills/aw-tasks/SKILL.md +15 -0
- package/skills/aw-test/SKILL.md +16 -0
- package/skills/aw-yolo/SKILL.md +4 -0
- package/skills/diagnose/SKILL.md +121 -0
- package/skills/diagnose/scripts/hitl-loop.template.sh +41 -0
- package/skills/finish-only-when-green/SKILL.md +265 -0
- package/skills/grill-me/SKILL.md +24 -0
- package/skills/grill-with-docs/SKILL.md +92 -0
- package/skills/grill-with-docs/adr-format.md +47 -0
- package/skills/grill-with-docs/context-format.md +67 -0
- package/skills/improve-codebase-architecture/SKILL.md +75 -0
- package/skills/improve-codebase-architecture/deepening.md +37 -0
- package/skills/improve-codebase-architecture/interface-design.md +44 -0
- package/skills/improve-codebase-architecture/language.md +53 -0
- package/skills/local-ghl-setup-from-screenshot/SKILL.md +538 -0
- package/skills/tdd/SKILL.md +115 -0
- package/skills/tdd/deep-modules.md +33 -0
- package/skills/tdd/interface-design.md +31 -0
- package/skills/tdd/mocking.md +59 -0
- package/skills/tdd/refactoring.md +10 -0
- package/skills/tdd/tests.md +61 -0
- package/skills/to-issues/SKILL.md +62 -0
- package/skills/to-prd/SKILL.md +75 -0
- package/skills/using-aw-skills/SKILL.md +170 -237
- package/skills/using-aw-skills/hooks/session-start.sh +11 -41
- package/skills/zoom-out/SKILL.md +24 -0
- package/.cursor/rules/common-agents.md +0 -53
- package/.cursor/rules/common-aw-routing.md +0 -43
- package/.cursor/rules/common-coding-style.md +0 -52
- package/.cursor/rules/common-development-workflow.md +0 -33
- package/.cursor/rules/common-git-workflow.md +0 -28
- package/.cursor/rules/common-hooks.md +0 -34
- package/.cursor/rules/common-patterns.md +0 -35
- package/.cursor/rules/common-performance.md +0 -59
- package/.cursor/rules/common-security.md +0 -33
- package/.cursor/rules/common-testing.md +0 -33
- package/.cursor/skills/api-and-interface-design/SKILL.md +0 -75
- package/.cursor/skills/article-writing/SKILL.md +0 -85
- package/.cursor/skills/aw-brainstorm/SKILL.md +0 -115
- package/.cursor/skills/aw-build/SKILL.md +0 -152
- package/.cursor/skills/aw-build/evals/build-stage-cases.json +0 -28
- package/.cursor/skills/aw-debug/SKILL.md +0 -49
- package/.cursor/skills/aw-deploy/SKILL.md +0 -101
- package/.cursor/skills/aw-deploy/evals/deploy-stage-cases.json +0 -32
- package/.cursor/skills/aw-execute/SKILL.md +0 -47
- package/.cursor/skills/aw-execute/references/mode-code.md +0 -47
- package/.cursor/skills/aw-execute/references/mode-docs.md +0 -28
- package/.cursor/skills/aw-execute/references/mode-infra.md +0 -44
- package/.cursor/skills/aw-execute/references/mode-migration.md +0 -58
- package/.cursor/skills/aw-execute/references/worker-implementer.md +0 -26
- package/.cursor/skills/aw-execute/references/worker-parallel-worker.md +0 -23
- package/.cursor/skills/aw-execute/references/worker-quality-reviewer.md +0 -23
- package/.cursor/skills/aw-execute/references/worker-spec-reviewer.md +0 -23
- package/.cursor/skills/aw-execute/scripts/build-worker-bundle.js +0 -229
- package/.cursor/skills/aw-finish/SKILL.md +0 -111
- package/.cursor/skills/aw-investigate/SKILL.md +0 -109
- package/.cursor/skills/aw-plan/SKILL.md +0 -368
- package/.cursor/skills/aw-prepare/SKILL.md +0 -118
- package/.cursor/skills/aw-review/SKILL.md +0 -118
- package/.cursor/skills/aw-ship/SKILL.md +0 -115
- package/.cursor/skills/aw-spec/SKILL.md +0 -104
- package/.cursor/skills/aw-tasks/SKILL.md +0 -138
- package/.cursor/skills/aw-test/SKILL.md +0 -118
- package/.cursor/skills/aw-verify/SKILL.md +0 -51
- package/.cursor/skills/aw-yolo/SKILL.md +0 -111
- package/.cursor/skills/browser-testing-with-devtools/SKILL.md +0 -81
- package/.cursor/skills/bun-runtime/SKILL.md +0 -84
- package/.cursor/skills/ci-cd-and-automation/SKILL.md +0 -71
- package/.cursor/skills/code-simplification/SKILL.md +0 -74
- package/.cursor/skills/content-engine/SKILL.md +0 -88
- package/.cursor/skills/context-engineering/SKILL.md +0 -74
- package/.cursor/skills/deprecation-and-migration/SKILL.md +0 -75
- package/.cursor/skills/documentation-and-adrs/SKILL.md +0 -75
- package/.cursor/skills/documentation-lookup/SKILL.md +0 -90
- package/.cursor/skills/frontend-slides/SKILL.md +0 -184
- package/.cursor/skills/frontend-slides/STYLE_PRESETS.md +0 -330
- package/.cursor/skills/frontend-ui-engineering/SKILL.md +0 -68
- package/.cursor/skills/git-workflow-and-versioning/SKILL.md +0 -75
- package/.cursor/skills/idea-refine/SKILL.md +0 -84
- package/.cursor/skills/incremental-implementation/SKILL.md +0 -75
- package/.cursor/skills/investor-materials/SKILL.md +0 -96
- package/.cursor/skills/investor-outreach/SKILL.md +0 -76
- package/.cursor/skills/market-research/SKILL.md +0 -75
- package/.cursor/skills/mcp-server-patterns/SKILL.md +0 -67
- package/.cursor/skills/nextjs-turbopack/SKILL.md +0 -44
- package/.cursor/skills/performance-optimization/SKILL.md +0 -77
- package/.cursor/skills/security-and-hardening/SKILL.md +0 -70
- package/.cursor/skills/using-aw-skills/SKILL.md +0 -290
- package/.cursor/skills/using-aw-skills/evals/skill-trigger-cases.tsv +0 -25
- package/.cursor/skills/using-aw-skills/evals/test-skill-triggers.sh +0 -171
- package/.cursor/skills/using-aw-skills/hooks/hooks.json +0 -9
- package/.cursor/skills/using-aw-skills/hooks/session-start.sh +0 -67
- package/.cursor/skills/using-platform-skills/SKILL.md +0 -163
- package/.cursor/skills/using-platform-skills/evals/platform-selection-cases.json +0 -52
- /package/.cursor/rules/{golang-coding-style.md → golang-coding-style.mdc} +0 -0
- /package/.cursor/rules/{golang-hooks.md → golang-hooks.mdc} +0 -0
- /package/.cursor/rules/{golang-patterns.md → golang-patterns.mdc} +0 -0
- /package/.cursor/rules/{golang-security.md → golang-security.mdc} +0 -0
- /package/.cursor/rules/{golang-testing.md → golang-testing.mdc} +0 -0
- /package/.cursor/rules/{kotlin-coding-style.md → kotlin-coding-style.mdc} +0 -0
- /package/.cursor/rules/{kotlin-hooks.md → kotlin-hooks.mdc} +0 -0
- /package/.cursor/rules/{kotlin-patterns.md → kotlin-patterns.mdc} +0 -0
- /package/.cursor/rules/{kotlin-security.md → kotlin-security.mdc} +0 -0
- /package/.cursor/rules/{kotlin-testing.md → kotlin-testing.mdc} +0 -0
- /package/.cursor/rules/{php-coding-style.md → php-coding-style.mdc} +0 -0
- /package/.cursor/rules/{php-hooks.md → php-hooks.mdc} +0 -0
- /package/.cursor/rules/{php-patterns.md → php-patterns.mdc} +0 -0
- /package/.cursor/rules/{php-security.md → php-security.mdc} +0 -0
- /package/.cursor/rules/{php-testing.md → php-testing.mdc} +0 -0
- /package/.cursor/rules/{python-coding-style.md → python-coding-style.mdc} +0 -0
- /package/.cursor/rules/{python-hooks.md → python-hooks.mdc} +0 -0
- /package/.cursor/rules/{python-patterns.md → python-patterns.mdc} +0 -0
- /package/.cursor/rules/{python-security.md → python-security.mdc} +0 -0
- /package/.cursor/rules/{python-testing.md → python-testing.mdc} +0 -0
- /package/.cursor/rules/{swift-coding-style.md → swift-coding-style.mdc} +0 -0
- /package/.cursor/rules/{swift-hooks.md → swift-hooks.mdc} +0 -0
- /package/.cursor/rules/{swift-patterns.md → swift-patterns.mdc} +0 -0
- /package/.cursor/rules/{swift-security.md → swift-security.mdc} +0 -0
- /package/.cursor/rules/{swift-testing.md → swift-testing.mdc} +0 -0
- /package/.cursor/rules/{typescript-coding-style.md → typescript-coding-style.mdc} +0 -0
- /package/.cursor/rules/{typescript-hooks.md → typescript-hooks.mdc} +0 -0
- /package/.cursor/rules/{typescript-patterns.md → typescript-patterns.mdc} +0 -0
- /package/.cursor/rules/{typescript-security.md → typescript-security.mdc} +0 -0
- /package/.cursor/rules/{typescript-testing.md → typescript-testing.mdc} +0 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Stitch MCP Workflow
|
|
2
|
+
|
|
3
|
+
Stitch MCP is the primary generation path. Tools live on the `user-ghl-ai` server.
|
|
4
|
+
|
|
5
|
+
## Tool reference
|
|
6
|
+
|
|
7
|
+
| Tool | Purpose |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `stitch_create-project` | One project per feature |
|
|
10
|
+
| `stitch_create-design-system` | Create Highrise token set |
|
|
11
|
+
| `stitch_apply-design-system` | Apply tokens to screens (multi-select pass) |
|
|
12
|
+
| `stitch_generate-screen` | Generate screen from prompt |
|
|
13
|
+
| `stitch_edit-screens` | Refine with instructions |
|
|
14
|
+
| `stitch_generate-variants` | Explore alternative layouts |
|
|
15
|
+
| `stitch_get-screen` | Get screenshot + HTML URLs |
|
|
16
|
+
| `stitch_get-project` | Get project details + theme |
|
|
17
|
+
| `stitch_list-screens` | List all screens in a project |
|
|
18
|
+
| `stitch_list-projects` | List all projects |
|
|
19
|
+
|
|
20
|
+
## Generation steps
|
|
21
|
+
|
|
22
|
+
1. **Create project:** `stitch_create-project` with a descriptive title. Save the numeric project ID.
|
|
23
|
+
|
|
24
|
+
2. **Create design system:**
|
|
25
|
+
```
|
|
26
|
+
stitch_create-design-system:
|
|
27
|
+
displayName: "Highrise - <feature>"
|
|
28
|
+
theme:
|
|
29
|
+
colorMode: "LIGHT"
|
|
30
|
+
headlineFont: "INTER"
|
|
31
|
+
bodyFont: "INTER"
|
|
32
|
+
labelFont: "INTER"
|
|
33
|
+
roundness: "ROUND_EIGHT"
|
|
34
|
+
customColor: "#155EEF"
|
|
35
|
+
colorVariant: "TONAL_SPOT"
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
3. **Batch screens in groups of 3–4.** Don't send all screens in one prompt — Stitch drops quality beyond 3 per batch. Use `designs/SCREEN_PLAN.md` to group by flow (e.g., onboarding batch, list+detail batch, settings batch).
|
|
39
|
+
|
|
40
|
+
4. **Generate primary screen first** using the full prompt template (`references/prompt-template.md`). Use `deviceType: "DESKTOP"` and `modelId: "GEMINI_3_FLASH"` — it's the default because Pro regularly exceeds the ~70s MCP timeout. Flash returns in ~20–40s with quality that is more than good enough for the Highrise token set. Only switch to `GEMINI_3_1_PRO` for a specific screen if Flash output is visibly weak after one edit pass.
|
|
41
|
+
|
|
42
|
+
5. **Extract theme** via `stitch_get-project`. Document exact hex values returned — feed them into all remaining prompts.
|
|
43
|
+
|
|
44
|
+
6. **Generate remaining screens** in batches, using the extracted theme.
|
|
45
|
+
|
|
46
|
+
7. **Multi-select theme pass.** Once all screens exist, select all and apply `stitch_apply-design-system` with the asset ID from step 2. This is the single most important step for visual consistency — a single prompt fixes what would otherwise take dozens of edits.
|
|
47
|
+
|
|
48
|
+
8. **Generate state variants** using the prompt additions in `references/prompt-template.md`.
|
|
49
|
+
|
|
50
|
+
9. **Download HTML + screenshots** for each screen via `stitch_get-screen`.
|
|
51
|
+
|
|
52
|
+
## Responsive generation strategy
|
|
53
|
+
|
|
54
|
+
Stitch's `deviceType` parameter is the canvas the AI designs for (MOBILE / TABLET / DESKTOP / AGNOSTIC), but the generated HTML can and must include CSS media queries for all four breakpoints.
|
|
55
|
+
|
|
56
|
+
**Default: generate at `DESKTOP`.** The prompt template already demands mobile-first media queries inside the HTML, so a single DESKTOP generation typically produces all breakpoints when the prompt is followed.
|
|
57
|
+
|
|
58
|
+
**Generate a separate MOBILE screen** when the mobile UX is genuinely different — not just reflowed. Common triggers:
|
|
59
|
+
|
|
60
|
+
- Data tables that should collapse to card-per-row rather than scroll horizontally
|
|
61
|
+
- Multi-step flows where desktop uses a sidebar but mobile uses a full-screen wizard
|
|
62
|
+
- Dashboards where mobile needs a totally different information hierarchy
|
|
63
|
+
|
|
64
|
+
When generating the MOBILE variant, prompt Stitch explicitly: "This is the mobile companion to [desktop screen]. Use the same tokens and design system. [describe the mobile-specific layout]."
|
|
65
|
+
|
|
66
|
+
**Verify responsive in QA**, not just accept it:
|
|
67
|
+
|
|
68
|
+
1. Open the generated HTML in a browser
|
|
69
|
+
2. Resize the viewport through all four breakpoints (320, 768, 1024, 1440)
|
|
70
|
+
3. Confirm:
|
|
71
|
+
- Sidebar collapses/hides at the right widths
|
|
72
|
+
- Tables don't overflow the viewport
|
|
73
|
+
- Modals go full-screen on mobile
|
|
74
|
+
- Touch targets are ≥44×44px at mobile size
|
|
75
|
+
- No horizontal scroll on the body at any width
|
|
76
|
+
|
|
77
|
+
If any breakpoint is broken, use `stitch_edit-screens` with an explicit fix instruction like "Add mobile breakpoint: at max-width 767px, hide sidebar and replace with hamburger drawer. Stack metric cards vertically." Do NOT regenerate — that wastes quota.
|
|
78
|
+
|
|
79
|
+
## Model selection
|
|
80
|
+
|
|
81
|
+
Two models are available:
|
|
82
|
+
|
|
83
|
+
| Model | Typical time | When to use |
|
|
84
|
+
|---|---|---|
|
|
85
|
+
| `GEMINI_3_FLASH` (default) | 20–40s | All screens and state variants — fits comfortably inside the ~70s MCP timeout |
|
|
86
|
+
| `GEMINI_3_1_PRO` | 30–90s+ | Only when a specific Flash screen comes out visibly weak and an edit pass didn't fix it. Expect timeouts — follow the polling procedure below. |
|
|
87
|
+
|
|
88
|
+
Pro regularly exceeds the client timeout and rarely delivers a visible quality gain for Highrise-constrained output. Default to Flash; escalate per-screen only when needed.
|
|
89
|
+
|
|
90
|
+
## Timeouts
|
|
91
|
+
|
|
92
|
+
Even on Flash, occasional screens take longer than the client timeout. Treat a timeout as "still running, not failed" — don't fall back to HTML until you've actually confirmed failure.
|
|
93
|
+
|
|
94
|
+
### When a `stitch_generate-screen` call times out
|
|
95
|
+
|
|
96
|
+
1. **Wait and poll** — the screen is likely still generating server-side. Do NOT retry the generate call (that wastes a request from the 350/month quota). Instead:
|
|
97
|
+
- Call `stitch_list-screens` with the `projectId` to see if the screen appeared
|
|
98
|
+
- If present, call `stitch_get-screen` to fetch the result
|
|
99
|
+
- Poll every 20–30s for up to 2 minutes on Flash, or 3 minutes on Pro, before treating it as a real failure
|
|
100
|
+
|
|
101
|
+
2. **If still not present after the poll window** — retry once with the same model. If that also times out, retry with a simpler prompt (drop non-essential sections) on Flash.
|
|
102
|
+
|
|
103
|
+
3. **If the simplified retry also errors** — document the failure (include the prompt and error), then fall back to the HTML path for that specific screen. Other screens in the batch can still use Stitch.
|
|
104
|
+
|
|
105
|
+
### Rate limit reminder
|
|
106
|
+
|
|
107
|
+
350 generate requests/month across the workspace. Timeouts still consume quota on the server side even if your client times out. Prefer `stitch_edit-screens` over regenerating for small changes.
|
|
108
|
+
|
|
109
|
+
## HTML fallback path
|
|
110
|
+
|
|
111
|
+
Only when Stitch is truly unavailable (tools missing, confirmed failure, or user opts out):
|
|
112
|
+
|
|
113
|
+
- Write self-contained HTML files with embedded `<style>` block
|
|
114
|
+
- Use CSS custom properties in `:root` for all tokens (enables `.dark` class swap)
|
|
115
|
+
- Include the full micro-interactions CSS from `references/micro-interactions.md`
|
|
116
|
+
- Include responsive media queries at 768px, 1024px, 1280px
|
|
117
|
+
- Same prompt template shapes the structure — you're implementing it directly instead of sending it to Stitch
|
|
118
|
+
|
|
119
|
+
## Iterating on feedback
|
|
120
|
+
|
|
121
|
+
| Feedback type | Stitch action | HTML action |
|
|
122
|
+
|---|---|---|
|
|
123
|
+
| Targeted fix ("make sidebar narrower") | `stitch_edit-screens` with specific instructions | Edit the HTML/CSS directly |
|
|
124
|
+
| Want alternatives | `stitch_generate-variants` from the source screen | Generate a second version |
|
|
125
|
+
| Major rethink | `stitch_generate-screen` with revised prompt | Rewrite from scratch |
|
|
126
|
+
|
|
127
|
+
After edits, re-enter step 6 of the skill (`references/self-review.md`) — do not just spot-check. Any change can regress a Track A deterministic gate. Update affected state variants if layout changed.
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aw-feature
|
|
3
|
+
description: Phase-by-phase feature development orchestrator. Guides users through 18 SDLC phases from repo setup to production, composing existing AW stage skills. Pauses at each phase for user direction.
|
|
4
|
+
trigger: User invokes /aw:feature or asks for guided feature development, step-by-step feature workflow, or phase-by-phase development.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# AW Feature — Guided SDLC Orchestrator
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
`aw-feature` is a **guided orchestrator** that walks users through 18 SDLC phases. Unlike `aw-yolo` (autonomous end-to-end), this skill pauses at every phase boundary to ask the user whether to proceed, refine, or skip. It composes existing stage skills — it never reimplements their logic.
|
|
12
|
+
|
|
13
|
+
The primary audience is **PMs, designers, and engineers** who want a structured workflow without needing to know which `/aw:*` commands to invoke in which order.
|
|
14
|
+
|
|
15
|
+
## When to Use
|
|
16
|
+
|
|
17
|
+
- User wants to develop a feature end-to-end with guidance
|
|
18
|
+
- User is non-technical and needs the system to guide them through SDLC stages
|
|
19
|
+
- User wants a structured checklist that prevents skipping important phases
|
|
20
|
+
- User says "feature", "guided flow", "step by step", "walk me through"
|
|
21
|
+
|
|
22
|
+
## When Not to Use
|
|
23
|
+
|
|
24
|
+
- User knows exactly which stage they need → use the specific `/aw:*` command
|
|
25
|
+
- User wants autonomous end-to-end execution → use `aw-yolo` internally
|
|
26
|
+
- User is doing a bug fix (too lightweight for 18 phases) → use `/aw:investigate` + `/aw:build`
|
|
27
|
+
- User only needs one phase (e.g., just planning) → use `/aw:plan` directly
|
|
28
|
+
|
|
29
|
+
## Workflow
|
|
30
|
+
|
|
31
|
+
### Step 1: Show the roadmap and stop
|
|
32
|
+
|
|
33
|
+
The very first response after invocation is always the 18-phase roadmap, a note on which phases would be auto-skipped (with reasons), and a suggested starting phase. Nothing else — no file creation, no code, no planning. Wait for the user to say where to start.
|
|
34
|
+
|
|
35
|
+
### Step 2: Initialize (after user confirms)
|
|
36
|
+
|
|
37
|
+
1. Parse `$ARGUMENTS` to derive a feature title and slug
|
|
38
|
+
2. Create `.aw_docs/features/<slug>/` directory
|
|
39
|
+
3. Create `state.json` with all 18 phases set to `pending` (mark auto-skipped ones as `skipped`)
|
|
40
|
+
|
|
41
|
+
### Step 3: Smart Entry Detection
|
|
42
|
+
|
|
43
|
+
Auto-skip signals (always announce each one):
|
|
44
|
+
- Already in a git repo → skip Phase 1
|
|
45
|
+
- Onboarding artifact exists (`CLAUDE.md`, `AGENTS.md`, `.cursor/rules/`, or `.codex/AGENTS.md`) → skip Phase 2
|
|
46
|
+
- Planning artifacts exist → skip relevant planning phases
|
|
47
|
+
- Implementation exists → suggest starting at testing phase
|
|
48
|
+
- PR exists → suggest starting at PR checks phase
|
|
49
|
+
|
|
50
|
+
### Step 4: Execute Current Phase
|
|
51
|
+
|
|
52
|
+
For each phase:
|
|
53
|
+
|
|
54
|
+
1. **Announce** — Show phase header with plain-language explanation
|
|
55
|
+
2. **Load backing skill** — Read the SKILL.md for the delegated skill
|
|
56
|
+
3. **Execute** — Run the skill's workflow within its contract
|
|
57
|
+
4. **Update state.json** — Write the phase status immediately. This is the only way to resume across sessions. Do this BEFORE showing the completion message.
|
|
58
|
+
5. **Show output** — Summarize what was produced
|
|
59
|
+
6. **Pause** — Ask user to proceed, refine, or skip
|
|
60
|
+
|
|
61
|
+
When the backing stage writes a canonical Markdown artifact, include the generated `.aw_docs/features/<feature_slug>/<artifact_basename>.html` companion in the output summary. Markdown-only is allowed only when the user explicitly requests it for this run.
|
|
62
|
+
|
|
63
|
+
### Step 4: Handle User Navigation
|
|
64
|
+
|
|
65
|
+
| User says | Action |
|
|
66
|
+
|---|---|
|
|
67
|
+
| "next" | Mark current phase done, advance to next pending phase |
|
|
68
|
+
| "skip" | Ask for reason, log it, mark as skipped, advance |
|
|
69
|
+
| "refine" | Re-enter current phase with additional context |
|
|
70
|
+
| "phase N" | Jump to Phase N (mark intervening phases as skipped with note) |
|
|
71
|
+
| "status" | Show progress tracker |
|
|
72
|
+
| "back to N" | Re-enter Phase N (mark as in_progress again) |
|
|
73
|
+
| "pause" / "stop" | Save state, show how to resume later |
|
|
74
|
+
|
|
75
|
+
### Step 5: Phase Completion
|
|
76
|
+
|
|
77
|
+
After each phase completes:
|
|
78
|
+
- Update `state.json`
|
|
79
|
+
- Show progress tracker (brief version — just the bar and current position)
|
|
80
|
+
- Prompt for next action
|
|
81
|
+
|
|
82
|
+
### Step 6: Feature Completion
|
|
83
|
+
|
|
84
|
+
When Phase 18 completes (or user says "done"):
|
|
85
|
+
```
|
|
86
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
87
|
+
AW ► FEATURE COMPLETE ✓
|
|
88
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
89
|
+
|
|
90
|
+
Feature: <title>
|
|
91
|
+
Phases completed: <N>/18 (skipped: <M>)
|
|
92
|
+
|
|
93
|
+
Artifacts:
|
|
94
|
+
- PRD: .aw_docs/features/<slug>/prd.md
|
|
95
|
+
- Spec: .aw_docs/features/<slug>/spec.md
|
|
96
|
+
- PR: <PR URL>
|
|
97
|
+
- Staging: <staging URL>
|
|
98
|
+
|
|
99
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Phase Definitions
|
|
103
|
+
|
|
104
|
+
### Phase 1: Repo Setup
|
|
105
|
+
**What:** Clone the right repo from a screenshot or URL.
|
|
106
|
+
**Skill:** `local-ghl-setup-from-screenshot`
|
|
107
|
+
**Plain language:** "First, let's make sure you have the right code on your machine."
|
|
108
|
+
**Auto-skip when:** Already inside a git repository.
|
|
109
|
+
|
|
110
|
+
### Phase 2: Codebase Onboarding
|
|
111
|
+
**What:** Understand the repo's architecture, conventions, and entry points.
|
|
112
|
+
**Skill:** `codebase-onboarding`
|
|
113
|
+
**Plain language:** "Let me quickly understand how this codebase is organized."
|
|
114
|
+
**Auto-skip when:** A harness-level onboarding artifact already exists (`CLAUDE.md`, `AGENTS.md`, `.cursor/rules/`, or `.codex/AGENTS.md`).
|
|
115
|
+
|
|
116
|
+
### Phase 3: Requirements
|
|
117
|
+
**What:** A conversation to understand the feature before writing anything.
|
|
118
|
+
**Skill:** `aw-plan` (product mode — requirements gathering only)
|
|
119
|
+
**Plain language:** "Let's nail down exactly what this feature needs to do."
|
|
120
|
+
**Behavior:** This phase is a back-and-forth dialogue. Ask about scope, users, success criteria, edge cases, and constraints. Listen to the answers, then follow up on anything unclear. Keep the conversation going until you genuinely understand what to build and how you'd know it's done — then write `requirements.md`.
|
|
121
|
+
|
|
122
|
+
### Phase 4: PRD
|
|
123
|
+
**What:** Write a structured product requirements document from Phase 3 outputs.
|
|
124
|
+
**Skill:** `aw-plan` (product mode — document generation)
|
|
125
|
+
**Plain language:** "Now I'll write up the requirements so everyone's on the same page."
|
|
126
|
+
**Auto-skip when:** `prd.md` already exists for this feature.
|
|
127
|
+
|
|
128
|
+
### Phase 5: Design
|
|
129
|
+
**What:** Explore design options, make UX/UI decisions. Generate HTML prototype screens for frontend features.
|
|
130
|
+
**Skill:** `aw-design`
|
|
131
|
+
**Plain language:** "Let's figure out how this should look and work for users."
|
|
132
|
+
**Suggest skip when:** Backend-only feature with no UI component.
|
|
133
|
+
|
|
134
|
+
### Phase 6: Technical Spec
|
|
135
|
+
**What:** Architecture decisions, API impact, data model changes.
|
|
136
|
+
**Skill:** `aw-plan` (technical mode)
|
|
137
|
+
**Plain language:** "Time to plan the technical approach — what to build and how."
|
|
138
|
+
**Auto-skip when:** `spec.md` already exists for this feature.
|
|
139
|
+
|
|
140
|
+
### Phase 7: Task Breakdown
|
|
141
|
+
**What:** Break implementation into ordered, phased tasks.
|
|
142
|
+
**Skill:** `aw-plan` (tasks mode)
|
|
143
|
+
**Plain language:** "Breaking the work into small, manageable steps."
|
|
144
|
+
**Auto-skip when:** `tasks.md` already exists for this feature.
|
|
145
|
+
|
|
146
|
+
### Phase 8: Build
|
|
147
|
+
**What:** Implement code in thin, reversible slices.
|
|
148
|
+
**Skill:** `aw-build` (code mode) + `incremental-implementation`
|
|
149
|
+
**Plain language:** "Building the feature, one piece at a time."
|
|
150
|
+
**Behavior:** After each meaningful slice, pause and show progress. This is the longest phase.
|
|
151
|
+
|
|
152
|
+
### Phase 9: Tests
|
|
153
|
+
**What:** Write and run unit/integration tests.
|
|
154
|
+
**Skill:** `aw-test` (feature mode) + `tdd-workflow`
|
|
155
|
+
**Plain language:** "Writing tests to make sure everything works correctly."
|
|
156
|
+
|
|
157
|
+
### Phase 10: Self-Review
|
|
158
|
+
**What:** Automated code quality, correctness, and architecture review.
|
|
159
|
+
**Skill:** `aw-review` (findings mode)
|
|
160
|
+
**Plain language:** "Reviewing the code for quality, bugs, and best practices."
|
|
161
|
+
|
|
162
|
+
### Phase 11: Debug & Fix
|
|
163
|
+
**What:** Fix issues found in tests or review.
|
|
164
|
+
**Skill:** `aw-investigate` + `aw-build`
|
|
165
|
+
**Plain language:** "Fixing the issues we found in testing and review."
|
|
166
|
+
**Auto-skip when:** Phase 9 and Phase 10 found no issues.
|
|
167
|
+
|
|
168
|
+
### Phase 12: Docs & i18n
|
|
169
|
+
**What:** Update documentation and add translation strings.
|
|
170
|
+
**Skill:** `aw-build` (docs mode)
|
|
171
|
+
**Plain language:** "Updating docs and making sure text is translatable."
|
|
172
|
+
**Suggest skip when:** No user-facing strings changed and no public API changed.
|
|
173
|
+
|
|
174
|
+
### Phase 13: Platform Specialists
|
|
175
|
+
**What:** Security, performance, accessibility, and domain-specific reviews.
|
|
176
|
+
**Skill:** `aw-review` (governance mode) + `using-platform-skills`
|
|
177
|
+
**Plain language:** "Getting specialist reviews — security, performance, accessibility."
|
|
178
|
+
|
|
179
|
+
### Phase 14: Setup Audit (HARD GATE)
|
|
180
|
+
**What:** Verify lint, types, build, and full test suite pass.
|
|
181
|
+
**Skill:** `aw-test` (release mode) + `verification-loop`
|
|
182
|
+
**Plain language:** "Final check — making sure everything compiles and all tests pass."
|
|
183
|
+
**Hard gate:** Must pass before PR creation. Cannot be skipped.
|
|
184
|
+
|
|
185
|
+
### Phase 15: PR Creation
|
|
186
|
+
**What:** Create a pull request with summary and test plan.
|
|
187
|
+
**Skill:** `aw-deploy` (pr mode)
|
|
188
|
+
**Plain language:** "Creating a pull request so the team can review your changes."
|
|
189
|
+
|
|
190
|
+
### Phase 16: PR Checks & Fixes (AUTOMATIC)
|
|
191
|
+
**What:** Resolve merge conflicts, fix CI warnings, lint errors, and type issues.
|
|
192
|
+
**Skill:** `aw-build` + `aw-review`
|
|
193
|
+
**Plain language:** "Checking the PR for merge conflicts and warnings, then fixing them automatically."
|
|
194
|
+
**Hard gate:** Cannot be skipped.
|
|
195
|
+
|
|
196
|
+
**Three-step automatic sequence:**
|
|
197
|
+
|
|
198
|
+
1. **Merge Conflict Detection & Resolution**
|
|
199
|
+
- Fetch and attempt merge with target branch (detect base from PR, default to `main`)
|
|
200
|
+
- If conflicts exist: identify conflicting files, resolve intelligently, show each resolution to user, commit
|
|
201
|
+
- If conflict involves business logic (not just formatting/imports): pause and ask user for the correct resolution
|
|
202
|
+
|
|
203
|
+
2. **CI / Lint / Type Fixes**
|
|
204
|
+
- Check PR status for failing checks, lint warnings, type errors
|
|
205
|
+
- Fix automatically, push to PR branch
|
|
206
|
+
|
|
207
|
+
3. **Final Verification**
|
|
208
|
+
- Confirm no remaining conflicts, all checks passing
|
|
209
|
+
- If still failing after fixes, report what's left and ask user for direction
|
|
210
|
+
|
|
211
|
+
### Phase 17: Staging Deploy
|
|
212
|
+
**What:** Deploy to staging environment and provide staging link.
|
|
213
|
+
**Skill:** `aw-deploy` (staging mode)
|
|
214
|
+
**Plain language:** "Deploying to staging so you can test it in a real environment."
|
|
215
|
+
|
|
216
|
+
### Phase 18: Production & Closeout
|
|
217
|
+
**What:** Production deployment, rollback readiness, release notes.
|
|
218
|
+
**Skill:** `aw-ship`
|
|
219
|
+
**Plain language:** "Final step — deploying to production and closing out the release."
|
|
220
|
+
|
|
221
|
+
## State File Contract (MANDATORY — write at every phase boundary)
|
|
222
|
+
|
|
223
|
+
**You MUST update this file after every phase transition.** This is the only way to resume across sessions. If you skip this, the user loses all progress.
|
|
224
|
+
|
|
225
|
+
**Keep it minimal** — do not add extra fields. The format is intentionally small so it's fast to write and survives context window limits:
|
|
226
|
+
|
|
227
|
+
```json
|
|
228
|
+
{
|
|
229
|
+
"feature_slug": "contacts-export-button",
|
|
230
|
+
"feature_title": "Build a contacts export button",
|
|
231
|
+
"command": "aw:feature",
|
|
232
|
+
"current_phase": 5,
|
|
233
|
+
"phases": {
|
|
234
|
+
"1": "done",
|
|
235
|
+
"2": "done",
|
|
236
|
+
"3": "done",
|
|
237
|
+
"4": "done",
|
|
238
|
+
"5": "in_progress"
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Phase values: `"done"`, `"in_progress"`, `"skipped"`, `"pending"`
|
|
244
|
+
|
|
245
|
+
**Write trigger:** Immediately after a phase completes or is skipped, before showing the pause prompt. Use the Write tool — do not defer or batch.
|
|
246
|
+
|
|
247
|
+
## Human HTML Companion
|
|
248
|
+
|
|
249
|
+
`aw-feature` delegates HTML generation to the backing stage skills.
|
|
250
|
+
Markdown remains canonical for agents, while TeamOfOne-readable HTML companions are produced by the `aw:echo` subagent for planning, build, test, review, deploy, and ship artifacts when output mode is `dual` or `html`.
|
|
251
|
+
HTML sidecars are required phase outputs, not advisory metadata. Invoking `/aw:feature` in default `dual` mode is explicit authorization to spawn exactly one `aw:echo` subagent per artifact-producing phase for HTML companion generation.
|
|
252
|
+
Each artifact-producing phase must produce the colocated `.html` sidecar before its final phase handoff unless the user explicitly asks not to wait. If the harness still cannot spawn `aw:echo`, create a conservative self-contained fallback HTML sidecar in the same turn using the `aw:echo` safety and design contract, record `generated_fallback` plus the blocker, and keep Markdown canonical.
|
|
253
|
+
|
|
254
|
+
## Common Rationalizations
|
|
255
|
+
|
|
256
|
+
| Rationalization | Reality |
|
|
257
|
+
|---|---|
|
|
258
|
+
| "The user said next so I can rush through" | "Next" means advance ONE phase, then pause again |
|
|
259
|
+
| "This phase doesn't apply, I'll skip silently" | Always announce skips with a reason |
|
|
260
|
+
| "I'll do phases 8-10 in one go since they're related" | Each phase gets its own announcement, execution, and pause |
|
|
261
|
+
| "The user is technical, they don't need the plain-language explanation" | Always show the explanation — it costs nothing and helps tracking |
|
|
262
|
+
| "Phase 16 needs user input for each fix" | Phase 16 is automatic — fix and push without asking unless a decision is needed |
|
|
263
|
+
| "I can skip the progress tracker, the user knows where we are" | Always show progress at phase boundaries |
|
|
264
|
+
|
|
265
|
+
## Red Flags
|
|
266
|
+
|
|
267
|
+
- Advancing to the next phase without the user saying "next" or equivalent
|
|
268
|
+
- Skipping a phase without announcing it
|
|
269
|
+
- Running more than one phase in a single response without pausing between them
|
|
270
|
+
- Reimplementing logic that belongs in a backing skill (e.g., writing test code instead of loading `aw-test`)
|
|
271
|
+
- Showing the progress tracker without phase status symbols
|
|
272
|
+
- Letting Phase 15 (PR Creation) proceed when Phase 14 (Setup Audit) hasn't passed
|
|
273
|
+
|
|
274
|
+
## Verification
|
|
275
|
+
|
|
276
|
+
- [ ] All 18 phases are defined with backing skills
|
|
277
|
+
- [ ] Every phase pauses for user input before advancing
|
|
278
|
+
- [ ] Auto-skips are announced with reasons
|
|
279
|
+
- [ ] Hard gates (Phase 14, 16) cannot be bypassed
|
|
280
|
+
- [ ] Progress tracker uses correct status symbols (✓ ► ○ ⊘)
|
|
281
|
+
- [ ] State.json is updated after every phase transition
|
|
282
|
+
- [ ] Plain-language descriptions are shown for every phase
|
|
283
|
+
- [ ] HTML companion status is shown when a phase produced a stage artifact
|
|
284
|
+
|
|
285
|
+
## Final Output Shape
|
|
286
|
+
|
|
287
|
+
At each phase boundary, always include:
|
|
288
|
+
- `Phase` — current phase number and name
|
|
289
|
+
- `Status` — what was produced or decided
|
|
290
|
+
- `Progress` — visual progress bar + X/18
|
|
291
|
+
- `HTML Companion` — generated path when the phase produced a stage artifact, or explicit Markdown-only skip
|
|
292
|
+
- `Next` — what the next phase is and a plain-language description
|
|
293
|
+
- `Prompt` — ask user to proceed, refine, or skip
|
|
@@ -26,6 +26,7 @@ Do not use once the cause is already clear and implementation is ready.
|
|
|
26
26
|
Record the trigger, expected behavior, actual behavior, and current blast radius.
|
|
27
27
|
2. Reproduce or isolate.
|
|
28
28
|
Use `aw-debug` and `../../references/debug-triage.md`.
|
|
29
|
+
Load `diagnose` when the failure is unclear, hard to reproduce, performance-related, or has already attracted speculative fixes.
|
|
29
30
|
For browser-visible issues, load `browser-testing-with-devtools`.
|
|
30
31
|
Prefer the smallest confirming probe over speculative patching.
|
|
31
32
|
3. Load the right org-standard context.
|
|
@@ -82,9 +83,23 @@ Every investigation handoff must make these things obvious:
|
|
|
82
83
|
- commands run
|
|
83
84
|
- likely fault surface
|
|
84
85
|
- open questions
|
|
86
|
+
- `html_companion_artifacts`
|
|
85
87
|
- blockers
|
|
86
88
|
- recommended next commands
|
|
87
89
|
|
|
90
|
+
## Human HTML Companion
|
|
91
|
+
|
|
92
|
+
Markdown `investigation.md` remains canonical for agents.
|
|
93
|
+
When investigate writes or materially updates `investigation.md`, also create or refresh `.aw_docs/features/<feature_slug>/investigation.html`. HTML sidecars are required stage outputs, not advisory metadata.
|
|
94
|
+
|
|
95
|
+
Delegate to the `aw:echo` subagent with the `investigation-report` profile.
|
|
96
|
+
Invoking `/aw:investigate` in default `dual` mode is explicit authorization to spawn exactly one `aw:echo` subagent for HTML companion generation; do not skip HTML only because no direct command is available.
|
|
97
|
+
Resolve output mode as: explicit user request for Markdown-only -> otherwise `dual`. `.aw_docs/config.json` and `AW_DOCS_OUTPUT_MODE` may request `dual` or `html`, but must not silently suppress required SDLC HTML sidecars.
|
|
98
|
+
|
|
99
|
+
Pass expected vs actual behavior, probes, evidence, fault surface, confidence, blockers, and next probe or repair path as the source bundle.
|
|
100
|
+
Record the colocated sidecar in `state.json` `html_companion_artifacts` with `source_path`, `html_path`, profile, status, `run_ref` when available, publish status, and any explicit Markdown-only skip or fallback reason.
|
|
101
|
+
Spawn exactly one `aw:echo` subagent and wait for the colocated `.html` sidecar before the final handoff unless the user explicitly asks not to wait. If the harness still cannot spawn `aw:echo`, create a conservative self-contained fallback HTML sidecar in the same turn using the `aw:echo` safety and design contract, record `generated_fallback` plus the blocker, and keep Markdown canonical.
|
|
102
|
+
|
|
88
103
|
## Verification
|
|
89
104
|
|
|
90
105
|
Before leaving investigate, confirm:
|
|
@@ -94,6 +109,7 @@ Before leaving investigate, confirm:
|
|
|
94
109
|
- [ ] the likely fault surface is concrete enough to guide build
|
|
95
110
|
- [ ] the next stage is clear: build, more investigation, or blocked
|
|
96
111
|
- [ ] `investigation.md` and `state.json` are updated
|
|
112
|
+
- [ ] the HTML companion file exists, or the user explicitly requested Markdown-only
|
|
97
113
|
|
|
98
114
|
## Final Output Shape
|
|
99
115
|
|
|
@@ -105,5 +121,6 @@ Always end with:
|
|
|
105
121
|
- `Evidence`
|
|
106
122
|
- `Completed Probes`
|
|
107
123
|
- `Likely Fault Surface`
|
|
124
|
+
- `HTML Companion`
|
|
108
125
|
- `Open Questions`
|
|
109
126
|
- `Next`
|
package/skills/aw-plan/SKILL.md
CHANGED
|
@@ -38,9 +38,11 @@ This legacy heading maps to the detailed planning process below.
|
|
|
38
38
|
2. Identify the feature and current artifact state.
|
|
39
39
|
Infer or honor the feature slug.
|
|
40
40
|
Detect which planning artifacts already exist and which are actually missing.
|
|
41
|
-
3.
|
|
42
|
-
|
|
41
|
+
3. Understand the problem before planning it.
|
|
42
|
+
In `product` mode, start by having a conversation with the user. Think of it like a PM sitting down with a stakeholder — ask about scope, target users, success criteria, edge cases, and constraints. Listen to the answers. Follow up on anything vague. Keep going until the problem is genuinely clear. Only then move to writing artifacts.
|
|
43
|
+
In other modes, decide whether the request is already clear enough for direct planning or needs discovery first.
|
|
43
44
|
For raw concepts or product-shaping work, load `idea-refine` before freezing the direction.
|
|
45
|
+
Use `grill-with-docs` when the request is fuzzy, domain-language-heavy, high-impact, or likely to hide edge cases. It is a precision tool, not a mandatory prelude for every plan.
|
|
44
46
|
4. Plan in dependency order.
|
|
45
47
|
Perform an explicit architecture review before freezing the technical path.
|
|
46
48
|
Name the key assumptions, constraints, risks, and mitigations instead of leaving them implied.
|
|
@@ -50,6 +52,7 @@ This legacy heading maps to the detailed planning process below.
|
|
|
50
52
|
For major architectural or public-behavior decisions, load `documentation-and-adrs`.
|
|
51
53
|
5. Slice vertically where possible.
|
|
52
54
|
Prefer end-to-end feature slices and concrete checkpoints over horizontal batch plans.
|
|
55
|
+
When a task plan needs a slice model before `tasks.md`, load `to-issues` and feed its vertical slices into `aw-tasks`; do not publish remote tracker issues unless the user explicitly requests that.
|
|
53
56
|
6. Write only the missing artifacts.
|
|
54
57
|
When technical uncertainty exists, route through `aw-spec` before `aw-tasks`.
|
|
55
58
|
Do not let task planning invent or silently repair an unresolved contract.
|
|
@@ -66,7 +69,10 @@ Use the smallest correct internal route:
|
|
|
66
69
|
|
|
67
70
|
- raw idea or under-shaped concept -> `idea-refine`, then `aw-brainstorm` when deeper repo-aware exploration is still needed
|
|
68
71
|
- fuzzy request, open design question, or overscoped feature -> `aw-brainstorm`
|
|
72
|
+
- domain-language-heavy or edge-case-heavy planning -> `grill-with-docs`
|
|
73
|
+
- product/full mode or missing product assumptions -> `to-prd`
|
|
69
74
|
- approved direction but missing technical contract -> `aw-spec`
|
|
75
|
+
- PRD/spec needs implementation-ready vertical slices -> `to-issues`, then `aw-tasks`
|
|
70
76
|
- approved spec but missing execution recipe -> `aw-tasks`
|
|
71
77
|
- already execution-ready tasks -> stop and recommend `aw-build`
|
|
72
78
|
|
|
@@ -76,7 +82,7 @@ Do not collapse all of these responsibilities back into one vague planning pass.
|
|
|
76
82
|
|
|
77
83
|
| Mode | Use when | Primary outputs |
|
|
78
84
|
|---|---|---|
|
|
79
|
-
| `product` | problem, scope, or acceptance criteria are unclear | `prd.md`, `state.json` |
|
|
85
|
+
| `product` | problem, scope, or acceptance criteria are unclear — start with a conversation to understand the user's needs before writing anything | `requirements.md`, `prd.md`, `state.json` |
|
|
80
86
|
| `design` | UX behavior or interface design must be defined | `design.md`, `designs/`, `state.json` |
|
|
81
87
|
| `technical` | implementation approach or architecture must be defined | `spec.md`, `state.json` |
|
|
82
88
|
| `tasks` | implementation work needs to be broken into steps | `tasks.md`, `state.json` |
|
|
@@ -95,6 +101,28 @@ Do not collapse all of these responsibilities back into one vague planning pass.
|
|
|
95
101
|
- do not write planning artifacts to `docs/plans/`
|
|
96
102
|
- do not create random filenames
|
|
97
103
|
- do not write implementation code
|
|
104
|
+
- do not require `prd.md` for a technical request that is already clear enough for `spec.md`
|
|
105
|
+
- do not publish tracker issues from `to-issues` unless explicitly requested
|
|
106
|
+
|
|
107
|
+
## Human HTML Companion
|
|
108
|
+
|
|
109
|
+
Markdown planning artifacts remain canonical for agents.
|
|
110
|
+
When planning writes or materially updates `prd.md`, `design.md`, `spec.md`, or `tasks.md`, also create or refresh a human-readable HTML companion. HTML sidecars are required stage outputs, not advisory metadata.
|
|
111
|
+
|
|
112
|
+
Delegate to the `aw:echo` subagent for the companion instead of hand-rolling stage-local HTML.
|
|
113
|
+
`aw:echo` is not a slash command or direct tool. Invoking `/aw:plan` in default `dual` mode is explicit authorization to spawn exactly one `aw:echo` subagent for HTML companion generation; do not skip HTML only because no direct command is available.
|
|
114
|
+
Spawn exactly one `aw:echo` subagent and wait for the colocated `.html` sidecar before the final handoff unless the user explicitly asks not to wait. If the harness still cannot spawn `aw:echo`, create a conservative self-contained fallback HTML sidecar in the same turn using the `aw:echo` safety and design contract, record `generated_fallback` plus the blocker, and keep Markdown canonical.
|
|
115
|
+
Resolve output mode as: explicit user request for Markdown-only -> otherwise `dual`. `.aw_docs/config.json` and `AW_DOCS_OUTPUT_MODE` may request `dual` or `html`, but must not silently suppress required SDLC HTML sidecars.
|
|
116
|
+
|
|
117
|
+
Write each planning companion beside its canonical source: `prd.md` -> `prd.html`, `design.md` -> `design.html`, `spec.md` -> `spec.html`, and `tasks.md` -> `tasks.html`.
|
|
118
|
+
Choose the smallest correct profile for the dominant planning output:
|
|
119
|
+
|
|
120
|
+
- `prd` for product requirements
|
|
121
|
+
- `technical-spec` for technical `spec.md` or architecture-heavy `design.md`
|
|
122
|
+
- `implementation-plan` for `tasks.md` or full planning packets
|
|
123
|
+
- `impact-analysis-report` when the plan is primarily blast radius, impact, or tradeoff analysis
|
|
124
|
+
|
|
125
|
+
Pass every canonical source path that shaped each companion, then record colocated sidecars in `state.json` `html_companion_artifacts` with `source_path`, `html_path`, profile, status, `run_ref` when available, publish status, and any explicit Markdown-only skip or fallback reason.
|
|
98
126
|
|
|
99
127
|
## Plan Document Template
|
|
100
128
|
|
|
@@ -347,6 +375,7 @@ Before ending the planning stage:
|
|
|
347
375
|
6. check that file paths, type names, helper names, and commands stay consistent
|
|
348
376
|
7. confirm behavior-changing slices use explicit `RED -> GREEN -> REFACTOR` wording or explicitly justify why test-first is not meaningful
|
|
349
377
|
8. confirm the next stage can route directly to `/aw:build` and that execution mode plus review mode are clear when they can be known safely
|
|
378
|
+
9. confirm every written planning Markdown artifact has a colocated HTML sidecar, or the user explicitly requested Markdown-only
|
|
350
379
|
|
|
351
380
|
Treat this as the planning verification pass.
|
|
352
381
|
If the plan cannot survive this self-review, it is not ready for execution handoff.
|
|
@@ -382,6 +411,7 @@ When `tasks.md` is ready:
|
|
|
382
411
|
- assumptions or constraints that materially shape execution
|
|
383
412
|
- planned save-point commit policy
|
|
384
413
|
- parallel build policy and cap when parallel execution is planned
|
|
414
|
+
- `html_companion_artifacts`
|
|
385
415
|
- recommended next commands
|
|
386
416
|
|
|
387
417
|
## Final Output Shape
|
|
@@ -395,5 +425,6 @@ Always end with:
|
|
|
395
425
|
- `Phases`
|
|
396
426
|
- `Execution Readiness`
|
|
397
427
|
- `Execution Mode`
|
|
428
|
+
- `HTML Companion`
|
|
398
429
|
- `Missing`
|
|
399
430
|
- `Next`
|