@accelerationguy/accel 1.0.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 (376) hide show
  1. package/CLAUDE.md +19 -0
  2. package/LICENSE +33 -0
  3. package/README.md +275 -0
  4. package/bin/install.js +661 -0
  5. package/docs/getting-started.md +164 -0
  6. package/docs/module-guide.md +139 -0
  7. package/modules/drive/LICENSE +21 -0
  8. package/modules/drive/PAUL-VS-GSD.md +171 -0
  9. package/modules/drive/README.md +555 -0
  10. package/modules/drive/assets/terminal.svg +67 -0
  11. package/modules/drive/bin/install.js +210 -0
  12. package/modules/drive/integration.js +76 -0
  13. package/modules/drive/package.json +38 -0
  14. package/modules/drive/src/commands/add-phase.md +36 -0
  15. package/modules/drive/src/commands/apply.md +83 -0
  16. package/modules/drive/src/commands/assumptions.md +37 -0
  17. package/modules/drive/src/commands/audit.md +57 -0
  18. package/modules/drive/src/commands/complete-milestone.md +36 -0
  19. package/modules/drive/src/commands/config.md +175 -0
  20. package/modules/drive/src/commands/consider-issues.md +41 -0
  21. package/modules/drive/src/commands/discover.md +48 -0
  22. package/modules/drive/src/commands/discuss-milestone.md +33 -0
  23. package/modules/drive/src/commands/discuss.md +34 -0
  24. package/modules/drive/src/commands/flows.md +73 -0
  25. package/modules/drive/src/commands/handoff.md +201 -0
  26. package/modules/drive/src/commands/help.md +525 -0
  27. package/modules/drive/src/commands/init.md +54 -0
  28. package/modules/drive/src/commands/map-codebase.md +34 -0
  29. package/modules/drive/src/commands/milestone.md +34 -0
  30. package/modules/drive/src/commands/pause.md +44 -0
  31. package/modules/drive/src/commands/plan-fix.md +216 -0
  32. package/modules/drive/src/commands/plan.md +36 -0
  33. package/modules/drive/src/commands/progress.md +138 -0
  34. package/modules/drive/src/commands/register.md +29 -0
  35. package/modules/drive/src/commands/remove-phase.md +37 -0
  36. package/modules/drive/src/commands/research-phase.md +209 -0
  37. package/modules/drive/src/commands/research.md +47 -0
  38. package/modules/drive/src/commands/resume.md +49 -0
  39. package/modules/drive/src/commands/status.md +78 -0
  40. package/modules/drive/src/commands/unify.md +87 -0
  41. package/modules/drive/src/commands/verify.md +60 -0
  42. package/modules/drive/src/references/checkpoints.md +234 -0
  43. package/modules/drive/src/references/context-management.md +219 -0
  44. package/modules/drive/src/references/git-strategy.md +206 -0
  45. package/modules/drive/src/references/loop-phases.md +254 -0
  46. package/modules/drive/src/references/plan-format.md +263 -0
  47. package/modules/drive/src/references/quality-principles.md +152 -0
  48. package/modules/drive/src/references/research-quality-control.md +247 -0
  49. package/modules/drive/src/references/sonarqube-integration.md +244 -0
  50. package/modules/drive/src/references/specialized-workflow-integration.md +186 -0
  51. package/modules/drive/src/references/subagent-criteria.md +179 -0
  52. package/modules/drive/src/references/tdd.md +219 -0
  53. package/modules/drive/src/references/work-units.md +161 -0
  54. package/modules/drive/src/rules/commands.md +108 -0
  55. package/modules/drive/src/rules/references.md +107 -0
  56. package/modules/drive/src/rules/style.md +123 -0
  57. package/modules/drive/src/rules/templates.md +51 -0
  58. package/modules/drive/src/rules/workflows.md +133 -0
  59. package/modules/drive/src/templates/CONTEXT.md +88 -0
  60. package/modules/drive/src/templates/DEBUG.md +164 -0
  61. package/modules/drive/src/templates/DISCOVERY.md +148 -0
  62. package/modules/drive/src/templates/HANDOFF.md +77 -0
  63. package/modules/drive/src/templates/ISSUES.md +93 -0
  64. package/modules/drive/src/templates/MILESTONES.md +167 -0
  65. package/modules/drive/src/templates/PLAN.md +328 -0
  66. package/modules/drive/src/templates/PROJECT.md +219 -0
  67. package/modules/drive/src/templates/RESEARCH.md +130 -0
  68. package/modules/drive/src/templates/ROADMAP.md +328 -0
  69. package/modules/drive/src/templates/SPECIAL-FLOWS.md +70 -0
  70. package/modules/drive/src/templates/STATE.md +210 -0
  71. package/modules/drive/src/templates/SUMMARY.md +221 -0
  72. package/modules/drive/src/templates/UAT-ISSUES.md +139 -0
  73. package/modules/drive/src/templates/codebase/architecture.md +259 -0
  74. package/modules/drive/src/templates/codebase/concerns.md +329 -0
  75. package/modules/drive/src/templates/codebase/conventions.md +311 -0
  76. package/modules/drive/src/templates/codebase/integrations.md +284 -0
  77. package/modules/drive/src/templates/codebase/stack.md +190 -0
  78. package/modules/drive/src/templates/codebase/structure.md +287 -0
  79. package/modules/drive/src/templates/codebase/testing.md +484 -0
  80. package/modules/drive/src/templates/config.md +181 -0
  81. package/modules/drive/src/templates/milestone-archive.md +236 -0
  82. package/modules/drive/src/templates/milestone-context.md +190 -0
  83. package/modules/drive/src/templates/paul-json.md +147 -0
  84. package/modules/drive/src/vector-config/PAUL +26 -0
  85. package/modules/drive/src/vector-config/PAUL.manifest +11 -0
  86. package/modules/drive/src/workflows/apply-phase.md +393 -0
  87. package/modules/drive/src/workflows/audit-plan.md +344 -0
  88. package/modules/drive/src/workflows/complete-milestone.md +479 -0
  89. package/modules/drive/src/workflows/configure-special-flows.md +283 -0
  90. package/modules/drive/src/workflows/consider-issues.md +172 -0
  91. package/modules/drive/src/workflows/create-milestone.md +268 -0
  92. package/modules/drive/src/workflows/debug.md +292 -0
  93. package/modules/drive/src/workflows/discovery.md +187 -0
  94. package/modules/drive/src/workflows/discuss-milestone.md +245 -0
  95. package/modules/drive/src/workflows/discuss-phase.md +231 -0
  96. package/modules/drive/src/workflows/init-project.md +698 -0
  97. package/modules/drive/src/workflows/map-codebase.md +459 -0
  98. package/modules/drive/src/workflows/pause-work.md +259 -0
  99. package/modules/drive/src/workflows/phase-assumptions.md +181 -0
  100. package/modules/drive/src/workflows/plan-phase.md +385 -0
  101. package/modules/drive/src/workflows/quality-gate.md +263 -0
  102. package/modules/drive/src/workflows/register-manifest.md +107 -0
  103. package/modules/drive/src/workflows/research.md +241 -0
  104. package/modules/drive/src/workflows/resume-project.md +200 -0
  105. package/modules/drive/src/workflows/roadmap-management.md +334 -0
  106. package/modules/drive/src/workflows/transition-phase.md +368 -0
  107. package/modules/drive/src/workflows/unify-phase.md +290 -0
  108. package/modules/drive/src/workflows/verify-work.md +241 -0
  109. package/modules/forge/README.md +281 -0
  110. package/modules/forge/bin/install.js +200 -0
  111. package/modules/forge/package.json +32 -0
  112. package/modules/forge/skillsmith/rules/checklists-rules.md +42 -0
  113. package/modules/forge/skillsmith/rules/context-rules.md +43 -0
  114. package/modules/forge/skillsmith/rules/entry-point-rules.md +44 -0
  115. package/modules/forge/skillsmith/rules/frameworks-rules.md +43 -0
  116. package/modules/forge/skillsmith/rules/tasks-rules.md +52 -0
  117. package/modules/forge/skillsmith/rules/templates-rules.md +43 -0
  118. package/modules/forge/skillsmith/skillsmith.md +82 -0
  119. package/modules/forge/skillsmith/tasks/audit.md +277 -0
  120. package/modules/forge/skillsmith/tasks/discover.md +145 -0
  121. package/modules/forge/skillsmith/tasks/distill.md +276 -0
  122. package/modules/forge/skillsmith/tasks/scaffold.md +349 -0
  123. package/modules/forge/specs/checklists.md +193 -0
  124. package/modules/forge/specs/context.md +223 -0
  125. package/modules/forge/specs/entry-point.md +320 -0
  126. package/modules/forge/specs/frameworks.md +228 -0
  127. package/modules/forge/specs/rules.md +245 -0
  128. package/modules/forge/specs/tasks.md +344 -0
  129. package/modules/forge/specs/templates.md +335 -0
  130. package/modules/forge/terminal.svg +70 -0
  131. package/modules/ignition/README.md +245 -0
  132. package/modules/ignition/bin/install.js +184 -0
  133. package/modules/ignition/checklists/planning-quality.md +55 -0
  134. package/modules/ignition/data/application/config.md +21 -0
  135. package/modules/ignition/data/application/guide.md +51 -0
  136. package/modules/ignition/data/application/skill-loadout.md +11 -0
  137. package/modules/ignition/data/campaign/config.md +18 -0
  138. package/modules/ignition/data/campaign/guide.md +36 -0
  139. package/modules/ignition/data/campaign/skill-loadout.md +10 -0
  140. package/modules/ignition/data/client/config.md +18 -0
  141. package/modules/ignition/data/client/guide.md +36 -0
  142. package/modules/ignition/data/client/skill-loadout.md +11 -0
  143. package/modules/ignition/data/utility/config.md +18 -0
  144. package/modules/ignition/data/utility/guide.md +31 -0
  145. package/modules/ignition/data/utility/skill-loadout.md +8 -0
  146. package/modules/ignition/data/workflow/config.md +19 -0
  147. package/modules/ignition/data/workflow/guide.md +41 -0
  148. package/modules/ignition/data/workflow/skill-loadout.md +10 -0
  149. package/modules/ignition/integration.js +54 -0
  150. package/modules/ignition/package.json +35 -0
  151. package/modules/ignition/seed.md +81 -0
  152. package/modules/ignition/tasks/add-type.md +164 -0
  153. package/modules/ignition/tasks/graduate.md +182 -0
  154. package/modules/ignition/tasks/ideate.md +221 -0
  155. package/modules/ignition/tasks/launch.md +137 -0
  156. package/modules/ignition/tasks/status.md +71 -0
  157. package/modules/ignition/templates/planning-application.md +193 -0
  158. package/modules/ignition/templates/planning-campaign.md +138 -0
  159. package/modules/ignition/templates/planning-client.md +149 -0
  160. package/modules/ignition/templates/planning-utility.md +112 -0
  161. package/modules/ignition/templates/planning-workflow.md +125 -0
  162. package/modules/ignition/terminal.svg +74 -0
  163. package/modules/mission-control/CONTEXT-CONTINUITY-SPEC.md +293 -0
  164. package/modules/mission-control/CONTEXT-ENGINEERING-GUIDE.md +282 -0
  165. package/modules/mission-control/README.md +91 -0
  166. package/modules/mission-control/assets/terminal.svg +80 -0
  167. package/modules/mission-control/examples/entities.example.json +133 -0
  168. package/modules/mission-control/examples/projects.example.json +318 -0
  169. package/modules/mission-control/examples/state.example.json +183 -0
  170. package/modules/mission-control/examples/vector.example.json +245 -0
  171. package/modules/mission-control/mission-control/checklists/install-verification.md +46 -0
  172. package/modules/mission-control/mission-control/frameworks/framework-registry.md +83 -0
  173. package/modules/mission-control/mission-control/mission-control.md +83 -0
  174. package/modules/mission-control/mission-control/tasks/insights.md +73 -0
  175. package/modules/mission-control/mission-control/tasks/install.md +194 -0
  176. package/modules/mission-control/mission-control/tasks/status.md +125 -0
  177. package/modules/mission-control/schemas/entities.schema.json +89 -0
  178. package/modules/mission-control/schemas/projects.schema.json +221 -0
  179. package/modules/mission-control/schemas/state.schema.json +108 -0
  180. package/modules/mission-control/schemas/vector.schema.json +200 -0
  181. package/modules/momentum/README.md +678 -0
  182. package/modules/momentum/bin/install.js +563 -0
  183. package/modules/momentum/integration.js +131 -0
  184. package/modules/momentum/package.json +42 -0
  185. package/modules/momentum/schemas/entities.schema.json +89 -0
  186. package/modules/momentum/schemas/projects.schema.json +221 -0
  187. package/modules/momentum/schemas/state.schema.json +108 -0
  188. package/modules/momentum/src/commands/audit-claude-md.md +31 -0
  189. package/modules/momentum/src/commands/audit.md +33 -0
  190. package/modules/momentum/src/commands/groom.md +35 -0
  191. package/modules/momentum/src/commands/history.md +27 -0
  192. package/modules/momentum/src/commands/pulse.md +33 -0
  193. package/modules/momentum/src/commands/scaffold.md +33 -0
  194. package/modules/momentum/src/commands/status.md +28 -0
  195. package/modules/momentum/src/commands/surface-convert.md +35 -0
  196. package/modules/momentum/src/commands/surface-create.md +34 -0
  197. package/modules/momentum/src/commands/surface-list.md +27 -0
  198. package/modules/momentum/src/commands/vector-hygiene.md +33 -0
  199. package/modules/momentum/src/framework/context/momentum-principles.md +71 -0
  200. package/modules/momentum/src/framework/frameworks/audit-strategies.md +53 -0
  201. package/modules/momentum/src/framework/frameworks/satellite-registration.md +44 -0
  202. package/modules/momentum/src/framework/tasks/audit-claude-md.md +68 -0
  203. package/modules/momentum/src/framework/tasks/audit.md +64 -0
  204. package/modules/momentum/src/framework/tasks/groom.md +164 -0
  205. package/modules/momentum/src/framework/tasks/history.md +34 -0
  206. package/modules/momentum/src/framework/tasks/pulse.md +83 -0
  207. package/modules/momentum/src/framework/tasks/scaffold.md +202 -0
  208. package/modules/momentum/src/framework/tasks/status.md +35 -0
  209. package/modules/momentum/src/framework/tasks/surface-convert.md +143 -0
  210. package/modules/momentum/src/framework/tasks/surface-create.md +184 -0
  211. package/modules/momentum/src/framework/tasks/surface-list.md +42 -0
  212. package/modules/momentum/src/framework/tasks/vector-hygiene.md +160 -0
  213. package/modules/momentum/src/framework/templates/workspace-json.md +96 -0
  214. package/modules/momentum/src/hooks/_template.py +129 -0
  215. package/modules/momentum/src/hooks/active-hook.py +178 -0
  216. package/modules/momentum/src/hooks/backlog-hook.py +115 -0
  217. package/modules/momentum/src/hooks/mission-control-insights.py +169 -0
  218. package/modules/momentum/src/hooks/momentum-pulse-check.py +351 -0
  219. package/modules/momentum/src/hooks/operator.py +53 -0
  220. package/modules/momentum/src/hooks/psmm-injector.py +67 -0
  221. package/modules/momentum/src/hooks/satellite-detection.py +248 -0
  222. package/modules/momentum/src/packages/momentum-mcp/index.js +119 -0
  223. package/modules/momentum/src/packages/momentum-mcp/package.json +10 -0
  224. package/modules/momentum/src/packages/momentum-mcp/tools/entities.js +226 -0
  225. package/modules/momentum/src/packages/momentum-mcp/tools/operator.js +106 -0
  226. package/modules/momentum/src/packages/momentum-mcp/tools/projects.js +322 -0
  227. package/modules/momentum/src/packages/momentum-mcp/tools/psmm.js +206 -0
  228. package/modules/momentum/src/packages/momentum-mcp/tools/state.js +199 -0
  229. package/modules/momentum/src/packages/momentum-mcp/tools/surfaces.js +404 -0
  230. package/modules/momentum/src/skill/momentum.md +111 -0
  231. package/modules/momentum/src/tasks/groom.md +164 -0
  232. package/modules/momentum/src/templates/operator.json +66 -0
  233. package/modules/momentum/src/templates/workspace.json +111 -0
  234. package/modules/momentum/terminal.svg +77 -0
  235. package/modules/radar/README.md +1552 -0
  236. package/modules/radar/commands/audit.md +233 -0
  237. package/modules/radar/commands/guardrails.md +194 -0
  238. package/modules/radar/commands/init.md +207 -0
  239. package/modules/radar/commands/playbook.md +176 -0
  240. package/modules/radar/commands/remediate.md +156 -0
  241. package/modules/radar/commands/report.md +172 -0
  242. package/modules/radar/commands/resume.md +176 -0
  243. package/modules/radar/commands/status.md +148 -0
  244. package/modules/radar/commands/transform.md +205 -0
  245. package/modules/radar/commands/validate.md +177 -0
  246. package/modules/radar/docs/ARCHITECTURE.md +336 -0
  247. package/modules/radar/docs/GETTING-STARTED.md +287 -0
  248. package/modules/radar/docs/standards/agents.md +197 -0
  249. package/modules/radar/docs/standards/commands.md +250 -0
  250. package/modules/radar/docs/standards/domains.md +191 -0
  251. package/modules/radar/docs/standards/personas.md +211 -0
  252. package/modules/radar/docs/standards/rules.md +218 -0
  253. package/modules/radar/docs/standards/runtime.md +445 -0
  254. package/modules/radar/docs/standards/schemas.md +269 -0
  255. package/modules/radar/docs/standards/tools.md +273 -0
  256. package/modules/radar/docs/standards/workflows.md +254 -0
  257. package/modules/radar/docs/terminal.svg +72 -0
  258. package/modules/radar/docs/validation/convention-compliance-report.md +183 -0
  259. package/modules/radar/docs/validation/cross-reference-report.md +195 -0
  260. package/modules/radar/docs/validation/validation-summary.md +118 -0
  261. package/modules/radar/docs/validation/version-manifest.yaml +363 -0
  262. package/modules/radar/install.sh +711 -0
  263. package/modules/radar/integration.js +53 -0
  264. package/modules/radar/src/core/agents/architect.md +25 -0
  265. package/modules/radar/src/core/agents/compliance-officer.md +25 -0
  266. package/modules/radar/src/core/agents/data-engineer.md +25 -0
  267. package/modules/radar/src/core/agents/devils-advocate.md +22 -0
  268. package/modules/radar/src/core/agents/performance-engineer.md +25 -0
  269. package/modules/radar/src/core/agents/principal-engineer.md +23 -0
  270. package/modules/radar/src/core/agents/reality-gap-analyst.md +22 -0
  271. package/modules/radar/src/core/agents/security-engineer.md +25 -0
  272. package/modules/radar/src/core/agents/senior-app-engineer.md +25 -0
  273. package/modules/radar/src/core/agents/sre.md +25 -0
  274. package/modules/radar/src/core/agents/staff-engineer.md +23 -0
  275. package/modules/radar/src/core/agents/test-engineer.md +25 -0
  276. package/modules/radar/src/core/personas/architect.md +111 -0
  277. package/modules/radar/src/core/personas/compliance-officer.md +104 -0
  278. package/modules/radar/src/core/personas/data-engineer.md +113 -0
  279. package/modules/radar/src/core/personas/devils-advocate.md +105 -0
  280. package/modules/radar/src/core/personas/performance-engineer.md +119 -0
  281. package/modules/radar/src/core/personas/principal-engineer.md +119 -0
  282. package/modules/radar/src/core/personas/reality-gap-analyst.md +111 -0
  283. package/modules/radar/src/core/personas/security-engineer.md +108 -0
  284. package/modules/radar/src/core/personas/senior-app-engineer.md +111 -0
  285. package/modules/radar/src/core/personas/sre.md +117 -0
  286. package/modules/radar/src/core/personas/staff-engineer.md +109 -0
  287. package/modules/radar/src/core/personas/test-engineer.md +109 -0
  288. package/modules/radar/src/core/workflows/disagreement-resolution.md +183 -0
  289. package/modules/radar/src/core/workflows/phase-0-context.md +148 -0
  290. package/modules/radar/src/core/workflows/phase-1-reconnaissance.md +169 -0
  291. package/modules/radar/src/core/workflows/phase-2-domain-audits.md +190 -0
  292. package/modules/radar/src/core/workflows/phase-3-cross-domain.md +177 -0
  293. package/modules/radar/src/core/workflows/phase-4-adversarial-review.md +165 -0
  294. package/modules/radar/src/core/workflows/phase-5-report.md +189 -0
  295. package/modules/radar/src/core/workflows/phase-checkpoint.md +222 -0
  296. package/modules/radar/src/core/workflows/session-handoff.md +152 -0
  297. package/modules/radar/src/domains/00-context.md +201 -0
  298. package/modules/radar/src/domains/01-architecture.md +248 -0
  299. package/modules/radar/src/domains/02-data.md +224 -0
  300. package/modules/radar/src/domains/03-correctness.md +230 -0
  301. package/modules/radar/src/domains/04-security.md +274 -0
  302. package/modules/radar/src/domains/05-compliance.md +228 -0
  303. package/modules/radar/src/domains/06-testing.md +228 -0
  304. package/modules/radar/src/domains/07-reliability.md +246 -0
  305. package/modules/radar/src/domains/08-performance.md +247 -0
  306. package/modules/radar/src/domains/09-maintainability.md +271 -0
  307. package/modules/radar/src/domains/10-operability.md +250 -0
  308. package/modules/radar/src/domains/11-change-risk.md +246 -0
  309. package/modules/radar/src/domains/12-team-risk.md +221 -0
  310. package/modules/radar/src/domains/13-risk-synthesis.md +202 -0
  311. package/modules/radar/src/rules/agent-boundaries.md +78 -0
  312. package/modules/radar/src/rules/disagreement-protocol.md +76 -0
  313. package/modules/radar/src/rules/epistemic-hygiene.md +78 -0
  314. package/modules/radar/src/schemas/confidence.md +185 -0
  315. package/modules/radar/src/schemas/disagreement.md +238 -0
  316. package/modules/radar/src/schemas/finding.md +287 -0
  317. package/modules/radar/src/schemas/report-section.md +150 -0
  318. package/modules/radar/src/schemas/signal.md +108 -0
  319. package/modules/radar/src/tools/checkov.md +463 -0
  320. package/modules/radar/src/tools/git-history.md +581 -0
  321. package/modules/radar/src/tools/gitleaks.md +447 -0
  322. package/modules/radar/src/tools/grype.md +611 -0
  323. package/modules/radar/src/tools/semgrep.md +378 -0
  324. package/modules/radar/src/tools/sonarqube.md +550 -0
  325. package/modules/radar/src/tools/syft.md +539 -0
  326. package/modules/radar/src/tools/trivy.md +439 -0
  327. package/modules/radar/src/transform/agents/change-risk-modeler.md +24 -0
  328. package/modules/radar/src/transform/agents/execution-validator.md +24 -0
  329. package/modules/radar/src/transform/agents/guardrail-generator.md +24 -0
  330. package/modules/radar/src/transform/agents/pedagogy-agent.md +24 -0
  331. package/modules/radar/src/transform/agents/remediation-architect.md +24 -0
  332. package/modules/radar/src/transform/personas/change-risk-modeler.md +95 -0
  333. package/modules/radar/src/transform/personas/execution-validator.md +95 -0
  334. package/modules/radar/src/transform/personas/guardrail-generator.md +103 -0
  335. package/modules/radar/src/transform/personas/pedagogy-agent.md +105 -0
  336. package/modules/radar/src/transform/personas/remediation-architect.md +95 -0
  337. package/modules/radar/src/transform/rules/change-risk-rules.md +87 -0
  338. package/modules/radar/src/transform/rules/safety-governance.md +87 -0
  339. package/modules/radar/src/transform/schemas/change-risk.md +139 -0
  340. package/modules/radar/src/transform/schemas/intervention-level.md +207 -0
  341. package/modules/radar/src/transform/schemas/playbook.md +205 -0
  342. package/modules/radar/src/transform/schemas/verification-plan.md +134 -0
  343. package/modules/radar/src/transform/workflows/phase-6-remediation.md +148 -0
  344. package/modules/radar/src/transform/workflows/phase-7-risk-validation.md +161 -0
  345. package/modules/radar/src/transform/workflows/phase-8-execution-planning.md +159 -0
  346. package/modules/radar/src/transform/workflows/transform-safety.md +158 -0
  347. package/modules/vector/.vector-template/sessions/.gitkeep +0 -0
  348. package/modules/vector/.vector-template/vector.json +72 -0
  349. package/modules/vector/AUDIT-CLAUDEMD.md +154 -0
  350. package/modules/vector/INSTALL.md +185 -0
  351. package/modules/vector/LICENSE +21 -0
  352. package/modules/vector/README.md +409 -0
  353. package/modules/vector/VECTOR-BLOCK.md +57 -0
  354. package/modules/vector/assets/terminal.svg +68 -0
  355. package/modules/vector/bin/install.js +455 -0
  356. package/modules/vector/bin/migrate-v1-to-v2.sh +492 -0
  357. package/modules/vector/commands/help.md +46 -0
  358. package/modules/vector/hooks/vector-hook.py +775 -0
  359. package/modules/vector/mcp/index.js +118 -0
  360. package/modules/vector/mcp/package.json +10 -0
  361. package/modules/vector/mcp/tools/decisions.js +269 -0
  362. package/modules/vector/mcp/tools/domains.js +361 -0
  363. package/modules/vector/mcp/tools/staging.js +252 -0
  364. package/modules/vector/mcp/tools/vector-json.js +647 -0
  365. package/modules/vector/package.json +38 -0
  366. package/modules/vector/schemas/vector.schema.json +237 -0
  367. package/package.json +39 -0
  368. package/shared/branding/branding.js +70 -0
  369. package/shared/config/defaults.json +59 -0
  370. package/shared/events/README.md +175 -0
  371. package/shared/events/event-bus.js +134 -0
  372. package/shared/events/event_bus.py +255 -0
  373. package/shared/events/integrations.js +161 -0
  374. package/shared/events/schemas/audit-complete.schema.json +21 -0
  375. package/shared/events/schemas/phase-progress.schema.json +23 -0
  376. package/shared/events/schemas/plan-created.schema.json +21 -0
@@ -0,0 +1,492 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # ============================================================================
5
+ # Vector v1 → v2 Migration Tool
6
+ # Converts flat-file .vector/ (manifest + domain files) to vector.json
7
+ # Non-destructive: archives old files to .vector/_v1-archive/
8
+ # ============================================================================
9
+
10
+ VERSION="2.0.0"
11
+
12
+ # Colors
13
+ RED='\033[0;31m'
14
+ GREEN='\033[0;32m'
15
+ YELLOW='\033[1;33m'
16
+ CYAN='\033[0;36m'
17
+ NC='\033[0m'
18
+
19
+ print_banner() {
20
+ echo ""
21
+ echo -e "${CYAN}╔══════════════════════════════════════════════════╗${NC}"
22
+ echo -e "${CYAN}║${NC} Vector v1 → v2 Migration Tool ${CYAN}║${NC}"
23
+ echo -e "${CYAN}║${NC} Flat files → vector.json ${CYAN}║${NC}"
24
+ echo -e "${CYAN}╚══════════════════════════════════════════════════╝${NC}"
25
+ echo ""
26
+ }
27
+
28
+ usage() {
29
+ echo "Usage: migrate-v1-to-v2.sh [OPTIONS] [VECTOR_DIR]"
30
+ echo ""
31
+ echo "Arguments:"
32
+ echo " VECTOR_DIR Path to .vector/ directory (default: ./.vector)"
33
+ echo ""
34
+ echo "Options:"
35
+ echo " --dry-run Show what would be done without writing"
36
+ echo " --no-archive Don't archive old files (just generate vector.json)"
37
+ echo " --help, -h Show this help"
38
+ echo ""
39
+ echo "Examples:"
40
+ echo " migrate-v1-to-v2.sh # Migrate ./.vector/"
41
+ echo " migrate-v1-to-v2.sh ~/.accel/vector # Migrate global Vector"
42
+ echo " migrate-v1-to-v2.sh --dry-run ~/.accel/vector # Preview migration"
43
+ }
44
+
45
+ # Parse arguments
46
+ DRY_RUN=false
47
+ NO_ARCHIVE=false
48
+ VECTOR_DIR=""
49
+
50
+ while [[ $# -gt 0 ]]; do
51
+ case "$1" in
52
+ --dry-run)
53
+ DRY_RUN=true
54
+ shift
55
+ ;;
56
+ --no-archive)
57
+ NO_ARCHIVE=true
58
+ shift
59
+ ;;
60
+ --help|-h)
61
+ usage
62
+ exit 0
63
+ ;;
64
+ *)
65
+ VECTOR_DIR="$1"
66
+ shift
67
+ ;;
68
+ esac
69
+ done
70
+
71
+ # Default to ./.vector if not specified
72
+ if [[ -z "$VECTOR_DIR" ]]; then
73
+ VECTOR_DIR="./.vector"
74
+ fi
75
+
76
+ # Resolve to absolute path
77
+ VECTOR_DIR="$(cd "$VECTOR_DIR" 2>/dev/null && pwd)" || {
78
+ echo -e "${RED}Error: Directory not found: $VECTOR_DIR${NC}"
79
+ exit 1
80
+ }
81
+
82
+ print_banner
83
+
84
+ # Check prerequisites
85
+ if ! command -v python3 &>/dev/null; then
86
+ echo -e "${RED}Error: python3 is required for migration${NC}"
87
+ exit 1
88
+ fi
89
+
90
+ # Verify this is a v1 setup
91
+ if [[ -f "$VECTOR_DIR/vector.json" ]]; then
92
+ echo -e "${YELLOW}Warning: vector.json already exists at $VECTOR_DIR/vector.json${NC}"
93
+ echo -e "${YELLOW}This may already be a v2 setup. Continue anyway? (y/N)${NC}"
94
+ read -r confirm
95
+ if [[ "$confirm" != "y" && "$confirm" != "Y" ]]; then
96
+ echo "Aborted."
97
+ exit 0
98
+ fi
99
+ fi
100
+
101
+ if [[ ! -f "$VECTOR_DIR/manifest" ]]; then
102
+ echo -e "${RED}Error: No manifest file found at $VECTOR_DIR/manifest${NC}"
103
+ echo -e "${RED}This doesn't appear to be a v1 Vector setup.${NC}"
104
+ exit 1
105
+ fi
106
+
107
+ echo -e "${GREEN}Found v1 Vector at: $VECTOR_DIR${NC}"
108
+ echo ""
109
+
110
+ # Run the Python migration
111
+ python3 - "$VECTOR_DIR" "$DRY_RUN" "$NO_ARCHIVE" << 'PYTHON_SCRIPT'
112
+ import json
113
+ import os
114
+ import sys
115
+ import shutil
116
+ import re
117
+ from pathlib import Path
118
+ from datetime import datetime
119
+
120
+ vector_dir = Path(sys.argv[1])
121
+ dry_run = sys.argv[2] == "true"
122
+ no_archive = sys.argv[3] == "true"
123
+
124
+ def log(msg, color=""):
125
+ colors = {"green": "\033[0;32m", "yellow": "\033[1;33m", "cyan": "\033[0;36m", "red": "\033[0;31m"}
126
+ nc = "\033[0m"
127
+ prefix = colors.get(color, "")
128
+ print(f"{prefix}{msg}{nc}")
129
+
130
+
131
+ def parse_manifest(filepath):
132
+ """Parse manifest file into domain configs and global settings."""
133
+ domains = {}
134
+ devmode = False
135
+ post_compact_gate = True
136
+ global_exclude = []
137
+
138
+ with open(filepath, 'r') as f:
139
+ for line in f:
140
+ line = line.strip()
141
+ if not line or line.startswith('#') or '=' not in line:
142
+ continue
143
+ key, value = line.split('=', 1)
144
+ key = key.strip()
145
+ value = value.strip()
146
+
147
+ if key == 'DEVMODE':
148
+ devmode = value.lower() in ('true', 'yes', '1')
149
+ continue
150
+ if key == 'POST_COMPACT_GATE':
151
+ post_compact_gate = value.lower() in ('true', 'yes', '1')
152
+ continue
153
+ if key == 'GLOBAL_EXCLUDE':
154
+ global_exclude = [k.strip() for k in value.split(',') if k.strip()]
155
+ continue
156
+
157
+ # Domain entries: DOMAIN_STATE, DOMAIN_ALWAYS_ON, DOMAIN_RECALL, DOMAIN_EXCLUDE
158
+ for suffix in ['_STATE', '_ALWAYS_ON', '_RECALL', '_EXCLUDE']:
159
+ if key.endswith(suffix):
160
+ domain_name = key[:-len(suffix)]
161
+ if domain_name not in domains:
162
+ domains[domain_name] = {}
163
+ field = suffix[1:].lower()
164
+ domains[domain_name][field] = value
165
+ break
166
+
167
+ return domains, devmode, post_compact_gate, global_exclude
168
+
169
+
170
+ def parse_domain_rules(filepath, domain_name):
171
+ """Parse a domain file for rules with metadata."""
172
+ rules = []
173
+ if not filepath.exists():
174
+ return rules
175
+
176
+ with open(filepath, 'r') as f:
177
+ lines = f.readlines()
178
+
179
+ prefix = f"{domain_name}_RULE_"
180
+ pending_meta = {"added": None, "last_reviewed": None, "source": "manual"}
181
+
182
+ for line in lines:
183
+ line = line.strip()
184
+
185
+ # Capture metadata from comments above rules
186
+ if line.startswith('# Rule added:'):
187
+ pending_meta['added'] = line.split(':', 1)[1].strip()
188
+ elif line.startswith('# Last reviewed:'):
189
+ val = line.split(':', 1)[1].strip()
190
+ pending_meta['last_reviewed'] = val if val and val != 'null' else None
191
+ elif line.startswith('# Source:'):
192
+ pending_meta['source'] = line.split(':', 1)[1].strip()
193
+ elif '=' in line and not line.startswith('#'):
194
+ key, value = line.split('=', 1)
195
+ key = key.strip()
196
+ if key.startswith(prefix):
197
+ try:
198
+ rule_id = int(key[len(prefix):])
199
+ except ValueError:
200
+ continue
201
+ rules.append({
202
+ "id": rule_id,
203
+ "text": value.strip(),
204
+ "added": pending_meta.get('added'),
205
+ "last_reviewed": pending_meta.get('last_reviewed'),
206
+ "source": pending_meta.get('source', 'manual')
207
+ })
208
+ pending_meta = {"added": None, "last_reviewed": None, "source": "manual"}
209
+
210
+ rules.sort(key=lambda r: r['id'])
211
+ return rules
212
+
213
+
214
+ def parse_context_file(filepath):
215
+ """Parse context file into bracket rules."""
216
+ brackets = {}
217
+ if not filepath.exists():
218
+ return brackets
219
+
220
+ with open(filepath, 'r') as f:
221
+ lines = f.readlines()
222
+
223
+ current_bracket = None
224
+ for line in lines:
225
+ line = line.strip()
226
+ if not line or line.startswith('#') or '=' not in line:
227
+ continue
228
+ key, value = line.split('=', 1)
229
+ key = key.strip()
230
+ value = value.strip()
231
+
232
+ # FRESH_RULES=true/false → bracket enabled flag
233
+ if key.endswith('_RULES') and not key.endswith('_RULE_'):
234
+ bracket_name = key[:-6]
235
+ if bracket_name not in brackets:
236
+ brackets[bracket_name] = {"enabled": True, "rules": []}
237
+ brackets[bracket_name]["enabled"] = value.lower() in ('true', 'yes', '1')
238
+ current_bracket = bracket_name
239
+ continue
240
+
241
+ # FRESH_RULE_1=text → bracket rule
242
+ for bracket_name in ['FRESH', 'MODERATE', 'DEPLETED', 'CRITICAL']:
243
+ rule_prefix = f"{bracket_name}_RULE_"
244
+ if key.startswith(rule_prefix):
245
+ if bracket_name not in brackets:
246
+ brackets[bracket_name] = {"enabled": True, "rules": []}
247
+ brackets[bracket_name]["rules"].append(value)
248
+ break
249
+
250
+ return brackets
251
+
252
+
253
+ def parse_commands_file(filepath):
254
+ """Parse commands file into star commands dict."""
255
+ commands = {}
256
+ if not filepath.exists():
257
+ return commands
258
+
259
+ with open(filepath, 'r') as f:
260
+ lines = f.readlines()
261
+
262
+ for line in lines:
263
+ line = line.strip()
264
+ if not line or line.startswith('#') or '=' not in line:
265
+ continue
266
+ key, value = line.split('=', 1)
267
+ key = key.strip()
268
+ value = value.strip()
269
+
270
+ # FOCUS_RULE_0=text → command FOCUS, rule text
271
+ match = re.match(r'^([A-Z_]+)_RULE_\d+$', key)
272
+ if match:
273
+ cmd_name = match.group(1)
274
+ if cmd_name not in commands:
275
+ commands[cmd_name] = []
276
+ commands[cmd_name].append(value)
277
+
278
+ return commands
279
+
280
+
281
+ def load_decisions(decisions_dir):
282
+ """Load all decision files from decisions/ directory."""
283
+ domain_decisions = {}
284
+ if not decisions_dir.exists():
285
+ return domain_decisions
286
+
287
+ for filepath in decisions_dir.glob('*.json'):
288
+ domain_name = filepath.stem.upper()
289
+ try:
290
+ with open(filepath, 'r') as f:
291
+ data = json.load(f)
292
+
293
+ active = []
294
+ for d in data.get('decisions', []):
295
+ active.append({
296
+ "id": d.get('id', ''),
297
+ "decision": d.get('decision', ''),
298
+ "rationale": d.get('rationale', ''),
299
+ "date": d.get('date', ''),
300
+ "source": d.get('source', 'manual'),
301
+ "recall": d.get('recall', []),
302
+ "status": "active"
303
+ })
304
+ for d in data.get('archived', []):
305
+ active.append({
306
+ "id": d.get('id', ''),
307
+ "decision": d.get('decision', ''),
308
+ "rationale": d.get('rationale', ''),
309
+ "date": d.get('date', ''),
310
+ "source": d.get('source', 'manual'),
311
+ "recall": d.get('recall', []),
312
+ "status": "archived"
313
+ })
314
+
315
+ if active:
316
+ domain_decisions[domain_name] = active
317
+
318
+ except (json.JSONDecodeError, IOError) as e:
319
+ log(f" Warning: Could not read {filepath}: {e}", "yellow")
320
+
321
+ return domain_decisions
322
+
323
+
324
+ # ============================================================================
325
+ # MAIN MIGRATION
326
+ # ============================================================================
327
+
328
+ log("Scanning v1 files...", "cyan")
329
+
330
+ # 1. Parse manifest
331
+ manifest_path = vector_dir / 'manifest'
332
+ domain_configs, devmode, post_compact_gate, global_exclude = parse_manifest(manifest_path)
333
+ log(f" Manifest: {len(domain_configs)} domains, devmode={devmode}")
334
+
335
+ # 2. Parse domain files
336
+ domain_rules = {}
337
+ skip_files = {'manifest', 'context', 'commands', 'vector.json', 'sessions', 'decisions',
338
+ '_v1-archive', 'archive', 'vector-mcp', 'skool', 'psmm.json', 'staging.json'}
339
+
340
+ for item in vector_dir.iterdir():
341
+ if item.is_file() and not item.is_dir() and item.name not in skip_files and not item.name.startswith('.'):
342
+ domain_name = item.name.upper()
343
+ if domain_name.endswith('.JSON') or domain_name.endswith('.ENV') or domain_name.endswith('.MD'):
344
+ continue
345
+ rules = parse_domain_rules(item, domain_name)
346
+ if rules:
347
+ domain_rules[domain_name] = rules
348
+ log(f" Domain {domain_name}: {len(rules)} rules")
349
+
350
+ # Also check for domain names from manifest that might have lowercase files
351
+ for domain_name in domain_configs:
352
+ if domain_name not in domain_rules:
353
+ lower_path = vector_dir / domain_name.lower()
354
+ if lower_path.exists() and lower_path.is_file():
355
+ rules = parse_domain_rules(lower_path, domain_name)
356
+ if rules:
357
+ domain_rules[domain_name] = rules
358
+ log(f" Domain {domain_name}: {len(rules)} rules")
359
+
360
+ # 3. Parse context file
361
+ context_path = vector_dir / 'context'
362
+ context_brackets = parse_context_file(context_path)
363
+ if context_brackets:
364
+ total_rules = sum(len(b['rules']) for b in context_brackets.values())
365
+ log(f" Context: {len(context_brackets)} brackets, {total_rules} rules")
366
+
367
+ # 4. Parse commands file
368
+ commands_path = vector_dir / 'commands'
369
+ commands = parse_commands_file(commands_path)
370
+ if commands:
371
+ total_cmd_rules = sum(len(r) for r in commands.values())
372
+ log(f" Commands: {len(commands)} star commands, {total_cmd_rules} rules")
373
+
374
+ # 5. Load decisions
375
+ decisions_dir = vector_dir / 'decisions'
376
+ domain_decisions = load_decisions(decisions_dir)
377
+ if domain_decisions:
378
+ total_decisions = sum(len(d) for d in domain_decisions.values())
379
+ log(f" Decisions: {len(domain_decisions)} domains, {total_decisions} entries")
380
+
381
+ # 6. Build vector.json
382
+ log("\nBuilding vector.json...", "cyan")
383
+
384
+ vector_json = {
385
+ "version": 1,
386
+ "last_modified": datetime.now().isoformat(),
387
+ "config": {
388
+ "devmode": devmode,
389
+ "post_compact_gate": post_compact_gate,
390
+ "global_exclude": global_exclude,
391
+ "context_brackets": context_brackets if context_brackets else {},
392
+ "commands": commands if commands else {}
393
+ },
394
+ "domains": {},
395
+ "staging": []
396
+ }
397
+
398
+ # Build domain entries
399
+ all_domain_names = set(list(domain_configs.keys()) + list(domain_rules.keys()))
400
+ for domain_name in sorted(all_domain_names):
401
+ config = domain_configs.get(domain_name, {})
402
+
403
+ state_val = config.get('state', 'active')
404
+ state = 'active' if state_val.lower() in ('active', 'true', 'yes', '1') else 'inactive'
405
+
406
+ always_on_val = config.get('always_on', 'false')
407
+ always_on = always_on_val.lower() in ('true', 'yes', '1')
408
+
409
+ recall_val = config.get('recall', '')
410
+ recall = [k.strip() for k in recall_val.split(',') if k.strip()] if recall_val else []
411
+
412
+ exclude_val = config.get('exclude', '')
413
+ exclude = [k.strip() for k in exclude_val.split(',') if k.strip()] if exclude_val else []
414
+
415
+ rules = domain_rules.get(domain_name, [])
416
+ decisions = domain_decisions.get(domain_name, [])
417
+
418
+ vector_json["domains"][domain_name] = {
419
+ "state": state,
420
+ "always_on": always_on,
421
+ "recall": recall,
422
+ "exclude": exclude,
423
+ "rules": rules,
424
+ "decisions": decisions
425
+ }
426
+
427
+ log(f" {domain_name}: {len(rules)} rules, {len(decisions)} decisions, state={state}, always_on={always_on}")
428
+
429
+ # Summary
430
+ total_rules = sum(len(d.get('rules', [])) for d in vector_json['domains'].values())
431
+ total_decisions = sum(len(d.get('decisions', [])) for d in vector_json['domains'].values())
432
+ log(f"\nTotal: {len(vector_json['domains'])} domains, {total_rules} rules, {total_decisions} decisions", "green")
433
+
434
+ if dry_run:
435
+ log("\n[DRY RUN] Would write vector.json with above contents", "yellow")
436
+ log(f"[DRY RUN] Would archive v1 files to {vector_dir}/_v1-archive/", "yellow")
437
+ # Print a preview of the JSON structure (keys only)
438
+ print(json.dumps(vector_json, indent=2)[:2000])
439
+ if len(json.dumps(vector_json)) > 2000:
440
+ print("... (truncated)")
441
+ sys.exit(0)
442
+
443
+ # 7. Archive old files
444
+ if not no_archive:
445
+ archive_dir = vector_dir / '_v1-archive'
446
+ archive_dir.mkdir(exist_ok=True)
447
+
448
+ v1_files = ['manifest', 'context', 'commands']
449
+ # Also archive domain flat files
450
+ for item in vector_dir.iterdir():
451
+ if item.is_file() and item.name not in skip_files and not item.name.startswith('.'):
452
+ if not item.name.endswith('.json') and not item.name.endswith('.env'):
453
+ v1_files.append(item.name)
454
+
455
+ for fname in v1_files:
456
+ src = vector_dir / fname
457
+ if src.exists():
458
+ dst = archive_dir / fname
459
+ shutil.copy2(str(src), str(dst))
460
+ src.unlink()
461
+ log(f" Archived: {fname} → _v1-archive/{fname}")
462
+
463
+ # Archive decisions directory
464
+ if decisions_dir.exists():
465
+ archive_decisions = archive_dir / 'decisions'
466
+ if archive_decisions.exists():
467
+ shutil.rmtree(str(archive_decisions))
468
+ shutil.copytree(str(decisions_dir), str(archive_decisions))
469
+ shutil.rmtree(str(decisions_dir))
470
+ log(f" Archived: decisions/ → _v1-archive/decisions/")
471
+
472
+ # 8. Write vector.json
473
+ output_path = vector_dir / 'vector.json'
474
+ with open(output_path, 'w') as f:
475
+ json.dump(vector_json, f, indent=2)
476
+
477
+ log(f"\n✓ vector.json written to {output_path}", "green")
478
+ log(f" File size: {output_path.stat().st_size:,} bytes", "green")
479
+
480
+ if not no_archive:
481
+ log(f" Old files archived to: {vector_dir}/_v1-archive/", "green")
482
+
483
+ log("\nMigration complete!", "green")
484
+ log("Next steps:", "cyan")
485
+ log(" 1. Update hook path in ~/.claude/settings.json to point to v2 hook")
486
+ log(" 2. Verify Vector loads correctly: start a new Claude Code session")
487
+ log(" 3. If issues: restore from _v1-archive/ and report a bug")
488
+
489
+ PYTHON_SCRIPT
490
+
491
+ echo ""
492
+ echo -e "${GREEN}Done.${NC}"
@@ -0,0 +1,46 @@
1
+ # Vector Help
2
+
3
+ Vector is the **rules engine** module of Accelerate by Acceleration Guy.
4
+
5
+ ## How It Works
6
+
7
+ Vector runs automatically on every prompt you send to Claude Code. A Python hook (`vector-hook.py`) reads your rules configuration and injects relevant behavioral rules based on context keywords in your prompt.
8
+
9
+ ## Configuration
10
+
11
+ Edit your rules at: `~/.accel/modules/vector/vector.json`
12
+
13
+ ```json
14
+ {
15
+ "domains": {
16
+ "security": {
17
+ "rules": [
18
+ "Always validate input at API boundaries",
19
+ "Never log sensitive data (passwords, tokens, PII)"
20
+ ],
21
+ "triggers": ["auth", "security", "password", "token"]
22
+ },
23
+ "testing": {
24
+ "rules": [
25
+ "Write tests before implementation",
26
+ "Include edge cases in test coverage"
27
+ ],
28
+ "triggers": ["test", "spec", "coverage"]
29
+ }
30
+ }
31
+ }
32
+ ```
33
+
34
+ When your prompt contains words matching `triggers`, those `rules` are injected into the session.
35
+
36
+ ## Status
37
+
38
+ Vector has no slash commands — it works automatically in the background. To verify it's running, check that `vector-hook.py` is registered in your Claude Code hooks:
39
+
40
+ ```bash
41
+ cat ~/.claude/settings.json | grep vector-hook
42
+ ```
43
+
44
+ ## Part of Accelerate
45
+
46
+ Run `/accel status` to see all installed modules.