@nurix/etna 0.19.41 → 0.19.43

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 (360) hide show
  1. package/bin/etna.js +14 -0
  2. package/data/harness-index.json +5 -1
  3. package/data/harnesses/apollo/.prettierignore +29 -0
  4. package/data/harnesses/apollo/.prettierrc.json +3 -0
  5. package/data/harnesses/apollo/.vscode/settings.json +19 -0
  6. package/data/harnesses/apollo/CLAUDE.md +162 -0
  7. package/data/harnesses/apollo/agents/brainstorm.md +144 -0
  8. package/data/harnesses/apollo/agents/change-review.md +251 -0
  9. package/data/harnesses/apollo/agents/lld-mode.md +56 -0
  10. package/data/harnesses/apollo/agents/maintenance.md +229 -0
  11. package/data/harnesses/apollo/agents/performance-review.md +223 -0
  12. package/data/harnesses/apollo/agents/retro.md +46 -0
  13. package/data/harnesses/apollo/codex/agents/brainstorm.toml +142 -0
  14. package/data/harnesses/apollo/codex/agents/change-review.toml +249 -0
  15. package/data/harnesses/apollo/codex/agents/lld-mode.toml +52 -0
  16. package/data/harnesses/apollo/codex/agents/maintenance.toml +228 -0
  17. package/data/harnesses/apollo/codex/agents/performance-review.toml +222 -0
  18. package/data/harnesses/apollo/codex/agents/retro.toml +45 -0
  19. package/data/harnesses/apollo/docs/README.md +28 -0
  20. package/data/harnesses/apollo/docs/history/CHANGELOG.md +26 -0
  21. package/data/harnesses/apollo/docs/history/backlog.md +19 -0
  22. package/data/harnesses/apollo/docs/memory/main.md +15 -0
  23. package/data/harnesses/apollo/docs/structure.md +54 -0
  24. package/data/harnesses/apollo/harness.json +18 -0
  25. package/data/harnesses/apollo/hooks/generate-ownership-index.mjs +148 -0
  26. package/data/harnesses/apollo/hooks/hooks.json +16 -0
  27. package/data/harnesses/apollo/rules/changelog.md +19 -0
  28. package/data/harnesses/apollo/rules/database.md +123 -0
  29. package/data/harnesses/apollo/rules/express.md +33 -0
  30. package/data/harnesses/apollo/rules/frontend.md +32 -0
  31. package/data/harnesses/apollo/rules/general.md +62 -0
  32. package/data/harnesses/apollo/rules/nomenclature.md +34 -0
  33. package/data/harnesses/apollo/rules/pnpm.md +57 -0
  34. package/data/harnesses/apollo/rules/testing.md +23 -0
  35. package/data/harnesses/apollo/rules/verification.md +67 -0
  36. package/data/harnesses/apollo/skills/boundary/SKILL.md +69 -0
  37. package/data/harnesses/apollo/skills/boundary/references/index.md +16 -0
  38. package/data/harnesses/apollo/skills/boundary/references/mechanisms.md +99 -0
  39. package/data/harnesses/apollo/skills/boundary/references/packs/async-messaging.md +81 -0
  40. package/data/harnesses/apollo/skills/boundary/references/packs/auth.md +93 -0
  41. package/data/harnesses/apollo/skills/boundary/references/packs/build-config-runtime.md +93 -0
  42. package/data/harnesses/apollo/skills/boundary/references/packs/cloudflare.md +93 -0
  43. package/data/harnesses/apollo/skills/boundary/references/packs/frontend.md +93 -0
  44. package/data/harnesses/apollo/skills/boundary/references/packs/generic-tail.md +55 -0
  45. package/data/harnesses/apollo/skills/boundary/references/packs/persistence.md +93 -0
  46. package/data/harnesses/apollo/skills/boundary/references/packs/wire-api.md +87 -0
  47. package/data/harnesses/apollo/skills/brainstorm/README.md +56 -0
  48. package/data/harnesses/apollo/skills/brainstorm/SKILL.md +173 -0
  49. package/data/harnesses/apollo/skills/brainstorm/references/doctrine.md +98 -0
  50. package/data/harnesses/apollo/skills/brainstorm/references/harvest.md +86 -0
  51. package/data/harnesses/apollo/skills/brainstorm/references/session-schema.md +186 -0
  52. package/data/harnesses/apollo/skills/brainstorm/scripts/detector.mjs +460 -0
  53. package/data/harnesses/apollo/skills/design/SKILL.md +100 -0
  54. package/data/harnesses/apollo/skills/design/components/charts.md +76 -0
  55. package/data/harnesses/apollo/skills/design/components/collections.md +132 -0
  56. package/data/harnesses/apollo/skills/design/components/feedback.md +47 -0
  57. package/data/harnesses/apollo/skills/design/components/hooks.md +35 -0
  58. package/data/harnesses/apollo/skills/design/components/index.md +143 -0
  59. package/data/harnesses/apollo/skills/design/components/inputs.md +327 -0
  60. package/data/harnesses/apollo/skills/design/components/layout.md +52 -0
  61. package/data/harnesses/apollo/skills/design/components/media.md +66 -0
  62. package/data/harnesses/apollo/skills/design/components/motion.md +82 -0
  63. package/data/harnesses/apollo/skills/design/components/navigation.md +29 -0
  64. package/data/harnesses/apollo/skills/design/components/overlays.md +72 -0
  65. package/data/harnesses/apollo/skills/design/components/setup.md +40 -0
  66. package/data/harnesses/apollo/skills/design/components/typography.md +46 -0
  67. package/data/harnesses/apollo/skills/design/components/utils.md +37 -0
  68. package/data/harnesses/apollo/skills/design/data/blueprints/browse.md +38 -0
  69. package/data/harnesses/apollo/skills/design/data/blueprints/creation-flow.md +38 -0
  70. package/data/harnesses/apollo/skills/design/data/blueprints/dashboard.md +38 -0
  71. package/data/harnesses/apollo/skills/design/data/blueprints/grid.md +38 -0
  72. package/data/harnesses/apollo/skills/design/data/blueprints/queue.md +38 -0
  73. package/data/harnesses/apollo/skills/design/data/blueprints/record-detail.md +38 -0
  74. package/data/harnesses/apollo/skills/design/data/blueprints/settings.md +38 -0
  75. package/data/harnesses/apollo/skills/design/data/chart-styling/Readme.md +33 -0
  76. package/data/harnesses/apollo/skills/design/data/chart-styling/carbon-accessible-alert-semantic.md +19 -0
  77. package/data/harnesses/apollo/skills/design/data/chart-styling/carbon-monochrome-sequential-trend.md +19 -0
  78. package/data/harnesses/apollo/skills/design/data/chart-styling/datadog-classic-six-aligned.md +19 -0
  79. package/data/harnesses/apollo/skills/design/data/chart-styling/datawrapper-tiered-gray-hierarchy.md +19 -0
  80. package/data/harnesses/apollo/skills/design/data/chart-styling/econ-red-rule-horizontal.md +19 -0
  81. package/data/harnesses/apollo/skills/design/data/chart-styling/financial-diverging-threshold-overlay.md +19 -0
  82. package/data/harnesses/apollo/skills/design/data/chart-styling/ft-vocabulary-ranked-muted.md +19 -0
  83. package/data/harnesses/apollo/skills/design/data/chart-styling/grafana-dark-threshold-bands.md +19 -0
  84. package/data/harnesses/apollo/skills/design/data/chart-styling/material-rounded-explicit-label.md +19 -0
  85. package/data/harnesses/apollo/skills/design/data/chart-styling/nyt-ghost-grid-direct-label.md +19 -0
  86. package/data/harnesses/apollo/skills/design/data/chart-styling/plot-currentcolor-inherit.md +19 -0
  87. package/data/harnesses/apollo/skills/design/data/chart-styling/saas-gradient-glow-area.md +19 -0
  88. package/data/harnesses/apollo/skills/design/data/chart-styling/shadcn-composable-css-vars.md +19 -0
  89. package/data/harnesses/apollo/skills/design/data/charts/census.csv +58 -0
  90. package/data/harnesses/apollo/skills/design/data/checklists/browse.md +21 -0
  91. package/data/harnesses/apollo/skills/design/data/checklists/creation-flow.md +20 -0
  92. package/data/harnesses/apollo/skills/design/data/checklists/dashboard.md +21 -0
  93. package/data/harnesses/apollo/skills/design/data/checklists/grid.md +21 -0
  94. package/data/harnesses/apollo/skills/design/data/checklists/queue.md +21 -0
  95. package/data/harnesses/apollo/skills/design/data/checklists/record-detail.md +21 -0
  96. package/data/harnesses/apollo/skills/design/data/checklists/settings.md +21 -0
  97. package/data/harnesses/apollo/skills/design/data/chrome/board-column.md +68 -0
  98. package/data/harnesses/apollo/skills/design/data/chrome/data-table.md +63 -0
  99. package/data/harnesses/apollo/skills/design/data/chrome/side-panel.md +60 -0
  100. package/data/harnesses/apollo/skills/design/data/chrome/sidebar.md +78 -0
  101. package/data/harnesses/apollo/skills/design/data/chrome/stat-cards.md +62 -0
  102. package/data/harnesses/apollo/skills/design/data/chrome/topbar.md +65 -0
  103. package/data/harnesses/apollo/skills/design/data/color/accent-presets.md +90 -0
  104. package/data/harnesses/apollo/skills/design/data/color/aesop-earth-mute.md +91 -0
  105. package/data/harnesses/apollo/skills/design/data/color/arc-peach-play.md +90 -0
  106. package/data/harnesses/apollo/skills/design/data/color/attio-hunter-teal.md +90 -0
  107. package/data/harnesses/apollo/skills/design/data/color/carbon-cyan-signal.md +90 -0
  108. package/data/harnesses/apollo/skills/design/data/color/clay-parchment.md +90 -0
  109. package/data/harnesses/apollo/skills/design/data/color/duolingo-feather.md +90 -0
  110. package/data/harnesses/apollo/skills/design/data/color/geist-mono-signal.md +90 -0
  111. package/data/harnesses/apollo/skills/design/data/color/linear-graphite-violet.md +90 -0
  112. package/data/harnesses/apollo/skills/design/data/color/mercury-onyx-cobalt.md +90 -0
  113. package/data/harnesses/apollo/skills/design/data/color/notion-paper-ink.md +90 -0
  114. package/data/harnesses/apollo/skills/design/data/color/radix-slate-iris.md +90 -0
  115. package/data/harnesses/apollo/skills/design/data/color/raycast-void-spectrum.md +90 -0
  116. package/data/harnesses/apollo/skills/design/data/color/spectrum-celery-fuchsia.md +90 -0
  117. package/data/harnesses/apollo/skills/design/data/color/stripe-blurple-ruby.md +90 -0
  118. package/data/harnesses/apollo/skills/design/data/color/superhuman-cod-picton.md +89 -0
  119. package/data/harnesses/apollo/skills/design/data/corpora/operations-review/companies.csv +15 -0
  120. package/data/harnesses/apollo/skills/design/data/corpora/operations-review/corpus.md +87 -0
  121. package/data/harnesses/apollo/skills/design/data/corpora/operations-review/people.csv +25 -0
  122. package/data/harnesses/apollo/skills/design/data/corpora/procurement-approvals/companies.csv +15 -0
  123. package/data/harnesses/apollo/skills/design/data/corpora/procurement-approvals/corpus.md +83 -0
  124. package/data/harnesses/apollo/skills/design/data/corpora/procurement-approvals/people.csv +25 -0
  125. package/data/harnesses/apollo/skills/design/data/corpora/revenue-analytics/companies.csv +15 -0
  126. package/data/harnesses/apollo/skills/design/data/corpora/revenue-analytics/corpus.md +89 -0
  127. package/data/harnesses/apollo/skills/design/data/corpora/revenue-analytics/people.csv +25 -0
  128. package/data/harnesses/apollo/skills/design/data/elevation/ant-design-directional-shadow.md +19 -0
  129. package/data/harnesses/apollo/skills/design/data/elevation/apple-liquid-glass-material.md +18 -0
  130. package/data/harnesses/apollo/skills/design/data/elevation/atlassian-surface-shadow-pairing.md +20 -0
  131. package/data/harnesses/apollo/skills/design/data/elevation/fluent-2-key-ambient-ramp.md +20 -0
  132. package/data/harnesses/apollo/skills/design/data/elevation/github-primer-sparing-shadow.md +19 -0
  133. package/data/harnesses/apollo/skills/design/data/elevation/ibm-carbon-layer-and-border.md +19 -0
  134. package/data/harnesses/apollo/skills/design/data/elevation/linear-dark-surface-ladder.md +17 -0
  135. package/data/harnesses/apollo/skills/design/data/elevation/material-2-key-ambient-dp-ramp.md +19 -0
  136. package/data/harnesses/apollo/skills/design/data/elevation/material-3-tonal-elevation.md +21 -0
  137. package/data/harnesses/apollo/skills/design/data/elevation/neobrutalist-hard-offset.md +19 -0
  138. package/data/harnesses/apollo/skills/design/data/elevation/neumorphic-soft-dual-shadow.md +18 -0
  139. package/data/harnesses/apollo/skills/design/data/elevation/notion-warm-minimal-hairline.md +17 -0
  140. package/data/harnesses/apollo/skills/design/data/elevation/polaris-elevation-inset-bevel.md +21 -0
  141. package/data/harnesses/apollo/skills/design/data/elevation/radix-themes-alpha-ring-scale.md +19 -0
  142. package/data/harnesses/apollo/skills/design/data/elevation/shadcn-neutral-derived-radius.md +19 -0
  143. package/data/harnesses/apollo/skills/design/data/elevation/stripe-brand-tinted-dual-shadow.md +18 -0
  144. package/data/harnesses/apollo/skills/design/data/elevation/tailwind-default-utility-scale.md +19 -0
  145. package/data/harnesses/apollo/skills/design/data/elevation/vercel-geist-shadow-as-border.md +20 -0
  146. package/data/harnesses/apollo/skills/design/data/gradients/amber-attention-fill.md +16 -0
  147. package/data/harnesses/apollo/skills/design/data/gradients/cloud-shadow-wash.md +16 -0
  148. package/data/harnesses/apollo/skills/design/data/gradients/confident-lavender-wash.md +16 -0
  149. package/data/harnesses/apollo/skills/design/data/gradients/ember-ship-flare.md +18 -0
  150. package/data/harnesses/apollo/skills/design/data/gradients/full-metal-wash.md +16 -0
  151. package/data/harnesses/apollo/skills/design/data/gradients/indigo-ruby-cta-band.md +18 -0
  152. package/data/harnesses/apollo/skills/design/data/gradients/linear-graphite-wash.md +18 -0
  153. package/data/harnesses/apollo/skills/design/data/gradients/marble-quartz-wash.md +16 -0
  154. package/data/harnesses/apollo/skills/design/data/gradients/midnight-aurora-panel.md +16 -0
  155. package/data/harnesses/apollo/skills/design/data/gradients/neutral-volume-fill.md +16 -0
  156. package/data/harnesses/apollo/skills/design/data/gradients/revenue-uptrend-fill.md +16 -0
  157. package/data/harnesses/apollo/skills/design/data/gradients/risk-decline-fill.md +16 -0
  158. package/data/harnesses/apollo/skills/design/data/gradients/signal-blue-develop.md +18 -0
  159. package/data/harnesses/apollo/skills/design/data/gradients/slate-mist-wash.md +16 -0
  160. package/data/harnesses/apollo/skills/design/data/gradients/stripe-atmosphere-mesh.md +18 -0
  161. package/data/harnesses/apollo/skills/design/data/gradients/teal-signal-accent.md +16 -0
  162. package/data/harnesses/apollo/skills/design/data/gradients/violet-magenta-promo.md +16 -0
  163. package/data/harnesses/apollo/skills/design/data/iconography.md +199 -0
  164. package/data/harnesses/apollo/skills/design/data/motion/accordion-expand.md +18 -0
  165. package/data/harnesses/apollo/skills/design/data/motion/destructive-hold-confirm.md +18 -0
  166. package/data/harnesses/apollo/skills/design/data/motion/drag-dismiss-momentum.md +18 -0
  167. package/data/harnesses/apollo/skills/design/data/motion/empty-state-arrive.md +18 -0
  168. package/data/harnesses/apollo/skills/design/data/motion/hover-lift.md +18 -0
  169. package/data/harnesses/apollo/skills/design/data/motion/modal-center-arrive.md +18 -0
  170. package/data/harnesses/apollo/skills/design/data/motion/number-ticker-roll.md +18 -0
  171. package/data/harnesses/apollo/skills/design/data/motion/onboarding-bounce.md +18 -0
  172. package/data/harnesses/apollo/skills/design/data/motion/panel-slide.md +18 -0
  173. package/data/harnesses/apollo/skills/design/data/motion/press-feedback.md +18 -0
  174. package/data/harnesses/apollo/skills/design/data/motion/progress-linear-loop.md +18 -0
  175. package/data/harnesses/apollo/skills/design/data/motion/route-crossfade.md +18 -0
  176. package/data/harnesses/apollo/skills/design/data/motion/rubber-band-overscroll.md +18 -0
  177. package/data/harnesses/apollo/skills/design/data/motion/skeleton-shimmer.md +18 -0
  178. package/data/harnesses/apollo/skills/design/data/motion/stagger-arrive.md +18 -0
  179. package/data/harnesses/apollo/skills/design/data/motion/toast-enter-stack.md +18 -0
  180. package/data/harnesses/apollo/skills/design/data/motion/tooltip-chain-instant.md +18 -0
  181. package/data/harnesses/apollo/skills/design/data/motion/trigger-anchored-reveal.md +18 -0
  182. package/data/harnesses/apollo/skills/design/data/tells.csv +34 -0
  183. package/data/harnesses/apollo/skills/design/data/typography/anton-work-sans.md +17 -0
  184. package/data/harnesses/apollo/skills/design/data/typography/archivo-black-archivo.md +17 -0
  185. package/data/harnesses/apollo/skills/design/data/typography/bitter-karla.md +17 -0
  186. package/data/harnesses/apollo/skills/design/data/typography/dm-serif-dm-sans.md +17 -0
  187. package/data/harnesses/apollo/skills/design/data/typography/fraunces-inter.md +17 -0
  188. package/data/harnesses/apollo/skills/design/data/typography/geist-geist-mono.md +17 -0
  189. package/data/harnesses/apollo/skills/design/data/typography/hubot-sans-mona-sans.md +17 -0
  190. package/data/harnesses/apollo/skills/design/data/typography/ibm-plex-sans-operator-single-family.md +17 -0
  191. package/data/harnesses/apollo/skills/design/data/typography/instrument-serif-instrument-sans.md +17 -0
  192. package/data/harnesses/apollo/skills/design/data/typography/inter-operator-single-family.md +17 -0
  193. package/data/harnesses/apollo/skills/design/data/typography/libre-baskerville-libre-franklin.md +17 -0
  194. package/data/harnesses/apollo/skills/design/data/typography/newsreader-inter.md +17 -0
  195. package/data/harnesses/apollo/skills/design/data/typography/playfair-display-source-sans.md +17 -0
  196. package/data/harnesses/apollo/skills/design/data/typography/public-sans-operator-single-family.md +17 -0
  197. package/data/harnesses/apollo/skills/design/data/typography/sohne-inter-fintech.md +17 -0
  198. package/data/harnesses/apollo/skills/design/data/typography/source-serif-source-sans.md +17 -0
  199. package/data/harnesses/apollo/skills/design/data/typography/space-grotesk-work-sans-space-mono.md +17 -0
  200. package/data/harnesses/apollo/skills/design/data/typography/spectral-manrope.md +17 -0
  201. package/data/harnesses/apollo/skills/design/data/voices/bright-collaborator.md +29 -0
  202. package/data/harnesses/apollo/skills/design/data/voices/direct-operator.md +29 -0
  203. package/data/harnesses/apollo/skills/design/data/voices/earnest-helper.md +29 -0
  204. package/data/harnesses/apollo/skills/design/data/voices/editorial-composed.md +29 -0
  205. package/data/harnesses/apollo/skills/design/data/voices/quiet-concierge.md +29 -0
  206. package/data/harnesses/apollo/skills/design/data/voices/warm-guide.md +29 -0
  207. package/data/harnesses/apollo/skills/design/design-md/SCHEMA.md +179 -0
  208. package/data/harnesses/apollo/skills/design/design-md/index.csv +67 -0
  209. package/data/harnesses/apollo/skills/design/design-md/library/airbnb.md +207 -0
  210. package/data/harnesses/apollo/skills/design/design-md/library/airtable.md +205 -0
  211. package/data/harnesses/apollo/skills/design/design-md/library/anthropic-claude.md +203 -0
  212. package/data/harnesses/apollo/skills/design/design-md/library/apple.md +206 -0
  213. package/data/harnesses/apollo/skills/design/design-md/library/binance.md +210 -0
  214. package/data/harnesses/apollo/skills/design/design-md/library/bmw.md +210 -0
  215. package/data/harnesses/apollo/skills/design/design-md/library/cal.md +209 -0
  216. package/data/harnesses/apollo/skills/design/design-md/library/clay.md +204 -0
  217. package/data/harnesses/apollo/skills/design/design-md/library/clickhouse.md +205 -0
  218. package/data/harnesses/apollo/skills/design/design-md/library/cohere.md +205 -0
  219. package/data/harnesses/apollo/skills/design/design-md/library/coinbase.md +198 -0
  220. package/data/harnesses/apollo/skills/design/design-md/library/composio.md +198 -0
  221. package/data/harnesses/apollo/skills/design/design-md/library/cursor.md +197 -0
  222. package/data/harnesses/apollo/skills/design/design-md/library/elevenlabs.md +199 -0
  223. package/data/harnesses/apollo/skills/design/design-md/library/expo.md +200 -0
  224. package/data/harnesses/apollo/skills/design/design-md/library/figma.md +199 -0
  225. package/data/harnesses/apollo/skills/design/design-md/library/framer.md +202 -0
  226. package/data/harnesses/apollo/skills/design/design-md/library/hashicorp.md +205 -0
  227. package/data/harnesses/apollo/skills/design/design-md/library/ibm.md +205 -0
  228. package/data/harnesses/apollo/skills/design/design-md/library/intercom.md +204 -0
  229. package/data/harnesses/apollo/skills/design/design-md/library/kraken.md +200 -0
  230. package/data/harnesses/apollo/skills/design/design-md/library/linear-app.md +198 -0
  231. package/data/harnesses/apollo/skills/design/design-md/library/lovable.md +199 -0
  232. package/data/harnesses/apollo/skills/design/design-md/library/meta.md +204 -0
  233. package/data/harnesses/apollo/skills/design/design-md/library/minimax.md +204 -0
  234. package/data/harnesses/apollo/skills/design/design-md/library/mintlify.md +210 -0
  235. package/data/harnesses/apollo/skills/design/design-md/library/miro.md +209 -0
  236. package/data/harnesses/apollo/skills/design/design-md/library/mistral-ai.md +201 -0
  237. package/data/harnesses/apollo/skills/design/design-md/library/mongodb.md +201 -0
  238. package/data/harnesses/apollo/skills/design/design-md/library/notion.md +204 -0
  239. package/data/harnesses/apollo/skills/design/design-md/library/nvidia.md +215 -0
  240. package/data/harnesses/apollo/skills/design/design-md/library/ollama.md +213 -0
  241. package/data/harnesses/apollo/skills/design/design-md/library/opencode-ai.md +216 -0
  242. package/data/harnesses/apollo/skills/design/design-md/library/posthog.md +218 -0
  243. package/data/harnesses/apollo/skills/design/design-md/library/raycast.md +214 -0
  244. package/data/harnesses/apollo/skills/design/design-md/library/replicate.md +202 -0
  245. package/data/harnesses/apollo/skills/design/design-md/library/resend.md +203 -0
  246. package/data/harnesses/apollo/skills/design/design-md/library/revolut.md +203 -0
  247. package/data/harnesses/apollo/skills/design/design-md/library/runwayml.md +203 -0
  248. package/data/harnesses/apollo/skills/design/design-md/library/sanity.md +200 -0
  249. package/data/harnesses/apollo/skills/design/design-md/library/sentry.md +201 -0
  250. package/data/harnesses/apollo/skills/design/design-md/library/shopify.md +202 -0
  251. package/data/harnesses/apollo/skills/design/design-md/library/slack.md +202 -0
  252. package/data/harnesses/apollo/skills/design/design-md/library/spacex.md +206 -0
  253. package/data/harnesses/apollo/skills/design/design-md/library/spotify.md +206 -0
  254. package/data/harnesses/apollo/skills/design/design-md/library/stripe.md +196 -0
  255. package/data/harnesses/apollo/skills/design/design-md/library/supabase.md +196 -0
  256. package/data/harnesses/apollo/skills/design/design-md/library/superhuman.md +194 -0
  257. package/data/harnesses/apollo/skills/design/design-md/library/tesla.md +198 -0
  258. package/data/harnesses/apollo/skills/design/design-md/library/theverge.md +199 -0
  259. package/data/harnesses/apollo/skills/design/design-md/library/together-ai.md +193 -0
  260. package/data/harnesses/apollo/skills/design/design-md/library/uber.md +195 -0
  261. package/data/harnesses/apollo/skills/design/design-md/library/vercel.md +195 -0
  262. package/data/harnesses/apollo/skills/design/design-md/library/voltagent.md +197 -0
  263. package/data/harnesses/apollo/skills/design/design-md/library/warp.md +196 -0
  264. package/data/harnesses/apollo/skills/design/design-md/library/webflow.md +197 -0
  265. package/data/harnesses/apollo/skills/design/design-md/library/wired.md +197 -0
  266. package/data/harnesses/apollo/skills/design/design-md/library/wise.md +198 -0
  267. package/data/harnesses/apollo/skills/design/design-md/library/x-ai.md +199 -0
  268. package/data/harnesses/apollo/skills/design/design-md/library/zapier.md +198 -0
  269. package/data/harnesses/apollo/skills/design/design-md/nurix.md +214 -0
  270. package/data/harnesses/apollo/skills/design/design-md/variants/editorial-luxury.md +184 -0
  271. package/data/harnesses/apollo/skills/design/design-md/variants/expressive-saas.md +216 -0
  272. package/data/harnesses/apollo/skills/design/design-md/variants/quiet-premium.md +211 -0
  273. package/data/harnesses/apollo/skills/design/design-md/variants/terse-dense-operator.md +212 -0
  274. package/data/harnesses/apollo/skills/design/design-md/variants/warm-approachable.md +216 -0
  275. package/data/harnesses/apollo/skills/design/references/compose.md +23 -0
  276. package/data/harnesses/apollo/skills/design/references/content.md +28 -0
  277. package/data/harnesses/apollo/skills/design/references/emission.md +21 -0
  278. package/data/harnesses/apollo/skills/design/references/existing-apps.md +27 -0
  279. package/data/harnesses/apollo/skills/design/references/intake.md +36 -0
  280. package/data/harnesses/apollo/skills/design/references/object-pass.md +24 -0
  281. package/data/harnesses/apollo/skills/design/references/ship-gate.md +29 -0
  282. package/data/harnesses/apollo/skills/design/references/ux-patterns/Readme.md +195 -0
  283. package/data/harnesses/apollo/skills/design/references/ux-patterns/ai-layer.md +49 -0
  284. package/data/harnesses/apollo/skills/design/references/ux-patterns/attributes-lifecycle.md +43 -0
  285. package/data/harnesses/apollo/skills/design/references/ux-patterns/container-choice.md +44 -0
  286. package/data/harnesses/apollo/skills/design/references/ux-patterns/creation-paths.md +46 -0
  287. package/data/harnesses/apollo/skills/design/references/ux-patterns/dashboards.md +42 -0
  288. package/data/harnesses/apollo/skills/design/references/ux-patterns/modes.md +42 -0
  289. package/data/harnesses/apollo/skills/design/references/ux-patterns/object-model.md +46 -0
  290. package/data/harnesses/apollo/skills/design/references/ux-patterns/page-archetype.md +48 -0
  291. package/data/harnesses/apollo/skills/design/references/ux-patterns/promotion-demotion.md +37 -0
  292. package/data/harnesses/apollo/skills/design/references/ux-patterns/settings.md +42 -0
  293. package/data/harnesses/apollo/skills/design/references/ux-patterns/standard-pages.md +46 -0
  294. package/data/harnesses/apollo/skills/design/references/ux-patterns/state-matrix.md +41 -0
  295. package/data/harnesses/apollo/skills/design/references/ux-patterns/table-mechanics.md +48 -0
  296. package/data/harnesses/apollo/skills/design/references/ux-patterns/verbs.md +45 -0
  297. package/data/harnesses/apollo/skills/design/references/ux-patterns/viewer-context.md +40 -0
  298. package/data/harnesses/apollo/skills/design/scripts/README-validator.md +27 -0
  299. package/data/harnesses/apollo/skills/design/scripts/select-chart.mjs +596 -0
  300. package/data/harnesses/apollo/skills/design/scripts/validate-design-md.mjs +1198 -0
  301. package/data/harnesses/apollo/skills/documentation/SKILL.md +132 -0
  302. package/data/harnesses/apollo/skills/documentation/references/examples.md +279 -0
  303. package/data/harnesses/apollo/skills/documentation/references/frontmatter.md +44 -0
  304. package/data/harnesses/apollo/skills/documentation/references/instruction-style.md +49 -0
  305. package/data/harnesses/apollo/skills/documentation/references/style-guide.md +351 -0
  306. package/data/harnesses/apollo/skills/documentation/references/untemplated.md +38 -0
  307. package/data/harnesses/apollo/skills/documentation/scripts/doc-lint.mjs +140 -0
  308. package/data/harnesses/apollo/skills/documentation/templates/Readme.md +32 -0
  309. package/data/harnesses/apollo/skills/documentation/templates/api-reference.md +20 -0
  310. package/data/harnesses/apollo/skills/documentation/templates/architecture-decision.md +121 -0
  311. package/data/harnesses/apollo/skills/documentation/templates/backlog.md +33 -0
  312. package/data/harnesses/apollo/skills/documentation/templates/behavioral-checklist.md +79 -0
  313. package/data/harnesses/apollo/skills/documentation/templates/changelog-entry.md +57 -0
  314. package/data/harnesses/apollo/skills/documentation/templates/changelog-index.md +41 -0
  315. package/data/harnesses/apollo/skills/documentation/templates/docs-readme.md +72 -0
  316. package/data/harnesses/apollo/skills/documentation/templates/domain-model.md +30 -0
  317. package/data/harnesses/apollo/skills/documentation/templates/environment-registry.md +15 -0
  318. package/data/harnesses/apollo/skills/documentation/templates/feature.md +149 -0
  319. package/data/harnesses/apollo/skills/documentation/templates/glossary.md +11 -0
  320. package/data/harnesses/apollo/skills/documentation/templates/memory-main.md +25 -0
  321. package/data/harnesses/apollo/skills/documentation/templates/migration-runbook.md +34 -0
  322. package/data/harnesses/apollo/skills/documentation/templates/non-goals.md +11 -0
  323. package/data/harnesses/apollo/skills/documentation/templates/operations-procedure.md +36 -0
  324. package/data/harnesses/apollo/skills/documentation/templates/plan.md +71 -0
  325. package/data/harnesses/apollo/skills/documentation/templates/protected-files.md +37 -0
  326. package/data/harnesses/apollo/skills/documentation/templates/root-readme.md +104 -0
  327. package/data/harnesses/apollo/skills/documentation/templates/security-overview.md +27 -0
  328. package/data/harnesses/apollo/skills/documentation/templates/structure.md +65 -0
  329. package/data/harnesses/apollo/skills/documentation/templates/system-overview.md +32 -0
  330. package/data/harnesses/apollo/skills/documentation/templates/testing-strategy.md +29 -0
  331. package/data/harnesses/apollo/skills/test-plan/SKILL.md +83 -0
  332. package/data/harnesses/apollo/skills/workflow-mapper/SKILL.md +451 -0
  333. package/data/harnesses/apollo/skills/workflow-mapper/references/patterns.md +214 -0
  334. package/data/harnesses/code/agents/maintenance.md +2 -2
  335. package/data/harnesses/code/codex/agents/maintenance.toml +2 -2
  336. package/data/harnesses/code/harness.json +3 -2
  337. package/data/harnesses/delivery/agents/maintenance.md +2 -2
  338. package/data/harnesses/delivery/codex/agents/maintenance.toml +2 -2
  339. package/data/harnesses/delivery/harness.json +3 -2
  340. package/data/harnesses/discover/codex/agents/api.toml +24 -0
  341. package/data/harnesses/discover/codex/agents/codebase.toml +24 -0
  342. package/data/harnesses/discover/codex/agents/community.toml +24 -0
  343. package/data/harnesses/discover/codex/agents/deployed-client-bundle.toml +24 -0
  344. package/data/harnesses/discover/codex/agents/distribution-artifacts.toml +24 -0
  345. package/data/harnesses/discover/codex/agents/docs.toml +27 -1
  346. package/data/harnesses/discover/codex/agents/infra-backend-fingerprint.toml +24 -0
  347. package/data/harnesses/discover/codex/agents/packages.toml +24 -0
  348. package/data/harnesses/discover/codex/agents/session.toml +40 -0
  349. package/data/harnesses/discover/codex/agents/website.toml +24 -0
  350. package/data/harnesses/discover/codex/agents/wire-capture.toml +40 -0
  351. package/data/harnesses/discover/harness.json +3 -2
  352. package/data/harnesses/discover/rules/calibration.md +219 -0
  353. package/data/harnesses/discover/rules/tooling.md +205 -0
  354. package/data/harnesses/discussion/harness.json +1 -0
  355. package/data/harnesses/etna/agents/maintenance.md +2 -2
  356. package/data/harnesses/etna/codex/agents/maintenance.toml +2 -2
  357. package/data/harnesses/etna/harness.json +3 -2
  358. package/data/harnesses/hr/harness.json +1 -0
  359. package/data/harnesses/kb-agi/harness.json +1 -0
  360. package/package.json +2 -2
@@ -0,0 +1,34 @@
1
+ # Migration Runbook (docs/history/migrations/YYYY-MM-DD-{slug}.md)
2
+
3
+ Record. Use for: a **one-shot** migration, upgrade, or data operation — authored before execution, executed once, then outcome-stamped and frozen. Supporting scripts live beside it in a same-named folder when needed (`YYYY-MM-DD-{slug}/`).
4
+
5
+ Required: **Goal**, **Steps**, **Verification**, and — after execution — the **Outcome** stamp. Optional: Preconditions, Rollback.
6
+
7
+ ```
8
+ # Migration: {Title}
9
+
10
+ **Goal:** What this migration accomplishes and why it runs now, one or two lines.
11
+ **Executes against:** {environment / database / system}
12
+
13
+ ## Preconditions
14
+
15
+ - Backups taken, feature flags set, access confirmed — exact checks
16
+
17
+ ## Steps
18
+
19
+ 1. One action per step, exact command in a code block
20
+ 2. Note expected output where it disambiguates success from failure
21
+
22
+ ## Verification
23
+
24
+ - The observable end state that confirms success — exact check commands
25
+
26
+ ## Rollback
27
+
28
+ - How to undo, and the point of no return
29
+
30
+ ## Outcome
31
+
32
+ <!-- Stamped once, immediately after execution; the file freezes with it. -->
33
+ **Executed:** YYYY-MM-DD — {result: clean | issues encountered + how resolved | aborted + why}
34
+ ```
@@ -0,0 +1,11 @@
1
+ # Non-Goals (docs/architecture/non-goals.md)
2
+
3
+ Truth document. Use for: what the system deliberately does **not** do. A non-goal is a decision, not an omission — each entry carries the why and what would reopen it. Readers (and agents) use this to stop re-proposing settled exclusions.
4
+
5
+ ```
6
+ # Non-Goals
7
+
8
+ Things this system deliberately does not do. Each is a decision — don't re-propose one without new information of the kind its "revisit if" names.
9
+
10
+ - **{Non-goal}** — {why it's excluded}. Revisit if: {the trigger that would reopen it}.
11
+ ```
@@ -0,0 +1,36 @@
1
+ # Operations Procedure (docs/operations/{procedure}.md)
2
+
3
+ Truth document. Use for: any **recurring** procedure — setup, development, deployment, maintenance. A procedure is consulted mid-task, not read: exact commands, copy-paste runnable, no narrative. Updated in place whenever the workflow changes.
4
+
5
+ A **one-shot** procedure (a migration, an upgrade, an incident response executed once) is not an operations doc — it is a **Migration Runbook** (record, below). The test: will someone run this again next month? Yes → operations. No → runbook.
6
+
7
+ Required: **Goal**, **Steps**, **Verification**. Optional: Preconditions, Troubleshooting, Rollback — include only when they carry real content.
8
+
9
+ If a procedure is a deterministic command list run frequently, script it and have the doc point at the script — a doc should carry judgment (when, why, what to check), not replace automation.
10
+
11
+ ```
12
+ # {Procedure Name}
13
+
14
+ **Goal:** What this procedure accomplishes, one line.
15
+
16
+ ## Preconditions
17
+
18
+ - Access, tools, or state required before starting — exact versions, env vars, credentials location
19
+
20
+ ## Steps
21
+
22
+ 1. One action per step, exact command in a code block
23
+ 2. Note expected output where it disambiguates success from failure
24
+
25
+ ## Verification
26
+
27
+ - The observable end state that confirms it worked — exact check commands, not "it should work now"
28
+
29
+ ## Troubleshooting
30
+
31
+ - Symptom → cause → fix (append entries as failures are root-caused)
32
+
33
+ ## Rollback
34
+
35
+ - How to undo, and when undo stops being possible
36
+ ```
@@ -0,0 +1,71 @@
1
+ # Plan (docs/history/plans/YYYY-MM-DD-feature-name.md)
2
+
3
+ Record. Use for: every implementation plan. Plans are created here directly with `Status: Draft`; after approval the plan gates (`boundary`, then `test-plan`) run against the still-`Draft` file, the status flips to `Status: In Progress` at the first implementation step, and the file freezes at `Status: Complete` or `Status: Abandoned`. Once frozen, never edit — write a new dated plan if scope changes. The plan records the journey; the truth it implemented lives on in the feature doc and any AD it touched.
4
+
5
+ The `boundary` skill parses the **Proposed Changes** sections to check boundary impact before execution, and the `test-plan` skill writes a **Test Obligations** section into the plan at the same gate. Keep that structure stable — section headings and bullet shape are load-bearing for the parsers, and the Test Obligations table is the ledger the verification gate discharges before the plan may reach `Status: Complete`.
6
+
7
+ ```
8
+ # {Feature Name}
9
+
10
+ **Status:** Draft | In Progress | Complete | Abandoned
11
+ **Spec:** [docs/features/{feature}.md](../../features/{feature}.md)
12
+ **Started:** YYYY-MM-DD
13
+ **Completed:** YYYY-MM-DD <!-- fill when status flips to Complete -->
14
+
15
+ ## Background
16
+
17
+ Why this work is happening *now*. Link to the spec for *what* we're building; this section is the motivation and the trigger. One paragraph.
18
+
19
+ ## Proposed Changes
20
+
21
+ ### New Files
22
+
23
+ - `src/path/new-file.js` — purpose
24
+
25
+ ### Modified Files
26
+
27
+ - `src/path/existing.js` — what changes and why
28
+
29
+ ### New Entities / State
30
+
31
+ - `entities.foo` — new Redux slice / DB table / persisted shape
32
+ - Persisted state addition: `state.bar.baz` (default `null` for existing users on rehydrate)
33
+
34
+ ### API Changes
35
+
36
+ - `POST /api/foo` — new route, request `{...}`, response `{status, data}`
37
+ - `PUT /api/bar` — request shape changes; see Migration
38
+
39
+ ### Cross-Module Contracts Affected
40
+
41
+ - List which cross-cutting contracts this plan affects (db schema, wire envelope, auth, events, env/config, …)
42
+ - "None" is a valid answer and means the `boundary` check will pass cleanly
43
+
44
+ ## Implementation Steps
45
+
46
+ 1. Concrete, ordered, testable
47
+ 2. Each step ends with something verifiable
48
+ 3. ...
49
+
50
+ ## Test Obligations
51
+
52
+ <!-- Written by the `test-plan` skill at the plan gate (after `boundary`). One row per
53
+ promised behavior: layer · target file · oracle · fixtures. Amendable while the
54
+ plan is open; discharged at the verification gate. Do not hand-author. -->
55
+
56
+ ## Done Criteria
57
+
58
+ - [ ] Implementation complete
59
+ - [ ] Verification gate passed — every Test Obligations row discharged (satisfied / owes nothing / blocked → backlog), gate run date and results noted here
60
+ - [ ] Affected docs updated (use the injected ownership index to find them)
61
+ - [ ] Changelog entry created in `docs/history/changelog/`, carrying the gate's results
62
+ - [ ] Plan marked `Status: Complete`, **Completed:** date filled
63
+
64
+ ## Open Questions
65
+
66
+ - Question — who decides, by when
67
+
68
+ ## Risks
69
+
70
+ - Risk — likelihood / impact / mitigation
71
+ ```
@@ -0,0 +1,37 @@
1
+ # Protected Files
2
+
3
+ Truth document. Use for: documenting critical files that need approval before modification.
4
+
5
+ This doc answers *what is protected and why breaking it hurts* — nothing more. Don't duplicate function-level detail here (signatures, inputs/outputs): it drifts from both the code and the owning feature doc. The owning feature doc is the canonical reference for how the code works; link to it.
6
+
7
+ ```
8
+ # Protected Files
9
+
10
+ Critical files requiring approval before modification.
11
+
12
+ ## File List
13
+
14
+ # Category 1 - Description
15
+ path/to/critical/file1.js
16
+ path/to/critical/file2.js
17
+
18
+ # Category 2 - Description
19
+ path/to/another/file.js
20
+
21
+ ## Risk Summary
22
+
23
+ | Category | Risk if Broken |
24
+ |------------|-----------------|
25
+ | Category 1 | Specific impact |
26
+ | Category 2 | Specific impact |
27
+
28
+ ## Why Protected
29
+
30
+ ### Category 1: [Name]
31
+
32
+ **Purpose:** What these files do, one or two lines
33
+ **Owning doc:** [docs/features/{feature}.md] — canonical reference for how this code works
34
+ **Invariants:**
35
+ - The behavior that must not break, stated as a constraint (not a function tour)
36
+ - Important point 2
37
+ ```
@@ -0,0 +1,104 @@
1
+ # Project Root README
2
+
3
+ Truth document. Use for: the human-facing entry point at the repository root (`/README.md`) — what visitors and new contributors land on. Distinct from `docs/README.md` (the agent/doc index — see **docs/README.md (Documentation Root)** above). The two coexist; don't merge them.
4
+
5
+ ### Strategy
6
+
7
+ The root README answers, in order:
8
+
9
+ 1. **What is this?** — one to two sentences, no marketing claims
10
+ 2. **What do I get if I install it?** — capability families
11
+ 3. **What's it built on?** — terse stack list with versions
12
+ 4. **How do I run it?** — the three or four scripts that matter
13
+ 5. **How is it laid out?** — directory tree, one-liner per significant folder
14
+ 6. **How do I extend it?** — numbered contribution checklist
15
+ 7. **What state is it in?** — pre-publish, beta, stable, internal
16
+
17
+ Skip any section that doesn't apply. Don't pad to fill the template.
18
+
19
+ ### Writing rules
20
+
21
+ - **Sentence-case headings.** "Getting started", not "Getting Started".
22
+ - **Concrete over abstract.** Real versions, real paths, real commands. No "leverages cutting-edge…".
23
+ - **The tagline answers "what is this?"** — not "why is it great?". Two sentences max.
24
+ - **Tables for enumeration** (routes, commands, endpoints). **Bullets for families and categories.**
25
+ - **Directory tree as a code block**, not a nested markdown list.
26
+ - **Numbered checklist** for "how to add a thing" — readers should be able to follow it top-to-bottom without re-reading.
27
+ - **Point to `docs/` for depth.** The root README links into deep docs; it doesn't host them.
28
+ - **Detect the package manager from the lockfile** (`pnpm-lock.yaml` → pnpm, `yarn.lock` → yarn, otherwise npm) and write commands accordingly. Don't hardcode `npm` if the repo uses pnpm.
29
+
30
+ ### Template
31
+
32
+ ```markdown
33
+ # {package-name}
34
+
35
+ {One- to two-sentence positioning. What it is and what scope it covers. No superlatives, no value claims.}
36
+
37
+ ## What's in the box
38
+
39
+ - **{Family 1}** — {what's in it; a few specific items, comma-listed.}
40
+ - **{Family 2}** — {what's in it.}
41
+ - **{Family 3}** — {what's in it.}
42
+
43
+ The full surface lives in [`{path/to/public-index}`]({path/to/public-index}). ← optional pointer for libraries
44
+
45
+ ## Stack
46
+
47
+ - {Framework} {version} · {Language} {version}
48
+ - {Build tool} {version}
49
+ - {Other load-bearing deps}
50
+
51
+ ## Getting started
52
+
53
+ \`\`\`bash
54
+ {pm} install
55
+ {pm} run dev # what it does (port, URL)
56
+ {pm} run build # what it does
57
+ {pm} run preview # what it does (omit if not applicable)
58
+ \`\`\`
59
+
60
+ {Optional one-liner about first-run behavior — e.g., "Dev server lands on /playground."}
61
+
62
+ ## {Runtime entry point} ← optional; e.g., "The playground", "CLI", "API endpoints"
63
+
64
+ {Brief description of the dev/runtime surface.}
65
+
66
+ | {Thing} | {What it shows / does} |
67
+ | -------------------- | ---------------------- |
68
+ | `{route or command}` | {description} |
69
+
70
+ ## Layout
71
+
72
+ \`\`\`
73
+ src/
74
+ ├── {entry-file} # {purpose}
75
+ ├── {folder}/ # {purpose}
76
+ │ └── ...
77
+ └── {folder}/ # {purpose}
78
+ \`\`\`
79
+
80
+ ## Adding a {primary unit}
81
+
82
+ 1. {Drop the source under the right family/folder.}
83
+ 2. {Re-export from the public surface.}
84
+ 3. {Wire into the playground / example app / test harness so reviewers can see it render.}
85
+ 4. {Document any divergence from upstream in `docs/{...}`.}
86
+
87
+ ## Styling ← optional; replace with whichever cross-cutting concern matters most
88
+
89
+ {Configuration notes that affect every consumer — design tokens, conventions, opt-outs.}
90
+
91
+ ## Status
92
+
93
+ {Pre-publish, beta, stable, internal-only. State the stability tier per surface — which APIs are contracts and which are experimental — so readers know what can be relied on.}
94
+
95
+ ## License
96
+
97
+ {License name — scope. e.g., "UNLICENSED — internal use only", "MIT".}
98
+ ```
99
+
100
+ ### Baseline scaffolding behavior
101
+
102
+ The baseline audit **does** scaffold the project root README when missing. The risk this template guards against — template-shaped placeholders that look abandoned — is mitigated by the writing rules above: fill every section with concrete details from the repo (real package manager from the lockfile, real scripts, real layout, real status). Skip sections that genuinely don't apply rather than leaving stubs.
103
+
104
+ **Never overwrite an existing root README** during a baseline. If one is present — even sparse or outdated — leave it untouched. Treat updates to a pre-existing root README as a separate, explicit request.
@@ -0,0 +1,27 @@
1
+ # Security Overview (docs/architecture/security.md)
2
+
3
+ Truth document. Use for: the single place the system's security posture is stated — assets, trust boundaries, controls, and accepted risks. Controls link to the code that implements them; this doc asserts, the code proves.
4
+
5
+ Required: **Trust boundaries**, **Controls**. Optional: Assets, Accepted risks.
6
+
7
+ ```
8
+ # Security Overview
9
+
10
+ ## Assets
11
+
12
+ - {What's worth protecting — data classes, credentials, tenant isolation}
13
+
14
+ ## Trust boundaries
15
+
16
+ - {Boundary} — {what crosses it, and what checks the crossing}
17
+
18
+ ## Controls
19
+
20
+ | Control | Protects against | Implemented in |
21
+ | ------- | ---------------- | -------------- |
22
+ | {control} | {threat} | `{file/module}` |
23
+
24
+ ## Accepted risks
25
+
26
+ - {Risk knowingly carried} — accepted because {reason}; owner: {who}. Revisit if: {trigger}.
27
+ ```
@@ -0,0 +1,65 @@
1
+ # docs/structure.md (Authority Map)
2
+
3
+ Truth document. Use for: defining which folder owns which topic and how docs are maintained.
4
+
5
+ ```
6
+ ---
7
+ harness-version: 1.0.0
8
+ ---
9
+
10
+ # Documentation Structure
11
+
12
+ > This file is the entry point for understanding the docs folder.
13
+ > `harness-version` above is the repo's single baseline/version sentinel — the `maintenance` agent (baseline mode) owns it and stamps the installed harness version (semver) on every reconcile.
14
+
15
+ ## Authority Map
16
+
17
+ Each topic has one canonical location. Read from here, not from plans or changelogs.
18
+
19
+ | Topic | Authority | Key Files |
20
+ | ----- | --------- | --------- |
21
+ | Code-path ownership (path → doc + module) | feature `owns:` frontmatter | the generated ownership index |
22
+ | System overview | `docs/architecture/` | system-design.md |
23
+ | Steering (domain model, glossary, non-goals) | `docs/architecture/` | domain-model.md, glossary.md, non-goals.md |
24
+ | Architecture decisions (ADs) | `docs/architecture/decisions/` | AD-NNN-*.md |
25
+ | API surface | `docs/architecture/` | api.md |
26
+ | Security | `docs/architecture/` | security.md |
27
+ | Feature behavior | `docs/features/` | {key files} |
28
+ | Setup & development | `docs/operations/` | {key files} |
29
+ | Environment / config surface | `docs/operations/` | environment.md |
30
+ | Testing strategy | `docs/tests/` | strategy.md |
31
+ | Historical plans | `docs/history/plans/` | YYYY-MM-DD-name.md |
32
+ | Change records | `docs/history/changelog/` | `YYYY-MM-DD-{three-words}.md` — one per unit of work, written at commit time |
33
+ | Migration runbooks | `docs/history/migrations/` | YYYY-MM-DD-name.md |
34
+ | Deep-research artifacts | `docs/history/research/{topic}/` | README.md + findings.md + sources.md |
35
+ | Brainstorm design records | `docs/research/{topic}-brainstorm/` (active; legacy `-brainstorming/`) → `docs/history/brainstorms/{topic}/` (harvested; user deletes or commits) | thesis.md + forks.md + ledger.md + state.md |
36
+ | Backlog | `docs/history/` | backlog.md |
37
+
38
+ ## The Two Natures
39
+
40
+ Every doc is a **truth document** (states current absolutes, topic-named, updated in place) or a **record** (dated account of activity, frozen or append-only). `architecture/`, `features/`, `operations/`, `tests/` hold truth; `history/`, `research/`, `memory/` hold records.
41
+
42
+ - Truth documents are rewritten in place when reality changes — the change-story goes to a changelog entry, never into the truth doc's body.
43
+ - Records freeze: plans at `Complete`/`Abandoned`, changelog entries and migration runbooks once written/executed. A scope change is a new dated record that links back.
44
+ - Feature docs are the living reference for implemented features; an AD is the living truth for one decision subject, with its dated journey confined to its Decision Changelog tail.
45
+
46
+ ## Folder Rules
47
+
48
+ - `docs/features/`: Living reference for implemented features. Each feature doc **carries** the `owns:` / `module:` / `keywords:` / `status:` frontmatter — `owns:` declares the code-path globs it owns (the only ownership key), `module:` is an optional bounded-context label, `keywords:` are discovery terms, `status:` is `active`/`draft`/`deprecated`. The SessionStart hook unions every feature's `owns:` globs into the injected ownership index.
49
+ - `docs/architecture/`: The truth layer for system-wide shape: overview, domain model, glossary, non-goals, API surface, security, and `decisions/` (ADs — one per subject, updated in place, journey in each AD's Decision Changelog). Update when cross-cutting reality changes.
50
+ - `docs/operations/`: How-to procedures for setup, development, and deployment, plus the environment registry. Update when workflows change. One-shot migrations do NOT live here — they are records (`docs/history/migrations/`).
51
+ - `docs/tests/`: Testing strategy and test docs. Present when the repo has a test posture worth documenting.
52
+ - `docs/history/plans/`: Records. Must have `Status:` field. Never modify after completion.
53
+ - `docs/history/changelog/`: Records. One entry per unit of work (`YYYY-MM-DD-{three-words}.md`), written by whoever does the work and frozen inside the commit it describes. Entries carry the refinement context a diff cannot show — the ask in the user's words, iterations and rejections, skill survived/overridden verdicts, discoveries, pins. Format is the `documentation` skill's `templates/changelog-entry.md`; trigger and lifecycle are the `changelog` rule; distillation is the `retro` agent. Immutability begins at commit — a draft in the working tree is mutable until then, never after. Every entry appends a row to `docs/history/CHANGELOG.md`.
54
+ - `docs/history/migrations/`: Records. One-shot migration/upgrade runbooks — authored before execution, outcome-stamped and frozen after.
55
+ - `docs/history/research/{topic}/`: Deep-research artifacts — the dumped output of a research pass, one folder per topic (conventionally `README.md` synthesis + `findings.md` verified claims & citations + `sources.md`). A point-in-time, cited record — **not** a living authority doc: it owns no code (no `owns:` frontmatter) and is never edited to "stay current." A spec/plan links to it for grounding; a new question gets a new topic folder.
56
+ - `docs/research/{topic}-brainstorm/` → `docs/history/brainstorms/{topic}/`: Brainstorm design records — the Brainstorming-Mode session for a topic (working surface `thesis.md` + `forks.md` + `ledger.md` + `state.md` + `basis/` + `fragments/`, plus an untracked `ops/` capture layer deleted at stop), written by the `brainstorm` skill and its twin agent. An active session lives under `docs/research/` (legacy folders carry the older `-brainstorming/` suffix); on a **passed harvest** it **moves** to `docs/history/brainstorms/` — the completion marker — and the **user decides whether the moved folder is deleted or committed** as provenance. Each of the two folders carries a `Readme.md` index (the skill reads it at start instead of scanning). Author-created (never scaffolded empty), one folder per design conversation. Owns no code (no `owns:` frontmatter); the harvest routes its conclusions into `architecture/`/`features/`/`history/`. (Distinct from `docs/history/research/{topic}/` above — that is a frozen deep-research record, not a brainstorm session.)
57
+ - `docs/history/backlog.md`: Tracked work items. Append new items under appropriate priority.
58
+
59
+ ## Health Log
60
+
61
+ <!-- Updated by maintenance agent — the sanctioned dated tail in this truth doc (SKILL.md § The Two Natures names the two bridges) -->
62
+ | Date | Review Summary |
63
+ | ---- | -------------- |
64
+ | {today} | Initial baseline — v{harness-version} structure established |
65
+ ```
@@ -0,0 +1,32 @@
1
+ # System Overview (docs/architecture/system-design.md)
2
+
3
+ Truth document. Use for: the bird's-eye view — what the system is, its subsystems, and how they connect. The first doc a new reader opens after the README; austere and short (two screens max). Depth lives in feature docs — this doc maps, it doesn't explain.
4
+
5
+ Required: **What this is**, **Subsystem map**. Optional: Key flows, Where the truth lives.
6
+
7
+ ```
8
+ # System Overview
9
+
10
+ ## What this is
11
+
12
+ {Two or three sentences: what the system does, for whom, in what environment it runs.}
13
+
14
+ ## Subsystem map
15
+
16
+ ┌──────────┐ ┌──────────┐ ┌──────────┐
17
+ │ Frontend │────▶│ API │────▶│ DB │
18
+ └──────────┘ └──────────┘ └──────────┘
19
+ {One box per subsystem; label the arrows with the contract that crosses them.}
20
+
21
+ - **{Subsystem}** — one line: what it owns. → [owning doc](../features/{feature}.md)
22
+
23
+ ## Key flows
24
+
25
+ {At most two or three ASCII flow diagrams for the flows everything else hangs off — request lifecycle, auth, the core domain operation.}
26
+
27
+ ## Where the truth lives
28
+
29
+ | Area | Canonical doc |
30
+ | ---- | ------------- |
31
+ | {area} | [{doc}](path) |
32
+ ```
@@ -0,0 +1,29 @@
1
+ # Testing Strategy (docs/tests/strategy.md)
2
+
3
+ Truth document. Use for: the repo's test posture — what is tested at which level, how to run it, and what is deliberately untested. The framework choices come from the harness testing rule; this doc records how *this repo* applies them.
4
+
5
+ Required: **Levels**, **Running**. Optional: Deliberately untested, Adding a test.
6
+
7
+ ```
8
+ # Testing Strategy
9
+
10
+ ## Levels
11
+
12
+ | Layer | Runner | Lives in | Covers |
13
+ | ----- | ------ | -------- | ------ |
14
+ | Unit / integration | {runner} | `tests/` | {what} |
15
+ | E2E | {runner} | `e2e/` | {what} |
16
+
17
+ ## Running
18
+
19
+ - `{pm} test` — the whole unit suite (CI gate)
20
+ - `{pm} run test:e2e` — {when to run}
21
+
22
+ ## Deliberately untested
23
+
24
+ - {Area} — {why, and what verifies it instead (typecheck, boot check, manual journey)}
25
+
26
+ ## Adding a test
27
+
28
+ 1. {Where the file goes, what it's named, where fixtures live}
29
+ ```
@@ -0,0 +1,83 @@
1
+ ---
2
+ name: test-plan
3
+ description: "Use when deriving the tests a plan owes. Test-obligation diagnostic: runs at the plan gate after boundary, reads the plan's Proposed Changes + owning LLD, and writes a Test Obligations section (a row per behavior: layer, target file, oracle, fixtures). Writes no test files. Triggers on 'test plan'."
4
+ ---
5
+
6
+ # Test-Obligation Diagnostic
7
+
8
+ You derive the tests an implementation plan owes, and pin them into the plan as an explicit, reviewable manifest — at the same gate `boundary` runs, ordered second. You never write a test file; you write the **ledger the verification gate discharges** (`.claude/rules/verification.md`), so the gate proves a checklist instead of a vibe, and so a later doc-health pass can prove the tests match the promises.
9
+
10
+ **The litmus is "which promise, at which altitude, proven by what?"** A plan promises behavior (an LLD's `owns:` surface does X); each promise earns exactly one test at the cheapest layer that can actually prove it. Spend your reading deciding the *layer* and the *oracle*, not on prose.
11
+
12
+ ## The three-moment split
13
+
14
+ Testing spans three moments in the plan lifecycle. This skill owns **only the first** — it is why "write the tests at plan time" is wrong: at the gate the code does not exist yet, so the only coherent artifact is the manifest.
15
+
16
+ | Moment | Artifact | Owner |
17
+ | --- | --- | --- |
18
+ | **Plan gate** (here, after boundary) | Test Obligations section written into the plan | this skill |
19
+ | **Verification gate** (before `Status: Complete`) | the obligated tests written and green, plus the driven checks against the real surface | the implementer at the gate (`.claude/rules/verification.md`) |
20
+ | **Verification gate** | behavioral checklist at `docs/tests/{feature}.md`, derived from this ledger **before** the driving, then the tests it seeds | the gate + the `documentation` skill |
21
+ | **Completion** | the gate's results recorded in the changelog; each checklist section carrying its `Pinned:` trace | Completion steps |
22
+
23
+ Writing tests *before* the code they cover either fabricates implementation coupling (labels/routes/copy the plan hasn't fixed) or leaves the suite red on the shared branch for the plan's whole duration. Writing them *during* the build loop taxes every iteration for behavior still in flux. So the plan gate emits obligations, the build loop stays free of test files, and the manifest is discharged in one pass at the verification gate.
24
+
25
+ ## Contract sources
26
+
27
+ - **The plan's Proposed Changes** — files created/modified, entities/state, API changes, cross-module contracts. Each is a behavior that may owe a test.
28
+ - **The owning LLD** (`docs/features/{feature}.md`, matched via the ownership index) — the canonical statement of *what the feature does*. Every obligation names the LLD promise it proves; the LLD is never restated, only referenced. This one-directional chain (LLD → manifest → tests + Completion checklist) is what stops the three artifacts drifting into three contradictory truths.
29
+ - **`.claude/rules/testing.md`** — the frameworks and canonical placement per stack. The manifest's target paths and runners come from here, never invented. The repo's existing runner always wins.
30
+ - **`boundary`'s output** — a HIGH/CRITICAL finding it surfaced is itself a behavior owed a regression test (the failure mode, asserted). Fold boundary's amendments first, then read the amended plan.
31
+
32
+ ## Layer assignment
33
+
34
+ Assign each behavior the **cheapest layer that can prove it**, then name the oracle (the concrete thing that shows pass/fail):
35
+
36
+ - **unit** — a pure function / reducer / validator. Oracle: return value, thrown error.
37
+ - **component** — a UI unit's behavior in isolation (a widget, form, panel). Oracle: rendered role/text, emitted event. Runner: the stack's component runner per `testing.md`.
38
+ - **integration** — a route/handler against a real in-memory datastore via the app instance (not a mock of what you own). Oracle: response envelope shape, status code, the row actually written. **This is the default for server behavior** — most obligations land here, and this layer is the one the `test` script / CI runs.
39
+ - **e2e** — see the altitude gate below.
40
+
41
+ Error paths, races, and idempotency are obligations too, and they belong at **integration** with injected faults (network mock, the runner's fake timers, a forced constraint) — a process driving a live product cannot reliably *produce* them, so they are never an e2e obligation.
42
+
43
+ ### The e2e altitude gate
44
+
45
+ An e2e obligation (a scenario in the project's e2e tree per `testing.md`) is earned **only** when the behavior genuinely spans processes/services that no single-process test can exercise together. A single-process behavior, however important, is an integration obligation, never e2e.
46
+
47
+ - Density is **one scenario per cross-process journey, not one per feature** — the project's existing scenarios are the reference density. Mark each e2e obligation **"extend scenario `<name>`"** in preference to **"new scenario"**; a new scenario needs a genuinely new journey.
48
+ - **Refuse to emit any e2e obligation while the project's e2e smoke gate is not wired.** A generated spec fed to a suite nothing runs is a rot accelerator. The gate is a capped, tagged smoke subset run in CI (not the full e2e suite — an oversized always-on e2e suite is what gets evicted from CI, taking all enforcement with it). If no such CI gate exists, emit the e2e obligation as a **blocked** row naming the missing gate, not as work to do.
49
+
50
+ ## Run
51
+
52
+ **Input:** a plan path (given, or the newest in `docs/history/plans/`), already boundary-checked with amendments folded. For a non-plan diff in test-worthy code, the hunks stand in for Proposed Changes — but the derived obligations are paid **immediately**, not deferred: only a plan has a ledger and a gate, so for a diff your output is the checklist the implementer satisfies now.
53
+
54
+ 1. **Build the behavior list.** From the plan's Proposed Changes + the owning LLD's promised behavior, list the behaviors this plan introduces or changes. Fold in each HIGH/CRITICAL boundary finding as a regression obligation. Note behaviors a type or the compiler already guards — those owe **no** test (the boundary litmus, inverted: if it can't ship green-but-broken, it needs no test).
55
+
56
+ 2. **Assign a layer + oracle** to each behavior (rules above). Prefer the cheapest layer that can actually prove the promise.
57
+
58
+ 3. **Map to a target file** per `testing.md` — the stack's unit/integration path for most, the e2e scenario tree for a program scenario. Name fixtures/factories (existing helper, or new) and the fault-injection needed (network mock, fake timers, forced constraint). Use the repo-standard fake-data source.
59
+
60
+ 4. **Apply the e2e altitude gate** to any cross-process obligation; downgrade everything else to integration.
61
+
62
+ 5. **Emit the Test Obligations section into the plan**, plus a one-line chat summary. Write it as a subsection of the plan (an executor dispatched with only the plan file sees nothing else — an obligation that lives only in chat is lost at dispatch):
63
+
64
+ ```
65
+ ## Test Obligations
66
+
67
+ | # | Behavior (LLD promise) | Layer | Target file | Oracle | Fixtures / faults |
68
+ | - | ---------------------- | ----- | ----------- | ------ | ----------------- |
69
+
70
+ Coverage: {N} behaviors · {N} integration · {N} component · {N} unit · {N} e2e ({N} extend, {N} new)
71
+ Completion checklist: docs/tests/{feature}.md (derived at Completion, not now)
72
+ ```
73
+
74
+ A behavior with no obligation is stated too, with the reason (compiler-guarded, covered by an existing test) — an empty cell reads as "not yet analyzed"; an explicit "none — compiler-guarded" reads as "checked."
75
+
76
+ ## Rules
77
+
78
+ - **Manifest only.** You write the Test Obligations section into the plan and a chat summary. You write **no** test files and **no** `docs/tests/` checklist — those are verification-gate-time and Completion-time, owned by others.
79
+ - **Every obligation names its LLD promise.** No promise, no obligation source — trace it or drop it. This is the anti-drift pin.
80
+ - **Cheapest proving layer wins.** Do not obligate an e2e scenario for what an integration test proves, or an integration test for what a unit test proves.
81
+ - **e2e only above the cross-process bar, and only while the smoke gate runs.** Otherwise the obligation is a blocked row naming the missing gate.
82
+ - **Runs after boundary; skipped on BLOCK.** A blocked plan is re-planned first; there is nothing stable to obligate tests against.
83
+ - **A short manifest is valid.** A plan that owes three integration tests owes three rows — do not pad. The coverage line is the evidence it was analyzed, not skipped.