aw-ecc 1.4.32 → 1.4.48

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 (259) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.cursor/INSTALL.md +7 -5
  3. package/.cursor/hooks/adapter.js +41 -4
  4. package/.cursor/hooks/after-agent-response.js +62 -0
  5. package/.cursor/hooks/before-submit-prompt.js +7 -1
  6. package/.cursor/hooks/post-tool-use-failure.js +21 -0
  7. package/.cursor/hooks/post-tool-use.js +39 -0
  8. package/.cursor/hooks/shared/aw-phase-definitions.js +53 -0
  9. package/.cursor/hooks/shared/aw-phase-runner.js +3 -1
  10. package/.cursor/hooks/subagent-start.js +22 -4
  11. package/.cursor/hooks/subagent-stop.js +18 -1
  12. package/.cursor/hooks.json +23 -2
  13. package/.opencode/package.json +1 -1
  14. package/AGENTS.md +3 -3
  15. package/README.md +5 -5
  16. package/commands/adk.md +52 -0
  17. package/commands/build.md +22 -9
  18. package/commands/deploy.md +12 -0
  19. package/commands/execute.md +9 -0
  20. package/commands/feature.md +333 -0
  21. package/commands/investigate.md +18 -5
  22. package/commands/plan.md +23 -9
  23. package/commands/publish.md +65 -0
  24. package/commands/review.md +12 -0
  25. package/commands/ship.md +12 -0
  26. package/commands/test.md +12 -0
  27. package/commands/verify.md +9 -0
  28. package/hooks/hooks.json +36 -0
  29. package/manifests/install-components.json +8 -0
  30. package/manifests/install-modules.json +83 -0
  31. package/manifests/install-profiles.json +7 -0
  32. package/package.json +2 -2
  33. package/scripts/ci/validate-rules.js +51 -0
  34. package/scripts/cursor-aw-home/hooks.json +23 -2
  35. package/scripts/cursor-aw-hooks/adapter.js +41 -4
  36. package/scripts/cursor-aw-hooks/before-submit-prompt.js +7 -1
  37. package/scripts/hooks/aw-usage-commit-created.js +32 -0
  38. package/scripts/hooks/aw-usage-post-tool-use-failure.js +56 -0
  39. package/scripts/hooks/aw-usage-post-tool-use.js +242 -0
  40. package/scripts/hooks/aw-usage-prompt-submit.js +112 -0
  41. package/scripts/hooks/aw-usage-session-start.js +48 -0
  42. package/scripts/hooks/aw-usage-stop.js +182 -0
  43. package/scripts/hooks/aw-usage-telemetry-send.js +84 -0
  44. package/scripts/hooks/cost-tracker.js +3 -23
  45. package/scripts/hooks/shared/aw-phase-definitions.js +53 -0
  46. package/scripts/hooks/shared/aw-phase-runner.js +3 -1
  47. package/scripts/lib/aw-hook-contract.js +2 -2
  48. package/scripts/lib/aw-pricing.js +306 -0
  49. package/scripts/lib/aw-usage-telemetry.js +472 -0
  50. package/scripts/lib/codex-hook-config.js +8 -8
  51. package/scripts/lib/cursor-hook-config.js +25 -10
  52. package/scripts/lib/install-targets/cursor-project.js +3 -0
  53. package/scripts/lib/install-targets/helpers.js +20 -3
  54. package/skills/aw-adk/SKILL.md +317 -0
  55. package/skills/aw-adk/agents/analyzer.md +113 -0
  56. package/skills/aw-adk/agents/comparator.md +113 -0
  57. package/skills/aw-adk/agents/grader.md +115 -0
  58. package/skills/aw-adk/assets/eval_review.html +76 -0
  59. package/skills/aw-adk/eval-viewer/generate_review.py +164 -0
  60. package/skills/aw-adk/eval-viewer/viewer.html +181 -0
  61. package/skills/aw-adk/evals/eval-colocated-placement.md +84 -0
  62. package/skills/aw-adk/evals/eval-create-agent.md +90 -0
  63. package/skills/aw-adk/evals/eval-create-command.md +98 -0
  64. package/skills/aw-adk/evals/eval-create-eval.md +89 -0
  65. package/skills/aw-adk/evals/eval-create-rule.md +99 -0
  66. package/skills/aw-adk/evals/eval-create-skill.md +97 -0
  67. package/skills/aw-adk/evals/eval-delete-agent.md +79 -0
  68. package/skills/aw-adk/evals/eval-delete-command.md +89 -0
  69. package/skills/aw-adk/evals/eval-delete-rule.md +86 -0
  70. package/skills/aw-adk/evals/eval-delete-skill.md +90 -0
  71. package/skills/aw-adk/evals/eval-meta-eval-coverage.md +78 -0
  72. package/skills/aw-adk/evals/eval-meta-eval-determinism.md +81 -0
  73. package/skills/aw-adk/evals/eval-meta-eval-false-pass.md +81 -0
  74. package/skills/aw-adk/evals/eval-score-accuracy.md +95 -0
  75. package/skills/aw-adk/evals/eval-type-redirect.md +68 -0
  76. package/skills/aw-adk/evals/evals.json +96 -0
  77. package/skills/aw-adk/references/artifact-wiring.md +162 -0
  78. package/skills/aw-adk/references/cross-ide-mapping.md +71 -0
  79. package/skills/aw-adk/references/eval-placement-guide.md +183 -0
  80. package/skills/aw-adk/references/external-resources.md +75 -0
  81. package/skills/aw-adk/references/getting-started.md +66 -0
  82. package/skills/aw-adk/references/registry-structure.md +152 -0
  83. package/skills/aw-adk/references/rubric-agent.md +36 -0
  84. package/skills/aw-adk/references/rubric-command.md +36 -0
  85. package/skills/aw-adk/references/rubric-eval.md +36 -0
  86. package/skills/aw-adk/references/rubric-meta-eval.md +132 -0
  87. package/skills/aw-adk/references/rubric-rule.md +36 -0
  88. package/skills/aw-adk/references/rubric-skill.md +36 -0
  89. package/skills/aw-adk/references/schemas.md +222 -0
  90. package/skills/aw-adk/references/template-agent.md +251 -0
  91. package/skills/aw-adk/references/template-command.md +279 -0
  92. package/skills/aw-adk/references/template-eval.md +176 -0
  93. package/skills/aw-adk/references/template-rule.md +119 -0
  94. package/skills/aw-adk/references/template-skill.md +123 -0
  95. package/skills/aw-adk/references/type-classifier.md +98 -0
  96. package/skills/aw-adk/references/writing-good-agents.md +227 -0
  97. package/skills/aw-adk/references/writing-good-commands.md +258 -0
  98. package/skills/aw-adk/references/writing-good-evals.md +271 -0
  99. package/skills/aw-adk/references/writing-good-rules.md +214 -0
  100. package/skills/aw-adk/references/writing-good-skills.md +159 -0
  101. package/skills/aw-adk/scripts/aggregate-benchmark.py +190 -0
  102. package/skills/aw-adk/scripts/lint-artifact.sh +211 -0
  103. package/skills/aw-adk/scripts/score-artifact.sh +179 -0
  104. package/skills/aw-adk/scripts/trigger-eval.py +192 -0
  105. package/skills/aw-build/SKILL.md +19 -2
  106. package/skills/aw-deploy/SKILL.md +65 -3
  107. package/skills/aw-design/SKILL.md +156 -0
  108. package/skills/aw-design/references/highrise-tokens.md +394 -0
  109. package/skills/aw-design/references/micro-interactions.md +76 -0
  110. package/skills/aw-design/references/prompt-template.md +160 -0
  111. package/skills/aw-design/references/quality-checklist.md +70 -0
  112. package/skills/aw-design/references/self-review.md +497 -0
  113. package/skills/aw-design/references/stitch-workflow.md +127 -0
  114. package/skills/aw-feature/SKILL.md +293 -0
  115. package/skills/aw-investigate/SKILL.md +17 -0
  116. package/skills/aw-plan/SKILL.md +34 -3
  117. package/skills/aw-publish/SKILL.md +300 -0
  118. package/skills/aw-publish/evals/eval-confirmation-gate.md +60 -0
  119. package/skills/aw-publish/evals/eval-intent-detection.md +111 -0
  120. package/skills/aw-publish/evals/eval-push-modes.md +67 -0
  121. package/skills/aw-publish/evals/eval-rules-push.md +60 -0
  122. package/skills/aw-publish/evals/evals.json +29 -0
  123. package/skills/aw-publish/references/push-modes.md +38 -0
  124. package/skills/aw-review/SKILL.md +88 -9
  125. package/skills/aw-rules-review/SKILL.md +124 -0
  126. package/skills/aw-rules-review/agents/openai.yaml +3 -0
  127. package/skills/aw-rules-review/scripts/generate-review-template.mjs +323 -0
  128. package/skills/aw-ship/SKILL.md +16 -0
  129. package/skills/aw-spec/SKILL.md +15 -0
  130. package/skills/aw-tasks/SKILL.md +15 -0
  131. package/skills/aw-test/SKILL.md +16 -0
  132. package/skills/aw-yolo/SKILL.md +4 -0
  133. package/skills/diagnose/SKILL.md +121 -0
  134. package/skills/diagnose/scripts/hitl-loop.template.sh +41 -0
  135. package/skills/finish-only-when-green/SKILL.md +265 -0
  136. package/skills/grill-me/SKILL.md +24 -0
  137. package/skills/grill-with-docs/SKILL.md +92 -0
  138. package/skills/grill-with-docs/adr-format.md +47 -0
  139. package/skills/grill-with-docs/context-format.md +67 -0
  140. package/skills/improve-codebase-architecture/SKILL.md +75 -0
  141. package/skills/improve-codebase-architecture/deepening.md +37 -0
  142. package/skills/improve-codebase-architecture/interface-design.md +44 -0
  143. package/skills/improve-codebase-architecture/language.md +53 -0
  144. package/skills/local-ghl-setup-from-screenshot/SKILL.md +538 -0
  145. package/skills/tdd/SKILL.md +115 -0
  146. package/skills/tdd/deep-modules.md +33 -0
  147. package/skills/tdd/interface-design.md +31 -0
  148. package/skills/tdd/mocking.md +59 -0
  149. package/skills/tdd/refactoring.md +10 -0
  150. package/skills/tdd/tests.md +61 -0
  151. package/skills/to-issues/SKILL.md +62 -0
  152. package/skills/to-prd/SKILL.md +75 -0
  153. package/skills/using-aw-skills/SKILL.md +170 -237
  154. package/skills/using-aw-skills/hooks/session-start.sh +11 -41
  155. package/skills/zoom-out/SKILL.md +24 -0
  156. package/.codex/hooks/aw-post-tool-use.sh +0 -6
  157. package/.codex/hooks/aw-pre-tool-use.sh +0 -6
  158. package/.codex/hooks/aw-session-start.sh +0 -25
  159. package/.codex/hooks/aw-stop.sh +0 -6
  160. package/.codex/hooks/aw-user-prompt-submit.sh +0 -10
  161. package/.codex/hooks.json +0 -62
  162. package/.cursor/rules/common-agents.md +0 -53
  163. package/.cursor/rules/common-aw-routing.md +0 -43
  164. package/.cursor/rules/common-coding-style.md +0 -52
  165. package/.cursor/rules/common-development-workflow.md +0 -33
  166. package/.cursor/rules/common-git-workflow.md +0 -28
  167. package/.cursor/rules/common-hooks.md +0 -34
  168. package/.cursor/rules/common-patterns.md +0 -35
  169. package/.cursor/rules/common-performance.md +0 -59
  170. package/.cursor/rules/common-security.md +0 -33
  171. package/.cursor/rules/common-testing.md +0 -33
  172. package/.cursor/skills/api-and-interface-design/SKILL.md +0 -75
  173. package/.cursor/skills/article-writing/SKILL.md +0 -85
  174. package/.cursor/skills/aw-brainstorm/SKILL.md +0 -115
  175. package/.cursor/skills/aw-build/SKILL.md +0 -152
  176. package/.cursor/skills/aw-build/evals/build-stage-cases.json +0 -28
  177. package/.cursor/skills/aw-debug/SKILL.md +0 -49
  178. package/.cursor/skills/aw-deploy/SKILL.md +0 -101
  179. package/.cursor/skills/aw-deploy/evals/deploy-stage-cases.json +0 -32
  180. package/.cursor/skills/aw-execute/SKILL.md +0 -47
  181. package/.cursor/skills/aw-execute/references/mode-code.md +0 -47
  182. package/.cursor/skills/aw-execute/references/mode-docs.md +0 -28
  183. package/.cursor/skills/aw-execute/references/mode-infra.md +0 -44
  184. package/.cursor/skills/aw-execute/references/mode-migration.md +0 -58
  185. package/.cursor/skills/aw-execute/references/worker-implementer.md +0 -26
  186. package/.cursor/skills/aw-execute/references/worker-parallel-worker.md +0 -23
  187. package/.cursor/skills/aw-execute/references/worker-quality-reviewer.md +0 -23
  188. package/.cursor/skills/aw-execute/references/worker-spec-reviewer.md +0 -23
  189. package/.cursor/skills/aw-execute/scripts/build-worker-bundle.js +0 -229
  190. package/.cursor/skills/aw-finish/SKILL.md +0 -111
  191. package/.cursor/skills/aw-investigate/SKILL.md +0 -109
  192. package/.cursor/skills/aw-plan/SKILL.md +0 -368
  193. package/.cursor/skills/aw-prepare/SKILL.md +0 -118
  194. package/.cursor/skills/aw-review/SKILL.md +0 -118
  195. package/.cursor/skills/aw-ship/SKILL.md +0 -115
  196. package/.cursor/skills/aw-spec/SKILL.md +0 -104
  197. package/.cursor/skills/aw-tasks/SKILL.md +0 -138
  198. package/.cursor/skills/aw-test/SKILL.md +0 -118
  199. package/.cursor/skills/aw-verify/SKILL.md +0 -51
  200. package/.cursor/skills/aw-yolo/SKILL.md +0 -111
  201. package/.cursor/skills/browser-testing-with-devtools/SKILL.md +0 -81
  202. package/.cursor/skills/bun-runtime/SKILL.md +0 -84
  203. package/.cursor/skills/ci-cd-and-automation/SKILL.md +0 -71
  204. package/.cursor/skills/code-simplification/SKILL.md +0 -74
  205. package/.cursor/skills/content-engine/SKILL.md +0 -88
  206. package/.cursor/skills/context-engineering/SKILL.md +0 -74
  207. package/.cursor/skills/deprecation-and-migration/SKILL.md +0 -75
  208. package/.cursor/skills/documentation-and-adrs/SKILL.md +0 -75
  209. package/.cursor/skills/documentation-lookup/SKILL.md +0 -90
  210. package/.cursor/skills/frontend-slides/SKILL.md +0 -184
  211. package/.cursor/skills/frontend-slides/STYLE_PRESETS.md +0 -330
  212. package/.cursor/skills/frontend-ui-engineering/SKILL.md +0 -68
  213. package/.cursor/skills/git-workflow-and-versioning/SKILL.md +0 -75
  214. package/.cursor/skills/idea-refine/SKILL.md +0 -84
  215. package/.cursor/skills/incremental-implementation/SKILL.md +0 -75
  216. package/.cursor/skills/investor-materials/SKILL.md +0 -96
  217. package/.cursor/skills/investor-outreach/SKILL.md +0 -76
  218. package/.cursor/skills/market-research/SKILL.md +0 -75
  219. package/.cursor/skills/mcp-server-patterns/SKILL.md +0 -67
  220. package/.cursor/skills/nextjs-turbopack/SKILL.md +0 -44
  221. package/.cursor/skills/performance-optimization/SKILL.md +0 -77
  222. package/.cursor/skills/security-and-hardening/SKILL.md +0 -70
  223. package/.cursor/skills/using-aw-skills/SKILL.md +0 -290
  224. package/.cursor/skills/using-aw-skills/evals/skill-trigger-cases.tsv +0 -25
  225. package/.cursor/skills/using-aw-skills/evals/test-skill-triggers.sh +0 -171
  226. package/.cursor/skills/using-aw-skills/hooks/hooks.json +0 -9
  227. package/.cursor/skills/using-aw-skills/hooks/session-start.sh +0 -67
  228. package/.cursor/skills/using-platform-skills/SKILL.md +0 -163
  229. package/.cursor/skills/using-platform-skills/evals/platform-selection-cases.json +0 -52
  230. /package/.cursor/rules/{golang-coding-style.md → golang-coding-style.mdc} +0 -0
  231. /package/.cursor/rules/{golang-hooks.md → golang-hooks.mdc} +0 -0
  232. /package/.cursor/rules/{golang-patterns.md → golang-patterns.mdc} +0 -0
  233. /package/.cursor/rules/{golang-security.md → golang-security.mdc} +0 -0
  234. /package/.cursor/rules/{golang-testing.md → golang-testing.mdc} +0 -0
  235. /package/.cursor/rules/{kotlin-coding-style.md → kotlin-coding-style.mdc} +0 -0
  236. /package/.cursor/rules/{kotlin-hooks.md → kotlin-hooks.mdc} +0 -0
  237. /package/.cursor/rules/{kotlin-patterns.md → kotlin-patterns.mdc} +0 -0
  238. /package/.cursor/rules/{kotlin-security.md → kotlin-security.mdc} +0 -0
  239. /package/.cursor/rules/{kotlin-testing.md → kotlin-testing.mdc} +0 -0
  240. /package/.cursor/rules/{php-coding-style.md → php-coding-style.mdc} +0 -0
  241. /package/.cursor/rules/{php-hooks.md → php-hooks.mdc} +0 -0
  242. /package/.cursor/rules/{php-patterns.md → php-patterns.mdc} +0 -0
  243. /package/.cursor/rules/{php-security.md → php-security.mdc} +0 -0
  244. /package/.cursor/rules/{php-testing.md → php-testing.mdc} +0 -0
  245. /package/.cursor/rules/{python-coding-style.md → python-coding-style.mdc} +0 -0
  246. /package/.cursor/rules/{python-hooks.md → python-hooks.mdc} +0 -0
  247. /package/.cursor/rules/{python-patterns.md → python-patterns.mdc} +0 -0
  248. /package/.cursor/rules/{python-security.md → python-security.mdc} +0 -0
  249. /package/.cursor/rules/{python-testing.md → python-testing.mdc} +0 -0
  250. /package/.cursor/rules/{swift-coding-style.md → swift-coding-style.mdc} +0 -0
  251. /package/.cursor/rules/{swift-hooks.md → swift-hooks.mdc} +0 -0
  252. /package/.cursor/rules/{swift-patterns.md → swift-patterns.mdc} +0 -0
  253. /package/.cursor/rules/{swift-security.md → swift-security.mdc} +0 -0
  254. /package/.cursor/rules/{swift-testing.md → swift-testing.mdc} +0 -0
  255. /package/.cursor/rules/{typescript-coding-style.md → typescript-coding-style.mdc} +0 -0
  256. /package/.cursor/rules/{typescript-hooks.md → typescript-hooks.mdc} +0 -0
  257. /package/.cursor/rules/{typescript-patterns.md → typescript-patterns.mdc} +0 -0
  258. /package/.cursor/rules/{typescript-security.md → typescript-security.mdc} +0 -0
  259. /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`
@@ -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. Choose the smallest internal route.
42
- Decide whether the request is already clear enough for direct planning or needs discovery first.
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`