@erclx/aitk 0.8.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 (359) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +99 -0
  3. package/claude/.claude-plugin/plugin.json +19 -0
  4. package/claude/skills/bash-script/SKILL.md +96 -0
  5. package/claude/skills/bash-script/references/patterns.md +349 -0
  6. package/claude/skills/ci-workflow/SKILL.md +52 -0
  7. package/claude/skills/ci-workflow/references/workflows.md +74 -0
  8. package/claude/skills/claude-address-review/SKILL.md +107 -0
  9. package/claude/skills/claude-autoship/SKILL.md +137 -0
  10. package/claude/skills/claude-design-extract/SKILL.md +69 -0
  11. package/claude/skills/claude-design-propose/SKILL.md +75 -0
  12. package/claude/skills/claude-diagram/SKILL.md +126 -0
  13. package/claude/skills/claude-docs/SKILL.md +204 -0
  14. package/claude/skills/claude-feature/REQUIREMENT.md +35 -0
  15. package/claude/skills/claude-feature/SKILL.md +148 -0
  16. package/claude/skills/claude-groundwork/SKILL.md +148 -0
  17. package/claude/skills/claude-groundwork/references/folder-format.md +107 -0
  18. package/claude/skills/claude-memory-capture/SKILL.md +80 -0
  19. package/claude/skills/claude-memory-review/REQUIREMENT.md +37 -0
  20. package/claude/skills/claude-memory-review/SKILL.md +206 -0
  21. package/claude/skills/claude-orchestrate/SKILL.md +125 -0
  22. package/claude/skills/claude-pr-review/SKILL.md +150 -0
  23. package/claude/skills/claude-review/SKILL.md +136 -0
  24. package/claude/skills/claude-roadmap/SKILL.md +61 -0
  25. package/claude/skills/claude-roadmap/references/roadmap.md +52 -0
  26. package/claude/skills/claude-screencast/SKILL.md +160 -0
  27. package/claude/skills/claude-seed-sync/SKILL.md +141 -0
  28. package/claude/skills/claude-slides-draft/SKILL.md +62 -0
  29. package/claude/skills/claude-standards-audit/REQUIREMENT.md +33 -0
  30. package/claude/skills/claude-standards-audit/SKILL.md +79 -0
  31. package/claude/skills/claude-standards-audit/references/branch.md +49 -0
  32. package/claude/skills/claude-standards-audit/references/pr.md +124 -0
  33. package/claude/skills/claude-tasks/SKILL.md +123 -0
  34. package/claude/skills/claude-ui-test/SKILL.md +75 -0
  35. package/claude/skills/claude-ux-audit/SKILL.md +78 -0
  36. package/claude/skills/claude-worktree/SKILL.md +79 -0
  37. package/claude/skills/cli-script/SKILL.md +47 -0
  38. package/claude/skills/cli-script/references/template.md +43 -0
  39. package/claude/skills/create-rule/SKILL.md +68 -0
  40. package/claude/skills/create-skill/REQUIREMENT.md +30 -0
  41. package/claude/skills/create-skill/SKILL.md +24 -0
  42. package/claude/skills/create-snippet/SKILL.md +28 -0
  43. package/claude/skills/create-snippet/references/snippets.md +57 -0
  44. package/claude/skills/create-standard/SKILL.md +31 -0
  45. package/claude/skills/create-standard/references/standard.md +52 -0
  46. package/claude/skills/docs-sync/SKILL.md +87 -0
  47. package/claude/skills/git-branch/REQUIREMENT.md +38 -0
  48. package/claude/skills/git-branch/SKILL.md +60 -0
  49. package/claude/skills/git-branch/references/branch.md +49 -0
  50. package/claude/skills/git-commit/REQUIREMENT.md +33 -0
  51. package/claude/skills/git-commit/SKILL.md +51 -0
  52. package/claude/skills/git-commit/references/commit.md +63 -0
  53. package/claude/skills/git-followup/REQUIREMENT.md +38 -0
  54. package/claude/skills/git-followup/SKILL.md +35 -0
  55. package/claude/skills/git-issue/REQUIREMENT.md +38 -0
  56. package/claude/skills/git-issue/SKILL.md +69 -0
  57. package/claude/skills/git-issue/references/issue.md +84 -0
  58. package/claude/skills/git-pr/REQUIREMENT.md +37 -0
  59. package/claude/skills/git-pr/SKILL.md +119 -0
  60. package/claude/skills/git-pr/references/branch.md +49 -0
  61. package/claude/skills/git-pr/references/pr.md +124 -0
  62. package/claude/skills/git-ship/REQUIREMENT.md +34 -0
  63. package/claude/skills/git-ship/SKILL.md +39 -0
  64. package/claude/skills/git-split/REQUIREMENT.md +38 -0
  65. package/claude/skills/git-split/SKILL.md +160 -0
  66. package/claude/skills/git-split/references/branch.md +49 -0
  67. package/claude/skills/git-split/references/pr.md +124 -0
  68. package/claude/skills/git-stage/REQUIREMENT.md +36 -0
  69. package/claude/skills/git-stage/SKILL.md +74 -0
  70. package/claude/skills/git-stage/references/commit.md +63 -0
  71. package/claude/skills/git-worktree/REQUIREMENT.md +37 -0
  72. package/claude/skills/git-worktree/SKILL.md +120 -0
  73. package/claude/skills/migration-claude-md/SKILL.md +74 -0
  74. package/claude/skills/migration-context/SKILL.md +93 -0
  75. package/claude/skills/migration-standards/SKILL.md +75 -0
  76. package/claude/skills/project-commands/SKILL.md +73 -0
  77. package/claude/skills/session-resume/SKILL.md +36 -0
  78. package/claude/skills/setup-gov/SKILL.md +71 -0
  79. package/claude/skills/setup-indexes/SKILL.md +148 -0
  80. package/claude/skills/setup-init/SKILL.md +114 -0
  81. package/claude/skills/setup-plugins/SKILL.md +81 -0
  82. package/claude/skills/setup-plugins/references/plugin-catalog.md +53 -0
  83. package/claude/skills/setup-verify/SKILL.md +51 -0
  84. package/claude/skills/systematic-debugging/SKILL.md +70 -0
  85. package/claude/skills/toolkit-cli/SKILL.md +38 -0
  86. package/claude/skills/toolkit-feedback/SKILL.md +80 -0
  87. package/claude/skills/toolkit-operator/SKILL.md +45 -0
  88. package/claude/skills/toolkit-triage/SKILL.md +63 -0
  89. package/claude/skills/youtube-transcripts/SKILL.md +34 -0
  90. package/docs/agents.md +371 -0
  91. package/docs/ai-workflow.md +157 -0
  92. package/docs/index.md +20 -0
  93. package/docs/operating-model.md +106 -0
  94. package/docs/target-projects.md +183 -0
  95. package/docs/visual-design-workflow.md +136 -0
  96. package/docs/zshrc-aliases.md +65 -0
  97. package/governance/rules/claude/500-prose.md +12 -0
  98. package/governance/rules/claude/510-context.md +16 -0
  99. package/governance/rules/claude/520-wireframes.md +12 -0
  100. package/governance/rules/claude/530-requirements.md +11 -0
  101. package/governance/rules/claude/540-architecture.md +11 -0
  102. package/governance/rules/claude/550-design.md +11 -0
  103. package/governance/rules/claude/555-tasks.md +12 -0
  104. package/governance/rules/claude/560-diagrams.md +11 -0
  105. package/governance/rules/claude/570-skill.md +18 -0
  106. package/governance/rules/claude/580-readme.md +11 -0
  107. package/governance/rules/claude/590-rule-authoring.md +12 -0
  108. package/governance/rules/core/000-constitution.md +30 -0
  109. package/governance/rules/core/010-testing.md +35 -0
  110. package/governance/rules/core/020-concurrency.md +22 -0
  111. package/governance/rules/core/030-error-handling.md +31 -0
  112. package/governance/rules/core/040-performance.md +20 -0
  113. package/governance/rules/core/050-logging.md +20 -0
  114. package/governance/rules/core/060-naming.md +19 -0
  115. package/governance/rules/core/070-planning.md +13 -0
  116. package/governance/rules/core/080-config-comments.md +22 -0
  117. package/governance/rules/framework/200-react.md +51 -0
  118. package/governance/rules/framework/210-astro.md +41 -0
  119. package/governance/rules/framework/220-fastapi.md +43 -0
  120. package/governance/rules/framework/230-nextjs.md +48 -0
  121. package/governance/rules/framework/250-tailwind.md +32 -0
  122. package/governance/rules/framework/260-shadcn.md +34 -0
  123. package/governance/rules/lang/100-typescript.md +40 -0
  124. package/governance/rules/lang/110-python.md +42 -0
  125. package/governance/rules/lib/300-testing-ts.md +38 -0
  126. package/governance/rules/lib/310-zod.md +25 -0
  127. package/governance/rules/lib/320-tanstack-query.md +32 -0
  128. package/governance/rules/lib/330-testing-py.md +44 -0
  129. package/governance/rules/lib/340-pydantic.md +38 -0
  130. package/governance/rules/lib/350-security-web.md +31 -0
  131. package/governance/rules/ui/400-ui.md +34 -0
  132. package/governance/rules/ui/410-a11y.md +44 -0
  133. package/governance/rules/ui/420-forms.md +34 -0
  134. package/governance/rules/ui/430-ux-completeness.md +62 -0
  135. package/governance/stacks/astro.toml +2 -0
  136. package/governance/stacks/base.toml +2 -0
  137. package/governance/stacks/node.toml +2 -0
  138. package/governance/stacks/python-fastapi.toml +2 -0
  139. package/governance/stacks/python.toml +2 -0
  140. package/governance/stacks/react.toml +2 -0
  141. package/package.json +67 -0
  142. package/scripts/config.sh +11 -0
  143. package/scripts/core/bootstrap.sh +81 -0
  144. package/scripts/core/check-plugin-boundary.sh +45 -0
  145. package/scripts/core/check-skill-paths.sh +25 -0
  146. package/scripts/core/clean.sh +36 -0
  147. package/scripts/core/install-check.sh +93 -0
  148. package/scripts/core/regen-claude-copies.sh +26 -0
  149. package/scripts/core/regen-indexes.sh +10 -0
  150. package/scripts/core/regen-skill-references.sh +27 -0
  151. package/scripts/core/snapshot.sh +132 -0
  152. package/scripts/core/update.sh +35 -0
  153. package/scripts/core/verify.sh +201 -0
  154. package/scripts/docs/list.sh +129 -0
  155. package/scripts/gov/list.sh +234 -0
  156. package/scripts/lib/frontmatter.sh +30 -0
  157. package/scripts/lib/gov.sh +14 -0
  158. package/scripts/lib/sandbox-fixtures.sh +109 -0
  159. package/scripts/lib/sandbox-git.sh +73 -0
  160. package/scripts/lib/tooling.sh +24 -0
  161. package/scripts/lib/ui.sh +173 -0
  162. package/scripts/lib/worktree.sh +20 -0
  163. package/scripts/manage-sandbox.sh +453 -0
  164. package/scripts/snippets/create.sh +156 -0
  165. package/scripts/standards/list.sh +91 -0
  166. package/scripts/tooling/create.sh +109 -0
  167. package/scripts/tooling/ref.sh +141 -0
  168. package/scripts/tooling/verify.sh +179 -0
  169. package/snippets/claude/decision-memo.md +39 -0
  170. package/snippets/claude/feature-recap.md +19 -0
  171. package/snippets/claude/figma-steps.md +18 -0
  172. package/snippets/claude/orchestrator-resume.md +23 -0
  173. package/snippets/claude/orchestrator-sweep.md +10 -0
  174. package/snippets/compact-summary.md +5 -0
  175. package/snippets/create-snippet.md +7 -0
  176. package/snippets/decision-help.md +6 -0
  177. package/snippets/meta-prompt.md +14 -0
  178. package/snippets/research-prompt.md +7 -0
  179. package/snippets/session-notes.md +11 -0
  180. package/snippets/snippets.toml +6 -0
  181. package/snippets/step-by-step.md +10 -0
  182. package/snippets/web-research.md +21 -0
  183. package/src/claude/gitignore.ts +51 -0
  184. package/src/claude/seeds-list.ts +47 -0
  185. package/src/claude/seeds.ts +124 -0
  186. package/src/claude/settings.ts +151 -0
  187. package/src/cli-run.ts +43 -0
  188. package/src/cli.ts +111 -0
  189. package/src/commands/claude.ts +349 -0
  190. package/src/commands/design.ts +39 -0
  191. package/src/commands/docs.ts +59 -0
  192. package/src/commands/feedback-format.ts +23 -0
  193. package/src/commands/feedback.ts +103 -0
  194. package/src/commands/gov.ts +268 -0
  195. package/src/commands/indexes.ts +182 -0
  196. package/src/commands/init.ts +117 -0
  197. package/src/commands/pass-through.ts +39 -0
  198. package/src/commands/sandbox.ts +315 -0
  199. package/src/commands/slides.ts +106 -0
  200. package/src/commands/snippets.ts +236 -0
  201. package/src/commands/standards.ts +89 -0
  202. package/src/commands/sync.ts +211 -0
  203. package/src/commands/tasks.ts +185 -0
  204. package/src/commands/tooling.ts +432 -0
  205. package/src/commands/transcripts.ts +48 -0
  206. package/src/commands/wiki.ts +101 -0
  207. package/src/copy.ts +30 -0
  208. package/src/design/parse.ts +79 -0
  209. package/src/design/render.ts +170 -0
  210. package/src/docs/read.ts +59 -0
  211. package/src/exec.ts +17 -0
  212. package/src/frontmatter.ts +13 -0
  213. package/src/github-format.ts +13 -0
  214. package/src/github.ts +20 -0
  215. package/src/gov/adapter.ts +73 -0
  216. package/src/gov/install.ts +103 -0
  217. package/src/gov/payload.ts +39 -0
  218. package/src/gov/stacks.ts +124 -0
  219. package/src/indexes/frontmatter.ts +46 -0
  220. package/src/indexes/regen.ts +84 -0
  221. package/src/indexes/render.ts +181 -0
  222. package/src/indexes/walk.ts +111 -0
  223. package/src/init/flags.ts +66 -0
  224. package/src/init/plan.ts +128 -0
  225. package/src/init/run.ts +46 -0
  226. package/src/init/steps.ts +91 -0
  227. package/src/sandbox/coverage.ts +115 -0
  228. package/src/sandbox/expect.ts +412 -0
  229. package/src/slides/layouts.ts +391 -0
  230. package/src/slides/open.ts +18 -0
  231. package/src/slides/parse.ts +84 -0
  232. package/src/slides/render.ts +88 -0
  233. package/src/slides/styles.ts +44 -0
  234. package/src/snippets/adapter.ts +34 -0
  235. package/src/snippets/categories.ts +59 -0
  236. package/src/snippets/install.ts +125 -0
  237. package/src/snippets/list.ts +32 -0
  238. package/src/snippets/presets.ts +50 -0
  239. package/src/standards/adapter.ts +51 -0
  240. package/src/standards/index-refresh.ts +44 -0
  241. package/src/standards/install.ts +52 -0
  242. package/src/sync/check.ts +269 -0
  243. package/src/sync/engine.ts +416 -0
  244. package/src/sync/git.ts +204 -0
  245. package/src/sync/stamp.ts +202 -0
  246. package/src/sync/target.ts +79 -0
  247. package/src/sync/workflow.ts +201 -0
  248. package/src/target.ts +43 -0
  249. package/src/tasks/archive.ts +304 -0
  250. package/src/tooling/gitignore.ts +122 -0
  251. package/src/tooling/inject.ts +214 -0
  252. package/src/tooling/list.ts +39 -0
  253. package/src/tooling/manifest.ts +178 -0
  254. package/src/tooling/package.ts +166 -0
  255. package/src/tooling/scan.ts +186 -0
  256. package/src/transcripts/fetch.ts +156 -0
  257. package/src/transcripts/metadata.ts +54 -0
  258. package/src/transcripts/vtt.ts +114 -0
  259. package/src/ui.ts +187 -0
  260. package/src/wiki/init.ts +85 -0
  261. package/standards/architecture.md +41 -0
  262. package/standards/bundled/branch.md +49 -0
  263. package/standards/bundled/commit.md +63 -0
  264. package/standards/bundled/issue.md +84 -0
  265. package/standards/bundled/pr.md +124 -0
  266. package/standards/bundled/roadmap.md +52 -0
  267. package/standards/bundled/snippets.md +57 -0
  268. package/standards/bundled/standard.md +52 -0
  269. package/standards/context.md +132 -0
  270. package/standards/design.md +31 -0
  271. package/standards/diagrams.md +55 -0
  272. package/standards/index.md +21 -0
  273. package/standards/prose.md +122 -0
  274. package/standards/readme.md +163 -0
  275. package/standards/requirements.md +61 -0
  276. package/standards/rule.md +79 -0
  277. package/standards/skill.md +257 -0
  278. package/standards/tasks.md +140 -0
  279. package/standards/versioning.md +47 -0
  280. package/standards/wireframes.md +67 -0
  281. package/tooling/astro/configs/astro.config.mjs +17 -0
  282. package/tooling/astro/configs/eslint.config.js +79 -0
  283. package/tooling/astro/configs/playwright.config.ts +25 -0
  284. package/tooling/astro/configs/tsconfig.json +12 -0
  285. package/tooling/astro/configs/vitest.config.ts +22 -0
  286. package/tooling/astro/manifest.toml +32 -0
  287. package/tooling/astro/reference.md +60 -0
  288. package/tooling/base/configs/.editorconfig +5 -0
  289. package/tooling/base/configs/.github/pull_request_template.md +18 -0
  290. package/tooling/base/configs/.github/workflows/verify.yml +35 -0
  291. package/tooling/base/configs/.husky/commit-msg +1 -0
  292. package/tooling/base/configs/.husky/post-merge +61 -0
  293. package/tooling/base/configs/.husky/post-rewrite +21 -0
  294. package/tooling/base/configs/.husky/pre-commit +1 -0
  295. package/tooling/base/configs/.husky/pre-push +1 -0
  296. package/tooling/base/configs/.prettierrc +12 -0
  297. package/tooling/base/configs/.shellcheckrc +1 -0
  298. package/tooling/base/configs/.vscode/extensions.json +9 -0
  299. package/tooling/base/configs/.vscode/settings.json +3 -0
  300. package/tooling/base/configs/commitlint.config.js +11 -0
  301. package/tooling/base/configs/scripts/clean.sh +45 -0
  302. package/tooling/base/configs/scripts/update.sh +49 -0
  303. package/tooling/base/configs/scripts/verify.sh +64 -0
  304. package/tooling/base/manifest.toml +32 -0
  305. package/tooling/base/reference.md +114 -0
  306. package/tooling/base/seeds/.claude/context/ci.md +27 -0
  307. package/tooling/base/seeds/.claude/context/development.md +32 -0
  308. package/tooling/base/seeds/.cspell/project-terms.txt +0 -0
  309. package/tooling/base/seeds/.cspell/tech-stack.txt +19 -0
  310. package/tooling/base/seeds/.lintstagedrc +8 -0
  311. package/tooling/base/seeds/.prettierignore +0 -0
  312. package/tooling/base/seeds/cspell.json +20 -0
  313. package/tooling/claude/manifest.toml +11 -0
  314. package/tooling/claude/reference.md +62 -0
  315. package/tooling/claude/seeds/.claude/ARCHITECTURE.md +13 -0
  316. package/tooling/claude/seeds/.claude/DESIGN.md +62 -0
  317. package/tooling/claude/seeds/.claude/REQUIREMENTS.md +18 -0
  318. package/tooling/claude/seeds/.claude/context/index.md +8 -0
  319. package/tooling/claude/seeds/.claude/hooks/index-reminder.sh +43 -0
  320. package/tooling/claude/seeds/.claude/hooks/scratch-guard.sh +45 -0
  321. package/tooling/claude/seeds/.claude/hooks/standards-audit.sh +61 -0
  322. package/tooling/claude/seeds/.claude/hooks/tasks-index.sh +60 -0
  323. package/tooling/claude/seeds/.claude/settings.json +39 -0
  324. package/tooling/claude/seeds/.claude/tasks/index.md +8 -0
  325. package/tooling/claude/seeds/.claude/wireframes/index.md +8 -0
  326. package/tooling/claude/seeds/CLAUDE.md +87 -0
  327. package/tooling/claude/user/settings.template.json +10 -0
  328. package/tooling/claude/user/statusline-command.sh +53 -0
  329. package/tooling/python/configs/.coveragerc +14 -0
  330. package/tooling/python/configs/.python-version +1 -0
  331. package/tooling/python/configs/mypy.ini +6 -0
  332. package/tooling/python/configs/pytest.ini +4 -0
  333. package/tooling/python/configs/ruff.toml +15 -0
  334. package/tooling/python/configs/scripts/verify.sh +77 -0
  335. package/tooling/python/manifest.toml +16 -0
  336. package/tooling/python/reference.md +66 -0
  337. package/tooling/python/seeds/.cspell/tech-stack.txt +19 -0
  338. package/tooling/python/seeds/tests/test_smoke.py +2 -0
  339. package/tooling/vite-react/configs/playwright.config.ts +25 -0
  340. package/tooling/vite-react/configs/tsconfig.json +35 -0
  341. package/tooling/vite-react/configs/vite.config.ts +14 -0
  342. package/tooling/vite-react/configs/vitest.config.ts +26 -0
  343. package/tooling/vite-react/manifest.toml +21 -0
  344. package/tooling/vite-react/reference.md +55 -0
  345. package/tooling/vite-react/seeds/.cspell/project-terms.txt +1 -0
  346. package/tooling/vite-react/seeds/.cspell/tech-stack.txt +1 -0
  347. package/tooling/web/configs/.github/workflows/verify.yml +134 -0
  348. package/tooling/web/configs/.vscode/extensions.json +13 -0
  349. package/tooling/web/configs/.vscode/settings.json +10 -0
  350. package/tooling/web/configs/e2e/home.spec.ts +6 -0
  351. package/tooling/web/configs/e2e/screenshot.ts +41 -0
  352. package/tooling/web/configs/eslint.config.js +82 -0
  353. package/tooling/web/configs/scripts/screenshot.sh +28 -0
  354. package/tooling/web/configs/scripts/verify.sh +80 -0
  355. package/tooling/web/configs/src/test/setup.ts +8 -0
  356. package/tooling/web/manifest.toml +57 -0
  357. package/tooling/web/reference.md +95 -0
  358. package/tooling/web/seeds/.cspell/tech-stack.txt +18 -0
  359. package/tsconfig.json +14 -0
@@ -0,0 +1,124 @@
1
+ ---
2
+ title: Pull request reference
3
+ description: Pull request title and body conventions
4
+ consumers: git-split, git-pr, claude-standards-audit
5
+ ---
6
+
7
+ # Pull request reference
8
+
9
+ ## Title
10
+
11
+ - Format: `<type>(<scope>): <subject>`
12
+ - Casing: lowercase for `<type>`, `<scope>`, and first word of `<subject>`
13
+ - Length: 72 characters maximum
14
+
15
+ ## Content
16
+
17
+ - Use imperative mood for all content (`add`, `fix`, `refactor`)
18
+ - Do not start with "This PR," "This commit," "Included are," or "I have"
19
+ - Do not use buzzwords (`seamless`, `robust`, `game-changer`, `enhanced`)
20
+ - Do not describe historical behavior or unchanged code. Describe new behavior only.
21
+ - Do not include future promises or speculative documentation
22
+ - Do not explain obvious changes (formatting, renaming variables)
23
+ - Do not duplicate commit messages verbatim
24
+
25
+ ## Sections
26
+
27
+ - `## Summary`: 1-2 sentences following `<Action Verb> <Direct Object> to <Result>`, expand for clarity if needed
28
+ - `## Key Changes`: name actual files, functions, or modules (e.g., `AuthService.verify()` not "auth handler"). Always use bullet points, never prose.
29
+ - `## Technical Context` (optional): 1-2 lines of architectural reasoning explaining why, not what
30
+ - Omit Technical Context for docs, config, or trivial changes
31
+ - Use bullet points for multiple reasons, one sentence for a single reason
32
+ - `## Testing` (optional): specify exact commands or test cases run
33
+ - Omit Testing for docs, config, or trivial sync changes
34
+ - Use checkboxes, never prose. See Testing discipline for which box gets ticked.
35
+ - `## For the reviewer` (optional): what the reviewer should confirm, one bullet per request
36
+ - Visuals: include only when they clarify architecture, UI, or complex logic flows
37
+
38
+ ## Testing discipline
39
+
40
+ - Run the check before writing its line. A `- [ ]` reports a check that has not run rather than one that is planned.
41
+ - Tick the box and state the observed result. `- [x] npm test passes, 42 tests` beats `- [ ] run npm test`.
42
+ - Quote the count or output the run reported, never a figure carried from elsewhere.
43
+ - Leave a box unchecked only when a human is required, and name which human and why on the same line.
44
+ - Human-only covers visual or aesthetic judgment, anything needing credentials or a live third-party service, anything needing a second machine or a fresh OS, and judgment about whether a boundary or an abstraction reads correctly. The agent runs everything else.
45
+ - Put a request for the reviewer under `## For the reviewer`. It is a request rather than unfinished testing, so it never appears as an unchecked Testing box.
46
+
47
+ ## Formatting
48
+
49
+ - End every bullet point with a period
50
+
51
+ ## Examples
52
+
53
+ ### Template
54
+
55
+ ```markdown
56
+ ## Summary
57
+
58
+ <Action Verb> <Direct Object> to <Result>.
59
+
60
+ ## Key Changes
61
+
62
+ - <Verb> <specific component/file/function> (<reason if non-obvious>)
63
+ - <Verb> <specific component/file/function>
64
+
65
+ ## Technical Context
66
+
67
+ - <Architectural reasoning explaining why, not what>
68
+
69
+ ## Testing
70
+
71
+ - [x] <Command run> <observed result>
72
+ - [x] <Edge case verified> <what was observed>
73
+ - [ ] <Human-only check> (<which human, why>)
74
+
75
+ ## For the reviewer
76
+
77
+ - <What the reviewer should confirm>
78
+ ```
79
+
80
+ ### Correct
81
+
82
+ ```markdown
83
+ ## Summary
84
+
85
+ Update auth middleware to enforce jwt expiration checks. # imperative + direct object + result
86
+
87
+ ## Key Changes
88
+
89
+ - Add `verifyExpiration()` to `src/auth/validators.ts`. # specific function + file path
90
+ - Refactor `AuthService.authenticate()` to handle 401 codes. # named component + clear change
91
+
92
+ ## Technical Context
93
+
94
+ - Migration to stateless session management for horizontal scalability. # why, not what
95
+
96
+ ## Testing
97
+
98
+ - [x] `npm run test:auth` passes, 42 tests. # command run + observed result
99
+ - [x] Expired token rejected with a 401 against a local server. # edge case + what happened
100
+ - [ ] Staging smoke test (release owner, needs staging credentials). # unchecked + which human + why
101
+
102
+ ## For the reviewer
103
+
104
+ - Confirm the 401 and 403 split reads correctly for the public API. # a request, not a test result
105
+ ```
106
+
107
+ ### Incorrect
108
+
109
+ ```markdown
110
+ ## Summary
111
+
112
+ This PR updates the authentication system to be more robust. # "This PR" opener + buzzword
113
+
114
+ ## Key Changes
115
+
116
+ - Updated auth middleware files # vague, no specific component, no period
117
+ - The old system used to check tokens differently # describes historical behavior
118
+
119
+ ## Testing
120
+
121
+ - Tested manually # no specific command or case
122
+ - [ ] `npm run test:auth` # unchecked box for a check the agent can run
123
+ - [ ] Reviewer confirms the error split reads correctly # a reviewer request, belongs under `## For the reviewer`
124
+ ```
@@ -0,0 +1,52 @@
1
+ ---
2
+ title: Roadmap reference
3
+ description: Shape and content rules for .claude/ROADMAP.md
4
+ consumers: claude-roadmap
5
+ ---
6
+
7
+ # Roadmap reference
8
+
9
+ Applies to `.claude/ROADMAP.md`. Sequences the scope from `.claude/REQUIREMENTS.md` into ordered versions, each a usable increment. Update when the sequence changes or a version ships. The roadmap is committed because the sequence and its rationale are shared strategic truth a fresh session needs, unlike `.claude/tasks/`, which is ephemeral scratch.
10
+
11
+ The roadmap is one scannable table. That is what keeps it distinct from `.claude/tasks/`: the roadmap is an overview read at a glance, while tasks are worked one file at a time.
12
+
13
+ ## What goes in
14
+
15
+ - One row per version, ordered top to bottom by sequence
16
+ - A status per version: active, next in line, or deferred
17
+ - The observable outcome each version delivers, as a short phrase
18
+ - The features a version groups, by name, drawn from the MVP list in `.claude/REQUIREMENTS.md`
19
+ - The version each row depends on, and a short why
20
+
21
+ ## What does not go in
22
+
23
+ - Task breakdown, checkboxes, or per-feature file lists. Those live in `.claude/tasks/` and `.claude/plans/`.
24
+ - Implementation detail, API names, or component references
25
+ - Rationale for tech choices. That belongs in `.claude/ARCHITECTURE.md`.
26
+ - Sentence-long cells. Keep each cell terse so the table stays scannable.
27
+
28
+ ## Format
29
+
30
+ One table. Columns, in order:
31
+
32
+ - `Version`: the `vX.Y` phase label. Phase-label format is governed by `standards/versioning.md`.
33
+ - `Status`: `Now` for the active version, `Next` for sequenced upcoming versions, `Later` for deferred themes.
34
+ - `Outcome`: what the user can do once this version ships, as a phrase.
35
+ - `Features`: the feature names this version groups, comma-separated.
36
+ - `Depends on`: the version this one needs and a short why, or `none` when independent.
37
+
38
+ ## Template
39
+
40
+ ```markdown
41
+ # Roadmap
42
+
43
+ | Version | Status | Outcome | Features | Depends on |
44
+ | ------- | ------ | -------- | -------------------- | ------------------ |
45
+ | v0.1 | Now | <phrase> | <feature>, <feature> | none |
46
+ | v0.2 | Next | <phrase> | <feature> | v0.1, for <reason> |
47
+ | v0.3 | Later | <phrase> | <feature> | none |
48
+ ```
49
+
50
+ ## Lifecycle
51
+
52
+ The roadmap sequences a finite, known scope. When the last version ships, the scope is exhausted and the project cuts a semver release per `standards/versioning.md`. Later work arrives as discrete items, a fresh requirements pass or tracked issues, rather than extending the original roadmap without end.
@@ -0,0 +1,57 @@
1
+ ---
2
+ title: Snippet reference
3
+ description: Snippet reference and authoring conventions
4
+ consumers: create-snippet
5
+ ---
6
+
7
+ # Snippet reference
8
+
9
+ ## What a snippet is
10
+
11
+ A snippet is a short, focused prompt stored as a plain markdown file. Invoke one to insert a prepared instruction into any AI chat without retyping it. Each snippet covers one purpose. If a prompt needs headers or multiple goals, use a system prompt instead.
12
+
13
+ ## Invocation channels
14
+
15
+ - Chrome extension: type `>slug` in a supported chat UI (claude.ai, gemini.google.com) to insert the snippet text inline
16
+ - Claude Code terminal: prefix the install path with `@` (e.g. `@.claude/snippets/claude/feature`)
17
+ - Snippets install preserving the source folder structure. A snippet at `claude/edit.md` installs as `.claude/snippets/claude/edit.md` and is invoked as `@.claude/snippets/claude/edit`
18
+
19
+ ## Use patterns
20
+
21
+ - Run-as-is: invoke and send immediately. The snippet is self-contained and needs no extra context.
22
+ - Invoke-then-add-context: invoke the snippet, then append specifics in the same message (e.g. invoke `claude-feature`, then add the feature name or extra constraints)
23
+ - Invoke-on-history: invoke after a discussion. The snippet uses prior conversation as implicit context with no additional input needed (e.g. invoke `claude-figma` after discussing a design).
24
+
25
+ ## Authoring
26
+
27
+ - One focused purpose per snippet. If it needs headers or multiple goals, use a system prompt instead.
28
+ - Self-contained. No references to external files or assumed prior context.
29
+ - No user fill-in placeholders. If a value depends on context, the user adds it after invocation.
30
+ - Plain markdown only. No YAML frontmatter, no headers, no nested structure.
31
+ - Filename is the slug: kebab-case, no capitals, no underscores
32
+
33
+ ## Structure
34
+
35
+ - Lead with a verb. Open with an imperative that states the job immediately.
36
+ - One instruction per sentence. Do not stack multiple actions into one sentence.
37
+ - For sequential steps, use a numbered list with one action per item.
38
+ - When the output has a fixed shape, show it in a fenced code block with a language identifier.
39
+ - Put constraints and exclusions last, not inline with the main instructions.
40
+
41
+ ## Examples
42
+
43
+ ### Correct
44
+
45
+ ```markdown
46
+ I want to implement the following. Scan relevant files and list conflicts. Do not implement. # user adds feature after invocation
47
+ Scan relevant files and list conflicts. Do not implement. # run-as-is, no context needed
48
+ ```
49
+
50
+ ### Incorrect
51
+
52
+ ```markdown
53
+ I want to implement: <feature or task name> # redundant fill-in, add context after invocation instead
54
+ See ARCHITECTURE.md before starting. # external dependency, not self-contained
55
+
56
+ ## Overview\n## Steps # headers belong in a system prompt, not a snippet
57
+ ```
@@ -0,0 +1,52 @@
1
+ ---
2
+ title: Standard reference
3
+ description: Shape and content rules for authoring a standard
4
+ consumers: create-standard
5
+ ---
6
+
7
+ # Standard reference
8
+
9
+ ## Overview
10
+
11
+ A standard is a target-facing authoring convention for one document type. It installs into a project under `.claude/standards/` and is consumed by skills and developers alike. One standard governs one doc type. Split unrelated conventions into separate files.
12
+
13
+ ## Frontmatter
14
+
15
+ - Start the file with a frontmatter block carrying `title` and `description`.
16
+ - `title`: names the doc type in sentence case, suffixed `reference` (`Commit reference`, `Branch reference`).
17
+ - `description`: one line naming what the standard covers. It becomes the index link label on install.
18
+
19
+ ## Structure
20
+
21
+ - Use sentence case for every heading.
22
+ - Flat `##` rule groups for a single-topic standard. Group `##` headers by concern for a multi-topic one.
23
+ - When one `##` section covers more than one sub-concern, split its bullets into `###` subgroups, one subgroup per sub-concern. A flat bullet list under an `##` covers a single sub-concern. Roughly seven bullets is a signal to split, not a hard cap.
24
+ - Order groups from the most-used rule down to the edge case.
25
+
26
+ ## Rules
27
+
28
+ - Write rules as imperative bullets: one rule per bullet, one concern per group.
29
+ - State the forbidden shape rather than enumerating allowed options, so a rule survives new categories.
30
+ - Cut any rule that resists a crisp one-line phrasing.
31
+ - Do not pad with filler prose. Every line earns its place as a usable reference entry.
32
+
33
+ ## Success criterion
34
+
35
+ - State what a conforming artifact achieves, not only what shape it takes. A standard that specifies structure exhaustively and success nowhere cannot be argued against, only edited on taste.
36
+ - Write the criterion as a small set of questions the artifact must answer, or a task a reader must be able to complete from it. Keep it checkable by a person in one sitting.
37
+ - Place it near the top, above the shape rules it governs. The shape rules are the means and the criterion is the test.
38
+ - Say that an artifact failing the criterion is non-conforming even when it satisfies every shape rule. Without that line the criterion reads as advice.
39
+ - Add a criterion to an existing standard when that standard is next exercised, not in a sweep. A criterion written without a failure to point at is the taste-based edit this section exists to prevent, so a standard with no criterion yet is a known gap rather than a violation.
40
+
41
+ ## Changing a standard
42
+
43
+ - Change a standard on a failure, not on a finding. A finding is that the docs say X or a paper suggests Y. A failure is a conforming artifact that satisfied every shape rule and still missed the success criterion.
44
+ - Park findings wherever the project tracks pending work, or in the standard's own backlog section when it tracks none. They are hypotheses to test, not instructions to apply.
45
+ - Cite the failing artifact in the change that fixes it, so the next reader can tell which rules were paid for by evidence.
46
+
47
+ ## Examples
48
+
49
+ - Include examples only where a rule is non-obvious. A self-evident rule needs none.
50
+ - When shown, label them `### Correct` and `### Incorrect` with an inline `# reason` on each entry.
51
+ - Keep to two or three entries. Show the pattern, not a catalog.
52
+ - Keep each entry a short one-liner or command. Do not write multi-line correct and incorrect function blocks.
@@ -0,0 +1,132 @@
1
+ ---
2
+ title: Context entry reference
3
+ description: Shape and content rules for .claude/context/<domain>.md entries
4
+ ---
5
+
6
+ # Context entry reference
7
+
8
+ Applies to per-domain narrative entries under `.claude/context/`. Skip for `index.md`, which is regenerated by `aitk indexes regen`.
9
+
10
+ ## Organizing principle
11
+
12
+ Weight the entry toward what cannot be re-derived from the repo. That single rule sorts every section below.
13
+
14
+ - Folder structure is re-derivable with `ls`. Cheap to regenerate, expensive to maintain by hand. Cap it hard.
15
+ - Command surfaces are re-derivable with `--help` and already live in the CLI reference under `docs/`. Duplicating flag lists creates a second source of truth that drifts.
16
+ - Decisions and gotchas cannot be re-derived at any price. They are the reason the folder exists.
17
+
18
+ ## What a working entry looks like
19
+
20
+ An entry works when a session can read it and answer three questions without opening source:
21
+
22
+ - Where do things live in this domain?
23
+ - Why are they that way?
24
+ - How do I add one more of what this domain holds?
25
+
26
+ An entry that fails these is non-conforming regardless of whether it satisfies every section and ordering rule below. Shape is the means. These three questions are the test.
27
+
28
+ ## Frontmatter
29
+
30
+ - `title` (required): sentence case, names the domain (`Web`, `API`, `Agents`).
31
+ - `description` (required): one line describing what the domain covers.
32
+
33
+ Both fields feed `.claude/context/index.md` when regenerated.
34
+
35
+ ## Required sections
36
+
37
+ - `## Overview`: two to four lines. What the domain owns and where its boundary sits.
38
+ - `## Layout`: one line per folder in owns-X form. Folders only, never files.
39
+ - Form: ``- `scripts/lib/` owns shared bash functions sourced by domain scripts``. Do not list every file under that folder with a description each.
40
+ - Implementation detail moves to `## Decisions`, `## Hidden contracts`, or `## Gotchas`.
41
+ - Omit the section when the domain owns no paths in the repo, as with a domain covering external tools. Inventing a line to satisfy the heading is the padding banned below.
42
+
43
+ ## Expected sections
44
+
45
+ Include whenever the domain has content for them. Never pad an entry with an empty heading.
46
+
47
+ - `## Decisions`: non-obvious choices and the reasoning behind them. The highest-value section in the folder and the one most often missing.
48
+ - `## Gotchas`: workarounds, things tried and rejected, scar tissue worth preserving.
49
+
50
+ ## Optional sections
51
+
52
+ Pick by what the domain is. Add domain-specific headings as needed.
53
+
54
+ - `## CLI`: the command surface, only when the domain has one, and only as a list of what each verb does. Flags and JSON shapes stay in the CLI reference under `docs/`, linked rather than restated.
55
+ - `## Workflow` or `## Adding a <thing>`: the procedure for the domain's most common task. Most sessions arrive asking how to add one more of the thing the domain holds.
56
+ - `## Hidden contracts`: invariants the code does not self-document (shape constraints, skip rules, header semantics). Use `## Decisions` when the reader needs the reasoning rather than the invariant itself.
57
+
58
+ ## Ordering
59
+
60
+ - Order sections `Overview`, `Layout`, `Decisions`, `Gotchas`, then everything else.
61
+ - Entries get read top-down and often partially, so irreducible content sits above recoverable content.
62
+
63
+ ## The development entry
64
+
65
+ Only the `development` entry carries this section. It is not a general-purpose heading for other domains.
66
+
67
+ - `## Scripts`: a table of run commands (command plus purpose). The single discoverable surface for how to run the project. Keep run commands here, not scattered across `CLAUDE.md`.
68
+
69
+ ## What goes in
70
+
71
+ - Per-domain narrative on how the code is structured and why
72
+ - Decisions specific to the domain. Broader cross-domain decisions belong in `.claude/ARCHITECTURE.md`.
73
+ - Constraints, gotchas, things tried and rejected
74
+ - Domain-specific conventions that do not fit a `paths:`-scoped rule
75
+
76
+ ## What does not go in
77
+
78
+ - Exhaustive file trees with a description per file. Name folders and their responsibility under `## Layout` instead.
79
+ - Restated `--help` output, flag tables, or JSON shapes.
80
+ - A catalog a `list` command already returns. Link the command instead, so the entry cannot drift from it.
81
+ - Function-level documentation for implementation modules. Read the code. The exception is the public surface of a shared utility module, where the entry is how a session finds an existing helper instead of duplicating it.
82
+ - Rules. Those go in `.claude/rules/<scope>.md` with a `paths:` glob.
83
+ - Tutorials or human onboarding. Those go in `docs/` if a public audience exists.
84
+ - Generated content (API references). Generate, do not write by hand.
85
+ - Anything already in `.claude/REQUIREMENTS.md` or `.claude/ARCHITECTURE.md`.
86
+
87
+ ## Length
88
+
89
+ - Aim for one entry per domain. There is no hard cap. Length is a symptom, not the defect.
90
+ - Past roughly 150 lines, check two things before adding more: whether the entry still covers a single domain, and whether it has filled with content `ls` or `--help` reproduces. Fix whichever is true rather than trimming to hit a number.
91
+ - Never cut a `## Decisions` or `## Gotchas` entry to shorten a file. Cut a `## Layout` or `## CLI` section instead.
92
+ - Split into a folder (`.claude/context/<domain>/<sub-area>.md`) when a domain has three or more sub-areas that do not fit cleanly in one file. That split is the natural ceiling.
93
+
94
+ ## Examples
95
+
96
+ ### Template
97
+
98
+ ```markdown
99
+ ---
100
+ title: API
101
+ description: HTTP layer structure, route ownership, and request validation
102
+ ---
103
+
104
+ # API
105
+
106
+ ## Overview
107
+
108
+ Owns the HTTP surface end to end: routing, request validation, and response
109
+ serialization. Business logic lives in `src/services/` and is called from here,
110
+ never the reverse.
111
+
112
+ ## Layout
113
+
114
+ - `src/routes/` owns the HTTP layer and request parsing
115
+ - `src/services/` owns business logic with no HTTP concerns
116
+ - `src/db/` owns persistence and schema migrations
117
+
118
+ ## Decisions
119
+
120
+ - Validation happens at the route boundary using a schema library. Services trust their inputs.
121
+ - Pagination uses opaque cursor tokens, never offset+limit. Cursor format stays opaque to clients.
122
+
123
+ ## Gotchas
124
+
125
+ - The `/health` endpoint skips auth middleware. Liveness probes from the orchestrator do not carry tokens.
126
+ - Database connection pool caps at 50. Concurrent requests over that block until a connection frees.
127
+
128
+ ## Hidden contracts
129
+
130
+ - Route handlers return a plain object. The serializer wraps it in `{ data, meta }`. Handlers never wrap manually.
131
+ - Cursor tokens are base64-encoded JSON of `{ id, sort }`. Any handler that issues a cursor must use the shared encoder.
132
+ ```
@@ -0,0 +1,31 @@
1
+ ---
2
+ title: Design reference
3
+ description: Shape and content rules for .claude/DESIGN.md
4
+ ---
5
+
6
+ # Design reference
7
+
8
+ Applies to `.claude/DESIGN.md`. Captures visual intent and the decisions behind how things look, not a style guide, component spec, or framework reference. Update when a visual decision is made or a rule changes.
9
+
10
+ ## What goes in
11
+
12
+ - Tokens described as intent ("mid gray, muted text"), not computed values. Exact values live in code.
13
+ - Layout constraints and sizing rules not obvious from wireframes
14
+ - Visual rules a developer could get wrong without guidance
15
+ - Non-obvious omissions ("no motion", "no custom icons") that prevent scope creep
16
+
17
+ ## What does not go in
18
+
19
+ - CSS classes, computed values, component filenames, and prop names. Those live in code.
20
+ - UX copy and interaction flows. Those live in the wireframes.
21
+ - Anything that needs updating every time the code is refactored
22
+
23
+ ## Format
24
+
25
+ - Use tables for token systems, one row per token. Use short bullets for component rules, one decision per line.
26
+ - Plain English over technical notation. If a section could be removed and the developer would still build correctly from wireframes and code alone, remove it.
27
+ - Keep table headers and role names intact so the render tooling can parse the token tables.
28
+
29
+ ## Sections
30
+
31
+ Use `## Personality`, `## Color`, `## Typography`, `## Spacing`, `## Borders`, `## Motion`, and `## Iconography`. The token tables carry fixed headers the renderer reads.
@@ -0,0 +1,55 @@
1
+ ---
2
+ title: Diagram reference
3
+ description: Conventions for Mermaid diagrams in .claude/DIAGRAMS.md
4
+ ---
5
+
6
+ # Diagram reference
7
+
8
+ Applies to Mermaid diagrams in `.claude/DIAGRAMS.md`. Goal: diagrams that render cleanly in narrow-column renderers (VS Code preview, GitHub PR view, Cursor) and read pedagogically without surrounding prose.
9
+
10
+ ## Layout
11
+
12
+ - Declare `flowchart TB` by default. Mermaid ignores a subgraph's direction whenever that subgraph links outward, and an architecture diagram links across its subgraphs as the normal case, so top-bottom is a declaration rather than a guarantee.
13
+ - Restructure a diagram that renders diagonal or left-to-right. Repeating the direction keyword does not fix it.
14
+ - Render a component, context, or pipeline diagram taller than wide. A `sequenceDiagram` is wide by construction and is exempt.
15
+ - Do not let independent nodes render in a row. A row of siblings reads as a sequential chain and asserts a pipeline the system does not have.
16
+ - Do not converge many edges on one node from one side. A crossing bundle is unreadable whatever it encodes.
17
+ - Keep node labels short. Three or four words max. Detail goes in the paragraph below the diagram.
18
+ - Use `<br/>` for a second short line on a node when the label is two ideas, never for a sentence.
19
+ - Subgraphs are for grouping unrelated lanes (offline versus online, browser versus server). Do not subgraph a single linear flow.
20
+
21
+ ## Budgets
22
+
23
+ - Hold a diagram to roughly 5 to 10 nodes. Split it past 15.
24
+ - Watch edge count harder than node count. It binds first, and a diagram whose edges outnumber its nodes is already too dense to read.
25
+ - Treat a diagram that cannot be described in one sentence as two diagrams.
26
+ - Warn rather than refuse on a budget, and name the split that would fix it. These numbers come from published Mermaid practice rather than from a measurement in this repository, so a hard refusal on them will be wrong sometimes and unarguable when it is.
27
+
28
+ ## Accessibility
29
+
30
+ - Give every diagram `accTitle` and `accDescr`. `accTitle` names what the diagram answers. `accDescr` states the structure in one sentence for a reader who cannot see the render.
31
+
32
+ ## Verification
33
+
34
+ - Judge a diagram from its rendered image, not from its source. Direction, sibling rows, and edge bundles are visible only in the output.
35
+ - Render to PNG. An SVG export reads back as markup with no recoverable spatial meaning.
36
+ - Apply four tests as a reviewer, the same ones the author applied: direction held, no sibling row reading as a chain, no crossing edge bundle, taller than wide outside a sequence diagram.
37
+ - State which verification was skipped when no renderer is available. A diagram written without a render is still shippable, and one reported as verified without a render is not.
38
+
39
+ ## Narrative
40
+
41
+ - Build a narrative arc across the file, not a parallel list of unrelated views. Start with the whole system in five or six boxes. Drill into one phase per section.
42
+ - Order sections chronologically when possible: framing, then setup, then a query travels through, then measurement.
43
+ - One H2 per diagram. The H2 names what the diagram answers, not what it shows ("How the corpus gets populated", not "Corpus ingestion").
44
+
45
+ ## Explanation
46
+
47
+ - One to three short paragraphs below each diagram. Plain English, pedagogical, no marketing copy.
48
+ - Lead with what the diagram shows. Follow with why this shape was chosen and what alternative was rejected, when the choice was non-obvious.
49
+ - Reference one or two specific code paths the reader can open. Do not enumerate every file.
50
+ - Do not duplicate prose between sections. Each paragraph earns its line.
51
+
52
+ ## Maintenance
53
+
54
+ - When the system changes (new layer, new provider, new deploy posture), audit `.claude/DIAGRAMS.md` in the same PR. A diagram showing a defunct host or library is worse than no diagram.
55
+ - Mermaid blocks are inside fenced code, so the prose-standards hook ignores them. The explanation paragraph below is still prose. Follow `standards/prose.md`.
@@ -0,0 +1,21 @@
1
+ ---
2
+ title: Standards
3
+ subtitle: Reference docs for consistent authoring across the toolkit and target projects.
4
+ ---
5
+
6
+ # Standards
7
+
8
+ Reference docs for consistent authoring across the toolkit and target projects.
9
+
10
+ - [Architecture reference](architecture.md): Shape and content rules for .claude/ARCHITECTURE.md
11
+ - [Context entry reference](context.md): Shape and content rules for .claude/context/<domain>.md entries
12
+ - [Design reference](design.md): Shape and content rules for .claude/DESIGN.md
13
+ - [Diagram reference](diagrams.md): Conventions for Mermaid diagrams in .claude/DIAGRAMS.md
14
+ - [Prose reference](prose.md): Voice, structure, formatting, and language rules for reference markdown
15
+ - [Readme reference](readme.md): Readme structure and content conventions
16
+ - [Requirements reference](requirements.md): Shape and content rules for .claude/REQUIREMENTS.md
17
+ - [Governance rule reference](rule.md): Rule frontmatter, body shape, and voice for .claude/rules files
18
+ - [Claude skill reference](skill.md): Claude skill structure and authoring rules
19
+ - [Tasks reference](tasks.md): Folder layout, filename convention, and content rules for .claude/tasks/
20
+ - [Versioning reference](versioning.md): Phase label vs semver discipline across tasks, PRs, commits, and tags
21
+ - [Wireframe reference](wireframes.md): Shape and content rules for .claude/wireframes/<surface>.md files
@@ -0,0 +1,122 @@
1
+ ---
2
+ title: Prose reference
3
+ description: Voice, structure, formatting, and language rules for reference markdown
4
+ ---
5
+
6
+ # Prose reference
7
+
8
+ Applies to markdown reference docs, READMEs, and inline documentation in repos. It is the default voice for `.md` files and yields to any surface with its own voice, such as blogs, emails, changelogs, or commit messages.
9
+
10
+ ## Voice
11
+
12
+ - Write for a developer who is scanning, not studying. Every sentence should be understandable on first read.
13
+ - Use active voice. Default to present tense unless past or future tense is factually correct.
14
+ - Prioritize direct verbs and plain words, using the minimum necessary. Write `use` not `utilize`, `help` not `facilitate`, `is` not `serves as`.
15
+ - Vary sentence length and opening structure to break uniform cadence. Do not start consecutive sentences the same way.
16
+ - Use substantive connectives where flow matters, but never add words solely for rhythm. Terse reference prose needs no padding.
17
+ - Be direct on established facts. Hedge on genuinely uncertain claims.
18
+ - Assume developer-level technical knowledge. Skip hand-holding explanations.
19
+ - Keep paragraphs to four sentences or fewer. Split longer blocks at the next logical boundary.
20
+
21
+ ## Structure
22
+
23
+ ### Headings
24
+
25
+ - H1 for document title, H2 for main sections, H3 for subsections
26
+ - Use sentence case for all headings (H1, H2, H3)
27
+ - Proper nouns and product names retain their casing in headings
28
+
29
+ ### Paragraphs and lists
30
+
31
+ - Front-load key information in each paragraph. Keep paragraphs concise and scannable.
32
+ - Every sentence must provide new information. Cut redundant context.
33
+ - Use prose by default. Reserve bullets for discrete, unrelated items.
34
+ - Keep bullets tight. If a bullet needs more than a couple of sentences, it belongs in prose.
35
+
36
+ ## Formatting
37
+
38
+ ### Lists
39
+
40
+ - Use dashes (`-`) not asterisks (`*`) for bulleted lists
41
+ - Do not end single-sentence or fragment bullets with a period. Use periods when a bullet has two or more sentences.
42
+ - For key path lists, use colon format: `- \`src/\`: description`. Never use an em dash.
43
+ - Do not introduce a list with a "Here are the X:" or "The following X:" lead-in
44
+
45
+ ### Code and identifiers
46
+
47
+ - Wrap commands, API names, file paths, and code identifiers in backticks
48
+ - Use a language identifier on all fenced code blocks (`markdown`, `typescript`, `plaintext`). Never use a bare ` ``` `
49
+ - In ASCII tree diagrams, use `←` for inline annotations. Never use `#`.
50
+
51
+ ### Punctuation
52
+
53
+ - Do not use em dashes (`—`) or semicolons (`;`). Rewrite or restructure the sentence to avoid them.
54
+ - Do not use parenthetical asides in prose (`the config (which is optional) controls...`). Split into its own sentence or drop it. Parentheses in rule definitions for grouping examples are fine.
55
+
56
+ ### Emphasis and dividers
57
+
58
+ - Do not over-format with excessive bold, italic, or header usage
59
+ - Do not use horizontal rules or dividers (`---`) in body content. The `---` delimiters of a YAML frontmatter block at the top of the file are allowed.
60
+
61
+ ### Links and file references
62
+
63
+ - Use descriptive anchor text for links. Avoid `click here` or `read more`.
64
+ - Wrap file references in backticks by default. Use a labeled markdown link (`[label](path)`) only on rendered-for-human surfaces (`README.md`, `docs/`) for cross-folder navigation. Never repeat the path verbatim as the label.
65
+
66
+ ## Language
67
+
68
+ - Use American English spelling. Prefer `-ize` over `-ise`, `-or` over `-our`, `-er` over `-re` (`organize`, `analyze`, `summarize`, `recognize`, `behavior`, `color`, `center`)
69
+ - Do not use marketing buzzwords (`seamless`, `robust`, `powerful`, `revolutionary`, `enhanced`, `allows`, `leverage`)
70
+ - Do not use vague qualifiers (`simply`, `just`, `easily`, `quickly`, `very`, `really`)
71
+ - Open a sentence with its subject and action, not filler (`Note that`, `Basically`), a hollow connective (`That being said`, `It's worth noting`), or a gerund windup (`Leveraging the API...`). Substantive transitions that carry a real relationship are fine.
72
+ - Do not use the negative parallelism pattern (`It's not X, it's Y`, `not because X, but because Y`)
73
+ - Do not pad verb phrases or delay the action. Write the shortest form (`in order to` → `to`, `ensure that X is set` → `set X`, `By doing X, you can Y` → state Y directly).
74
+ - Do not address the reader as a participant (`Let's`, `Here's`, `Here are`). State the content directly.
75
+ - Commit to a position. Do not hedge in clusters (`It might be worth considering`) or use false balance (`While X is true, Y is also important`). Recommend, or state the tradeoff.
76
+
77
+ ## Frontmatter descriptions
78
+
79
+ When frontmatter carries a short `title` or `description` used for catalog display:
80
+
81
+ - `title`: sentence case, identifies the file uniquely against its siblings in the same catalog. Proper nouns retain their casing. No trailing period.
82
+ - `description`: sentence case, names the specific topics covered so a reader can decide whether to open the file. Lead with concrete subjects, strip filler like "guide to", "overview of", or "documentation about". No trailing period, no leading article (`the`, `a`).
83
+ - Do not mechanically reuse the H1 as the description.
84
+
85
+ ## Examples
86
+
87
+ Each pair shows a banned pattern and its fix.
88
+
89
+ ```markdown
90
+ Bad: The configuration file serves as the central hub for all build settings.
91
+ Good: Configuration lives in `vite.config.ts`.
92
+ ```
93
+
94
+ ```markdown
95
+ Bad: In order to configure the server, you'll need to ensure that the port is set.
96
+ Good: Set `port` in the server config.
97
+ ```
98
+
99
+ ```markdown
100
+ Bad: It's not just a cache. It's a system for intelligent memory management.
101
+ Good: The cache is an LRU store. It evicts the least-recently-used entry when full.
102
+ ```
103
+
104
+ ```markdown
105
+ Bad: Leveraging the retry mechanism, developers can build more resilient integrations.
106
+ Good: Use the `retry` option for failed webhooks. Set `maxRetries` to 3.
107
+ ```
108
+
109
+ ```markdown
110
+ Bad: It might be worth considering whether to enable caching.
111
+ Good: Enable caching for read-heavy endpoints. Skip it for writes.
112
+ ```
113
+
114
+ ```markdown
115
+ Bad: See [.claude/context/retrieval.md](.claude/context/retrieval.md) for the retrieval flow.
116
+ Good: See `.claude/context/retrieval.md` for the retrieval flow.
117
+ ```
118
+
119
+ ```markdown
120
+ Bad: Read [docs/development.md](docs/development.md) before contributing.
121
+ Good: Read the [development guide](docs/development.md) before contributing.
122
+ ```