torusguard 1.3.4 → 1.3.6

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 (319) hide show
  1. package/.torusguard/.manifest.json +66 -63
  2. package/.torusguard/rules/business-logic/TG-BIZ-001-client-controlled-sensitive-business-value.md +30 -14
  3. package/.torusguard/rules/business-logic/TG-BIZ-002-replayable-one-time-operation.md +33 -16
  4. package/.torusguard/rules/business-logic/TG-BIZ-003-missing-workflow-state-validation.md +31 -15
  5. package/.torusguard/rules/business-logic/TG-BIZ-004-unrestricted-sensitive-business-flow.md +26 -16
  6. package/.torusguard/rules/cache/TG-CACHE-001-sensitive-response-publicly-cacheable.md +24 -16
  7. package/.torusguard/rules/cache/TG-CACHE-002-missing-user-cache-isolation.md +32 -18
  8. package/.torusguard/rules/cache/TG-CACHE-003-sensitive-data-in-url.md +24 -17
  9. package/.torusguard/rules/csrf/TG-CSRF-001-missing-csrf-protection.md +31 -18
  10. package/.torusguard/rules/csrf/TG-CSRF-002-unsafe-credentialed-cross-origin-request.md +28 -17
  11. package/.torusguard/rules/graphql/TG-GQL-002-resolver-missing-authorization.md +33 -17
  12. package/.torusguard/rules/graphql/TG-GQL-003-unbounded-graphql-pagination-or-batching.md +31 -16
  13. package/.torusguard/rules/graphql/TG-GQL-004-unnecessary-production-introspection.md +25 -16
  14. package/.torusguard/rules/secrets/TG-SEC-005-secret-in-git-history.md +24 -19
  15. package/.torusguard/rules/secrets/TG-SEC-006-secret-in-build-artifact.md +36 -19
  16. package/.torusguard/rules/secrets/TG-SEC-007-secret-in-test-or-example-fixture.md +21 -16
  17. package/.torusguard/rules/ssrf/TG-SSRF-002-missing-internal-network-protection.md +45 -18
  18. package/.torusguard/rules/ssrf/TG-SSRF-003-unsafe-redirect-following.md +20 -16
  19. package/.torusguard/rules/ssrf/TG-SSRF-004-unbounded-outbound-request.md +28 -19
  20. package/.torusguard/rules/supply-chain/TG-SUPPLY-001-missing-or-ignored-dependency-lockfile.md +25 -18
  21. package/.torusguard/rules/supply-chain/TG-SUPPLY-003-unsafe-ci-cd-secret-exposure.md +29 -19
  22. package/.torusguard/rules/supply-chain/TG-SUPPLY-004-unpinned-ci-action.md +23 -18
  23. package/.torusguard/rules/supply-chain/TG-SUPPLY-005-unsafe-dependency-install-script.md +23 -18
  24. package/.torusguard/rules/webhook/TG-WEBHOOK-001-missing-webhook-signature-verification.md +36 -16
  25. package/.torusguard/rules/webhook/TG-WEBHOOK-002-replayable-webhook.md +26 -17
  26. package/.torusguard/rules/webhook/TG-WEBHOOK-003-missing-webhook-idempotency.md +30 -16
  27. package/.torusguard/rules/webhook/TG-WEBHOOK-004-unvalidated-webhook-event-type.md +25 -16
  28. package/.torusguard/rules/websocket/TG-WS-002-missing-channel-level-authorization.md +28 -17
  29. package/.torusguard/rules/websocket/TG-WS-003-unvalidated-websocket-message.md +31 -17
  30. package/.torusguard/rules/websocket/TG-WS-004-unbounded-websocket-connections.md +31 -17
  31. package/.torusguard/rules_catalog.json +520 -0
  32. package/.torusguard/runs/report-latest.html +2700 -232
  33. package/.torusguard/runs/results-latest.sarif +20 -0
  34. package/.torusguard/runs/run-20260912-214110-audit/findings.json +1256 -0
  35. package/.torusguard/runs/run-20260912-214110-audit/findings.md +534 -0
  36. package/.torusguard/runs/run-20260912-214110-audit/manifest.json +12 -0
  37. package/.torusguard/runs/run-20260912-214110-audit/summary.md +5 -0
  38. package/.torusguard/runs/run-20260912-214813-audit/findings.json +992 -0
  39. package/.torusguard/runs/run-20260912-214813-audit/findings.md +422 -0
  40. package/.torusguard/runs/run-20260912-214813-audit/manifest.json +12 -0
  41. package/.torusguard/runs/run-20260912-214813-audit/summary.md +5 -0
  42. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-auth-003-49-7c96f3/metadata.json +17 -0
  43. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-auth-003-49-7c96f3/minimal_patch_plan.md +21 -0
  44. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-auth-003-49-7c96f3/patch.diff +9 -0
  45. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-input-003-53-d167b4/metadata.json +17 -0
  46. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-input-003-53-d167b4/minimal_patch_plan.md +21 -0
  47. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-input-003-53-d167b4/patch.diff +9 -0
  48. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-platform-001-12-cf8156/metadata.json +17 -0
  49. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-platform-001-12-cf8156/minimal_patch_plan.md +21 -0
  50. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-platform-001-12-cf8156/patch.diff +9 -0
  51. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-rate-001-26-affcfa/metadata.json +17 -0
  52. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-rate-001-26-affcfa/minimal_patch_plan.md +21 -0
  53. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-rate-001-26-affcfa/patch.diff +9 -0
  54. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-sec-001-9-e22e50/metadata.json +17 -0
  55. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-sec-001-9-e22e50/minimal_patch_plan.md +21 -0
  56. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-sec-001-9-e22e50/patch.diff +9 -0
  57. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-ssrf-004-9-9803ad/metadata.json +17 -0
  58. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-ssrf-004-9-9803ad/minimal_patch_plan.md +21 -0
  59. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-ssrf-004-9-9803ad/patch.diff +9 -0
  60. package/.torusguard/runs/run-20260912-215555-audit/findings.json +530 -0
  61. package/.torusguard/runs/run-20260912-215555-audit/findings.md +232 -0
  62. package/.torusguard/runs/run-20260912-215555-audit/manifest.json +13 -0
  63. package/.torusguard/runs/run-20260912-215555-audit/remediation.md +102 -0
  64. package/.torusguard/runs/run-20260912-215555-audit/summary.md +5 -0
  65. package/.torusguard/runs/run-20260912-215731-audit/apply_plan.md +6 -0
  66. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-client-001-7-587129/metadata.json +17 -0
  67. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-client-001-7-587129/minimal_patch_plan.md +21 -0
  68. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-client-001-7-587129/patch.diff +9 -0
  69. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-db-002-9-5f7850/metadata.json +17 -0
  70. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-db-002-9-5f7850/minimal_patch_plan.md +21 -0
  71. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-db-002-9-5f7850/patch.diff +9 -0
  72. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-input-001-27-2486f1/metadata.json +17 -0
  73. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-input-001-27-2486f1/minimal_patch_plan.md +22 -0
  74. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-input-001-27-2486f1/patch.diff +10 -0
  75. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-input-003-53-d167b4/metadata.json +17 -0
  76. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-input-003-53-d167b4/minimal_patch_plan.md +21 -0
  77. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-input-003-53-d167b4/patch.diff +9 -0
  78. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-001-12-cf8156/metadata.json +17 -0
  79. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-001-12-cf8156/minimal_patch_plan.md +21 -0
  80. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-001-12-cf8156/patch.diff +9 -0
  81. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-002-17-876973/metadata.json +17 -0
  82. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-002-17-876973/minimal_patch_plan.md +23 -0
  83. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-002-17-876973/patch.diff +11 -0
  84. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-002-5-40c794/metadata.json +17 -0
  85. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-002-5-40c794/minimal_patch_plan.md +23 -0
  86. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-002-5-40c794/patch.diff +11 -0
  87. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-rate-001-26-affcfa/metadata.json +17 -0
  88. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-rate-001-26-affcfa/minimal_patch_plan.md +21 -0
  89. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-rate-001-26-affcfa/patch.diff +9 -0
  90. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-rate-002-54-0b38d2/metadata.json +17 -0
  91. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-rate-002-54-0b38d2/minimal_patch_plan.md +21 -0
  92. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-rate-002-54-0b38d2/patch.diff +9 -0
  93. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-001-18-a3c1e8/metadata.json +17 -0
  94. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-001-18-a3c1e8/minimal_patch_plan.md +21 -0
  95. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-001-18-a3c1e8/patch.diff +9 -0
  96. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-001-9-e22e50/metadata.json +17 -0
  97. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-001-9-e22e50/minimal_patch_plan.md +21 -0
  98. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-001-9-e22e50/patch.diff +9 -0
  99. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-004-28-a1a0a1/metadata.json +17 -0
  100. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-004-28-a1a0a1/minimal_patch_plan.md +21 -0
  101. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-004-28-a1a0a1/patch.diff +9 -0
  102. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-004-30-00569e/metadata.json +17 -0
  103. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-004-30-00569e/minimal_patch_plan.md +21 -0
  104. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-004-30-00569e/patch.diff +9 -0
  105. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-ssrf-004-9-9803ad/metadata.json +17 -0
  106. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-ssrf-004-9-9803ad/minimal_patch_plan.md +21 -0
  107. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-ssrf-004-9-9803ad/patch.diff +9 -0
  108. package/.torusguard/runs/run-20260912-215731-audit/diff_summary.md +186 -0
  109. package/.torusguard/runs/run-20260912-215731-audit/findings.json +497 -0
  110. package/.torusguard/runs/run-20260912-215731-audit/findings.md +218 -0
  111. package/.torusguard/runs/run-20260912-215731-audit/manifest.json +14 -0
  112. package/.torusguard/runs/run-20260912-215731-audit/recheck.md +76 -0
  113. package/.torusguard/runs/run-20260912-215731-audit/remediation.md +234 -0
  114. package/.torusguard/runs/run-20260912-215731-audit/summary.md +5 -0
  115. package/.torusguard/runs/run-20260912-220134-audit/findings.json +68 -0
  116. package/.torusguard/runs/run-20260912-220134-audit/findings.md +36 -0
  117. package/.torusguard/runs/run-20260912-220134-audit/manifest.json +12 -0
  118. package/.torusguard/runs/run-20260912-220134-audit/summary.md +5 -0
  119. package/.torusguard/runs/run-20260912-220200-audit/findings.json +1 -0
  120. package/.torusguard/runs/run-20260912-220200-audit/findings.md +8 -0
  121. package/.torusguard/runs/run-20260912-220200-audit/manifest.json +12 -0
  122. package/.torusguard/runs/run-20260912-220200-audit/recheck.md +6 -0
  123. package/.torusguard/runs/run-20260912-220200-audit/summary.md +5 -0
  124. package/.torusguard/runs/run-20260912-220227-audit/findings.json +1 -0
  125. package/.torusguard/runs/run-20260912-220227-audit/findings.md +8 -0
  126. package/.torusguard/runs/run-20260912-220227-audit/manifest.json +12 -0
  127. package/.torusguard/runs/run-20260912-220227-audit/recheck.md +6 -0
  128. package/.torusguard/runs/run-20260912-220227-audit/summary.md +5 -0
  129. package/.torusguard/runs/run-20260918-104221-audit/findings.json +1 -0
  130. package/.torusguard/runs/run-20260918-104221-audit/findings.md +8 -0
  131. package/.torusguard/runs/run-20260918-104221-audit/manifest.json +12 -0
  132. package/.torusguard/runs/run-20260918-104221-audit/summary.md +5 -0
  133. package/.torusguard/runs/run-20260918-104236-audit/findings.json +2314 -0
  134. package/.torusguard/runs/run-20260918-104236-audit/findings.md +960 -0
  135. package/.torusguard/runs/run-20260918-104236-audit/manifest.json +12 -0
  136. package/.torusguard/runs/run-20260918-104236-audit/summary.md +5 -0
  137. package/.torusguard/runs/run-20260918-105723-audit/findings.json +2382 -0
  138. package/.torusguard/runs/run-20260918-105723-audit/findings.md +960 -0
  139. package/.torusguard/runs/run-20260918-105723-audit/manifest.json +12 -0
  140. package/.torusguard/runs/run-20260918-105723-audit/summary.md +5 -0
  141. package/.torusguard/runs/run-20260918-105731-audit/findings.json +1 -0
  142. package/.torusguard/runs/run-20260918-105731-audit/findings.md +8 -0
  143. package/.torusguard/runs/run-20260918-105731-audit/manifest.json +12 -0
  144. package/.torusguard/runs/run-20260918-105731-audit/summary.md +5 -0
  145. package/.torusguard/runs/run-20260918-105940-audit/findings.json +1 -0
  146. package/.torusguard/runs/run-20260918-105940-audit/findings.md +8 -0
  147. package/.torusguard/runs/run-20260918-105940-audit/manifest.json +12 -0
  148. package/.torusguard/runs/run-20260918-105940-audit/summary.md +5 -0
  149. package/.torusguard/scripts/__pycache__/apply_runner.cpython-314.pyc +0 -0
  150. package/.torusguard/scripts/__pycache__/audit_runner.cpython-311.pyc +0 -0
  151. package/.torusguard/scripts/__pycache__/audit_runner.cpython-314.pyc +0 -0
  152. package/.torusguard/scripts/__pycache__/diff_guard.cpython-314.pyc +0 -0
  153. package/.torusguard/scripts/__pycache__/finding_scorer.cpython-311.pyc +0 -0
  154. package/.torusguard/scripts/__pycache__/finding_scorer.cpython-314.pyc +0 -0
  155. package/.torusguard/scripts/__pycache__/harden_runner.cpython-314.pyc +0 -0
  156. package/.torusguard/scripts/__pycache__/html_reporter.cpython-314.pyc +0 -0
  157. package/.torusguard/scripts/__pycache__/manifest_builder.cpython-314.pyc +0 -0
  158. package/.torusguard/scripts/__pycache__/memory_engine.cpython-314.pyc +0 -0
  159. package/.torusguard/scripts/__pycache__/monorepo_detector.cpython-314.pyc +0 -0
  160. package/.torusguard/scripts/__pycache__/recheck_runner.cpython-314.pyc +0 -0
  161. package/.torusguard/scripts/__pycache__/report_sync.cpython-311.pyc +0 -0
  162. package/.torusguard/scripts/__pycache__/report_sync.cpython-314.pyc +0 -0
  163. package/.torusguard/scripts/__pycache__/run_manager.cpython-314.pyc +0 -0
  164. package/.torusguard/scripts/__pycache__/sarif_exporter.cpython-314.pyc +0 -0
  165. package/.torusguard/scripts/__pycache__/stack_detect.cpython-314.pyc +0 -0
  166. package/.torusguard/scripts/__pycache__/term_ui.cpython-311.pyc +0 -0
  167. package/.torusguard/scripts/__pycache__/term_ui.cpython-314.pyc +0 -0
  168. package/.torusguard/scripts/apply_runner.py +389 -377
  169. package/.torusguard/scripts/audit_runner.py +1513 -653
  170. package/.torusguard/scripts/finding_scorer.py +14 -2
  171. package/.torusguard/scripts/harden_runner.py +628 -455
  172. package/.torusguard/scripts/html_reporter.py +2668 -648
  173. package/.torusguard/scripts/recheck_runner.py +248 -238
  174. package/.torusguard/scripts/recipes_runner.py +137 -137
  175. package/.torusguard/scripts/report_sync.py +719 -0
  176. package/.torusguard/scripts/sarif_exporter.py +156 -116
  177. package/.torusguard/scripts/stack_detect.py +44 -2
  178. package/.torusguard/scripts/term_ui.py +162 -162
  179. package/.torusguard/skills/torusguard/SKILL.md +75 -72
  180. package/.torusguard/skills/torusguard-apply/SKILL.md +84 -80
  181. package/.torusguard/skills/torusguard-audit/SKILL.md +87 -83
  182. package/.torusguard/skills/torusguard-authorize/SKILL.md +7 -2
  183. package/.torusguard/skills/torusguard-exploit-check/SKILL.md +7 -2
  184. package/.torusguard/skills/torusguard-full/SKILL.md +7 -2
  185. package/.torusguard/skills/torusguard-harden/SKILL.md +98 -94
  186. package/.torusguard/skills/torusguard-init/SKILL.md +68 -64
  187. package/.torusguard/skills/torusguard-recheck/SKILL.md +81 -77
  188. package/.torusguard/skills/torusguard-report/SKILL.md +93 -72
  189. package/.torusguard/skills/torusguard-status/SKILL.md +62 -58
  190. package/.torusguard/skills/torusguard-verify/SKILL.md +7 -2
  191. package/.torusguard/skills/torusguard-web-validate/SKILL.md +7 -2
  192. package/.torusguard/snapshots/run-20260912-215731-audit/demo/playground/vulnerable_nextjs/actions.ts.bak +24 -0
  193. package/.torusguard/snapshots/run-20260912-215731-audit/examples/hardened-react-express/server/index.js.bak +121 -0
  194. package/.torusguard/snapshots/run-20260912-215731-audit/examples/python/fastapi-vuln/main.py.bak +20 -0
  195. package/.torusguard/snapshots/run-20260912-215731-audit/examples/vulnerable-react-express/client/src/App.jsx.bak +63 -0
  196. package/.torusguard/snapshots/run-20260912-215731-audit/examples/vulnerable-react-express/client/vite.config.js.bak +12 -0
  197. package/.torusguard/snapshots/run-20260912-215731-audit/examples/vulnerable-react-express/server/index.js.bak +82 -0
  198. package/.torusguard/workflows/apply.md +11 -4
  199. package/.torusguard/workflows/audit.md +7 -1
  200. package/.torusguard/workflows/authorize.md +2 -1
  201. package/.torusguard/workflows/exploit-check.md +2 -1
  202. package/.torusguard/workflows/harden.md +7 -1
  203. package/.torusguard/workflows/init.md +6 -1
  204. package/.torusguard/workflows/memory.md +2 -1
  205. package/.torusguard/workflows/recheck.md +7 -1
  206. package/.torusguard/workflows/report.md +7 -1
  207. package/.torusguard/workflows/status.md +6 -1
  208. package/.torusguard/workflows/verify.md +6 -1
  209. package/.torusguard/workflows/web-validate.md +2 -1
  210. package/README.md +476 -345
  211. package/bin/torusguard.js +586 -545
  212. package/package.json +1 -1
  213. package/skills/torusguard/SKILL.md +73 -72
  214. package/skills/torusguard/bootstrap.py +7 -2
  215. package/skills/torusguard/payload/.manifest.json +66 -63
  216. package/skills/torusguard/payload/rules/business-logic/TG-BIZ-001-client-controlled-sensitive-business-value.md +30 -14
  217. package/skills/torusguard/payload/rules/business-logic/TG-BIZ-002-replayable-one-time-operation.md +33 -16
  218. package/skills/torusguard/payload/rules/business-logic/TG-BIZ-003-missing-workflow-state-validation.md +31 -15
  219. package/skills/torusguard/payload/rules/business-logic/TG-BIZ-004-unrestricted-sensitive-business-flow.md +26 -16
  220. package/skills/torusguard/payload/rules/cache/TG-CACHE-001-sensitive-response-publicly-cacheable.md +24 -16
  221. package/skills/torusguard/payload/rules/cache/TG-CACHE-002-missing-user-cache-isolation.md +32 -18
  222. package/skills/torusguard/payload/rules/cache/TG-CACHE-003-sensitive-data-in-url.md +24 -17
  223. package/skills/torusguard/payload/rules/csrf/TG-CSRF-001-missing-csrf-protection.md +31 -18
  224. package/skills/torusguard/payload/rules/csrf/TG-CSRF-002-unsafe-credentialed-cross-origin-request.md +28 -17
  225. package/skills/torusguard/payload/rules/graphql/TG-GQL-002-resolver-missing-authorization.md +33 -17
  226. package/skills/torusguard/payload/rules/graphql/TG-GQL-003-unbounded-graphql-pagination-or-batching.md +31 -16
  227. package/skills/torusguard/payload/rules/graphql/TG-GQL-004-unnecessary-production-introspection.md +25 -16
  228. package/skills/torusguard/payload/rules/secrets/TG-SEC-005-secret-in-git-history.md +24 -19
  229. package/skills/torusguard/payload/rules/secrets/TG-SEC-006-secret-in-build-artifact.md +36 -19
  230. package/skills/torusguard/payload/rules/secrets/TG-SEC-007-secret-in-test-or-example-fixture.md +21 -16
  231. package/skills/torusguard/payload/rules/ssrf/TG-SSRF-002-missing-internal-network-protection.md +45 -18
  232. package/skills/torusguard/payload/rules/ssrf/TG-SSRF-003-unsafe-redirect-following.md +20 -16
  233. package/skills/torusguard/payload/rules/ssrf/TG-SSRF-004-unbounded-outbound-request.md +28 -19
  234. package/skills/torusguard/payload/rules/supply-chain/TG-SUPPLY-001-missing-or-ignored-dependency-lockfile.md +25 -18
  235. package/skills/torusguard/payload/rules/supply-chain/TG-SUPPLY-003-unsafe-ci-cd-secret-exposure.md +29 -19
  236. package/skills/torusguard/payload/rules/supply-chain/TG-SUPPLY-004-unpinned-ci-action.md +23 -18
  237. package/skills/torusguard/payload/rules/supply-chain/TG-SUPPLY-005-unsafe-dependency-install-script.md +23 -18
  238. package/skills/torusguard/payload/rules/webhook/TG-WEBHOOK-001-missing-webhook-signature-verification.md +36 -16
  239. package/skills/torusguard/payload/rules/webhook/TG-WEBHOOK-002-replayable-webhook.md +26 -17
  240. package/skills/torusguard/payload/rules/webhook/TG-WEBHOOK-003-missing-webhook-idempotency.md +30 -16
  241. package/skills/torusguard/payload/rules/webhook/TG-WEBHOOK-004-unvalidated-webhook-event-type.md +25 -16
  242. package/skills/torusguard/payload/rules/websocket/TG-WS-002-missing-channel-level-authorization.md +28 -17
  243. package/skills/torusguard/payload/rules/websocket/TG-WS-003-unvalidated-websocket-message.md +31 -17
  244. package/skills/torusguard/payload/rules/websocket/TG-WS-004-unbounded-websocket-connections.md +31 -17
  245. package/skills/torusguard/payload/rules_catalog.json +520 -0
  246. package/skills/torusguard/payload/scripts/__pycache__/apply_runner.cpython-314.pyc +0 -0
  247. package/skills/torusguard/payload/scripts/__pycache__/audit_runner.cpython-311.pyc +0 -0
  248. package/skills/torusguard/payload/scripts/__pycache__/audit_runner.cpython-314.pyc +0 -0
  249. package/skills/torusguard/payload/scripts/__pycache__/diff_guard.cpython-311.pyc +0 -0
  250. package/skills/torusguard/payload/scripts/__pycache__/diff_guard.cpython-314.pyc +0 -0
  251. package/skills/torusguard/payload/scripts/__pycache__/finding_scorer.cpython-311.pyc +0 -0
  252. package/skills/torusguard/payload/scripts/__pycache__/finding_scorer.cpython-314.pyc +0 -0
  253. package/skills/torusguard/payload/scripts/__pycache__/harden_runner.cpython-314.pyc +0 -0
  254. package/skills/torusguard/payload/scripts/__pycache__/html_reporter.cpython-311.pyc +0 -0
  255. package/skills/torusguard/payload/scripts/__pycache__/html_reporter.cpython-314.pyc +0 -0
  256. package/skills/torusguard/payload/scripts/__pycache__/manifest_builder.cpython-314.pyc +0 -0
  257. package/skills/torusguard/payload/scripts/__pycache__/memory_engine.cpython-311.pyc +0 -0
  258. package/skills/torusguard/payload/scripts/__pycache__/memory_engine.cpython-314.pyc +0 -0
  259. package/skills/torusguard/payload/scripts/__pycache__/monorepo_detector.cpython-311.pyc +0 -0
  260. package/skills/torusguard/payload/scripts/__pycache__/monorepo_detector.cpython-314.pyc +0 -0
  261. package/skills/torusguard/payload/scripts/__pycache__/recheck_runner.cpython-314.pyc +0 -0
  262. package/skills/torusguard/payload/scripts/__pycache__/report_sync.cpython-311.pyc +0 -0
  263. package/skills/torusguard/payload/scripts/__pycache__/report_sync.cpython-314.pyc +0 -0
  264. package/skills/torusguard/payload/scripts/__pycache__/rules_sync.cpython-311.pyc +0 -0
  265. package/skills/torusguard/payload/scripts/__pycache__/run_manager.cpython-311.pyc +0 -0
  266. package/skills/torusguard/payload/scripts/__pycache__/run_manager.cpython-314.pyc +0 -0
  267. package/skills/torusguard/payload/scripts/__pycache__/sarif_exporter.cpython-314.pyc +0 -0
  268. package/skills/torusguard/payload/scripts/__pycache__/stack_detect.cpython-311.pyc +0 -0
  269. package/skills/torusguard/payload/scripts/__pycache__/stack_detect.cpython-314.pyc +0 -0
  270. package/skills/torusguard/payload/scripts/__pycache__/term_ui.cpython-311.pyc +0 -0
  271. package/skills/torusguard/payload/scripts/__pycache__/term_ui.cpython-314.pyc +0 -0
  272. package/skills/torusguard/payload/scripts/apply_runner.py +389 -377
  273. package/skills/torusguard/payload/scripts/audit_runner.py +1513 -653
  274. package/skills/torusguard/payload/scripts/finding_scorer.py +14 -2
  275. package/skills/torusguard/payload/scripts/harden_runner.py +628 -455
  276. package/skills/torusguard/payload/scripts/html_reporter.py +2668 -648
  277. package/skills/torusguard/payload/scripts/recheck_runner.py +248 -238
  278. package/skills/torusguard/payload/scripts/recipes_runner.py +137 -137
  279. package/skills/torusguard/payload/scripts/report_sync.py +719 -0
  280. package/skills/torusguard/payload/scripts/sarif_exporter.py +156 -116
  281. package/skills/torusguard/payload/scripts/stack_detect.py +44 -2
  282. package/skills/torusguard/payload/scripts/term_ui.py +162 -162
  283. package/skills/torusguard/payload/skills/torusguard/SKILL.md +75 -72
  284. package/skills/torusguard/payload/skills/torusguard-apply/SKILL.md +84 -80
  285. package/skills/torusguard/payload/skills/torusguard-audit/SKILL.md +87 -83
  286. package/skills/torusguard/payload/skills/torusguard-authorize/SKILL.md +7 -2
  287. package/skills/torusguard/payload/skills/torusguard-exploit-check/SKILL.md +7 -2
  288. package/skills/torusguard/payload/skills/torusguard-full/SKILL.md +7 -2
  289. package/skills/torusguard/payload/skills/torusguard-harden/SKILL.md +98 -94
  290. package/skills/torusguard/payload/skills/torusguard-init/SKILL.md +68 -64
  291. package/skills/torusguard/payload/skills/torusguard-recheck/SKILL.md +81 -77
  292. package/skills/torusguard/payload/skills/torusguard-report/SKILL.md +93 -72
  293. package/skills/torusguard/payload/skills/torusguard-status/SKILL.md +62 -58
  294. package/skills/torusguard/payload/skills/torusguard-verify/SKILL.md +7 -2
  295. package/skills/torusguard/payload/skills/torusguard-web-validate/SKILL.md +7 -2
  296. package/skills/torusguard/payload/workflows/apply.md +11 -4
  297. package/skills/torusguard/payload/workflows/audit.md +7 -1
  298. package/skills/torusguard/payload/workflows/authorize.md +2 -1
  299. package/skills/torusguard/payload/workflows/exploit-check.md +2 -1
  300. package/skills/torusguard/payload/workflows/harden.md +7 -1
  301. package/skills/torusguard/payload/workflows/init.md +6 -1
  302. package/skills/torusguard/payload/workflows/memory.md +2 -1
  303. package/skills/torusguard/payload/workflows/recheck.md +7 -1
  304. package/skills/torusguard/payload/workflows/report.md +7 -1
  305. package/skills/torusguard/payload/workflows/status.md +6 -1
  306. package/skills/torusguard/payload/workflows/verify.md +6 -1
  307. package/skills/torusguard/payload/workflows/web-validate.md +2 -1
  308. package/skills/torusguard-apply/SKILL.md +84 -80
  309. package/skills/torusguard-audit/SKILL.md +87 -83
  310. package/skills/torusguard-authorize/SKILL.md +7 -2
  311. package/skills/torusguard-exploit-check/SKILL.md +7 -2
  312. package/skills/torusguard-full/SKILL.md +7 -2
  313. package/skills/torusguard-harden/SKILL.md +98 -94
  314. package/skills/torusguard-init/SKILL.md +68 -64
  315. package/skills/torusguard-recheck/SKILL.md +81 -77
  316. package/skills/torusguard-report/SKILL.md +93 -72
  317. package/skills/torusguard-status/SKILL.md +62 -58
  318. package/skills/torusguard-verify/SKILL.md +7 -2
  319. package/skills/torusguard-web-validate/SKILL.md +7 -2
@@ -1,77 +1,81 @@
1
- ---
2
- name: torusguard-recheck
3
- description: Execute targeted differential AST re-scan against modified files, verify fix closure, and assert zero regressions via CLI or AI Agent.
4
- version: 1.3.4
5
- workflow: .torusguard/workflows/recheck.md
6
- tools: Read, Grep, Glob, Write, run_command
7
- scripts-binding:
8
- - .torusguard/scripts/recheck_runner.py
9
- - .torusguard/scripts/audit_runner.py
10
- - .torusguard/scripts/memory_engine.py
11
- - .torusguard/scripts/term_ui.py
12
- ---
13
-
14
- # TorusGuard Recheck — Targeted Differential Audit & Fix Closure
15
-
16
- ## Objective
17
- Execute differential security re-scans strictly scoped to modified files and adjacent boundaries, verifying that targeted vulnerability patterns have been eliminated and asserting zero security regressions.
18
-
19
- ---
20
-
21
- ## Two Execution Modes
22
-
23
- ### Mode A: Automated CLI Execution
24
- Run the differential recheck engine from the terminal:
25
- ```bash
26
- # Recheck the latest applied run
27
- npx torusguard recheck
28
-
29
- # Recheck a specific project directory
30
- npx torusguard recheck ./my-project
31
-
32
- # Recheck a specific run ID
33
- npx torusguard recheck --run run-20260910-121618-audit
34
-
35
- # Machine-readable JSON output
36
- npx torusguard recheck --json
37
- ```
38
- **Under the Hood:** Executes `python .torusguard/scripts/recheck_runner.py`.
39
- - Evaluates applied candidate bundles from `.torusguard/runs/<run_id>/bundles/`.
40
- - Executes single-file targeted differential AST scans via `audit_runner.scan_file()`.
41
- - Calculates formal status transitions:
42
- - `✔ [Confirmed Fixed]`: Vulnerable pattern absent, zero regressions.
43
- - `✖ [Regressed]`: New security finding introduced by patch.
44
- - `⚠ [Unresolved]`: Vulnerable sink still present.
45
- - Emits run-level transition artifact: `.torusguard/runs/<run_id>/recheck.md`.
46
- - Synchronizes verification telemetry to `.torusguard/memory/events.json`.
47
- - Displays 75-column terminal cards.
48
-
49
- ### Mode B: In-Session AI Chat Agent Differential Scan
50
- When evaluating patches directly in AI chat:
51
- 1. **Identify Modified Files:** Read `diff_summary.md` or git status for files modified in the active run.
52
- 2. **Re-Scan Sinks:** View the target file and verify that the specific rule violation (e.g. `TG-INPUT-003`, `TG-PLATFORM-001`) is no longer triggered.
53
- 3. **Assert Zero Regressions:** Verify that no new vulnerabilities (like raw concatenation or unvalidated input) were introduced by the fix.
54
- 4. **Update Status:** Log outcome in `.torusguard/runs/<run_id>/recheck.md`.
55
- 5. **Memory Telemetry:** Record verification event with `memory_engine.record_event("fix_verified", ...)`.
56
-
57
- ---
58
-
59
- ## Recheck Status Transitions
60
- | Outcome | Visual Indicator | Meaning | Required Action |
61
- | :--- | :--- | :--- | :--- |
62
- | **Confirmed Fixed** | `✔ [Confirmed Fixed]` | Sink eliminated, zero regressions | Proceed to Posture Report |
63
- | **Unresolved** | `⚠ [Unresolved]` | Flaw still present in file | Re-harden with alternative pattern |
64
- | **Regressed** | `✖ [Regressed]` | New security flaw introduced | Instant `npx torusguard rollback` |
65
-
66
- ---
67
-
68
- ## Output Card Format
69
- ```markdown
70
- ### ✅ TorusGuard Differential Recheck Completed
71
- - **Run ID:** `run-20260910-121618-audit`
72
- - **Confirmed Fixed:** 2 vulnerabilities verified closed
73
- - **Regressions:** 0 detected
74
- - **Unresolved:** 0
75
- - **Artifact:** `.torusguard/runs/<run_id>/recheck.md`
76
- - **Next Step:** Run `npx torusguard report --html` for visual dashboard
77
- ```
1
+ ---
2
+ name: torusguard-recheck
3
+ description: Execute targeted differential AST re-scan against modified files, verify fix closure, and assert zero regressions via CLI or AI Agent.
4
+ version: 1.3.6
5
+ workflow: .torusguard/workflows/recheck.md
6
+ tools: Read, Grep, Glob, Write, run_command
7
+ scripts-binding:
8
+ - .torusguard/scripts/report_sync.py
9
+ - .torusguard/scripts/recheck_runner.py
10
+ - .torusguard/scripts/audit_runner.py
11
+ - .torusguard/scripts/memory_engine.py
12
+ - .torusguard/scripts/term_ui.py
13
+ ---
14
+
15
+ # TorusGuard Recheck — Targeted Differential Audit & Fix Closure
16
+
17
+ ## Objective
18
+ Execute differential security re-scans strictly scoped to modified files and adjacent boundaries, verifying that targeted vulnerability patterns have been eliminated and asserting zero security regressions.
19
+
20
+ ---
21
+
22
+ ## Two Execution Modes
23
+
24
+ ### Mode A: Automated CLI Execution
25
+ Run the differential recheck engine from the terminal:
26
+ ```bash
27
+ # Recheck the latest applied run
28
+ npx torusguard recheck
29
+
30
+ # Recheck a specific project directory
31
+ npx torusguard recheck ./my-project
32
+
33
+ # Recheck a specific run ID
34
+ npx torusguard recheck --run run-20260910-121618-audit
35
+
36
+ # Machine-readable JSON output
37
+ npx torusguard recheck --json
38
+ ```
39
+ **Under the Hood:** Executes `python .torusguard/scripts/recheck_runner.py`.
40
+ - Evaluates applied candidate bundles from `.torusguard/runs/<run_id>/bundles/`.
41
+ - Executes single-file targeted differential AST scans via `audit_runner.scan_file()`.
42
+ - Calculates formal status transitions:
43
+ - `✔ [Confirmed Fixed]`: Vulnerable pattern absent, zero regressions.
44
+ - `✖ [Regressed]`: New security finding introduced by patch.
45
+ - `⚠ [Unresolved]`: Vulnerable sink still present.
46
+ - Emits run-level transition artifact: `.torusguard/runs/<run_id>/recheck.md`.
47
+ - Synchronizes verification telemetry to `.torusguard/memory/events.json`.
48
+ - Displays 75-column terminal cards.
49
+
50
+ ### Mode B: In-Session AI Chat Agent Differential Scan
51
+ When evaluating patches directly in AI chat:
52
+ 1. **Identify Modified Files:** Read `diff_summary.md` or git status for files modified in the active run.
53
+ 2. **Re-Scan Sinks:** View the target file and verify that the specific rule violation (e.g. `TG-INPUT-003`, `TG-PLATFORM-001`) is no longer triggered.
54
+ 3. **Assert Zero Regressions:** Verify that no new vulnerabilities (like raw concatenation or unvalidated input) were introduced by the fix.
55
+ 4. **Update Status:** Log outcome in `.torusguard/runs/<run_id>/recheck.md`.
56
+ 5. **Memory Telemetry:** Record verification event with `memory_engine.record_event("fix_verified", ...)`.
57
+
58
+ ---
59
+
60
+ ## Recheck Status Transitions
61
+ | Outcome | Visual Indicator | Meaning | Required Action |
62
+ | :--- | :--- | :--- | :--- |
63
+ | **Confirmed Fixed** | `✔ [Confirmed Fixed]` | Sink eliminated, zero regressions | Proceed to Posture Report |
64
+ | **Unresolved** | `⚠ [Unresolved]` | Flaw still present in file | Re-harden with alternative pattern |
65
+ | **Regressed** | `✖ [Regressed]` | New security flaw introduced | Instant `npx torusguard rollback` |
66
+
67
+ ---
68
+
69
+ ## Output Card Format
70
+ ```markdown
71
+ ### ✅ TorusGuard Differential Recheck Completed
72
+ - **Run ID:** `run-20260910-121618-audit`
73
+ - **Confirmed Fixed:** 2 vulnerabilities verified closed
74
+ - **Regressions:** 0 detected
75
+ - **Unresolved:** 0
76
+ - **Artifact:** `.torusguard/runs/<run_id>/recheck.md`
77
+ - **Next Step:** Run `npx torusguard report --html` for visual dashboard
78
+ ```
79
+
80
+ ## Living Report Ground Truth
81
+ - Read `security_report.md` in the workspace root before taking any action. Update the relevant finding card after completing remediation.
@@ -1,72 +1,93 @@
1
- ---
2
- name: torusguard-report
3
- description: Generate executive posture reports, export OASIS SARIF v2.1.0 logs, and render dark-mode HTML dashboards via CLI or AI Agent.
4
- version: 1.3.4
5
- workflow: .torusguard/workflows/report.md
6
- tools: Read, Grep, Glob, Write, run_command
7
- scripts-binding:
8
- - .torusguard/scripts/html_reporter.py
9
- - .torusguard/scripts/sarif_exporter.py
10
- - .torusguard/scripts/run_manager.py
11
- - .torusguard/scripts/term_ui.py
12
- ---
13
-
14
- # TorusGuard Report — Posture Reporting & SARIF / HTML Export
15
-
16
- ## Objective
17
- Aggregate findings, verification traces, and recheck results into an auditable executive security report, export schema-compliant OASIS SARIF v2.1.0 logs for CI/CD pipelines, and render zero-dependency single-file visual HTML posture reports.
18
-
19
- ---
20
-
21
- ## Two Execution Modes
22
-
23
- ### Mode A: Automated CLI Execution
24
- Run the report engine from your terminal:
25
- ```bash
26
- # Generate visual dark-mode HTML dashboard
27
- npx torusguard report --html
28
-
29
- # Export OASIS SARIF v2.1.0 for GitHub Code Scanning / CI
30
- npx torusguard report --sarif
31
-
32
- # Generate both HTML and SARIF for latest run
33
- npx torusguard report --html --sarif
34
-
35
- # Generate report for a specific project directory
36
- npx torusguard report ./examples/vulnerable-react-express --html
37
-
38
- # Target a specific run ID
39
- npx torusguard report --run run-20260910-121618-audit --html
40
- ```
41
- **Under the Hood:**
42
- - Invokes `python .torusguard/scripts/html_reporter.py` to compile self-contained, offline-ready HTML reports with dynamic filtering, posture gauge, and cluster summaries at `.torusguard/runs/<run_id>/report.html`.
43
- - Invokes `python .torusguard/scripts/sarif_exporter.py` to produce OASIS SARIF v2.1.0 logs at `.torusguard/runs/<run_id>/results.sarif`.
44
- - Finalizes `manifest.json` metrics and updates historical posture scoring.
45
- - Displays 75-column terminal cards.
46
-
47
- ### Mode B: In-Session AI Chat Agent Reporting
48
- When generating security posture summaries in AI chat:
49
- 1. **Aggregate Run Data:** Inspect `findings.json`, `remediation.md`, and `recheck.md` from the active run.
50
- 2. **Calculate Posture Score:** Compute posture score ($0$–$100$) based on severity weighting (Critical: 25, High: 15, Medium: 5, Low: 2).
51
- 3. **Format Executive Card:** Present finding counts, closed vulnerabilities, remaining risks, and compliance posture.
52
- 4. **Export Artifacts:** Verify that `report.html` and `results.sarif` are serialized to disk.
53
-
54
- ---
55
-
56
- ## SARIF v2.1.0 Specification
57
- - **Schema:** `https://docs.oasis-open.org/sarif/sarif/v2.1.0/cos02/schemas/sarif-schema-2.1.0.json`
58
- - **Tool Driver:** `name: TorusGuard`, `semanticVersion: 1.3.3`, full rules catalog in `driver.rules`.
59
- - **Automation Details:** `automationDetails.id: "torusguard/static"` to avoid collisions in multi-scanner CI/CD pipelines.
60
- - **Fingerprints:** `partialFingerprints.primaryLocationLineHash` with SHA-256 context hash.
61
-
62
- ---
63
-
64
- ## Output Card Format
65
- ```markdown
66
- ### 📊 TorusGuard Security Posture Report Emitted
67
- - **Run ID:** `run-20260910-121618-audit`
68
- - **Posture Score:** 85 / 100 (HIGH SECURITY)
69
- - **Findings Summary:** 3 Evaluated · 2 Confirmed Fixed · 1 Unresolved
70
- - **HTML Dashboard:** `.torusguard/runs/<run_id>/report.html` (View in browser)
71
- - **SARIF v2.1.0 Export:** `.torusguard/runs/<run_id>/results.sarif` (Ready for CI)
72
- ```
1
+ ---
2
+ name: torusguard-report
3
+ description: Generate executive posture reports, export OASIS SARIF v2.1.0 logs, and render dark-mode HTML dashboards via CLI or AI Agent.
4
+ version: 2.2.0
5
+ workflow: .torusguard/workflows/report.md
6
+ tools: Read, Grep, Glob, Write, run_command
7
+ scripts-binding:
8
+ - .torusguard/scripts/report_sync.py
9
+ - .torusguard/scripts/html_reporter.py
10
+ - .torusguard/scripts/sarif_exporter.py
11
+ - .torusguard/scripts/run_manager.py
12
+ - .torusguard/scripts/term_ui.py
13
+ ---
14
+
15
+ # TorusGuard Report — Posture Reporting & SARIF / HTML Export
16
+
17
+ ## Objective
18
+ Aggregate findings, verification traces, and recheck results into an auditable executive security report, export schema-compliant OASIS SARIF v2.1.0 logs for CI/CD pipelines, and render zero-dependency single-file visual HTML posture reports with full dual-mode parity.
19
+
20
+ ---
21
+
22
+ ## Execution Steps
23
+
24
+ ### Mode A: Automated CLI Execution
25
+ Run the report engine from your terminal:
26
+ ```bash
27
+ # Generate visual dark-mode HTML dashboard (defaults to report.html at project root)
28
+ npx torusguard report --html
29
+
30
+ # Export OASIS SARIF v2.1.0 for GitHub Code Scanning / CI
31
+ npx torusguard report --sarif
32
+
33
+ # Generate both HTML and SARIF in a single pass
34
+ npx torusguard report --html --sarif
35
+
36
+ # Custom HTML output location
37
+ npx torusguard report --html --out ./docs/security-audit.html
38
+
39
+ # Target a specific subproject / monorepo package
40
+ npx torusguard report --target ./apps/api --html
41
+ ```
42
+
43
+ **Under the Hood:**
44
+ - Invokes `python .torusguard/scripts/html_reporter.py` to compile self-contained, offline-ready HTML reports with dynamic filtering, posture gauge, directory attack surface heatmap, and golden recipe explorer at `report.html` (workspace root) and mirrors to `.torusguard/runs/report-latest.html`.
45
+ - Invokes `python .torusguard/scripts/sarif_exporter.py` to produce OASIS SARIF v2.1.0 logs at `.torusguard/runs/results-latest.sarif`.
46
+ - Finalizes `manifest.json` metrics and updates historical posture scoring.
47
+ - Displays standardized 75-column terminal cards adhering to visual width invariants.
48
+
49
+ ### Mode B: In-Session AI Chat Agent Reporting
50
+ When generating security posture summaries in AI chat:
51
+ 1. **Aggregate Run Data:** Inspect `findings.json`, `remediation.md`, and `recheck.md` from the active run.
52
+ 2. **Calculate Posture Score:** Compute posture score ($0$–$100$) based on severity weighting (Critical: 25, High: 15, Medium: 5, Low: 2). Clean repositories earn 100/100 across 74 defended invariants.
53
+ 3. **Format Executive Card:** Present finding counts, closed vulnerabilities, remaining risks, and compliance posture.
54
+ 4. **Export Artifacts:** Verify that `report.html` and `results-latest.sarif` are serialized to disk.
55
+ 5. **Keep Living Ledger in Lockstep:** Ensure `security_report.md` reflects all findings and verified closures.
56
+
57
+ ---
58
+
59
+ ## Zero-CDN & Offline Guarantee
60
+ - Zero external `<script>` or `<link>` tags. All styles, fonts, SVG icons, and scripts are embedded directly inside `report.html`.
61
+ - Full offline inspection: can be opened directly via `file:///` without an active internet connection.
62
+ - In-browser artifact downloads (SARIF v2.1.0 and CSV) use native `URL.createObjectURL(new Blob(...))` with zero network calls.
63
+
64
+ ---
65
+
66
+ ## SARIF v2.1.0 Output Specification
67
+ - **Schema:** `https://docs.oasis-open.org/sarif/sarif/v2.1.0/cos02/schemas/sarif-schema-2.1.0.json`
68
+ - **Tool Driver:** `name: TorusGuard`, `semanticVersion: 1.3.6`, full rules catalog in `driver.rules`.
69
+ - **Automation Details:** `automationDetails.id: "torusguard/static"` to avoid collisions in multi-scanner CI/CD pipelines.
70
+ - **Fingerprints:** `partialFingerprints.primaryLocationLineHash` with SHA-256 context hash.
71
+
72
+ ---
73
+
74
+ ## Safety Constraints
75
+ - Never display raw secrets, tokens, or credentials in terminal outputs or emitted reports.
76
+ - Enforce read-only state for `report` actions — never modify source code during report generation.
77
+ - Ensure atomic writes with fallback retry to prevent corrupt reports during concurrent browser viewing.
78
+ - Respect monorepo target boundaries when `--target` is specified.
79
+
80
+ ---
81
+
82
+ ## Output Format
83
+ ```markdown
84
+ ### 🛡️ TorusGuard Security Posture Report Emitted
85
+ - **Posture Score:** 100 / 100 (OPTIMAL DEFENSE)
86
+ - **Invariants Defended:** 74 Defended · 0 Harmed (74 Rules)
87
+ - **HTML Dashboard:** `report.html` (View in browser)
88
+ - **SARIF v2.1.0 Export:** `.torusguard/runs/results-latest.sarif` (Ready for CI)
89
+ - **Living Ledger:** `security_report.md` (Synchronized in lockstep)
90
+ ```
91
+
92
+ ## Living Report Ground Truth
93
+ - Read `security_report.md` in the workspace root before taking any action. Update the relevant finding card after completing remediation.
@@ -1,58 +1,62 @@
1
- ---
2
- name: torusguard-status
3
- description: Display current TorusGuard security posture, active configuration, rules catalog, and run history via CLI or AI Agent.
4
- version: 1.3.4
5
- workflow: .torusguard/workflows/status.md
6
- tools: Read, Grep, Glob, run_command
7
- scripts-binding:
8
- - .torusguard/scripts/run_manager.py
9
- - .torusguard/scripts/term_ui.py
10
- ---
11
-
12
- # TorusGuard Status — Workspace Security Posture & Diagnostic Overview
13
-
14
- ## Objective
15
- Provide an instant diagnostic summary of the repository's security state, active framework rules, historical run results, and runtime scope validity.
16
-
17
- ---
18
-
19
- ## Two Execution Modes
20
-
21
- ### Mode A: Automated CLI Execution
22
- Run the diagnostic overview from your terminal:
23
- ```bash
24
- # Display 75-column status cards
25
- npx torusguard status
26
-
27
- # Check status of specific project directory
28
- npx torusguard status ./examples/vulnerable-react-express
29
-
30
- # Output machine-readable JSON
31
- npx torusguard status --json
32
- ```
33
- **Under the Hood:**
34
- - Evaluates `.torusguard/config/torusguard.json` for initialized status and detected stack.
35
- - Enumerates active rules in `.torusguard/rules/active/` (or canonical 71 rules).
36
- - Scans `.torusguard/runs/` for run history, finding counts, and verified fixes.
37
- - Inspects `.torusguard/config/scope.json` for authorized runtime validation targets.
38
- - Displays mathematically aligned 75-column terminal cards.
39
-
40
- ### Mode B: In-Session AI Chat Agent Status Check
41
- When checking workspace status in AI chat:
42
- 1. **Verify Workspace Setup:** Check if `.torusguard/` exists on disk.
43
- 2. **Inspect Active Config:** Read `.torusguard/config/torusguard.json` for detected stack, framework, and rules.
44
- 3. **Inspect Latest Run:** Find the latest run directory under `.torusguard/runs/` and read `manifest.json`.
45
- 4. **Inspect Memory Engine:** Check `.torusguard/memory/patterns.json` for captured Golden Fix Recipes.
46
- 5. **Render Diagnostic Card:** Present an overview of posture, stack, and recommended next steps.
47
-
48
- ---
49
-
50
- ## Output Card Format
51
- ```markdown
52
- ### 🛡️ TorusGuard Workspace Status Overview
53
- - **Version:** v1.3.3 | **Stack:** Node.js / React / Express
54
- - **Active Rules:** 71 canonical security rules enabled
55
- - **Historical Runs:** 3 runs recorded
56
- - **Golden Recipes:** 4 distilled into persistent memory
57
- - **Overall Posture:** SECURE (All targeted vulnerabilities verified closed)
58
- ```
1
+ ---
2
+ name: torusguard-status
3
+ description: Display current TorusGuard security posture, active configuration, rules catalog, and run history via CLI or AI Agent.
4
+ version: 1.3.6
5
+ workflow: .torusguard/workflows/status.md
6
+ tools: Read, Grep, Glob, run_command, Write
7
+ scripts-binding:
8
+ - .torusguard/scripts/report_sync.py
9
+ - .torusguard/scripts/run_manager.py
10
+ - .torusguard/scripts/term_ui.py
11
+ ---
12
+
13
+ # TorusGuard Status — Workspace Security Posture & Diagnostic Overview
14
+
15
+ ## Objective
16
+ Provide an instant diagnostic summary of the repository's security state, active framework rules, historical run results, and runtime scope validity.
17
+
18
+ ---
19
+
20
+ ## Two Execution Modes
21
+
22
+ ### Mode A: Automated CLI Execution
23
+ Run the diagnostic overview from your terminal:
24
+ ```bash
25
+ # Display 75-column status cards
26
+ npx torusguard status
27
+
28
+ # Check status of specific project directory
29
+ npx torusguard status ./examples/vulnerable-react-express
30
+
31
+ # Output machine-readable JSON
32
+ npx torusguard status --json
33
+ ```
34
+ **Under the Hood:**
35
+ - Evaluates `.torusguard/config/torusguard.json` for initialized status and detected stack.
36
+ - Enumerates active rules in `.torusguard/rules/active/` (or canonical 74 rules).
37
+ - Scans `.torusguard/runs/` for run history, finding counts, and verified fixes.
38
+ - Inspects `.torusguard/config/scope.json` for authorized runtime validation targets.
39
+ - Displays mathematically aligned 75-column terminal cards.
40
+
41
+ ### Mode B: In-Session AI Chat Agent Status Check
42
+ When checking workspace status in AI chat:
43
+ 1. **Verify Workspace Setup:** Check if `.torusguard/` exists on disk.
44
+ 2. **Inspect Active Config:** Read `.torusguard/config/torusguard.json` for detected stack, framework, and rules.
45
+ 3. **Inspect Latest Run:** Find the latest run directory under `.torusguard/runs/` and read `manifest.json`.
46
+ 4. **Inspect Memory Engine:** Check `.torusguard/memory/patterns.json` for captured Golden Fix Recipes.
47
+ 5. **Render Diagnostic Card:** Present an overview of posture, stack, and recommended next steps.
48
+
49
+ ---
50
+
51
+ ## Output Card Format
52
+ ```markdown
53
+ ### 🛡️ TorusGuard Workspace Status Overview
54
+ - **Version:** v1.3.3 | **Stack:** Node.js / React / Express
55
+ - **Active Rules:** 74 canonical security rules enabled
56
+ - **Historical Runs:** 3 runs recorded
57
+ - **Golden Recipes:** 4 distilled into persistent memory
58
+ - **Overall Posture:** SECURE (All targeted vulnerabilities verified closed)
59
+ ```
60
+
61
+ ## Living Report Ground Truth
62
+ - Read `security_report.md` in the workspace root before taking any action. Update the relevant finding card after completing remediation.
@@ -1,10 +1,11 @@
1
1
  ---
2
2
  name: torusguard-verify
3
3
  description: Verify finding evidence sufficiency, audit live code line matches, and calibrate 0–100 confidence scores.
4
- version: 1.3.4
4
+ version: 1.3.6
5
5
  workflow: .torusguard/workflows/verify.md
6
- tools: Read, Grep, Glob, Write
6
+ tools: Read, Grep, Glob, Write, run_command
7
7
  scripts-binding:
8
+ - .torusguard/scripts/report_sync.py
8
9
  - .torusguard/scripts/finding_scorer.py
9
10
  ---
10
11
 
@@ -39,6 +40,10 @@ A finding is verified as sufficient when:
39
40
 
40
41
  ---
41
42
 
43
+ ## Living Report Ground Truth
44
+ - Always inspect `security_report.md` at workspace root before acting.
45
+ - Update finding statuses after completion to eliminate hallucination.
46
+
42
47
  ## Safety Constraints
43
48
  - Read-only analysis; no files are modified.
44
49
  - Never guess line numbers; always verify via active disk read.
@@ -1,10 +1,11 @@
1
1
  ---
2
2
  name: torusguard-web-validate
3
3
  description: Execute authorized HTTP probing against local/staging web applications — session capture, transparent audit headers, and secret redaction.
4
- version: 1.3.4
4
+ version: 1.3.6
5
5
  workflow: .torusguard/workflows/web-validate.md
6
- tools: Read, Grep, Glob, Bash, Write
6
+ tools: Read, Grep, Glob, Bash, Write, run_command
7
7
  scripts-binding:
8
+ - .torusguard/scripts/report_sync.py
8
9
  - .torusguard/scripts/safety_gate.py
9
10
  ---
10
11
 
@@ -48,6 +49,10 @@ All Bearer tokens, cookies, passwords, and API keys are redacted prior to disk s
48
49
 
49
50
  ---
50
51
 
52
+ ## Living Report Ground Truth
53
+ - Always inspect `security_report.md` at workspace root before acting.
54
+ - Update finding statuses after completion to eliminate hallucination.
55
+
51
56
  ## Safety Constraints
52
57
  - Max 50 requests per validation session.
53
58
  - Never test unauthorized domains or third-party APIs.