@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,309 @@
1
+ "use strict";
2
+ // SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com>
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ /**
5
+ * Parallel Retrieval System
6
+ *
7
+ * Runs all 4 retrieval strategies simultaneously using Promise.all.
8
+ * Significantly faster than sequential execution (~4x speedup).
9
+ *
10
+ * Strategies:
11
+ * - Exact Match (score: 1.0) - Substring matching in symptom
12
+ * - Tag Match (score: 0.9) - Bidirectional keyword matching on tags
13
+ * - Fuzzy Match (score: 0.7-0.85) - Jaro-Winkler distance for similar strings
14
+ * - Category Match (score: 0.6) - Group similar categories
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.parallelSearch = parallelSearch;
18
+ exports.parallelPatternMatch = parallelPatternMatch;
19
+ exports.parallelMemoryCheck = parallelMemoryCheck;
20
+ const storage_1 = require("./storage");
21
+ const string_similarity_1 = require("./string-similarity");
22
+ const logger_1 = require("./logger");
23
+ // ============================================================================
24
+ // PARALLEL SEARCH
25
+ // ============================================================================
26
+ /**
27
+ * Execute all retrieval strategies in parallel
28
+ *
29
+ * @param query - Search query (symptom description)
30
+ * @param options - Configuration options
31
+ * @returns Merged and ranked results from all strategies
32
+ */
33
+ async function parallelSearch(query, options) {
34
+ return (0, logger_1.traced)('retrieval:parallelSearch', { query: query.slice(0, 100) }, async () => {
35
+ const startTime = Date.now();
36
+ const threshold = options?.threshold ?? 0.5;
37
+ const maxResults = options?.maxResults ?? 10;
38
+ // Load data once (shared across all strategies)
39
+ const [allIncidents, allPatterns] = await Promise.all([
40
+ (0, storage_1.loadAllIncidents)(options?.memoryConfig),
41
+ (0, storage_1.loadAllPatterns)(options?.memoryConfig),
42
+ ]);
43
+ if (allIncidents.length === 0) {
44
+ return {
45
+ results: [],
46
+ strategies_used: [],
47
+ execution_time_ms: Date.now() - startTime,
48
+ parallel_speedup: 1.0,
49
+ };
50
+ }
51
+ const queryLower = query.toLowerCase();
52
+ const queryWords = extractKeywords(queryLower);
53
+ // Run all strategies in parallel
54
+ const [exactResults, tagResults, fuzzyResults, categoryResults] = await Promise.all([
55
+ executeExactStrategy(allIncidents, queryLower),
56
+ executeTagStrategy(allIncidents, queryWords),
57
+ executeFuzzyStrategy(allIncidents, queryLower),
58
+ executeCategoryStrategy(allIncidents, queryWords),
59
+ ]);
60
+ // Merge and deduplicate results
61
+ const merged = mergeAndRank([...exactResults, ...tagResults, ...fuzzyResults, ...categoryResults], maxResults, threshold);
62
+ const executionTime = Date.now() - startTime;
63
+ // Estimate sequential time for speedup calculation
64
+ const strategiesUsed = [
65
+ exactResults.length > 0 ? 'exact' : null,
66
+ tagResults.length > 0 ? 'tag' : null,
67
+ fuzzyResults.length > 0 ? 'fuzzy' : null,
68
+ categoryResults.length > 0 ? 'category' : null,
69
+ ].filter(Boolean);
70
+ return {
71
+ results: merged,
72
+ strategies_used: strategiesUsed,
73
+ execution_time_ms: executionTime,
74
+ parallel_speedup: strategiesUsed.length > 0 ? strategiesUsed.length : 1.0,
75
+ };
76
+ });
77
+ }
78
+ // ============================================================================
79
+ // STRATEGY IMPLEMENTATIONS
80
+ // ============================================================================
81
+ /**
82
+ * STRATEGY 1: EXACT MATCH (score: 1.0)
83
+ *
84
+ * Check if symptom description contains query (case-insensitive)
85
+ */
86
+ async function executeExactStrategy(incidents, queryLower) {
87
+ const results = [];
88
+ for (const incident of incidents) {
89
+ if (!incident.symptom || typeof incident.symptom !== 'string')
90
+ continue;
91
+ const symptomLower = incident.symptom.toLowerCase();
92
+ if (symptomLower.includes(queryLower)) {
93
+ results.push({
94
+ incident,
95
+ score: 1.0,
96
+ matchType: 'exact',
97
+ highlights: [incident.symptom],
98
+ });
99
+ }
100
+ }
101
+ return results;
102
+ }
103
+ /**
104
+ * STRATEGY 2: TAG MATCH (score: 0.9)
105
+ *
106
+ * Check if any tags match normalized query keywords
107
+ */
108
+ async function executeTagStrategy(incidents, queryWords) {
109
+ const results = [];
110
+ for (const incident of incidents) {
111
+ const tags = incident.tags ?? [];
112
+ if (tags.length === 0)
113
+ continue;
114
+ const normalizedTags = tags.map((t) => t.toLowerCase());
115
+ const matchedTags = normalizedTags.filter((tag) => queryWords.some((word) => tag.includes(word) || word.includes(tag)));
116
+ if (matchedTags.length > 0) {
117
+ results.push({
118
+ incident,
119
+ score: 0.9,
120
+ matchType: 'tag',
121
+ highlights: tags.filter((t) => matchedTags.includes(t.toLowerCase())),
122
+ });
123
+ }
124
+ }
125
+ return results;
126
+ }
127
+ /**
128
+ * STRATEGY 3: FUZZY MATCH (score: 0.7-0.85)
129
+ *
130
+ * Use Jaro-Winkler distance for similar strings
131
+ */
132
+ async function executeFuzzyStrategy(incidents, queryLower) {
133
+ const results = [];
134
+ const fuzzyThreshold = 0.7;
135
+ for (const incident of incidents) {
136
+ if (!incident.symptom || typeof incident.symptom !== 'string')
137
+ continue;
138
+ const symptomScore = (0, string_similarity_1.jaroWinklerDistance)(queryLower, incident.symptom.toLowerCase());
139
+ // Also check root cause description
140
+ const rootCauseDesc = incident.root_cause?.description ?? '';
141
+ const rootCauseScore = rootCauseDesc
142
+ ? (0, string_similarity_1.jaroWinklerDistance)(queryLower, rootCauseDesc.toLowerCase())
143
+ : 0;
144
+ const maxScore = Math.max(symptomScore, rootCauseScore);
145
+ if (maxScore >= fuzzyThreshold) {
146
+ const highlight = symptomScore >= rootCauseScore
147
+ ? incident.symptom
148
+ : rootCauseDesc || incident.symptom;
149
+ results.push({
150
+ incident,
151
+ score: maxScore * 0.85, // Scale to indicate fuzzy match
152
+ matchType: 'fuzzy',
153
+ highlights: [highlight],
154
+ });
155
+ }
156
+ }
157
+ return results;
158
+ }
159
+ /**
160
+ * STRATEGY 4: CATEGORY MATCH (score: 0.6)
161
+ *
162
+ * Match incidents by category based on query keywords
163
+ */
164
+ async function executeCategoryStrategy(incidents, queryWords) {
165
+ // Category keyword mapping
166
+ const categoryKeywords = {
167
+ database: ['database', 'prisma', 'query', 'schema', 'migration', 'sql', 'postgresql'],
168
+ 'react-hooks': ['react', 'hook', 'useeffect', 'usestate', 'component', 'render'],
169
+ api: ['api', 'endpoint', 'route', 'request', 'response', 'rest', 'graphql'],
170
+ performance: ['slow', 'latency', 'timeout', 'memory', 'performance', 'speed'],
171
+ authentication: ['auth', 'login', 'session', 'token', 'jwt', 'oauth'],
172
+ validation: ['validation', 'invalid', 'format', 'parse', 'type'],
173
+ configuration: ['config', 'env', 'environment', 'setting', 'option'],
174
+ dependency: ['dependency', 'package', 'npm', 'module', 'import', 'require'],
175
+ };
176
+ // Find matching categories from query
177
+ const matchedCategories = new Set();
178
+ for (const [category, keywords] of Object.entries(categoryKeywords)) {
179
+ if (queryWords.some((word) => keywords.includes(word))) {
180
+ matchedCategories.add(category);
181
+ }
182
+ }
183
+ if (matchedCategories.size === 0) {
184
+ return [];
185
+ }
186
+ // Find incidents matching these categories
187
+ const results = [];
188
+ for (const incident of incidents) {
189
+ const category = incident.root_cause?.category ?? '';
190
+ if (!category)
191
+ continue;
192
+ // Check if incident category matches any detected category
193
+ const categoryLower = category.toLowerCase();
194
+ const isMatch = matchedCategories.has(categoryLower) ||
195
+ [...matchedCategories].some((mc) => categoryLower.includes(mc) || mc.includes(categoryLower));
196
+ if (isMatch) {
197
+ results.push({
198
+ incident,
199
+ score: 0.6,
200
+ matchType: 'category',
201
+ highlights: [category],
202
+ });
203
+ }
204
+ }
205
+ return results;
206
+ }
207
+ // ============================================================================
208
+ // PARALLEL PATTERN MATCHING
209
+ // ============================================================================
210
+ /**
211
+ * Match patterns in parallel
212
+ *
213
+ * Scores all patterns simultaneously using Promise.all
214
+ */
215
+ async function parallelPatternMatch(symptom, options) {
216
+ const threshold = options?.threshold ?? 0.5;
217
+ const maxResults = options?.maxResults ?? 5;
218
+ const allPatterns = await (0, storage_1.loadAllPatterns)(options?.memoryConfig);
219
+ if (allPatterns.length === 0) {
220
+ return [];
221
+ }
222
+ const symptomWords = extractKeywords(symptom.toLowerCase());
223
+ // Score all patterns in parallel
224
+ const scoredPatterns = await Promise.all(allPatterns.map(async (pattern) => {
225
+ const score = calculatePatternScore(pattern, symptomWords);
226
+ return { pattern, score };
227
+ }));
228
+ return scoredPatterns
229
+ .filter((p) => p.score >= threshold)
230
+ .sort((a, b) => b.score - a.score)
231
+ .slice(0, maxResults)
232
+ .map((p) => p.pattern);
233
+ }
234
+ /**
235
+ * Calculate pattern relevance score
236
+ */
237
+ function calculatePatternScore(pattern, queryWords) {
238
+ // Check detection signatures
239
+ const signatureMatches = pattern.detection_signature.filter((sig) => queryWords.some((word) => sig.toLowerCase().includes(word))).length;
240
+ // Check tags
241
+ const tags = pattern.tags ?? [];
242
+ const tagMatches = tags.filter((tag) => queryWords.includes(tag.toLowerCase())).length;
243
+ // Weighted score: 70% signature match, 30% tag match
244
+ return ((signatureMatches / Math.max(pattern.detection_signature.length, 1)) * 0.7 +
245
+ (tagMatches / Math.max(tags.length, 1)) * 0.3);
246
+ }
247
+ // ============================================================================
248
+ // UTILITY FUNCTIONS
249
+ // ============================================================================
250
+ /**
251
+ * Merge results from all strategies, deduplicate, and rank
252
+ */
253
+ function mergeAndRank(results, maxResults, threshold) {
254
+ // Deduplicate by incident_id, keeping highest score
255
+ const byId = new Map();
256
+ for (const result of results) {
257
+ const existing = byId.get(result.incident.incident_id);
258
+ if (!existing || result.score > existing.score) {
259
+ byId.set(result.incident.incident_id, result);
260
+ }
261
+ }
262
+ // Filter by threshold, sort by score, and limit
263
+ return Array.from(byId.values())
264
+ .filter((r) => r.score >= threshold)
265
+ .sort((a, b) => b.score - a.score)
266
+ .slice(0, maxResults);
267
+ }
268
+ /**
269
+ * Extract keywords from text (remove stop words)
270
+ */
271
+ function extractKeywords(text) {
272
+ const stopWords = new Set([
273
+ 'the', 'a', 'an', 'and', 'or', 'but', 'in', 'on', 'at', 'to', 'for',
274
+ 'of', 'with', 'is', 'are', 'was', 'were', 'be', 'been', 'being',
275
+ 'have', 'has', 'had', 'do', 'does', 'did', 'will', 'would', 'should',
276
+ 'can', 'could', 'may', 'might', 'must', 'this', 'that', 'these', 'those',
277
+ 'i', 'me', 'my', 'we', 'our', 'you', 'your', 'it', 'its',
278
+ ]);
279
+ return text
280
+ .toLowerCase()
281
+ .replace(/[^\w\s]/g, ' ')
282
+ .split(/\s+/)
283
+ .filter((word) => word.length > 2 && !stopWords.has(word));
284
+ }
285
+ // ============================================================================
286
+ // COMBINED PARALLEL RETRIEVAL
287
+ // ============================================================================
288
+ /**
289
+ * Combined parallel search with patterns and incidents
290
+ *
291
+ * Runs pattern matching and incident search in parallel,
292
+ * then merges results with priority to patterns.
293
+ */
294
+ async function parallelMemoryCheck(symptom, options) {
295
+ const startTime = Date.now();
296
+ // Run pattern and incident search in parallel
297
+ const [patterns, searchResult] = await Promise.all([
298
+ parallelPatternMatch(symptom, options),
299
+ parallelSearch(symptom, options),
300
+ ]);
301
+ const executionTime = Date.now() - startTime;
302
+ return {
303
+ patterns,
304
+ incidents: searchResult.results,
305
+ execution_time_ms: executionTime,
306
+ parallel_speedup: 2.0 + searchResult.parallel_speedup, // 2x from pattern/incident parallel + strategy parallel
307
+ };
308
+ }
309
+ //# sourceMappingURL=parallel-retrieval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parallel-retrieval.js","sourceRoot":"","sources":["../../src/parallel-retrieval.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Pattern Extractor
3
+ *
4
+ * Automatically detects when 3+ similar incidents can be extracted into
5
+ * a reusable pattern. Helps prevent solving the same problem repeatedly.
6
+ */
7
+ import type { Incident, Pattern, MemoryConfig } from './types';
8
+ /**
9
+ * Analyze incidents and extract reusable patterns
10
+ */
11
+ export declare function extractPatterns(options?: {
12
+ min_incidents?: number;
13
+ min_similarity?: number;
14
+ auto_store?: boolean;
15
+ config?: MemoryConfig;
16
+ }): Promise<Pattern[]>;
17
+ /**
18
+ * Auto-extract pattern if enough similar incidents exist
19
+ * Called automatically after storing an incident
20
+ */
21
+ export declare function autoExtractPatternIfReady(newIncident: Incident, options?: {
22
+ minSimilar?: number;
23
+ minQuality?: number;
24
+ config?: MemoryConfig;
25
+ }): Promise<Pattern | null>;
26
+ /**
27
+ * Suggest patterns to extract (dry run)
28
+ */
29
+ export declare function suggestPatterns(config?: MemoryConfig): Promise<void>;
30
+ //# sourceMappingURL=pattern-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-extractor.d.ts","sourceRoot":"","sources":["../../src/pattern-extractor.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAa/D;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,GAAE;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,YAAY,CAAC;CAClB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CA0E1B;AAsPD;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,WAAW,EAAE,QAAQ,EACrB,OAAO,GAAE;IACP,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;CAClB,GACL,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAiEzB;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC1E"}