torusguard 1.3.3 → 1.3.4

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 (127) hide show
  1. package/.torusguard/runs/report-latest.html +3 -3
  2. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-115-9a059e/metadata.json +15 -0
  3. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-115-9a059e/minimal_patch_plan.md +21 -0
  4. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-115-9a059e/patch.diff +9 -0
  5. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-119-61557c/metadata.json +15 -0
  6. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-119-61557c/minimal_patch_plan.md +21 -0
  7. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-119-61557c/patch.diff +9 -0
  8. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-265-996ca3/metadata.json +15 -0
  9. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-265-996ca3/minimal_patch_plan.md +21 -0
  10. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-265-996ca3/patch.diff +9 -0
  11. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-503-d11cf8/metadata.json +15 -0
  12. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-503-d11cf8/minimal_patch_plan.md +21 -0
  13. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-503-d11cf8/patch.diff +9 -0
  14. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-79-91f41f/metadata.json +15 -0
  15. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-79-91f41f/minimal_patch_plan.md +21 -0
  16. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-79-91f41f/patch.diff +9 -0
  17. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-107-516a40/metadata.json +15 -0
  18. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-107-516a40/minimal_patch_plan.md +21 -0
  19. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-107-516a40/patch.diff +9 -0
  20. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-128-7809a1/metadata.json +15 -0
  21. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-128-7809a1/minimal_patch_plan.md +21 -0
  22. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-128-7809a1/patch.diff +9 -0
  23. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-256-c8a22e/metadata.json +15 -0
  24. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-256-c8a22e/minimal_patch_plan.md +21 -0
  25. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-256-c8a22e/patch.diff +9 -0
  26. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-003-53-d167b4/metadata.json +15 -0
  27. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-003-53-d167b4/minimal_patch_plan.md +21 -0
  28. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-003-53-d167b4/patch.diff +9 -0
  29. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-platform-001-183-47fd5e/metadata.json +15 -0
  30. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-platform-001-183-47fd5e/minimal_patch_plan.md +21 -0
  31. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-platform-001-183-47fd5e/patch.diff +9 -0
  32. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-209-4f6424/metadata.json +15 -0
  33. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-209-4f6424/minimal_patch_plan.md +21 -0
  34. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-209-4f6424/patch.diff +9 -0
  35. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-257-89bf34/metadata.json +15 -0
  36. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-257-89bf34/minimal_patch_plan.md +21 -0
  37. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-257-89bf34/patch.diff +9 -0
  38. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-341-ce228c/metadata.json +15 -0
  39. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-341-ce228c/minimal_patch_plan.md +21 -0
  40. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-341-ce228c/patch.diff +9 -0
  41. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-355-7b190b/metadata.json +15 -0
  42. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-355-7b190b/minimal_patch_plan.md +21 -0
  43. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-355-7b190b/patch.diff +9 -0
  44. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-64-5af31a/metadata.json +15 -0
  45. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-64-5af31a/minimal_patch_plan.md +21 -0
  46. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-64-5af31a/patch.diff +9 -0
  47. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-9-f51467/metadata.json +15 -0
  48. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-9-f51467/minimal_patch_plan.md +21 -0
  49. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-9-f51467/patch.diff +9 -0
  50. package/.torusguard/runs/run-20260910-120238-audit/findings.json +1520 -0
  51. package/.torusguard/runs/run-20260910-120238-audit/findings.md +560 -0
  52. package/.torusguard/runs/run-20260910-120238-audit/manifest.json +13 -0
  53. package/.torusguard/runs/run-20260910-120238-audit/recheck.md +86 -0
  54. package/.torusguard/runs/run-20260910-120238-audit/remediation.md +262 -0
  55. package/.torusguard/runs/run-20260910-120238-audit/summary.md +5 -0
  56. package/.torusguard/runs/run-20260910-121238-audit/findings.json +794 -0
  57. package/.torusguard/runs/run-20260910-121238-audit/findings.md +344 -0
  58. package/.torusguard/runs/run-20260910-121238-audit/manifest.json +12 -0
  59. package/.torusguard/runs/run-20260910-121238-audit/summary.md +5 -0
  60. package/.torusguard/runs/run-20260910-130454-audit/findings.json +893 -0
  61. package/.torusguard/runs/run-20260910-130454-audit/findings.md +386 -0
  62. package/.torusguard/runs/run-20260910-130454-audit/manifest.json +12 -0
  63. package/.torusguard/runs/run-20260910-130454-audit/summary.md +5 -0
  64. package/.torusguard/runs/run-20260910-130519-audit/findings.json +563 -0
  65. package/.torusguard/runs/run-20260910-130519-audit/findings.md +246 -0
  66. package/.torusguard/runs/run-20260910-130519-audit/manifest.json +12 -0
  67. package/.torusguard/runs/run-20260910-130519-audit/summary.md +5 -0
  68. package/.torusguard/scripts/__pycache__/audit_runner.cpython-311.pyc +0 -0
  69. package/.torusguard/scripts/__pycache__/diff_guard.cpython-311.pyc +0 -0
  70. package/.torusguard/scripts/__pycache__/html_reporter.cpython-311.pyc +0 -0
  71. package/.torusguard/scripts/__pycache__/rules_sync.cpython-311.pyc +0 -0
  72. package/.torusguard/scripts/__pycache__/stack_detect.cpython-311.pyc +0 -0
  73. package/.torusguard/scripts/__pycache__/term_ui.cpython-311.pyc +0 -0
  74. package/.torusguard/scripts/apply_runner.py +138 -100
  75. package/.torusguard/scripts/audit_runner.py +219 -116
  76. package/.torusguard/scripts/harden_runner.py +144 -64
  77. package/.torusguard/scripts/recheck_runner.py +80 -63
  78. package/.torusguard/scripts/recipes_runner.py +38 -31
  79. package/.torusguard/scripts/term_ui.py +162 -0
  80. package/.torusguard/skills/torusguard/SKILL.md +61 -31
  81. package/.torusguard/skills/torusguard-apply/SKILL.md +80 -46
  82. package/.torusguard/skills/torusguard-audit/SKILL.md +83 -70
  83. package/.torusguard/skills/torusguard-authorize/SKILL.md +5 -4
  84. package/.torusguard/skills/torusguard-exploit-check/SKILL.md +6 -5
  85. package/.torusguard/skills/torusguard-full/SKILL.md +1 -1
  86. package/.torusguard/skills/torusguard-harden/SKILL.md +94 -63
  87. package/.torusguard/skills/torusguard-init/SKILL.md +64 -52
  88. package/.torusguard/skills/torusguard-recheck/SKILL.md +77 -53
  89. package/.torusguard/skills/torusguard-report/SKILL.md +72 -54
  90. package/.torusguard/skills/torusguard-status/SKILL.md +58 -42
  91. package/.torusguard/skills/torusguard-verify/SKILL.md +8 -7
  92. package/.torusguard/skills/torusguard-web-validate/SKILL.md +8 -7
  93. package/README.md +4 -3
  94. package/bin/torusguard.js +544 -437
  95. package/package.json +1 -1
  96. package/skills/torusguard/SKILL.md +61 -31
  97. package/skills/torusguard/payload/scripts/apply_runner.py +138 -100
  98. package/skills/torusguard/payload/scripts/audit_runner.py +219 -116
  99. package/skills/torusguard/payload/scripts/harden_runner.py +144 -64
  100. package/skills/torusguard/payload/scripts/recheck_runner.py +80 -63
  101. package/skills/torusguard/payload/scripts/recipes_runner.py +38 -31
  102. package/skills/torusguard/payload/scripts/term_ui.py +162 -0
  103. package/skills/torusguard/payload/skills/torusguard/SKILL.md +61 -31
  104. package/skills/torusguard/payload/skills/torusguard-apply/SKILL.md +80 -46
  105. package/skills/torusguard/payload/skills/torusguard-audit/SKILL.md +83 -70
  106. package/skills/torusguard/payload/skills/torusguard-authorize/SKILL.md +5 -4
  107. package/skills/torusguard/payload/skills/torusguard-exploit-check/SKILL.md +6 -5
  108. package/skills/torusguard/payload/skills/torusguard-full/SKILL.md +1 -1
  109. package/skills/torusguard/payload/skills/torusguard-harden/SKILL.md +94 -63
  110. package/skills/torusguard/payload/skills/torusguard-init/SKILL.md +64 -52
  111. package/skills/torusguard/payload/skills/torusguard-recheck/SKILL.md +77 -53
  112. package/skills/torusguard/payload/skills/torusguard-report/SKILL.md +72 -54
  113. package/skills/torusguard/payload/skills/torusguard-status/SKILL.md +58 -42
  114. package/skills/torusguard/payload/skills/torusguard-verify/SKILL.md +8 -7
  115. package/skills/torusguard/payload/skills/torusguard-web-validate/SKILL.md +8 -7
  116. package/skills/torusguard-apply/SKILL.md +80 -48
  117. package/skills/torusguard-audit/SKILL.md +83 -75
  118. package/skills/torusguard-authorize/SKILL.md +1 -1
  119. package/skills/torusguard-exploit-check/SKILL.md +1 -1
  120. package/skills/torusguard-full/SKILL.md +1 -1
  121. package/skills/torusguard-harden/SKILL.md +94 -67
  122. package/skills/torusguard-init/SKILL.md +64 -53
  123. package/skills/torusguard-recheck/SKILL.md +77 -54
  124. package/skills/torusguard-report/SKILL.md +72 -55
  125. package/skills/torusguard-status/SKILL.md +58 -43
  126. package/skills/torusguard-verify/SKILL.md +1 -1
  127. package/skills/torusguard-web-validate/SKILL.md +1 -1
@@ -1,53 +1,77 @@
1
- ---
2
- name: torusguard-recheck
3
- description: Execute targeted differential AST re-scan against modified files, verify fix closure, and assert zero regressions.
4
- version: 1.0.0
5
- workflow: .torusguard/workflows/recheck.md
6
- tools: Read, Grep, Glob, Write
7
- scripts-binding:
8
- - .torusguard/scripts/run_manager.py
9
- - .torusguard/scripts/finding_scorer.py
10
- ---
11
-
12
- # TorusGuard Recheck — Targeted Differential Audit & Regression Verification
13
-
14
- ## Objective
15
- Re-scan only files modified by remediation patches, confirming that targeted vulnerability sinks have been neutralized and verifying that no new security regressions were introduced.
16
-
17
- ---
18
-
19
- ## Execution Steps
20
-
21
- 1. **Identify Modified Files:** Read `apply-log.json` from active run directory.
22
- 2. **Execute Differential Scan:** Re-run active `TG-*` rules exclusively against modified files.
23
- 3. **Evaluate Finding Status:** Transition finding state according to transition rules below.
24
- 4. **Assert Regression-Free:** Ensure no new security warnings triggered on altered lines.
25
- 5. **Update State & Memory:** Record status in `findings.json` and sync verified results to memory engine.
26
- 6. **Emit Recheck Report:** Save summary in `.torusguard/runs/<run_id>/recheck-report.md`.
27
-
28
- ---
29
-
30
- ## State Transition Rules
31
- - **`Fixed`:** Targeted vulnerable AST pattern is absent and no new issues appear on modified lines.
32
- - **`Partially Fixed`:** Vulnerability surface was reduced but sanitization remains incomplete.
33
- - **`Not Fixed`:** Vulnerable AST sink remains present in patched file.
34
- - **`Regression`:** Patch introduced a new security rule violation on modified lines.
35
-
36
- ---
37
-
38
- ## Safety Constraints
39
- - Restrict AST scan strictly to modified files and direct callers.
40
- - If regression is detected, halt and recommend immediate rollback via `.bak` snapshot.
41
- - Read-only differential analysis.
42
-
43
- ---
44
-
45
- ## Output Format
46
- ```markdown
47
- ✅ [TorusGuard] Differential Recheck Completed
48
- - Modified Files Scanned: <Count>
49
- - Target Finding: <Finding ID> ──► FIXED
50
- - Regressions Detected: 0
51
- - Report: `.torusguard/runs/<run_id>/recheck-report.md`
52
- Next: Run `/torusguard report` to export final SARIF and release summary.
53
- ```
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,54 +1,72 @@
1
- ---
2
- name: torusguard-report
3
- description: Generate unified security posture reports and export OASIS SARIF v2.1.0 logs for CI/CD integration.
4
- version: 0.9.2
5
- workflow: .torusguard/workflows/report.md
6
- tools: Read, Grep, Glob, Write
7
- scripts-binding:
8
- - .torusguard/scripts/sarif_exporter.py
9
- - .torusguard/scripts/run_manager.py
10
- ---
11
-
12
- # TorusGuard Report — Unified Security Posture Report & SARIF Export
13
-
14
- ## Objective
15
- Aggregate findings, verification traces, and recheck results into a signed executive security summary and export schema-compliant OASIS SARIF v2.1.0 logs for CI/CD pipelines.
16
-
17
- ---
18
-
19
- ## Execution Steps
20
-
21
- 1. **Aggregate Run Data:** Read findings, verified evidence, and recheck records from active run.
22
- 2. **Export OASIS SARIF v2.1.0:**
23
- ```bash
24
- python .torusguard/scripts/sarif_exporter.py --run <run_dir> --output <run_dir>/results.sarif
25
- ```
26
- 3. **Compile Executive Markdown Report:** Generate `report.md` with posture score, open/closed finding tables, and risk breakdown.
27
- 4. **Update Run Manifest:** Finalize `manifest.json` status counts.
28
- 5. **Archive Release Artifacts:** Ensure `report.md` and `results.sarif` are serialized to disk.
29
-
30
- ---
31
-
32
- ## SARIF v2.1.0 Output Specification
33
- - **Version:** `$schema: https://docs.oasis-open.org/sarif/sarif/v2.1.0/cos02/schemas/sarif-schema-2.1.0.json`, `version: 2.1.0`.
34
- - **Tool Driver:** `name: TorusGuard`, `semanticVersion: 0.9.2`, full rules catalog in `driver.rules`.
35
- - **Category Hygiene:** Set `automationDetails.id: "torusguard/static"` to avoid collisions in multi-analysis CI.
36
- - **Fingerprinting:** Populate `partialFingerprints.primaryLocationLineHash` with SHA-256 context hash.
37
-
38
- ---
39
-
40
- ## Safety Constraints
41
- - Redact all tokens, passwords, and API keys before saving report.
42
- - Strictly read-only reporting; no source code modifications.
43
- - Ensure SARIF passes JSON schema validation.
44
-
45
- ---
46
-
47
- ## Output Format
48
- ```markdown
49
- 📊 [TorusGuard] Security Posture Report Emitted
50
- - Run ID: <Run ID> | Posture Score: <Score>/100
51
- - Findings: <Total> (<Fixed> Fixed · <Open> Open)
52
- - SARIF Export: `.torusguard/runs/<run_id>/results.sarif`
53
- - Executive Report: `.torusguard/runs/<run_id>/report.md`
54
- ```
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,42 +1,58 @@
1
- ---
2
- name: torusguard-status
3
- description: Display current TorusGuard security posture, active configuration, rules catalog, and run history.
4
- version: 0.9.2
5
- workflow: .torusguard/workflows/status.md
6
- tools: Read, Grep, Glob
7
- scripts-binding:
8
- - .torusguard/scripts/run_manager.py
9
- ---
10
-
11
- # TorusGuard Status — Workspace Security Posture & Diagnostic Overview
12
-
13
- ## Objective
14
- Provide an instant diagnostic summary of the repository's security state, active framework rules, historical run results, and runtime scope validity.
15
-
16
- ---
17
-
18
- ## Execution Steps
19
-
20
- 1. **Read Configuration:** Parse `.torusguard/config/torusguard.json` to verify initialization state and detected framework stack.
21
- 2. **Enumerate Active Rules:** Count rule files physically present in `.torusguard/rules/active/`.
22
- 3. **Inspect Run History:** List historical run folders in `.torusguard/runs/` via `run_manager.py`.
23
- 4. **Check Authorization Scope:** Check `.torusguard/config/scope.json` for active targets and TTL expiration.
24
- 5. **Render Diagnostic Overview:** Output formatted status card.
25
-
26
- ---
27
-
28
- ## Safety Constraints
29
- - Read-only execution; zero file modifications.
30
- - Handle uninitialized workspaces gracefully with advice to run `/torusguard init`.
31
-
32
- ---
33
-
34
- ## Output Format
35
- ```markdown
36
- 🛡️ [TorusGuard] Workspace Status Overview
37
- - Version: v0.9.2 | Stack: <Detected Framework>
38
- - Active Rules: <Count> rules active in `.torusguard/rules/active/`
39
- - Historical Runs: <Count> runs recorded
40
- - Scope: <Authorized (TTL Active) / Expired / Unconfigured>
41
- - Posture: <SECURE / ACTION REQUIRED>
42
- ```
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,7 +1,7 @@
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: 0.9.2
4
+ version: 1.3.4
5
5
  workflow: .torusguard/workflows/verify.md
6
6
  tools: Read, Grep, Glob, Write
7
7
  scripts-binding:
@@ -18,14 +18,15 @@ Audit the evidence sufficiency of candidate findings by reading current disk lin
18
18
  ## Execution Steps
19
19
 
20
20
  1. **Locate Target Findings:** Load active findings from `.torusguard/runs/<latest-run>/findings.md`.
21
- 2. **Live Disk Line Match:** Inspect exact cited lines using `view_file` to confirm code presence.
22
- 3. **Audit Evidence Sufficiency:** Verify source-to-sink flow against criteria below.
23
- 4. **Calibrate Confidence Score:**
21
+ 2. **Handle CLI Failures:** If `python .torusguard/scripts/finding_scorer.py` or the verify workflow fails, YOU must manually read the code and calibrate the score based on the evidence parameters.
22
+ 3. **Live Disk Line Match:** Inspect exact cited lines using `view_file` to confirm code presence.
23
+ 4. **Audit Evidence Sufficiency:** Verify source-to-sink flow against criteria below.
24
+ 5. **Calibrate Confidence Score:**
24
25
  ```bash
25
26
  python .torusguard/scripts/finding_scorer.py --run <run_dir> --verify
26
27
  ```
27
- 5. **Update State:** Mark finding as `Confirmed`, `Needs Review`, or `False Positive`.
28
- 6. **Emit Verified Evidence:** Save report in `.torusguard/runs/<run_id>/verified-evidence.md`.
28
+ 6. **Update State:** Mark finding as `Confirmed`, `Needs Review`, or `False Positive`.
29
+ 7. **Emit Verified Evidence:** Save report in `.torusguard/runs/<run_id>/verified-evidence.md`.
29
30
 
30
31
  ---
31
32
 
@@ -47,7 +48,7 @@ A finding is verified as sufficient when:
47
48
 
48
49
  ## Output Format
49
50
  ```markdown
50
- 🧪 [TorusGuard] Finding Verification Complete
51
+ 🧪 [TorusGuard] Finding Verification Complete (AI Assisted)
51
52
  - Findings Audited: <Count> | Confirmed Real: <Count>
52
53
  - False Positives Filtered: <Count> | Refined Mean Score: <Score>/100
53
54
  - Artifact: `.torusguard/runs/<run_id>/verified-evidence.md`
@@ -1,7 +1,7 @@
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: 0.9.2
4
+ version: 1.3.4
5
5
  workflow: .torusguard/workflows/web-validate.md
6
6
  tools: Read, Grep, Glob, Bash, Write
7
7
  scripts-binding:
@@ -34,11 +34,12 @@ All requests pass through `.torusguard/scripts/safety_gate.py`:
34
34
  ## Execution Steps
35
35
 
36
36
  1. **Gate Check:** Validate scope in `scope.json` and query `safety_gate.py`.
37
- 2. **Inject Audit Header:** Attach `X-TorusGuard-AuthID: <auth_id>` to all outbound requests.
38
- 3. **Dispatch Bounded Probe:** Send single non-destructive HTTP request.
39
- 4. **Validate Security Headers:** Check for CSP, HSTS, X-Content-Type-Options, and CORS configurations.
40
- 5. **Audit Cookie Flags:** Verify `HttpOnly`, `Secure`, and `SameSite` on session cookies.
41
- 6. **Capture Replay Trace:** Save sanitized trace in `.torusguard/runs/<run_id>/requests.json`.
37
+ 2. **Handle Automation Failure:** If automated web validation scripts fail, YOU must manually construct the HTTP requests (using `curl` or `fetch`) and inspect the responses.
38
+ 3. **Inject Audit Header:** Attach `X-TorusGuard-AuthID: <auth_id>` to all outbound requests.
39
+ 4. **Dispatch Bounded Probe:** Send single non-destructive HTTP request.
40
+ 5. **Validate Security Headers:** Check for CSP, HSTS, X-Content-Type-Options, and CORS configurations.
41
+ 6. **Audit Cookie Flags:** Verify `HttpOnly`, `Secure`, and `SameSite` on session cookies.
42
+ 7. **Capture Replay Trace:** Save sanitized trace in `.torusguard/runs/<run_id>/requests.json`.
42
43
 
43
44
  ---
44
45
 
@@ -56,7 +57,7 @@ All Bearer tokens, cookies, passwords, and API keys are redacted prior to disk s
56
57
 
57
58
  ## Output Format
58
59
  ```markdown
59
- 🌐 [TorusGuard] Web Validation Completed
60
+ 🌐 [TorusGuard] Web Validation Completed (AI Assisted)
60
61
  - Target: <Host URL> | Endpoints Tested: <Count>
61
62
  - Header Posture: <CSP/HSTS Status> | Cookies: <Flags Status>
62
63
  - Replay Trace: `.torusguard/runs/<run_id>/requests.json`
@@ -1,48 +1,80 @@
1
- ---
2
- name: torusguard-apply
3
- description: Apply governed remediation patches to disk with pre-apply rollback snapshots and Human Gate validation.
4
- version: 0.9.2
5
- workflow: .torusguard/workflows/apply.md
6
- tools: Read, Grep, Glob, Bash, Edit, Write
7
- scripts-binding:
8
- - .torusguard/scripts/run_manager.py
9
- - .torusguard/scripts/diff_guard.py
10
- ---
11
-
12
- # TorusGuard Apply — Governed Patch Application & Rollback Snapshot
13
-
14
- ## Objective
15
- Safely apply approved remediation bundles to disk source files, capturing a byte-for-byte pre-apply backup snapshot and asserting syntax validity post-patch.
16
-
17
- ---
18
-
19
- ## Execution Steps
20
-
21
- 1. **Load Bundle:** Read `patch.diff` and metadata from `.torusguard/runs/<run_id>/remediation/<finding_id>/`.
22
- 2. **Handle CLI Failures:** If the CLI `npx torusguard apply` throws an error or fails to apply the patch, YOU MUST step in and apply it manually.
23
- 3. **Pre-Apply Snapshot:** Save exact backup to `.torusguard/runs/<run_id>/pre_apply/<filename>.bak`.
24
- 4. **Obtain Human Gate:** Confirm user approval for proposed diff.
25
- 5. **Apply Patch Manually:** Execute the surgical modification directly on the target file using `replace_file_content`. Ensure the lines match the `patch.diff` formulated during harden phase.
26
- 6. **Assert Integrity:** Verify modified file compiles cleanly without syntax errors (e.g. running `npm run build` or `python -m py_compile`).
27
- 7. **Record Ledger:** Log timestamp, file path, and post-patch SHA-256 in `apply-log.json`.
28
-
29
- ---
30
-
31
- ## Governance & Safety Rules
32
- - Hard limit: additions $\le 35$, deletions $\le 25$ lines.
33
- - Always create a rollback snapshot before modifying disk code.
34
- - If compile or syntax error occurs, instantly restore from `.bak`.
35
- - Require explicit operator confirmation before writing changes.
36
- - **Do not give up** if the CLI automation fails; the AI Agent must manually complete the patching process.
37
-
38
- ---
39
-
40
- ## Output Format
41
- ```markdown
42
- 🚀 [TorusGuard] Patch Applied Successfully (AI Assisted)
43
- - Finding Target: <Finding ID> | File: <Path>
44
- - Churn: +<Additions> / -<Deletions>
45
- - Rollback Backup: `.torusguard/runs/<run_id>/pre_apply/<file>.bak`
46
- - Compile Check: PASSED
47
- Next: Run `/torusguard recheck` to verify vulnerability is closed.
48
- ```
1
+ ---
2
+ name: torusguard-apply
3
+ description: Apply governed remediation patches to disk with pre-apply rollback snapshots and Human Gate validation via CLI or AI Agent.
4
+ version: 1.3.4
5
+ workflow: .torusguard/workflows/apply.md
6
+ tools: Read, Grep, Glob, Write, replace_file_content, run_command
7
+ scripts-binding:
8
+ - .torusguard/scripts/apply_runner.py
9
+ - .torusguard/scripts/term_ui.py
10
+ - .torusguard/scripts/memory_engine.py
11
+ ---
12
+
13
+ # TorusGuard Apply — Governed Patch Application & Rollback Snapshot
14
+
15
+ ## Objective
16
+ Safely apply approved remediation bundles to disk source files, creating an automated byte-for-byte pre-apply backup snapshot (`.bak`) in `.torusguard/snapshots/<run_id>/`, asserting syntax validity, and distilling passing patterns into Golden Fix Recipes.
17
+
18
+ ---
19
+
20
+ ## Two Execution Modes
21
+
22
+ ### Mode A: Automated CLI Execution (Interactive or Non-Interactive)
23
+ Run the governed patch applier from your terminal:
24
+ ```bash
25
+ # Interactive Human Gate review (prompts for each patch: [y]es / [n]o / [a]ll / [q]uit)
26
+ npx torusguard apply
27
+
28
+ # Non-interactive automated application
29
+ npx torusguard apply --yes
30
+
31
+ # Apply patches from a specific run ID
32
+ npx torusguard apply --run run-20260910-121618-audit --yes
33
+
34
+ # Emergency rollback from pre-apply snapshot
35
+ npx torusguard rollback
36
+ # or
37
+ npx torusguard apply --rollback
38
+ ```
39
+ **Under the Hood:** Executes `python .torusguard/scripts/apply_runner.py`.
40
+ 1. Reads candidate bundles from `.torusguard/runs/<run_id>/bundles/`.
41
+ 2. Creates `.bak` snapshot in `.torusguard/snapshots/<run_id>/<rel_path>.bak`.
42
+ 3. Performs line-aware replacement without corrupting concurrent modifications.
43
+ 4. Distills the applied fix into a **Golden Fix Recipe** registered in `.torusguard/memory/patterns.json`.
44
+ 5. Emits `diff_summary.md` and `apply_plan.md` in the run directory.
45
+ 6. Displays pixel-perfect 75-column terminal cards.
46
+
47
+ ### Mode B: In-Session AI Chat Agent Application
48
+ When applying patches directly within an AI chat session:
49
+ 1. **Human Gate Confirmation:** Present the unified diff to the operator and request explicit approval before editing code.
50
+ 2. **Pre-Apply Snapshot:** Ensure target file backup is created at `.torusguard/snapshots/<run_id>/<rel_path>.bak`.
51
+ 3. **Execute Surgical Edit:** Use `replace_file_content` to apply only the approved lines. Strictly adhere to the formulated Ponytail diff.
52
+ 4. **Syntax & Integrity Check:** Verify that the patched file is syntactically valid (e.g. `node --check <file>` or `python -m py_compile <file>`). If syntax fails, immediately restore from `.bak`.
53
+ 5. **Memory Registration:** Update persistent memory events in `.torusguard/memory/events.json` with event `fix_applied`.
54
+ 6. **Recommend Recheck:** Advise running `/torusguard recheck` or `npx torusguard recheck` to verify closure.
55
+
56
+ ---
57
+
58
+ ## Rollback Guarantee
59
+ If an applied patch introduces unexpected runtime behavior or breaks tests:
60
+ ```bash
61
+ # Instant one-command rollback of the latest applied run:
62
+ npx torusguard rollback
63
+
64
+ # Or rollback a specific run:
65
+ npx torusguard rollback --run run-20260910-121618-audit
66
+ ```
67
+ All affected files are restored byte-for-byte from `.torusguard/snapshots/<run_id>/`.
68
+
69
+ ---
70
+
71
+ ## Output Card Format
72
+ ```markdown
73
+ ### 🚀 TorusGuard Patch Applied Successfully
74
+ - **Target File:** `server/index.js:9`
75
+ - **Rule ID:** `TG-SEC-001` (Hardcoded JWT secret)
76
+ - **Ponytail Churn:** +1 / -1
77
+ - **Rollback Snapshot:** `.torusguard/snapshots/<run_id>/server/index.js.bak`
78
+ - **Golden Recipe:** Distilled into persistent memory
79
+ - **Next Step:** Run `npx torusguard recheck` or `/torusguard recheck` to verify closure
80
+ ```