@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,109 @@
1
+ #!/usr/bin/env bash
2
+ set -e
3
+ set -o pipefail
4
+
5
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6
+ PROJECT_ROOT="${PROJECT_ROOT:-$(dirname "$(dirname "$SCRIPT_DIR")")}"
7
+
8
+ source "$PROJECT_ROOT/scripts/lib/ui.sh"
9
+ source "$PROJECT_ROOT/scripts/lib/tooling.sh"
10
+ trap close_timeline EXIT
11
+
12
+ show_help() {
13
+ echo -e "${GREY}┌${NC}"
14
+ log_step "Tooling create usage"
15
+ echo -e "${GREY}│${NC} ${WHITE}Usage:${NC} aitk tooling create [stack]"
16
+ echo -e "${GREY}│${NC}"
17
+ echo -e "${GREY}│${NC} Creates a new stack with stub manifest, reference, configs, and seeds."
18
+ echo -e "${GREY}│${NC}"
19
+ echo -e "${GREY}│${NC} ${WHITE}Arguments:${NC}"
20
+ echo -e "${GREY}│${NC} stack Name of the new stack to create"
21
+ echo -e "${GREY}│${NC}"
22
+ echo -e "${GREY}│${NC} ${WHITE}Options:${NC}"
23
+ echo -e "${GREY}│${NC} -h, --help ${GREY}# Show this help message${NC}"
24
+ echo -e "${GREY}└${NC}"
25
+ exit 0
26
+ }
27
+
28
+ main() {
29
+ if [[ "$1" == "-h" || "$1" == "--help" ]]; then
30
+ show_help
31
+ fi
32
+
33
+ local stack="$1"
34
+
35
+ echo -e "${GREY}┌${NC}"
36
+ echo -e "${GREY}│${NC} ${WHITE}aitk tooling create${NC}"
37
+
38
+ if [ -z "$stack" ]; then
39
+ ask "Stack name?" "stack"
40
+ fi
41
+
42
+ if [ -z "$stack" ]; then
43
+ log_error "Stack name is required"
44
+ fi
45
+
46
+ if is_tooling_stack_excluded "$stack"; then
47
+ log_error "Reserved name: $stack. Managed by \`aitk claude\`, not \`aitk tooling\`."
48
+ fi
49
+
50
+ local dest="$PROJECT_ROOT/tooling/$stack"
51
+
52
+ if [ -d "$dest" ]; then
53
+ log_error "Stack already exists: $stack"
54
+ fi
55
+
56
+ log_step "Creating"
57
+ log_add "tooling/$stack/configs/"
58
+ log_add "tooling/$stack/seeds/"
59
+ log_add "tooling/$stack/manifest.toml"
60
+ log_add "tooling/$stack/reference.md"
61
+
62
+ select_option "Create stack at tooling/$stack?" "Yes" "No"
63
+
64
+ if [ "$SELECTED_OPTION" = "No" ]; then
65
+ log_warn "Cancelled"
66
+ exit 0
67
+ fi
68
+
69
+ log_step "Applying"
70
+
71
+ mkdir -p "$dest/configs"
72
+ log_add "tooling/$stack/configs/"
73
+
74
+ mkdir -p "$dest/seeds"
75
+ log_add "tooling/$stack/seeds/"
76
+
77
+ cat >"$dest/manifest.toml" <<EOF
78
+ [stack]
79
+ name = "$stack"
80
+ extends = ""
81
+ runtime = ""
82
+ scaffold = ""
83
+
84
+ [dependencies.dev]
85
+ packages = []
86
+
87
+ [scripts]
88
+ "script-key" = "command --flag"
89
+
90
+ [gitignore]
91
+ "# $stack" = ["pattern/", ".file"]
92
+ EOF
93
+ log_add "tooling/$stack/manifest.toml"
94
+ cat >"$dest/reference.md" <<EOF
95
+ # Tooling $stack reference
96
+
97
+ ## Overview
98
+
99
+ [One or two sentences: what this stack provides and its purpose.]
100
+
101
+ EOF
102
+ log_add "tooling/$stack/reference.md"
103
+
104
+ trap - EXIT
105
+ echo -e "${GREY}└${NC}\n"
106
+ echo -e "${GREEN}✓ Stack created${NC}"
107
+ }
108
+
109
+ main "$@"
@@ -0,0 +1,141 @@
1
+ #!/usr/bin/env bash
2
+ set -e
3
+ set -o pipefail
4
+
5
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6
+ PROJECT_ROOT="${PROJECT_ROOT:-$(dirname "$(dirname "$SCRIPT_DIR")")}"
7
+
8
+ source "$PROJECT_ROOT/scripts/lib/ui.sh"
9
+ source "$PROJECT_ROOT/scripts/lib/tooling.sh"
10
+ trap close_timeline EXIT
11
+
12
+ show_help() {
13
+ echo -e "${GREY}┌${NC}"
14
+ log_step "Tooling ref usage"
15
+ echo -e "${GREY}│${NC} ${WHITE}Usage:${NC} aitk tooling ref [stack] [target-path]"
16
+ echo -e "${GREY}│${NC}"
17
+ echo -e "${GREY}│${NC} Drops reference docs only. No config or dependency changes."
18
+ echo -e "${GREY}│${NC}"
19
+ echo -e "${GREY}│${NC} ${WHITE}Arguments:${NC}"
20
+ echo -e "${GREY}│${NC} stack Name of the tooling stack (e.g., base, vite-react)"
21
+ echo -e "${GREY}│${NC} target-path Target directory (default: current directory)"
22
+ echo -e "${GREY}│${NC}"
23
+ echo -e "${GREY}│${NC} ${WHITE}Options:${NC}"
24
+ echo -e "${GREY}│${NC} -h, --help ${GREY}# Show this help message${NC}"
25
+ echo -e "${GREY}└${NC}"
26
+ exit 0
27
+ }
28
+
29
+ select_stack() {
30
+ local stacks=()
31
+ mapfile -t stacks < <(list_tooling_stacks)
32
+
33
+ if [ ${#stacks[@]} -eq 0 ]; then
34
+ log_error "No tooling stacks found in $PROJECT_ROOT/tooling"
35
+ fi
36
+
37
+ select_option "Select tooling stack:" "${stacks[@]}"
38
+ echo "$SELECTED_OPTION"
39
+ }
40
+
41
+ collect_references() {
42
+ local stack="$1"
43
+ local target="$2"
44
+ local -n _pending=$3
45
+
46
+ local manifest="$PROJECT_ROOT/tooling/$stack/manifest.toml"
47
+ [ ! -f "$manifest" ] && return
48
+
49
+ local extends
50
+ extends=$(grep '^extends' "$manifest" 2>/dev/null | cut -d'"' -f2)
51
+
52
+ if [ -n "$extends" ]; then
53
+ collect_references "$extends" "$target" "$3"
54
+ fi
55
+
56
+ local reference_file="$PROJECT_ROOT/tooling/$stack/reference.md"
57
+ [ ! -f "$reference_file" ] && return
58
+
59
+ local dest="$target/.claude/tooling/$stack.md"
60
+
61
+ if [ -f "$dest" ] && diff -q "$reference_file" "$dest" >/dev/null 2>&1; then
62
+ log_info ".claude/tooling/$stack.md"
63
+ return
64
+ fi
65
+
66
+ log_add ".claude/tooling/$stack.md"
67
+ _pending+=("$stack")
68
+ }
69
+
70
+ apply_references() {
71
+ local target="$1"
72
+ shift
73
+ local stacks=("$@")
74
+
75
+ mkdir -p "$target/.claude/tooling"
76
+
77
+ for stack in "${stacks[@]}"; do
78
+ local src="$PROJECT_ROOT/tooling/$stack/reference.md"
79
+ cp "$src" "$target/.claude/tooling/$stack.md"
80
+ log_add ".claude/tooling/$stack.md"
81
+ rm -f "$target/tooling/$stack.md"
82
+ done
83
+ rmdir "$target/tooling" 2>/dev/null || true
84
+ }
85
+
86
+ main() {
87
+ if [[ "$1" == "-h" || "$1" == "--help" ]]; then
88
+ show_help
89
+ fi
90
+
91
+ local stack="$1"
92
+ local target="${2:-.}"
93
+
94
+ echo -e "${GREY}┌${NC}" >&2
95
+ echo -e "${GREY}│${NC} ${WHITE}aitk tooling ref${NC}" >&2
96
+
97
+ if [ -z "$stack" ]; then
98
+ stack=$(select_stack)
99
+ fi
100
+
101
+ if is_tooling_stack_excluded "$stack"; then
102
+ log_error "Claude is managed by \`aitk claude\`, not \`aitk tooling\`."
103
+ fi
104
+
105
+ if [ ! -d "$PROJECT_ROOT/tooling/$stack" ]; then
106
+ log_error "Stack not found: $stack"
107
+ fi
108
+
109
+ guard_root "$target"
110
+
111
+ local pending=()
112
+
113
+ echo -e "${GREY}├${NC} ${WHITE}Scanning references: $stack${NC}" >&2
114
+ collect_references "$stack" "$target" pending
115
+
116
+ if [ "${#pending[@]}" -eq 0 ]; then
117
+ trap - EXIT
118
+ echo -e "${GREY}└${NC}\n" >&2
119
+ echo -e "${GREEN}✓ References up to date${NC}" >&2
120
+ exit 0
121
+ fi
122
+
123
+ local dest_display="$target/.claude/tooling/"
124
+ dest_display="${dest_display#./}"
125
+
126
+ select_option "Sync ${#pending[@]} reference(s) to $dest_display?" "Yes" "No"
127
+
128
+ if [ "$SELECTED_OPTION" = "No" ]; then
129
+ log_warn "Cancelled"
130
+ exit 0
131
+ fi
132
+
133
+ log_step "Applying changes"
134
+ apply_references "$target" "${pending[@]}"
135
+
136
+ trap - EXIT
137
+ echo -e "${GREY}└${NC}\n" >&2
138
+ echo -e "${GREEN}✓ References synced${NC}" >&2
139
+ }
140
+
141
+ main "$@"
@@ -0,0 +1,179 @@
1
+ #!/usr/bin/env bash
2
+ set -e
3
+ set -o pipefail
4
+
5
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6
+ PROJECT_ROOT="${PROJECT_ROOT:-$(dirname "$(dirname "$SCRIPT_DIR")")}"
7
+
8
+ source "$PROJECT_ROOT/scripts/lib/ui.sh"
9
+ source "$PROJECT_ROOT/scripts/lib/tooling.sh"
10
+
11
+ show_help() {
12
+ echo -e "${GREY}┌${NC}"
13
+ echo -e "${GREY}├${NC} ${WHITE}Usage:${NC} aitk tooling verify <stack> [options]"
14
+ echo -e "${GREY}│${NC}"
15
+ echo -e "${GREY}│${NC} ${WHITE}Options:${NC}"
16
+ echo -e "${GREY}│${NC} --keep ${GREY}# Keep tmp dir after run for inspection${NC}"
17
+ echo -e "${GREY}│${NC} -h, --help ${GREY}# Show this help message${NC}"
18
+ echo -e "${GREY}│${NC}"
19
+ echo -e "${GREY}│${NC} Scaffolds <stack> into .claude/.tmp/verify-<stack>/, syncs the full"
20
+ echo -e "${GREY}│${NC} layer chain, and runs check + test:e2e + screenshot."
21
+ echo -e "${GREY}└${NC}"
22
+ exit 0
23
+ }
24
+
25
+ read_manifest_field() {
26
+ local toml="$1"
27
+ local section="$2"
28
+ local field="$3"
29
+ awk -v s="$section" -v f="$field" '
30
+ $0 == "[" s "]" { in_section = 1; next }
31
+ in_section && /^\[/ { exit }
32
+ in_section && match($0, "^" f "[[:space:]]*=") {
33
+ val = substr($0, RLENGTH + 1)
34
+ sub(/^[[:space:]]+/, "", val)
35
+ sub(/^"/, "", val)
36
+ sub(/"$/, "", val)
37
+ print val
38
+ exit
39
+ }
40
+ ' "$toml"
41
+ }
42
+
43
+ run_phase() {
44
+ local name="$1"
45
+ shift
46
+ log_step "$name"
47
+ if "$@" >/tmp/verify-phase.log 2>&1; then
48
+ log_info "$name passed"
49
+ RESULTS+=("$name:pass")
50
+ return 0
51
+ fi
52
+ log_warn "$name failed"
53
+ tail -20 /tmp/verify-phase.log >&2
54
+ RESULTS+=("$name:fail")
55
+ FAILED=1
56
+ return 1
57
+ }
58
+
59
+ main() {
60
+ local stack=""
61
+ local keep=0
62
+
63
+ while [[ $# -gt 0 ]]; do
64
+ case "$1" in
65
+ -h | --help) show_help ;;
66
+ --keep)
67
+ keep=1
68
+ shift
69
+ ;;
70
+ -*)
71
+ log_error "Unknown option: $1"
72
+ ;;
73
+ *)
74
+ if [ -z "$stack" ]; then
75
+ stack="$1"
76
+ shift
77
+ else
78
+ log_error "Unexpected argument: $1"
79
+ fi
80
+ ;;
81
+ esac
82
+ done
83
+
84
+ [ -z "$stack" ] && log_error "Stack required. See --help."
85
+
86
+ if is_tooling_stack_excluded "$stack"; then
87
+ log_error "Stack '$stack' is excluded from tooling."
88
+ fi
89
+
90
+ local manifest="$PROJECT_ROOT/tooling/$stack/manifest.toml"
91
+ [ ! -f "$manifest" ] && log_error "No manifest at $manifest"
92
+
93
+ local scaffold
94
+ scaffold=$(read_manifest_field "$manifest" "stack" "scaffold")
95
+ [ -z "$scaffold" ] && log_error "Stack '$stack' has no scaffold command in manifest."
96
+
97
+ local prepare
98
+ prepare=$(read_manifest_field "$manifest" "verify" "prepare")
99
+
100
+ open_timeline "aitk tooling verify $stack"
101
+ trap close_timeline EXIT
102
+
103
+ local tmp_root="$PROJECT_ROOT/.claude/.tmp"
104
+ local tmp_dir="$tmp_root/verify-$stack"
105
+
106
+ mkdir -p "$tmp_root"
107
+ rm -rf "$tmp_dir"
108
+
109
+ local project_name="verify-$stack"
110
+ local scaffold_cmd="${scaffold//\{\{name\}\}/$project_name}"
111
+
112
+ RESULTS=()
113
+ FAILED=0
114
+
115
+ log_step "Scaffolding $stack"
116
+ (cd "$tmp_root" && eval "$scaffold_cmd") >/tmp/verify-scaffold.log 2>&1 || {
117
+ log_warn "Scaffold failed"
118
+ tail -20 /tmp/verify-scaffold.log >&2
119
+ FAILED=1
120
+ }
121
+
122
+ if [ ! -d "$tmp_dir" ]; then
123
+ log_error "Scaffold did not produce $tmp_dir"
124
+ fi
125
+
126
+ (cd "$tmp_dir" && git init -q && git add . && git commit -m "chore: verify scaffold" -q --no-verify)
127
+
128
+ if [ -n "$prepare" ]; then
129
+ run_phase "Prepare" bash -c "cd '$tmp_dir' && $prepare"
130
+ fi
131
+
132
+ run_phase "Sync" bash -c "cd '$tmp_dir' && AITK_NON_INTERACTIVE=1 aitk tooling sync $stack ."
133
+
134
+ if [ -f "$tmp_dir/package.json" ]; then
135
+ run_phase "lint:fix" bash -c "cd '$tmp_dir' && bun run lint:fix"
136
+ run_phase "check" bash -c "cd '$tmp_dir' && bun run check"
137
+
138
+ if grep -q '"test:e2e"' "$tmp_dir/package.json"; then
139
+ run_phase "test:e2e" bash -c "cd '$tmp_dir' && bun run test:e2e"
140
+ fi
141
+
142
+ if grep -q '"screenshot"' "$tmp_dir/package.json"; then
143
+ if run_phase "screenshot" bash -c "cd '$tmp_dir' && timeout 60 bun run screenshot"; then
144
+ local shots
145
+ shots=$(find "$tmp_dir/screenshots" -type f -name '*.png' 2>/dev/null | wc -l)
146
+ if [ "$shots" -eq 0 ]; then
147
+ log_warn "screenshot produced no png files"
148
+ RESULTS+=("screenshot-artifacts:fail")
149
+ FAILED=1
150
+ else
151
+ RESULTS+=("screenshot-artifacts:pass")
152
+ fi
153
+ fi
154
+ fi
155
+ fi
156
+
157
+ log_step "Results"
158
+ for r in "${RESULTS[@]}"; do
159
+ local name="${r%:*}"
160
+ local status="${r##*:}"
161
+ if [ "$status" = "pass" ]; then
162
+ log_info "$name"
163
+ else
164
+ log_warn "$name"
165
+ fi
166
+ done
167
+
168
+ if [ "$keep" -eq 0 ] && [ "$FAILED" -eq 0 ]; then
169
+ rm -rf "$tmp_dir"
170
+ else
171
+ log_info "Kept $tmp_dir"
172
+ fi
173
+
174
+ if [ "$FAILED" -ne 0 ]; then
175
+ exit 1
176
+ fi
177
+ }
178
+
179
+ main "$@"
@@ -0,0 +1,39 @@
1
+ Produce a decision memo for a research or should-we question. This is the decision-heavy counterpart to `claude-feature`, which plans a build. Write one file per independent concern under `.claude/plans/feature-<slug>.md`, or answer inline when the plan is small. Use the same plans folder as `claude-feature`.
2
+
3
+ Read the current state from the code and docs before recommending. Do not assume it.
4
+
5
+ Output this shape per memo:
6
+
7
+ ```markdown
8
+ # <slug title>
9
+
10
+ <the question in one or two lines>
11
+
12
+ ## Summary
13
+
14
+ - <goal in one line>
15
+ - <deliverables in one line>
16
+ - <key tradeoff in one line>
17
+
18
+ ## Finding
19
+
20
+ <what the current state actually is, from reading the code and docs>
21
+
22
+ ## Item A: <decision>
23
+
24
+ **Current state.** <what exists today>
25
+
26
+ **Recommendation.** <the pick, with the tradeoff in one sentence>
27
+
28
+ **Options.** <the real alternatives, only when the choice is the user's to make>
29
+
30
+ **Feasibility.** <what is not buildable as asked and why, omit when all options are buildable>
31
+
32
+ **Questions.**
33
+
34
+ 1. <question>
35
+ - Suggested: <best-practice default derived from context>
36
+ - Answer:
37
+ ```
38
+
39
+ Repeat the `## Item` block per decision. Keep chat to the file pointer plus the questions. Recommend, do not enumerate, unless the user's preference is the deciding factor.
@@ -0,0 +1,19 @@
1
+ Recap the implementation just completed. Read the plan file referenced in the session (usually `.claude/plans/feature-<slug>.md`) and produce a verification block.
2
+
3
+ Output this shape, nothing else:
4
+
5
+ ```markdown
6
+ **Deliverable 1**: <name from the plan>
7
+
8
+ - `path/to/file`: one-line reason
9
+
10
+ **Deliverable 2**: <name from the plan>
11
+
12
+ - `path/to/file`: one-line reason
13
+
14
+ **Verified**: <what was smoke-tested or `Nothing tested in session.`>
15
+
16
+ **Open**: <unresolved questions, deferred items, or `None.`>
17
+ ```
18
+
19
+ Group files by deliverable, not by directory. Keep each line scannable. Do not restate the plan body.
@@ -0,0 +1,18 @@
1
+ Read the relevant spec from `.claude/DESIGN.md` and any other design files needed. Write step-by-step Figma instructions to produce the component exactly.
2
+
3
+ For each step, specify:
4
+
5
+ - The exact tool or keyboard shortcut to activate
6
+ - Which panel or field to click
7
+ - The exact value to enter
8
+
9
+ When a step has multiple sub-actions or lists several items, use nested bullets instead of stacking them in one sentence.
10
+
11
+ Cover in order:
12
+
13
+ - Frame or group setup (dimensions, corner radius, fill)
14
+ - Each layer or shape (type, size, position, fill, stroke)
15
+ - Alignment and spacing rules
16
+ - Export settings
17
+
18
+ Use exact values from the spec. Do not restate design rationale. Use Title Case for all layer and frame names. Use Figma terminology throughout, not code or CSS equivalents. Reuse existing frames or components from the same Figma document by name instead of rebuilding from scratch.
@@ -0,0 +1,23 @@
1
+ Resume as orchestrator after a compaction. Read the board and the groundwork behind the live work before answering anything, because a compaction summary keeps conclusions and drops the reasoning that produced them.
2
+
3
+ 1. Resolve the main worktree root with `git worktree list --porcelain | grep -m 1 '^worktree ' | cut -d' ' -f2-`, falling back to `pwd`. Every path below resolves against it.
4
+ 2. Read `.claude/tasks/priority.md` for the ordering and what each task waits on. Read `.claude/tasks/session.md` when it exists, and treat it as this session's scratch rather than a source.
5
+ 3. Read the task file for every entry under `## Run now`, plus any entry a live pull request names.
6
+ 4. Read the groundwork folder each of those tasks cites. Read `README.md` for the file map, then `06-decision.md` when the track is closed, or `07-next-session.md` and the numbered topic files when it is open. A task's Findings section is a lossy summary of its track, so planning against the summary re-derives what the folder already settled.
7
+ 5. Run `gh pr list --state open` and `git log --oneline -5` to see what shipped since the folder was written.
8
+ 6. Report in this shape and stop:
9
+
10
+ ```plaintext
11
+ Read: <task files>, <groundwork folders>
12
+ Shipped since: <commits or PRs>
13
+ Stale in the groundwork: <lean or number the shipped work overturned>
14
+ Next: <the one or two tasks ready to hand a worker>
15
+ ```
16
+
17
+ Treat a groundwork folder as three kinds of content with different shelf lives. Trust the reasoning and the method, which stay correct. Re-measure every count, size, and cost, because they were true when written. Check every `Leaning:` against what has shipped, because work spawned by a track routinely overturns the lean that spawned it and nothing writes back. A plan a live task cites goes stale the same way, and `claude-orchestrate` states the check that catches it.
18
+
19
+ After each merge, place every finding the work produced before starting anything else. A finding that changes a standard goes to the standard, one that changes another task goes to that task's Findings, and one that overturns a groundwork lean gets marked answered in that folder. Findings recorded in a pull request thread and nowhere else are lost at merge.
20
+
21
+ Cite a file and line for any claim taken from a groundwork folder, so a later reader can tell a read from a recall.
22
+
23
+ Do not read every groundwork folder. Read the ones the live tasks cite. A speculative sweep of the whole folder is the cost this rule exists to bound.
@@ -0,0 +1,10 @@
1
+ Sweep the board as orchestrator after merging. Run this once per batch of merges, before answering what to do next, because the surfaces that record what shipped are the ones nothing updates on its own.
2
+
3
+ 1. Pull into the main worktree rather than fetching. A fetch leaves the local branch behind, so `git log` reports a state that has not arrived. A repository that adds a post-merge hook to name archive candidates gets it on a pull and never on a fetch.
4
+ 2. Follow `## Refilling the ready queue` in `claude-orchestrate`, every step in order. It owns the procedure. Do not restate it here and do not run it from memory.
5
+ 3. Re-verify every plan already written, not only the ones this sweep writes. A queued plan goes stale from whatever merged while it waited, and the loop's verify step fires at handoff rather than after a merge, so nothing else catches it. Grep each construct the plan names and count the sites against its claim, then open each file rather than trusting its account.
6
+ 4. Re-check any precondition a plan states about live state outside the repository. A remote branch, an open issue, or an installed version was true when the plan was written and is not a fact about the tree.
7
+
8
+ Place every finding the merged work produced before promoting anything. A finding that changes a rule goes to the standard or the rule that states it, one that changes another task goes to that task's Findings, and one that overturns a groundwork lean gets marked answered in that folder. A pull request body counts as nowhere, since the thread stops being read the moment it merges.
9
+
10
+ Report what closed, what moved, and what is ready to hand a worker. Name the file set each ready task touches, so the reader can check the disjointness claim rather than take it.
@@ -0,0 +1,5 @@
1
+ Summarize the research or findings above into a compact, scannable block.
2
+
3
+ - State the main takeaways directly
4
+ - Skip background context the reader already has
5
+ - Use short headings and tight bullets where multiple items exist
@@ -0,0 +1,7 @@
1
+ Draft a new snippet following these conventions:
2
+
3
+ - Filename is the slug: kebab-case, no capitals, no underscores
4
+ - Plain markdown only, no YAML frontmatter, no headers or nested structure
5
+ - One focused purpose, self-contained with no external file references
6
+
7
+ Output the slug and the full file content.
@@ -0,0 +1,6 @@
1
+ Apply senior-level judgment. Pick the best option from the discussion so far. State the pick in one sentence, then the reason and the main tradeoff in one or two sentences.
2
+
3
+ - Minimal and necessary only
4
+ - No nice-to-haves
5
+ - No padding
6
+ - No alternatives unless they change the recommendation
@@ -0,0 +1,14 @@
1
+ Turn the idea below into a production-grade system prompt.
2
+
3
+ Give it a role of one to three lines, a constraints section, and an output format carrying a template plus one worked example. Add a validation checklist when the prompt involves multi-step logic, edge cases, or error handling. Omit that checklist for a single-purpose prompt.
4
+
5
+ Group constraints under domain headings when they span two or more domains and total five or more. Use flat must-do and must-not-do lists otherwise. Keep dos and don'ts together under the topic they belong to.
6
+
7
+ Use `{{DOUBLE_BRACES}}` for values the end user fills in at runtime.
8
+
9
+ Constraints:
10
+
11
+ - Use imperative voice. Write `Do X`, never `You should` or `Try to`.
12
+ - Make every constraint verifiable from the output. Reject subjective qualifiers like `appropriate`, `concise`, or `well-structured`.
13
+ - Match prompt length to task complexity. A single-purpose task gets a minimal prompt.
14
+ - Never write `maybe`, `consider`, or `depending on`. Be definitive.
@@ -0,0 +1,7 @@
1
+ Generate a self-contained research prompt for another AI chat. Include:
2
+
3
+ - State what I am trying to do and why
4
+ - List what I have already tried and the results
5
+ - Specify questions that need answers
6
+
7
+ Write it in first person. Assume the reader has no context from this session.
@@ -0,0 +1,11 @@
1
+ Write session notes for this conversation using this format:
2
+
3
+ ```markdown
4
+ # Session notes: <topic>
5
+
6
+ ## <title>
7
+
8
+ <what was decided and why>
9
+ ```
10
+
11
+ Only include decisions made in this session. Output only the markdown block, nothing else.
@@ -0,0 +1,6 @@
1
+ [essentials]
2
+ names = [
3
+ "decision-help",
4
+ "compact-summary",
5
+ "step-by-step",
6
+ ]
@@ -0,0 +1,10 @@
1
+ Give me step-by-step instructions.
2
+
3
+ For each step:
4
+
5
+ - State what to do in one sentence.
6
+ - Include the exact value, command, or input where precision matters.
7
+ - Note any output to save or verify before moving on.
8
+ - When the step has multiple sub-actions or lists several items, use nested bullets instead of stacking them in one sentence.
9
+
10
+ Group related steps under a heading if the process has distinct phases. Flag any step that is irreversible or that blocks later steps.
@@ -0,0 +1,21 @@
1
+ Search the web for the topic or question added after this snippet. Fetch the most relevant pages. Synthesize findings into a decision-ready block using this format:
2
+
3
+ ```markdown
4
+ Topic: [what was researched]
5
+ Recommendation: [one clear answer or choice]
6
+
7
+ Options considered:
8
+
9
+ - [Option A]: why considered, why chosen or rejected
10
+ - [Option B]: why considered, why chosen or rejected
11
+
12
+ Key constraints:
13
+
14
+ - [constraint that shaped the decision]
15
+
16
+ Sources:
17
+
18
+ - [URL]: what it confirmed
19
+ ```
20
+
21
+ Output only the block. Do not add commentary before or after it.