dsh-compound-engineering 0.0.0-stage → 0.1.0

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 (461) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +160 -2
  3. package/README.zh.md +161 -0
  4. package/cordis.patch.yml +6 -0
  5. package/lib/frontmatter.js +167 -0
  6. package/lib/index.js +46 -0
  7. package/lib/provider.js +201 -0
  8. package/package.json +62 -4
  9. package/skills/CODING_STANDARDS.md +68 -0
  10. package/skills/ce-babysit-pr/SKILL.md +59 -0
  11. package/skills/ce-babysit-pr/references/branch-currency.md +22 -0
  12. package/skills/ce-babysit-pr/references/envelope.md +44 -0
  13. package/skills/ce-babysit-pr/references/pipeline.md +15 -0
  14. package/skills/ce-babysit-pr/references/report.md +20 -0
  15. package/skills/ce-babysit-pr/references/settle.md +37 -0
  16. package/skills/ce-babysit-pr/references/setup.md +33 -0
  17. package/skills/ce-babysit-pr/references/stack-commands.md +39 -0
  18. package/skills/ce-babysit-pr/references/stack.md +43 -0
  19. package/skills/ce-babysit-pr/references/tick.md +102 -0
  20. package/skills/ce-babysit-pr/references/watch-loop.md +222 -0
  21. package/skills/ce-babysit-pr/scripts/pr-snapshot +3656 -0
  22. package/skills/ce-bakeoff/SKILL.md +48 -0
  23. package/skills/ce-bakeoff/references/candidates.md +37 -0
  24. package/skills/ce-bakeoff/references/judging.md +19 -0
  25. package/skills/ce-bakeoff/references/output.md +11 -0
  26. package/skills/ce-bakeoff/references/verification.md +15 -0
  27. package/skills/ce-brainstorm/SKILL.md +69 -0
  28. package/skills/ce-brainstorm/references/agents/slack-researcher.md +127 -0
  29. package/skills/ce-brainstorm/references/approaches.md +57 -0
  30. package/skills/ce-brainstorm/references/bakeoff.md +9 -0
  31. package/skills/ce-brainstorm/references/blindspot-pass.md +70 -0
  32. package/skills/ce-brainstorm/references/brainstorm-sections.md +458 -0
  33. package/skills/ce-brainstorm/references/dialogue.md +89 -0
  34. package/skills/ce-brainstorm/references/handoff.md +187 -0
  35. package/skills/ce-brainstorm/references/html-rendering.md +638 -0
  36. package/skills/ce-brainstorm/references/interaction-rules.md +33 -0
  37. package/skills/ce-brainstorm/references/markdown-rendering.md +242 -0
  38. package/skills/ce-brainstorm/references/model-tiers.md +13 -0
  39. package/skills/ce-brainstorm/references/output-mode.md +26 -0
  40. package/skills/ce-brainstorm/references/phase-0.md +104 -0
  41. package/skills/ce-brainstorm/references/plan-write.md +32 -0
  42. package/skills/ce-brainstorm/references/product-pressure-test.md +42 -0
  43. package/skills/ce-brainstorm/references/reasoning-elevation.md +124 -0
  44. package/skills/ce-brainstorm/references/settled-decisions.md +45 -0
  45. package/skills/ce-brainstorm/references/synthesis-summary.md +149 -0
  46. package/skills/ce-brainstorm/references/universal-brainstorming.md +72 -0
  47. package/skills/ce-brainstorm/references/verdict-routing.md +26 -0
  48. package/skills/ce-brainstorm/references/visual-probes.md +164 -0
  49. package/skills/ce-brainstorm/scripts/elevation-dispatch.sh +288 -0
  50. package/skills/ce-brainstorm/scripts/light-webserver.js +1275 -0
  51. package/skills/ce-brainstorm/scripts/packs-resolve.py +737 -0
  52. package/skills/ce-brainstorm/scripts/peer-job-runner.py +2594 -0
  53. package/skills/ce-code-review/SKILL.md +40 -0
  54. package/skills/ce-code-review/references/action-class-rubric.md +67 -0
  55. package/skills/ce-code-review/references/cross-model-recovery.md +38 -0
  56. package/skills/ce-code-review/references/cross-model-review.md +191 -0
  57. package/skills/ce-code-review/references/depth-paths.md +32 -0
  58. package/skills/ce-code-review/references/diff-scope.md +59 -0
  59. package/skills/ce-code-review/references/dispatch-reviewers.md +135 -0
  60. package/skills/ce-code-review/references/findings-schema.json +125 -0
  61. package/skills/ce-code-review/references/finish-input.md +118 -0
  62. package/skills/ce-code-review/references/finish-review.md +202 -0
  63. package/skills/ce-code-review/references/intent-and-plan.md +73 -0
  64. package/skills/ce-code-review/references/modes-and-output.md +156 -0
  65. package/skills/ce-code-review/references/persona-catalog.md +66 -0
  66. package/skills/ce-code-review/references/personas/adversarial-reviewer.md +111 -0
  67. package/skills/ce-code-review/references/personas/agent-native-reviewer.md +173 -0
  68. package/skills/ce-code-review/references/personas/api-contract-reviewer.md +44 -0
  69. package/skills/ce-code-review/references/personas/correctness-reviewer.md +48 -0
  70. package/skills/ce-code-review/references/personas/data-migration-reviewer.md +111 -0
  71. package/skills/ce-code-review/references/personas/deployment-verification-agent.md +157 -0
  72. package/skills/ce-code-review/references/personas/julik-frontend-races-reviewer.md +45 -0
  73. package/skills/ce-code-review/references/personas/learnings-researcher.md +260 -0
  74. package/skills/ce-code-review/references/personas/maintainability-reviewer.md +85 -0
  75. package/skills/ce-code-review/references/personas/performance-reviewer.md +45 -0
  76. package/skills/ce-code-review/references/personas/previous-comments-reviewer.md +59 -0
  77. package/skills/ce-code-review/references/personas/project-standards-reviewer.md +77 -0
  78. package/skills/ce-code-review/references/personas/reliability-reviewer.md +49 -0
  79. package/skills/ce-code-review/references/personas/security-reviewer.md +50 -0
  80. package/skills/ce-code-review/references/personas/swift-ios-reviewer.md +99 -0
  81. package/skills/ce-code-review/references/personas/testing-reviewer.md +51 -0
  82. package/skills/ce-code-review/references/review-output-template.md +172 -0
  83. package/skills/ce-code-review/references/scope.md +176 -0
  84. package/skills/ce-code-review/references/select-and-route.md +93 -0
  85. package/skills/ce-code-review/references/subagent-template.md +206 -0
  86. package/skills/ce-code-review/references/validator-batch-template.md +67 -0
  87. package/skills/ce-code-review/scripts/cross-model-adversarial-review.sh +1275 -0
  88. package/skills/ce-code-review/scripts/findings-mechanics.py +274 -0
  89. package/skills/ce-code-review/scripts/packs-resolve.py +737 -0
  90. package/skills/ce-code-review/scripts/peer-job-runner.py +2594 -0
  91. package/skills/ce-code-review/scripts/review-scope.py +419 -0
  92. package/skills/ce-code-review/scripts/run-log.py +280 -0
  93. package/skills/ce-commit/SKILL.md +60 -0
  94. package/skills/ce-commit-push-pr/SKILL.md +69 -0
  95. package/skills/ce-commit-push-pr/references/apply-and-handoff.md +79 -0
  96. package/skills/ce-commit-push-pr/references/branch-creation.md +47 -0
  97. package/skills/ce-commit-push-pr/references/commit-and-push.md +26 -0
  98. package/skills/ce-commit-push-pr/references/compose.md +29 -0
  99. package/skills/ce-commit-push-pr/references/context.md +42 -0
  100. package/skills/ce-commit-push-pr/references/gh-stack-cli.md +83 -0
  101. package/skills/ce-commit-push-pr/references/pr-description-writing.md +208 -0
  102. package/skills/ce-commit-push-pr/references/stack-submit.md +81 -0
  103. package/skills/ce-compound/SKILL.md +79 -0
  104. package/skills/ce-compound/assets/resolution-template.md +96 -0
  105. package/skills/ce-compound/references/agents/best-practices-researcher.md +115 -0
  106. package/skills/ce-compound/references/agents/data-integrity-guardian.md +68 -0
  107. package/skills/ce-compound/references/agents/framework-docs-researcher.md +93 -0
  108. package/skills/ce-compound/references/agents/pattern-recognition-specialist.md +55 -0
  109. package/skills/ce-compound/references/agents/performance-oracle.md +108 -0
  110. package/skills/ce-compound/references/agents/security-sentinel.md +91 -0
  111. package/skills/ce-compound/references/agents/session-historian.md +82 -0
  112. package/skills/ce-compound/references/assembly.md +127 -0
  113. package/skills/ce-compound/references/concepts-vocabulary.md +98 -0
  114. package/skills/ce-compound/references/enhancement.md +42 -0
  115. package/skills/ce-compound/references/grounding-validation.md +89 -0
  116. package/skills/ce-compound/references/lightweight.md +56 -0
  117. package/skills/ce-compound/references/modes.md +13 -0
  118. package/skills/ce-compound/references/refresh-and-discoverability.md +96 -0
  119. package/skills/ce-compound/references/report.md +115 -0
  120. package/skills/ce-compound/references/research.md +144 -0
  121. package/skills/ce-compound/references/schema.yaml +236 -0
  122. package/skills/ce-compound/references/session-history.md +73 -0
  123. package/skills/ce-compound/references/yaml-schema.md +130 -0
  124. package/skills/ce-compound/scripts/packs-resolve.py +737 -0
  125. package/skills/ce-compound/scripts/session-history/__pycache__/dsh_session.cpython-314.pyc +0 -0
  126. package/skills/ce-compound/scripts/session-history/discover-sessions.sh +290 -0
  127. package/skills/ce-compound/scripts/session-history/discover_dsh.py +123 -0
  128. package/skills/ce-compound/scripts/session-history/dsh_session.py +225 -0
  129. package/skills/ce-compound/scripts/session-history/extract-errors.py +178 -0
  130. package/skills/ce-compound/scripts/session-history/extract-metadata.py +301 -0
  131. package/skills/ce-compound/scripts/session-history/extract-skeleton.py +346 -0
  132. package/skills/ce-compound/scripts/validate-doc-claims.py +497 -0
  133. package/skills/ce-compound/scripts/validate-frontmatter.py +137 -0
  134. package/skills/ce-compound-refresh/SKILL.md +88 -0
  135. package/skills/ce-compound-refresh/assets/resolution-template.md +96 -0
  136. package/skills/ce-compound-refresh/references/classify.md +42 -0
  137. package/skills/ce-compound-refresh/references/commit.md +7 -0
  138. package/skills/ce-compound-refresh/references/concepts-vocabulary.md +116 -0
  139. package/skills/ce-compound-refresh/references/discoverability.md +15 -0
  140. package/skills/ce-compound-refresh/references/investigate.md +23 -0
  141. package/skills/ce-compound-refresh/references/modes.md +27 -0
  142. package/skills/ce-compound-refresh/references/per-action-flows.md +142 -0
  143. package/skills/ce-compound-refresh/references/report.md +23 -0
  144. package/skills/ce-compound-refresh/references/schema.yaml +236 -0
  145. package/skills/ce-compound-refresh/references/scope.md +18 -0
  146. package/skills/ce-compound-refresh/references/worth-audit.md +35 -0
  147. package/skills/ce-compound-refresh/references/yaml-schema.md +130 -0
  148. package/skills/ce-compound-refresh/scripts/validate-doc-claims.py +497 -0
  149. package/skills/ce-compound-refresh/scripts/validate-frontmatter.py +137 -0
  150. package/skills/ce-debug/SKILL.md +122 -0
  151. package/skills/ce-debug/references/anti-patterns.md +91 -0
  152. package/skills/ce-debug/references/defense-in-depth.md +39 -0
  153. package/skills/ce-debug/references/fix.md +21 -0
  154. package/skills/ce-debug/references/investigate.md +114 -0
  155. package/skills/ce-debug/references/investigation-techniques.md +384 -0
  156. package/skills/ce-debug/references/pipeline-mode.md +78 -0
  157. package/skills/ce-debug/references/post-fix-handoff.md +60 -0
  158. package/skills/ce-debug/references/return-to-caller.md +57 -0
  159. package/skills/ce-doc-review/SKILL.md +75 -0
  160. package/skills/ce-doc-review/references/bulk-preview.md +146 -0
  161. package/skills/ce-doc-review/references/cross-model-review.md +207 -0
  162. package/skills/ce-doc-review/references/decision-primer.md +47 -0
  163. package/skills/ce-doc-review/references/dispatch.md +56 -0
  164. package/skills/ce-doc-review/references/document-intake.md +44 -0
  165. package/skills/ce-doc-review/references/findings-schema.json +85 -0
  166. package/skills/ce-doc-review/references/modes.md +20 -0
  167. package/skills/ce-doc-review/references/open-questions-defer.md +158 -0
  168. package/skills/ce-doc-review/references/persona-selection.md +41 -0
  169. package/skills/ce-doc-review/references/personas/adversarial-document-reviewer.md +109 -0
  170. package/skills/ce-doc-review/references/personas/coherence-reviewer.md +69 -0
  171. package/skills/ce-doc-review/references/personas/design-lens-reviewer.md +48 -0
  172. package/skills/ce-doc-review/references/personas/feasibility-reviewer.md +50 -0
  173. package/skills/ce-doc-review/references/personas/product-lens-reviewer.md +85 -0
  174. package/skills/ce-doc-review/references/personas/scope-guardian-reviewer.md +83 -0
  175. package/skills/ce-doc-review/references/personas/security-lens-reviewer.md +41 -0
  176. package/skills/ce-doc-review/references/personas/whole-doc-reviewer.md +25 -0
  177. package/skills/ce-doc-review/references/rendering-floor.md +175 -0
  178. package/skills/ce-doc-review/references/review-output-template.md +123 -0
  179. package/skills/ce-doc-review/references/subagent-template.md +188 -0
  180. package/skills/ce-doc-review/references/synthesis-and-presentation.md +350 -0
  181. package/skills/ce-doc-review/references/walkthrough.md +347 -0
  182. package/skills/ce-doc-review/scripts/cross-model-doc-review.sh +1270 -0
  183. package/skills/ce-doc-review/scripts/packs-resolve.py +737 -0
  184. package/skills/ce-doc-review/scripts/peer-job-runner.py +2594 -0
  185. package/skills/ce-dogfood/SKILL.md +66 -0
  186. package/skills/ce-dogfood/agents/openai.yaml +2 -0
  187. package/skills/ce-dogfood/references/dogfood-report-template.md +97 -0
  188. package/skills/ce-dogfood/references/phases.md +167 -0
  189. package/skills/ce-dogfood/references/test-matrix-taxonomy.md +62 -0
  190. package/skills/ce-dogfood/scripts/packs-resolve.py +737 -0
  191. package/skills/ce-explain/SKILL.md +81 -0
  192. package/skills/ce-explain/references/agents/behavior-trace-scout.md +19 -0
  193. package/skills/ce-explain/references/agents/work-recap-scout.md +23 -0
  194. package/skills/ce-explain/references/check-in.md +18 -0
  195. package/skills/ce-explain/references/destinations.md +35 -0
  196. package/skills/ce-explain/references/explainer-html.md +29 -0
  197. package/skills/ce-explain/references/explainer-markdown.md +24 -0
  198. package/skills/ce-explain/references/intake.md +50 -0
  199. package/skills/ce-explain/references/orchestration.md +46 -0
  200. package/skills/ce-handoff/SKILL.md +54 -0
  201. package/skills/ce-handoff/references/create.md +88 -0
  202. package/skills/ce-handoff/references/resume.md +46 -0
  203. package/skills/ce-ideate/SKILL.md +75 -0
  204. package/skills/ce-ideate/references/agents/issue-intelligence-analyst.md +166 -0
  205. package/skills/ce-ideate/references/agents/learnings-researcher.md +247 -0
  206. package/skills/ce-ideate/references/agents/slack-researcher.md +127 -0
  207. package/skills/ce-ideate/references/agents/web-researcher.md +121 -0
  208. package/skills/ce-ideate/references/decomposition.md +39 -0
  209. package/skills/ce-ideate/references/divergent-ideation.md +112 -0
  210. package/skills/ce-ideate/references/grounding.md +138 -0
  211. package/skills/ce-ideate/references/html-rendering.md +638 -0
  212. package/skills/ce-ideate/references/ideation-sections.md +191 -0
  213. package/skills/ce-ideate/references/issue-intelligence.md +44 -0
  214. package/skills/ce-ideate/references/markdown-rendering.md +242 -0
  215. package/skills/ce-ideate/references/output-mode.md +34 -0
  216. package/skills/ce-ideate/references/post-ideation-workflow.md +169 -0
  217. package/skills/ce-ideate/references/scope-gates.md +148 -0
  218. package/skills/ce-ideate/references/universal-ideation.md +119 -0
  219. package/skills/ce-ideate/references/user-research-artifacts.md +28 -0
  220. package/skills/ce-ideate/references/web-research-cache.md +56 -0
  221. package/skills/ce-noslop/SKILL.md +45 -0
  222. package/skills/ce-noslop/references/patterns.md +61 -0
  223. package/skills/ce-noslop/references/terminology.md +3 -0
  224. package/skills/ce-optimize/SKILL.md +64 -0
  225. package/skills/ce-optimize/references/agents/learnings-researcher.md +247 -0
  226. package/skills/ce-optimize/references/agents/repo-research-analyst.md +258 -0
  227. package/skills/ce-optimize/references/example-expensive-benchmark-spec.yaml +88 -0
  228. package/skills/ce-optimize/references/example-hard-spec.yaml +64 -0
  229. package/skills/ce-optimize/references/example-judge-spec.yaml +83 -0
  230. package/skills/ce-optimize/references/example-text-target-spec.yaml +80 -0
  231. package/skills/ce-optimize/references/experiment-log-schema.yaml +563 -0
  232. package/skills/ce-optimize/references/experiment-prompt-template.md +143 -0
  233. package/skills/ce-optimize/references/judge-prompt-template.md +117 -0
  234. package/skills/ce-optimize/references/loop.md +286 -0
  235. package/skills/ce-optimize/references/measurement.md +168 -0
  236. package/skills/ce-optimize/references/optimize-spec-schema.yaml +570 -0
  237. package/skills/ce-optimize/references/persistence.md +93 -0
  238. package/skills/ce-optimize/references/spec.md +107 -0
  239. package/skills/ce-optimize/references/text-targets.md +51 -0
  240. package/skills/ce-optimize/references/usage-guide.md +147 -0
  241. package/skills/ce-optimize/references/wrap-up.md +54 -0
  242. package/skills/ce-optimize/scripts/decide.mjs +676 -0
  243. package/skills/ce-optimize/scripts/experiment-worktree.sh +330 -0
  244. package/skills/ce-optimize/scripts/measure.sh +140 -0
  245. package/skills/ce-optimize/scripts/parallel-probe.sh +134 -0
  246. package/skills/ce-plan/SKILL.md +60 -0
  247. package/skills/ce-plan/references/agents/agent-native-planning-strategist.md +66 -0
  248. package/skills/ce-plan/references/agents/architecture-strategist.md +46 -0
  249. package/skills/ce-plan/references/agents/best-practices-researcher.md +118 -0
  250. package/skills/ce-plan/references/agents/data-integrity-guardian.md +68 -0
  251. package/skills/ce-plan/references/agents/framework-docs-researcher.md +97 -0
  252. package/skills/ce-plan/references/agents/git-history-analyzer.md +40 -0
  253. package/skills/ce-plan/references/agents/learnings-researcher.md +268 -0
  254. package/skills/ce-plan/references/agents/pattern-recognition-specialist.md +55 -0
  255. package/skills/ce-plan/references/agents/performance-oracle.md +108 -0
  256. package/skills/ce-plan/references/agents/repo-research-analyst.md +262 -0
  257. package/skills/ce-plan/references/agents/security-sentinel.md +91 -0
  258. package/skills/ce-plan/references/agents/slack-researcher.md +131 -0
  259. package/skills/ce-plan/references/agents/spec-flow-analyzer.md +84 -0
  260. package/skills/ce-plan/references/agents/web-researcher.md +125 -0
  261. package/skills/ce-plan/references/approach-altitude.md +55 -0
  262. package/skills/ce-plan/references/bakeoff.md +9 -0
  263. package/skills/ce-plan/references/deepening-workflow.md +263 -0
  264. package/skills/ce-plan/references/final-review.md +134 -0
  265. package/skills/ce-plan/references/html-rendering.md +638 -0
  266. package/skills/ce-plan/references/intake.md +158 -0
  267. package/skills/ce-plan/references/markdown-rendering.md +242 -0
  268. package/skills/ce-plan/references/output-contracts.md +29 -0
  269. package/skills/ce-plan/references/output-mode.md +45 -0
  270. package/skills/ce-plan/references/plan-handoff.md +116 -0
  271. package/skills/ce-plan/references/plan-sections.md +489 -0
  272. package/skills/ce-plan/references/reasoning-elevation.md +124 -0
  273. package/skills/ce-plan/references/research.md +211 -0
  274. package/skills/ce-plan/references/resume.md +61 -0
  275. package/skills/ce-plan/references/settled-decisions.md +45 -0
  276. package/skills/ce-plan/references/structure.md +207 -0
  277. package/skills/ce-plan/references/synthesis-summary.md +260 -0
  278. package/skills/ce-plan/references/universal-planning.md +170 -0
  279. package/skills/ce-plan/scripts/elevation-dispatch.sh +288 -0
  280. package/skills/ce-plan/scripts/packs-resolve.py +737 -0
  281. package/skills/ce-plan/scripts/peer-job-runner.py +2594 -0
  282. package/skills/ce-polish/SKILL.md +22 -0
  283. package/skills/ce-polish/agents/openai.yaml +2 -0
  284. package/skills/ce-polish/references/dev-server-astro.md +58 -0
  285. package/skills/ce-polish/references/dev-server-detection.md +40 -0
  286. package/skills/ce-polish/references/dev-server-next.md +61 -0
  287. package/skills/ce-polish/references/dev-server-nuxt.md +58 -0
  288. package/skills/ce-polish/references/dev-server-procfile.md +59 -0
  289. package/skills/ce-polish/references/dev-server-rails.md +50 -0
  290. package/skills/ce-polish/references/dev-server-remix.md +58 -0
  291. package/skills/ce-polish/references/dev-server-sveltekit.md +58 -0
  292. package/skills/ce-polish/references/dev-server-vite.md +48 -0
  293. package/skills/ce-polish/references/install-riffrec.md +35 -0
  294. package/skills/ce-polish/references/launch-json-schema.md +177 -0
  295. package/skills/ce-polish/references/live-loop.md +98 -0
  296. package/skills/ce-polish/references/live-remote.md +35 -0
  297. package/skills/ce-polish/references/live-start.md +93 -0
  298. package/skills/ce-polish/references/live-stream-contract.md +253 -0
  299. package/skills/ce-polish/references/run.md +67 -0
  300. package/skills/ce-polish/scripts/detect-project-type.sh +277 -0
  301. package/skills/ce-polish/scripts/detect-riffrec.sh +225 -0
  302. package/skills/ce-polish/scripts/live-endpoint.js +2841 -0
  303. package/skills/ce-polish/scripts/read-launch-json.sh +117 -0
  304. package/skills/ce-polish/scripts/resolve-package-manager.sh +95 -0
  305. package/skills/ce-polish/scripts/resolve-port.sh +307 -0
  306. package/skills/ce-pov/SKILL.md +64 -0
  307. package/skills/ce-pov/references/agents/external-evidence-researcher.md +26 -0
  308. package/skills/ce-pov/references/agents/pov-peer.md +43 -0
  309. package/skills/ce-pov/references/agents/precedent-activity-scout.md +21 -0
  310. package/skills/ce-pov/references/agents/project-grounding-scout.md +32 -0
  311. package/skills/ce-pov/references/boundaries.md +36 -0
  312. package/skills/ce-pov/references/cross-model-panel.md +596 -0
  313. package/skills/ce-pov/references/followup.md +9 -0
  314. package/skills/ce-pov/references/grounding.md +47 -0
  315. package/skills/ce-pov/references/intake.md +61 -0
  316. package/skills/ce-pov/references/invocation.md +47 -0
  317. package/skills/ce-pov/references/method.md +68 -0
  318. package/skills/ce-pov/references/pov-schema.json +56 -0
  319. package/skills/ce-pov/references/report.md +7 -0
  320. package/skills/ce-pov/scripts/cross-model-pov.sh +1110 -0
  321. package/skills/ce-pov/scripts/peer-job-runner.py +2594 -0
  322. package/skills/ce-product-pulse/SKILL.md +81 -0
  323. package/skills/ce-product-pulse/agents/openai.yaml +2 -0
  324. package/skills/ce-product-pulse/references/config.md +20 -0
  325. package/skills/ce-product-pulse/references/interview.md +260 -0
  326. package/skills/ce-product-pulse/references/report-template.md +89 -0
  327. package/skills/ce-product-pulse/references/run.md +46 -0
  328. package/skills/ce-product-pulse/references/setup.md +43 -0
  329. package/skills/ce-promote/SKILL.md +90 -0
  330. package/skills/ce-promote/agents/openai.yaml +2 -0
  331. package/skills/ce-promote/references/spiral-cli.md +149 -0
  332. package/skills/ce-proof/SKILL.md +65 -0
  333. package/skills/ce-proof/references/api.md +176 -0
  334. package/skills/ce-proof/references/workflows.md +124 -0
  335. package/skills/ce-prototype/SKILL.md +59 -0
  336. package/skills/ce-prototype/assets/annotate.css +206 -0
  337. package/skills/ce-prototype/assets/annotate.js +837 -0
  338. package/skills/ce-prototype/references/annotation-loop.md +32 -0
  339. package/skills/ce-prototype/references/build.md +39 -0
  340. package/skills/ce-prototype/references/craft-floor.md +43 -0
  341. package/skills/ce-prototype/references/preview.md +118 -0
  342. package/skills/ce-prototype/references/scoping.md +38 -0
  343. package/skills/ce-prototype/references/write-back.md +37 -0
  344. package/skills/ce-prototype/scripts/light-webserver.js +1275 -0
  345. package/skills/ce-resolve-pr-feedback/SKILL.md +60 -0
  346. package/skills/ce-resolve-pr-feedback/references/agents/pr-comment-resolver.md +59 -0
  347. package/skills/ce-resolve-pr-feedback/references/evaluation-rubric.md +141 -0
  348. package/skills/ce-resolve-pr-feedback/references/full-mode.md +336 -0
  349. package/skills/ce-resolve-pr-feedback/references/pipeline-mode.md +23 -0
  350. package/skills/ce-resolve-pr-feedback/references/resume.md +60 -0
  351. package/skills/ce-resolve-pr-feedback/references/return-to-caller.md +111 -0
  352. package/skills/ce-resolve-pr-feedback/references/targeted-mode.md +48 -0
  353. package/skills/ce-resolve-pr-feedback/scripts/get-pr-comments +176 -0
  354. package/skills/ce-resolve-pr-feedback/scripts/get-thread-for-comment +84 -0
  355. package/skills/ce-resolve-pr-feedback/scripts/pending-feedback.py +287 -0
  356. package/skills/ce-resolve-pr-feedback/scripts/reply-to-pr-thread +57 -0
  357. package/skills/ce-resolve-pr-feedback/scripts/resolve-pr-thread +23 -0
  358. package/skills/ce-retune/SKILL.md +42 -0
  359. package/skills/ce-retune/agents/openai.yaml +2 -0
  360. package/skills/ce-retune/references/baseline-mining.md +122 -0
  361. package/skills/ce-retune/references/corpus-audit.md +128 -0
  362. package/skills/ce-retune/references/cut-passes.md +129 -0
  363. package/skills/ce-retune/references/halt-taxonomy.md +123 -0
  364. package/skills/ce-retune/references/noise-floor.md +131 -0
  365. package/skills/ce-retune/references/workflow-shapes.md +73 -0
  366. package/skills/ce-riffrec-feedback-analysis/SKILL.md +33 -0
  367. package/skills/ce-riffrec-feedback-analysis/references/analyzer.md +18 -0
  368. package/skills/ce-riffrec-feedback-analysis/references/compound-engineering-feedback-format.md +116 -0
  369. package/skills/ce-riffrec-feedback-analysis/references/extensive-analysis.md +98 -0
  370. package/skills/ce-riffrec-feedback-analysis/references/install-riffrec.md +27 -0
  371. package/skills/ce-riffrec-feedback-analysis/references/quick-bug-report.md +38 -0
  372. package/skills/ce-riffrec-feedback-analysis/scripts/analyze_riffrec_zip.py +1306 -0
  373. package/skills/ce-setup/SKILL.md +103 -0
  374. package/skills/ce-setup/agents/openai.yaml +2 -0
  375. package/skills/ce-setup/assets/compounding-directive.md +11 -0
  376. package/skills/ce-setup/assets/noslop-directive.md +7 -0
  377. package/skills/ce-setup/assets/pack-rule-template.md +11 -0
  378. package/skills/ce-setup/references/acpx-cache-warm.md +14 -0
  379. package/skills/ce-setup/references/config-template.yaml +210 -0
  380. package/skills/ce-setup/references/legacy-codex-tool-map.md +15 -0
  381. package/skills/ce-setup/references/pack-scaffold.md +45 -0
  382. package/skills/ce-setup/references/repo-fixes.md +121 -0
  383. package/skills/ce-setup/scripts/check-health +929 -0
  384. package/skills/ce-setup/scripts/packs-resolve.py +737 -0
  385. package/skills/ce-simplify-code/SKILL.md +76 -0
  386. package/skills/ce-simplify-code/references/personas/code-quality-reviewer.md +17 -0
  387. package/skills/ce-simplify-code/references/personas/code-reuse-reviewer.md +7 -0
  388. package/skills/ce-simplify-code/references/personas/comment-reviewer.md +24 -0
  389. package/skills/ce-simplify-code/references/personas/efficiency-reviewer.md +11 -0
  390. package/skills/ce-simplify-code/references/personas/test-value-reviewer.md +23 -0
  391. package/skills/ce-simplify-code/references/reviewer-dispatch.md +11 -0
  392. package/skills/ce-simplify-code/references/standalone-report.md +25 -0
  393. package/skills/ce-strategy/SKILL.md +61 -0
  394. package/skills/ce-strategy/references/grounding.md +22 -0
  395. package/skills/ce-strategy/references/interview.md +179 -0
  396. package/skills/ce-strategy/references/strategy-template.md +94 -0
  397. package/skills/ce-strategy/references/update-run.md +33 -0
  398. package/skills/ce-sweep/SKILL.md +93 -0
  399. package/skills/ce-sweep/agents/openai.yaml +2 -0
  400. package/skills/ce-sweep/references/agents/media-analyzer.md +54 -0
  401. package/skills/ce-sweep/references/interview.md +208 -0
  402. package/skills/ce-sweep/references/model-tiers.md +13 -0
  403. package/skills/ce-sweep/references/plan-template.md +62 -0
  404. package/skills/ce-sweep/references/run.md +126 -0
  405. package/skills/ce-sweep/references/sources/email.md +57 -0
  406. package/skills/ce-sweep/references/sources/github-issues.md +59 -0
  407. package/skills/ce-sweep/references/sources/slack.md +61 -0
  408. package/skills/ce-sweep/references/state-schema.md +157 -0
  409. package/skills/ce-sweep/references/subagent-template.md +60 -0
  410. package/skills/ce-sweep/scripts/analyze_riffrec_zip.py +1306 -0
  411. package/skills/ce-sweep/scripts/sweep-state.py +793 -0
  412. package/skills/ce-test-browser/SKILL.md +50 -0
  413. package/skills/ce-test-browser/references/agent-browser-driver.md +47 -0
  414. package/skills/ce-test-browser/references/pipeline-orchestration.md +45 -0
  415. package/skills/ce-test-browser/references/route-and-report.md +129 -0
  416. package/skills/ce-test-browser/scripts/resolve-port.sh +41 -0
  417. package/skills/ce-test-xcode/SKILL.md +26 -0
  418. package/skills/ce-test-xcode/agents/openai.yaml +2 -0
  419. package/skills/ce-test-xcode/references/setup-and-build.md +32 -0
  420. package/skills/ce-test-xcode/references/test-and-report.md +64 -0
  421. package/skills/ce-work/SKILL.md +62 -0
  422. package/skills/ce-work/references/agents/figma-design-sync.md +27 -0
  423. package/skills/ce-work/references/agents/implementation-worker.md +17 -0
  424. package/skills/ce-work/references/cross-model-execution.md +191 -0
  425. package/skills/ce-work/references/execution-engines.md +64 -0
  426. package/skills/ce-work/references/execution-strategy.md +73 -0
  427. package/skills/ce-work/references/implementation-loop.md +107 -0
  428. package/skills/ce-work/references/implementation-result-schema.json +52 -0
  429. package/skills/ce-work/references/input-triage.md +50 -0
  430. package/skills/ce-work/references/non-code-execution.md +23 -0
  431. package/skills/ce-work/references/return-to-caller.md +33 -0
  432. package/skills/ce-work/references/review-findings-followup.md +82 -0
  433. package/skills/ce-work/references/shipping-workflow.md +89 -0
  434. package/skills/ce-work/references/tracker-defer.md +150 -0
  435. package/skills/ce-work/references/work-intake.md +51 -0
  436. package/skills/ce-work/references/workspace-setup.md +27 -0
  437. package/skills/ce-work/scripts/__pycache__/unit_workspace_jobs.cpython-314.pyc +0 -0
  438. package/skills/ce-work/scripts/__pycache__/unit_workspace_state.cpython-314.pyc +0 -0
  439. package/skills/ce-work/scripts/cross-model-work.sh +1385 -0
  440. package/skills/ce-work/scripts/peer-job-runner.py +2594 -0
  441. package/skills/ce-work/scripts/unit-workspace.py +215 -0
  442. package/skills/ce-work/scripts/unit_workspace_ignored.py +93 -0
  443. package/skills/ce-work/scripts/unit_workspace_integration.py +677 -0
  444. package/skills/ce-work/scripts/unit_workspace_jobs.py +1216 -0
  445. package/skills/ce-work/scripts/unit_workspace_lifecycle.py +981 -0
  446. package/skills/ce-work/scripts/unit_workspace_state.py +1379 -0
  447. package/skills/ce-work/scripts/unit_workspace_transaction.py +612 -0
  448. package/skills/ce-worktree/SKILL.md +54 -0
  449. package/skills/lfg/SKILL.md +59 -0
  450. package/skills/lfg/references/debug-return.md +25 -0
  451. package/skills/lfg/references/intake.md +30 -0
  452. package/skills/lfg/references/next-work-handoff.md +96 -0
  453. package/skills/lfg/references/plan-brief.md +36 -0
  454. package/skills/lfg/references/review-followup.md +78 -0
  455. package/skills/lfg/references/shipping.md +65 -0
  456. package/skills/lfg/references/stage-routing.md +49 -0
  457. package/skills/lfg/references/task-visibility.md +11 -0
  458. package/skills/lfg/references/tracker-defer.md +150 -0
  459. package/skills/lfg/references/work-return.md +27 -0
  460. package/skills/wtf/SKILL.md +33 -0
  461. package/skills/wtf/agents/openai.yaml +2 -0
@@ -0,0 +1,638 @@
1
+ # HTML Rendering
2
+
3
+ This is a format-rendering reference — it describes how to render any
4
+ artifact in HTML, independent of which skill is producing it.
5
+
6
+ It is paired with a section contract (`plan-sections.md`,
7
+ `brainstorm-sections.md`, etc.) that describes *what* the artifact contains.
8
+ This reference describes *how* HTML specifically presents it. The same
9
+ content rendered by different skills shares the same HTML principles.
10
+
11
+ The HTML artifact is the *only* artifact the skill produces for that run —
12
+ output mode is exclusive (markdown OR HTML, never both). Downstream
13
+ consumers that read HTML today (`ce-doc-review`, `ce-work`, human readers) do
14
+ so directly; the agent-consumability rules below make that work. `ce-doc-review`
15
+ also applies fixes in the artifact's native format while preserving its
16
+ existing structure.
17
+
18
+ ## Hard invariants
19
+
20
+ These hold regardless of which skill produced the artifact.
21
+
22
+ - **Single self-contained HTML5 file.** No companion `.css`, `.js`, or
23
+ `.svg` files. CSS lives in `<style>`. SVG lives inline. Images are
24
+ base64 data URIs or inline SVG. The one permitted exception is a
25
+ `<link rel="stylesheet">` to a CDN webfont CSS endpoint (Google Fonts,
26
+ Bunny Fonts, etc.), paired with an offline-readable fallback font stack
27
+ so the doc remains readable if the CDN is unreachable.
28
+ - **All metadata appears as visible text — single source of truth.**
29
+ The artifact's metadata (title, type, date, etc. — exact
30
+ fields per-skill, defined in the section contract) renders as visible
31
+ HTML elements that downstream agents and humans read. No hidden
32
+ machine-readable copy in any form: no `<script type="application/json">`
33
+ frontmatter block, no `data-*` attribute mirror, and no
34
+ `<meta name="created">` / `<meta name="origin">`
35
+ in `<head>` duplicating the same values that appear in the visible
36
+ header. One representation for each value — drift across two copies is
37
+ the failure this rule prevents.
38
+
39
+ The text-and-attribute redundancy in `<time datetime="2026-05-12">2026-05-12</time>`
40
+ is acceptable because the attribute is a parser hint, not a hidden copy.
41
+ - **Stable IDs as anchor IDs AND visible text.** Every ID-bearing item
42
+ (R-IDs, U-IDs, A-IDs, F-IDs, AE-IDs, KTDs) gets `id="r1"` on its
43
+ element AND appears as visible text inside the element (e.g., the
44
+ text "R1." inside the table cell or heading). Downstream agents find
45
+ the ID in source the same way they find it in markdown.
46
+ - **Source / composition signal.** A visible footer at the bottom of
47
+ the doc names the composition timestamp and the source identifier
48
+ (the user prompt context, the upstream brainstorm doc when one
49
+ exists, or just the composing skill name when there's no external
50
+ source). Example shape:
51
+ `<footer class="composition-signal">Composed 2026-05-17T14:23Z by ce-plan from <code>docs/brainstorms/...-requirements.md</code></footer>`.
52
+ Under exclusive output mode this signal is the artifact's own
53
+ provenance — there's no markdown sibling to reference. Omitting it
54
+ leaves readers unable to tell how stale the rendering is.
55
+ - **ASCII identifiers.** Class names, element IDs, data attribute names
56
+ are ASCII-only.
57
+ - **Unified plan navigation.** Unified plan artifacts include a visible
58
+ navigation region near the top of the document. It links to stable section
59
+ anchors for `goal-capsule`,
60
+ `product-contract`, `planning-contract`, `implementation-units`,
61
+ `verification-contract`, `definition-of-done`, and `appendix` when those
62
+ sections exist. Requirements-only artifacts omit links to absent
63
+ implementation sections.
64
+ - **Visible artifact metadata.** If the artifact has `artifact_contract`,
65
+ `product_contract_source`, or `execution`, render
66
+ those values in the visible header metadata. Do not hide a duplicate copy in
67
+ JSON, `data-*`, or `<meta>` tags.
68
+
69
+ ## Precedence stack for style preferences
70
+
71
+ Honor user style preferences in this order (highest to lowest):
72
+
73
+ 1. **In-session conversation** — explicit direction the user gave this run.
74
+ 2. **Preferred stylesheet reference** named in loaded agent-instruction
75
+ context (typically `AGENTS.md` / `CLAUDE.md`, but scan loaded context;
76
+ don't enumerate locations). The reference may be a file path
77
+ (`docs/style.css`), a URL, a named library ("Tailwind"), or a style
78
+ brand ("Stripe docs"). Agent-instruction files carry deliberate
79
+ agent-aware preferences, so this tier sits above DESIGN.md.
80
+ 3. **DESIGN.md** discovered on the filesystem (see "DESIGN.md discovery"
81
+ below).
82
+ 4. **Fallback default** — the opinionated palette / typography choices the
83
+ agent makes when no preference exists.
84
+
85
+ ### Active-recall at compose time
86
+
87
+ Before writing the CSS, scan loaded context for any stylesheet reference
88
+ the user has indicated for documents like this. If found and inlinable
89
+ (short local file, fetchable URL within budget), inline it into `<style>`.
90
+ If found but not inlinable (large framework, paywalled stylesheet, named
91
+ system without a fetchable source), compose CSS in its spirit — typography,
92
+ color, density cues drawn from the named system. Only fall back to the
93
+ default style when no preference signal exists.
94
+
95
+ The single-file invariant is preserved either way. External
96
+ `<link rel="stylesheet">` is permitted only for CDN webfont CSS (with the
97
+ offline fallback font stack); never link to an external stylesheet
98
+ carrying layout, color, or typography rules the doc cannot read offline.
99
+
100
+ ### DESIGN.md discovery
101
+
102
+ When tier 3 of the precedence stack applies, look for a DESIGN.md file in
103
+ these locations, first match wins:
104
+
105
+ 1. Worktree root (resolve via `git rev-parse --show-toplevel`).
106
+ 2. `docs/DESIGN.md`.
107
+ 3. `.compound-engineering/DESIGN.md`.
108
+
109
+ Read once at compose time. Absent → fall through to the fallback default.
110
+
111
+ Worktree-root only — do not fall through to a main checkout. Users
112
+ working from a worktree who want HTML defaults can add DESIGN.md to the
113
+ worktree.
114
+
115
+ **DESIGN.md is a partial override, not all-or-nothing.** Real DESIGN.md
116
+ files vary widely: some are token tables, some are CSS variables, some are
117
+ prose; most are authored for a *product or marketing surface*, not a
118
+ long-form doc. The governing split: **take the brand's scale-independent
119
+ identity literally, own the scale-dependent layout values yourself, and
120
+ skip decoration.**
121
+
122
+ - **Take literally (scale-independent identity):** the color palette
123
+ (under the contrast rule), font *weight* and *style*, OpenType features,
124
+ and radius *character* (sharp vs rounded). These carry the brand and are
125
+ safe at any size.
126
+ - **Own it yourself (scale-dependent layout):** the **type size scale**
127
+ and **spacing magnitudes**. DESIGN.md values are almost always
128
+ product/marketing-scaled (display headings at 48-80px, airy ~96px
129
+ section gaps); read them only as *hierarchy*, then set doc-appropriate
130
+ values (body ~14-16px, headings ~1.2-1.6× body, comfortable paragraph
131
+ spacing).
132
+ - **Skip decoration:** decorative or atmospheric brand voltage with no
133
+ content to attach to in a doc — gradient orbs, full-bleed hero
134
+ photography, motion. Take the palette and feel; do not reproduce the
135
+ decoration.
136
+
137
+ Specific cases:
138
+
139
+ - **Fonts: load only open webfonts; never attempt a proprietary brand
140
+ face.** A self-contained doc can only load an open webfont (Google Fonts
141
+ or an open CDN) via the permitted webfont `<link>` plus an offline
142
+ fallback stack. **Assume a bespoke brand face is proprietary and do not
143
+ attempt to load it** — Airbnb Cereal, Coinbase Display/Sans, BMW Type,
144
+ Waldenburg, Circular and the like will not render in a single file;
145
+ trying just produces a broken fallback. Use the DESIGN.md's own fallback
146
+ chain, or a family-matched system stack (serif↔serif, sans↔sans,
147
+ mono↔mono). Load a named face *only* when it is a known open webfont
148
+ (Inter, Geist, Cal Sans, Roboto…); when unsure whether a face is open,
149
+ do not try. Honor the DESIGN.md's declared roles (`body` / `display` /
150
+ `mono`) and never promote a display/decorative face into a body or
151
+ small-text role. Net: reproduce the brand's serif-vs-sans structure and
152
+ weight voice, not necessarily its exact faces.
153
+ - **Typography-scale mismatch.** DESIGN.md typography tokens are usually
154
+ sized for product UI — marketing pages, app screens, hero sections —
155
+ with display headings at 48-80px. A long-form doc needs body at ~14-16px
156
+ and headings at ~1.2-1.6× body. When the size scale looks
157
+ product-scaled (the common case), use the **family**, **weight**, and
158
+ **OpenType feature** assignments (these carry the design language) and
159
+ pick the agent's own size scale for the doc surface. Apply DESIGN.md
160
+ sizes literally only when they are clearly doc-scaled — body 14-16px,
161
+ headings under ~32px.
162
+ - **Scope mismatch (product UI vs doc surface).** A DESIGN.md aimed at
163
+ product marketing or app UI may name button states, input borders, or
164
+ hero backgrounds tied to *that* surface, not a generic doc. The page
165
+ surface is the case to judge: a **reading canvas** — white, off-white,
166
+ or a legible dark — transfers **literally** and should be the doc
167
+ background; a bright product/marketing-hero surface
168
+ (`--surface: #c0f0fb`) does not — extract the principle (the design
169
+ language uses a tinted surface) rather than the literal value when the
170
+ token is product-UI-scoped.
171
+ - **Partial coverage.** When DESIGN.md defines some categories but not
172
+ others (colors but no spacing scale, typography but no elevation), use
173
+ it for what it covers and the fallback default for the rest. Do not
174
+ require DESIGN.md to be complete before honoring it.
175
+
176
+ ## Format principles
177
+
178
+ These shape what "good" HTML looks like; the agent applies them per
179
+ artifact based on content.
180
+
181
+ ### Readable measure, not full bleed
182
+
183
+ Long-form text is unreadable at full viewport width — past ~80 characters
184
+ per line the eye loses the return sweep and scanning slows. As a
185
+ fallback-default (precedence tier 4, overridden by in-session direction or
186
+ DESIGN.md), center the document in a content container and hold prose to a
187
+ comfortable measure.
188
+
189
+ - **Page container.** A centered column with a max-width in the ~820-960px
190
+ band (`margin-inline: auto`) keeps the doc off the far edges of wide
191
+ monitors while leaving room for the format's richer shapes.
192
+ - **Prose measure.** Hold running paragraphs to roughly 65-80 characters
193
+ (`max-width: ~70ch` on text blocks). The named test: read a paragraph at
194
+ full window width on a wide display — if the return sweep to the next
195
+ line is effortful, the measure is too wide.
196
+ - **Let wide content break out.** Tables, diagrams, and side-by-side
197
+ columns may use the full container width (or wider) when the content
198
+ needs it — the measure constraint is for prose, not for everything.
199
+
200
+ Express the constraint in `ch`/`rem` rather than a single hardcoded pixel
201
+ value so it survives font-size and DESIGN.md overrides. DESIGN.md or an
202
+ in-session instruction overrides these values; this is the fallback when no
203
+ layout preference exists.
204
+
205
+ ### Markdown source is content, not design
206
+
207
+ When markdown (or markdown-shaped chat context) is part of the input, use
208
+ it for semantic content — what the doc is about, what sections exist,
209
+ what facts each section establishes. Do NOT treat its bullet-vs-table
210
+ presentation choices as authoritative; re-choose the rendering per
211
+ content shape in HTML's richer affordance space. If the markdown rendered
212
+ 13 requirements as a bulleted list, that does NOT mean HTML must render
213
+ them as a list — ask whether 13 items sharing `ID + body` shape deserve
214
+ a table.
215
+
216
+ ### Prose is authoritative
217
+
218
+ When a visualization disagrees with the surrounding prose, the prose
219
+ governs. If they diverge, the visualization is wrong.
220
+
221
+ ### Hyperlink the reference index
222
+
223
+ When the doc has a Sources & References (or equivalent reference-index)
224
+ section, hyperlink each entry to its canonical destination so readers
225
+ can open it directly. A long bare-text list of paths and ticket IDs is
226
+ the format's biggest unforced UX miss — the reader has to copy-paste
227
+ every entry into a browser or IDE.
228
+
229
+ Resolve the repo's GitHub URL once at compose time:
230
+
231
+ ```bash
232
+ git remote get-url origin
233
+ ```
234
+
235
+ Apply linking to three reference shapes:
236
+
237
+ - **Repo-relative code/doc paths** (`services/foo.ts`,
238
+ `<root>/solutions/bar.md`) → `<repo-url>/blob/main/<path>`.
239
+ - **Named GitHub PRs/issues** (`PR #636`, `issue #1048`) →
240
+ `<repo-url>/pull/636` or `<repo-url>/issues/1048`.
241
+ - **Named external trackers** (Linear `ESP-1705`, Jira `PROJ-123`) →
242
+ link only when the workspace URL is established in loaded context
243
+ (e.g., a `linear.app/<workspace>/...` URL appeared earlier in the
244
+ session or in `AGENTS.md`); otherwise leave as text.
245
+
246
+ **Do not invent URLs.** If `origin` isn't a GitHub URL (GitLab,
247
+ Bitbucket, internal host) and the equivalent main-tree URL pattern
248
+ isn't obvious, leave entries as `<code>` text. If the external
249
+ tracker workspace isn't established, leave as text. A broken or
250
+ guessed link is worse than no link.
251
+
252
+ **Scope: reference index only, not inline prose.** Inline `<code>`
253
+ mentions of paths or PRs inside paragraph prose stay as code or text.
254
+ Linking every mention would clutter; readers expect clickable jumps
255
+ where the doc presents itself as a reference index.
256
+
257
+ ### Stable section anchors for unified plans
258
+
259
+ When rendering a unified plan, every major logical section gets a stable
260
+ anchor ID and visible heading text:
261
+
262
+ | Logical section | Required id |
263
+ |---|---|
264
+ | Goal Capsule | `goal-capsule` |
265
+ | Product Contract | `product-contract` |
266
+ | Product Requirements | `product-requirements` |
267
+ | Planning Contract | `planning-contract` |
268
+ | Implementation Units | `implementation-units` |
269
+ | Verification Contract | `verification-contract` |
270
+ | Definition of Done | `definition-of-done` |
271
+ | Appendix | `appendix` |
272
+
273
+ Long HTML plans are agent-consumed as source text as often as they are read in
274
+ a browser. Keep the heading text visible and adjacent to the `id`; do not rely
275
+ on a nav link alone to carry the section name.
276
+
277
+ Optional sections with a contract-defined semantic role put that role on their
278
+ wrapping `<section>` with `data-ce-section`. For example, the broader-work
279
+ relationship section uses `data-ce-section="work-relationships"`. The role is
280
+ stable even when the visible heading changes; it supplements, rather than
281
+ replaces, readable heading text and any useful anchor.
282
+
283
+ ### Text contrast is local
284
+
285
+ Every text-on-background pairing must hold up on its own. A color that
286
+ works for prose on the page background does not automatically work for
287
+ a small label inside a tinted container. The most common violation:
288
+ applying a generic "muted" text variable (calibrated for prose-on-bg) to
289
+ secondary text inside an accent-soft / warn-soft / info-soft container.
290
+
291
+ Test by reading each filled shape's labels at the rendered scale. If the
292
+ subtitle or secondary text feels washed-out against the fill, the choice
293
+ is wrong for that local context — pick a color from the same family as
294
+ the fill (accent-text for accent-soft, etc.) or drop the muting entirely
295
+ and rely on font-size and weight for hierarchy.
296
+
297
+ ### Body bold not colored by default
298
+
299
+ Reserve accent text color for status chips, ID chips, links, and section
300
+ borders. Do NOT color `<strong>` in body content by default. Bold weight
301
+ already carries emphasis; applying accent color to every `<strong>` in a
302
+ long list overwhelms the eye, especially in dark mode. CSS should leave
303
+ `strong` at `color: inherit` unless a specific surface (status pill, ID
304
+ chip) is being styled.
305
+
306
+ ### Chips and pills: uniform shape, no one-sided accent
307
+
308
+ Status chips, ID chips, and metric pills in the same row share one shape
309
+ — same border-radius, border weight, and fill treatment. Differentiate
310
+ categories only by the chip's overall fill/text color (applied to the
311
+ whole pill, like a soft-tint badge), never by an accent on one edge. A
312
+ colored stripe or arc on a single side of a pill reads as broken and
313
+ asymmetric — as if a border half-failed to render — so avoid it. The same
314
+ holds for any element, not just chips: differentiate by a full tint, not
315
+ a colored stripe on one edge. If an ID chip should stand out from metric
316
+ chips, vary its fill/text color uniformly, not its edge treatment, and
317
+ keep every chip in the row a visual set.
318
+
319
+ ### No JS framework runtimes
320
+
321
+ A small inline `<script>` for active-section TOC tracking or anchor-
322
+ permalink behavior is acceptable. React, Vue, Svelte, or any framework
323
+ runtime is not. The single-file invariant doesn't permit framework
324
+ bundles, and the artifact's longevity doesn't warrant a build dependency.
325
+
326
+ ## Section anatomy
327
+
328
+ How section types commonly render in HTML. These are patterns, not
329
+ contracts — the agent picks shapes that fit the content.
330
+
331
+ - **Summary / Problem Frame** — semantic `<section>` with prose
332
+ paragraphs. Optionally precede with an eyebrow label (small-caps tag
333
+ above the title) for editorial polish.
334
+ - **Requirements** — `<table>` is the default at 5+ uniform items;
335
+ bullets at smaller counts. Concern-grouping takes precedence over the
336
+ flat-table default: when requirements span distinct concerns, group them
337
+ under bold inline headers (or per-group sections) first, then apply the
338
+ 5+ table default *within* each group rather than flattening the whole
339
+ section into one table. Each row has the R-ID as visible text in
340
+ its own column. Consider adding a "covered by" column for reverse
341
+ traceability when ID-anchored items have downstream references in
342
+ the same doc.
343
+ - **Implementation Units** — repeating `<article>` cards with a stable
344
+ ID chip (visible "U1" text), a metadata strip (`<dl>` with field
345
+ labels and values for Goal, Files, Dependencies), and secondary
346
+ content (Approach, Test Scenarios, Verification, Patterns to Follow)
347
+ inside `<details>` collapsibles, **default-closed**. At 3+ units the
348
+ default-closed rule must hold — rendering all units fully
349
+ expanded turns the doc into one continuous scroll where the reader
350
+ can't see the unit list at a glance. The metadata strip is the
351
+ primary always-visible surface; subsection labels (`<summary>`) are
352
+ clickable affordances for readers to expand on demand. A single unit
353
+ with no secondary content can skip `<details>` entirely; the rule
354
+ applies when there is content to hide. The `<dl>` strip is for *descriptive*
355
+ fields (Goal, Files, Dependencies). A *directive* field — `Execution
356
+ note` is the canonical case, carrying a procedural instruction the
357
+ implementer must act on (e.g. "start with a failing integration test") —
358
+ does not belong in the strip, where it renders as a passive pair styled
359
+ like a date and gets skimmed past. Render it as an advisory callout (see
360
+ Tinted callout cards) so its visual weight matches its actionability. The
361
+ test: descriptive value -> metadata pair; something the reader must act
362
+ on -> callout.
363
+ - **Key Technical Decisions** — repeating cards with the decision ID,
364
+ bold decision title (often with inline code for technical
365
+ identifiers), and prose rationale. Flat cards (not collapsibles) —
366
+ these are reference material readers scan, not drill into. A
367
+ `session-settled:` annotation renders as visible text in the card —
368
+ never an attribute or hidden markup — stem preserved verbatim so
369
+ grep works on the HTML artifact.
370
+ - **Risks** — cards with a color-coded status eyebrow (e.g., "RISK ·
371
+ MITIGATED" / "OPEN · DEFERRED FOLLOW-UP") and prose body. Communicate
372
+ status through the eyebrow's color plus an optional subtle full-card
373
+ tint — not a colored stripe on one edge (see "Chips and pills").
374
+ - **Scope Boundaries** — callout cards distinguished (in-scope vs deferred
375
+ vs outside) by a colored eyebrow/label plus a subtle full-card tint when
376
+ the distinction is meaningful — not a one-edge colored stripe.
377
+
378
+ The agent picks more elaborate or simpler shapes based on what each
379
+ specific artifact's content needs.
380
+
381
+ ## Diagrams
382
+
383
+ When the section contract calls for a diagram (architecture, sequence,
384
+ flowchart, state machine, swim lane, data-flow, quantitative
385
+ comparison), HTML renders it as **inline SVG**. The agent picks the
386
+ shape that conveys the content fastest — there is no fixed catalog of
387
+ "approved" diagram types. If the content is quantitative comparison
388
+ across categories, a bar chart is the right shape; if it's component
389
+ relationships, a topology diagram; if it's process flow across
390
+ participants, a swim lane; etc.
391
+
392
+ **Conceptual diagrams are not wireframes.** The wireframe affordance below
393
+ is scoped to *UI-shaped requirements* and is excluded for non-visual
394
+ systems. That exclusion is about wireframes only —
395
+ a brainstorm about a data model, schema, agent workflow, or migration is
396
+ still free to use a conceptual diagram (a before/after field map, a
397
+ source-of-truth fan-out, a state diagram). Don't let the wireframe
398
+ exclusion suppress a conceptual diagram the content warrants.
399
+
400
+ **Diagrams complement prose; they never replace it.** A diagram is an
401
+ accelerant placed next to the prose it illustrates, not a substitute. The
402
+ ID-bearing prose stays complete and standalone — a reader who ignores every
403
+ diagram still gets the full content in text, and a text-reading downstream
404
+ agent (which does not parse SVG geometry) is never left with a relationship
405
+ that exists only in the picture. This extends the prose-is-authoritative
406
+ rule above: prose governs not only on disagreement but on completeness, so
407
+ adding a diagram is not license to thin the prose it depicts.
408
+
409
+ ### Layout legibility for hand-authored SVG
410
+
411
+ The agent designs SVG coordinates without rendering — layouts that look
412
+ fine in source can collide in practice. Before emitting, trace each
413
+ labeled arrow, each shape edge, and each text label:
414
+
415
+ - **No stroke — arrow *or* shape edge/border — passes through a text
416
+ label.** If an arrow line/curve, or the border of a box, parallelogram,
417
+ or other shape, crosses a label's bounding box, the text reads as
418
+ struck-through and the stroke reads as terminating at the wrong element.
419
+ Fix by re-routing the arrow, moving the label clear of every edge, or
420
+ applying `paint-order: stroke fill` with a stroke color matching the
421
+ diagram background to halo the label. The halo width is a judgment call:
422
+ narrow enough not to bleed into glyph strokes (a halo whose width
423
+ approaches the glyph's own stroke width muddies the text color), wide
424
+ enough to mask the underlying stroke (at least its stroke width
425
+ plus a hairline). Verify by inspecting rendered text at the target
426
+ font size — if glyphs look thicker or more colored-toward-halo than
427
+ the same text outside the diagram, the halo is too wide.
428
+ - **Labels inside skewed or rotated shapes sit in the shape's true
429
+ interior, not its bounding box.** A parallelogram, isometric face, or
430
+ rotated rect has an interior offset from its bounding box, so a
431
+ box-aligned (e.g. left-aligned) label spills past the slanted edge.
432
+ Inset the label to fall inside the actual shape — account for the
433
+ skew/rotation offset at the label's vertical position — or place it
434
+ outside the shape with a short leader. This is the usual failure in the
435
+ **stacked-layers idiom** (offset parallelograms implying z-order), where
436
+ per-layer labels left-aligned to the container both overflow the lower
437
+ layers and get crossed by the neighbouring layer's edge. Prefer
438
+ labelling each layer in its own un-overlapped region, or to the side of
439
+ the stack.
440
+ - **Arrow labels sit adjacent to the arrow's midpoint** (typically
441
+ within ~10-15px above or beside the line they describe). A label
442
+ floating at the diagram's edge that readers have to trace back to an
443
+ arrow is broken — readers will misread.
444
+ - **Avoid long curves that traverse the diagram** to connect a
445
+ component on one side to one on the other. If A and D need a labeled
446
+ connection across a multi-component layout, prefer reordering boxes
447
+ so A and D are adjacent, numbered step badges next to each
448
+ participant that the caption ties together, or a short
449
+ labeled-channel notation — rather than one curve crossing multiple
450
+ unrelated elements.
451
+ - **Differentiate diagram shapes by geometry first, by fill semantics
452
+ second.** Geometry (diamond = decision, rect = step, oval =
453
+ start/end, parallelogram = data) carries the role unambiguously.
454
+ Fill semantics (accent-soft for highlighted path, warn-soft for
455
+ fallthrough) carry meaning. Resist introducing additional neutral-tint
456
+ tiers (a slightly-lighter grey to mark "decision shapes are different
457
+ from boxes") — when geometry already differentiates, an additional
458
+ luminance tier adds no information and creates fragility: small RGB
459
+ deltas survive native browser rendering but can be flattened or
460
+ inverted inconsistently by dark-mode extensions, accessibility
461
+ plugins, or printing.
462
+
463
+ ### Plan architecture diagrams are not directional sketches
464
+
465
+ Do not add hedging captions or section preambles to plan SVG diagrams —
466
+ phrases like "directional guidance for review, not implementation
467
+ specification" do not belong on plan diagrams or on unit-card
468
+ technical-design subsections. Plan diagrams render the same authoritative
469
+ content as the surrounding prose; the prose-is-authoritative rule
470
+ already governs disagreement. Hedging language is reserved for the
471
+ wireframe affordance below, which carries a *required* directional
472
+ caption because the wireframe is explicitly NOT a spec.
473
+
474
+ ## Wireframe mockups (requirements docs only)
475
+
476
+ When a brainstorm requirement describes a user-facing visual surface (UI
477
+ feature, screen layout, screen flow, component placement), the HTML
478
+ rendering may include a wireframe mockup. The trigger is the
479
+ **requirement**, not the document: any requirement (or requirements group)
480
+ with a UI/layout shape can carry a wireframe, whether or not the brainstorm
481
+ as a whole is "a visual product" — a backend-heavy brainstorm with one
482
+ screen change still earns a wireframe for that requirement. It still applies
483
+ to brainstorm **requirements** output — the requirements-only unified plan
484
+ `ce-brainstorm` writes (now under `<root>/plans/`), not an implementation-ready
485
+ plan (`ce-plan`'s enriched output) — and only to UI-shaped requirements — a
486
+ non-visual requirement (API design, data model, agent workflow,
487
+ infrastructure) takes a conceptual diagram instead, not a
488
+ wireframe.
489
+
490
+ When a wireframe is included:
491
+
492
+ - **Fidelity ceiling: wireframe, not mockup.** Gray boxes for layout
493
+ regions, text labels for content placeholders, intentional placeholder
494
+ copy (`[Product name]`, `[CTA label]`, `[user avatar]`). No
495
+ pixel-perfect colors, no exact typography choices, no specific
496
+ component-library references. The wireframe communicates spatial
497
+ arrangement and structure, not visual style.
498
+ - **Static only.** Inline SVG or simple HTML/CSS for layout. No JS
499
+ interaction, no working form fields, no state changes, no live data.
500
+ - **Anti-padding.** One wireframe per distinct visual concept.
501
+ - **Mandatory directional caption.** Every wireframe carries an explicit
502
+ "directional, not the spec" note adjacent to it. Required wording (or
503
+ close paraphrase): *"Directional only — illustrates the intended
504
+ user-facing shape. Exact colors, spacing, copy, and component choices
505
+ are placeholders for review, not requirements."*
506
+
507
+ Without this caption the wireframe risks being read as a binding visual
508
+ spec, which the affordance is explicitly designed to avoid.
509
+
510
+ ## Affordance idioms
511
+
512
+ Common HTML affordances the agent can reach for when content benefits.
513
+ These are examples, not requirements — the agent picks what each
514
+ artifact's content warrants. Other affordances not listed here are
515
+ fine when the content suggests them.
516
+
517
+ - **Sticky TOC sidebar with active-section indicator** — available when
518
+ the agent judges navigation will materially help and the
519
+ implementation is reliable: two-column layout on desktop, collapsed
520
+ to top-of-page on mobile, paired with a small inline
521
+ `IntersectionObserver` script that toggles `.active` on the matching
522
+ nav anchor. Trade-off: a broken sticky TOC (layout collisions,
523
+ active-section state drift, dark-mode CSS issues) is worse than a
524
+ static top-of-doc TOC. For most long docs, default-closed `<details>`
525
+ on repeating cards (see Implementation Units anatomy) already cuts
526
+ the visible scroll length enough that a static TOC works — reach for
527
+ sticky only when collapsibles alone don't solve the navigation
528
+ problem.
529
+ - **Within-section sub-nav** for sections containing 6+ repeating cards
530
+ (Implementation Units, KTDs, Risks at large counts). A short list of
531
+ card-anchor links (`<ul>` of `<a href="#u1">U1. ...</a>`) rendered at
532
+ the top of the section gives readers a jump table — no JS needed.
533
+ Lower-complexity alternative to the sticky TOC for the specific case
534
+ of long card sections.
535
+ - **Eyebrow labels** (small-caps tag above section titles) for
536
+ editorial polish, especially when section titles are narrative
537
+ rather than literal.
538
+ - **Stats strip** at the top of the doc when the artifact has 3+
539
+ quantifiable signals worth surfacing at a glance.
540
+ - **`<details>` + `<summary>`** for collapsible secondary content
541
+ inside repeating cards. All collapsibles start closed — `open`
542
+ attribute should not appear on any `<details>` inside repeating
543
+ cards by default.
544
+ - **Side-by-side columns** for parallel content (Request / Response,
545
+ Before / After, Two alternatives).
546
+ - **Tinted callout cards** for content that is "different in kind"
547
+ (Deferred, Open Questions, advisory notes, unit-level execution notes)
548
+ — a subtle full-card background tint plus a colored eyebrow/label
549
+ communicates kind at a glance. Avoid a colored stripe on one edge; tint
550
+ the whole card instead.
551
+
552
+ ## Agent-consumability rules
553
+
554
+ Downstream agents that read HTML today (`ce-doc-review`, `ce-work`, a skill
555
+ re-reading its own prior artifact on a resume run, future consumers) reason
556
+ over the HTML as text — the way they reason over markdown, not via DOM
557
+ extraction or a script-style parse.
558
+
559
+ These rules are why such a consumer can locate one item (a single
560
+ requirement, unit, idea, or other ID-bearing entry) and reason over it from
561
+ source alone — its title, every labeled field, and any diagram's meaning —
562
+ with no hidden machine-readable copy to fall back on. The semantic structure
563
+ *is* the extraction contract: it is what makes the single-source-of-truth
564
+ invariant (no `data-*` or JSON metadata mirror) safe rather than lossy.
565
+ Weakening it — `<article>` item boundaries collapsed into `<div>` soup, a
566
+ field label demoted to an attribute, one item's content scattered across
567
+ distant parts of the doc — breaks that reasoning even when the rendered page
568
+ looks identical. Compose so semantic understanding is reachable in source:
569
+
570
+ - **Use semantic HTML over `<div>` soup.** `<article>` per unit card,
571
+ `<dl>` for metadata pairs, `<table>` for tabular content, `<details>`
572
+ / `<summary>` for collapsibles, `<section>` for top-level doc
573
+ sections. Structure markers carry meaning to a text-reading agent.
574
+ - **Render field labels as visible text, not as attributes.** Emit
575
+ `<dt>GOAL</dt><dd>...</dd>`, not `<dd data-field="goal">...</dd>`.
576
+ The label is the semantic anchor.
577
+ - **Keep U-IDs, R-IDs, and similar as visible text** in headings and
578
+ table cells, not only as `id=""` attributes. The agent finds "U1." in
579
+ source the same way it finds "U1." in markdown.
580
+ - **Match section heading vocabulary to what the section contract
581
+ defines.** When the section contract says "Implementation Units," the
582
+ HTML heading is "Implementation Units" — not "How we'll build it,"
583
+ even if the narrative version reads better. Section heading
584
+ vocabulary is the contract downstream consumers grep for. (Editorial
585
+ re-titles can appear as eyebrow labels, sub-headings, or visual
586
+ framing — but the section heading itself, the one downstream agents
587
+ grep for, matches the contract name.)
588
+ - **All semantic content lives in actual HTML text.** No CSS `::before
589
+ { content: "..." }` carrying meaning, no background images as
590
+ content, no semantic info that only renders. Whatever the agent sees
591
+ in source is what it knows.
592
+ - **Stable structure is the public API.** Element types, the ID and
593
+ label scheme, and the field-label vocabulary do not break across
594
+ versions. Visual styling can change freely.
595
+
596
+ ## Post-compose audit
597
+
598
+ Before returning the artifact, scan it for common slips:
599
+
600
+ - **Single self-contained file.** No companion `.css` / `.js` / `.svg`.
601
+ - **No hidden machine-readable metadata copy.** No
602
+ `<script type="application/json">` frontmatter block, no `data-*`
603
+ attributes mirroring visible values, **no `<meta name="created">` /
604
+ `<meta name="origin">` etc. in `<head>`
605
+ duplicating the visible header**. Metadata lives in visible text;
606
+ one source of truth per value.
607
+ - **All stable IDs** appear as both `id=""` and visible text.
608
+ - **Section heading vocabulary** matches the section contract names
609
+ (downstream agents grep these).
610
+ - **Source / composition signal** is present as a visible footer at
611
+ the bottom of the doc (composition timestamp + source identifier).
612
+ - **Repeating cards with 3+ instances put secondary content inside
613
+ default-closed `<details>`.** Fully-expanded unit cards in a long
614
+ Implementation Units section is a failure mode — the reader can't see
615
+ the unit list at a glance. Verify by skimming the rendered units:
616
+ each `<article>` should render as its ID + title + metadata strip
617
+ with collapsibles below, not as one long block.
618
+ - **Within-section sub-nav** is present for sections with 6+ repeating
619
+ cards.
620
+ - **Body `<strong>`** is not colored with accent palette.
621
+ - **No one-edge colored accent** (a colored stripe/arc on a single side)
622
+ on chips, pills, or callout cards — differentiate by uniform fill +
623
+ colored eyebrow/label instead. A one-sided stripe reads as
624
+ broken/unintentional; chips in a row must be a uniform visual set.
625
+ - **`<details>`** inside repeating cards have no `open` attribute.
626
+ - **Diagram labels** are legible — no arrow paths crossing text,
627
+ halo width appropriate for font size.
628
+ - **Diagrams complement prose, not replace it.** Every relationship a
629
+ diagram conveys is also present in the surrounding ID-bearing prose; no
630
+ content lives only in an SVG.
631
+ - **No JS framework runtimes** included. Small inline `<script>` for
632
+ active-section TOC tracking or anchor-permalink behavior is the only
633
+ acceptable JS.
634
+ - **Each heading level** is visually distinct from others and from
635
+ inline bold.
636
+ - **No template placeholders** (`{skill}`, `<value>`, `[plan title]`)
637
+ leaked into output.
638
+ - **No process exhaust** callouts in the artifact.