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.
- package/.torusguard/runs/report-latest.html +3 -3
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-115-9a059e/metadata.json +15 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-115-9a059e/minimal_patch_plan.md +21 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-115-9a059e/patch.diff +9 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-119-61557c/metadata.json +15 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-119-61557c/minimal_patch_plan.md +21 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-119-61557c/patch.diff +9 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-265-996ca3/metadata.json +15 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-265-996ca3/minimal_patch_plan.md +21 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-265-996ca3/patch.diff +9 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-503-d11cf8/metadata.json +15 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-503-d11cf8/minimal_patch_plan.md +21 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-503-d11cf8/patch.diff +9 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-79-91f41f/metadata.json +15 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-79-91f41f/minimal_patch_plan.md +21 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-79-91f41f/patch.diff +9 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-107-516a40/metadata.json +15 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-107-516a40/minimal_patch_plan.md +21 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-107-516a40/patch.diff +9 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-128-7809a1/metadata.json +15 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-128-7809a1/minimal_patch_plan.md +21 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-128-7809a1/patch.diff +9 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-256-c8a22e/metadata.json +15 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-256-c8a22e/minimal_patch_plan.md +21 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-256-c8a22e/patch.diff +9 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-003-53-d167b4/metadata.json +15 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-003-53-d167b4/minimal_patch_plan.md +21 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-003-53-d167b4/patch.diff +9 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-platform-001-183-47fd5e/metadata.json +15 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-platform-001-183-47fd5e/minimal_patch_plan.md +21 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-platform-001-183-47fd5e/patch.diff +9 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-209-4f6424/metadata.json +15 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-209-4f6424/minimal_patch_plan.md +21 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-209-4f6424/patch.diff +9 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-257-89bf34/metadata.json +15 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-257-89bf34/minimal_patch_plan.md +21 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-257-89bf34/patch.diff +9 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-341-ce228c/metadata.json +15 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-341-ce228c/minimal_patch_plan.md +21 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-341-ce228c/patch.diff +9 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-355-7b190b/metadata.json +15 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-355-7b190b/minimal_patch_plan.md +21 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-355-7b190b/patch.diff +9 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-64-5af31a/metadata.json +15 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-64-5af31a/minimal_patch_plan.md +21 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-64-5af31a/patch.diff +9 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-9-f51467/metadata.json +15 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-9-f51467/minimal_patch_plan.md +21 -0
- package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-9-f51467/patch.diff +9 -0
- package/.torusguard/runs/run-20260910-120238-audit/findings.json +1520 -0
- package/.torusguard/runs/run-20260910-120238-audit/findings.md +560 -0
- package/.torusguard/runs/run-20260910-120238-audit/manifest.json +13 -0
- package/.torusguard/runs/run-20260910-120238-audit/recheck.md +86 -0
- package/.torusguard/runs/run-20260910-120238-audit/remediation.md +262 -0
- package/.torusguard/runs/run-20260910-120238-audit/summary.md +5 -0
- package/.torusguard/runs/run-20260910-121238-audit/findings.json +794 -0
- package/.torusguard/runs/run-20260910-121238-audit/findings.md +344 -0
- package/.torusguard/runs/run-20260910-121238-audit/manifest.json +12 -0
- package/.torusguard/runs/run-20260910-121238-audit/summary.md +5 -0
- package/.torusguard/runs/run-20260910-130454-audit/findings.json +893 -0
- package/.torusguard/runs/run-20260910-130454-audit/findings.md +386 -0
- package/.torusguard/runs/run-20260910-130454-audit/manifest.json +12 -0
- package/.torusguard/runs/run-20260910-130454-audit/summary.md +5 -0
- package/.torusguard/runs/run-20260910-130519-audit/findings.json +563 -0
- package/.torusguard/runs/run-20260910-130519-audit/findings.md +246 -0
- package/.torusguard/runs/run-20260910-130519-audit/manifest.json +12 -0
- package/.torusguard/runs/run-20260910-130519-audit/summary.md +5 -0
- package/.torusguard/scripts/__pycache__/audit_runner.cpython-311.pyc +0 -0
- package/.torusguard/scripts/__pycache__/diff_guard.cpython-311.pyc +0 -0
- package/.torusguard/scripts/__pycache__/html_reporter.cpython-311.pyc +0 -0
- package/.torusguard/scripts/__pycache__/rules_sync.cpython-311.pyc +0 -0
- package/.torusguard/scripts/__pycache__/stack_detect.cpython-311.pyc +0 -0
- package/.torusguard/scripts/__pycache__/term_ui.cpython-311.pyc +0 -0
- package/.torusguard/scripts/apply_runner.py +138 -100
- package/.torusguard/scripts/audit_runner.py +219 -116
- package/.torusguard/scripts/harden_runner.py +144 -64
- package/.torusguard/scripts/recheck_runner.py +80 -63
- package/.torusguard/scripts/recipes_runner.py +38 -31
- package/.torusguard/scripts/term_ui.py +162 -0
- package/.torusguard/skills/torusguard/SKILL.md +61 -31
- package/.torusguard/skills/torusguard-apply/SKILL.md +80 -46
- package/.torusguard/skills/torusguard-audit/SKILL.md +83 -70
- package/.torusguard/skills/torusguard-authorize/SKILL.md +5 -4
- package/.torusguard/skills/torusguard-exploit-check/SKILL.md +6 -5
- package/.torusguard/skills/torusguard-full/SKILL.md +1 -1
- package/.torusguard/skills/torusguard-harden/SKILL.md +94 -63
- package/.torusguard/skills/torusguard-init/SKILL.md +64 -52
- package/.torusguard/skills/torusguard-recheck/SKILL.md +77 -53
- package/.torusguard/skills/torusguard-report/SKILL.md +72 -54
- package/.torusguard/skills/torusguard-status/SKILL.md +58 -42
- package/.torusguard/skills/torusguard-verify/SKILL.md +8 -7
- package/.torusguard/skills/torusguard-web-validate/SKILL.md +8 -7
- package/README.md +4 -3
- package/bin/torusguard.js +544 -437
- package/package.json +1 -1
- package/skills/torusguard/SKILL.md +61 -31
- package/skills/torusguard/payload/scripts/apply_runner.py +138 -100
- package/skills/torusguard/payload/scripts/audit_runner.py +219 -116
- package/skills/torusguard/payload/scripts/harden_runner.py +144 -64
- package/skills/torusguard/payload/scripts/recheck_runner.py +80 -63
- package/skills/torusguard/payload/scripts/recipes_runner.py +38 -31
- package/skills/torusguard/payload/scripts/term_ui.py +162 -0
- package/skills/torusguard/payload/skills/torusguard/SKILL.md +61 -31
- package/skills/torusguard/payload/skills/torusguard-apply/SKILL.md +80 -46
- package/skills/torusguard/payload/skills/torusguard-audit/SKILL.md +83 -70
- package/skills/torusguard/payload/skills/torusguard-authorize/SKILL.md +5 -4
- package/skills/torusguard/payload/skills/torusguard-exploit-check/SKILL.md +6 -5
- package/skills/torusguard/payload/skills/torusguard-full/SKILL.md +1 -1
- package/skills/torusguard/payload/skills/torusguard-harden/SKILL.md +94 -63
- package/skills/torusguard/payload/skills/torusguard-init/SKILL.md +64 -52
- package/skills/torusguard/payload/skills/torusguard-recheck/SKILL.md +77 -53
- package/skills/torusguard/payload/skills/torusguard-report/SKILL.md +72 -54
- package/skills/torusguard/payload/skills/torusguard-status/SKILL.md +58 -42
- package/skills/torusguard/payload/skills/torusguard-verify/SKILL.md +8 -7
- package/skills/torusguard/payload/skills/torusguard-web-validate/SKILL.md +8 -7
- package/skills/torusguard-apply/SKILL.md +80 -48
- package/skills/torusguard-audit/SKILL.md +83 -75
- package/skills/torusguard-authorize/SKILL.md +1 -1
- package/skills/torusguard-exploit-check/SKILL.md +1 -1
- package/skills/torusguard-full/SKILL.md +1 -1
- package/skills/torusguard-harden/SKILL.md +94 -67
- package/skills/torusguard-init/SKILL.md +64 -53
- package/skills/torusguard-recheck/SKILL.md +77 -54
- package/skills/torusguard-report/SKILL.md +72 -55
- package/skills/torusguard-status/SKILL.md +58 -43
- package/skills/torusguard-verify/SKILL.md +1 -1
- 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.
|
|
5
|
-
workflow: .torusguard/workflows/recheck.md
|
|
6
|
-
tools: Read, Grep, Glob, Write
|
|
7
|
-
scripts-binding:
|
|
8
|
-
- .torusguard/scripts/
|
|
9
|
-
- .torusguard/scripts/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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
|
|
4
|
-
version:
|
|
5
|
-
workflow: .torusguard/workflows/report.md
|
|
6
|
-
tools: Read, Grep, Glob, Write
|
|
7
|
-
scripts-binding:
|
|
8
|
-
- .torusguard/scripts/
|
|
9
|
-
- .torusguard/scripts/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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:
|
|
5
|
-
workflow: .torusguard/workflows/status.md
|
|
6
|
-
tools: Read, Grep, Glob
|
|
7
|
-
scripts-binding:
|
|
8
|
-
- .torusguard/scripts/run_manager.py
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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:
|
|
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. **
|
|
22
|
-
3. **
|
|
23
|
-
4. **
|
|
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
|
-
|
|
28
|
-
|
|
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:
|
|
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. **
|
|
38
|
-
3. **
|
|
39
|
-
4. **
|
|
40
|
-
5. **
|
|
41
|
-
6. **
|
|
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:
|
|
5
|
-
workflow: .torusguard/workflows/apply.md
|
|
6
|
-
tools: Read, Grep, Glob,
|
|
7
|
-
scripts-binding:
|
|
8
|
-
- .torusguard/scripts/
|
|
9
|
-
- .torusguard/scripts/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
+
```
|