@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,269 @@
1
+ # Schema Convention
2
+
3
+ ## Purpose
4
+
5
+ Schemas define **HOW** agents produce output. They are the data contracts of the Radar framework — specifying field names, types, enums, validation rules, and structural constraints that make agent output composable, validatable, and machine-parseable.
6
+
7
+ Without schemas, agent output drifts. One agent describes severity as "high", another as "H", another as "3". One agent includes a confidence score, another omits it. Schemas eliminate this drift by enforcing a single structural contract that all agents must conform to.
8
+
9
+ Transform extends the schema set with remediation and change-risk schemas, while Core schemas remain shared across both Core and Transform systems.
10
+
11
+ Radar uses approximately 9 schema files (5 Core + 4 Transform), each defining a reusable data structure consumed by agents and workflows.
12
+
13
+ ## Location
14
+
15
+ ```
16
+ src/schemas/ (Core — shared by both systems)
17
+ src/transform/schemas/ (Transform-specific)
18
+ ```
19
+
20
+ ## Naming
21
+
22
+ **Pattern:** `{kebab-name}.md`
23
+
24
+ **Examples:**
25
+ - `finding.md`
26
+ - `disagreement.md`
27
+ - `confidence.md`
28
+ - `signal.md`
29
+ - `report-section.md`
30
+ - `playbook.md`
31
+ - `change-risk.md`
32
+ - `intervention-level.md`
33
+ - `verification-plan.md`
34
+
35
+ ## Required Structure
36
+
37
+ Every schema file consists of YAML frontmatter followed by 4 mandatory sections.
38
+
39
+ ### Frontmatter (Required)
40
+
41
+ ```yaml
42
+ ---
43
+ id: {kebab-name}
44
+ name: [Schema Name]
45
+ version: [semver]
46
+ used_by: [which agents/workflows consume this schema]
47
+ ---
48
+ ```
49
+
50
+ | Field | Type | Required | Description |
51
+ |-------|------|----------|-------------|
52
+ | `id` | string | yes | Kebab-case identifier, must match filename without extension |
53
+ | `name` | string | yes | Human-readable schema name |
54
+ | `version` | string | yes | Semantic version (e.g., `1.0.0`). Increment on breaking changes. |
55
+ | `used_by` | list of strings | yes | Agent IDs and/or workflow names that consume this schema |
56
+
57
+ ### Body Sections (All Required)
58
+
59
+ | Section | Header | Purpose |
60
+ |---------|--------|---------|
61
+ | Purpose | `## Purpose` | What this schema represents, why it exists, when it's used. |
62
+ | Template | `## Template` | The actual template in a fenced code block with typed placeholders. |
63
+ | Field Reference | `## Field Reference` | Complete field documentation table. |
64
+ | Validation Rules | `## Validation Rules` | Numbered list of constraints that must hold for a valid instance. |
65
+ | Examples | `## Examples` | One or more correctly filled instances demonstrating proper usage. |
66
+
67
+ ## Cross-References
68
+
69
+ | Direction | What | How |
70
+ |-----------|------|-----|
71
+ | Referenced BY | Agent assembly manifests (`src/agents/`) | `schemas.output`, `schemas.confidence`, `schemas.signal_input` fields |
72
+ | Referenced BY | Workflows (`src/workflows/`) | For output validation steps |
73
+ | Referenced BY | Transform workflows (`src/transform/workflows/`) | Transform workflows reference Transform schemas for output validation |
74
+ | Does NOT reference | Personas, domains, tools | Schemas are universal contracts, independent of who fills them or what data feeds them. **Exception:** Transform schemas may reference Core schemas (e.g., playbook schema references finding schema's `finding_id` format) |
75
+
76
+ ## Example Skeleton
77
+
78
+ ````markdown
79
+ ---
80
+ id: finding
81
+ name: Finding
82
+ version: 1.0.0
83
+ used_by: [security-engineer, principal-engineer, sre, data-engineer, api-designer]
84
+ ---
85
+
86
+ ## Purpose
87
+
88
+ [What this schema represents and when it's used.
89
+
90
+ Example: "A Finding is a single identified issue, risk, or observation produced by
91
+ an agent during domain audit phases. Findings are the primary unit of agent output —
92
+ every concern an agent raises must be expressed as a Finding. Findings feed into
93
+ disagreement resolution, severity calibration, and final report generation."]
94
+
95
+ ## Template
96
+
97
+ ```markdown
98
+ ### {finding_id}
99
+
100
+ **Domain:** {domain_number} — {domain_name}
101
+ **Agent:** {agent_id}
102
+ **Severity:** [critical | high | medium | low | informational]
103
+ **Confidence:** [high | medium | low]
104
+
105
+ **Title:** [One-line finding title — specific and descriptive]
106
+
107
+ **Description:**
108
+ [What was found. Factual description of the issue, pattern, or observation.
109
+ Two to four sentences.]
110
+
111
+ **Evidence:**
112
+ [Concrete evidence supporting this finding. File paths, code snippets,
113
+ tool signals, configuration excerpts. Must be verifiable.]
114
+
115
+ **Impact:**
116
+ [What could go wrong. Business and technical consequences if this
117
+ issue is not addressed.]
118
+
119
+ **Recommendation:**
120
+ [Suggested remediation. Specific, actionable, and scoped to the finding.]
121
+
122
+ **References:**
123
+ - [CWE/CVE/standard reference, if applicable]
124
+ - [Related findings by ID, if applicable]
125
+ ```
126
+
127
+ ## Field Reference
128
+
129
+ | Field | Type | Required | Description | Valid Values |
130
+ |-------|------|----------|-------------|--------------|
131
+ | `finding_id` | string | yes | Unique identifier. Format: `F-{DD}-{NNN}` where DD is domain number and NNN is sequence. | Pattern: `F-\d{2}-\d{3}` |
132
+ | `domain_number` | string | yes | Two-digit domain number this finding belongs to. | `00` through `13` |
133
+ | `domain_name` | string | yes | Human-readable domain name. | Must match domain file's `name` field |
134
+ | `agent_id` | string | yes | ID of the agent that produced this finding. | Must match an agent file's `id` field |
135
+ | `severity` | enum | yes | Assessed severity of the finding. | `critical`, `high`, `medium`, `low`, `informational` |
136
+ | `confidence` | enum | yes | Agent's confidence in the finding's accuracy. | `high`, `medium`, `low` |
137
+ | `title` | string | yes | One-line descriptive title. | Max 120 characters |
138
+ | `description` | string | yes | Factual description of the issue. | 2-4 sentences |
139
+ | `evidence` | string | yes | Verifiable proof. File paths, code, tool output. | Must reference concrete artifacts |
140
+ | `impact` | string | yes | Consequences if unaddressed. | Business and/or technical impact |
141
+ | `recommendation` | string | yes | Actionable remediation guidance. | Specific to this finding |
142
+ | `references` | list of strings | no | CWE, CVE, standard refs, or related finding IDs. | Free-form but should use standard identifiers |
143
+
144
+ ## Validation Rules
145
+
146
+ 1. `finding_id` must be unique across the entire audit. No two findings may share an ID.
147
+ 2. `domain_number` must reference an existing domain (00-13).
148
+ 3. `agent_id` must reference an agent that has the specified domain in its `domains` list.
149
+ 4. `severity` must be one of the five enumerated values. No other values are valid.
150
+ 5. `confidence` must be one of the three enumerated values.
151
+ 6. `evidence` must contain at least one concrete reference (file path, code snippet, or tool signal ID). Assertions without evidence are invalid.
152
+ 7. `title` must not exceed 120 characters.
153
+ 8. [Additional validation rules specific to this schema.]
154
+
155
+ ## Examples
156
+
157
+ ### Example: High-Severity Security Finding
158
+
159
+ ```markdown
160
+ ### F-04-001
161
+
162
+ **Domain:** 04 — Security
163
+ **Agent:** security-engineer
164
+ **Severity:** critical
165
+ **Confidence:** high
166
+
167
+ **Title:** Hardcoded database credentials in application configuration
168
+
169
+ **Description:**
170
+ Production database credentials are stored as plaintext strings in
171
+ `config/database.py`. The username, password, and host are directly
172
+ embedded in source code rather than injected via environment variables
173
+ or a secrets manager.
174
+
175
+ **Evidence:**
176
+ File: `config/database.py`, lines 12-14:
177
+ \```python
178
+ DB_USER = "admin"
179
+ DB_PASS = "pr0d_s3cret_2024"
180
+ DB_HOST = "prod-db.internal.company.com"
181
+ \```
182
+ Corroborated by gitleaks signal: `GL-047` (high-entropy secret detected).
183
+
184
+ **Impact:**
185
+ Anyone with repository access has production database credentials.
186
+ Credential rotation requires a code change and deployment. If the
187
+ repository is compromised, the database is immediately accessible.
188
+
189
+ **Recommendation:**
190
+ Move credentials to environment variables or a secrets manager (e.g.,
191
+ AWS Secrets Manager, HashiCorp Vault). Remove plaintext values from
192
+ source code and rotate the exposed credentials immediately.
193
+
194
+ **References:**
195
+ - CWE-798: Use of Hard-coded Credentials
196
+ - Related: F-04-003 (missing secrets scanning in CI)
197
+ ```
198
+ ````
199
+
200
+ ## Anti-Patterns
201
+
202
+ | Anti-Pattern | Why It's Wrong |
203
+ |--------------|----------------|
204
+ | Embedding interpretation guidance | "If severity is critical, the agent should escalate..." is workflow logic, not schema definition. Schemas define structure; rules and workflows define behavior. |
205
+ | Including persona-specific fields | A field like `security_impact` that only one agent type would fill breaks universality. If a field isn't meaningful for all consumers listed in `used_by`, it doesn't belong in the schema. |
206
+ | Loose field definitions | "`description`: any text" is not a definition. Specify what belongs in the field, how long it should be, and what constitutes valid content. Precision prevents drift. |
207
+ | Missing enum values | Every enum field must list ALL valid values explicitly. "severity: one of several levels" is incomplete. "severity: critical, high, medium, low, informational" is complete. |
208
+ | No validation rules | A schema without validation rules is just a template. Validation rules make schemas enforceable — they define what "correct" means. |
209
+ | Version not updated on changes | Breaking changes to a schema (adding required fields, changing enum values, renaming fields) must increment the version. Consumers depend on the contract; changing it silently breaks the system. |
210
+ | Playbook without intervention level | Every remediation must be classified. A playbook with no intervention level is ungoverned. |
211
+ | Risk assessment without evidence | Scores without evidence are opinions. Every risk dimension requires supporting evidence. |
212
+
213
+ ## Transform Schema Definitions
214
+
215
+ Transform introduces 4 additional schemas that live in `src/transform/schemas/`. These schemas govern remediation planning, change-risk assessment, intervention governance, and verification procedures. They build on top of Core schemas — particularly the finding schema — and are consumed exclusively by Transform agents and workflows.
216
+
217
+ ### Remediation Playbook (`playbook.md`)
218
+
219
+ The playbook schema defines a structured remediation plan for a single finding. Each playbook maps a finding through transformation layers (abstract pattern to project-specific fix) and includes risk metadata and verification steps.
220
+
221
+ | Field | Type | Required | Description |
222
+ |-------|------|----------|-------------|
223
+ | `finding_ref` | string | yes | Finding ID being remediated (e.g., `F-04-001`). Must match a valid finding ID from the Core finding schema. |
224
+ | `intervention_level` | enum | yes | Governance level for this remediation. Valid values: `suggesting`, `planning`, `authorizing`, `executing`. |
225
+ | `transformation_layers` | object | yes | Contains: `abstract_pattern` (string), `framework_mapping` (string), `language_mapping` (string), `project_context` (string). Each layer refines the remediation from general principle to project-specific guidance. |
226
+ | `before_example` | string | yes | Code showing the anti-pattern as it exists in the target codebase. |
227
+ | `after_example` | string | yes | Code showing the correct pattern after remediation. |
228
+ | `verification_steps` | list of strings | yes | Ordered steps to verify the fix works. Each step must be concrete and executable. |
229
+ | `risk_metadata` | object | yes | Contains: `blast_radius` (1-5), `coupling_risk` (1-5), `regression_probability` (1-5), `architectural_tension` (1-5). Each dimension scored with justification. |
230
+ | `educational_context` | string | no | Pedagogical explanation for AI-assisted developers. Explains *why* the anti-pattern is harmful and *why* the remediation is preferred. |
231
+
232
+ ### Change Risk Assessment (`change-risk.md`)
233
+
234
+ The change-risk schema captures a multi-dimensional risk evaluation for a proposed change. Every change that Transform considers must be assessed across four risk dimensions, each backed by evidence, before a recommendation is issued.
235
+
236
+ | Field | Type | Required | Description |
237
+ |-------|------|----------|-------------|
238
+ | `change_id` | string | yes | Unique change identifier. |
239
+ | `finding_refs` | list of strings | yes | Finding IDs this change addresses. Each must match a valid finding ID. |
240
+ | `blast_radius` | object | yes | Contains: `score` (integer, 1-5), `evidence` (string), `affected_files` (list of strings). How widely the change ripples through the codebase. |
241
+ | `coupling_risk` | object | yes | Contains: `score` (integer, 1-5), `evidence` (string), `new_dependencies` (list of strings). Whether the change introduces or tightens coupling. |
242
+ | `regression_probability` | object | yes | Contains: `score` (integer, 1-5), `evidence` (string), `test_coverage_pct` (number). Likelihood the change breaks existing functionality. |
243
+ | `architectural_tension` | object | yes | Contains: `score` (integer, 1-5), `evidence` (string), `design_conflicts` (list of strings). Whether the change conflicts with the codebase's architectural direction. |
244
+ | `overall_risk` | enum | yes | Aggregate risk classification. Valid values: `low`, `medium`, `high`, `critical`. |
245
+ | `recommendation` | enum | yes | Action recommendation based on risk assessment. Valid values: `proceed`, `proceed_with_caution`, `human_review_required`, `reject`. |
246
+
247
+ ### Intervention Level (`intervention-level.md`)
248
+
249
+ The intervention-level schema defines the governance tiers that control what Transform is permitted to do. Each level sets thresholds for finding confidence, evidence requirements, and high-risk behavior.
250
+
251
+ | Field | Type | Required | Description |
252
+ |-------|------|----------|-------------|
253
+ | `level` | enum | yes | The intervention tier. Valid values: `suggesting`, `planning`, `authorizing`, `executing`. |
254
+ | `minimum_finding_confidence` | enum | no | Minimum confidence a finding must have for this level to apply. Valid values: `low`, `medium`, `high`. |
255
+ | `minimum_evidence_sources` | integer | no | Minimum number of independent evidence sources required. |
256
+ | `allowed_when_risk_high` | boolean | no | Whether this intervention level is permitted when the change risk exceeds "high". |
257
+
258
+ ### Verification Plan (`verification-plan.md`)
259
+
260
+ The verification-plan schema defines the checks that must be performed before, after, and in regression testing of a change. It also specifies rollback criteria and procedures, ensuring every Transform change is reversible.
261
+
262
+ | Field | Type | Required | Description |
263
+ |-------|------|----------|-------------|
264
+ | `change_id` | string | yes | The change this verification plan covers. Must match a change-risk assessment's `change_id`. |
265
+ | `pre_change_checks` | list of objects | yes | Each object contains: `check_name` (string), `command_or_instruction` (string), `expected_result` (string). Checks to run before applying the change. |
266
+ | `post_change_checks` | list of objects | yes | Each object contains: `check_name` (string), `command_or_instruction` (string), `expected_result` (string). Checks to run after applying the change. |
267
+ | `regression_checks` | list of objects | yes | Each object contains: `check_name` (string), `command_or_instruction` (string), `expected_result` (string). Checks to confirm no existing functionality is broken. |
268
+ | `rollback_criteria` | list of strings | yes | Conditions under which rollback is required. Each criterion must be specific and observable. |
269
+ | `rollback_procedure` | string | yes | How to undo the change. Must be a concrete, step-by-step procedure. |
@@ -0,0 +1,273 @@
1
+ # Tool Convention
2
+
3
+ ## Purpose
4
+
5
+ Tools define **INPUTS** — how to run external analysis tools, parse their output, and normalize it into the Radar signal format. Tools are the bridge between raw scanner output and structured agent input.
6
+
7
+ In Radar, tools produce **signals**; agents **interpret** them. A tool file never says what a finding means — it only says how to run the scanner, what the raw output looks like, and how to map that output into a normalized signal schema that agents can consume. The interpretation, severity assessment, and contextual judgment all happen at the agent layer.
8
+
9
+ Some tools produce signals consumed by both Core diagnostic agents and Transform intervention agents. Additionally, Transform introduces a new category of tool usage: change-risk analysis tooling that feeds the Change Risk Modeler.
10
+
11
+ Radar uses 7 or more tool files, one per external analysis tool.
12
+
13
+ ## Location
14
+
15
+ ```
16
+ src/tools/
17
+ ```
18
+
19
+ ## Naming
20
+
21
+ **Pattern:** `{kebab-name}.md`
22
+
23
+ One tool per file, even when tools are commonly used together (e.g., Syft and Grype are separate files despite being complementary).
24
+
25
+ **Examples:**
26
+ - `semgrep.md`
27
+ - `trivy.md`
28
+ - `gitleaks.md`
29
+ - `syft.md`
30
+ - `grype.md`
31
+ - `git-history.md`
32
+ - `checkov.md`
33
+
34
+ ## Required Structure
35
+
36
+ Every tool file consists of YAML frontmatter followed by 6 mandatory sections.
37
+
38
+ ### Frontmatter (Required)
39
+
40
+ ```yaml
41
+ ---
42
+ id: {kebab-name}
43
+ name: [Tool Display Name]
44
+ type: [static_analysis | vulnerability_scan | secrets_detection | iac_scan | sbom | history_mining | code_quality]
45
+ domains_fed: [list of domain numbers this tool produces signals for]
46
+ install_required: [true | false]
47
+ install_command: [command to install, if required]
48
+ ---
49
+ ```
50
+
51
+ | Field | Type | Required | Description |
52
+ |-------|------|----------|-------------|
53
+ | `id` | string | yes | Kebab-case identifier, must match filename without extension |
54
+ | `name` | string | yes | Human-readable tool name (e.g., "Semgrep", "Trivy") |
55
+ | `type` | enum | yes | Tool category. One of: `static_analysis`, `vulnerability_scan`, `secrets_detection`, `iac_scan`, `sbom`, `history_mining`, `code_quality`, `change_risk_analysis` |
56
+ | `domains_fed` | list of strings | yes | Two-digit domain numbers this tool produces signals for |
57
+ | `install_required` | boolean | yes | Whether the tool requires explicit installation |
58
+ | `install_command` | string | conditional | Required if `install_required` is `true`. Exact command to install the tool. |
59
+
60
+ ### Body Sections (All Required)
61
+
62
+ | Section | Header | Purpose |
63
+ |---------|--------|---------|
64
+ | Purpose | `## Purpose` | What this tool does and what types of signals it produces. |
65
+ | Configuration | `## Configuration` | How to configure the tool for Radar use. Config files, rule sets, policies. |
66
+ | Execution | `## Execution` | Exact commands to run the tool. Input parameters, expected runtime characteristics. |
67
+ | Output Format | `## Output Format` | What raw tool output looks like. Representative example snippet. |
68
+ | Normalization | `## Normalization` | How to transform raw output into Radar signal schema. Field mapping table. |
69
+ | Limitations | `## Limitations` | What the tool cannot detect. Known false positive/negative patterns. |
70
+
71
+ ## Cross-References
72
+
73
+ | Direction | What | How |
74
+ |-----------|------|-----|
75
+ | Referenced BY | Domain files (`src/domains/`) | In the Tool Affinities section |
76
+ | Referenced BY | Agent assembly manifests (`src/agents/`) | `tools: [{tool-id}, ...]` field |
77
+ | Referenced BY | Workflows (`src/workflows/`) | For tool execution steps |
78
+ | References | Signal schema (`src/schemas/signal.md`) | Normalization target format |
79
+
80
+ ## Example Skeleton
81
+
82
+ ````markdown
83
+ ---
84
+ id: semgrep
85
+ name: Semgrep
86
+ type: static_analysis
87
+ domains_fed: ["04", "01", "06"]
88
+ install_required: true
89
+ install_command: pip install semgrep
90
+ ---
91
+
92
+ ## Purpose
93
+
94
+ [What this tool does and what kinds of signals it produces.
95
+
96
+ Example: "Semgrep is a static analysis tool that pattern-matches source code
97
+ against a library of rules covering security vulnerabilities, code quality
98
+ issues, and framework-specific anti-patterns. It produces signals for
99
+ injection flaws, authentication weaknesses, insecure cryptography,
100
+ hardcoded secrets, and architectural pattern violations."]
101
+
102
+ ## Configuration
103
+
104
+ [How to configure the tool for Radar use. Include actual config file contents
105
+ where applicable.]
106
+
107
+ ### Config File
108
+
109
+ ```yaml
110
+ # .semgrep.yml (place in target repository root or pass via --config)
111
+ rules:
112
+ - p/security-audit
113
+ - p/owasp-top-ten
114
+ - p/secrets
115
+ - [additional rule packs relevant to Radar domains]
116
+ ```
117
+
118
+ ### Rule Sets
119
+
120
+ - [Rule set 1 — e.g., "`p/security-audit` — broad security pattern matching"]
121
+ - [Rule set 2 — e.g., "`p/owasp-top-ten` — OWASP Top 10 coverage"]
122
+ - [Additional rule sets with brief description of what each covers]
123
+
124
+ ### Configuration Notes
125
+
126
+ - [Note 1 — e.g., "Use `--severity ERROR WARNING` to exclude INFO-level noise"]
127
+ - [Note 2 — e.g., "Set `--timeout 300` for large repositories"]
128
+ - [Additional configuration guidance]
129
+
130
+ ## Execution
131
+
132
+ ### Primary Command
133
+
134
+ ```bash
135
+ semgrep scan \
136
+ --config auto \
137
+ --json \
138
+ --output {output_dir}/semgrep-results.json \
139
+ --severity ERROR WARNING \
140
+ --timeout 300 \
141
+ {target_path}
142
+ ```
143
+
144
+ ### Parameters
145
+
146
+ | Parameter | Value | Description |
147
+ |-----------|-------|-------------|
148
+ | `{target_path}` | Path to repository root | Directory to scan |
149
+ | `{output_dir}` | `.radar/signals/` | Where to write output |
150
+
151
+ ### Runtime Expectations
152
+
153
+ - [Expected runtime — e.g., "2-10 minutes for repositories under 100k lines"]
154
+ - [Resource requirements — e.g., "Requires ~2GB RAM for large rule sets"]
155
+ - [Common failure modes — e.g., "Times out on generated code; exclude with --exclude"]
156
+
157
+ ## Output Format
158
+
159
+ [Description of what the raw output looks like, followed by a representative snippet.]
160
+
161
+ ```json
162
+ {
163
+ "results": [
164
+ {
165
+ "check_id": "[rule.id — e.g., python.lang.security.injection.sql-injection]",
166
+ "path": "[file path relative to scan root]",
167
+ "start": { "line": 42, "col": 5 },
168
+ "end": { "line": 42, "col": 68 },
169
+ "extra": {
170
+ "message": "[Human-readable description of the finding]",
171
+ "severity": "[ERROR | WARNING | INFO]",
172
+ "metadata": {
173
+ "cwe": ["[CWE-89]"],
174
+ "owasp": ["[A03:2021]"],
175
+ "confidence": "[HIGH | MEDIUM | LOW]"
176
+ }
177
+ }
178
+ }
179
+ ]
180
+ }
181
+ ```
182
+
183
+ ## Normalization
184
+
185
+ Transform raw tool output into Radar signal schema format.
186
+
187
+ ### Field Mapping
188
+
189
+ | Raw Field | Signal Field | Transformation |
190
+ |-----------|-------------|----------------|
191
+ | `check_id` | `rule_id` | Direct mapping |
192
+ | `path` | `file_path` | Prepend repository root if relative |
193
+ | `start.line` | `location.start_line` | Direct mapping |
194
+ | `end.line` | `location.end_line` | Direct mapping |
195
+ | `extra.message` | `description` | Direct mapping |
196
+ | `extra.severity` | `tool_severity` | Map: ERROR=high, WARNING=medium, INFO=low |
197
+ | `extra.metadata.cwe` | `references.cwe` | Direct mapping (array) |
198
+ | `extra.metadata.confidence` | `tool_confidence` | Map: HIGH=high, MEDIUM=medium, LOW=low |
199
+ | (generated) | `signal_id` | Generate: `{tool_id}-{sequential_number}` |
200
+ | (generated) | `source_tool` | Set to `{tool_id}` |
201
+
202
+ ### Normalization Notes
203
+
204
+ - [Note 1 — e.g., "Semgrep severity is relative to its rule set, not absolute.
205
+ Map to Radar signal severity but do not treat as final finding severity."]
206
+ - [Note 2 — e.g., "Deduplicate signals with identical check_id and file_path+line."]
207
+ - [Additional normalization guidance]
208
+
209
+ ## Limitations
210
+
211
+ ### Cannot Detect
212
+
213
+ - [Limitation 1 — e.g., "Business logic flaws — Semgrep matches patterns, not intent"]
214
+ - [Limitation 2 — e.g., "Runtime-only vulnerabilities (race conditions, timing attacks)"]
215
+ - [Limitation 3 — e.g., "Issues in dynamically generated code or templated strings"]
216
+
217
+ ### Known False Positive Patterns
218
+
219
+ - [Pattern 1 — e.g., "Flags test fixtures that intentionally contain vulnerable patterns"]
220
+ - [Pattern 2 — e.g., "Reports 'hardcoded secret' on non-secret constants with high entropy"]
221
+ - [Additional false positive patterns agents should be aware of]
222
+
223
+ ### Known False Negative Patterns
224
+
225
+ - [Pattern 1 — e.g., "Misses injection via indirect variable concatenation across functions"]
226
+ - [Pattern 2 — e.g., "Does not follow data flow through ORMs with custom query methods"]
227
+ - [Additional false negative patterns]
228
+ ````
229
+
230
+ ## Transform Tool Conventions
231
+
232
+ Transform agents consume tool signals differently from Core agents. Core agents interpret signals as evidence for findings. Transform agents use signals as input for change-risk modeling and remediation context.
233
+
234
+ **Tools that feed Transform (in addition to Core):**
235
+
236
+ | Tool Category | Purpose | Change Risk Dimension |
237
+ |--------------|---------|----------------------|
238
+ | Dependency graph analyzers | Map module coupling and dependency chains | Coupling risk |
239
+ | Test coverage mappers | Identify tested vs untested code paths | Regression probability |
240
+ | Change impact analyzers | Estimate blast radius of proposed changes | Blast radius |
241
+ | Git history miners | Identify change frequency, ownership, and churn patterns | All dimensions |
242
+
243
+ **Reused Core tools for Transform:**
244
+ - `git-history` tool signals feed both Core (Domain 11-12: change risk, ownership) and Transform (regression probability, blast radius estimation)
245
+ - `sonarqube` complexity metrics inform both Core (code health) and Transform (architectural tension estimation)
246
+
247
+ **Tool output normalization for change-risk signals:**
248
+
249
+ Transform-specific normalization adds a change-risk mapping in addition to the standard signal normalization:
250
+
251
+ | Raw Signal | Change Risk Signal | Transformation |
252
+ |-----------|-------------------|----------------|
253
+ | Test coverage percentage per file | `regression_probability_input` | Lower coverage = higher regression probability |
254
+ | Import/dependency count per module | `coupling_risk_input` | More dependencies = higher coupling risk |
255
+ | File modification frequency (churn) | `blast_radius_input` | High churn = many dependents = higher blast radius |
256
+ | Cyclomatic complexity | `architectural_tension_input` | High complexity = harder to change safely |
257
+
258
+ **New tool type: `change_risk_analysis`**
259
+
260
+ Tools in this category produce signals specifically for the Change Risk Modeler. They follow the same convention structure (Purpose, Configuration, Execution, Output Format, Normalization, Limitations) but their normalization section maps to change-risk dimensions rather than finding severity.
261
+
262
+ ## Anti-Patterns
263
+
264
+ | Anti-Pattern | Why It's Wrong |
265
+ |--------------|----------------|
266
+ | Embedding audit logic | "If this finding appears, it means the application is vulnerable" is interpretation — that's agent work. Tool files describe *what* the tool outputs and *how* to normalize it, not *what it means*. |
267
+ | Tool-specific severity scales without normalization guidance | Every tool has its own severity scale. Without explicit mapping to Radar signal schema severity, agents receive inconsistent input. The normalization section must include severity mapping. |
268
+ | Missing execution commands | A tool spec that doesn't include the exact command to run is incomplete. Workflows need to execute tools programmatically. If the command isn't here, it doesn't exist. |
269
+ | Combining multiple tools in one file | Syft and Grype are complementary but separate tools with separate execution, output formats, and signal types. One file per tool, always. Cross-reference via domain affinities if needed. |
270
+ | Omitting limitations | Every tool has blind spots. Failing to document what a tool *cannot* detect leads agents to assume absence of signals means absence of issues. Limitations are as important as capabilities. |
271
+ | Prescriptive interpretation of output | "A HIGH severity Semgrep finding should be treated as critical" is prescriptive interpretation. The tool file maps `HIGH` to the signal field `tool_severity: high`. The agent decides the actual finding severity using its persona and domain knowledge. |
272
+ | Tool that claims to assess change risk without evidence | A tool output that says 'high risk' without measurable data (coverage percentage, dependency count, churn rate) is not useful for Transform. Change risk must be grounded in quantifiable signals. |
273
+ | Conflating tool severity with change risk | A Semgrep finding with severity 'HIGH' does not mean the fix has high change risk. Tool severity describes the problem's impact. Change risk describes the danger of the fix. These are orthogonal dimensions. |