@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,611 @@
1
+ ---
2
+ id: grype
3
+ name: Grype
4
+ type: vulnerability_scan
5
+ domains_fed: ["04", "05"]
6
+ install_required: true
7
+ install_command: "See Installation section — curl, brew, or Docker"
8
+ ---
9
+
10
+ ## Purpose
11
+
12
+ Vulnerability scanner from the Anchore ecosystem that matches cataloged packages against known CVE databases. Operates in two distinct modes: direct filesystem or container image scanning, and SBOM-input mode (consuming a Syft-generated SBOM as stdin). The SBOM-input mode makes Grype the natural complement to Syft — Syft catalogs, Grype finds vulnerabilities. Feeds Security (04) and Compliance (05) domains.
13
+
14
+ In Radar workflows, both modes are valid. Direct scanning is faster for one-shot audits. SBOM-input mode is preferred when Syft has already been run, enabling reuse of the package catalog without re-traversal. Grype maintains its own vulnerability database (grype-db), independent of Trivy's database, providing a second opinion on the same dependency surface.
15
+
16
+ Signals are NOT findings. Grype produces evidence that agents interpret.
17
+
18
+ ## Configuration
19
+
20
+ Grype supports configuration via a `.grype.yaml` file placed at the project root or in the user home directory:
21
+
22
+ **Configuration File** (`.grype.yaml`):
23
+ ```yaml
24
+ output: json
25
+ file: ""
26
+ db:
27
+ cache-dir: ~/.cache/grype/db
28
+ update-url: https://toolbox-data.anchore.io/grype/databases/listing.json
29
+ auto-update: true
30
+ validate-by-hash-on-start: false
31
+ dev:
32
+ profile-cpu: false
33
+ log:
34
+ structured: false
35
+ level: warn
36
+ fail-on-severity: ""
37
+ only-fixed: false
38
+ only-notfixed: false
39
+ ignore:
40
+ - vulnerability: CVE-2024-12345
41
+ reason: "Vendored with backported patch"
42
+ - vulnerability: CVE-2024-67890
43
+ reason: "No exploitable code path in our usage"
44
+ ```
45
+
46
+ **Key Configuration Options**:
47
+ - **Severity Filtering**: `--fail-on-severity critical` exits non-zero when findings meet threshold, useful for CI gates
48
+ - **Fixed/Unfixed Filtering**: `--only-fixed` restricts output to vulnerabilities with a known fix, reducing noise
49
+ - **DB Auto-Update**: Automatic grype-db refresh on each run (configurable); first run downloads ~50MB
50
+ - **Ignore List**: Per-project `ignore` entries with required `reason` field for audit trails
51
+ - **Output Format**: json, table, cyclonedx, sarif, template
52
+
53
+ **Environment Variables**:
54
+ - `GRYPE_DB_CACHE_DIR`: Override default database cache location
55
+ - `GRYPE_DB_UPDATE_URL`: Custom vulnerability database mirror for air-gapped environments
56
+ - `GRYPE_CHECK_FOR_APP_UPDATE`: Disable Grype's self-update check (`false` for CI)
57
+
58
+ ## Execution
59
+
60
+ ### Installation Options
61
+
62
+ **Platform-Agnostic Methods**:
63
+
64
+ 1. **Installation Script** (Linux/macOS — recommended):
65
+ ```bash
66
+ curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin
67
+ ```
68
+
69
+ 2. **Homebrew** (macOS):
70
+ ```bash
71
+ brew tap anchore/grype
72
+ brew install grype
73
+ ```
74
+
75
+ 3. **Docker** (recommended for CI/CD and consistency):
76
+ ```bash
77
+ docker pull anchore/grype:latest
78
+ ```
79
+
80
+ 4. **Binary Download** (all platforms):
81
+ Download from [GitHub Releases](https://github.com/anchore/grype/releases)
82
+
83
+ ### Primary Execution Commands
84
+
85
+ **Direct Filesystem Scanning** (Radar primary use case, Mode 1):
86
+ ```bash
87
+ grype dir:{target_path} --output json --file {output_dir}/grype-results.json
88
+ ```
89
+
90
+ **SBOM-Input Mode** (Mode 2 — consumes Syft output, preferred when Syft already ran):
91
+ ```bash
92
+ syft {target_path} -o syft-json | grype --output json --file {output_dir}/grype-results.json
93
+ ```
94
+
95
+ **SBOM from File** (Mode 2 variant — when Syft output is already saved to disk):
96
+ ```bash
97
+ grype sbom:{output_dir}/syft-sbom.json --output json --file {output_dir}/grype-results.json
98
+ ```
99
+
100
+ **Docker Variant** (direct scan):
101
+ ```bash
102
+ docker run --rm \
103
+ -v {target_path}:/target \
104
+ -v ~/.cache/grype:/root/.cache/grype \
105
+ anchore/grype:latest \
106
+ dir:/target \
107
+ --output json \
108
+ --file /target/.radar/signals/grype-results.json
109
+ ```
110
+
111
+ **Container Image Scanning**:
112
+ ```bash
113
+ grype {image_name}:{tag} --output json --file {output_dir}/grype-image-results.json
114
+ ```
115
+
116
+ ### Execution Parameters
117
+
118
+ | Parameter | Purpose | Values | Default |
119
+ |-----------|---------|--------|---------|
120
+ | `--output` | Output format | json, table, cyclonedx, sarif, template | table |
121
+ | `--file` | Output file path | file path | stdout |
122
+ | `--fail-on-severity` | Exit non-zero at threshold | critical, high, medium, low, negligible | "" (disabled) |
123
+ | `--only-fixed` | Suppress unfixed findings | boolean | false |
124
+ | `--only-notfixed` | Show only unfixed findings | boolean | false |
125
+ | `--add-cpes-if-none` | Attempt CPE generation when missing | boolean | false |
126
+ | `--by-cve` | Group results by CVE rather than package | boolean | false |
127
+ | `--config` | Custom config file path | file path | .grype.yaml |
128
+ | `--quiet` | Suppress all non-essential output | boolean | false |
129
+
130
+ ### Runtime Characteristics
131
+
132
+ - **First Run**: 30-60 seconds (includes ~50MB vulnerability database download)
133
+ - **Subsequent Runs**: 5-15 seconds (database cached, fast matcher)
134
+ - **SBOM-Input Mode**: Slightly faster than direct scan — skips package cataloging
135
+ - **Database Updates**: Automatic on each run by default (configurable to manual)
136
+ - **Resource Usage**: Low CPU and memory; minimal disk I/O once DB is cached
137
+ - **Network Requirements**: Initial DB download only; `--db.auto-update=false` for air-gapped use
138
+
139
+ ## Output Format
140
+
141
+ Grype produces structured JSON output with a flat matches array (unlike Trivy's per-target nesting):
142
+
143
+ ```json
144
+ {
145
+ "matches": [
146
+ {
147
+ "vulnerability": {
148
+ "id": "CVE-2024-45590",
149
+ "dataSource": "https://nvd.nist.gov/vuln/detail/CVE-2024-45590",
150
+ "namespace": "npm:advisory",
151
+ "severity": "High",
152
+ "urls": [
153
+ "https://nvd.nist.gov/vuln/detail/CVE-2024-45590",
154
+ "https://github.com/expressjs/express/security/advisories/GHSA-qw6h-vgh9-j6wx"
155
+ ],
156
+ "description": "Express.js static file serving middleware allows path traversal attacks via specially crafted requests with encoded path separators, enabling unauthorized access to files outside the intended directory.",
157
+ "cvss": [
158
+ {
159
+ "version": "3.1",
160
+ "vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N",
161
+ "metrics": {
162
+ "baseScore": 7.5,
163
+ "exploitabilityScore": 3.9,
164
+ "impactScore": 3.6
165
+ },
166
+ "vendorMetadata": {}
167
+ }
168
+ ],
169
+ "fix": {
170
+ "versions": ["4.19.2"],
171
+ "state": "fixed"
172
+ },
173
+ "advisories": [
174
+ {
175
+ "id": "GHSA-qw6h-vgh9-j6wx",
176
+ "link": "https://github.com/expressjs/express/security/advisories/GHSA-qw6h-vgh9-j6wx"
177
+ }
178
+ ]
179
+ },
180
+ "relatedVulnerabilities": [
181
+ {
182
+ "id": "GHSA-qw6h-vgh9-j6wx",
183
+ "dataSource": "https://github.com/advisories/GHSA-qw6h-vgh9-j6wx",
184
+ "namespace": "github:language:javascript",
185
+ "severity": "High",
186
+ "urls": ["https://github.com/advisories/GHSA-qw6h-vgh9-j6wx"],
187
+ "description": "Express.js path traversal vulnerability in static file serving",
188
+ "cvss": [],
189
+ "fix": {
190
+ "versions": ["4.19.2"],
191
+ "state": "fixed"
192
+ },
193
+ "advisories": []
194
+ }
195
+ ],
196
+ "matchDetails": [
197
+ {
198
+ "type": "exact-indirect-match",
199
+ "matcher": "javascript-matcher",
200
+ "searchedBy": {
201
+ "language": "javascript",
202
+ "namespace": "npm:advisory",
203
+ "package": {
204
+ "name": "express",
205
+ "version": "4.17.1"
206
+ }
207
+ },
208
+ "found": {
209
+ "versionConstraint": "< 4.19.2 (unknown)",
210
+ "vulnerabilityID": "CVE-2024-45590"
211
+ }
212
+ }
213
+ ],
214
+ "artifact": {
215
+ "id": "a1b2c3d4e5f60001",
216
+ "name": "express",
217
+ "version": "4.17.1",
218
+ "type": "npm",
219
+ "locations": [
220
+ {
221
+ "path": "/package-lock.json",
222
+ "layerID": ""
223
+ }
224
+ ],
225
+ "language": "javascript",
226
+ "licenses": ["MIT"],
227
+ "cpes": [
228
+ "cpe:2.3:a:expressjs:express:4.17.1:*:*:*:*:node.js:*:*"
229
+ ],
230
+ "purl": "pkg:npm/express@4.17.1",
231
+ "upstreams": []
232
+ }
233
+ },
234
+ {
235
+ "vulnerability": {
236
+ "id": "CVE-2024-43796",
237
+ "dataSource": "https://nvd.nist.gov/vuln/detail/CVE-2024-43796",
238
+ "namespace": "npm:advisory",
239
+ "severity": "Critical",
240
+ "urls": [
241
+ "https://nvd.nist.gov/vuln/detail/CVE-2024-43796",
242
+ "https://github.com/axios/axios/issues/6463"
243
+ ],
244
+ "description": "Axios library allows Server-Side Request Forgery (SSRF) attacks via URL parsing inconsistencies when handling user-controlled URLs with CRLF injection, potentially enabling attackers to bypass allow-lists and access internal resources.",
245
+ "cvss": [
246
+ {
247
+ "version": "3.1",
248
+ "vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N",
249
+ "metrics": {
250
+ "baseScore": 9.3,
251
+ "exploitabilityScore": 3.9,
252
+ "impactScore": 5.8
253
+ },
254
+ "vendorMetadata": {}
255
+ }
256
+ ],
257
+ "fix": {
258
+ "versions": ["1.7.4"],
259
+ "state": "fixed"
260
+ },
261
+ "advisories": []
262
+ },
263
+ "relatedVulnerabilities": [],
264
+ "matchDetails": [
265
+ {
266
+ "type": "exact-direct-match",
267
+ "matcher": "javascript-matcher",
268
+ "searchedBy": {
269
+ "language": "javascript",
270
+ "namespace": "npm:advisory",
271
+ "package": {
272
+ "name": "axios",
273
+ "version": "0.21.1"
274
+ }
275
+ },
276
+ "found": {
277
+ "versionConstraint": "< 1.7.4 (unknown)",
278
+ "vulnerabilityID": "CVE-2024-43796"
279
+ }
280
+ }
281
+ ],
282
+ "artifact": {
283
+ "id": "b2c3d4e5f6a70002",
284
+ "name": "axios",
285
+ "version": "0.21.1",
286
+ "type": "npm",
287
+ "locations": [
288
+ {
289
+ "path": "/package-lock.json",
290
+ "layerID": ""
291
+ }
292
+ ],
293
+ "language": "javascript",
294
+ "licenses": ["MIT"],
295
+ "cpes": [
296
+ "cpe:2.3:a:axios-http:axios:0.21.1:*:*:*:*:node.js:*:*"
297
+ ],
298
+ "purl": "pkg:npm/axios@0.21.1",
299
+ "upstreams": []
300
+ }
301
+ },
302
+ {
303
+ "vulnerability": {
304
+ "id": "CVE-2023-26136",
305
+ "dataSource": "https://nvd.nist.gov/vuln/detail/CVE-2023-26136",
306
+ "namespace": "npm:advisory",
307
+ "severity": "Medium",
308
+ "urls": [
309
+ "https://nvd.nist.gov/vuln/detail/CVE-2023-26136",
310
+ "https://github.com/salesforce/tough-cookie/issues/282"
311
+ ],
312
+ "description": "The tough-cookie package before 4.1.3 for Node.js allows prototype pollution via cookie values, which could enable arbitrary property injection and potential denial of service.",
313
+ "cvss": [
314
+ {
315
+ "version": "3.1",
316
+ "vector": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:L",
317
+ "metrics": {
318
+ "baseScore": 4.8,
319
+ "exploitabilityScore": 2.2,
320
+ "impactScore": 2.5
321
+ },
322
+ "vendorMetadata": {}
323
+ }
324
+ ],
325
+ "fix": {
326
+ "versions": ["4.1.3"],
327
+ "state": "fixed"
328
+ },
329
+ "advisories": []
330
+ },
331
+ "relatedVulnerabilities": [],
332
+ "matchDetails": [
333
+ {
334
+ "type": "exact-indirect-match",
335
+ "matcher": "javascript-matcher",
336
+ "searchedBy": {
337
+ "language": "javascript",
338
+ "namespace": "npm:advisory",
339
+ "package": {
340
+ "name": "tough-cookie",
341
+ "version": "2.5.0"
342
+ }
343
+ },
344
+ "found": {
345
+ "versionConstraint": "< 4.1.3 (unknown)",
346
+ "vulnerabilityID": "CVE-2023-26136"
347
+ }
348
+ }
349
+ ],
350
+ "artifact": {
351
+ "id": "c3d4e5f6a7b80003",
352
+ "name": "tough-cookie",
353
+ "version": "2.5.0",
354
+ "type": "npm",
355
+ "locations": [
356
+ {
357
+ "path": "/package-lock.json",
358
+ "layerID": ""
359
+ }
360
+ ],
361
+ "language": "javascript",
362
+ "licenses": ["BSD-3-Clause"],
363
+ "cpes": [
364
+ "cpe:2.3:a:salesforce:tough-cookie:2.5.0:*:*:*:*:node.js:*:*"
365
+ ],
366
+ "purl": "pkg:npm/tough-cookie@2.5.0",
367
+ "upstreams": []
368
+ }
369
+ },
370
+ {
371
+ "vulnerability": {
372
+ "id": "CVE-2024-35195",
373
+ "dataSource": "https://nvd.nist.gov/vuln/detail/CVE-2024-35195",
374
+ "namespace": "pypi:advisory",
375
+ "severity": "Medium",
376
+ "urls": [
377
+ "https://nvd.nist.gov/vuln/detail/CVE-2024-35195",
378
+ "https://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56"
379
+ ],
380
+ "description": "The requests library for Python does not strip the Proxy-Authorization header when handling cross-origin redirects, potentially leaking proxy credentials to third-party servers.",
381
+ "cvss": [
382
+ {
383
+ "version": "3.1",
384
+ "vector": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N",
385
+ "metrics": {
386
+ "baseScore": 5.9,
387
+ "exploitabilityScore": 2.2,
388
+ "impactScore": 3.6
389
+ },
390
+ "vendorMetadata": {}
391
+ }
392
+ ],
393
+ "fix": {
394
+ "versions": ["2.32.0"],
395
+ "state": "fixed"
396
+ },
397
+ "advisories": [
398
+ {
399
+ "id": "GHSA-9wx4-h78v-vm56",
400
+ "link": "https://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56"
401
+ }
402
+ ]
403
+ },
404
+ "relatedVulnerabilities": [],
405
+ "matchDetails": [
406
+ {
407
+ "type": "exact-direct-match",
408
+ "matcher": "python-matcher",
409
+ "searchedBy": {
410
+ "language": "python",
411
+ "namespace": "pypi:advisory",
412
+ "package": {
413
+ "name": "requests",
414
+ "version": "2.28.0"
415
+ }
416
+ },
417
+ "found": {
418
+ "versionConstraint": "< 2.32.0 (unknown)",
419
+ "vulnerabilityID": "CVE-2024-35195"
420
+ }
421
+ }
422
+ ],
423
+ "artifact": {
424
+ "id": "d4e5f6a7b8c90004",
425
+ "name": "requests",
426
+ "version": "2.28.0",
427
+ "type": "python",
428
+ "locations": [
429
+ {
430
+ "path": "/requirements.txt",
431
+ "layerID": ""
432
+ }
433
+ ],
434
+ "language": "python",
435
+ "licenses": ["Apache-2.0"],
436
+ "cpes": [
437
+ "cpe:2.3:a:python-requests:requests:2.28.0:*:*:*:*:python:*:*"
438
+ ],
439
+ "purl": "pkg:pypi/requests@2.28.0",
440
+ "upstreams": []
441
+ }
442
+ }
443
+ ],
444
+ "source": {
445
+ "type": "directory",
446
+ "target": {
447
+ "path": "/home/user/project"
448
+ }
449
+ },
450
+ "distro": {
451
+ "name": "",
452
+ "version": "",
453
+ "idLike": []
454
+ },
455
+ "descriptor": {
456
+ "name": "grype",
457
+ "version": "0.74.3",
458
+ "configuration": {
459
+ "output": ["json"],
460
+ "file": "",
461
+ "distro": "",
462
+ "add-cpes-if-none": false,
463
+ "output-template-file": "",
464
+ "quiet": false,
465
+ "check-for-app-update": true,
466
+ "only-fixed": false,
467
+ "only-notfixed": false,
468
+ "fail-on-severity": "",
469
+ "registry": {
470
+ "insecure-skip-tls-verify": false,
471
+ "insecure-use-http": false,
472
+ "auth": []
473
+ },
474
+ "ignore": [],
475
+ "db": {
476
+ "cache-dir": "/root/.cache/grype/db",
477
+ "update-url": "https://toolbox-data.anchore.io/grype/databases/listing.json",
478
+ "ca-cert": "",
479
+ "auto-update": true,
480
+ "validate-by-hash-on-start": false
481
+ }
482
+ },
483
+ "db": {
484
+ "built": "2026-02-15T01:16:13Z",
485
+ "schemaVersion": 5,
486
+ "location": "/root/.cache/grype/db/5",
487
+ "checksum": "sha256:a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2",
488
+ "error": null
489
+ }
490
+ }
491
+ }
492
+ ```
493
+
494
+ **Key Output Fields**:
495
+ - `matches[]`: Flat array of vulnerability match objects (one entry per CVE+package combination)
496
+ - `vulnerability.id`: CVE identifier (e.g., CVE-2024-45590)
497
+ - `vulnerability.severity`: Critical, High, Medium, Low, Negligible
498
+ - `vulnerability.cvss[].metrics.baseScore`: CVSS v3 base score
499
+ - `vulnerability.fix.versions[]`: Version(s) containing the fix
500
+ - `vulnerability.fix.state`: "fixed", "not-fixed", "wont-fix", "unknown"
501
+ - `matchDetails[].type`: Match confidence indicator — `exact-direct-match`, `exact-indirect-match`, `cpe-match`
502
+ - `artifact.name`: Affected package name
503
+ - `artifact.version`: Installed version
504
+ - `artifact.type`: Package ecosystem (npm, python, go, java, etc.)
505
+ - `artifact.locations[].path`: File containing the package declaration
506
+ - `artifact.purl`: Package URL for unambiguous package identification
507
+ - `source`: Scanned target details (directory, image, SBOM file)
508
+ - `descriptor.db.built`: Timestamp of the vulnerability database used
509
+
510
+ ## Normalization
511
+
512
+ Grype raw output requires normalization to Radar signal format:
513
+
514
+ | Grype Field | Radar Signal Field | Transformation Logic |
515
+ |-------------|-------------------|----------------------|
516
+ | `vulnerability.id` | `source_rule` | Direct mapping (e.g., CVE-2024-45590) |
517
+ | Auto-generated | `signal_id` | Pattern: `S-GRP-{NNN}` (sequential numbering) |
518
+ | Fixed value | `source_tool` | Always "grype" |
519
+ | `artifact.locations[0].path` + `artifact.name` | `file_path` | Combine: `{path}:{name}` (e.g., "/package-lock.json:express") |
520
+ | `vulnerability.description` + `artifact.version` + `vulnerability.fix.versions[0]` | `context` | Enriched: "{description} Found: {version}, Fixed: {fixVersion}" |
521
+ | `vulnerability.severity` | `severity` | Map: Critical→critical, High→high, Medium→medium, Low→low, Negligible→informational |
522
+ | `matchDetails[].type` | `confidence_estimate` | Match-type-based: exact-direct-match→high, exact-indirect-match→medium, cpe-match→low |
523
+ | Derived from `artifact.type` + package role | `blast_radius` | Core dependency→widespread, dev dependency→localized, transitive→moderate |
524
+ | Derived from CVE type + CWE classification | `domain_relevance` | Most CVEs→["04"], data/crypto CVEs→["04","05"] |
525
+ | `vulnerability.fix.state` + `vulnerability.fix.versions` | Signal enrichment | "fixed" with versions→actionable, "not-fixed"→informational flag |
526
+
527
+ ### Normalization Rules
528
+
529
+ **Severity Mapping**:
530
+ - Critical → `severity: "critical"`
531
+ - High → `severity: "high"`
532
+ - Medium → `severity: "medium"`
533
+ - Low → `severity: "low"`
534
+ - Negligible → `severity: "informational"` (track but do not escalate)
535
+
536
+ **Confidence Estimation** (based on `matchDetails[].type`):
537
+ - `exact-direct-match` → `confidence_estimate: "high"` (package version directly confirmed in DB)
538
+ - `exact-indirect-match` → `confidence_estimate: "medium"` (matched via constraint range, not exact version)
539
+ - `cpe-match` → `confidence_estimate: "low"` (CPE-based lookup, higher false positive risk)
540
+ - Multiple match details present → use highest confidence type
541
+ - No match details → `confidence_estimate: "medium"` (default for known CVEs)
542
+
543
+ **Blast Radius Derivation**:
544
+ - Core/production dependency (present in `dependencies` or `install_requires`) → `blast_radius: "widespread"`
545
+ - Dev/test dependency (present in `devDependencies`, `[dev-packages]`, or `[test]` extras) → `blast_radius: "localized"`
546
+ - Transitive dependency (not in top-level manifest, appears only in lock file) → `blast_radius: "moderate"`
547
+ - Determine via cross-referencing `artifact.locations[].path` against direct vs. transitive dependency lists
548
+
549
+ **Domain Relevance Assignment**:
550
+ - Default → `domain_relevance: ["04"]` (Security domain)
551
+ - Data exposure CVEs (CWE-200, CWE-312, CWE-359) → `domain_relevance: ["04", "05"]`
552
+ - Cryptographic CVEs (CWE-295, CWE-327, CWE-338) → `domain_relevance: ["04", "05"]`
553
+ - Authentication/credential CVEs (CWE-287, CWE-522) → `domain_relevance: ["04", "05"]`
554
+ - Compliance-referenced CVEs (HIPAA, PCI-DSS adjacent) → `domain_relevance: ["04", "05"]`
555
+
556
+ **Deduplication Strategy**:
557
+ - Same CVE affecting the same package version in multiple locations → Single signal with aggregated locations
558
+ - Key: `{vulnerability.id}:{artifact.name}:{artifact.version}`
559
+ - Merge `artifact.locations` entries: `["/package-lock.json:axios", "/yarn.lock:axios"]`
560
+ - When Grype and Trivy both detect the same CVE, prefer the higher-confidence match detail; note both tools in `context`
561
+
562
+ **Special Cases**:
563
+ - `fix.state: "wont-fix"` → Flag as accepted upstream risk; lower escalation priority but do not suppress
564
+ - `fix.state: "not-fixed"` → Mark as "unfixed", track for future remediation cycles
565
+ - Negligible severity → Emit as informational signal only; do not contribute to severity scoring
566
+ - `cpe-match` type with no CVSS score → Flag for manual triage; emit signal with `confidence_estimate: "low"`
567
+ - SBOM-input mode produces identical output format — normalization logic is mode-agnostic
568
+
569
+ ## Limitations
570
+
571
+ ### Cannot Detect
572
+
573
+ 1. **Custom/Proprietary Vulnerabilities**: Only identifies vulnerabilities present in Anchore's grype-db, which aggregates NVD, GitHub Advisory Database, and vendor-specific advisories. Internal or unpublished vulnerabilities are invisible until they receive a public CVE assignment.
574
+
575
+ 2. **Business Logic and Application Vulnerabilities**: Cannot identify logic flaws, broken access control, or injection vulnerabilities in first-party application code. Grype evaluates third-party component versions, not code behavior.
576
+
577
+ 3. **Zero-Day Exploits**: Undisclosed vulnerabilities without CVE identifiers are absent from grype-db. Detection is contingent on public disclosure and database ingestion, which introduces a lag of hours to days.
578
+
579
+ 4. **Vendored or Manually Copied Dependencies**: Source code copied directly into the repository without package manager metadata (no `package.json`, `go.sum`, etc.) is invisible to Grype. Detection requires a package manifest or lock file entry.
580
+
581
+ 5. **Runtime-Only Misconfigurations**: Insecure environment variable handling, exposed secrets, or misconfigured TLS settings that do not correspond to a CVE in a versioned package are outside Grype's scope.
582
+
583
+ 6. **Vulnerabilities in Build-Time Tooling**: Compilers, bundlers, linters, and CI/CD tooling that appear only in developer environments and not in production manifests are not evaluated.
584
+
585
+ 7. **Interpreted Scripts and Shell Utilities**: Shell scripts and utility scripts installed outside of a tracked package manager (e.g., curl-installed binaries in CI) do not produce catalog entries and are therefore not matched.
586
+
587
+ ### False Positives
588
+
589
+ 1. **OS Packages with Backported Patches**: Linux distribution packages (rpm, deb) frequently backport security fixes without incrementing the upstream version number. Grype may flag these as vulnerable based on version comparison when the patch is already applied.
590
+
591
+ 2. **CPE-Match Overreach**: When Grype falls back to CPE-based matching (`cpe-match` type), it may associate a package with vulnerabilities from a similarly named but distinct product, particularly for packages with generic names (e.g., `log`, `util`, `crypto`).
592
+
593
+ 3. **Unused or Optional Dependencies**: Packages declared in manifests but never imported in production code paths are flagged at the same severity as actively executed dependencies, inflating risk assessments for dead code.
594
+
595
+ 4. **Dev/Test-Only Dependencies at Production Severity**: Development and test tooling (e.g., `jest`, `pytest`, `eslint`) that never reaches production runtime are reported alongside production dependencies without automatic severity downgrade.
596
+
597
+ 5. **Version Constraint Ambiguity**: `exact-indirect-match` results represent constraint-range matches rather than confirmed version matches. A package resolved to a version that falls within a vulnerable range may not actually be exploitable if the specific vulnerable code path was introduced in a later patch.
598
+
599
+ ### False Negatives
600
+
601
+ 1. **Transitive Dependencies Absent from Lock Files**: Packages resolved at runtime or installed via non-standard mechanisms that do not produce lock file entries are not cataloged by Grype or Syft, and therefore cannot be matched.
602
+
603
+ 2. **Recently Published CVEs**: grype-db is updated daily, but the window between CVE publication and database availability creates a gap. Very recent disclosures may not appear until the next scheduled database refresh.
604
+
605
+ 3. **Custom Forks of Open Source Packages**: Internally maintained forks that diverge from the upstream vulnerability surface (e.g., a fork with unpatched vulnerabilities that the upstream has since fixed) are matched against the upstream version's vulnerability record, which may not reflect the fork's actual state.
606
+
607
+ 4. **Compiled Binaries and Embedded SDKs**: Pre-compiled `.whl`, `.jar`, `.aar`, or SDK bundles embedded in the repository without accompanying manifest metadata cannot be matched without CPE data, and CPE coverage is incomplete.
608
+
609
+ 5. **Packages with Incorrect or Missing PURLs**: Packages that lack valid Package URLs in the SBOM (when using SBOM-input mode) may fail to match against the vulnerability database if the package ecosystem or name does not resolve to a known namespace.
610
+
611
+ 6. **Vulnerabilities Affecting Specific Configurations**: CVEs that only manifest under specific compile flags, platform targets, or optional feature sets are reported as absent if the package version falls outside the vulnerable range for the general case, even if the specific build configuration is affected.