@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,136 @@
1
+ ---
2
+ name: claude-review
3
+ description: Reviews all changes since main for bugs, edge cases, and logic flaws. Reads CLAUDE.md, REQUIREMENTS.md, and ARCHITECTURE.md for context, then applies a structured review to the full diff and outputs a findings report. Coding standards from `.claude/rules/` are auto-loaded by Claude Code. Use when asked to review changes, run a code review, or check the current branch. Do NOT auto-trigger on vague signals like "looks good" or "can you check this". Require an explicit review request or an autoship invocation.
4
+ ---
5
+
6
+ # Claude review
7
+
8
+ ## Guards
9
+
10
+ - Resolve the base ref first, per Diff baseline below. If the staged set, the branch set, and the working set are all empty, stop: `✅ No changes to review.` A guard reading bare local `main` stops the skill on `main` before it ever reaches Step 2.
11
+
12
+ ## Diff baseline
13
+
14
+ Resolve the base ref once and reuse it in the guard and in Step 2:
15
+
16
+ ```bash
17
+ git merge-base HEAD origin/main 2>/dev/null || git merge-base HEAD main 2>/dev/null
18
+ ```
19
+
20
+ Prefer `origin/main` over local `main`. On `main` itself the local ref resolves to HEAD, so every committed change drops out of the set and the skill reports a clean branch rather than admitting it cannot see the work.
21
+
22
+ The baseline is unusable in two cases:
23
+
24
+ - No merge base resolves against either ref.
25
+ - The base equals HEAD, whichever ref resolved it. Nothing is committed ahead of the base to compare against. This is the ordinary shape on `main`, and on a feature branch before its first commit.
26
+
27
+ An unusable baseline costs only the committed half. `git diff <base> HEAD` is empty by definition once the base equals HEAD, while the staged set and `git diff HEAD` still report work at correct scope. Review those and lead the report with `⚠ Baseline unusable. Reviewed the uncommitted set only.`, so a clean summary is never read as a clean branch.
28
+
29
+ ## Step 1: read context
30
+
31
+ Read these in parallel from the project root, skipping any that do not exist:
32
+
33
+ - `CLAUDE.md`: project type, conventions, and commands
34
+ - `.claude/REQUIREMENTS.md`: feature scope and non-goals
35
+ - `.claude/ARCHITECTURE.md`: technical design decisions
36
+
37
+ Coding standards from `.claude/rules/` are auto-loaded by Claude Code. Always-on rules apply every session. Path-scoped rules apply to files matching their `paths:` glob.
38
+
39
+ ## Step 2: get the diff and changed files
40
+
41
+ Resolve the base ref per Diff baseline above, then run these in parallel from the project root:
42
+
43
+ ```bash
44
+ git diff --staged
45
+ ```
46
+
47
+ ```bash
48
+ git diff --staged --name-only
49
+ ```
50
+
51
+ ```bash
52
+ git diff <base> HEAD
53
+ ```
54
+
55
+ ```bash
56
+ git diff <base> HEAD --name-only
57
+ ```
58
+
59
+ If `git diff --staged` is non-empty, use it as the diff scope and use the `--staged --name-only` list as the file list. Otherwise use `git diff <base> HEAD` and its name-only list.
60
+
61
+ When the baseline is unusable, substitute `git diff HEAD` and `git diff HEAD --name-only` for the branch pair. Never substitute the whole tree for a missing baseline.
62
+
63
+ ## Step 3: read changed files
64
+
65
+ Read each file from the changed file list. Skip deleted files. Run reads in parallel.
66
+
67
+ ## Step 4: review and persist
68
+
69
+ Review the full diff and changed file contents for:
70
+
71
+ 1. Bugs and edge cases
72
+ 2. Error handling gaps
73
+ 3. Logic flaws that will cause problems when the code is extended
74
+ 4. Security issues relevant to the project context
75
+ 5. Violations of rules from `.claude/rules/` that apply to the changed files
76
+
77
+ Use `CLAUDE.md`, `.claude/REQUIREMENTS.md`, `.claude/ARCHITECTURE.md`, and the auto-loaded `.claude/rules/` as project context to inform what is intentional vs problematic. Do not fix, rewrite, or suggest refactors outside the scope of a finding.
78
+
79
+ ### High-signal filter
80
+
81
+ Flag only issues that will definitely cause incorrect behavior or break a documented rule. Skip:
82
+
83
+ - Code style or quality concerns
84
+ - Subjective suggestions
85
+ - Linter territory
86
+ - Issues that depend on unverified state
87
+
88
+ If uncertain, do not flag. False positives erode trust.
89
+
90
+ ### Severity
91
+
92
+ - **critical**: blocks the feature. Broken in production if shipped.
93
+ - **should-fix**: fix in same session while context is fresh. Not a blocker.
94
+ - **minor**: not worth fixing now. Include for visibility.
95
+
96
+ ### Report format
97
+
98
+ Start with a summary line. Group findings by file. Within each file, list findings sorted by severity (critical first, then should-fix, then minor). Omit files with no findings.
99
+
100
+ ```markdown
101
+ X critical, Y should-fix, Z minor across N files.
102
+
103
+ File: path/to/file.ext
104
+
105
+ - **critical**: finding
106
+ - **should-fix**: finding
107
+ - **minor**: finding
108
+
109
+ File: path/to/other.ext
110
+
111
+ - **critical**: finding
112
+ - **minor**: finding
113
+ ```
114
+
115
+ If nothing is wrong, use: `✅ No findings.`
116
+
117
+ ### Persist
118
+
119
+ Derive a slug from the current git branch: run `git branch --show-current` and replace any `/` with `-`. If the result is empty (detached HEAD), use `latest`.
120
+
121
+ Write the full report directly to `.claude/review/review-<slug>.md` at the main worktree root, not the current worktree. See Worktrees in `CLAUDE.md`. Create the directory if it does not exist. Always overwrite.
122
+
123
+ If there are no findings, write `✅ No findings.` to the file with a timestamp.
124
+
125
+ The `.claude/review/` directory is gitignored. Do not stage or commit the file.
126
+
127
+ ### Chat output
128
+
129
+ Output only the summary line and the file path. Do not repeat the full report in chat.
130
+
131
+ ```plaintext
132
+ X critical, Y should-fix, Z minor across N files.
133
+ 📝 Wrote .claude/review/review-<slug>.md
134
+ ```
135
+
136
+ If no findings: `✅ No findings. Wrote .claude/review/review-<slug>.md`
@@ -0,0 +1,61 @@
1
+ ---
2
+ name: claude-roadmap
3
+ description: Drafts or updates `.claude/ROADMAP.md` by sequencing the MVP scope from `.claude/REQUIREMENTS.md` into ordered versions, each a usable increment. Use when asked to "draft a roadmap", "build the roadmap", "sequence the versions", "plan the roadmap", or "update the roadmap". Do NOT break versions into task-level steps. That is `claude-feature` and `.claude/tasks/`.
4
+ ---
5
+
6
+ # Claude roadmap
7
+
8
+ ## Guards
9
+
10
+ - If `.claude/REQUIREMENTS.md` is absent or has no MVP features, stop: `❌ No requirements to sequence. Draft .claude/REQUIREMENTS.md first.`
11
+ - If the requirements file carries a later scope section, stop per Lifecycle gate below
12
+ - Sequence versions and their outcomes only. Do not produce file lists or task steps.
13
+
14
+ ## Lifecycle gate
15
+
16
+ A roadmap sequences the MVP list alone, so a later scope section means that list has shipped and a fresh requirements pass owns what follows. The rule is the Lifecycle section of `.claude/standards/requirements.md`, falling back to `${CLAUDE_SKILL_DIR}/../../standards/requirements.md` when the project has no copy.
17
+
18
+ - A later scope section is a `##` heading after `## MVP features` that `.claude/standards/requirements.md` names nowhere, neither among the six it fixes nor as the conditional `## Distribution`
19
+ - On finding one, stop: `❌ MVP scope already sequenced. ## <section> is later scope, which a fresh requirements pass sequences rather than this roadmap. Say to sequence it anyway to override.`
20
+ - Draft without the gate when neither copy of the standard resolves. Refusing on a rule that could not be read stops more than it protects.
21
+ - When the caller overrides, sequence the later scope section's entries as versions and proceed
22
+
23
+ ## Step 1: read context
24
+
25
+ Read these in parallel from the project root, skipping any that do not exist:
26
+
27
+ - `.claude/REQUIREMENTS.md`: the MVP feature scope to sequence
28
+ - `.claude/ROADMAP.md`: the existing roadmap, when updating rather than drafting
29
+ - `.claude/tasks/index.md`: what is in flight, to mark the active version
30
+ - `.claude/ARCHITECTURE.md`: technical dependencies that constrain ordering
31
+
32
+ Follow `${CLAUDE_SKILL_DIR}/references/roadmap.md` for the doc shape, sections, and version format.
33
+
34
+ ## Step 2: sequence
35
+
36
+ Group the MVP features into versions, each a usable increment that stands on its own. Order the versions by two forces:
37
+
38
+ - Dependency: a version that produces data or a contract another version consumes comes first.
39
+ - De-risking: a version that de-risks an unproven subsystem comes early, inside the version that first needs it.
40
+
41
+ For each version, state the observable outcome as what the user can then do, list the features it groups by name, and note what it depends on and why.
42
+
43
+ When updating an existing roadmap, preserve rows that still hold. Resequence, add, or split only where scope shifted. Do not rewrite rows that did not change.
44
+
45
+ ## Step 3: write
46
+
47
+ Write the roadmap to `.claude/ROADMAP.md` at the project root, following `${CLAUDE_SKILL_DIR}/references/roadmap.md`. Create the file when absent.
48
+
49
+ Unlike `.claude/plans/` and `.claude/tasks/`, `.claude/ROADMAP.md` is committed. Do not stage or commit it here. Leave staging to the git skills.
50
+
51
+ ## Step 4: output
52
+
53
+ ```markdown
54
+ 📝 Wrote .claude/ROADMAP.md
55
+
56
+ <N> versions sequenced. Active: vX.Y.
57
+
58
+ Next: /claude-feature for the first version's opening feature.
59
+ ```
60
+
61
+ When updating, replace the first line with `📝 Updated .claude/ROADMAP.md` and name which versions changed.
@@ -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,160 @@
1
+ ---
2
+ name: claude-screencast
3
+ description: Drafts a screencast script with pre-seeded beats, defaults, and decisions to `.claude/.tmp/screencast/<slug>.md`. Reads project context, asks four discovery questions with proposed defaults, then writes a shippable draft. Use when asked to "draft a screencast", "write a recording script", "plan a demo video", or "scaffold a screencast for X". Do NOT re-invoke to refine an existing draft. Re-running overwrites. Edit the draft file directly.
4
+ ---
5
+
6
+ # Claude screencast
7
+
8
+ ## Guards
9
+
10
+ - If no topic is provided, stop: `❌ No screencast topic. Describe what you are recording.`
11
+ - Do not record, edit video, or generate captions. Output the script and stop.
12
+ - Stack-agnostic. Never name recording software, editing software, fonts, or window managers in the draft.
13
+
14
+ ## Step 1: read the project context
15
+
16
+ Read these in parallel from the project root, skipping any that do not exist:
17
+
18
+ - `CLAUDE.md`: behavior rules and project pitch
19
+ - `.claude/REQUIREMENTS.md`: feature scope, non-goals, audience hints
20
+ - `.claude/tasks/index.md`: current scope
21
+ - Recent commits via `git log --oneline -20 2>/dev/null || echo "FALLBACK"`: what shipped recently is usually the recording subject.
22
+
23
+ ## Step 2: discovery with proposed defaults
24
+
25
+ Ask exactly four questions in chat. Each carries a proposed default derived from Step 1. The user confirms, overrides, or says "use defaults" to accept all.
26
+
27
+ ```markdown
28
+ **Discovery:**
29
+
30
+ 1. Audience: proposing technical peers. Override?
31
+ 2. Length: proposing 75-90s. Override?
32
+ 3. Hero moment: proposing <best guess from context, or "the single thing that has to land">. Override?
33
+ 4. What to cut: proposing <best guess, or "anything that is not the hero moment">. Override?
34
+ ```
35
+
36
+ Wait for answers before drafting. Do not infer silence as acceptance.
37
+
38
+ ## Step 3: derive the slug
39
+
40
+ Build a 2-to-4-word kebab-case slug from the topic and discovery answers. Examples: `auth-flow-redesign`, `cli-onboarding`, `inline-edit-launch`.
41
+
42
+ ## Step 4: write the draft
43
+
44
+ Create `.claude/.tmp/screencast/<slug>.md` at the main worktree root. Create the directory if it does not exist. The file is gitignored.
45
+
46
+ Write all eight sections. Pre-seed every section with concrete content so the draft is shippable as-is. The user edits down rather than fills blanks.
47
+
48
+ ```markdown
49
+ # Screencast: <short title>
50
+
51
+ ## 1. Header
52
+
53
+ - Audience: <from discovery>
54
+ - Length: <from discovery>
55
+ - Hero moment: <from discovery>
56
+ - Pitch: <one sentence, derived from project context>
57
+
58
+ ## 2. Pre-recording checklist
59
+
60
+ - [ ] Browser at 1920x1080 with notifications silenced
61
+ - [ ] Session storage and history cleared for the recorded surfaces
62
+ - [ ] Cursor highlighter on
63
+ - [ ] Live URLs and fixtures verified healthy
64
+ - [ ] <one or two project-specific items derived from context>
65
+
66
+ ## 3. Beat sheet
67
+
68
+ Five beats. Each uses five fields. Add a sixth `Transition out` only when non-default.
69
+
70
+ ### Beat 1: Cold open
71
+
72
+ - On screen: <derived from hero moment>
73
+ - Action: <one verb, derived>
74
+ - Watch for:
75
+ - Emphasis: zoom 1.4x
76
+ - Caption:
77
+
78
+ ### Beat 2: Setup
79
+
80
+ - On screen:
81
+ - Action:
82
+ - Watch for:
83
+ - Emphasis: none
84
+ - Caption:
85
+
86
+ ### Beat 3: Hero moment
87
+
88
+ - On screen: <hero moment from discovery>
89
+ - Action:
90
+ - Watch for:
91
+ - Emphasis: highlight overlay
92
+ - Caption:
93
+
94
+ ### Beat 4: Payoff
95
+
96
+ - On screen:
97
+ - Action:
98
+ - Watch for:
99
+ - Emphasis: none
100
+ - Caption:
101
+
102
+ ### Beat 5: Outro
103
+
104
+ - On screen:
105
+ - Action:
106
+ - Watch for:
107
+ - Emphasis: zoom 1.2x out
108
+ - Caption:
109
+
110
+ ## 4. Sequencing notes
111
+
112
+ - Hover before click. The cursor needs a beat to register.
113
+ - Do not cut mid-reset. Let state changes complete on screen.
114
+ - Cut on action, not on stillness.
115
+ - <one or two project-specific gotchas derived from context>
116
+
117
+ ## 5. Production notes
118
+
119
+ - Resolution: 1920x1080
120
+ - Frame rate: 30fps
121
+ - Container: mp4 H.264
122
+ - Zoom: max 1.8x with always-zoom-out before cut
123
+ - Highlight overlay: ~1.5s soft glow
124
+
125
+ ## 6. Caption typography
126
+
127
+ - White text on dark scrim at ~60% opacity
128
+ - ~200ms fade in and out
129
+ - One line max per caption, split across beats if needed
130
+
131
+ ## 7. Distribution
132
+
133
+ Where the recording ships. Strike rows that do not apply.
134
+
135
+ - [ ] Native upload to social platform
136
+ - [ ] Canonical host (long-form video platform)
137
+ - [ ] Linked from project README or release notes
138
+
139
+ ## 8. Resolved decisions
140
+
141
+ Pre-seeded with the common picks. Strike or rewrite as needed.
142
+
143
+ - Audio: silent plus captions
144
+ - Music: none
145
+ - Language: English
146
+ - Chip order: <leave for user, derived from beats>
147
+ - Thumbnail: hero-moment frame
148
+ ```
149
+
150
+ ## Step 5: output
151
+
152
+ Print the file path on its own line and a one-line summary. Do not paraphrase the path into prose.
153
+
154
+ ```markdown
155
+ 📝 Wrote .claude/.tmp/screencast/<slug>.md
156
+
157
+ Draft has 5 beats and pre-seeded defaults. Edit beats and resolved decisions, then record.
158
+ ```
159
+
160
+ Do not proceed to recording. Do not generate captions. Stop.
@@ -0,0 +1,141 @@
1
+ ---
2
+ name: claude-seed-sync
3
+ description: Audits a project's installed Claude seed docs against the toolkit's current seed source and proposes per-section edits without overwriting customizations. Use when asked to "sync seeds", "update my seeds", "check seed drift", "did the toolkit seeds change", or when reconciling `CLAUDE.md` and `.claude/` preambles after an upstream toolkit update.
4
+ ---
5
+
6
+ # Claude seed sync
7
+
8
+ Surfaces drift between the toolkit's current seed docs and what was installed in this project, then proposes targeted edits. The CLI emits seed content. This skill diffs, reasons, and writes the proposal to a review file. It does not write target files until the user confirms.
9
+
10
+ ## Guards
11
+
12
+ - If the `aitk` CLI is not on PATH, stop: `❌ aitk CLI not found. Install the toolkit first.`
13
+ - If no `.claude/` directory exists at the project root, stop: `❌ No .claude/ directory found. Run aitk claude init first.`
14
+
15
+ ## Step 1: read toolkit sources
16
+
17
+ Run both in parallel from the project root:
18
+
19
+ ```bash
20
+ aitk claude seeds list --json 2>/dev/null
21
+ aitk standards list --json 2>/dev/null
22
+ ```
23
+
24
+ Seeds emit an array of `{name, source, target, content}`. Standards emit `{standards: [{name, description, target, content}]}`. In both cases `target` is the path relative to the project root where the file installs. Merge the two into one list of entries tagged by source (`seed` or `standard`).
25
+
26
+ If the target project has no `.claude/standards/` directory, skip the standards stage silently.
27
+
28
+ ## Step 2: read installed copies
29
+
30
+ For each entry in the merged list, read the file at its `target` path from the project root. Run reads in parallel. Mark missing files for **Add** treatment. Skip non-text seeds (`.json`) for section diffing. Record a one-line note in the scope table that the user can compare manually.
31
+
32
+ When detecting target-only files for `local-only` flagging, skip files the toolkit's own walkers regenerate from sibling frontmatter (today: any `index.md` produced by `aitk indexes regen`). They are absent from source catalogs by design, so flagging them as `local-only` is a false positive.
33
+
34
+ Note on `settings.json`: the seed now ships only the PostToolUse hook block. If a target project's `.claude/settings.json` carries `attribution` or `permissions` keys, those are stale: the user-level `~/.claude/settings.json` (installed via `aitk claude setup`) owns them now. Flag those keys in the scope table for removal rather than diffing them as content drift.
35
+
36
+ ## Step 3: diff per section
37
+
38
+ For each seed file present in both sides, parse the body into a preamble (everything between H1 and the first H2) plus one part per `##` header, then compare part by part. Treat the preamble as a single unit with the same verdicts as a section. Use `(preamble)` as its label in the proposal.
39
+
40
+ - **Identical:** ignore.
41
+ - **Toolkit-only section** (present in source, absent in target): candidate to **Add**.
42
+ - **Target-only section** (present in target, absent in source): preserve, never propose removal. These are user customizations.
43
+ - **Drifted section** (present in both, content differs): candidate to **Update**.
44
+ - If the target version looks customized (extra bullets, project-specific paths, filled-in placeholders), call it out as **Customized**. Default action: skip, record in the scope table only, never numbered.
45
+ - If the target version looks like the original toolkit version with the toolkit having moved on, call it out as **Stale**. Default action: propose update.
46
+
47
+ The user judges intent. The skill makes the judgment legible.
48
+
49
+ ### Absorbed-already check
50
+
51
+ Before proposing an Update, grep the target section for the seed text's keywords. If the rule is already implied by an adjacent bullet in the target version, drop the proposal and record the section as `in sync` in the scope table.
52
+
53
+ ## Step 4: write the proposal to the review file
54
+
55
+ Derive a slug from the current git branch: run `git branch --show-current` and replace `/` with `-`. Fall back to `latest` on empty output.
56
+
57
+ Write the full proposal to `.claude/review/seed-audit-<slug>.md` at the main worktree root. Do not print the proposal inline.
58
+
59
+ Structure: a summary block at the top, a legend, a scope table, then one H2 per numbered item. Number items across all files so the user can reference them by number. Fuse the status, action, and target into each H2. Every item starts as 📝 pending.
60
+
61
+ ````markdown
62
+ # Seed audit: <slug>
63
+
64
+ **Pending:** <all numbers>
65
+
66
+ Legend: ✅ applied · ⏭ skipped · 📝 pending
67
+
68
+ How to respond: fill in `Decision:` per item (`apply` or `skip`), then ping. Chat shortcut: `all`, `none`, or a list of numbers.
69
+
70
+ ## Scope
71
+
72
+ Group rows by source. `Seeds` first, then `Standards`. Mark target-only files (present in target, absent in source) as `local-only` and leave them untouched.
73
+
74
+ | Source | File | Status | Note |
75
+ | -------- | ---------- | ---------- | ---------------------------- |
76
+ | seed | `<target>` | diffed | <counts> |
77
+ | seed | `<target>` | in sync | |
78
+ | seed | `<target>` | skipped | non-text, compare manually |
79
+ | seed | `<target>` | customized | <section> skipped by default |
80
+ | standard | `<target>` | diffed | <counts> |
81
+ | standard | `<target>` | local-only | not in toolkit, preserved |
82
+
83
+ ## 1. 📝 Update → `<target-path>` / <section>
84
+
85
+ Why: <one-line reason>
86
+
87
+ ``​`diff
88
+
89
+ - <project line removed>
90
+ <unchanged context line>
91
+
92
+ * <seed line added>
93
+ ​```
94
+
95
+ Decision:
96
+
97
+ ## 2. 📝 Add → `<target-path>` / <section>
98
+
99
+ Why: <one-line reason>
100
+
101
+ ``​`diff
102
+
103
+ - <seed section body, each line prefixed with +>
104
+ ​```
105
+
106
+ Decision:
107
+ ````
108
+
109
+ Update items show both sides in one `diff` block: removed lines from the project version with `-`, added lines from the seed version with `+`, unchanged context lines without a prefix. Add items show only `+` lines. Customized sections appear in the scope table only, never numbered. A file with no drift still appears in the scope table as `in sync`.
110
+
111
+ After writing, tell the user `✅ Wrote proposal to .claude/review/seed-audit-<slug>.md`. Ask them to fill in `Decision:` per item, then re-ping or use the chat shortcut.
112
+
113
+ Rewrite the review file in place whenever the proposal changes mid-review. The file stays the source of truth for the current decisions.
114
+
115
+ ## Step 5: apply
116
+
117
+ Re-read the review file as source of truth. For each item, parse `Decision:`:
118
+
119
+ - `apply` (or affirmative): run the `Edit`, flip emoji to ✅.
120
+ - `skip`: leave the target section as-is, flip emoji to ⏭.
121
+ - `defer` or empty: leave 📝 pending, no action.
122
+ - Contains `?` or unrecognized verb: leave 📝 pending, no action.
123
+
124
+ Chat shortcut: the user replies with `all`, `none`, or a comma-separated list of numbers. Apply only the numbered items.
125
+
126
+ Apply edits one at a time via `Edit`, replacing one section at a time. Never rewrite a whole file. Claude Code's tool permission dialog is the confirmation gate per edit.
127
+
128
+ As each item resolves, update its status in the review file: flip the H2 emoji from 📝 to ✅ for applied or ⏭ for skipped. Refresh the summary block counts at the top. Do not delete the review file. It stays as a receipt until the next `claude-seed-sync` run overwrites it or the user clears it.
129
+
130
+ ## After completion
131
+
132
+ Output one line per action taken:
133
+
134
+ - `✅ Updated: <target-path> / <section>`
135
+ - `⏭ Skipped: <target-path> / <section>`
136
+
137
+ End with a one-line bucket summary: `✅ Applied: <nums> | ⏭ Skipped: <nums> | 📝 Pending: <nums>`. Omit empty buckets. If anything is pending, remind the user they can fill in a `Decision:` and re-ping, or commit a skip with `skip <nums>` in chat.
138
+
139
+ If the user accepted nothing, output:
140
+
141
+ `✅ No changes applied.`
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: claude-slides-draft
3
+ description: Drafts a `.claude/SLIDES.md` source from a topic, picks a layout per slide, then renders it to PowerPoint via `aitk slides render`. Use when asked to "draft slides", "make a deck", "build a presentation", "turn this into slides", or "render a SLIDES.md". Holds the deck design rules. Do NOT reimplement render logic. The CLI owns layout and styling. Assumes the `aitk` CLI is on PATH.
4
+ ---
5
+
6
+ # Slides draft
7
+
8
+ Author a `SLIDES.md` source, then shell out to `aitk slides render`. The CLI owns all layout and styling. This skill owns content and the design choices encoded in the source.
9
+
10
+ ## Read the catalog
11
+
12
+ Run this first to load the available layouts. Never hardcode layout names. The catalog is the source of truth.
13
+
14
+ ```bash
15
+ aitk slides list --json 2>/dev/null
16
+ ```
17
+
18
+ ## Draft the source
19
+
20
+ Write the deck to `.claude/SLIDES.md` from the project root. Structure:
21
+
22
+ - Deck frontmatter between `---` delimiters: `title`, optional `subtitle`, `palette`, and `variant` (light or dark).
23
+ - One slide per section, separated by a `---` rule. Each slide opens with a `# Title` and a `layout:` line naming a layout from the catalog, followed by its content.
24
+
25
+ Match content shape to the layout: bullet lists for list layouts, `## Heading` blocks for columns, `- value : caption` pairs for stats and cards, a quote with a `- attribution` line for quotes.
26
+
27
+ For a deck with chapters, add a `toc` slide near the front and mark each chapter opener with the `section` layout. The render fills the contents links and the per-slide footer automatically from the section slides. Leave the `toc` slide body empty.
28
+
29
+ ## Design rules
30
+
31
+ The palette and type scale live in the CLI. Own the choices the source controls.
32
+
33
+ - Pick the variant that fits the topic. Light is a paper background, dark is near black. Both carry the same rust accent.
34
+ - Vary the layout across slides. Never repeat title-and-bullets on every slide. Reach for columns, stat callouts, grids, and section dividers.
35
+ - The CLI enforces the type scale, so size content to fit rather than overflow. Keep titles short and bullet lines tight.
36
+ - Never write centered body text or content that overflows a slide. Let the layouts place the elements.
37
+
38
+ ## Render
39
+
40
+ Shell out to the CLI. It writes the deck and reports the path.
41
+
42
+ ```bash
43
+ aitk slides render --source .claude/SLIDES.md --out .claude/review/slides
44
+ ```
45
+
46
+ Pass `--variant light` or `--variant dark` to override the source variant for a one-off render. Pass `--open` to open the deck, and `--mirror <dir>` (or set `AITK_SLIDES_MIRROR`) to copy it into a synced folder.
47
+
48
+ ## QA loop
49
+
50
+ Run this once after the first render, then stop.
51
+
52
+ 1. Convert the deck to images: `soffice --headless --convert-to pdf <deck>.pptx` then `pdftoppm -r 90 -png <deck>.pdf slide`. If `soffice` or `pdftoppm` is missing, skip the image pass and say so. Do not fail the render.
53
+ 2. Inspect the images with fresh eyes. Spawn a subagent to check every slide for overlap, overflow, low contrast, and empty regions.
54
+ 3. Fix the reported issues in `SLIDES.md` once, re-render, and stop. Do not loop indefinitely on aesthetics.
55
+
56
+ ## Response
57
+
58
+ After rendering, report:
59
+
60
+ - Slide count and the deck path
61
+ - The palette and variant used
62
+ - Any QA issues found and what changed, or that the deck passed clean
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: claude-standards-audit
3
+ description: What the standards audit is for, the gaps it closes, and the fixing it deliberately refuses
4
+ ---
5
+
6
+ # Claude standards audit requirement
7
+
8
+ ## Gap
9
+
10
+ Without this skill, markdown ships unchecked against the authoring standards it was written under. A session that just wrote prose does not reopen the standard it was meant to follow, banned punctuation survives because it reads fine, and the mapping from a file to the standards governing it gets re-derived by guess on every pass.
11
+
12
+ ## Must
13
+
14
+ - Scope the audit to markdown the project hand-authors, so a generated file is not reported against a standard nobody applies to it
15
+ - Decide which standards govern each changed file, rather than auditing every file against every standard
16
+ - Grep for the violations a standard makes mechanically detectable, because reading alone misses occurrences
17
+ - Report each finding with a file and a line, grouped so one file is one fix pass
18
+
19
+ ## Must not
20
+
21
+ - Fix a violation, or propose the fix inline. The cheap swap satisfies the grep and breaks the rule the grep was standing in for.
22
+ - Enumerate specific rules or tokens from a standard. The standard is the list, and a copy of it here drifts the moment the standard changes.
23
+
24
+ ## Guards
25
+
26
+ - No markdown changed since main: stop with a pass, not an error
27
+ - No installed standards to audit against: stop and say where they come from
28
+
29
+ ## Out of scope
30
+
31
+ - Code style and structure, which `.claude/rules/` governs and Claude Code loads directly
32
+ - Whether a standard is itself correct. A finding against the corpus is an argument to change the standard, and that is a standards edit rather than an audit result.
33
+ - Persisting a report. The diff is the living state and the audit is a check against it at a moment.