@tyroneross/build-loop 0.30.3

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 (389) hide show
  1. package/.agents/plugins/marketplace.json +10 -0
  2. package/.claude-plugin/marketplace.json +38 -0
  3. package/.claude-plugin/plugin.json +30 -0
  4. package/.codex-plugin/plugin.json +41 -0
  5. package/.cursor/rules/build-loop-surface.mdc +22 -0
  6. package/AGENTS.md +498 -0
  7. package/LICENSE +202 -0
  8. package/README.md +403 -0
  9. package/agents/alignment-checker.md +124 -0
  10. package/agents/api-assessor.md +136 -0
  11. package/agents/architecture-scout.md +185 -0
  12. package/agents/assessment-orchestrator.md +163 -0
  13. package/agents/build-orchestrator.md +198 -0
  14. package/agents/database-assessor.md +133 -0
  15. package/agents/design-contract-specialist.md +239 -0
  16. package/agents/fact-checker.md +69 -0
  17. package/agents/fix-critique.md +161 -0
  18. package/agents/frontend-assessor.md +136 -0
  19. package/agents/implementer.md +185 -0
  20. package/agents/independent-auditor.md +143 -0
  21. package/agents/mock-scanner.md +78 -0
  22. package/agents/optimize-runner.md +112 -0
  23. package/agents/overfitting-reviewer.md +96 -0
  24. package/agents/performance-assessor.md +159 -0
  25. package/agents/plan-critic.md +85 -0
  26. package/agents/promotion-reviewer.md +121 -0
  27. package/agents/recurring-pattern-detector.md +248 -0
  28. package/agents/retrospective-synthesizer.md +109 -0
  29. package/agents/root-cause-investigator.md +285 -0
  30. package/agents/scope-auditor.md +121 -0
  31. package/agents/security-reviewer.md +151 -0
  32. package/agents/self-improvement-architect.md +125 -0
  33. package/agents/synthesis-critic.md +99 -0
  34. package/agents/transcript-pattern-miner.md +165 -0
  35. package/agents/ui-validator.md +193 -0
  36. package/codex-skills/build-loop/SKILL.md +20 -0
  37. package/codex-skills/debug-loop/SKILL.md +18 -0
  38. package/codex-skills/handoff/SKILL.md +22 -0
  39. package/codex-skills/knowledge/SKILL.md +21 -0
  40. package/codex-skills/optimize/SKILL.md +18 -0
  41. package/codex-skills/research/SKILL.md +18 -0
  42. package/commands/agent-rally-point.md +301 -0
  43. package/commands/assess.md +41 -0
  44. package/commands/debug.md +20 -0
  45. package/commands/debugger-detail.md +34 -0
  46. package/commands/debugger-scan.md +15 -0
  47. package/commands/debugger-status.md +20 -0
  48. package/commands/debugger.md +32 -0
  49. package/commands/handoff.md +113 -0
  50. package/commands/knowledge-review.md +16 -0
  51. package/commands/optimize.md +31 -0
  52. package/commands/plan-verify.md +39 -0
  53. package/commands/promote-experiment.md +129 -0
  54. package/commands/research.md +22 -0
  55. package/commands/run.md +12 -0
  56. package/commands/self-review.md +51 -0
  57. package/commands/start-prd.md +57 -0
  58. package/commands/test.md +34 -0
  59. package/dist/src/assessment-orchestrator.d.ts +78 -0
  60. package/dist/src/assessment-orchestrator.d.ts.map +1 -0
  61. package/dist/src/assessment-orchestrator.js +304 -0
  62. package/dist/src/assessment-orchestrator.js.map +1 -0
  63. package/dist/src/audit-miner.d.ts +21 -0
  64. package/dist/src/audit-miner.d.ts.map +1 -0
  65. package/dist/src/audit-miner.js +421 -0
  66. package/dist/src/audit-miner.js.map +1 -0
  67. package/dist/src/batch-operations.d.ts +30 -0
  68. package/dist/src/batch-operations.d.ts.map +1 -0
  69. package/dist/src/batch-operations.js +339 -0
  70. package/dist/src/batch-operations.js.map +1 -0
  71. package/dist/src/config.d.ts +83 -0
  72. package/dist/src/config.d.ts.map +1 -0
  73. package/dist/src/config.js +176 -0
  74. package/dist/src/config.js.map +1 -0
  75. package/dist/src/context-engine.d.ts +45 -0
  76. package/dist/src/context-engine.d.ts.map +1 -0
  77. package/dist/src/context-engine.js +135 -0
  78. package/dist/src/context-engine.js.map +1 -0
  79. package/dist/src/debug-wrapper.d.ts +58 -0
  80. package/dist/src/debug-wrapper.d.ts.map +1 -0
  81. package/dist/src/debug-wrapper.js +285 -0
  82. package/dist/src/debug-wrapper.js.map +1 -0
  83. package/dist/src/index.d.ts +31 -0
  84. package/dist/src/index.d.ts.map +1 -0
  85. package/dist/src/index.js +149 -0
  86. package/dist/src/index.js.map +1 -0
  87. package/dist/src/interactive-verifier.d.ts +26 -0
  88. package/dist/src/interactive-verifier.d.ts.map +1 -0
  89. package/dist/src/interactive-verifier.js +435 -0
  90. package/dist/src/interactive-verifier.js.map +1 -0
  91. package/dist/src/lessons.d.ts +59 -0
  92. package/dist/src/lessons.d.ts.map +1 -0
  93. package/dist/src/lessons.js +172 -0
  94. package/dist/src/lessons.js.map +1 -0
  95. package/dist/src/log-reader.d.ts +39 -0
  96. package/dist/src/log-reader.d.ts.map +1 -0
  97. package/dist/src/log-reader.js +291 -0
  98. package/dist/src/log-reader.js.map +1 -0
  99. package/dist/src/logger.d.ts +59 -0
  100. package/dist/src/logger.d.ts.map +1 -0
  101. package/dist/src/logger.js +328 -0
  102. package/dist/src/logger.js.map +1 -0
  103. package/dist/src/parallel-retrieval.d.ts +52 -0
  104. package/dist/src/parallel-retrieval.d.ts.map +1 -0
  105. package/dist/src/parallel-retrieval.js +309 -0
  106. package/dist/src/parallel-retrieval.js.map +1 -0
  107. package/dist/src/pattern-extractor.d.ts +30 -0
  108. package/dist/src/pattern-extractor.d.ts.map +1 -0
  109. package/dist/src/pattern-extractor.js +386 -0
  110. package/dist/src/pattern-extractor.js.map +1 -0
  111. package/dist/src/result-aggregator.d.ts +44 -0
  112. package/dist/src/result-aggregator.d.ts.map +1 -0
  113. package/dist/src/result-aggregator.js +315 -0
  114. package/dist/src/result-aggregator.js.map +1 -0
  115. package/dist/src/retrieval.d.ts +139 -0
  116. package/dist/src/retrieval.d.ts.map +1 -0
  117. package/dist/src/retrieval.js +724 -0
  118. package/dist/src/retrieval.js.map +1 -0
  119. package/dist/src/setup/auto-setup.d.ts +15 -0
  120. package/dist/src/setup/auto-setup.d.ts.map +1 -0
  121. package/dist/src/setup/auto-setup.js +157 -0
  122. package/dist/src/setup/auto-setup.js.map +1 -0
  123. package/dist/src/setup/configure-hooks.d.ts +8 -0
  124. package/dist/src/setup/configure-hooks.d.ts.map +1 -0
  125. package/dist/src/setup/configure-hooks.js +16 -0
  126. package/dist/src/setup/configure-hooks.js.map +1 -0
  127. package/dist/src/setup/create-slash-commands.d.ts +8 -0
  128. package/dist/src/setup/create-slash-commands.d.ts.map +1 -0
  129. package/dist/src/setup/create-slash-commands.js +101 -0
  130. package/dist/src/setup/create-slash-commands.js.map +1 -0
  131. package/dist/src/setup/index.d.ts +8 -0
  132. package/dist/src/setup/index.d.ts.map +1 -0
  133. package/dist/src/setup/index.js +17 -0
  134. package/dist/src/setup/index.js.map +1 -0
  135. package/dist/src/setup/inject-claude-md.d.ts +10 -0
  136. package/dist/src/setup/inject-claude-md.d.ts.map +1 -0
  137. package/dist/src/setup/inject-claude-md.js +150 -0
  138. package/dist/src/setup/inject-claude-md.js.map +1 -0
  139. package/dist/src/setup/uninstall.d.ts +22 -0
  140. package/dist/src/setup/uninstall.d.ts.map +1 -0
  141. package/dist/src/setup/uninstall.js +235 -0
  142. package/dist/src/setup/uninstall.js.map +1 -0
  143. package/dist/src/storage.d.ts +192 -0
  144. package/dist/src/storage.d.ts.map +1 -0
  145. package/dist/src/storage.js +1037 -0
  146. package/dist/src/storage.js.map +1 -0
  147. package/dist/src/string-similarity.d.ts +8 -0
  148. package/dist/src/string-similarity.d.ts.map +1 -0
  149. package/dist/src/string-similarity.js +57 -0
  150. package/dist/src/string-similarity.js.map +1 -0
  151. package/dist/src/traces/adapters/browser.d.ts +69 -0
  152. package/dist/src/traces/adapters/browser.d.ts.map +1 -0
  153. package/dist/src/traces/adapters/browser.js +280 -0
  154. package/dist/src/traces/adapters/browser.js.map +1 -0
  155. package/dist/src/traces/adapters/index.d.ts +23 -0
  156. package/dist/src/traces/adapters/index.d.ts.map +1 -0
  157. package/dist/src/traces/adapters/index.js +67 -0
  158. package/dist/src/traces/adapters/index.js.map +1 -0
  159. package/dist/src/traces/adapters/langchain.d.ts +42 -0
  160. package/dist/src/traces/adapters/langchain.d.ts.map +1 -0
  161. package/dist/src/traces/adapters/langchain.js +151 -0
  162. package/dist/src/traces/adapters/langchain.js.map +1 -0
  163. package/dist/src/traces/adapters/opentelemetry.d.ts +46 -0
  164. package/dist/src/traces/adapters/opentelemetry.d.ts.map +1 -0
  165. package/dist/src/traces/adapters/opentelemetry.js +164 -0
  166. package/dist/src/traces/adapters/opentelemetry.js.map +1 -0
  167. package/dist/src/traces/adapters/sentry.d.ts +58 -0
  168. package/dist/src/traces/adapters/sentry.d.ts.map +1 -0
  169. package/dist/src/traces/adapters/sentry.js +212 -0
  170. package/dist/src/traces/adapters/sentry.js.map +1 -0
  171. package/dist/src/traces/index.d.ts +10 -0
  172. package/dist/src/traces/index.d.ts.map +1 -0
  173. package/dist/src/traces/index.js +45 -0
  174. package/dist/src/traces/index.js.map +1 -0
  175. package/dist/src/traces/storage.d.ts +78 -0
  176. package/dist/src/traces/storage.d.ts.map +1 -0
  177. package/dist/src/traces/storage.js +399 -0
  178. package/dist/src/traces/storage.js.map +1 -0
  179. package/dist/src/traces/summarizer.d.ts +83 -0
  180. package/dist/src/traces/summarizer.d.ts.map +1 -0
  181. package/dist/src/traces/summarizer.js +247 -0
  182. package/dist/src/traces/summarizer.js.map +1 -0
  183. package/dist/src/traces/types.d.ts +365 -0
  184. package/dist/src/traces/types.d.ts.map +1 -0
  185. package/dist/src/traces/types.js +14 -0
  186. package/dist/src/traces/types.js.map +1 -0
  187. package/dist/src/types.d.ts +495 -0
  188. package/dist/src/types.d.ts.map +1 -0
  189. package/dist/src/types.js +27 -0
  190. package/dist/src/types.js.map +1 -0
  191. package/docs/agent-surface-policy.md +45 -0
  192. package/docs/memory-setup.md +226 -0
  193. package/hooks/_arch_scan_bg.py +88 -0
  194. package/hooks/_plugin_drift_check_bg.py +85 -0
  195. package/hooks/_session_start_lib.sh +42 -0
  196. package/hooks/git/pre-push +141 -0
  197. package/hooks/hooks.json +126 -0
  198. package/hooks/post-commit +30 -0
  199. package/hooks/pre-commit +29 -0
  200. package/hooks/pre-edit-apppulse.sh +6 -0
  201. package/hooks/pre-edit-architecture.sh +106 -0
  202. package/hooks/pre-edit-rally-point.sh +92 -0
  203. package/hooks/session-start-apppulse.sh +6 -0
  204. package/hooks/session-start-architecture.sh +10 -0
  205. package/hooks/session-start-git-hooks.sh +12 -0
  206. package/hooks/session-start-plugin-drift.sh +27 -0
  207. package/hooks/session-start-rally-point.sh +44 -0
  208. package/hooks/session-start-retrieval.sh +24 -0
  209. package/hooks/session-start-worktree-gc.sh +105 -0
  210. package/hooks/test_apppulse_hooks.sh +6 -0
  211. package/hooks/test_rally_point_hooks.sh +388 -0
  212. package/hooks/test_sec008_hooks.sh +66 -0
  213. package/package.json +111 -0
  214. package/scripts/README.md +301 -0
  215. package/scripts/_db_url.py +61 -0
  216. package/scripts/_paths.py +445 -0
  217. package/scripts/blm.py +162 -0
  218. package/scripts/blm_api.py +263 -0
  219. package/scripts/check_cache_sync.py +490 -0
  220. package/scripts/embed_backend.py +475 -0
  221. package/scripts/install_memory.py +556 -0
  222. package/scripts/lessons_index/__init__.py +77 -0
  223. package/scripts/lessons_index/__main__.py +135 -0
  224. package/scripts/lessons_index/ingest.py +288 -0
  225. package/scripts/lessons_index/query.py +285 -0
  226. package/scripts/lessons_index/schema.py +114 -0
  227. package/scripts/memory_context/__init__.py +610 -0
  228. package/scripts/memory_graph/__init__.py +393 -0
  229. package/scripts/project_resolver.py +172 -0
  230. package/scripts/prune_codex_plugin_cache.py +23 -0
  231. package/scripts/prune_plugin_cache.py +359 -0
  232. package/scripts/semantic_index/__init__.py +482 -0
  233. package/scripts/semantic_index/_bench_hybrid.py +175 -0
  234. package/scripts/semantic_index/backfill.py +263 -0
  235. package/scripts/semantic_index/hybrid.py +174 -0
  236. package/scripts/semantic_index/test_backfill.py +292 -0
  237. package/scripts/semantic_index/test_hybrid.py +541 -0
  238. package/scripts/sync_navgator_lessons.py +666 -0
  239. package/scripts/sync_plugin_cache.py +388 -0
  240. package/skills/agent-rally-point/SKILL.md +165 -0
  241. package/skills/agent-rally-watcher/SKILL.md +83 -0
  242. package/skills/api-registry-bridge/SKILL.md +59 -0
  243. package/skills/architecture/dead/SKILL.md +56 -0
  244. package/skills/architecture/impact/SKILL.md +88 -0
  245. package/skills/architecture/review/SKILL.md +227 -0
  246. package/skills/architecture/rules/SKILL.md +72 -0
  247. package/skills/architecture/scan/SKILL.md +79 -0
  248. package/skills/architecture/trace/SKILL.md +65 -0
  249. package/skills/attribution-standard/SKILL.md +122 -0
  250. package/skills/authentication/SKILL.md +81 -0
  251. package/skills/authentication/references/better-auth-magic-link.md +135 -0
  252. package/skills/authentication/references/better-auth-setup.md +224 -0
  253. package/skills/authentication/references/google-calendar-sync.md +278 -0
  254. package/skills/authentication/references/google-cloud-console.md +159 -0
  255. package/skills/authentication/references/google-geocoding-directions.md +126 -0
  256. package/skills/authentication/references/google-lessons-example-web-app.md +177 -0
  257. package/skills/authentication/references/google-maps.md +162 -0
  258. package/skills/authentication/references/google-oauth-setup.md +343 -0
  259. package/skills/authentication/references/google-places.md +173 -0
  260. package/skills/authentication/references/lessons-example-web-app-better-auth.md +126 -0
  261. package/skills/authentication/references/resend-email.md +227 -0
  262. package/skills/authentication/references/resend-otp-magic-link.md +153 -0
  263. package/skills/authentication/references/supabase-auth.md +172 -0
  264. package/skills/auto-decision-capture/SKILL.md +419 -0
  265. package/skills/build-loop/SKILL.md +516 -0
  266. package/skills/build-loop/detect-plugins.mjs +82 -0
  267. package/skills/build-loop/eval-guide.md +65 -0
  268. package/skills/build-loop/fallbacks.md +549 -0
  269. package/skills/build-loop/phases/fact-check.md +42 -0
  270. package/skills/build-loop/phases/ui-validation.md +267 -0
  271. package/skills/build-loop/references/apple-native-planning.md +439 -0
  272. package/skills/build-loop/references/capability-routing.md +181 -0
  273. package/skills/build-loop/references/codex-subagents.md +98 -0
  274. package/skills/build-loop/references/coordination.md +161 -0
  275. package/skills/build-loop/references/correction-aware-capture.md +177 -0
  276. package/skills/build-loop/references/independent-auditor.md +72 -0
  277. package/skills/build-loop/references/intent-capability-pack.md +170 -0
  278. package/skills/build-loop/references/intent-exploration-prompts.md +96 -0
  279. package/skills/build-loop/references/leadership.md +72 -0
  280. package/skills/build-loop/references/memory.md +284 -0
  281. package/skills/build-loop/references/modular-systems-pack.md +96 -0
  282. package/skills/build-loop/references/output-style.md +129 -0
  283. package/skills/build-loop/references/pay-it-forward-arch.md +98 -0
  284. package/skills/build-loop/references/phase-1-assess.md +218 -0
  285. package/skills/build-loop/references/phase-2-plan.md +77 -0
  286. package/skills/build-loop/references/phase-3-execute.md +47 -0
  287. package/skills/build-loop/references/phase-4-review.md +310 -0
  288. package/skills/build-loop/references/phase-5-iterate.md +71 -0
  289. package/skills/build-loop/references/phase-6-learn.md +56 -0
  290. package/skills/build-loop/references/recent-design-structures.md +274 -0
  291. package/skills/build-loop/references/refactor-history/ASSESSMENT.md +85 -0
  292. package/skills/build-loop/references/refactor-history/STANDALONE_TEST_RUN.md +149 -0
  293. package/skills/build-loop/references/refactor-history/scenarios/01-simple-bugfix.md +32 -0
  294. package/skills/build-loop/references/refactor-history/scenarios/02-ui-build-with-iteration.md +48 -0
  295. package/skills/build-loop/references/refactor-history/scenarios/03-multi-failure-escalation.md +60 -0
  296. package/skills/build-loop/references/refactor-history/scenarios/04-ui-build-ibr-absent.md +51 -0
  297. package/skills/build-loop/references/refactor-history/scenarios/05-refactor-navgator-absent.md +71 -0
  298. package/skills/build-loop/references/refactor-history/scenarios/06-recurring-bug-debugger-absent.md +52 -0
  299. package/skills/build-loop/references/refactor-history/trace-comparison.md +202 -0
  300. package/skills/build-loop/references/self-recursive-dev.md +77 -0
  301. package/skills/build-loop/references/self-review.md +232 -0
  302. package/skills/build-loop/references/ui-io-contract.md +116 -0
  303. package/skills/build-loop/scanners/audit-design-rules.mjs +476 -0
  304. package/skills/build-loop/scanners/require-visual-evidence.mjs +239 -0
  305. package/skills/build-loop/templates/backlog-item.md +35 -0
  306. package/skills/build-loop/templates/codex-worker-prompt.md +89 -0
  307. package/skills/build-loop/templates/ui-subagent-prompt.md +179 -0
  308. package/skills/build-loop/templates/ux-fix-plan.md +40 -0
  309. package/skills/building-with-deepagents/SKILL.md +195 -0
  310. package/skills/building-with-deepagents/references/anti-patterns.md +141 -0
  311. package/skills/building-with-deepagents/references/api-quick-reference.md +184 -0
  312. package/skills/capabilities/SKILL.md +91 -0
  313. package/skills/debug-loop/SKILL.md +278 -0
  314. package/skills/debug-loop/references/convergence-rules.md +145 -0
  315. package/skills/debug-loop/references/swiftui-macos-clunky-ui-debugger.html +823 -0
  316. package/skills/debugging/assess/SKILL.md +111 -0
  317. package/skills/debugging/debug-loop/SKILL.md +231 -0
  318. package/skills/debugging/memory/SKILL.md +147 -0
  319. package/skills/debugging/store/SKILL.md +153 -0
  320. package/skills/debugging-memory/SKILL.md +440 -0
  321. package/skills/debugging-memory/examples/incident-example.json +67 -0
  322. package/skills/debugging-memory/references/incident-documentation.md +280 -0
  323. package/skills/debugging-memory/references/ios-notification-alarm-playbook.md +300 -0
  324. package/skills/debugging-memory/references/pattern-extraction.md +163 -0
  325. package/skills/debugging-memory/references/subagent-integration.md +312 -0
  326. package/skills/defenseclaw-bridge/SKILL.md +156 -0
  327. package/skills/defenseclaw-bridge/references/dc-config-mapping.md +162 -0
  328. package/skills/defenseclaw-bridge/references/output-format.md +108 -0
  329. package/skills/handoff/SKILL.md +94 -0
  330. package/skills/ibr-bridge/SKILL.md +68 -0
  331. package/skills/knowledge/SKILL.md +127 -0
  332. package/skills/knowledge/references/recall-integration.md +83 -0
  333. package/skills/knowledge/templates/madr-minimal.md +56 -0
  334. package/skills/knowledge-review/SKILL.md +112 -0
  335. package/skills/logging-tracer/SKILL.md +202 -0
  336. package/skills/logging-tracer/references/log-analysis.md +128 -0
  337. package/skills/logging-tracer/references/stack-templates.md +274 -0
  338. package/skills/logging-tracer-bridge/SKILL.md +70 -0
  339. package/skills/mcp-builder/SKILL.md +278 -0
  340. package/skills/mcp-builder/references/mcp-security.md +106 -0
  341. package/skills/model-tiering/SKILL.md +216 -0
  342. package/skills/native-ax-driver/SKILL.md +220 -0
  343. package/skills/native-ax-driver/scripts/layout_fill.py +222 -0
  344. package/skills/native-ax-driver/scripts/native_driver.py +495 -0
  345. package/skills/native-ax-driver/swift/bl-ax-driver/Package.swift +20 -0
  346. package/skills/native-ax-driver/swift/bl-ax-driver/Sources/main.swift +542 -0
  347. package/skills/optimize/SKILL.md +202 -0
  348. package/skills/optimize/profiles.md +61 -0
  349. package/skills/plan-verify/SKILL.md +115 -0
  350. package/skills/plan-verify/test-fixtures/example-app-v20-findings.json +27 -0
  351. package/skills/plan-verify/test-fixtures/example-app-v20.md +42 -0
  352. package/skills/plan-verify/test-fixtures/example-app-v22-findings.json +15 -0
  353. package/skills/plan-verify/test-fixtures/example-app-v22.md +1608 -0
  354. package/skills/plan-verify/test-fixtures/unrelated-good-plan-findings.json +15 -0
  355. package/skills/plan-verify/test-fixtures/unrelated-good-plan.md +55 -0
  356. package/skills/plugin-builder/SKILL.md +329 -0
  357. package/skills/plugin-builder/references/authoritative-sources.md +104 -0
  358. package/skills/plugin-builder/references/build-loop-phase-guidance.md +94 -0
  359. package/skills/plugin-builder/references/components-guide.md +221 -0
  360. package/skills/plugin-builder/references/distribution.md +317 -0
  361. package/skills/plugin-builder/references/dual-host-claude-codex.md +220 -0
  362. package/skills/plugin-builder/references/hooks-reference.md +210 -0
  363. package/skills/plugin-builder/references/manifest-schema.md +111 -0
  364. package/skills/plugin-builder/references/plugin-hygiene-lessons.md +307 -0
  365. package/skills/plugin-tests/SKILL.md +94 -0
  366. package/skills/prd-bridge/SKILL.md +135 -0
  367. package/skills/research/SKILL.md +80 -0
  368. package/skills/security-methodology/SKILL.md +105 -0
  369. package/skills/security-methodology/references/cross-source-matrix.md +77 -0
  370. package/skills/security-methodology/references/mitre-atlas-starter.md +83 -0
  371. package/skills/security-methodology/references/nist-600-1-mapping.md +119 -0
  372. package/skills/security-methodology/references/owasp-agentic-top-10.md +157 -0
  373. package/skills/security-methodology/references/owasp-llm-top-10.md +144 -0
  374. package/skills/security-methodology/references/owasp-web-top-10.md +65 -0
  375. package/skills/self-improve/SKILL.md +298 -0
  376. package/skills/spec-writing/SKILL.md +548 -0
  377. package/skills/spec-writing/scripts/check_checklist.py +478 -0
  378. package/skills/sync-skills/SKILL.md +132 -0
  379. package/skills/telemetry/SKILL.md +66 -0
  380. package/skills/ui-design/SKILL.md +75 -0
  381. package/skills/ui-design/references/design-patterns-multi.md +165 -0
  382. package/skills/ui-design/references/design-preferences-from-owned-apps.md +150 -0
  383. package/skills/ui-design/references/evidence-capture-policy.md +55 -0
  384. package/skills/ui-design/references/ui-guidance-sources.md +330 -0
  385. package/skills/ui-design/references/universal-design-principles.alt.md +182 -0
  386. package/skills/ui-design/references/universal-design-principles.md +419 -0
  387. package/templates/memory/MEMORY.md.template +55 -0
  388. package/templates/memory/constitution.md.template +64 -0
  389. package/templates/memory/manifest.json +47 -0
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: knowledge
3
+ description: "Main Build Loop knowledge entrypoint. Use when recording decisions, ADRs, lessons, procedural memory, or repo-local knowledge that should be durable across future runs — AND when reviewing existing memory: surfacing the review queue, detecting decision rot, finding stale procedures, or resolving open conflicts."
4
+ ---
5
+
6
+ <!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
7
+
8
+ # Knowledge
9
+
10
+ This is the public Codex entrypoint for Build Loop knowledge capture. The
11
+ canonical implementation remains internal:
12
+
13
+ ```text
14
+ ../skills/knowledge/SKILL.md # capture: decisions, ADRs, lessons, procedures
15
+ ../skills/knowledge-review/SKILL.md # review: review queue, decision rot, stale procedures, open conflicts
16
+ ```
17
+
18
+ Keep captures factual, scoped to the current repo or decision, and validated
19
+ against the files or commands that prove the lesson. Use the review path when
20
+ asked to surface what's gone stale or conflicting in existing memory rather than
21
+ to record something new.
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: optimize
3
+ description: "Main Build Loop optimization entrypoint. Use when the user wants to make something faster, cheaper, smaller, simpler, or better against a measurable metric."
4
+ ---
5
+
6
+ <!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
7
+
8
+ # Optimize
9
+
10
+ This is the public Codex entrypoint for Build Loop optimization. The canonical
11
+ implementation remains internal:
12
+
13
+ ```text
14
+ ../skills/optimize/SKILL.md
15
+ ```
16
+
17
+ Define the metric first, identify factors, measure each run, keep only changes
18
+ that improve the metric, and revert changes that do not.
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: research
3
+ description: "Main Build Loop research entrypoint. Use for pre-build research, option evaluation, API/framework investigation, and repo-grounded decision packets before implementation."
4
+ ---
5
+
6
+ <!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
7
+
8
+ # Research
9
+
10
+ This is the public Codex entrypoint for Build Loop research. The canonical
11
+ implementation remains internal:
12
+
13
+ ```text
14
+ ../skills/research/SKILL.md
15
+ ```
16
+
17
+ Ground claims in the repo first, then use current external docs only when the
18
+ decision depends on unstable or third-party behavior.
@@ -0,0 +1,301 @@
1
+ ---
2
+ description: "Inspect or invoke build-loop's multi-session coordination (Rally Point + per-run coord file). Subcommands: status (default), watch, heartbeat, ack-inbox, announce, init, lead, escalate, boundary, docs, help."
3
+ allowed-tools: Bash, Read
4
+ argument-hint: "[status|watch|heartbeat|announce|init|lead|escalate|boundary|docs|help] [args]"
5
+ model: inherit
6
+ ---
7
+
8
+ <!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
9
+
10
+ Parse `{{ARGUMENTS}}` as `<subcommand> [args...]`. **If `<subcommand>` is omitted or empty, default to `status`** (the no-args case — most common interactive use).
11
+
12
+ ## Subcommands
13
+
14
+ ### `status` (default — no-args runs this)
15
+
16
+ Cheap (~100-token) sensor poll. Reports active peer sessions, unresolved verifier verdicts, dirty files, task-heartbeat health, and the active coord file path. Run this BEFORE any step-boundary decision (next-step recommendation, subagent dispatch, commit, version bump, archive/delete).
17
+
18
+ Executes:
19
+
20
+ ```bash
21
+ python3 ${CLAUDE_PLUGIN_ROOT}/scripts/coordination_status.py \
22
+ --workdir "$PWD" \
23
+ --session-id "user-rally-$(date +%s)" \
24
+ --json
25
+ ```
26
+
27
+ (If the user passed `--coordination-file=<path>`, `--task-ref=<id>`, or
28
+ `--task-heartbeat-grace-seconds=<seconds>` in subcommand args, forward it.)
29
+
30
+ Example output (clear):
31
+
32
+ ```json
33
+ {
34
+ "status": "clear",
35
+ "active_peers": [],
36
+ "unresolved": [],
37
+ "coordination_file": null
38
+ }
39
+ ```
40
+
41
+ Example output (warn — peer overlap on owned files):
42
+
43
+ ```json
44
+ {
45
+ "status": "warn",
46
+ "active_peers": [{"session_id": "codex-...", "tool": "codex", "phase": "review"}],
47
+ "overlaps": [{"peer": "codex-...", "files": ["scripts/foo.py"], "severity": "warning"}],
48
+ "required_action": "review_peer_overlap_or_dirty_files"
49
+ }
50
+ ```
51
+
52
+ ### `watch`
53
+
54
+ Continuous cheap sensor loop. Use this while waiting on another coding host,
55
+ during active shared-file work, or whenever an inbox message is expected. The
56
+ watcher prints only state transitions, revision changes, dirty-file risk, and
57
+ inbox unread count. When `--task-ref` is set, it also wakes on task-heartbeat
58
+ health changes.
59
+
60
+ Executes:
61
+
62
+ ```bash
63
+ python3 ${CLAUDE_PLUGIN_ROOT}/scripts/coordination_watch.py \
64
+ --workdir "$PWD" \
65
+ --session-id "user-rally-$(date +%s)" \
66
+ --tool "claude_code" \
67
+ --interval 5 \
68
+ --jsonl \
69
+ --baseline-current
70
+ ```
71
+
72
+ If the user passed `--tool=<name>`, `--files-in-flight=<csv>`,
73
+ `--coordination-file=<path>`, `--task-ref=<id>`, or
74
+ `--task-heartbeat-grace-seconds=<seconds>` in subcommand args, forward them. Claude Code uses
75
+ `--tool claude_code`; Codex uses `--tool codex`; other hosts should choose a
76
+ stable lowercase tool id.
77
+
78
+ When the watcher emits an event with a higher `revision`,
79
+ `direct_inbox_unread_count > 0`, or `broadcast_inbox_unread_count > 0`, run
80
+ `status`, read the addressed inbox plus `inbox/all.jsonl`, and respond through
81
+ the channel before continuing. Watch/status output also includes
82
+ `inbox_latest_messages`: compact metadata and a short preview for the newest
83
+ direct/broadcast inbox records. Treat it as a doorbell only; read the inbox
84
+ file for full payloads before acting. After the message is handled, run
85
+ `ack-inbox` so old direct notes do not keep appearing as unread.
86
+
87
+ ### `heartbeat`
88
+
89
+ Write a structured task heartbeat for long-running work. This is separate from
90
+ presence: presence answers "process can still write"; heartbeat answers "the
91
+ agent is still on the claimed task and when the next check-in is due."
92
+
93
+ Use it at the start of a long-running task, then at least every 10 minutes or
94
+ after each meaningful phase boundary. Set `--task-ref` to the claim, issue,
95
+ pillar, or run id that status/watch should expect.
96
+
97
+ Executes:
98
+
99
+ ```bash
100
+ python3 ${CLAUDE_PLUGIN_ROOT}/scripts/agent_rally.py heartbeat \
101
+ --workdir "$PWD" \
102
+ --session-id "user-rally-$(date +%s)" \
103
+ --tool "claude_code" \
104
+ --model "inherit" \
105
+ --run-id "<run-id>" \
106
+ --task-ref "<claim-or-issue-id>" \
107
+ --status running \
108
+ --progress "<short progress since last check-in>" \
109
+ --evidence "<csv refs: files/tests/commits/handoffs>" \
110
+ --json
111
+ ```
112
+
113
+ Use `--status blocked --attention-reason "<why>"` or
114
+ `--status needs_attention --attention-reason "<why>"` when a human or lead must
115
+ act. Use `--not-on-task` only to make drift explicit.
116
+
117
+ ### `ack-inbox`
118
+
119
+ Mark the current direct/broadcast inbox tail as seen for this tool/session.
120
+ This writes an ack cursor under `inbox/.acks/`; it does not rewrite or delete
121
+ the append-only inbox messages.
122
+
123
+ Executes:
124
+
125
+ ```bash
126
+ python3 ${CLAUDE_PLUGIN_ROOT}/scripts/agent_rally.py ack-inbox \
127
+ --workdir "$PWD" \
128
+ --session-id "user-rally-$(date +%s)" \
129
+ --tool "claude_code" \
130
+ --json
131
+ ```
132
+
133
+ Run this only after reading and acting on the current inbox payloads. Pass
134
+ `--no-broadcast` when a broadcast message should remain visible.
135
+
136
+ ### `announce [message]`
137
+
138
+ Publish lightweight Rally Point presence + a `kind=handoff` rally record for the current app slug, without creating a durable coordination file. Use this when another host (Codex, Claude Code, CI verifier) needs to see that this agent is present before work ownership is split, or when dogfooding coordination from outside a full build-loop run.
139
+
140
+ Executes:
141
+
142
+ ```bash
143
+ python3 ${CLAUDE_PLUGIN_ROOT}/scripts/coordination_rally.py \
144
+ --workdir "$PWD" \
145
+ --session-id "user-rally-$(date +%s)" \
146
+ --tool "claude_code" \
147
+ --model "inherit" \
148
+ --to "peer" \
149
+ --message "<message or 'Agent is present and ready to coordinate.'>" \
150
+ --json
151
+ ```
152
+
153
+ If the user passed `--owns=<csv>` or `--does-not-own=<csv>` in subcommand args, forward those values as `--owns` / `--does-not-own`. If omitted, the rally is presence-only and owns no files.
154
+
155
+ Example output:
156
+
157
+ ```json
158
+ {
159
+ "action": "rally-point-posted",
160
+ "app_slug": "example-ios-app",
161
+ "channel_revision": 1,
162
+ "presence_written": true
163
+ }
164
+ ```
165
+
166
+ ### `init <topic> <scope-one-liner>`
167
+
168
+ Bootstrap a NEW coord file at `.build-loop/coordination/<topic>-YYYY-MM-DD.md` from `references/coordination-file-template.md`. Writes own presence, posts a `kind=handoff` record so peers see it. **Idempotent and atomic** (per v0.12.10): if the coord file already exists OR a concurrent peer creates it between our check and our write, joins (writes presence + posts `phase=joined-existing-coord`) instead of overwriting.
169
+
170
+ Executes:
171
+
172
+ ```bash
173
+ python3 ${CLAUDE_PLUGIN_ROOT}/scripts/coordination_bootstrap.py \
174
+ --workdir "$PWD" \
175
+ --topic "<topic-slug>" \
176
+ --scope "<scope-one-liner>" \
177
+ --session-id "user-rally-$(date +%s)" \
178
+ --json
179
+ ```
180
+
181
+ Example invocation: `/agent-rally-point init v0130-feature-x "Add new feature X across orchestrator + bootstrap + tests"`
182
+
183
+ Example output:
184
+
185
+ ```json
186
+ {
187
+ "coord_file": ".build-loop/coordination/v0130-feature-x-2026-05-21.md",
188
+ "action": "bootstrapped",
189
+ "channel_revision": 65,
190
+ "session_id": "user-rally-1779320000"
191
+ }
192
+ ```
193
+
194
+ ### `lead <claim|renew|transfer|relinquish|status>`
195
+
196
+ Operate the leadership lease (G1). A multi-agent run has exactly ONE lead
197
+ with a liveness lease; "lead" used to be implicit in whoever opened the
198
+ coord file. The orchestrator auto-claims at Phase 1, renews at each
199
+ phase-start, and relinquishes at Phase D closeout — use this command for
200
+ manual lead inspection, an out-of-band takeover, or dogfooding.
201
+
202
+ All `lead` ops shell out to the host-neutral CLI:
203
+
204
+ ```bash
205
+ python3 ${CLAUDE_PLUGIN_ROOT}/scripts/agent_rally.py lead <op> \
206
+ --workdir "$PWD" \
207
+ --session-id "user-rally-$(date +%s)" \
208
+ --tool "claude_code" \
209
+ --run-id "<run-id>"
210
+ ```
211
+
212
+ - `claim` — become lead if the channel has no lead or the lease expired.
213
+ Returns `{"claimed": bool, "lead": {...}}`. A second claim while a valid
214
+ lease is held returns `claimed: false` with the incumbent.
215
+ - `renew` — extend the current lease (lead only; `--renew-every-minutes`,
216
+ default 15). `renew_every_minutes` is the lease clock — distinct from the
217
+ `watch` poll cadence.
218
+ - `transfer` — hand the lead to another session (`--to-session-id`,
219
+ `--to-tool`, `--to-model`); rejected from a non-lead.
220
+ - `relinquish` — give up the lead so the next `claim` succeeds immediately.
221
+ - `status` — read the current lead + `lease_valid`.
222
+
223
+ Example: `/agent-rally-point lead status`
224
+
225
+ ### `escalate <reason>`
226
+
227
+ Post a `kind=escalation` change record (G3) — "needs lead or user
228
+ attention now", distinct from routine `phase`/`feedback`. An open
229
+ escalation makes `status` report `blocked` until acknowledged.
230
+
231
+ ```bash
232
+ python3 ${CLAUDE_PLUGIN_ROOT}/scripts/agent_rally.py escalate \
233
+ --workdir "$PWD" \
234
+ --session-id "user-rally-$(date +%s)" \
235
+ --tool "claude_code" \
236
+ --run-id "<run-id>" \
237
+ --reason "<why this needs attention>"
238
+ ```
239
+
240
+ ### `boundary`
241
+
242
+ Validate the embedded mini-plugin boundary used to keep Rally Point and the
243
+ watcher extractable while they still ship inside build-loop.
244
+
245
+ ```bash
246
+ python3 ${CLAUDE_PLUGIN_ROOT}/scripts/agent_rally.py boundary \
247
+ --repo "${CLAUDE_PLUGIN_ROOT}" \
248
+ --check \
249
+ --json
250
+ ```
251
+
252
+ This checks `scripts/rally_point/plugin_boundary.json` and reports the
253
+ current `agent-rally-point` and `agent-rally-watcher` extraction surfaces.
254
+
255
+ ### `docs`
256
+
257
+ Prints the binding coordination constitution at `references/coordination-rules.md`. Use this when onboarding a peer (Codex, second Claude session, CI verifier) so they read the same rules — the verdict-gating operating rule, the `post()` helper mandate, MECE packets for every write-handoff, release-surface verification, Phase D closeout.
258
+
259
+ Executes:
260
+
261
+ ```bash
262
+ cat ${CLAUDE_PLUGIN_ROOT}/references/coordination-rules.md
263
+ ```
264
+
265
+ ### `help`
266
+
267
+ Shows the subcommand reference table (replaces what the no-args case used to do pre-v0.12.10).
268
+
269
+ Outputs:
270
+
271
+ ```
272
+ /agent-rally-point — inspect or invoke build-loop's multi-session coordination
273
+
274
+ Subcommands:
275
+ status (default) Sensor poll: active peers, unresolved verdicts, coord file
276
+ watch Continuous sensor loop for peer/inbox changes
277
+ heartbeat Write a long-running task check-in
278
+ announce [message] Publish Rally Point presence + handoff without coord file
279
+ init <topic> <scope> Bootstrap a coord file from template; atomic + idempotent
280
+ lead <op> Inspect or update the leadership lease
281
+ escalate <reason> Post an urgent coordination escalation
282
+ boundary Validate embedded agent-rally extraction boundaries
283
+ docs Print the binding coordination constitution
284
+ help This message
285
+
286
+ No-args invocation runs `status` (the most common interactive use).
287
+
288
+ When auto-invoke is enough:
289
+ The build-orchestrator agent auto-invokes coordination at three trigger
290
+ points (Phase 1 Assess preamble, Phase 3 chunk-close, Phase 4 Review-A).
291
+ See agents/build-orchestrator.md §"Auto-invoke coordination". Use `watch`
292
+ when waiting on an async peer response or targeted inbox message. Use
293
+ `status`, `heartbeat`, `announce`, or `init` for manual peer setup, debugging
294
+ coordination state, or onboarding a fresh verifier session.
295
+ ```
296
+
297
+ ## Dispatch
298
+
299
+ Based on the parsed subcommand (or `status` when `{{ARGUMENTS}}` is empty), run the corresponding bash command above using the Bash tool. Quote the result and surface key fields (status / coord_file / unresolved) in the response.
300
+
301
+ For `status`, if `unresolved: []` is non-empty, hold and resolve them before the user's intended step proceeds.
@@ -0,0 +1,41 @@
1
+ ---
2
+ description: "Run parallel domain assessment for complex debugging symptoms"
3
+ allowed-tools: Bash, Read, Task
4
+ argument-hint: "<symptom>"
5
+ ---
6
+
7
+ <!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
8
+
9
+ {{#if ARGUMENTS}}
10
+
11
+ Analyze "{{ARGUMENTS}}" across multiple domains in parallel.
12
+
13
+ **1. Detect domains** from symptom keywords (database, frontend, API, performance)
14
+
15
+ **2. Launch assessors in parallel** using Task tool with these agents:
16
+ - `database-assessor` - query, schema, migration issues
17
+ - `frontend-assessor` - React, component, render issues
18
+ - `api-assessor` - endpoint, auth, middleware issues
19
+ - `performance-assessor` - slow, memory, bottleneck issues
20
+
21
+ Spawn multiple Task calls in a single message for detected domains.
22
+
23
+ **3. Search memory** for similar past incidents via native build-loop memory:
24
+ ```
25
+ Skill("build-loop:debugging-memory-search") with input { symptom: "{{ARGUMENTS}}" }
26
+ ```
27
+
28
+ **4. Present results** ranked by confidence, with recommended action sequence.
29
+
30
+ {{else}}
31
+
32
+ Provide a symptom: `/assess <description>`
33
+
34
+ Examples:
35
+ - `/assess search is slow and returns wrong results`
36
+ - `/assess 500 error on user registration`
37
+ - `/assess react component re-renders infinitely`
38
+
39
+ For simple issues, use `/debugger` instead.
40
+
41
+ {{/if}}
@@ -0,0 +1,20 @@
1
+ ---
2
+ description: "(Advanced override — `/build-loop:run` auto-routes here on symptom language; use this to force debug mode.) Deep iterative debugging — causal-tree investigation, fix, verify, critique. Up to 5 iterations."
3
+ argument-hint: "<symptom>"
4
+ ---
5
+
6
+ <!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
7
+
8
+ {{#if ARGUMENTS}}
9
+ Load the `build-loop:debug-loop` skill. Symptom: `{{ARGUMENTS}}`
10
+ {{else}}
11
+ Load the `build-loop:debug-loop` skill. Ask the user what failure to investigate.
12
+
13
+ Examples:
14
+ - `/build-loop:debug tests pass locally but fail in CI`
15
+ - `/build-loop:debug login works once then breaks on refresh`
16
+ - `/build-loop:debug API returns wrong data intermittently`
17
+
18
+ For quick memory lookup, use `/build-loop:debugger` instead.
19
+ For multi-domain assessment, use `/build-loop:assess` instead.
20
+ {{/if}}
@@ -0,0 +1,34 @@
1
+ ---
2
+ description: "Load full build-loop incident or pattern details from native debugging memory"
3
+ allowed-tools: Read, Grep
4
+ argument-hint: "<INC_* or PTN_* id>"
5
+ ---
6
+
7
+ <!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
8
+
9
+ # Debugger Detail
10
+
11
+ Load full details for a specific incident or pattern from debugging memory.
12
+
13
+ ## Usage
14
+
15
+ ```
16
+ /debugger-detail <ID>
17
+ ```
18
+
19
+ Where `<ID>` is an incident ID (INC_*) or pattern ID (PTN_*).
20
+
21
+ ## What to do
22
+
23
+ 1. Search `.build-loop/issues/` for the requested incident or pattern ID.
24
+
25
+ 2. Present the result to the user in a readable format:
26
+ - For incidents: show symptom, root cause, fix approach, file changes, verification status
27
+ - For patterns: show detection signature, solution template, success rate, usage history
28
+
29
+ 3. If the ID is from a progressive search result, explain how this detail relates to the user's current issue.
30
+
31
+ ## Examples
32
+
33
+ - `/debugger-detail INC_API_20260215_143022_a1b2` — loads full incident
34
+ - `/debugger-detail PTN_REACT_HOOKS` — loads full pattern
@@ -0,0 +1,15 @@
1
+ ---
2
+ description: "Capture recent debugging incidents into build-loop native memory"
3
+ allowed-tools: Read, Grep, Bash
4
+ ---
5
+
6
+ <!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
7
+
8
+ Review recent build-loop run notes, reports, and validation failures for debugging work from the past 7 days. Store confirmed incidents as Markdown files under `.build-loop/issues/`.
9
+
10
+ Prioritize:
11
+ - Root cause analysis documents
12
+ - Error tracking logs
13
+ - Fix reports
14
+
15
+ Do not call external debugger packages by default. Use standalone Coding Debugger only when the user explicitly asks for cross-project memory.
@@ -0,0 +1,20 @@
1
+ ---
2
+ description: "Show build-loop native debugging memory statistics"
3
+ allowed-tools: Bash, Read
4
+ ---
5
+
6
+ <!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
7
+
8
+ Display the current state of build-loop's native debugging memory:
9
+
10
+ ```bash
11
+ find .build-loop/issues -type f -name '*.md' 2>/dev/null | wc -l
12
+ ```
13
+
14
+ This shows:
15
+ - Number of stored incidents
16
+ - Number of extracted patterns
17
+ - Storage size
18
+ - Recent activity
19
+
20
+ Use this to understand what debugging knowledge has been accumulated and whether the memory system is working correctly.
@@ -0,0 +1,32 @@
1
+ ---
2
+ description: "Search build-loop native debugging memory before debugging"
3
+ allowed-tools: Read, Grep
4
+ argument-hint: "<symptom>"
5
+ ---
6
+
7
+ <!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
8
+
9
+ Search build-loop's native debugging memory for similar past incidents before investigating a new bug.
10
+
11
+ {{#if ARGUMENTS}}
12
+
13
+ Run the native memory-first workflow with the provided symptom:
14
+
15
+ ```
16
+ Skill("build-loop:debugging-memory-search") with input { symptom: "{{ARGUMENTS}}" }
17
+ ```
18
+
19
+ After running the search:
20
+ 1. If a match is found with >70% confidence, try that solution first
21
+ 2. Review the root cause and fix approach from past incidents
22
+ 3. Apply the documented fix, adapting as needed for the current context
23
+ 4. If the fix works, no need to store again (already in memory)
24
+ 5. If a different fix is needed, document it as a new incident
25
+
26
+ {{else}}
27
+
28
+ No symptom provided. Read recent local incidents from `.build-loop/issues/` if present, then ask the user to describe what they are debugging.
29
+
30
+ Use standalone Coding Debugger only when the user explicitly asks for cross-project debugger memory.
31
+
32
+ {{/if}}
@@ -0,0 +1,113 @@
1
+ ---
2
+ description: "Compose a complete build-loop handoff from current run state. Optional --launch starts a fresh session in the stable checkout with the handoff injected."
3
+ argument-hint: "[--launch] [--workdir DIR]"
4
+ ---
5
+
6
+ <!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
7
+
8
+ {{#if ARGUMENTS}}
9
+ {{#contains ARGUMENTS "--launch"}}
10
+
11
+ ## Step 1 — Compose the handoff doc
12
+
13
+ Run from the STABLE checkout (not a worktree):
14
+ ```bash
15
+ python3 ${CLAUDE_PLUGIN_ROOT}/scripts/handoff --workdir "$PWD" --output .build-loop/handoff-latest.md
16
+ ```
17
+
18
+ Report the sources used and any warnings from stderr.
19
+
20
+ ## Step 2 — Identify the stable checkout path
21
+
22
+ Run:
23
+ ```bash
24
+ git worktree list --porcelain | grep "^worktree" | head -1 | awk '{print $2}'
25
+ ```
26
+
27
+ This is the canonical repo root. The new session MUST open there, not in any `.build-loop/worktrees/` sub-path (those may be GC'd).
28
+
29
+ ## Step 3 — Launch a fresh session with handoff injected
30
+
31
+ Determine the host. Then:
32
+
33
+ **Claude Code host** — use `claude --print` in a new terminal:
34
+ ```bash
35
+ HANDOFF=$(cat .build-loop/handoff-latest.md)
36
+ echo "RESUME_FROM_HANDOFF: The following handoff document captures the current build-loop run state. Use it to resume work.\n\n${HANDOFF}" | claude --print
37
+ ```
38
+ If the trust prompt fires on the new session, type `y` and press Enter.
39
+
40
+ **Codex host** — pass the doc as context:
41
+ ```bash
42
+ codex --context "$(cat .build-loop/handoff-latest.md)" "Resume from the attached handoff document."
43
+ ```
44
+
45
+ **Unknown / unsupported host** — print the path and instructions:
46
+ ```
47
+ Handoff doc written to: .build-loop/handoff-latest.md
48
+ To resume: open a fresh session at <stable-checkout-path>, share the handoff doc as your opening message, and load the build-loop:build-loop skill.
49
+ ```
50
+
51
+ In all cases: exit 0 (degrade gracefully — the doc is the deliverable, launch is a convenience).
52
+
53
+ {{else}}
54
+
55
+ ## Compose the handoff document
56
+
57
+ Run:
58
+ ```bash
59
+ python3 ${CLAUDE_PLUGIN_ROOT}/scripts/handoff --workdir "$PWD"
60
+ ```
61
+
62
+ Present the full output as your response. Also report:
63
+ - Sources used (from the `sources` field if `--json` was used)
64
+ - Any warnings
65
+
66
+ {{/contains}}
67
+ {{else}}
68
+
69
+ ## Compose the handoff document
70
+
71
+ Run:
72
+ ```bash
73
+ python3 ${CLAUDE_PLUGIN_ROOT}/scripts/handoff --workdir "$PWD"
74
+ ```
75
+
76
+ Present the full output. Also note:
77
+ - What sources were found vs missing
78
+ - Any errors/warnings
79
+
80
+ To launch a fresh session after handoff, re-run with `--launch`:
81
+ ```
82
+ /build-loop:handoff --launch
83
+ ```
84
+
85
+ {{/if}}
86
+
87
+ ---
88
+
89
+ ## Reference
90
+
91
+ **Emit to stdout (default)**
92
+ ```
93
+ /build-loop:handoff
94
+ ```
95
+
96
+ **Write to file**
97
+ ```
98
+ /build-loop:handoff --workdir /path/to/repo
99
+ ```
100
+ (Use `--output` flag in the script directly for file output.)
101
+
102
+ **Emit + launch fresh session**
103
+ ```
104
+ /build-loop:handoff --launch
105
+ ```
106
+
107
+ **JSON envelope (for programmatic use)**
108
+ ```bash
109
+ python3 ${CLAUDE_PLUGIN_ROOT}/scripts/handoff --workdir "$PWD" --json
110
+ ```
111
+ Returns `{document, sources, errors, ts}`.
112
+
113
+ See `skills/handoff/SKILL.md` for the full 8-section template, source table, and host-agnostic design notes.
@@ -0,0 +1,16 @@
1
+ ---
2
+ description: "Surface review-needing items across episodic memory: review queue, decision rot, open conflicts, stale procedures."
3
+ argument-hint: "[--rot-threshold-days N] [--no-db]"
4
+ ---
5
+
6
+ <!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
7
+
8
+ Load the `build-loop:knowledge-review` skill.
9
+
10
+ {{#if ARGUMENTS}}
11
+ Run with arguments: `{{ARGUMENTS}}`
12
+ {{else}}
13
+ Run with defaults (`--rot-threshold-days 90`).
14
+ {{/if}}
15
+
16
+ Invoke `python3 scripts/knowledge_review.py --workdir "$PWD" {{ARGUMENTS}}` and present the markdown output to the user. Read-only; do not auto-resolve any item.