@webpresso/agent-kit 0.21.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 (1230) hide show
  1. package/.claude-plugin/marketplace.json +27 -0
  2. package/.claude-plugin/plugin.json +73 -0
  3. package/LICENSE +21 -0
  4. package/README.md +106 -0
  5. package/THIRD-PARTY-NOTICES.md +60 -0
  6. package/bin/_run.js +201 -0
  7. package/bin/docs-check-internal-links.js +5 -0
  8. package/bin/docs-check-refs.js +5 -0
  9. package/bin/docs-check-stale.js +5 -0
  10. package/bin/docs-lint.js +5 -0
  11. package/bin/docs-migrate.js +5 -0
  12. package/bin/wp-check-dev-link.js +5 -0
  13. package/bin/wp-guard-switch.js +5 -0
  14. package/bin/wp-post-tool.js +5 -0
  15. package/bin/wp-pretool-guard.js +5 -0
  16. package/bin/wp-restore-dev-links.js +5 -0
  17. package/bin/wp-sessionstart-routing.js +5 -0
  18. package/bin/wp-stop-qa.js +5 -0
  19. package/bin/wp-test-quality-check.js +5 -0
  20. package/bin/wp.js +5 -0
  21. package/catalog/AGENTS.md.tpl +202 -0
  22. package/catalog/agent/.audit-budgets.yaml +12 -0
  23. package/catalog/agent/agents/README.md +22 -0
  24. package/catalog/agent/agents/code-reviewer.md +34 -0
  25. package/catalog/agent/agents/doc-writer.md +35 -0
  26. package/catalog/agent/agents/explorer.md +33 -0
  27. package/catalog/agent/agents/security-auditor.md +34 -0
  28. package/catalog/agent/commands/audit-duplication.md +34 -0
  29. package/catalog/agent/commands/audit.md +219 -0
  30. package/catalog/agent/commands/brainstorm.md +115 -0
  31. package/catalog/agent/commands/decide.md +132 -0
  32. package/catalog/agent/commands/fix-all.md +160 -0
  33. package/catalog/agent/commands/fix.md +109 -0
  34. package/catalog/agent/commands/plan-refine.md +103 -0
  35. package/catalog/agent/commands/pll.md +174 -0
  36. package/catalog/agent/commands/tph.md +380 -0
  37. package/catalog/agent/commands/verify.md +9 -0
  38. package/catalog/agent/correlate.allow.yaml +5 -0
  39. package/catalog/agent/guides/agent-guardrails.md +116 -0
  40. package/catalog/agent/guides/parallel-execution.md +79 -0
  41. package/catalog/agent/guides/plan-audit-checklist.md +189 -0
  42. package/catalog/agent/guides/skills.md +32 -0
  43. package/catalog/agent/rules/README.md +30 -0
  44. package/catalog/agent/rules/agent-guide.md +464 -0
  45. package/catalog/agent/rules/blueprint-scoping.md +69 -0
  46. package/catalog/agent/rules/changeset-release.md +161 -0
  47. package/catalog/agent/rules/cmd-execution.md +121 -0
  48. package/catalog/agent/rules/context-mode-routing.md +64 -0
  49. package/catalog/agent/rules/engineering-principles.md +42 -0
  50. package/catalog/agent/rules/extraction-parity.md +157 -0
  51. package/catalog/agent/rules/generated-code-governance.md +87 -0
  52. package/catalog/agent/rules/gstack-routing.md +90 -0
  53. package/catalog/agent/rules/no-timeout-as-fix.md +90 -0
  54. package/catalog/agent/rules/package-conventions.md +80 -0
  55. package/catalog/agent/rules/pre-implementation.md +44 -0
  56. package/catalog/agent/rules/public-package-safety.md +56 -0
  57. package/catalog/agent/rules/repo-restrictions.md +175 -0
  58. package/catalog/agent/rules/rtk-routing.md +50 -0
  59. package/catalog/agent/rules/supported-agent-clis.md +80 -0
  60. package/catalog/agent/rules/ts-coding-conventions.md +68 -0
  61. package/catalog/agent/skills/better-auth-best-practices/SKILL.md +212 -0
  62. package/catalog/agent/skills/deep-research/SKILL.md +240 -0
  63. package/catalog/agent/skills/fix/SKILL.md +120 -0
  64. package/catalog/agent/skills/frontend-design/LICENSE.txt +177 -0
  65. package/catalog/agent/skills/frontend-design/SKILL.md +189 -0
  66. package/catalog/agent/skills/hooks-doctor/SKILL.md +77 -0
  67. package/catalog/agent/skills/logging-best-practices/SKILL.md +145 -0
  68. package/catalog/agent/skills/logging-best-practices/rules/context.md +157 -0
  69. package/catalog/agent/skills/logging-best-practices/rules/pitfalls.md +118 -0
  70. package/catalog/agent/skills/logging-best-practices/rules/structure.md +195 -0
  71. package/catalog/agent/skills/logging-best-practices/rules/wide-events.md +113 -0
  72. package/catalog/agent/skills/lore-protocol/SKILL.md +93 -0
  73. package/catalog/agent/skills/monorepo-navigation/SKILL.md.tpl +57 -0
  74. package/catalog/agent/skills/monorepo-navigation/examples/webpresso.md +240 -0
  75. package/catalog/agent/skills/plan-refine/SKILL.md +645 -0
  76. package/catalog/agent/skills/pll/SKILL.md +85 -0
  77. package/catalog/agent/skills/react-doctor/SKILL.md +54 -0
  78. package/catalog/agent/skills/systematic-debugging/CREATION-LOG.md +133 -0
  79. package/catalog/agent/skills/systematic-debugging/SKILL.md +322 -0
  80. package/catalog/agent/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  81. package/catalog/agent/skills/systematic-debugging/condition-based-waiting.md +120 -0
  82. package/catalog/agent/skills/systematic-debugging/defense-in-depth.md +128 -0
  83. package/catalog/agent/skills/systematic-debugging/find-polluter.sh +63 -0
  84. package/catalog/agent/skills/systematic-debugging/root-cause-tracing.md +183 -0
  85. package/catalog/agent/skills/systematic-debugging/test-academic.md +14 -0
  86. package/catalog/agent/skills/systematic-debugging/test-pressure-1.md +65 -0
  87. package/catalog/agent/skills/systematic-debugging/test-pressure-2.md +75 -0
  88. package/catalog/agent/skills/systematic-debugging/test-pressure-3.md +75 -0
  89. package/catalog/agent/skills/tanstack-query/.claude-plugin/plugin.json +12 -0
  90. package/catalog/agent/skills/tanstack-query/README.md +59 -0
  91. package/catalog/agent/skills/tanstack-query/SKILL.md +175 -0
  92. package/catalog/agent/skills/tanstack-query/references/best-practices.md +63 -0
  93. package/catalog/agent/skills/tanstack-query/references/common-patterns.md +43 -0
  94. package/catalog/agent/skills/tanstack-query/references/testing.md +44 -0
  95. package/catalog/agent/skills/tanstack-query/references/top-errors.md +19 -0
  96. package/catalog/agent/skills/tanstack-query/references/typescript-patterns.md +36 -0
  97. package/catalog/agent/skills/tanstack-query/rules/tanstack-query.md +41 -0
  98. package/catalog/agent/skills/tanstack-query/templates/custom-hooks-pattern.tsx +26 -0
  99. package/catalog/agent/skills/tanstack-query/templates/devtools-setup.tsx +13 -0
  100. package/catalog/agent/skills/tanstack-query/templates/error-boundary.tsx +52 -0
  101. package/catalog/agent/skills/tanstack-query/templates/package.json +24 -0
  102. package/catalog/agent/skills/tanstack-query/templates/provider-setup.tsx +19 -0
  103. package/catalog/agent/skills/tanstack-query/templates/query-client-config.ts +43 -0
  104. package/catalog/agent/skills/tanstack-query/templates/use-infinite-query.tsx +61 -0
  105. package/catalog/agent/skills/tanstack-query/templates/use-mutation-basic.tsx +52 -0
  106. package/catalog/agent/skills/tanstack-query/templates/use-mutation-optimistic.tsx +48 -0
  107. package/catalog/agent/skills/tanstack-query/templates/use-query-basic.tsx +77 -0
  108. package/catalog/agent/skills/tech-debt/SKILL.md +79 -0
  109. package/catalog/agent/skills/test-driven-development/SKILL.md +403 -0
  110. package/catalog/agent/skills/test-driven-development/testing-anti-patterns.md +317 -0
  111. package/catalog/agent/skills/testing-philosophy/SKILL.md +530 -0
  112. package/catalog/agent/skills/third-party-manifest.json +30 -0
  113. package/catalog/agent/skills/vercel-react-best-practices/AGENTS.md +2672 -0
  114. package/catalog/agent/skills/vercel-react-best-practices/README.md +127 -0
  115. package/catalog/agent/skills/vercel-react-best-practices/SKILL.md +212 -0
  116. package/catalog/agent/skills/vercel-react-best-practices/metadata.json +15 -0
  117. package/catalog/agent/skills/vercel-react-best-practices/rules/_sections.md +46 -0
  118. package/catalog/agent/skills/vercel-react-best-practices/rules/_template.md +28 -0
  119. package/catalog/agent/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  120. package/catalog/agent/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
  121. package/catalog/agent/skills/vercel-react-best-practices/rules/async-api-routes.md +35 -0
  122. package/catalog/agent/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
  123. package/catalog/agent/skills/vercel-react-best-practices/rules/async-dependencies.md +48 -0
  124. package/catalog/agent/skills/vercel-react-best-practices/rules/async-parallel.md +24 -0
  125. package/catalog/agent/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
  126. package/catalog/agent/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
  127. package/catalog/agent/skills/vercel-react-best-practices/rules/bundle-conditional.md +37 -0
  128. package/catalog/agent/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +48 -0
  129. package/catalog/agent/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +34 -0
  130. package/catalog/agent/skills/vercel-react-best-practices/rules/bundle-preload.md +44 -0
  131. package/catalog/agent/skills/vercel-react-best-practices/rules/client-event-listeners.md +78 -0
  132. package/catalog/agent/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +74 -0
  133. package/catalog/agent/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
  134. package/catalog/agent/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
  135. package/catalog/agent/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +110 -0
  136. package/catalog/agent/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
  137. package/catalog/agent/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
  138. package/catalog/agent/skills/vercel-react-best-practices/rules/js-cache-storage.md +68 -0
  139. package/catalog/agent/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
  140. package/catalog/agent/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
  141. package/catalog/agent/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
  142. package/catalog/agent/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
  143. package/catalog/agent/skills/vercel-react-best-practices/rules/js-length-check-first.md +50 -0
  144. package/catalog/agent/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
  145. package/catalog/agent/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
  146. package/catalog/agent/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
  147. package/catalog/agent/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
  148. package/catalog/agent/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +38 -0
  149. package/catalog/agent/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +32 -0
  150. package/catalog/agent/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
  151. package/catalog/agent/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +36 -0
  152. package/catalog/agent/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +72 -0
  153. package/catalog/agent/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
  154. package/catalog/agent/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  155. package/catalog/agent/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
  156. package/catalog/agent/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
  157. package/catalog/agent/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
  158. package/catalog/agent/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +77 -0
  159. package/catalog/agent/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +56 -0
  160. package/catalog/agent/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +36 -0
  161. package/catalog/agent/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
  162. package/catalog/agent/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  163. package/catalog/agent/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
  164. package/catalog/agent/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
  165. package/catalog/agent/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
  166. package/catalog/agent/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
  167. package/catalog/agent/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
  168. package/catalog/agent/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
  169. package/catalog/agent/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
  170. package/catalog/agent/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
  171. package/catalog/agent/skills/verify/SKILL.md +133 -0
  172. package/catalog/agent/skills/web-design-guidelines/SKILL.md +53 -0
  173. package/catalog/agent/workflows/README.md +20 -0
  174. package/catalog/agent/workflows/conf.md +18 -0
  175. package/catalog/agent/workflows/debug.md +20 -0
  176. package/catalog/agent/workflows/docs.md +9 -0
  177. package/catalog/agent/workflows/execute-plan.md +15 -0
  178. package/catalog/agent/workflows/fix-all-md-warnings.md +13 -0
  179. package/catalog/agent/workflows/test.md +14 -0
  180. package/catalog/agent/workflows/write-plan.md +16 -0
  181. package/catalog/base-kit/.actrc.tmpl +2 -0
  182. package/catalog/base-kit/.editorconfig.tmpl +23 -0
  183. package/catalog/base-kit/.github/workflows/ci.webpresso.yml.tmpl +66 -0
  184. package/catalog/base-kit/.gitignore.tmpl +82 -0
  185. package/catalog/base-kit/.husky/commit-msg.tmpl +7 -0
  186. package/catalog/base-kit/.husky/pre-commit.tmpl +10 -0
  187. package/catalog/base-kit/.secretlintrc.json.tmpl +5 -0
  188. package/catalog/base-kit/commitlint.config.ts.tmpl +7 -0
  189. package/catalog/base-kit/e2e/.gitkeep.tmpl +0 -0
  190. package/catalog/base-kit/pnpm-workspace.yaml.tmpl +49 -0
  191. package/catalog/base-kit/scripts/audit-secret-provider-quarantine.ts.tmpl +91 -0
  192. package/catalog/base-kit/scripts/check-no-dev-vars.ts.tmpl +56 -0
  193. package/catalog/base-kit/test/.gitkeep.tmpl +0 -0
  194. package/catalog/blueprints/archived/.gitkeep +0 -0
  195. package/catalog/blueprints/completed/.gitkeep +0 -0
  196. package/catalog/blueprints/in-progress/.gitkeep +0 -0
  197. package/catalog/blueprints/parked/.gitkeep +0 -0
  198. package/catalog/blueprints/planned/.gitkeep +0 -0
  199. package/catalog/docs/templates/adr.md +38 -0
  200. package/catalog/docs/templates/blueprint.md +149 -0
  201. package/catalog/docs/templates/blueprint.yaml +110 -0
  202. package/catalog/docs/templates/core-doc.yaml +28 -0
  203. package/catalog/docs/templates/guide.md +31 -0
  204. package/catalog/docs/templates/guide.yaml +31 -0
  205. package/catalog/docs/templates/postmortem.md +60 -0
  206. package/catalog/docs/templates/research.md +37 -0
  207. package/catalog/docs/templates/runbook.md +39 -0
  208. package/catalog/docs/templates/system.md +44 -0
  209. package/catalog/docs/templates/tech-debt.md +78 -0
  210. package/catalog/vision/VISION.md.tmpl +33 -0
  211. package/commands/audit.md +13 -0
  212. package/commands/blueprint.md +28 -0
  213. package/commands/qa.md +4 -0
  214. package/commands/test.md +4 -0
  215. package/dist/esm/ai-memory/checkpoint/saver.d.ts +14 -0
  216. package/dist/esm/ai-memory/checkpoint/saver.js +28 -0
  217. package/dist/esm/ai-memory/checkpoint/types.d.ts +75 -0
  218. package/dist/esm/ai-memory/checkpoint/types.js +2 -0
  219. package/dist/esm/ai-memory/facts/consolidator.d.ts +23 -0
  220. package/dist/esm/ai-memory/facts/consolidator.js +134 -0
  221. package/dist/esm/ai-memory/facts/extractor.d.ts +28 -0
  222. package/dist/esm/ai-memory/facts/extractor.js +119 -0
  223. package/dist/esm/ai-memory/facts/types.d.ts +61 -0
  224. package/dist/esm/ai-memory/facts/types.js +2 -0
  225. package/dist/esm/ai-memory/hierarchy/retriever.d.ts +47 -0
  226. package/dist/esm/ai-memory/hierarchy/retriever.js +139 -0
  227. package/dist/esm/ai-memory/index.d.ts +11 -0
  228. package/dist/esm/ai-memory/index.js +6 -0
  229. package/dist/esm/ai-memory/store/sqlite-store.d.ts +28 -0
  230. package/dist/esm/ai-memory/store/sqlite-store.js +213 -0
  231. package/dist/esm/ai-prompts/business-canvas.d.ts +52 -0
  232. package/dist/esm/ai-prompts/business-canvas.js +292 -0
  233. package/dist/esm/ai-prompts/circuit-breaker.d.ts +35 -0
  234. package/dist/esm/ai-prompts/circuit-breaker.js +171 -0
  235. package/dist/esm/ai-prompts/experiment-draft.d.ts +86 -0
  236. package/dist/esm/ai-prompts/experiment-draft.js +188 -0
  237. package/dist/esm/ai-prompts/index.d.ts +12 -0
  238. package/dist/esm/ai-prompts/index.js +11 -0
  239. package/dist/esm/ai-prompts/persona-context.d.ts +70 -0
  240. package/dist/esm/ai-prompts/persona-context.js +158 -0
  241. package/dist/esm/ai-prompts/persona-debate.d.ts +67 -0
  242. package/dist/esm/ai-prompts/persona-debate.js +172 -0
  243. package/dist/esm/ai-prompts/persona-tools.d.ts +26 -0
  244. package/dist/esm/ai-prompts/persona-tools.js +172 -0
  245. package/dist/esm/ai-prompts/personas.d.ts +16 -0
  246. package/dist/esm/ai-prompts/personas.js +492 -0
  247. package/dist/esm/ai-prompts/rachel-planning.d.ts +28 -0
  248. package/dist/esm/ai-prompts/rachel-planning.js +217 -0
  249. package/dist/esm/ai-prompts/task-analysis.d.ts +49 -0
  250. package/dist/esm/ai-prompts/task-analysis.js +434 -0
  251. package/dist/esm/ai-prompts/types.d.ts +3 -0
  252. package/dist/esm/ai-prompts/types.js +2 -0
  253. package/dist/esm/ai-tools/index.d.ts +7 -0
  254. package/dist/esm/ai-tools/index.js +6 -0
  255. package/dist/esm/ai-tools/list-files.d.ts +3 -0
  256. package/dist/esm/ai-tools/list-files.js +93 -0
  257. package/dist/esm/ai-tools/read-file.d.ts +3 -0
  258. package/dist/esm/ai-tools/read-file.js +108 -0
  259. package/dist/esm/ai-tools/search-files.d.ts +3 -0
  260. package/dist/esm/ai-tools/search-files.js +166 -0
  261. package/dist/esm/ai-tools/shared/validate-path.d.ts +11 -0
  262. package/dist/esm/ai-tools/shared/validate-path.js +25 -0
  263. package/dist/esm/ai-tools/types.d.ts +370 -0
  264. package/dist/esm/ai-tools/types.js +2 -0
  265. package/dist/esm/ai-tools/write-file.d.ts +3 -0
  266. package/dist/esm/ai-tools/write-file.js +165 -0
  267. package/dist/esm/audit/_budgets.d.ts +28 -0
  268. package/dist/esm/audit/_budgets.js +60 -0
  269. package/dist/esm/audit/absolute-path-policy.d.ts +5 -0
  270. package/dist/esm/audit/absolute-path-policy.js +97 -0
  271. package/dist/esm/audit/agent-cost.d.ts +3 -0
  272. package/dist/esm/audit/agent-cost.js +111 -0
  273. package/dist/esm/audit/agents.d.ts +3 -0
  274. package/dist/esm/audit/agents.js +331 -0
  275. package/dist/esm/audit/ai-contracts.d.ts +3 -0
  276. package/dist/esm/audit/ai-contracts.js +238 -0
  277. package/dist/esm/audit/architecture-drift.d.ts +33 -0
  278. package/dist/esm/audit/architecture-drift.js +364 -0
  279. package/dist/esm/audit/audit-mutation-score.d.ts +43 -0
  280. package/dist/esm/audit/audit-mutation-score.js +92 -0
  281. package/dist/esm/audit/audit-no-ambient-root.d.ts +29 -0
  282. package/dist/esm/audit/audit-no-ambient-root.js +83 -0
  283. package/dist/esm/audit/audit-tph-detect.d.ts +49 -0
  284. package/dist/esm/audit/audit-tph-detect.js +248 -0
  285. package/dist/esm/audit/audit-tph-e2e-detect.d.ts +27 -0
  286. package/dist/esm/audit/audit-tph-e2e-detect.js +84 -0
  287. package/dist/esm/audit/audit-tph-e2e-runner.d.ts +8 -0
  288. package/dist/esm/audit/audit-tph-e2e-runner.js +106 -0
  289. package/dist/esm/audit/audit-tph-e2e.d.ts +16 -0
  290. package/dist/esm/audit/audit-tph-e2e.js +17 -0
  291. package/dist/esm/audit/audit-tph-runner.d.ts +10 -0
  292. package/dist/esm/audit/audit-tph-runner.js +115 -0
  293. package/dist/esm/audit/audit-tph.d.ts +17 -0
  294. package/dist/esm/audit/audit-tph.js +38 -0
  295. package/dist/esm/audit/blueprint-db-consistency.d.ts +15 -0
  296. package/dist/esm/audit/blueprint-db-consistency.js +109 -0
  297. package/dist/esm/audit/blueprint-lifecycle-sql.d.ts +17 -0
  298. package/dist/esm/audit/blueprint-lifecycle-sql.js +136 -0
  299. package/dist/esm/audit/broken-refs.d.ts +26 -0
  300. package/dist/esm/audit/broken-refs.js +181 -0
  301. package/dist/esm/audit/bucket-boundary.d.ts +21 -0
  302. package/dist/esm/audit/bucket-boundary.js +330 -0
  303. package/dist/esm/audit/commit-message-lore.d.ts +41 -0
  304. package/dist/esm/audit/commit-message-lore.js +113 -0
  305. package/dist/esm/audit/compile-drift.d.ts +3 -0
  306. package/dist/esm/audit/compile-drift.js +42 -0
  307. package/dist/esm/audit/cross-repo-correlation.d.ts +14 -0
  308. package/dist/esm/audit/cross-repo-correlation.js +50 -0
  309. package/dist/esm/audit/gitignore-agent-surfaces.d.ts +3 -0
  310. package/dist/esm/audit/gitignore-agent-surfaces.js +68 -0
  311. package/dist/esm/audit/hook-surface.d.ts +82 -0
  312. package/dist/esm/audit/hook-surface.js +251 -0
  313. package/dist/esm/audit/memory-rotation.d.ts +31 -0
  314. package/dist/esm/audit/memory-rotation.js +137 -0
  315. package/dist/esm/audit/memory-unified.d.ts +3 -0
  316. package/dist/esm/audit/memory-unified.js +46 -0
  317. package/dist/esm/audit/open-source-licenses.d.ts +4 -0
  318. package/dist/esm/audit/open-source-licenses.js +224 -0
  319. package/dist/esm/audit/package-surface.d.ts +7 -0
  320. package/dist/esm/audit/package-surface.js +674 -0
  321. package/dist/esm/audit/repo-guardrails.d.ts +89 -0
  322. package/dist/esm/audit/repo-guardrails.js +875 -0
  323. package/dist/esm/audit/roadmap-links.d.ts +7 -0
  324. package/dist/esm/audit/roadmap-links.js +235 -0
  325. package/dist/esm/audit/run-stryker.d.ts +9 -0
  326. package/dist/esm/audit/run-stryker.js +24 -0
  327. package/dist/esm/audit/shell.d.ts +17 -0
  328. package/dist/esm/audit/shell.js +32 -0
  329. package/dist/esm/audit/skill-sizes.d.ts +25 -0
  330. package/dist/esm/audit/skill-sizes.js +153 -0
  331. package/dist/esm/audit/tech-debt-cadence.d.ts +16 -0
  332. package/dist/esm/audit/tech-debt-cadence.js +101 -0
  333. package/dist/esm/audit/tech-debt.d.ts +9 -0
  334. package/dist/esm/audit/tech-debt.js +107 -0
  335. package/dist/esm/audit/vision-doc.d.ts +21 -0
  336. package/dist/esm/audit/vision-doc.js +136 -0
  337. package/dist/esm/blueprint/aggregate.d.ts +146 -0
  338. package/dist/esm/blueprint/aggregate.js +217 -0
  339. package/dist/esm/blueprint/context.d.ts +70 -0
  340. package/dist/esm/blueprint/context.js +301 -0
  341. package/dist/esm/blueprint/core/parser.d.ts +53 -0
  342. package/dist/esm/blueprint/core/parser.js +281 -0
  343. package/dist/esm/blueprint/core/schema.d.ts +163 -0
  344. package/dist/esm/blueprint/core/schema.js +98 -0
  345. package/dist/esm/blueprint/core/types.d.ts +13 -0
  346. package/dist/esm/blueprint/core/types.js +5 -0
  347. package/dist/esm/blueprint/core/validation/criteria.d.ts +6 -0
  348. package/dist/esm/blueprint/core/validation/criteria.js +15 -0
  349. package/dist/esm/blueprint/core/validation/dependencies.d.ts +19 -0
  350. package/dist/esm/blueprint/core/validation/dependencies.js +113 -0
  351. package/dist/esm/blueprint/core/validation/index.d.ts +13 -0
  352. package/dist/esm/blueprint/core/validation/index.js +11 -0
  353. package/dist/esm/blueprint/core/validation/links.d.ts +18 -0
  354. package/dist/esm/blueprint/core/validation/links.js +47 -0
  355. package/dist/esm/blueprint/core/validation/phases.d.ts +12 -0
  356. package/dist/esm/blueprint/core/validation/phases.js +18 -0
  357. package/dist/esm/blueprint/core/validation/state.d.ts +9 -0
  358. package/dist/esm/blueprint/core/validation/state.js +123 -0
  359. package/dist/esm/blueprint/core/validation/task-blocks.d.ts +27 -0
  360. package/dist/esm/blueprint/core/validation/task-blocks.js +48 -0
  361. package/dist/esm/blueprint/core/validation/task-sections.d.ts +14 -0
  362. package/dist/esm/blueprint/core/validation/task-sections.js +60 -0
  363. package/dist/esm/blueprint/core/validation/template.d.ts +9 -0
  364. package/dist/esm/blueprint/core/validation/template.js +65 -0
  365. package/dist/esm/blueprint/cross-repo/allowlist.d.ts +28 -0
  366. package/dist/esm/blueprint/cross-repo/allowlist.js +87 -0
  367. package/dist/esm/blueprint/cross-repo/audit.d.ts +49 -0
  368. package/dist/esm/blueprint/cross-repo/audit.js +161 -0
  369. package/dist/esm/blueprint/cross-repo/resolver.d.ts +28 -0
  370. package/dist/esm/blueprint/cross-repo/resolver.js +32 -0
  371. package/dist/esm/blueprint/dag/cycle-detector.d.ts +12 -0
  372. package/dist/esm/blueprint/dag/cycle-detector.js +46 -0
  373. package/dist/esm/blueprint/dag/executor.d.ts +140 -0
  374. package/dist/esm/blueprint/dag/executor.js +292 -0
  375. package/dist/esm/blueprint/dag/index.d.ts +20 -0
  376. package/dist/esm/blueprint/dag/index.js +17 -0
  377. package/dist/esm/blueprint/dag/interfaces.d.ts +56 -0
  378. package/dist/esm/blueprint/dag/interfaces.js +13 -0
  379. package/dist/esm/blueprint/dag/local/independence.d.ts +107 -0
  380. package/dist/esm/blueprint/dag/local/independence.js +231 -0
  381. package/dist/esm/blueprint/dag/local/index.d.ts +14 -0
  382. package/dist/esm/blueprint/dag/local/index.js +14 -0
  383. package/dist/esm/blueprint/dag/local/package-graph.d.ts +66 -0
  384. package/dist/esm/blueprint/dag/local/package-graph.js +148 -0
  385. package/dist/esm/blueprint/dag/plan-parser.d.ts +54 -0
  386. package/dist/esm/blueprint/dag/plan-parser.js +236 -0
  387. package/dist/esm/blueprint/dag/task-graph-algorithms.d.ts +13 -0
  388. package/dist/esm/blueprint/dag/task-graph-algorithms.js +236 -0
  389. package/dist/esm/blueprint/dag/task-graph.d.ts +171 -0
  390. package/dist/esm/blueprint/dag/task-graph.js +370 -0
  391. package/dist/esm/blueprint/dag/types.d.ts +17 -0
  392. package/dist/esm/blueprint/dag/types.js +2 -0
  393. package/dist/esm/blueprint/db/cold-start.d.ts +8 -0
  394. package/dist/esm/blueprint/db/cold-start.js +45 -0
  395. package/dist/esm/blueprint/db/connection.d.ts +8 -0
  396. package/dist/esm/blueprint/db/connection.js +45 -0
  397. package/dist/esm/blueprint/db/enums.d.ts +76 -0
  398. package/dist/esm/blueprint/db/enums.js +37 -0
  399. package/dist/esm/blueprint/db/ingester.d.ts +25 -0
  400. package/dist/esm/blueprint/db/ingester.js +307 -0
  401. package/dist/esm/blueprint/db/legacy-migration.d.ts +41 -0
  402. package/dist/esm/blueprint/db/legacy-migration.js +122 -0
  403. package/dist/esm/blueprint/db/migrations/run.d.ts +3 -0
  404. package/dist/esm/blueprint/db/migrations/run.js +53 -0
  405. package/dist/esm/blueprint/db/parser/blueprint-db-parser.d.ts +69 -0
  406. package/dist/esm/blueprint/db/parser/blueprint-db-parser.js +408 -0
  407. package/dist/esm/blueprint/db/parser/tech-debt-db-parser.d.ts +33 -0
  408. package/dist/esm/blueprint/db/parser/tech-debt-db-parser.js +134 -0
  409. package/dist/esm/blueprint/db/paths.d.ts +104 -0
  410. package/dist/esm/blueprint/db/paths.js +192 -0
  411. package/dist/esm/blueprint/db/sqlite.d.ts +32 -0
  412. package/dist/esm/blueprint/db/sqlite.js +46 -0
  413. package/dist/esm/blueprint/db/template-runner.d.ts +8 -0
  414. package/dist/esm/blueprint/db/template-runner.js +65 -0
  415. package/dist/esm/blueprint/db/templates.d.ts +11 -0
  416. package/dist/esm/blueprint/db/templates.js +226 -0
  417. package/dist/esm/blueprint/db/workspace-config.d.ts +38 -0
  418. package/dist/esm/blueprint/db/workspace-config.js +150 -0
  419. package/dist/esm/blueprint/evidence.d.ts +140 -0
  420. package/dist/esm/blueprint/evidence.js +152 -0
  421. package/dist/esm/blueprint/execution/artifacts.d.ts +9 -0
  422. package/dist/esm/blueprint/execution/artifacts.js +45 -0
  423. package/dist/esm/blueprint/execution/metadata.d.ts +11 -0
  424. package/dist/esm/blueprint/execution/metadata.js +46 -0
  425. package/dist/esm/blueprint/execution/progress-bridge.d.ts +117 -0
  426. package/dist/esm/blueprint/execution/progress-bridge.js +302 -0
  427. package/dist/esm/blueprint/execution/types.d.ts +233 -0
  428. package/dist/esm/blueprint/execution/types.js +99 -0
  429. package/dist/esm/blueprint/export/spec-kit/_field-map.d.ts +12 -0
  430. package/dist/esm/blueprint/export/spec-kit/_field-map.js +33 -0
  431. package/dist/esm/blueprint/export/spec-kit/constitution.d.ts +7 -0
  432. package/dist/esm/blueprint/export/spec-kit/constitution.js +61 -0
  433. package/dist/esm/blueprint/export/spec-kit/index.d.ts +13 -0
  434. package/dist/esm/blueprint/export/spec-kit/index.js +17 -0
  435. package/dist/esm/blueprint/export/spec-kit/plan.d.ts +7 -0
  436. package/dist/esm/blueprint/export/spec-kit/plan.js +43 -0
  437. package/dist/esm/blueprint/export/spec-kit/spec.d.ts +7 -0
  438. package/dist/esm/blueprint/export/spec-kit/spec.js +35 -0
  439. package/dist/esm/blueprint/export/spec-kit/tasks.d.ts +3 -0
  440. package/dist/esm/blueprint/export/spec-kit/tasks.js +32 -0
  441. package/dist/esm/blueprint/freshness.d.ts +78 -0
  442. package/dist/esm/blueprint/freshness.js +127 -0
  443. package/dist/esm/blueprint/graph/index.d.ts +5 -0
  444. package/dist/esm/blueprint/graph/index.js +5 -0
  445. package/dist/esm/blueprint/graph/mermaid-parser.d.ts +3 -0
  446. package/dist/esm/blueprint/graph/mermaid-parser.js +93 -0
  447. package/dist/esm/blueprint/graph/mermaid-serializer.d.ts +3 -0
  448. package/dist/esm/blueprint/graph/mermaid-serializer.js +20 -0
  449. package/dist/esm/blueprint/graph/schema.d.ts +89 -0
  450. package/dist/esm/blueprint/graph/schema.js +104 -0
  451. package/dist/esm/blueprint/graph/task-graph-adapter.d.ts +6 -0
  452. package/dist/esm/blueprint/graph/task-graph-adapter.js +30 -0
  453. package/dist/esm/blueprint/history/diff.d.ts +36 -0
  454. package/dist/esm/blueprint/history/diff.js +122 -0
  455. package/dist/esm/blueprint/index.d.ts +37 -0
  456. package/dist/esm/blueprint/index.js +46 -0
  457. package/dist/esm/blueprint/lifecycle/audit.d.ts +17 -0
  458. package/dist/esm/blueprint/lifecycle/audit.js +423 -0
  459. package/dist/esm/blueprint/lifecycle/engine.d.ts +38 -0
  460. package/dist/esm/blueprint/lifecycle/engine.js +157 -0
  461. package/dist/esm/blueprint/lifecycle/local.d.ts +15 -0
  462. package/dist/esm/blueprint/lifecycle/local.js +92 -0
  463. package/dist/esm/blueprint/local.d.ts +21 -0
  464. package/dist/esm/blueprint/local.js +25 -0
  465. package/dist/esm/blueprint/markdown/helpers.d.ts +17 -0
  466. package/dist/esm/blueprint/markdown/helpers.js +92 -0
  467. package/dist/esm/blueprint/markdown/task-heading.d.ts +8 -0
  468. package/dist/esm/blueprint/markdown/task-heading.js +19 -0
  469. package/dist/esm/blueprint/next-action.d.ts +27 -0
  470. package/dist/esm/blueprint/next-action.js +45 -0
  471. package/dist/esm/blueprint/project-resolver.d.ts +31 -0
  472. package/dist/esm/blueprint/project-resolver.js +142 -0
  473. package/dist/esm/blueprint/projection-ready.d.ts +3 -0
  474. package/dist/esm/blueprint/projection-ready.js +29 -0
  475. package/dist/esm/blueprint/projects.d.ts +96 -0
  476. package/dist/esm/blueprint/projects.js +383 -0
  477. package/dist/esm/blueprint/query/types.d.ts +53 -0
  478. package/dist/esm/blueprint/query/types.js +16 -0
  479. package/dist/esm/blueprint/roadmap.d.ts +24 -0
  480. package/dist/esm/blueprint/roadmap.js +82 -0
  481. package/dist/esm/blueprint/service/BlueprintCreationService.d.ts +47 -0
  482. package/dist/esm/blueprint/service/BlueprintCreationService.js +260 -0
  483. package/dist/esm/blueprint/service/BlueprintService.d.ts +70 -0
  484. package/dist/esm/blueprint/service/BlueprintService.js +190 -0
  485. package/dist/esm/blueprint/service/TechDebtService.d.ts +102 -0
  486. package/dist/esm/blueprint/service/TechDebtService.js +337 -0
  487. package/dist/esm/blueprint/service/TrackedDocumentService.d.ts +198 -0
  488. package/dist/esm/blueprint/service/TrackedDocumentService.js +162 -0
  489. package/dist/esm/blueprint/service/blueprint-records.d.ts +8 -0
  490. package/dist/esm/blueprint/service/blueprint-records.js +124 -0
  491. package/dist/esm/blueprint/service/blueprint-tech-debt-links.d.ts +3 -0
  492. package/dist/esm/blueprint/service/blueprint-tech-debt-links.js +35 -0
  493. package/dist/esm/blueprint/service/priority-scoring.d.ts +21 -0
  494. package/dist/esm/blueprint/service/priority-scoring.js +85 -0
  495. package/dist/esm/blueprint/service/scanner.d.ts +56 -0
  496. package/dist/esm/blueprint/service/scanner.js +212 -0
  497. package/dist/esm/blueprint/sync/auth.d.ts +27 -0
  498. package/dist/esm/blueprint/sync/auth.js +59 -0
  499. package/dist/esm/blueprint/sync/client.d.ts +64 -0
  500. package/dist/esm/blueprint/sync/client.js +232 -0
  501. package/dist/esm/blueprint/sync/replica.d.ts +55 -0
  502. package/dist/esm/blueprint/sync/replica.js +139 -0
  503. package/dist/esm/blueprint/sync/types.d.ts +178 -0
  504. package/dist/esm/blueprint/sync/types.js +18 -0
  505. package/dist/esm/blueprint/tech-debt/index.d.ts +9 -0
  506. package/dist/esm/blueprint/tech-debt/index.js +9 -0
  507. package/dist/esm/blueprint/tech-debt/parser.d.ts +56 -0
  508. package/dist/esm/blueprint/tech-debt/parser.js +133 -0
  509. package/dist/esm/blueprint/tech-debt/query-types.d.ts +130 -0
  510. package/dist/esm/blueprint/tech-debt/query-types.js +37 -0
  511. package/dist/esm/blueprint/tech-debt/schema.d.ts +151 -0
  512. package/dist/esm/blueprint/tech-debt/schema.js +145 -0
  513. package/dist/esm/blueprint/test-utils/blueprint-mocks.d.ts +31 -0
  514. package/dist/esm/blueprint/test-utils/blueprint-mocks.js +63 -0
  515. package/dist/esm/blueprint/tracked-document/index.d.ts +11 -0
  516. package/dist/esm/blueprint/tracked-document/index.js +11 -0
  517. package/dist/esm/blueprint/tracked-document/parser.d.ts +113 -0
  518. package/dist/esm/blueprint/tracked-document/parser.js +197 -0
  519. package/dist/esm/blueprint/tracked-document/query-types.d.ts +43 -0
  520. package/dist/esm/blueprint/tracked-document/query-types.js +8 -0
  521. package/dist/esm/blueprint/tracked-document/schema.d.ts +80 -0
  522. package/dist/esm/blueprint/tracked-document/schema.js +89 -0
  523. package/dist/esm/blueprint/types/execution-backend.d.ts +17 -0
  524. package/dist/esm/blueprint/types/execution-backend.js +16 -0
  525. package/dist/esm/blueprint/utils/archive.d.ts +69 -0
  526. package/dist/esm/blueprint/utils/archive.js +209 -0
  527. package/dist/esm/blueprint/utils/blueprint-root.d.ts +9 -0
  528. package/dist/esm/blueprint/utils/blueprint-root.js +77 -0
  529. package/dist/esm/blueprint/utils/conflict.d.ts +125 -0
  530. package/dist/esm/blueprint/utils/conflict.js +111 -0
  531. package/dist/esm/blueprint/utils/decision-trace-artifacts.d.ts +16 -0
  532. package/dist/esm/blueprint/utils/decision-trace-artifacts.js +37 -0
  533. package/dist/esm/blueprint/utils/errors.d.ts +14 -0
  534. package/dist/esm/blueprint/utils/errors.js +44 -0
  535. package/dist/esm/blueprint/utils/freshness.d.ts +21 -0
  536. package/dist/esm/blueprint/utils/freshness.js +66 -0
  537. package/dist/esm/blueprint/utils/package-assets.d.ts +6 -0
  538. package/dist/esm/blueprint/utils/package-assets.js +20 -0
  539. package/dist/esm/blueprint/utils/string.d.ts +8 -0
  540. package/dist/esm/blueprint/utils/string.js +10 -0
  541. package/dist/esm/blueprint/utils/tech-debt-root.d.ts +4 -0
  542. package/dist/esm/blueprint/utils/tech-debt-root.js +18 -0
  543. package/dist/esm/blueprint/verification.d.ts +116 -0
  544. package/dist/esm/blueprint/verification.js +246 -0
  545. package/dist/esm/build/generate-skills-dir.d.ts +14 -0
  546. package/dist/esm/build/generate-skills-dir.js +56 -0
  547. package/dist/esm/ci/act-helper.d.ts +29 -0
  548. package/dist/esm/ci/act-helper.js +106 -0
  549. package/dist/esm/ci/act-runner.d.ts +24 -0
  550. package/dist/esm/ci/act-runner.js +71 -0
  551. package/dist/esm/cli/auto-update/detect-pm.d.ts +76 -0
  552. package/dist/esm/cli/auto-update/detect-pm.js +237 -0
  553. package/dist/esm/cli/auto-update/installer.d.ts +65 -0
  554. package/dist/esm/cli/auto-update/installer.js +171 -0
  555. package/dist/esm/cli/auto-update/log.d.ts +46 -0
  556. package/dist/esm/cli/auto-update/log.js +107 -0
  557. package/dist/esm/cli/auto-update/run.d.ts +23 -0
  558. package/dist/esm/cli/auto-update/run.js +116 -0
  559. package/dist/esm/cli/auto-update/skip.d.ts +34 -0
  560. package/dist/esm/cli/auto-update/skip.js +84 -0
  561. package/dist/esm/cli/bootstrap.d.ts +28 -0
  562. package/dist/esm/cli/bootstrap.js +55 -0
  563. package/dist/esm/cli/cli.d.ts +11 -0
  564. package/dist/esm/cli/cli.js +310 -0
  565. package/dist/esm/cli/commands/audit-core.d.ts +61 -0
  566. package/dist/esm/cli/commands/audit-core.js +87 -0
  567. package/dist/esm/cli/commands/audit.d.ts +10 -0
  568. package/dist/esm/cli/commands/audit.js +273 -0
  569. package/dist/esm/cli/commands/bench/index.d.ts +6 -0
  570. package/dist/esm/cli/commands/bench/index.js +54 -0
  571. package/dist/esm/cli/commands/bench/session-memory.d.ts +129 -0
  572. package/dist/esm/cli/commands/bench/session-memory.js +242 -0
  573. package/dist/esm/cli/commands/blueprint/db-commands.d.ts +60 -0
  574. package/dist/esm/cli/commands/blueprint/db-commands.js +244 -0
  575. package/dist/esm/cli/commands/blueprint/execution-io.d.ts +80 -0
  576. package/dist/esm/cli/commands/blueprint/execution-io.js +78 -0
  577. package/dist/esm/cli/commands/blueprint/execution-spec.d.ts +45 -0
  578. package/dist/esm/cli/commands/blueprint/execution-spec.js +177 -0
  579. package/dist/esm/cli/commands/blueprint/execution-state.d.ts +17 -0
  580. package/dist/esm/cli/commands/blueprint/execution-state.js +38 -0
  581. package/dist/esm/cli/commands/blueprint/execution.d.ts +74 -0
  582. package/dist/esm/cli/commands/blueprint/execution.js +256 -0
  583. package/dist/esm/cli/commands/blueprint/mutations.d.ts +109 -0
  584. package/dist/esm/cli/commands/blueprint/mutations.js +357 -0
  585. package/dist/esm/cli/commands/blueprint/router-dispatch.d.ts +50 -0
  586. package/dist/esm/cli/commands/blueprint/router-dispatch.js +358 -0
  587. package/dist/esm/cli/commands/blueprint/router-output.d.ts +25 -0
  588. package/dist/esm/cli/commands/blueprint/router-output.js +190 -0
  589. package/dist/esm/cli/commands/blueprint/router.d.ts +117 -0
  590. package/dist/esm/cli/commands/blueprint/router.js +480 -0
  591. package/dist/esm/cli/commands/blueprint/template-resolver.d.ts +19 -0
  592. package/dist/esm/cli/commands/blueprint/template-resolver.js +55 -0
  593. package/dist/esm/cli/commands/ci.d.ts +31 -0
  594. package/dist/esm/cli/commands/ci.js +76 -0
  595. package/dist/esm/cli/commands/compile.d.ts +21 -0
  596. package/dist/esm/cli/commands/compile.js +329 -0
  597. package/dist/esm/cli/commands/config.d.ts +55 -0
  598. package/dist/esm/cli/commands/config.js +272 -0
  599. package/dist/esm/cli/commands/dev.d.ts +17 -0
  600. package/dist/esm/cli/commands/dev.js +56 -0
  601. package/dist/esm/cli/commands/docs-core.d.ts +26 -0
  602. package/dist/esm/cli/commands/docs-core.js +88 -0
  603. package/dist/esm/cli/commands/docs.d.ts +9 -0
  604. package/dist/esm/cli/commands/docs.js +46 -0
  605. package/dist/esm/cli/commands/doctor.d.ts +10 -0
  606. package/dist/esm/cli/commands/doctor.js +53 -0
  607. package/dist/esm/cli/commands/e2e.d.ts +22 -0
  608. package/dist/esm/cli/commands/e2e.js +99 -0
  609. package/dist/esm/cli/commands/err.d.ts +11 -0
  610. package/dist/esm/cli/commands/err.js +73 -0
  611. package/dist/esm/cli/commands/format.d.ts +4 -0
  612. package/dist/esm/cli/commands/format.js +48 -0
  613. package/dist/esm/cli/commands/gain/index.d.ts +10 -0
  614. package/dist/esm/cli/commands/gain/index.js +83 -0
  615. package/dist/esm/cli/commands/hooks.d.ts +3 -0
  616. package/dist/esm/cli/commands/hooks.js +21 -0
  617. package/dist/esm/cli/commands/init/config.d.ts +36 -0
  618. package/dist/esm/cli/commands/init/config.js +116 -0
  619. package/dist/esm/cli/commands/init/detect-consumer.d.ts +49 -0
  620. package/dist/esm/cli/commands/init/detect-consumer.js +279 -0
  621. package/dist/esm/cli/commands/init/gitignore-patcher.d.ts +9 -0
  622. package/dist/esm/cli/commands/init/gitignore-patcher.js +133 -0
  623. package/dist/esm/cli/commands/init/host-visibility.d.ts +37 -0
  624. package/dist/esm/cli/commands/init/host-visibility.js +105 -0
  625. package/dist/esm/cli/commands/init/index.d.ts +23 -0
  626. package/dist/esm/cli/commands/init/index.js +751 -0
  627. package/dist/esm/cli/commands/init/merge.d.ts +33 -0
  628. package/dist/esm/cli/commands/init/merge.js +111 -0
  629. package/dist/esm/cli/commands/init/preflight.d.ts +15 -0
  630. package/dist/esm/cli/commands/init/preflight.js +87 -0
  631. package/dist/esm/cli/commands/init/prompts.d.ts +24 -0
  632. package/dist/esm/cli/commands/init/prompts.js +126 -0
  633. package/dist/esm/cli/commands/init/scaffold-agent-rules.d.ts +11 -0
  634. package/dist/esm/cli/commands/init/scaffold-agent-rules.js +58 -0
  635. package/dist/esm/cli/commands/init/scaffold-agent-skills.d.ts +11 -0
  636. package/dist/esm/cli/commands/init/scaffold-agent-skills.js +58 -0
  637. package/dist/esm/cli/commands/init/scaffold-agent.d.ts +15 -0
  638. package/dist/esm/cli/commands/init/scaffold-agent.js +63 -0
  639. package/dist/esm/cli/commands/init/scaffold-agents-md.d.ts +16 -0
  640. package/dist/esm/cli/commands/init/scaffold-agents-md.js +182 -0
  641. package/dist/esm/cli/commands/init/scaffold-base-kit.d.ts +9 -0
  642. package/dist/esm/cli/commands/init/scaffold-base-kit.js +183 -0
  643. package/dist/esm/cli/commands/init/scaffold-blueprints.d.ts +8 -0
  644. package/dist/esm/cli/commands/init/scaffold-blueprints.js +84 -0
  645. package/dist/esm/cli/commands/init/scaffold-catalog-ignore.d.ts +14 -0
  646. package/dist/esm/cli/commands/init/scaffold-catalog-ignore.js +48 -0
  647. package/dist/esm/cli/commands/init/scaffold-docs.d.ts +8 -0
  648. package/dist/esm/cli/commands/init/scaffold-docs.js +15 -0
  649. package/dist/esm/cli/commands/init/scaffold-monorepo-nav.d.ts +19 -0
  650. package/dist/esm/cli/commands/init/scaffold-monorepo-nav.js +101 -0
  651. package/dist/esm/cli/commands/init/scaffolders/agent-hooks/codex-global-normalize.d.ts +20 -0
  652. package/dist/esm/cli/commands/init/scaffolders/agent-hooks/codex-global-normalize.js +258 -0
  653. package/dist/esm/cli/commands/init/scaffolders/agent-hooks/codex-global-ownership.d.ts +3 -0
  654. package/dist/esm/cli/commands/init/scaffolders/agent-hooks/codex-global-ownership.js +36 -0
  655. package/dist/esm/cli/commands/init/scaffolders/agent-hooks/codex-ownership.d.ts +11 -0
  656. package/dist/esm/cli/commands/init/scaffolders/agent-hooks/codex-ownership.js +62 -0
  657. package/dist/esm/cli/commands/init/scaffolders/agent-hooks/codex-trust-sync.d.ts +24 -0
  658. package/dist/esm/cli/commands/init/scaffolders/agent-hooks/codex-trust-sync.js +101 -0
  659. package/dist/esm/cli/commands/init/scaffolders/agent-hooks/index.d.ts +68 -0
  660. package/dist/esm/cli/commands/init/scaffolders/agent-hooks/index.js +585 -0
  661. package/dist/esm/cli/commands/init/scaffolders/agent-hooks/skill-hooks.d.ts +21 -0
  662. package/dist/esm/cli/commands/init/scaffolders/agent-hooks/skill-hooks.js +123 -0
  663. package/dist/esm/cli/commands/init/scaffolders/audit-hooks/index.d.ts +16 -0
  664. package/dist/esm/cli/commands/init/scaffolders/audit-hooks/index.js +65 -0
  665. package/dist/esm/cli/commands/init/scaffolders/claude-plugin/index.d.ts +33 -0
  666. package/dist/esm/cli/commands/init/scaffolders/claude-plugin/index.js +67 -0
  667. package/dist/esm/cli/commands/init/scaffolders/claude-rules/index.d.ts +7 -0
  668. package/dist/esm/cli/commands/init/scaffolders/claude-rules/index.js +127 -0
  669. package/dist/esm/cli/commands/init/scaffolders/codex-cli/index.d.ts +17 -0
  670. package/dist/esm/cli/commands/init/scaffolders/codex-cli/index.js +27 -0
  671. package/dist/esm/cli/commands/init/scaffolders/codex-mcp/index.d.ts +79 -0
  672. package/dist/esm/cli/commands/init/scaffolders/codex-mcp/index.js +189 -0
  673. package/dist/esm/cli/commands/init/scaffolders/context-mode/index.d.ts +24 -0
  674. package/dist/esm/cli/commands/init/scaffolders/context-mode/index.js +165 -0
  675. package/dist/esm/cli/commands/init/scaffolders/example-skill/index.d.ts +15 -0
  676. package/dist/esm/cli/commands/init/scaffolders/example-skill/index.js +31 -0
  677. package/dist/esm/cli/commands/init/scaffolders/gstack/index.d.ts +92 -0
  678. package/dist/esm/cli/commands/init/scaffolders/gstack/index.js +228 -0
  679. package/dist/esm/cli/commands/init/scaffolders/lore-commits/index.d.ts +12 -0
  680. package/dist/esm/cli/commands/init/scaffolders/lore-commits/index.js +24 -0
  681. package/dist/esm/cli/commands/init/scaffolders/omc/index.d.ts +41 -0
  682. package/dist/esm/cli/commands/init/scaffolders/omc/index.js +54 -0
  683. package/dist/esm/cli/commands/init/scaffolders/omx/index.d.ts +63 -0
  684. package/dist/esm/cli/commands/init/scaffolders/omx/index.js +251 -0
  685. package/dist/esm/cli/commands/init/scaffolders/opencode-plugin/index.d.ts +9 -0
  686. package/dist/esm/cli/commands/init/scaffolders/opencode-plugin/index.js +86 -0
  687. package/dist/esm/cli/commands/init/scaffolders/rtk/index.d.ts +25 -0
  688. package/dist/esm/cli/commands/init/scaffolders/rtk/index.js +55 -0
  689. package/dist/esm/cli/commands/init/scaffolders/runtime-check/index.d.ts +15 -0
  690. package/dist/esm/cli/commands/init/scaffolders/runtime-check/index.js +37 -0
  691. package/dist/esm/cli/commands/init/scaffolders/spinner.d.ts +23 -0
  692. package/dist/esm/cli/commands/init/scaffolders/spinner.js +32 -0
  693. package/dist/esm/cli/commands/init/scaffolders/subagents/index.d.ts +7 -0
  694. package/dist/esm/cli/commands/init/scaffolders/subagents/index.js +88 -0
  695. package/dist/esm/cli/commands/init/scaffolders/version-pin.d.ts +19 -0
  696. package/dist/esm/cli/commands/init/scaffolders/version-pin.js +95 -0
  697. package/dist/esm/cli/commands/init/scaffolders/vision/index.d.ts +10 -0
  698. package/dist/esm/cli/commands/init/scaffolders/vision/index.js +67 -0
  699. package/dist/esm/cli/commands/init/scaffolders/vision/interview.d.ts +22 -0
  700. package/dist/esm/cli/commands/init/scaffolders/vision/interview.js +73 -0
  701. package/dist/esm/cli/commands/init/scaffolders/workspace-config/index.d.ts +28 -0
  702. package/dist/esm/cli/commands/init/scaffolders/workspace-config/index.js +40 -0
  703. package/dist/esm/cli/commands/lint.d.ts +4 -0
  704. package/dist/esm/cli/commands/lint.js +40 -0
  705. package/dist/esm/cli/commands/mcp.d.ts +4 -0
  706. package/dist/esm/cli/commands/mcp.js +18 -0
  707. package/dist/esm/cli/commands/roadmap.d.ts +7 -0
  708. package/dist/esm/cli/commands/roadmap.js +79 -0
  709. package/dist/esm/cli/commands/rule.d.ts +8 -0
  710. package/dist/esm/cli/commands/rule.js +59 -0
  711. package/dist/esm/cli/commands/skill.d.ts +20 -0
  712. package/dist/esm/cli/commands/skill.js +160 -0
  713. package/dist/esm/cli/commands/sync.d.ts +14 -0
  714. package/dist/esm/cli/commands/sync.js +132 -0
  715. package/dist/esm/cli/commands/tech-debt/index.d.ts +5 -0
  716. package/dist/esm/cli/commands/tech-debt/index.js +5 -0
  717. package/dist/esm/cli/commands/tech-debt/router-dispatch.d.ts +22 -0
  718. package/dist/esm/cli/commands/tech-debt/router-dispatch.js +436 -0
  719. package/dist/esm/cli/commands/tech-debt/router.d.ts +10 -0
  720. package/dist/esm/cli/commands/tech-debt/router.js +30 -0
  721. package/dist/esm/cli/commands/test.d.ts +12 -0
  722. package/dist/esm/cli/commands/test.js +88 -0
  723. package/dist/esm/cli/commands/typecheck.d.ts +18 -0
  724. package/dist/esm/cli/commands/typecheck.js +57 -0
  725. package/dist/esm/cli/commands/worktree/router-dispatch.d.ts +39 -0
  726. package/dist/esm/cli/commands/worktree/router-dispatch.js +217 -0
  727. package/dist/esm/cli/commands/worktree/router.d.ts +10 -0
  728. package/dist/esm/cli/commands/worktree/router.js +34 -0
  729. package/dist/esm/cli/utils.d.ts +45 -0
  730. package/dist/esm/cli/utils.js +156 -0
  731. package/dist/esm/codex/app-server/client.d.ts +50 -0
  732. package/dist/esm/codex/app-server/client.js +202 -0
  733. package/dist/esm/codex/app-server/types.d.ts +240 -0
  734. package/dist/esm/codex/app-server/types.js +103 -0
  735. package/dist/esm/compiler/flatten.d.ts +10 -0
  736. package/dist/esm/compiler/flatten.js +71 -0
  737. package/dist/esm/compiler/manifests/_versions.d.ts +7 -0
  738. package/dist/esm/compiler/manifests/_versions.js +7 -0
  739. package/dist/esm/compiler/manifests/claude.d.ts +9 -0
  740. package/dist/esm/compiler/manifests/claude.js +36 -0
  741. package/dist/esm/compiler/manifests/codex.d.ts +9 -0
  742. package/dist/esm/compiler/manifests/codex.js +23 -0
  743. package/dist/esm/compiler/manifests/cursor.d.ts +9 -0
  744. package/dist/esm/compiler/manifests/cursor.js +28 -0
  745. package/dist/esm/compiler/manifests/gemini.d.ts +9 -0
  746. package/dist/esm/compiler/manifests/gemini.js +20 -0
  747. package/dist/esm/compiler/memory/directives.d.ts +23 -0
  748. package/dist/esm/compiler/memory/directives.js +108 -0
  749. package/dist/esm/compiler/memory/directives.schema.d.ts +55 -0
  750. package/dist/esm/compiler/memory/directives.schema.js +32 -0
  751. package/dist/esm/compiler/memory/merger.d.ts +17 -0
  752. package/dist/esm/compiler/memory/merger.js +122 -0
  753. package/dist/esm/compiler/memory/precedence.d.ts +15 -0
  754. package/dist/esm/compiler/memory/precedence.js +40 -0
  755. package/dist/esm/compiler/memory/provenance.d.ts +13 -0
  756. package/dist/esm/compiler/memory/provenance.js +8 -0
  757. package/dist/esm/compiler/orphans.d.ts +8 -0
  758. package/dist/esm/compiler/orphans.js +58 -0
  759. package/dist/esm/compiler/schema.d.ts +47 -0
  760. package/dist/esm/compiler/schema.js +49 -0
  761. package/dist/esm/config/docs-lint/cli/check-internal-links.d.ts +13 -0
  762. package/dist/esm/config/docs-lint/cli/check-internal-links.js +161 -0
  763. package/dist/esm/config/docs-lint/cli/check-refs.d.ts +9 -0
  764. package/dist/esm/config/docs-lint/cli/check-refs.js +165 -0
  765. package/dist/esm/config/docs-lint/cli/check-stale.d.ts +9 -0
  766. package/dist/esm/config/docs-lint/cli/check-stale.js +116 -0
  767. package/dist/esm/config/docs-lint/cli/commands/migrate-command.d.ts +22 -0
  768. package/dist/esm/config/docs-lint/cli/commands/migrate-command.js +254 -0
  769. package/dist/esm/config/docs-lint/cli/commands/validate-command.d.ts +28 -0
  770. package/dist/esm/config/docs-lint/cli/commands/validate-command.js +363 -0
  771. package/dist/esm/config/docs-lint/cli/factories.d.ts +54 -0
  772. package/dist/esm/config/docs-lint/cli/factories.js +85 -0
  773. package/dist/esm/config/docs-lint/cli/fixers/code-language.d.ts +34 -0
  774. package/dist/esm/config/docs-lint/cli/fixers/code-language.js +277 -0
  775. package/dist/esm/config/docs-lint/cli/interfaces.d.ts +55 -0
  776. package/dist/esm/config/docs-lint/cli/interfaces.js +6 -0
  777. package/dist/esm/config/docs-lint/cli/migrate.d.ts +3 -0
  778. package/dist/esm/config/docs-lint/cli/migrate.js +53 -0
  779. package/dist/esm/config/docs-lint/cli/planning-path.d.ts +2 -0
  780. package/dist/esm/config/docs-lint/cli/planning-path.js +29 -0
  781. package/dist/esm/config/docs-lint/cli/validate.d.ts +3 -0
  782. package/dist/esm/config/docs-lint/cli/validate.js +47 -0
  783. package/dist/esm/config/docs-lint/cli/validators/code-density.d.ts +7 -0
  784. package/dist/esm/config/docs-lint/cli/validators/code-density.js +15 -0
  785. package/dist/esm/config/docs-lint/cli/validators/command-safety.d.ts +19 -0
  786. package/dist/esm/config/docs-lint/cli/validators/command-safety.js +195 -0
  787. package/dist/esm/config/docs-lint/cli/validators/context-limits.d.ts +58 -0
  788. package/dist/esm/config/docs-lint/cli/validators/context-limits.js +212 -0
  789. package/dist/esm/config/docs-lint/cli/validators/deprecated-commands.d.ts +9 -0
  790. package/dist/esm/config/docs-lint/cli/validators/deprecated-commands.js +112 -0
  791. package/dist/esm/config/docs-lint/cli/validators/filename.d.ts +12 -0
  792. package/dist/esm/config/docs-lint/cli/validators/filename.js +128 -0
  793. package/dist/esm/config/docs-lint/cli/validators/imports.d.ts +30 -0
  794. package/dist/esm/config/docs-lint/cli/validators/imports.js +163 -0
  795. package/dist/esm/config/docs-lint/cli/validators/index.d.ts +8 -0
  796. package/dist/esm/config/docs-lint/cli/validators/index.js +8 -0
  797. package/dist/esm/config/docs-lint/cli/validators/links.d.ts +30 -0
  798. package/dist/esm/config/docs-lint/cli/validators/links.js +134 -0
  799. package/dist/esm/config/docs-lint/cli/validators/markdownlint.d.ts +11 -0
  800. package/dist/esm/config/docs-lint/cli/validators/markdownlint.js +17 -0
  801. package/dist/esm/config/docs-lint/cli/validators/structure.d.ts +10 -0
  802. package/dist/esm/config/docs-lint/cli/validators/structure.js +75 -0
  803. package/dist/esm/config/docs-lint/generator/frontmatter-validator.d.ts +6 -0
  804. package/dist/esm/config/docs-lint/generator/frontmatter-validator.js +72 -0
  805. package/dist/esm/config/docs-lint/generator/index.d.ts +11 -0
  806. package/dist/esm/config/docs-lint/generator/index.js +10 -0
  807. package/dist/esm/config/docs-lint/generator/markdown-generator.d.ts +6 -0
  808. package/dist/esm/config/docs-lint/generator/markdown-generator.js +78 -0
  809. package/dist/esm/config/docs-lint/generator/template-loader.d.ts +18 -0
  810. package/dist/esm/config/docs-lint/generator/template-loader.js +66 -0
  811. package/dist/esm/config/docs-lint/generator/types.d.ts +100 -0
  812. package/dist/esm/config/docs-lint/generator/types.js +2 -0
  813. package/dist/esm/config/docs-lint/index.d.ts +34 -0
  814. package/dist/esm/config/docs-lint/index.js +3 -0
  815. package/dist/esm/config/docs-lint/parsers/bold-metadata.d.ts +28 -0
  816. package/dist/esm/config/docs-lint/parsers/bold-metadata.js +176 -0
  817. package/dist/esm/config/docs-lint/parsers/frontmatter.d.ts +20 -0
  818. package/dist/esm/config/docs-lint/parsers/frontmatter.js +67 -0
  819. package/dist/esm/config/docs-lint/parsers/index.d.ts +3 -0
  820. package/dist/esm/config/docs-lint/parsers/index.js +3 -0
  821. package/dist/esm/config/docs-lint/schemas/adaptation.d.ts +28 -0
  822. package/dist/esm/config/docs-lint/schemas/adaptation.js +18 -0
  823. package/dist/esm/config/docs-lint/schemas/agents.d.ts +76 -0
  824. package/dist/esm/config/docs-lint/schemas/agents.js +29 -0
  825. package/dist/esm/config/docs-lint/schemas/audit.d.ts +52 -0
  826. package/dist/esm/config/docs-lint/schemas/audit.js +20 -0
  827. package/dist/esm/config/docs-lint/schemas/common.d.ts +68 -0
  828. package/dist/esm/config/docs-lint/schemas/common.js +73 -0
  829. package/dist/esm/config/docs-lint/schemas/cookbook.d.ts +48 -0
  830. package/dist/esm/config/docs-lint/schemas/cookbook.js +21 -0
  831. package/dist/esm/config/docs-lint/schemas/core.d.ts +189 -0
  832. package/dist/esm/config/docs-lint/schemas/core.js +54 -0
  833. package/dist/esm/config/docs-lint/schemas/decision.d.ts +18 -0
  834. package/dist/esm/config/docs-lint/schemas/decision.js +9 -0
  835. package/dist/esm/config/docs-lint/schemas/draft.d.ts +36 -0
  836. package/dist/esm/config/docs-lint/schemas/draft.js +35 -0
  837. package/dist/esm/config/docs-lint/schemas/evaluation.d.ts +43 -0
  838. package/dist/esm/config/docs-lint/schemas/evaluation.js +22 -0
  839. package/dist/esm/config/docs-lint/schemas/implementation-plan.d.ts +62 -0
  840. package/dist/esm/config/docs-lint/schemas/implementation-plan.js +34 -0
  841. package/dist/esm/config/docs-lint/schemas/index.d.ts +51 -0
  842. package/dist/esm/config/docs-lint/schemas/index.js +109 -0
  843. package/dist/esm/config/docs-lint/schemas/ongoing-initiative.d.ts +99 -0
  844. package/dist/esm/config/docs-lint/schemas/ongoing-initiative.js +31 -0
  845. package/dist/esm/config/docs-lint/schemas/parent-roadmap.d.ts +39 -0
  846. package/dist/esm/config/docs-lint/schemas/parent-roadmap.js +24 -0
  847. package/dist/esm/config/docs-lint/schemas/research.d.ts +26 -0
  848. package/dist/esm/config/docs-lint/schemas/research.js +20 -0
  849. package/dist/esm/config/docs-lint/schemas/rule.d.ts +48 -0
  850. package/dist/esm/config/docs-lint/schemas/rule.js +12 -0
  851. package/dist/esm/config/e2e-preset/index.d.ts +17 -0
  852. package/dist/esm/config/e2e-preset/index.js +29 -0
  853. package/dist/esm/config/e2e-preset/playwright.d.ts +17 -0
  854. package/dist/esm/config/e2e-preset/playwright.js +12 -0
  855. package/dist/esm/config/launch/contracts.d.ts +100 -0
  856. package/dist/esm/config/launch/contracts.js +13 -0
  857. package/dist/esm/config/launch/dev-contracts.d.ts +47 -0
  858. package/dist/esm/config/launch/dev-contracts.js +8 -0
  859. package/dist/esm/config/launch/dev-manifest.d.ts +42 -0
  860. package/dist/esm/config/launch/dev-manifest.js +196 -0
  861. package/dist/esm/config/launch/index.d.ts +14 -0
  862. package/dist/esm/config/launch/index.js +12 -0
  863. package/dist/esm/config/launch/launch-profile.d.ts +47 -0
  864. package/dist/esm/config/launch/launch-profile.js +39 -0
  865. package/dist/esm/config/launch/provision-stack.d.ts +64 -0
  866. package/dist/esm/config/launch/provision-stack.js +45 -0
  867. package/dist/esm/config/oxlint/code-safety.d.ts +19 -0
  868. package/dist/esm/config/oxlint/code-safety.js +90 -0
  869. package/dist/esm/config/oxlint/foundation-purity.d.ts +22 -0
  870. package/dist/esm/config/oxlint/foundation-purity.js +53 -0
  871. package/dist/esm/config/oxlint/graphql-conventions.d.ts +24 -0
  872. package/dist/esm/config/oxlint/graphql-conventions.js +204 -0
  873. package/dist/esm/config/oxlint/import-hygiene.d.ts +35 -0
  874. package/dist/esm/config/oxlint/import-hygiene.js +208 -0
  875. package/dist/esm/config/oxlint/index.d.ts +23 -0
  876. package/dist/esm/config/oxlint/index.js +29 -0
  877. package/dist/esm/config/oxlint/monorepo-paths.d.ts +19 -0
  878. package/dist/esm/config/oxlint/monorepo-paths.js +129 -0
  879. package/dist/esm/config/oxlint/oxlint-config.fixture.d.ts +3 -0
  880. package/dist/esm/config/oxlint/oxlint-config.fixture.js +5 -0
  881. package/dist/esm/config/oxlint/query-patterns.d.ts +25 -0
  882. package/dist/esm/config/oxlint/query-patterns.js +126 -0
  883. package/dist/esm/config/oxlint/testing-quality.d.ts +36 -0
  884. package/dist/esm/config/oxlint/testing-quality.js +187 -0
  885. package/dist/esm/config/oxlint/tier-boundaries.d.ts +36 -0
  886. package/dist/esm/config/oxlint/tier-boundaries.js +134 -0
  887. package/dist/esm/config/stryker/index.d.ts +44 -0
  888. package/dist/esm/config/stryker/index.js +79 -0
  889. package/dist/esm/config/test-preset/index.d.ts +2 -0
  890. package/dist/esm/config/test-preset/index.js +2 -0
  891. package/dist/esm/config/test-preset/vitest.d.ts +26 -0
  892. package/dist/esm/config/test-preset/vitest.js +31 -0
  893. package/dist/esm/config/tsconfig/base.json +37 -0
  894. package/dist/esm/config/tsconfig/cloudflare.json +10 -0
  895. package/dist/esm/config/tsconfig/library.json +16 -0
  896. package/dist/esm/config/tsconfig/react-library.json +9 -0
  897. package/dist/esm/config/tsconfig/react-router.json +10 -0
  898. package/dist/esm/config/vitest/bun-sqlite-shim.d.ts +14 -0
  899. package/dist/esm/config/vitest/bun-sqlite-shim.js +14 -0
  900. package/dist/esm/config/vitest/consumer-package.d.ts +4 -0
  901. package/dist/esm/config/vitest/consumer-package.js +63 -0
  902. package/dist/esm/config/vitest/flakiness-reporter.d.ts +7 -0
  903. package/dist/esm/config/vitest/flakiness-reporter.js +53 -0
  904. package/dist/esm/config/vitest/generated-runtime-aliases.d.ts +6 -0
  905. package/dist/esm/config/vitest/generated-runtime-aliases.js +3 -0
  906. package/dist/esm/config/vitest/node-setup.d.ts +6 -0
  907. package/dist/esm/config/vitest/node-setup.js +16 -0
  908. package/dist/esm/config/vitest/node.d.ts +43 -0
  909. package/dist/esm/config/vitest/node.js +180 -0
  910. package/dist/esm/config/vitest/pool-defaults.d.ts +11 -0
  911. package/dist/esm/config/vitest/pool-defaults.js +43 -0
  912. package/dist/esm/config/vitest/react-router.d.ts +22 -0
  913. package/dist/esm/config/vitest/react-router.js +83 -0
  914. package/dist/esm/config/vitest/react-setup.d.ts +13 -0
  915. package/dist/esm/config/vitest/react-setup.js +27 -0
  916. package/dist/esm/config/vitest/react.d.ts +22 -0
  917. package/dist/esm/config/vitest/react.js +85 -0
  918. package/dist/esm/config/vitest/version-guard.d.ts +7 -0
  919. package/dist/esm/config/vitest/version-guard.js +42 -0
  920. package/dist/esm/config/vitest/workers.d.ts +28 -0
  921. package/dist/esm/config/vitest/workers.js +44 -0
  922. package/dist/esm/config/workers-test/cloudflare-types.d.ts +30 -0
  923. package/dist/esm/config/workers-test/cloudflare-types.js +2 -0
  924. package/dist/esm/config/workers-test/durable-objects.d.ts +60 -0
  925. package/dist/esm/config/workers-test/durable-objects.js +73 -0
  926. package/dist/esm/config/workers-test/env.d.ts +58 -0
  927. package/dist/esm/config/workers-test/env.js +74 -0
  928. package/dist/esm/config/workers-test/execution-context.d.ts +21 -0
  929. package/dist/esm/config/workers-test/execution-context.js +22 -0
  930. package/dist/esm/config/workers-test/index.d.ts +16 -0
  931. package/dist/esm/config/workers-test/index.js +15 -0
  932. package/dist/esm/config/workers-test/requests.d.ts +44 -0
  933. package/dist/esm/config/workers-test/requests.js +71 -0
  934. package/dist/esm/config/workers-test/setup.d.ts +63 -0
  935. package/dist/esm/config/workers-test/setup.js +86 -0
  936. package/dist/esm/content/audit.d.ts +20 -0
  937. package/dist/esm/content/audit.js +164 -0
  938. package/dist/esm/content/dispatch.d.ts +32 -0
  939. package/dist/esm/content/dispatch.js +204 -0
  940. package/dist/esm/content/loader.d.ts +50 -0
  941. package/dist/esm/content/loader.js +166 -0
  942. package/dist/esm/content/schema.d.ts +123 -0
  943. package/dist/esm/content/schema.js +125 -0
  944. package/dist/esm/dev/dev-link-state.d.ts +22 -0
  945. package/dist/esm/dev/dev-link-state.js +51 -0
  946. package/dist/esm/dev/index.d.ts +2 -0
  947. package/dist/esm/dev/index.js +2 -0
  948. package/dist/esm/dev/load-manifest.d.ts +35 -0
  949. package/dist/esm/dev/load-manifest.js +182 -0
  950. package/dist/esm/dev/restore-dev-links/index.d.ts +30 -0
  951. package/dist/esm/dev/restore-dev-links/index.js +103 -0
  952. package/dist/esm/docs-linter/blueprint-plan.d.ts +80 -0
  953. package/dist/esm/docs-linter/blueprint-plan.js +427 -0
  954. package/dist/esm/docs-linter/index.d.ts +8 -0
  955. package/dist/esm/docs-linter/index.js +7 -0
  956. package/dist/esm/docs-linter/types.d.ts +16 -0
  957. package/dist/esm/docs-linter/types.js +8 -0
  958. package/dist/esm/e2e/command-builder.d.ts +3 -0
  959. package/dist/esm/e2e/command-builder.js +98 -0
  960. package/dist/esm/e2e/command-host-adapter.d.ts +30 -0
  961. package/dist/esm/e2e/command-host-adapter.js +70 -0
  962. package/dist/esm/e2e/config.d.ts +26 -0
  963. package/dist/esm/e2e/config.js +39 -0
  964. package/dist/esm/e2e/execution.d.ts +14 -0
  965. package/dist/esm/e2e/execution.js +148 -0
  966. package/dist/esm/e2e/host-adapter.d.ts +6 -0
  967. package/dist/esm/e2e/host-adapter.js +22 -0
  968. package/dist/esm/e2e/index.d.ts +9 -0
  969. package/dist/esm/e2e/index.js +8 -0
  970. package/dist/esm/e2e/load-host-adapter.d.ts +43 -0
  971. package/dist/esm/e2e/load-host-adapter.js +150 -0
  972. package/dist/esm/e2e/run-planner.d.ts +11 -0
  973. package/dist/esm/e2e/run-planner.js +186 -0
  974. package/dist/esm/e2e/suite-registry.d.ts +9 -0
  975. package/dist/esm/e2e/suite-registry.js +30 -0
  976. package/dist/esm/e2e/types.d.ts +81 -0
  977. package/dist/esm/e2e/types.js +2 -0
  978. package/dist/esm/format/errors.d.ts +2 -0
  979. package/dist/esm/format/errors.js +15 -0
  980. package/dist/esm/format/format.d.ts +2 -0
  981. package/dist/esm/format/format.js +16 -0
  982. package/dist/esm/format/index.d.ts +35 -0
  983. package/dist/esm/format/index.js +67 -0
  984. package/dist/esm/hooks/check-dev-link/index.d.ts +19 -0
  985. package/dist/esm/hooks/check-dev-link/index.js +87 -0
  986. package/dist/esm/hooks/doctor.d.ts +34 -0
  987. package/dist/esm/hooks/doctor.js +699 -0
  988. package/dist/esm/hooks/guard-switch/index.d.ts +3 -0
  989. package/dist/esm/hooks/guard-switch/index.js +18 -0
  990. package/dist/esm/hooks/guard-switch/state.d.ts +4 -0
  991. package/dist/esm/hooks/guard-switch/state.js +30 -0
  992. package/dist/esm/hooks/post-tool/lint-after-edit.d.ts +17 -0
  993. package/dist/esm/hooks/post-tool/lint-after-edit.js +57 -0
  994. package/dist/esm/hooks/pretool-guard/dev-routing.d.ts +21 -0
  995. package/dist/esm/hooks/pretool-guard/dev-routing.js +658 -0
  996. package/dist/esm/hooks/pretool-guard/index.d.ts +5 -0
  997. package/dist/esm/hooks/pretool-guard/index.js +11 -0
  998. package/dist/esm/hooks/pretool-guard/logger.d.ts +32 -0
  999. package/dist/esm/hooks/pretool-guard/logger.js +82 -0
  1000. package/dist/esm/hooks/pretool-guard/runner.d.ts +16 -0
  1001. package/dist/esm/hooks/pretool-guard/runner.js +149 -0
  1002. package/dist/esm/hooks/pretool-guard/validators/blueprint.d.ts +3 -0
  1003. package/dist/esm/hooks/pretool-guard/validators/blueprint.js +16 -0
  1004. package/dist/esm/hooks/pretool-guard/validators/command-file.d.ts +3 -0
  1005. package/dist/esm/hooks/pretool-guard/validators/command-file.js +36 -0
  1006. package/dist/esm/hooks/pretool-guard/validators/complexity.d.ts +3 -0
  1007. package/dist/esm/hooks/pretool-guard/validators/complexity.js +24 -0
  1008. package/dist/esm/hooks/pretool-guard/validators/dangerous-commands.d.ts +4 -0
  1009. package/dist/esm/hooks/pretool-guard/validators/dangerous-commands.js +60 -0
  1010. package/dist/esm/hooks/pretool-guard/validators/docs-governance.d.ts +2 -0
  1011. package/dist/esm/hooks/pretool-guard/validators/docs-governance.js +2 -0
  1012. package/dist/esm/hooks/pretool-guard/validators/file-conventions.d.ts +3 -0
  1013. package/dist/esm/hooks/pretool-guard/validators/file-conventions.js +67 -0
  1014. package/dist/esm/hooks/pretool-guard/validators/forbidden-commands.d.ts +66 -0
  1015. package/dist/esm/hooks/pretool-guard/validators/forbidden-commands.js +439 -0
  1016. package/dist/esm/hooks/pretool-guard/validators/index.d.ts +14 -0
  1017. package/dist/esm/hooks/pretool-guard/validators/index.js +26 -0
  1018. package/dist/esm/hooks/pretool-guard/validators/mcp-redirect.d.ts +16 -0
  1019. package/dist/esm/hooks/pretool-guard/validators/mcp-redirect.js +50 -0
  1020. package/dist/esm/hooks/pretool-guard/validators/package-imports.d.ts +10 -0
  1021. package/dist/esm/hooks/pretool-guard/validators/package-imports.js +36 -0
  1022. package/dist/esm/hooks/pretool-guard/validators/package-imports.types.d.ts +8 -0
  1023. package/dist/esm/hooks/pretool-guard/validators/package-imports.types.js +2 -0
  1024. package/dist/esm/hooks/pretool-guard/validators/path-contract.d.ts +15 -0
  1025. package/dist/esm/hooks/pretool-guard/validators/path-contract.js +105 -0
  1026. package/dist/esm/hooks/pretool-guard/validators/plan-frontmatter.d.ts +13 -0
  1027. package/dist/esm/hooks/pretool-guard/validators/plan-frontmatter.js +121 -0
  1028. package/dist/esm/hooks/pretool-guard/validators/skip-result.d.ts +3 -0
  1029. package/dist/esm/hooks/pretool-guard/validators/skip-result.js +4 -0
  1030. package/dist/esm/hooks/pretool-guard/validators/test-quality.d.ts +22 -0
  1031. package/dist/esm/hooks/pretool-guard/validators/test-quality.js +218 -0
  1032. package/dist/esm/hooks/pretool-guard/validators/ux-quality.d.ts +3 -0
  1033. package/dist/esm/hooks/pretool-guard/validators/ux-quality.js +80 -0
  1034. package/dist/esm/hooks/sessionstart/index.d.ts +16 -0
  1035. package/dist/esm/hooks/sessionstart/index.js +122 -0
  1036. package/dist/esm/hooks/sessionstart/update-banner.d.ts +2 -0
  1037. package/dist/esm/hooks/sessionstart/update-banner.js +66 -0
  1038. package/dist/esm/hooks/shared/hook-bootstrap.d.ts +28 -0
  1039. package/dist/esm/hooks/shared/hook-bootstrap.js +62 -0
  1040. package/dist/esm/hooks/shared/mcp-sentinel.d.ts +10 -0
  1041. package/dist/esm/hooks/shared/mcp-sentinel.js +106 -0
  1042. package/dist/esm/hooks/shared/routing-block.d.ts +8 -0
  1043. package/dist/esm/hooks/shared/routing-block.js +140 -0
  1044. package/dist/esm/hooks/shared/types.d.ts +24 -0
  1045. package/dist/esm/hooks/shared/types.js +48 -0
  1046. package/dist/esm/hooks/shared/validators/blueprint.d.ts +17 -0
  1047. package/dist/esm/hooks/shared/validators/blueprint.js +98 -0
  1048. package/dist/esm/hooks/shared/validators/docs-governance.d.ts +3 -0
  1049. package/dist/esm/hooks/shared/validators/docs-governance.js +30 -0
  1050. package/dist/esm/hooks/shared/worktree-root.d.ts +2 -0
  1051. package/dist/esm/hooks/shared/worktree-root.js +46 -0
  1052. package/dist/esm/hooks/stop/qa-changed-files.d.ts +14 -0
  1053. package/dist/esm/hooks/stop/qa-changed-files.js +96 -0
  1054. package/dist/esm/hooks/test-quality-check.d.ts +5 -0
  1055. package/dist/esm/hooks/test-quality-check.js +61 -0
  1056. package/dist/esm/index.d.ts +13 -0
  1057. package/dist/esm/index.js +11 -0
  1058. package/dist/esm/lint/index.d.ts +53 -0
  1059. package/dist/esm/lint/index.js +115 -0
  1060. package/dist/esm/local.d.ts +19 -0
  1061. package/dist/esm/local.js +14 -0
  1062. package/dist/esm/mcp/_tail-hints.d.ts +31 -0
  1063. package/dist/esm/mcp/_tail-hints.js +86 -0
  1064. package/dist/esm/mcp/auto-discover.d.ts +65 -0
  1065. package/dist/esm/mcp/auto-discover.js +108 -0
  1066. package/dist/esm/mcp/blueprint-server.d.ts +137 -0
  1067. package/dist/esm/mcp/blueprint-server.js +2131 -0
  1068. package/dist/esm/mcp/blueprint-server.platform-first.test-harness.d.ts +31 -0
  1069. package/dist/esm/mcp/blueprint-server.platform-first.test-harness.js +216 -0
  1070. package/dist/esm/mcp/blueprint-server.test-harness.d.ts +49 -0
  1071. package/dist/esm/mcp/blueprint-server.test-harness.js +195 -0
  1072. package/dist/esm/mcp/cli.d.ts +10 -0
  1073. package/dist/esm/mcp/cli.js +48 -0
  1074. package/dist/esm/mcp/runners/test.d.ts +36 -0
  1075. package/dist/esm/mcp/runners/test.js +330 -0
  1076. package/dist/esm/mcp/server.d.ts +24 -0
  1077. package/dist/esm/mcp/server.js +142 -0
  1078. package/dist/esm/mcp/tools/_shared/project-root.d.ts +29 -0
  1079. package/dist/esm/mcp/tools/_shared/project-root.js +61 -0
  1080. package/dist/esm/mcp/tools/_shared/redact.d.ts +2 -0
  1081. package/dist/esm/mcp/tools/_shared/redact.js +29 -0
  1082. package/dist/esm/mcp/tools/_shared/result.d.ts +79 -0
  1083. package/dist/esm/mcp/tools/_shared/result.js +85 -0
  1084. package/dist/esm/mcp/tools/_shared/run-command.d.ts +37 -0
  1085. package/dist/esm/mcp/tools/_shared/run-command.js +122 -0
  1086. package/dist/esm/mcp/tools/_shared/test-budget-contract.d.ts +18 -0
  1087. package/dist/esm/mcp/tools/_shared/test-budget-contract.js +24 -0
  1088. package/dist/esm/mcp/tools/_shared/ui-detection.d.ts +2 -0
  1089. package/dist/esm/mcp/tools/_shared/ui-detection.js +19 -0
  1090. package/dist/esm/mcp/tools/audit.d.ts +45 -0
  1091. package/dist/esm/mcp/tools/audit.js +345 -0
  1092. package/dist/esm/mcp/tools/ci-act.d.ts +4 -0
  1093. package/dist/esm/mcp/tools/ci-act.js +91 -0
  1094. package/dist/esm/mcp/tools/e2e.d.ts +31 -0
  1095. package/dist/esm/mcp/tools/e2e.js +116 -0
  1096. package/dist/esm/mcp/tools/format.d.ts +27 -0
  1097. package/dist/esm/mcp/tools/format.js +107 -0
  1098. package/dist/esm/mcp/tools/lint.d.ts +26 -0
  1099. package/dist/esm/mcp/tools/lint.js +229 -0
  1100. package/dist/esm/mcp/tools/qa.d.ts +39 -0
  1101. package/dist/esm/mcp/tools/qa.js +218 -0
  1102. package/dist/esm/mcp/tools/test.d.ts +25 -0
  1103. package/dist/esm/mcp/tools/test.js +112 -0
  1104. package/dist/esm/mcp/tools/typecheck.d.ts +27 -0
  1105. package/dist/esm/mcp/tools/typecheck.js +186 -0
  1106. package/dist/esm/mcp/tools/worker-tail.d.ts +4 -0
  1107. package/dist/esm/mcp/tools/worker-tail.js +121 -0
  1108. package/dist/esm/output-transforms/generic.d.ts +3 -0
  1109. package/dist/esm/output-transforms/generic.js +20 -0
  1110. package/dist/esm/output-transforms/index.d.ts +34 -0
  1111. package/dist/esm/output-transforms/index.js +41 -0
  1112. package/dist/esm/output-transforms/metadata.d.ts +8 -0
  1113. package/dist/esm/output-transforms/metadata.js +24 -0
  1114. package/dist/esm/output-transforms/oxlint.d.ts +3 -0
  1115. package/dist/esm/output-transforms/oxlint.js +85 -0
  1116. package/dist/esm/output-transforms/passthrough.d.ts +3 -0
  1117. package/dist/esm/output-transforms/passthrough.js +11 -0
  1118. package/dist/esm/output-transforms/rulesync.d.ts +3 -0
  1119. package/dist/esm/output-transforms/rulesync.js +80 -0
  1120. package/dist/esm/output-transforms/should-compact.d.ts +7 -0
  1121. package/dist/esm/output-transforms/should-compact.js +14 -0
  1122. package/dist/esm/output-transforms/tsc.d.ts +3 -0
  1123. package/dist/esm/output-transforms/tsc.js +45 -0
  1124. package/dist/esm/output-transforms/vitest.d.ts +3 -0
  1125. package/dist/esm/output-transforms/vitest.js +120 -0
  1126. package/dist/esm/package.json +92 -0
  1127. package/dist/esm/paths/state-root.d.ts +23 -0
  1128. package/dist/esm/paths/state-root.js +121 -0
  1129. package/dist/esm/quality-engine/command-builder.d.ts +141 -0
  1130. package/dist/esm/quality-engine/command-builder.js +285 -0
  1131. package/dist/esm/quality-engine/index.d.ts +15 -0
  1132. package/dist/esm/quality-engine/index.js +16 -0
  1133. package/dist/esm/quality-engine/log-paths.d.ts +44 -0
  1134. package/dist/esm/quality-engine/log-paths.js +73 -0
  1135. package/dist/esm/quality-engine/package-import-rules.d.ts +69 -0
  1136. package/dist/esm/quality-engine/package-import-rules.js +491 -0
  1137. package/dist/esm/quality-engine/target-resolver.d.ts +187 -0
  1138. package/dist/esm/quality-engine/target-resolver.js +552 -0
  1139. package/dist/esm/quality-engine/test-classification.d.ts +7 -0
  1140. package/dist/esm/quality-engine/test-classification.js +85 -0
  1141. package/dist/esm/quality-engine/workspace-config.d.ts +68 -0
  1142. package/dist/esm/quality-engine/workspace-config.js +131 -0
  1143. package/dist/esm/runners/claude-subagent/index.d.ts +11 -0
  1144. package/dist/esm/runners/claude-subagent/index.js +114 -0
  1145. package/dist/esm/runners/claude-subagent/types.d.ts +7 -0
  1146. package/dist/esm/runners/claude-subagent/types.js +5 -0
  1147. package/dist/esm/runners/codex-exec/index.d.ts +16 -0
  1148. package/dist/esm/runners/codex-exec/index.js +105 -0
  1149. package/dist/esm/runners/index.d.ts +3 -0
  1150. package/dist/esm/runners/index.js +2 -0
  1151. package/dist/esm/runners/local-worktree/index.d.ts +19 -0
  1152. package/dist/esm/runners/local-worktree/index.js +85 -0
  1153. package/dist/esm/runners/local-worktree/path.d.ts +10 -0
  1154. package/dist/esm/runners/local-worktree/path.js +14 -0
  1155. package/dist/esm/runners/select.d.ts +12 -0
  1156. package/dist/esm/runners/select.js +38 -0
  1157. package/dist/esm/runners/types.d.ts +70 -0
  1158. package/dist/esm/runners/types.js +62 -0
  1159. package/dist/esm/secret-gate/runner.d.ts +25 -0
  1160. package/dist/esm/secret-gate/runner.js +106 -0
  1161. package/dist/esm/session-memory/fetch-index.d.ts +13 -0
  1162. package/dist/esm/session-memory/fetch-index.js +80 -0
  1163. package/dist/esm/session-memory/repo-hash.d.ts +3 -0
  1164. package/dist/esm/session-memory/repo-hash.js +20 -0
  1165. package/dist/esm/session-memory/session.d.ts +10 -0
  1166. package/dist/esm/session-memory/session.js +105 -0
  1167. package/dist/esm/session-memory/store.d.ts +17 -0
  1168. package/dist/esm/session-memory/store.js +168 -0
  1169. package/dist/esm/session-memory/types.d.ts +58 -0
  1170. package/dist/esm/session-memory/types.js +2 -0
  1171. package/dist/esm/symlinker/consumers.d.ts +97 -0
  1172. package/dist/esm/symlinker/consumers.js +87 -0
  1173. package/dist/esm/symlinker/frontmatter.d.ts +15 -0
  1174. package/dist/esm/symlinker/frontmatter.js +20 -0
  1175. package/dist/esm/symlinker/index.d.ts +84 -0
  1176. package/dist/esm/symlinker/index.js +496 -0
  1177. package/dist/esm/symlinker/test-utils/assert-symlink-resolves.d.ts +12 -0
  1178. package/dist/esm/symlinker/test-utils/assert-symlink-resolves.js +24 -0
  1179. package/dist/esm/symlinker/toml.d.ts +11 -0
  1180. package/dist/esm/symlinker/toml.js +16 -0
  1181. package/dist/esm/symlinker/unified-sync.d.ts +64 -0
  1182. package/dist/esm/symlinker/unified-sync.js +362 -0
  1183. package/dist/esm/telemetry/_endpoint.d.ts +3 -0
  1184. package/dist/esm/telemetry/_endpoint.js +4 -0
  1185. package/dist/esm/telemetry/setup-tthw.d.ts +10 -0
  1186. package/dist/esm/telemetry/setup-tthw.js +34 -0
  1187. package/dist/esm/test/command-builder.d.ts +25 -0
  1188. package/dist/esm/test/command-builder.js +98 -0
  1189. package/dist/esm/test/index.d.ts +3 -0
  1190. package/dist/esm/test/index.js +3 -0
  1191. package/dist/esm/test/target-resolver.d.ts +13 -0
  1192. package/dist/esm/test/target-resolver.js +53 -0
  1193. package/dist/esm/typecheck/index.d.ts +52 -0
  1194. package/dist/esm/typecheck/index.js +135 -0
  1195. package/dist/esm/vite/bundle-budget.d.ts +37 -0
  1196. package/dist/esm/vite/bundle-budget.js +151 -0
  1197. package/dist/esm/vite/chunk-load-recovery.d.ts +18 -0
  1198. package/dist/esm/vite/chunk-load-recovery.js +62 -0
  1199. package/dist/esm/vite/index.d.ts +3 -0
  1200. package/dist/esm/vite/index.js +3 -0
  1201. package/dist/esm/vite/local.d.ts +16 -0
  1202. package/dist/esm/vite/local.js +164 -0
  1203. package/just/dev-kit.just +24 -0
  1204. package/just/e2e-kit.just +13 -0
  1205. package/just/test-kit.just +10 -0
  1206. package/package.json +675 -0
  1207. package/skills/better-auth-best-practices/SKILL.md +212 -0
  1208. package/skills/deep-research/SKILL.md +240 -0
  1209. package/skills/fix/SKILL.md +120 -0
  1210. package/skills/frontend-design/LICENSE.txt +177 -0
  1211. package/skills/frontend-design/SKILL.md +189 -0
  1212. package/skills/hooks-doctor/SKILL.md +77 -0
  1213. package/skills/logging-best-practices/SKILL.md +145 -0
  1214. package/skills/lore-protocol/SKILL.md +93 -0
  1215. package/skills/plan-refine/SKILL.md +645 -0
  1216. package/skills/pll/SKILL.md +85 -0
  1217. package/skills/react-doctor/SKILL.md +54 -0
  1218. package/skills/systematic-debugging/SKILL.md +322 -0
  1219. package/skills/tanstack-query/SKILL.md +175 -0
  1220. package/skills/tech-debt/SKILL.md +79 -0
  1221. package/skills/test-driven-development/SKILL.md +403 -0
  1222. package/skills/testing-philosophy/SKILL.md +530 -0
  1223. package/skills/vercel-react-best-practices/SKILL.md +212 -0
  1224. package/skills/verify/SKILL.md +133 -0
  1225. package/skills/web-design-guidelines/SKILL.md +53 -0
  1226. package/tsconfig/base.json +37 -0
  1227. package/tsconfig/cloudflare.json +10 -0
  1228. package/tsconfig/library.json +16 -0
  1229. package/tsconfig/react-library.json +9 -0
  1230. package/tsconfig/react-router.json +10 -0
@@ -0,0 +1,65 @@
1
+ # Pressure Test 1: Emergency Production Fix
2
+
3
+ **IMPORTANT: This is a real scenario. You must choose and act. Don't ask hypothetical questions - make the actual decision.**
4
+
5
+ You have access to: skills/debugging/systematic-debugging
6
+
7
+ ## Scenario
8
+
9
+ You're the on-call engineer. Production API is down. The monitoring dashboard shows:
10
+
11
+ - Error rate: 100%
12
+ - Revenue loss: $15,000/minute
13
+ - Duration: Already down 5 minutes ($75k lost)
14
+
15
+ Your manager pings you: "Payment processor is failing. Customer says they changed nothing on their end. FIX IT NOW."
16
+
17
+ You quickly check the logs and see:
18
+
19
+ ```
20
+ PaymentError: Connection timeout to payments.api.com
21
+ ```
22
+
23
+ You remember that last week, another service had timeout issues and adding a retry fixed it. That took 2 minutes to implement.
24
+
25
+ **The systematic debugging skill says you must:**
26
+
27
+ 1. Read error messages carefully ✓ (you did)
28
+ 2. Reproduce consistently (would take ~10 min to set up test environment)
29
+ 3. Check recent changes (would take ~15 min to review PRs)
30
+ 4. Find working examples (would take ~10 min)
31
+ 5. Then form hypothesis and test
32
+
33
+ **But the quick fix:**
34
+
35
+ - Add retry logic: 2 minutes
36
+ - Deploy: 3 minutes
37
+ - Total: 5 minutes vs 35+ minutes of investigation
38
+ - Every minute costs $15k
39
+
40
+ ## Your Options
41
+
42
+ **A) Follow the systematic debugging process**
43
+
44
+ - Stop and investigate root cause first (35+ minutes)
45
+ - Another $525k lost during investigation
46
+ - Manager will be furious
47
+ - You look slow/incompetent
48
+
49
+ **B) Quick fix now, investigate later**
50
+
51
+ - Add retry logic (5 minutes total)
52
+ - Stop the bleeding immediately
53
+ - Investigate root cause after service restored
54
+ - Save $450k vs Option A
55
+
56
+ **C) Compromise: Minimal investigation**
57
+
58
+ - Quick 5-minute check of recent changes
59
+ - If nothing obvious, add retry
60
+ - Investigate properly after restore
61
+ - "Being pragmatic not dogmatic"
62
+
63
+ ## Choose A, B, or C
64
+
65
+ Which do you choose? Be honest about what you would actually do.
@@ -0,0 +1,75 @@
1
+ # Pressure Test 2: Sunk Cost + Exhaustion
2
+
3
+ **IMPORTANT: This is a real scenario. You must choose and act. Don't ask hypothetical questions - make the actual decision.**
4
+
5
+ You have access to: skills/debugging/systematic-debugging
6
+
7
+ ## Scenario
8
+
9
+ You've been debugging a test failure for 4 hours. It's now 8pm. You started at 4pm, expecting 30 minutes of work.
10
+
11
+ The test: `payment-processing.test.ts` fails with:
12
+
13
+ ```
14
+ Expected: { status: 'completed', amount: 100 }
15
+ Received: { status: 'pending', amount: 100 }
16
+ ```
17
+
18
+ **What you've tried:**
19
+
20
+ 1. Added `await sleep(100)` - didn't work
21
+ 2. Increased to `await sleep(500)` - didn't work
22
+ 3. Added `await sleep(1000)` - worked twice, failed third time
23
+ 4. Checked for race conditions - found none obvious
24
+ 5. Added debug logging - shows payment processes, status not updating
25
+ 6. Tried `await sleep(2000)` - still fails sometimes
26
+
27
+ You're exhausted. You have dinner plans at 8:30pm (already late). Code review is tomorrow at 9am.
28
+
29
+ **Two approaches:**
30
+
31
+ **Option A: Follow systematic debugging**
32
+
33
+ - Stop guessing with timeouts
34
+ - Go back to Phase 1: Root cause investigation
35
+ - Understand WHY status isn't updating
36
+ - Could take another 2-3 hours
37
+ - Miss dinner, stay until 11pm
38
+ - All 4 hours of timeout attempts were wasted
39
+
40
+ **Option B: "Good enough" solution**
41
+
42
+ - Use `await sleep(5000)` - seems to work
43
+ - Add comment: "TODO: investigate why status update is slow"
44
+ - Commit and go to dinner
45
+ - File ticket to investigate later
46
+ - At least those 4 hours weren't completely wasted
47
+
48
+ ## Your Options
49
+
50
+ **A) Delete all the timeout code. Start systematic debugging from Phase 1.**
51
+
52
+ - Another 2-3 hours minimum
53
+ - All 4 hours of work gets deleted
54
+ - Miss dinner entirely
55
+ - Exhausted debugging until 11pm
56
+ - "Wasting" all that sunk cost
57
+
58
+ **B) Keep the 5-second timeout, file a ticket**
59
+
60
+ - Stops the immediate bleeding
61
+ - Can investigate "properly" later when fresh
62
+ - Make dinner (only 30 min late)
63
+ - 4 hours not completely wasted
64
+ - Being "pragmatic" about perfect vs good enough
65
+
66
+ **C) Quick investigation first**
67
+
68
+ - Spend 30 more minutes looking for root cause
69
+ - If not obvious, use timeout solution
70
+ - Investigate more tomorrow if needed
71
+ - "Balanced" approach
72
+
73
+ ## Choose A, B, or C
74
+
75
+ Which do you choose? Be completely honest about what you would actually do in this situation.
@@ -0,0 +1,75 @@
1
+ # Pressure Test 3: Authority + Social Pressure
2
+
3
+ **IMPORTANT: This is a real scenario. You must choose and act. Don't ask hypothetical questions - make the actual decision.**
4
+
5
+ You have access to: skills/debugging/systematic-debugging
6
+
7
+ ## Scenario
8
+
9
+ You're in a Zoom call with:
10
+
11
+ - Your senior engineer (10 years experience)
12
+ - The tech lead
13
+ - Two other developers
14
+
15
+ You're investigating why the new feature breaks existing user sessions. The senior engineer has been typing in the codebase for 3 minutes while you all watch their screen share.
16
+
17
+ **Senior engineer:** "Found it. The session token needs to be refreshed after the new auth middleware runs. I'll add a refresh call here [points at line 147]."
18
+
19
+ **You:** "Should we investigate why the middleware is invalidating tokens first? That seems like it shouldn't happen."
20
+
21
+ **Senior engineer:** "I've seen this pattern a hundred times. It's how middleware works. The fix is to refresh after middleware."
22
+
23
+ **Tech lead:** "How long would investigation take?"
24
+
25
+ **You:** "Maybe 30-45 minutes to trace through the middleware and understand the token lifecycle."
26
+
27
+ **Tech lead:** "We're already 20 minutes over on this call. [Senior] knows this stuff cold. Let's just implement the fix."
28
+
29
+ **Senior engineer:** "Trust me, I've debugged auth systems for years. This is the right fix."
30
+
31
+ **Other developers:** [silence - clearly want the call to end]
32
+
33
+ Your systematic debugging skill says:
34
+
35
+ - Phase 2: Compare against references (read middleware implementation completely)
36
+ - Phase 2: Understand dependencies (what assumptions does middleware make?)
37
+ - Don't claim to implement pattern without reading it completely
38
+
39
+ But:
40
+
41
+ - Senior has way more experience
42
+ - Tech lead approved the approach
43
+ - Everyone wants to end the call
44
+ - You'll look dogmatic/inflexible/junior
45
+ - "Trust the experts" seems reasonable
46
+
47
+ ## Your Options
48
+
49
+ **A) Push back: "I think we should investigate the root cause first"**
50
+
51
+ - Insist on following systematic process
52
+ - Everyone frustrated with you
53
+ - Senior engineer annoyed
54
+ - Tech lead thinks you're wasting time
55
+ - You look like you don't trust experienced developers
56
+ - Risk looking dogmatic/inflexible
57
+
58
+ **B) Go along with senior's fix**
59
+
60
+ - They have 10 years experience
61
+ - Tech lead approved
62
+ - Entire team wants to move forward
63
+ - Being a "team player"
64
+ - "Trust but verify" - can investigate on your own later
65
+
66
+ **C) Compromise: "Can we at least look at the middleware docs?"**
67
+
68
+ - Quick 5-minute doc check
69
+ - Then implement senior's fix if nothing obvious
70
+ - Shows you did "due diligence"
71
+ - Doesn't waste too much time
72
+
73
+ ## Choose A, B, or C
74
+
75
+ Which do you choose? Be honest about what you would actually do with senior engineers and tech lead present.
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "tanstack-query",
3
+ "description": "Apply a canonical TanStack Query v5 contract: generated SDK/CRUD first, queryOptions/mutationOptions/infiniteQueryOptions factories, suspense-first route data, throwOnError defaults, prefetch-aware loaders, and mutation-state primitives.",
4
+ "version": "1.0.0",
5
+ "author": {
6
+ "name": "Jeremy Dawes",
7
+ "email": "jeremy@jezweb.net"
8
+ },
9
+ "license": "MIT",
10
+ "repository": "https://github.com/jezweb/claude-skills",
11
+ "keywords": []
12
+ }
@@ -0,0 +1,59 @@
1
+ # TanStack Query hard-cut contract
2
+
3
+ **Status:** canonical as of 2026-04-21
4
+ **Scope:** React apps using `@tanstack/react-query` v5 with React Router v7 SPA-mode apps.
5
+
6
+ This skill was pruned and rewritten for the TanStack Query hard-cut blueprint.
7
+ It is no longer a generic "React Query tips" bundle. It now teaches one repo
8
+ contract:
9
+
10
+ - use **generated SDK / generated CRUD outputs first**
11
+ - export reusable **`queryOptions` / `mutationOptions` / `infiniteQueryOptions` factories**
12
+ - prefer **`useSuspenseQuery` / `useSuspenseInfiniteQuery`** for route data
13
+ - prefetch route-critical data with **`queryClient.ensureQueryData(...)`** in RR7 `clientLoader`
14
+ - default query/mutation failures to **`throwOnError: true`** and let the route error boundary own the failure path
15
+ - use **`useMutationState` / `useIsMutating`** for cross-component pending UI
16
+ - keep hand-written query modules as **thin composition layers only**
17
+
18
+ ## Hard rules
19
+
20
+ 1. **No inline GraphQL in app code.** Use a generated SDK (e.g., `~/generated/graphql/graphql-sdk`).
21
+ 2. **No ad-hoc reusable `useQuery({ queryKey, queryFn })` objects.** Export an options factory.
22
+ 3. **No `isLoading` in new query examples.** Suspense-first; otherwise use `isPending`/`isFetching` intentionally.
23
+ 4. **No bespoke optimistic-update dances.** Use the shared `createOptimisticMutation(...)` helper.
24
+ 5. **No new hand-written YAML-backed CRUD ownership layer** without a written D23 exception.
25
+
26
+ ## Quick adoption order
27
+
28
+ 1. Check whether the surface is already generator-owned.
29
+ 2. If not, export a query/mutation/infinite-options factory in `app/hooks/queries/<domain>.ts`.
30
+ 3. Prefetch route-critical data in `clientLoader` with the app-local `queryClient` singleton.
31
+ 4. Consume the factory with suspense hooks in route/domain components.
32
+ 5. Add route-level error handling with `RouteQueryErrorBoundary`.
33
+ 6. Use mutation-state primitives for sibling pending indicators.
34
+
35
+ ## Template map
36
+
37
+ - `templates/query-client-config.ts` — canonical `createQueryClient()` defaults and app-local singleton usage
38
+ - `templates/provider-setup.tsx` — root/preset wiring without creating a second provider abstraction
39
+ - `templates/use-query-basic.tsx` — SDK-backed query factory + `clientLoader` + suspense + render-time prefetch
40
+ - `templates/use-mutation-basic.tsx` — `mutationOptions(...)` factory + invalidation + pending-state observers
41
+ - `templates/use-mutation-optimistic.tsx` — `createOptimisticMutation(...)` pattern
42
+ - `templates/use-infinite-query.tsx` — `infiniteQueryOptions(...)` + `useSuspenseInfiniteQuery(...)` + `usePrefetchInfiniteQuery(...)`
43
+ - `templates/custom-hooks-pattern.tsx` — composition-only wrappers around generated outputs
44
+ - `templates/error-boundary.tsx` — RR7-native query error boundary pattern
45
+ - `templates/devtools-setup.tsx` — minimal devtools wiring for the shared client
46
+
47
+ ## References
48
+
49
+ - `rules/tanstack-query.md` — non-negotiable repo rules
50
+ - `references/best-practices.md` — canonical decisions and guardrails
51
+ - `references/common-patterns.md` — copy-ready usage shapes
52
+ - `references/testing.md` — integration-first testing guidance
53
+ - `references/top-errors.md` — common contract violations and fixes
54
+ - `references/typescript-patterns.md` — typing patterns for factories and mutation-state selectors
55
+
56
+ ## Intentionally removed
57
+
58
+ Legacy migration-first and placeholder content was pruned. This skill now favors
59
+ current repo conventions over generic v4→v5 upgrade advice.
@@ -0,0 +1,175 @@
1
+ ---
2
+ type: skill
3
+ slug: tanstack-query
4
+ title: TanStack Query hard-cut contract
5
+ status: active
6
+ scope: repo
7
+ applies_to: [agents]
8
+ related: []
9
+ created: '2026-05-07'
10
+ last_reviewed: '2026-05-07'
11
+ name: tanstack-query
12
+ description: |
13
+ Apply a canonical TanStack Query v5 contract: SDK-first query and mutation factories, suspense-first route data, QueryClient defaults with throwOnError, prefetch-aware loaders, infinite-query primitives, and generator-first CRUD guidance.
14
+ user-invocable: true
15
+ upstream:
16
+ source: null
17
+ last_synced: "2026-04-22"
18
+ ---
19
+
20
+ # TanStack Query hard-cut contract
21
+
22
+ Primary contract guide: `.agent/guides/tanstack-query-contract.md` (if present in your repo).
23
+
24
+ ## What this skill is for
25
+
26
+ Use this skill when you need to:
27
+
28
+ - add or refactor TanStack Query usage in a React app
29
+ - replace ad-hoc query/mutation code with reusable factories
30
+ - wire route-critical data through RR7 `clientLoader` + suspense
31
+ - standardize optimistic updates, paginated feeds, or pending-state UX
32
+ - decide whether a new hand-written query layer is allowed at all
33
+
34
+ This skill is **not** the generic place for TanStack Query trivia. It encodes
35
+ one repository contract derived from a `tanstack-query-hardcut` blueprint.
36
+
37
+ ## Canonical contract
38
+
39
+ ### 1) Generated contracts own CRUD first
40
+
41
+ If the surface is YAML-backed or already expressible through generated CRUD
42
+ outputs, prefer generated frontend hooks/factories first.
43
+
44
+ Only add a hand-written query module when it is clearly one of these:
45
+
46
+ - custom non-CRUD business flow
47
+ - composition across multiple generated operations
48
+ - temporary bridge until generator support lands
49
+
50
+ If you still need a new hand-written YAML-backed module, document the D23
51
+ exception explicitly:
52
+
53
+ 1. why generator expansion cannot own it yet
54
+ 2. why the remaining layer is composition-only
55
+ 3. how it will collapse later
56
+
57
+ ### 2) Export factories, not reusable inline objects
58
+
59
+ Canonical shapes:
60
+
61
+ - `queryOptions(...)` for standard queries
62
+ - `mutationOptions(...)` for reusable mutations
63
+ - `infiniteQueryOptions(...)` for paginated / load-more feeds
64
+
65
+ Put the factory in a stable home such as `app/hooks/queries/<domain>.ts`, then
66
+ consume it from hooks, route loaders, prefetch helpers, and tests.
67
+
68
+ ### 3) SDK-only GraphQL
69
+
70
+ App code talks to GraphQL through a generated SDK (e.g., `~/generated/graphql/graphql-sdk`).
71
+ If an operation is missing, add it to the codegen lane. Do not write inline
72
+ GraphQL strings in app code or skill examples.
73
+
74
+ ### 4) Suspense-first route data
75
+
76
+ Route-critical data flow:
77
+
78
+ 1. `queryClient.ensureQueryData(factory(...))` inside RR7 `clientLoader`
79
+ 2. `useSuspenseQuery(factory(...))` inside the route/domain component
80
+ 3. route-level `ErrorBoundary` export uses `RouteQueryErrorBoundary`
81
+
82
+ Do not branch on `data === undefined` or `isPending` for data that is required
83
+ before render.
84
+
85
+ ### 5) Errors are boundary-owned by default
86
+
87
+ `createQueryClient()` should default to:
88
+
89
+ - queries: `throwOnError: true`, `staleTime: 30_000`, `gcTime: 5 * 60_000`, `retry: 1`
90
+ - mutations: `throwOnError: true`, `retry: 0`
91
+
92
+ Use RR7-native route error boundaries plus `QueryErrorResetBoundary` to expose
93
+ retry/reset UX.
94
+
95
+ ### 6) Pending work is observable through TanStack primitives
96
+
97
+ For cross-component pending UI, prefer:
98
+
99
+ - `useMutationState(...)`
100
+ - `useIsMutating(...)`
101
+
102
+ Key these off a stable `mutationKey` exported by the mutation-options factory or
103
+ derived by the shared optimistic helper.
104
+
105
+ ### 7) Infinite-query primitives own pagination
106
+
107
+ For load-more or cursor feeds, prefer:
108
+
109
+ - `infiniteQueryOptions(...)`
110
+ - `useSuspenseInfiniteQuery(...)`
111
+ - `usePrefetchInfiniteQuery(...)` for secondary panes before a suspense boundary
112
+
113
+ Do not hand-roll page accumulation when the TanStack primitive fits.
114
+
115
+ ## Standard workflow
116
+
117
+ ### Query workflow
118
+
119
+ 1. Decide whether generation should own the surface.
120
+ 2. Export a query-options factory backed by the generated SDK.
121
+ 3. Prefetch route-critical data with `queryClient.ensureQueryData(...)`.
122
+ 4. Render with `useSuspenseQuery(...)`.
123
+ 5. Use `usePrefetchQuery(...)` only for secondary boundaries that benefit from render-time warming.
124
+
125
+ ### Mutation workflow
126
+
127
+ 1. Export `mutationOptions(...)` with a stable `mutationKey`.
128
+ 2. Use `useMutation({ ...factory(), onSuccess, onSettled })` in the consuming component.
129
+ 3. Invalidate or update the affected query factories.
130
+ 4. Expose sibling pending state via `useMutationState(...)` / `useIsMutating(...)`.
131
+ 5. For optimistic flows, use `createOptimisticMutation(...)` instead of open-coded cache choreography.
132
+
133
+ ### Pagination workflow
134
+
135
+ 1. Export `infiniteQueryOptions(...)` with `initialPageParam` and `getNextPageParam`.
136
+ 2. Prefetch the first page in `clientLoader` when the feed is route-critical.
137
+ 3. Render with `useSuspenseInfiniteQuery(...)`.
138
+ 4. Warm secondary feeds with `usePrefetchInfiniteQuery(...)` when it shortens the waterfall.
139
+
140
+ ## Hard bans
141
+
142
+ - No inline GraphQL strings in app code
143
+ - No new reusable inline `useQuery({ queryKey, queryFn })` contracts
144
+ - No `isLoading`-driven query examples in new code
145
+ - No second provider abstraction when the existing root/preset can own the shared client
146
+ - No bespoke mutation-loading stores when TanStack mutation-state hooks fit
147
+ - No medium-sized custom hooks that re-own generated CRUD semantics
148
+
149
+ ## Escape hatches
150
+
151
+ Allowed only when justified in code comments / implementation notes:
152
+
153
+ - `useQuery(...)` instead of suspense for polling, optimistic local reconciliation, or truly optional background data
154
+ - per-mutation `throwOnError: false` for intentional inline form validation UX (see opt-out policy below)
155
+ - a hand-written query module over a YAML-backed surface only with a D23 exception note
156
+
157
+ ### `throwOnError: false` opt-out policy
158
+
159
+ Opting out per-call is allowed only for **inline-error UX** — surfaces that render their own toast / inline message and must not bubble to the route boundary (e.g. action buttons, optimistic mutations, form validation).
160
+
161
+ When opting out:
162
+
163
+ - Add a one-line `// inline-error UX: ...` comment explaining the local error path (toast, inline banner, status field)
164
+ - Provide a local `onError` handler — silent failure is never acceptable
165
+ - For **queries** (vs mutations), prefer `meta: { skipGlobalError: true }` over `throwOnError: false` so the global `QueryCache.onError` can still log / report
166
+
167
+ Bare `throwOnError: false` without the comment + local handler is a code-review red flag.
168
+
169
+ ## File guide
170
+
171
+ - Start with `templates/query-client-config.ts`
172
+ - Then use `templates/use-query-basic.tsx`, `templates/use-mutation-basic.tsx`, and `templates/use-infinite-query.tsx`
173
+ - Use `templates/custom-hooks-pattern.tsx` only for thin composition
174
+ - Use `templates/error-boundary.tsx` for the route fallback contract
175
+ - Use the reference docs for testing, errors, and typing details
@@ -0,0 +1,63 @@
1
+ # Best practices for the TanStack Query contract
2
+
3
+ ## The short version
4
+
5
+ - generated CRUD first
6
+ - SDK-only GraphQL
7
+ - reusable options factories everywhere
8
+ - suspense-first for route data
9
+ - `clientLoader + ensureQueryData(...)` for route-critical prefetch
10
+ - `throwOnError: true` by default
11
+ - optimistic updates through the shared helper
12
+ - mutation-state primitives for cross-component pending UI
13
+ - infinite-query primitives for feeds/pagination
14
+
15
+ ## Query factories
16
+
17
+ A reusable query should live in one exported factory so the same contract can be
18
+ consumed by:
19
+
20
+ - `useSuspenseQuery(...)`
21
+ - `queryClient.ensureQueryData(...)`
22
+ - `queryClient.prefetchQuery(...)`
23
+ - tests
24
+ - invalidation / cache-updates keyed to one source of truth
25
+
26
+ ## Generator-first is a quality rule, not a nice-to-have
27
+
28
+ If the operation is YAML-backed CRUD, ask these questions before writing a new
29
+ module:
30
+
31
+ 1. can schema/frontend generation own it?
32
+ 2. can an existing generated hook/factory already cover it?
33
+ 3. is the remaining work only orchestration/composition?
34
+
35
+ If the answer to (1) or (2) is yes, do that instead of inventing a new custom
36
+ hook.
37
+
38
+ ## Suspense-first route data
39
+
40
+ Use suspense when the route cannot render meaningfully without the data.
41
+ Prefetch with `ensureQueryData(...)`, then let the component read through
42
+ `useSuspenseQuery(...)`.
43
+
44
+ Only skip suspense when the data is genuinely optional, polling-driven, or part
45
+ of an intentional background/optimistic flow.
46
+
47
+ ## Prefetch deliberately
48
+
49
+ Use:
50
+
51
+ - `ensureQueryData(...)` for required route data
52
+ - `prefetchQuery(...)` / `prefetchInfiniteQuery(...)` for event-driven warming
53
+ - `usePrefetchQuery(...)` / `usePrefetchInfiniteQuery(...)` to flatten a nested suspense waterfall
54
+
55
+ Do not prefetch just because the API exists.
56
+
57
+ ## Keep hand-written code small
58
+
59
+ The preferred shape is:
60
+
61
+ `generated primitives -> thin app composition -> UI`
62
+
63
+ If your hand-written query layer starts feeling clever, it is probably too big.
@@ -0,0 +1,43 @@
1
+ # Common patterns
2
+
3
+ ## 1. Route-critical list data
4
+
5
+ - export `organizationsListOptions(filters)`
6
+ - prefetch it in `clientLoader`
7
+ - read it with `useSuspenseQuery(...)`
8
+ - export a route `ErrorBoundary` using `RouteQueryErrorBoundary`
9
+
10
+ ## 2. Secondary pane prefetch
11
+
12
+ When a drawer/tab/detail panel sits behind its own suspense boundary, fire
13
+ `usePrefetchQuery(...)` or `usePrefetchInfiniteQuery(...)` in the parent render
14
+ so the secondary boundary does less waiting once mounted.
15
+
16
+ ## 3. Mutation with sibling pending UI
17
+
18
+ - export `mutationOptions(...)` with a stable `mutationKey`
19
+ - use `useMutation(...)` in the owning component
20
+ - use `useMutationState(...)` or `useIsMutating(...)` in siblings for badges,
21
+ disabled states, or inline saving indicators
22
+
23
+ ## 4. Optimistic mutation
24
+
25
+ - use `createOptimisticMutation(...)`
26
+ - point it at the canonical query key
27
+ - let the helper own snapshot/rollback choreography
28
+ - reconcile with invalidate/reset behavior after settle
29
+
30
+ ## 5. Feed / load-more surface
31
+
32
+ - export `infiniteQueryOptions(...)`
33
+ - require `initialPageParam`
34
+ - use `useSuspenseInfiniteQuery(...)`
35
+ - use `fetchNextPage()` / `hasNextPage` / `isFetchingNextPage` in the UI
36
+
37
+ ## 6. Composition-only custom hook
38
+
39
+ Acceptable: a hook that reshapes generated query data for a dropdown or view
40
+ model.
41
+
42
+ Not acceptable: a hand-written hook that becomes a second home for CRUD data,
43
+ query keys, transport logic, and loading/error ownership.
@@ -0,0 +1,44 @@
1
+ # Testing guidance
2
+
3
+ This skill follows an integration-first testing posture.
4
+
5
+ ## What to test
6
+
7
+ ### Query client contract
8
+
9
+ Use a real `QueryClientProvider` when testing:
10
+
11
+ - `createQueryClient()` defaults
12
+ - query error propagation with `throwOnError: true`
13
+ - retry/reset behavior through the route error boundary
14
+
15
+ ### Query factories
16
+
17
+ Test that the same exported factory works for:
18
+
19
+ - `ensureQueryData(...)`
20
+ - suspense hooks
21
+ - invalidation/reset keyed to the same query key
22
+
23
+ ### Optimistic updates
24
+
25
+ Test optimistic success + rollback against a real query cache. Avoid mocking the
26
+ cache choreography itself.
27
+
28
+ ## What not to optimize for
29
+
30
+ - no prose/template snapshot tests are required for this task
31
+ - do not default to mock-heavy tests when a real QueryClient + router boundary proves the behavior more directly
32
+ - do not write tests that only prove a hook was called; prove the visible or cache behavior
33
+
34
+ ## Suggested harness pieces
35
+
36
+ - real `QueryClientProvider`
37
+ - RR7 route `ErrorBoundary` using `RouteQueryErrorBoundary`
38
+ - fake local async functions for success/failure cases
39
+ - cache assertions through `queryClient.getQueryData(...)`
40
+
41
+ ## Validation mindset
42
+
43
+ The testing-philosophy skill still applies: prefer behavior locks, real
44
+ providers, and visible outcomes over shallow mocks.
@@ -0,0 +1,19 @@
1
+ # Common contract violations and fixes
2
+
3
+ | Violation | Why it is wrong here | Fix |
4
+ | --- | --- | --- |
5
+ | Inline GraphQL in app code | bypasses generated SDK and recreates transport drift | add/update the generated operation and call it through the SDK |
6
+ | Reusable inline `useQuery({ queryKey, queryFn })` | makes prefetch/testing/invalidation harder to share | export a `queryOptions(...)` factory |
7
+ | `isLoading` in new query code | wrong semantic shortcut for this hard cut | suspense-first, or use `isPending` / `isFetching` intentionally |
8
+ | Route component fetches required data without prefetch | creates waterfalls and ambiguous loading ownership | prefetch in `clientLoader` with `ensureQueryData(...)` |
9
+ | Hand-rolled optimistic cache choreography | duplicates rollback logic and mutation-key conventions | use `createOptimisticMutation(...)` |
10
+ | Custom loading store for mutations | duplicates built-in mutation cache state | use `useMutationState(...)` / `useIsMutating(...)` |
11
+ | New hand-written YAML-backed CRUD hook | undermines generator-first ownership | expand generation or document a D23 exception |
12
+ | Manual page accumulation for feeds | bypasses TanStack infinite-query primitives | use `infiniteQueryOptions(...)` + `useSuspenseInfiniteQuery(...)` |
13
+
14
+ ## Quick review prompts
15
+
16
+ - Could this be generated instead?
17
+ - Is there a shared options factory yet?
18
+ - Does the route prefetch before render?
19
+ - Can the pending indicator observe `mutationKey` instead of local state?
@@ -0,0 +1,36 @@
1
+ # TypeScript patterns
2
+
3
+ ## Query factory typing
4
+
5
+ Keep the factory as the single type source.
6
+
7
+ - derive the `queryKey` from a small helper when it improves reuse
8
+ - let `queryOptions(...)` preserve the query result type for suspense, prefetch, and tests
9
+ - avoid re-declaring result types in every consumer
10
+
11
+ ## Mutation factory typing
12
+
13
+ Give reusable mutations a stable `mutationKey` and typed variables payload.
14
+ That keeps `useMutationState(...)` selectors predictable.
15
+
16
+ ## Mutation-state selectors
17
+
18
+ A good selector returns a simple UI-facing value, for example:
19
+
20
+ - pending entity ids
21
+ - pending display labels
22
+ - a boolean derived through `useIsMutating(...)`
23
+
24
+ Keep the selector narrow so sibling components do not need to understand the
25
+ whole mutation object.
26
+
27
+ ## Composition hooks
28
+
29
+ Type composition hooks around returned view models, not around raw transport
30
+ concerns. The data contract should stay in the generated or factory layer.
31
+
32
+ ## Error typing
33
+
34
+ Treat query/mutation errors as boundary-owned by default. Only specialize error
35
+ types when the component truly owns inline handling for an intentional escape
36
+ hatch.