torusguard 1.4.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.torusguard/.manifest.json +50 -28
- package/.torusguard/auth.json +5 -0
- package/.torusguard/rules/container/TG-CONT-001-root-user-execution.md +50 -0
- package/.torusguard/rules/container/TG-CONT-002-docker-socket-mount.md +47 -0
- package/.torusguard/rules/container/TG-CONT-003-privileged-container-mode.md +53 -0
- package/.torusguard/rules/container/TG-CONT-004-build-arg-secret-exposure.md +43 -0
- package/.torusguard/rules/git/TG-GIT-001-historical-secret-in-git-commit.md +44 -0
- package/.torusguard/rules/git/TG-GIT-002-plaintext-credentials-in-git-config.md +41 -0
- package/.torusguard/rules/git/TG-GIT-003-sensitive-tracked-file-gitignore-breach.md +40 -0
- package/.torusguard/rules/rag/TG-RAG-001-untrusted-rag-context-injection.md +72 -0
- package/.torusguard/rules/rag/TG-RAG-002-autonomous-llm-tool-unsandboxed-call.md +51 -0
- package/.torusguard/rules/rag/TG-RAG-003-unpartitioned-vector-tenant-lookup.md +51 -0
- package/.torusguard/rules/redos/TG-REDOS-001-catastrophic-exponential-backtracking.md +46 -0
- package/.torusguard/rules/redos/TG-REDOS-002-unbounded-nested-quantifier.md +43 -0
- package/.torusguard/rules_catalog.json +338 -518
- package/.torusguard/scripts/__pycache__/apply_runner.cpython-314.pyc +0 -0
- package/.torusguard/scripts/__pycache__/audit_runner.cpython-314.pyc +0 -0
- package/.torusguard/scripts/__pycache__/harden_runner.cpython-314.pyc +0 -0
- package/.torusguard/scripts/__pycache__/html_reporter.cpython-314.pyc +0 -0
- package/.torusguard/scripts/__pycache__/manifest_builder.cpython-314.pyc +0 -0
- package/.torusguard/scripts/__pycache__/recipes_runner.cpython-314.pyc +0 -0
- package/.torusguard/scripts/__pycache__/report_sync.cpython-314.pyc +0 -0
- package/.torusguard/scripts/manifest_builder.py +1 -1
- package/.torusguard/skills/torusguard/SKILL.md +69 -24
- package/.torusguard/skills/torusguard/bootstrap.py +57 -24
- package/.torusguard/skills/torusguard-ai-guard/SKILL.md +95 -0
- package/.torusguard/skills/torusguard-apply/SKILL.md +60 -34
- package/.torusguard/skills/torusguard-audit/SKILL.md +73 -24
- package/.torusguard/skills/torusguard-authorize/SKILL.md +48 -6
- package/.torusguard/skills/torusguard-container/SKILL.md +94 -0
- package/.torusguard/skills/torusguard-exploit-check/SKILL.md +50 -6
- package/.torusguard/skills/torusguard-full/SKILL.md +62 -19
- package/.torusguard/skills/torusguard-git-mine/SKILL.md +92 -0
- package/.torusguard/skills/torusguard-harden/SKILL.md +81 -50
- package/.torusguard/skills/torusguard-init/SKILL.md +61 -14
- package/.torusguard/skills/torusguard-ocr-scan/SKILL.md +94 -0
- package/.torusguard/skills/torusguard-recheck/SKILL.md +71 -18
- package/.torusguard/skills/torusguard-redos/SKILL.md +91 -0
- package/.torusguard/skills/torusguard-report/SKILL.md +50 -9
- package/.torusguard/skills/torusguard-status/SKILL.md +63 -10
- package/.torusguard/skills/torusguard-verify/SKILL.md +52 -10
- package/.torusguard/skills/torusguard-web-validate/SKILL.md +53 -8
- package/.torusguard/snapshots/20260921-182638/go.mod.bak +11 -0
- package/.torusguard/snapshots/20260921-185213/file.go.bak +5 -0
- package/.torusguard/workflows/ai-guard.md +31 -0
- package/.torusguard/workflows/apply.md +32 -55
- package/.torusguard/workflows/audit.md +28 -46
- package/.torusguard/workflows/authorize.md +27 -50
- package/.torusguard/workflows/container.md +29 -0
- package/.torusguard/workflows/exploit-check.md +28 -50
- package/.torusguard/workflows/git-mine.md +25 -0
- package/.torusguard/workflows/harden.md +29 -48
- package/.torusguard/workflows/init.md +27 -50
- package/.torusguard/workflows/memory.md +18 -23
- package/.torusguard/workflows/ocr-scan.md +25 -0
- package/.torusguard/workflows/recheck.md +28 -46
- package/.torusguard/workflows/redos.md +27 -0
- package/.torusguard/workflows/report.md +33 -52
- package/.torusguard/workflows/status.md +31 -52
- package/.torusguard/workflows/verify.md +29 -49
- package/.torusguard/workflows/web-validate.md +22 -45
- package/README.md +336 -386
- package/package.json +1 -1
- package/skills/torusguard/SKILL.md +71 -24
- package/skills/torusguard/__pycache__/bootstrap.cpython-314.pyc +0 -0
- package/skills/torusguard/bootstrap.py +60 -71
- package/skills/torusguard/payload/.manifest.json +50 -28
- package/skills/torusguard/payload/TORUSGUARD.md +145 -145
- package/skills/torusguard/payload/agents/auditor.md +41 -41
- package/skills/torusguard/payload/agents/profiler.md +49 -49
- package/skills/torusguard/payload/agents/remediator.md +41 -41
- package/skills/torusguard/payload/agents/reviewer.md +39 -39
- package/skills/torusguard/payload/agents/validator.md +46 -46
- package/skills/torusguard/payload/config/scope.json +24 -24
- package/skills/torusguard/payload/references/csharp-security.md +41 -41
- package/skills/torusguard/payload/references/go-security.md +41 -41
- package/skills/torusguard/payload/references/java-security.md +40 -40
- package/skills/torusguard/payload/references/polyglot-security-matrix.md +25 -25
- package/skills/torusguard/payload/references/rust-security.md +40 -40
- package/skills/torusguard/payload/rules/container/TG-CONT-001-root-user-execution.md +50 -0
- package/skills/torusguard/payload/rules/container/TG-CONT-002-docker-socket-mount.md +47 -0
- package/skills/torusguard/payload/rules/container/TG-CONT-003-privileged-container-mode.md +53 -0
- package/skills/torusguard/payload/rules/container/TG-CONT-004-build-arg-secret-exposure.md +43 -0
- package/skills/torusguard/payload/rules/custom/.gitkeep +1 -1
- package/skills/torusguard/payload/rules/custom/README.md +30 -30
- package/skills/torusguard/payload/rules/git/TG-GIT-001-historical-secret-in-git-commit.md +44 -0
- package/skills/torusguard/payload/rules/git/TG-GIT-002-plaintext-credentials-in-git-config.md +41 -0
- package/skills/torusguard/payload/rules/git/TG-GIT-003-sensitive-tracked-file-gitignore-breach.md +40 -0
- package/skills/torusguard/payload/rules/rag/TG-RAG-001-untrusted-rag-context-injection.md +72 -0
- package/skills/torusguard/payload/rules/rag/TG-RAG-002-autonomous-llm-tool-unsandboxed-call.md +51 -0
- package/skills/torusguard/payload/rules/rag/TG-RAG-003-unpartitioned-vector-tenant-lookup.md +51 -0
- package/skills/torusguard/payload/rules/redos/TG-REDOS-001-catastrophic-exponential-backtracking.md +46 -0
- package/skills/torusguard/payload/rules/redos/TG-REDOS-002-unbounded-nested-quantifier.md +43 -0
- package/skills/torusguard/payload/rules_catalog.json +338 -518
- package/skills/torusguard/payload/scripts/__pycache__/term_ui.cpython-314.pyc +0 -0
- package/skills/torusguard/payload/scripts/manifest_builder.py +1 -1
- package/skills/torusguard/payload/scripts/rules_sync.py +321 -321
- package/skills/torusguard/payload/scripts/safety_gate.py +64 -64
- package/skills/torusguard/payload/skills/torusguard/SKILL.md +69 -24
- package/skills/torusguard/payload/skills/torusguard/bootstrap.py +57 -24
- package/skills/torusguard/payload/skills/torusguard-ai-guard/SKILL.md +95 -0
- package/skills/torusguard/payload/skills/torusguard-apply/SKILL.md +60 -34
- package/skills/torusguard/payload/skills/torusguard-audit/SKILL.md +73 -24
- package/skills/torusguard/payload/skills/torusguard-authorize/SKILL.md +48 -6
- package/skills/torusguard/payload/skills/torusguard-container/SKILL.md +94 -0
- package/skills/torusguard/payload/skills/torusguard-exploit-check/SKILL.md +50 -6
- package/skills/torusguard/payload/skills/torusguard-full/SKILL.md +62 -19
- package/skills/torusguard/payload/skills/torusguard-git-mine/SKILL.md +92 -0
- package/skills/torusguard/payload/skills/torusguard-harden/SKILL.md +81 -50
- package/skills/torusguard/payload/skills/torusguard-init/SKILL.md +61 -14
- package/skills/torusguard/payload/skills/torusguard-ocr-scan/SKILL.md +94 -0
- package/skills/torusguard/payload/skills/torusguard-recheck/SKILL.md +71 -18
- package/skills/torusguard/payload/skills/torusguard-redos/SKILL.md +91 -0
- package/skills/torusguard/payload/skills/torusguard-report/SKILL.md +50 -9
- package/skills/torusguard/payload/skills/torusguard-status/SKILL.md +63 -10
- package/skills/torusguard/payload/skills/torusguard-verify/SKILL.md +52 -10
- package/skills/torusguard/payload/skills/torusguard-web-validate/SKILL.md +53 -8
- package/skills/torusguard/payload/templates/audit-report.template.md +54 -54
- package/skills/torusguard/payload/templates/authorization.template.md +34 -34
- package/skills/torusguard/payload/templates/finding-card.template.md +32 -32
- package/skills/torusguard/payload/templates/remediation-bundle.template.md +35 -35
- package/skills/torusguard/payload/workflows/ai-guard.md +31 -0
- package/skills/torusguard/payload/workflows/apply.md +31 -62
- package/skills/torusguard/payload/workflows/audit.md +27 -51
- package/skills/torusguard/payload/workflows/authorize.md +27 -50
- package/skills/torusguard/payload/workflows/container.md +29 -0
- package/skills/torusguard/payload/workflows/exploit-check.md +28 -50
- package/skills/torusguard/payload/workflows/git-mine.md +25 -0
- package/skills/torusguard/payload/workflows/harden.md +28 -52
- package/skills/torusguard/payload/workflows/init.md +27 -56
- package/skills/torusguard/payload/workflows/memory.md +18 -23
- package/skills/torusguard/payload/workflows/ocr-scan.md +25 -0
- package/skills/torusguard/payload/workflows/recheck.md +28 -46
- package/skills/torusguard/payload/workflows/redos.md +27 -0
- package/skills/torusguard/payload/workflows/report.md +39 -62
- package/skills/torusguard/payload/workflows/status.md +31 -55
- package/skills/torusguard/payload/workflows/verify.md +29 -49
- package/skills/torusguard/payload/workflows/web-validate.md +22 -45
- package/skills/torusguard/references/csharp-security.md +41 -0
- package/skills/torusguard/references/go-security.md +41 -0
- package/skills/torusguard/references/java-security.md +40 -0
- package/skills/torusguard/references/polyglot-security-matrix.md +25 -0
- package/skills/torusguard/references/rust-security.md +40 -0
- package/skills/torusguard-ai-guard/SKILL.md +95 -0
- package/skills/torusguard-apply/SKILL.md +60 -34
- package/skills/torusguard-audit/SKILL.md +73 -24
- package/skills/torusguard-authorize/SKILL.md +48 -6
- package/skills/torusguard-container/SKILL.md +94 -0
- package/skills/torusguard-exploit-check/SKILL.md +50 -6
- package/skills/torusguard-full/SKILL.md +62 -19
- package/skills/torusguard-git-mine/SKILL.md +92 -0
- package/skills/torusguard-harden/SKILL.md +81 -50
- package/skills/torusguard-init/SKILL.md +61 -14
- package/skills/torusguard-ocr-scan/SKILL.md +94 -0
- package/skills/torusguard-recheck/SKILL.md +71 -18
- package/skills/torusguard-redos/SKILL.md +91 -0
- package/skills/torusguard-report/SKILL.md +50 -9
- package/skills/torusguard-status/SKILL.md +63 -10
- package/skills/torusguard-verify/SKILL.md +52 -10
- package/skills/torusguard-web-validate/SKILL.md +53 -8
|
@@ -5,11 +5,11 @@ version: 2.2.0
|
|
|
5
5
|
workflow: .torusguard/workflows/report.md
|
|
6
6
|
tools: Read, Grep, Glob, Write, run_command
|
|
7
7
|
scripts-binding:
|
|
8
|
+
- internal/scanner/scanner.go
|
|
8
9
|
- .torusguard/scripts/report_sync.py
|
|
9
10
|
- .torusguard/scripts/html_reporter.py
|
|
10
11
|
- .torusguard/scripts/sarif_exporter.py
|
|
11
12
|
- .torusguard/scripts/run_manager.py
|
|
12
|
-
- .torusguard/scripts/term_ui.py
|
|
13
13
|
---
|
|
14
14
|
|
|
15
15
|
# TorusGuard Report — Posture Reporting & SARIF / HTML Export
|
|
@@ -19,30 +19,40 @@ Aggregate findings, verification traces, and recheck results into an auditable e
|
|
|
19
19
|
|
|
20
20
|
---
|
|
21
21
|
|
|
22
|
+
## Tri-Mode Parity
|
|
23
|
+
|
|
24
|
+
| Mode | Command / Tool | Governed Behavior |
|
|
25
|
+
| :--- | :--- | :--- |
|
|
26
|
+
| **Mode A: CLI Terminal** | `torusguard report --html` | Compiles single-file HTML dashboard and OASIS SARIF v2.1.0 log. |
|
|
27
|
+
| **Mode B: AI Chat Slash** | `/torusguard report` | Generates executive posture summary and checks CI/CD readiness. |
|
|
28
|
+
| **Mode C: Native MCP Tool**| `torusguard://security_report` | Serves resource payload and posture metrics directly to agent context. |
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
22
32
|
## Execution Steps
|
|
23
33
|
|
|
24
34
|
### Mode A: Automated CLI Execution
|
|
25
35
|
Run the report engine from your terminal:
|
|
26
36
|
```bash
|
|
27
37
|
# Generate visual dark-mode HTML dashboard (defaults to report.html at project root)
|
|
28
|
-
|
|
38
|
+
torusguard report --html
|
|
29
39
|
|
|
30
40
|
# Export OASIS SARIF v2.1.0 for GitHub Code Scanning / CI
|
|
31
|
-
|
|
41
|
+
torusguard report --sarif
|
|
32
42
|
|
|
33
43
|
# Generate both HTML and SARIF in a single pass
|
|
34
|
-
|
|
44
|
+
torusguard report --html --sarif
|
|
35
45
|
|
|
36
46
|
# Custom HTML output location
|
|
37
|
-
|
|
47
|
+
torusguard report --html --out ./docs/security-audit.html
|
|
38
48
|
|
|
39
49
|
# Target a specific subproject / monorepo package
|
|
40
|
-
|
|
50
|
+
torusguard report --target ./apps/api --html
|
|
41
51
|
```
|
|
42
52
|
|
|
43
53
|
**Under the Hood:**
|
|
44
|
-
-
|
|
45
|
-
-
|
|
54
|
+
- Compiles 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`.
|
|
55
|
+
- Produces OASIS SARIF v2.1.0 logs at `.torusguard/runs/results-latest.sarif`.
|
|
46
56
|
- Finalizes `manifest.json` metrics and updates historical posture scoring.
|
|
47
57
|
- Displays standardized 75-column terminal cards adhering to visual width invariants.
|
|
48
58
|
|
|
@@ -65,7 +75,7 @@ When generating security posture summaries in AI chat:
|
|
|
65
75
|
|
|
66
76
|
## SARIF v2.1.0 Output Specification
|
|
67
77
|
- **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:
|
|
78
|
+
- **Tool Driver:** `name: TorusGuard`, `semanticVersion: 2.0.0`, full rules catalog in `driver.rules`.
|
|
69
79
|
- **Automation Details:** `automationDetails.id: "torusguard/static"` to avoid collisions in multi-scanner CI/CD pipelines.
|
|
70
80
|
- **Fingerprints:** `partialFingerprints.primaryLocationLineHash` with SHA-256 context hash.
|
|
71
81
|
|
|
@@ -91,3 +101,34 @@ When generating security posture summaries in AI chat:
|
|
|
91
101
|
|
|
92
102
|
## Living Report Ground Truth
|
|
93
103
|
- Read `security_report.md` in the workspace root before taking any action. Update the relevant finding card after completing remediation.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 🚨 LLM Trap Table
|
|
108
|
+
|
|
109
|
+
| Pattern | What AI Does Wrong | What Is Actually Correct |
|
|
110
|
+
| :--- | :--- | :--- |
|
|
111
|
+
| **Credential Leakage in HTML** | Embeds raw plaintext passwords, JWTs, or API secrets into HTML report DOM or SARIF output. | Redact all secret values (`[REDACTED]`) before serializing findings to HTML or SARIF. |
|
|
112
|
+
| **External CDN Dependency** | Inserts CDN links (`https://cdn.jsdelivr.net/...`, Google Fonts) breaking offline and air-gapped environments. | Embed 100% of styles, SVGs, and interactive logic inline inside single-file `report.html`. |
|
|
113
|
+
| **SARIF Schema Invalidation** | Emits invalid JSON or omits required fields (`runs[0].tool.driver.rules`), breaking GitHub Code Scanning ingestion. | Validate SARIF output against OASIS v2.1.0 specification with valid rule IDs and URI locations. |
|
|
114
|
+
| **Out-of-Sync Ledger** | Emits HTML report with different counts or statuses than `security_report.md`. | Synchronize metrics so `report.html`, `security_report.md`, and SARIF reflect the identical ground truth. |
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## ✅ Pre-Flight Self-Audit
|
|
119
|
+
|
|
120
|
+
Before generating reports:
|
|
121
|
+
- [ ] Are all secrets, tokens, and authorization credentials redacted?
|
|
122
|
+
- [ ] Is `report.html` 100% self-contained with zero external CDN tags?
|
|
123
|
+
- [ ] Does the SARIF export conform strictly to OASIS SARIF v2.1.0?
|
|
124
|
+
- [ ] Does the reported posture score match findings in `security_report.md`?
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## 🔁 VBC Protocol (Verify → Build → Confirm)
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
VERIFY: Collect finding counts, verification states, and recheck results from active run.
|
|
132
|
+
BUILD: Compile self-contained visual HTML dashboard and serialize SARIF v2.1.0 log.
|
|
133
|
+
CONFIRM: Check file size and validity on disk; verify zero unredacted secrets exist.
|
|
134
|
+
```
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: torusguard-status
|
|
3
3
|
description: Display current TorusGuard security posture, active configuration, rules catalog, and run history via CLI or AI Agent.
|
|
4
|
-
version:
|
|
4
|
+
version: 2.0.0
|
|
5
5
|
workflow: .torusguard/workflows/status.md
|
|
6
6
|
tools: Read, Grep, Glob, run_command, Write
|
|
7
7
|
scripts-binding:
|
|
8
|
+
- internal/scanner/scanner.go
|
|
8
9
|
- .torusguard/scripts/report_sync.py
|
|
9
10
|
- .torusguard/scripts/run_manager.py
|
|
10
|
-
- .torusguard/scripts/term_ui.py
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
# TorusGuard Status — Workspace Security Posture & Diagnostic Overview
|
|
@@ -17,23 +17,34 @@ Provide an instant diagnostic summary of the repository's security state, active
|
|
|
17
17
|
|
|
18
18
|
---
|
|
19
19
|
|
|
20
|
-
##
|
|
20
|
+
## Tri-Mode Parity
|
|
21
|
+
|
|
22
|
+
| Mode | Command / Tool | Governed Behavior |
|
|
23
|
+
| :--- | :--- | :--- |
|
|
24
|
+
| **Mode A: CLI Terminal** | `torusguard status` | Emits 75-column diagnostic cards with stack, posture, and active rules. |
|
|
25
|
+
| **Mode B: AI Chat Slash** | `/torusguard status` | Parses workspace posture, reviews latest run manifest and open findings. |
|
|
26
|
+
| **Mode C: Native MCP Tool**| `torusguard_status` | Returns structured diagnostic payload directly to AI coding agents. |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Tri-Mode Execution
|
|
21
31
|
|
|
22
32
|
### Mode A: Automated CLI Execution
|
|
23
33
|
Run the diagnostic overview from your terminal:
|
|
24
34
|
```bash
|
|
25
35
|
# Display 75-column status cards
|
|
26
|
-
|
|
36
|
+
torusguard status
|
|
27
37
|
|
|
28
38
|
# Check status of specific project directory
|
|
29
|
-
|
|
39
|
+
torusguard status ./examples/vulnerable-react-express
|
|
30
40
|
|
|
31
41
|
# Output machine-readable JSON
|
|
32
|
-
|
|
42
|
+
torusguard status --json
|
|
33
43
|
```
|
|
44
|
+
|
|
34
45
|
**Under the Hood:**
|
|
35
46
|
- Evaluates `.torusguard/config/torusguard.json` for initialized status and detected stack.
|
|
36
|
-
- Enumerates active rules in `.torusguard/rules/active/` (or canonical 74 rules).
|
|
47
|
+
- Enumerates active rules in `.torusguard/rules/active/` (or canonical 74 rules across 18 families).
|
|
37
48
|
- Scans `.torusguard/runs/` for run history, finding counts, and verified fixes.
|
|
38
49
|
- Inspects `.torusguard/config/scope.json` for authorized runtime validation targets.
|
|
39
50
|
- Displays mathematically aligned 75-column terminal cards.
|
|
@@ -43,15 +54,26 @@ When checking workspace status in AI chat:
|
|
|
43
54
|
1. **Verify Workspace Setup:** Check if `.torusguard/` exists on disk.
|
|
44
55
|
2. **Inspect Active Config:** Read `.torusguard/config/torusguard.json` for detected stack, framework, and rules.
|
|
45
56
|
3. **Inspect Latest Run:** Find the latest run directory under `.torusguard/runs/` and read `manifest.json`.
|
|
46
|
-
4. **Inspect
|
|
47
|
-
5. **
|
|
57
|
+
4. **Inspect Living Ledger:** Inspect `security_report.md` for current open/fixed finding counts.
|
|
58
|
+
5. **Inspect Memory Engine:** Check `.torusguard/memory/patterns.json` for captured Golden Fix Recipes.
|
|
59
|
+
6. **Render Diagnostic Card:** Present an overview of posture, stack, and recommended next steps.
|
|
60
|
+
|
|
61
|
+
### Mode C: Native MCP Tool Execution
|
|
62
|
+
For autonomous AI coding agents (Antigravity, Cursor, Windsurf, Claude Code):
|
|
63
|
+
- **Tool Invocation:** Call `torusguard_status` with target directory:
|
|
64
|
+
```json
|
|
65
|
+
{
|
|
66
|
+
"target": "."
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
- **Programmatic Return:** Receives formatted diagnostic status string detailing detected stack, engine version, and active protection state.
|
|
48
70
|
|
|
49
71
|
---
|
|
50
72
|
|
|
51
73
|
## Output Card Format
|
|
52
74
|
```markdown
|
|
53
75
|
### 🛡️ TorusGuard Workspace Status Overview
|
|
54
|
-
- **Version:**
|
|
76
|
+
- **Version:** v2.0.0 | **Stack:** Node.js / React / Express
|
|
55
77
|
- **Active Rules:** 74 canonical security rules enabled
|
|
56
78
|
- **Historical Runs:** 3 runs recorded
|
|
57
79
|
- **Golden Recipes:** 4 distilled into persistent memory
|
|
@@ -60,3 +82,34 @@ When checking workspace status in AI chat:
|
|
|
60
82
|
|
|
61
83
|
## Living Report Ground Truth
|
|
62
84
|
- Read `security_report.md` in the workspace root before taking any action. Update the relevant finding card after completing remediation.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## 🚨 LLM Trap Table
|
|
89
|
+
|
|
90
|
+
| Pattern | What AI Does Wrong | What Is Actually Correct |
|
|
91
|
+
| :--- | :--- | :--- |
|
|
92
|
+
| **Hallucinated Posture** | Reports repository is "100% secure" without reading `security_report.md` or `.torusguard/config/torusguard.json`. | Read actual disk artifacts (`security_report.md`, `manifest.json`) before reporting status. |
|
|
93
|
+
| **Phantom Run Counts** | Fabricates arbitrary run IDs or counts instead of checking `.torusguard/runs/`. | Enumerate `.torusguard/runs/` directories or use `torusguard status` CLI/MCP output. |
|
|
94
|
+
| **Stack Guessing** | Assumes project stack without inspecting package manifests (`go.mod`, `package.json`, `Cargo.toml`). | Verify detected stack from `torusguard.json` or root dependency files. |
|
|
95
|
+
| **Stale Cache Reliance** | Reports previous conversation status after new files or patches were applied. | Perform fresh inspection of workspace status on each invocation. |
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## ✅ Pre-Flight Self-Audit
|
|
100
|
+
|
|
101
|
+
Before emitting a status report:
|
|
102
|
+
- [ ] Did I verify the existence and content of `.torusguard/config/torusguard.json`?
|
|
103
|
+
- [ ] Did I check `security_report.md` for active finding counts?
|
|
104
|
+
- [ ] Did I verify if `.torusguard/runs/` contains historical run data?
|
|
105
|
+
- [ ] Are all reported counts and stack frameworks backed by active disk state?
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 🔁 VBC Protocol (Verify → Build → Confirm)
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
VERIFY: Check disk for .torusguard/ directory and read configuration files.
|
|
113
|
+
BUILD: Aggregate stack information, active rules, and latest run findings.
|
|
114
|
+
CONFIRM: Emit standardized 75-column diagnostic summary card with recommended next steps.
|
|
115
|
+
```
|
|
@@ -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:
|
|
4
|
+
version: 2.0.0
|
|
5
5
|
workflow: .torusguard/workflows/verify.md
|
|
6
6
|
tools: Read, Grep, Glob, Write, run_command
|
|
7
7
|
scripts-binding:
|
|
8
|
+
- internal/scanner/scanner.go
|
|
8
9
|
- .torusguard/scripts/report_sync.py
|
|
9
10
|
- .torusguard/scripts/finding_scorer.py
|
|
10
11
|
---
|
|
@@ -16,22 +17,31 @@ Audit the evidence sufficiency of candidate findings by reading current disk lin
|
|
|
16
17
|
|
|
17
18
|
---
|
|
18
19
|
|
|
20
|
+
## Tri-Mode Parity
|
|
21
|
+
|
|
22
|
+
| Mode | Command / Tool | Governed Behavior |
|
|
23
|
+
| :--- | :--- | :--- |
|
|
24
|
+
| **Mode A: CLI Terminal** | `torusguard verify` | Verifies evidence across findings on disk, asserts line matches. |
|
|
25
|
+
| **Mode B: AI Chat Slash** | `/torusguard verify` | Performs live code inspection, audits source-to-sink taint flows. |
|
|
26
|
+
| **Mode C: Native MCP Tool**| `torusguard_audit` / verify | Diagnostic validation of candidate security findings. |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
19
30
|
## Execution Steps
|
|
20
31
|
|
|
21
|
-
1. **Locate Target Findings:** Load active findings from `.torusguard/runs/<latest-run>/findings.md`.
|
|
22
|
-
2. **
|
|
23
|
-
3. **
|
|
24
|
-
4. **
|
|
25
|
-
5. **Calibrate Confidence Score:**
|
|
32
|
+
1. **Locate Target Findings:** Load active findings from `security_report.md` or `.torusguard/runs/<latest-run>/findings.md`.
|
|
33
|
+
2. **Live Disk Line Match:** Inspect exact cited lines using `view_file` to confirm code presence on disk. Do not rely on stale line numbers.
|
|
34
|
+
3. **Audit Evidence Sufficiency:** Verify source-to-sink flow against criteria below.
|
|
35
|
+
4. **Calibrate Confidence Score:**
|
|
26
36
|
```bash
|
|
27
|
-
|
|
37
|
+
torusguard verify
|
|
28
38
|
```
|
|
29
|
-
|
|
30
|
-
|
|
39
|
+
5. **Update State:** Mark finding as `Confirmed`, `Needs Review`, or `False Positive`.
|
|
40
|
+
6. **Emit Verified Evidence:** Save report in `.torusguard/runs/<run_id>/verified-evidence.md`.
|
|
31
41
|
|
|
32
42
|
---
|
|
33
43
|
|
|
34
|
-
## Evidence Sufficiency
|
|
44
|
+
## Evidence Sufficiency Rubric
|
|
35
45
|
A finding is verified as sufficient when:
|
|
36
46
|
- **Direct AST Match:** The vulnerable API or sink call exists on disk at the cited location.
|
|
37
47
|
- **Exposed Surface:** The sink is reachable from an external route, view, or public method.
|
|
@@ -59,3 +69,35 @@ A finding is verified as sufficient when:
|
|
|
59
69
|
- Artifact: `.torusguard/runs/<run_id>/verified-evidence.md`
|
|
60
70
|
Next: Run `/torusguard harden` to formulate surgical fixes for confirmed flaws.
|
|
61
71
|
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 🚨 LLM Trap Table
|
|
76
|
+
|
|
77
|
+
| Pattern | What AI Does Wrong | What Is Actually Correct |
|
|
78
|
+
| :--- | :--- | :--- |
|
|
79
|
+
| **Stale Line Reliance** | Assumes finding line number matches current disk state without inspecting active file. | Read live disk lines via `view_file` to verify the exact AST sink is located at that line. |
|
|
80
|
+
| **Sanitizer Blindness** | Flags parameterized queries or sanitized inputs as SQLi because raw SQL keywords exist. | Inspect surrounding lines ($\pm 3$) for parameter bindings (`?`, `$1`, prep statements) or sanitizers. |
|
|
81
|
+
| **Test Fixture Confusion** | Confirms vulnerabilities inside mock test files or test suites as production risks. | Check file path against test exclusion patterns (`_test.go`, `.test.ts`, `fixtures/`). Test vulnerabilities must be contextualized or ignored. |
|
|
82
|
+
| **Hallucinated Reachability** | Confirms private internal functions with no external caller as exploitable web attack surfaces. | Verify if the tainted source is actually reachable from public handlers or API routes. |
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## ✅ Pre-Flight Self-Audit
|
|
87
|
+
|
|
88
|
+
Before calibrating or confirming any finding:
|
|
89
|
+
- [ ] Did I read the live file content directly from disk?
|
|
90
|
+
- [ ] Did I verify the exact cited code exists and matches the AST rule pattern?
|
|
91
|
+
- [ ] Did I check for neutralizing middleware, sanitizers, or parameterization in the context window?
|
|
92
|
+
- [ ] Did I verify that the file is not an excluded test fixture or mock?
|
|
93
|
+
- [ ] Is the confidence score (0-100) calibrated against real evidence, not assumptions?
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## 🔁 VBC Protocol (Verify → Build → Confirm)
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
VERIFY: Read cited file lines on disk to verify presence of the reported sink.
|
|
101
|
+
BUILD: Trace source-to-sink flow and check for existing sanitizers or validators.
|
|
102
|
+
CONFIRM: Calibrate confidence score and record verified status in security_report.md.
|
|
103
|
+
```
|
|
@@ -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:
|
|
4
|
+
version: 2.0.0
|
|
5
5
|
workflow: .torusguard/workflows/web-validate.md
|
|
6
6
|
tools: Read, Grep, Glob, Bash, Write, run_command
|
|
7
7
|
scripts-binding:
|
|
8
|
+
- internal/scanner/scanner.go
|
|
8
9
|
- .torusguard/scripts/report_sync.py
|
|
9
10
|
- .torusguard/scripts/safety_gate.py
|
|
10
11
|
---
|
|
@@ -16,16 +17,27 @@ Safely probe live web applications within authorized scope, injecting transparen
|
|
|
16
17
|
|
|
17
18
|
---
|
|
18
19
|
|
|
20
|
+
## Tri-Mode Parity
|
|
21
|
+
|
|
22
|
+
| Mode | Command / Tool | Governed Behavior |
|
|
23
|
+
| :--- | :--- | :--- |
|
|
24
|
+
| **Mode A: CLI Terminal** | `torusguard web-validate` | Dispatches bounded HTTP probes with transparent audit headers and redaction. |
|
|
25
|
+
| **Mode B: AI Chat Slash** | `/torusguard web-validate` | Interactive verification of endpoints, security headers, and cookie flags. |
|
|
26
|
+
| **Mode C: Native MCP Tool**| — | Safe runtime execution guarded by scope.json boundaries. |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
19
30
|
## Authorization Gate Check
|
|
20
31
|
Before dispatching any HTTP request:
|
|
21
32
|
1. Verify `.torusguard/config/scope.json` exists and contains target URL.
|
|
22
33
|
2. Confirm current timestamp is prior to `expires_at` TTL.
|
|
23
34
|
3. Assert target is local or non-production staging.
|
|
35
|
+
4. **SSRF Boundary Enforcement:** Resolve target IP and assert it does not target cloud metadata endpoints (`169.254.169.254`) or unintended internal subnets (`127.0.0.1` unless explicitly authorized as local dev).
|
|
24
36
|
|
|
25
37
|
---
|
|
26
38
|
|
|
27
39
|
## Safety Gate
|
|
28
|
-
All requests pass through
|
|
40
|
+
All requests pass through safety boundary checks:
|
|
29
41
|
- `Auto-Allowed`: Read-only `GET`, `HEAD`, `OPTIONS` on non-sensitive paths.
|
|
30
42
|
- `Approval Required`: Requests touching auth, sessions, or parameters.
|
|
31
43
|
- `Manual Only`: Any destructive method (`DELETE`, `DROP`) is strictly blocked.
|
|
@@ -34,13 +46,15 @@ All requests pass through `.torusguard/scripts/safety_gate.py`:
|
|
|
34
46
|
|
|
35
47
|
## Execution Steps
|
|
36
48
|
|
|
37
|
-
1. **Gate Check:** Validate scope in `scope.json
|
|
38
|
-
2. **
|
|
49
|
+
1. **Gate Check:** Validate scope in `scope.json`.
|
|
50
|
+
2. **Execute Probe:**
|
|
51
|
+
```bash
|
|
52
|
+
torusguard web-validate --target http://localhost:3000
|
|
53
|
+
```
|
|
39
54
|
3. **Inject Audit Header:** Attach `X-TorusGuard-AuthID: <auth_id>` to all outbound requests.
|
|
40
|
-
4. **
|
|
41
|
-
5. **
|
|
42
|
-
6. **
|
|
43
|
-
7. **Capture Replay Trace:** Save sanitized trace in `.torusguard/runs/<run_id>/requests.json`.
|
|
55
|
+
4. **Validate Security Headers:** Check for CSP, HSTS, X-Content-Type-Options, and CORS configurations.
|
|
56
|
+
5. **Audit Cookie Flags:** Verify `HttpOnly`, `Secure`, and `SameSite` on session cookies.
|
|
57
|
+
6. **Capture Replay Trace:** Save sanitized trace in `.torusguard/runs/<run_id>/requests.json`.
|
|
44
58
|
|
|
45
59
|
---
|
|
46
60
|
|
|
@@ -68,3 +82,34 @@ All Bearer tokens, cookies, passwords, and API keys are redacted prior to disk s
|
|
|
68
82
|
- Replay Trace: `.torusguard/runs/<run_id>/requests.json`
|
|
69
83
|
Next: Run `/torusguard exploit-check` to confirm exploitability of candidate flaws.
|
|
70
84
|
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## 🚨 LLM Trap Table
|
|
89
|
+
|
|
90
|
+
| Pattern | What AI Does Wrong | What Is Actually Correct |
|
|
91
|
+
| :--- | :--- | :--- |
|
|
92
|
+
| **Scope Bypass Probing** | Sends HTTP requests to arbitrary endpoints without validating `.torusguard/config/scope.json`. | Check `scope.json` and verify TTL before every outbound probe. |
|
|
93
|
+
| **Token Exposure in Traces** | Writes unredacted `Authorization: Bearer <secret>` or session cookies to `requests.json`. | Redact all credentials to `[REDACTED]` before saving traces to disk. |
|
|
94
|
+
| **SSRF Blindness** | Follows redirects or probes endpoints pointing to AWS/GCP metadata (`169.254.169.254`). | Block private IP ranges and metadata addresses under invariant 9. |
|
|
95
|
+
| **Unbounded Flooding** | Launches high-concurrency request loops or stress tests against local dev server. | Enforce rate limiting and cap session probes to maximum 50 requests. |
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## ✅ Pre-Flight Self-Audit
|
|
100
|
+
|
|
101
|
+
Before dispatching web probes:
|
|
102
|
+
- [ ] Is the target URL verified inside `scope.json` and within valid TTL?
|
|
103
|
+
- [ ] Are transparent audit headers (`X-TorusGuard-AuthID`) attached?
|
|
104
|
+
- [ ] Are destructive operations (`DELETE`, drops) blocked?
|
|
105
|
+
- [ ] Are sensitive tokens and cookies redacted from trace logs?
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 🔁 VBC Protocol (Verify → Build → Confirm)
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
VERIFY: Check scope.json validity, TTL, and SSRF boundaries for the target URL.
|
|
113
|
+
BUILD: Construct bounded HTTP request with X-TorusGuard-AuthID audit header.
|
|
114
|
+
CONFIRM: Redact sensitive tokens and save sanitized trace into requests.json.
|
|
115
|
+
```
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
module github.com/torusguard/torusguard
|
|
2
|
+
|
|
3
|
+
go 1.25.0
|
|
4
|
+
|
|
5
|
+
require (
|
|
6
|
+
github.com/fatih/color v1.19.0 // indirect
|
|
7
|
+
github.com/mattn/go-colorable v0.1.14 // indirect
|
|
8
|
+
github.com/mattn/go-isatty v0.0.20 // indirect
|
|
9
|
+
github.com/smacker/go-tree-sitter v0.0.0-20240827094217-dd81d9e9be82 // indirect
|
|
10
|
+
golang.org/x/sys v0.42.0 // indirect
|
|
11
|
+
)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# /torusguard-ai-guard — AI Application & RAG Pipeline Guard
|
|
2
|
+
|
|
3
|
+
$ARGUMENTS
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
Detect and remediate prompt injection, unsandboxed autonomous tool executions, and cross-tenant vector contamination across AI agent and RAG architectures.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Tri-Mode Parity
|
|
13
|
+
- **Mode A (Terminal CLI):** `torusguard ai-guard [target]`
|
|
14
|
+
- **Mode B (AI Chat Slash Command):** `/torusguard ai-guard [target]`
|
|
15
|
+
- **Mode C (Native MCP Tool):** `torusguard_ai_guard`
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Execution Steps
|
|
20
|
+
|
|
21
|
+
1. **Discover LLM & Agent Call Sites:** Locate AI framework usage (OpenAI, Anthropic, LangChain, LlamaIndex, Vercel AI SDK).
|
|
22
|
+
2. **Audit Prompt Templates:**
|
|
23
|
+
- Detect raw user string concatenation into system instructions (`TG-AGENT-001`).
|
|
24
|
+
- Flag raw document chunk ingestion in RAG without inert delimiters (`TG-RAG-002`).
|
|
25
|
+
3. **Audit Tool Registry & Dispatchers:**
|
|
26
|
+
- Check for unsandboxed shell, file, or database tool calls lacking Human Gates (`TG-AGENT-002`).
|
|
27
|
+
- Enforce Zod/Pydantic schema validation on all tool argument payloads (`TG-AGENT-003`).
|
|
28
|
+
4. **Audit Vector Store Queries:**
|
|
29
|
+
- Assert all similarity searches (`pgvector`, `pinecone`, `qdrant`, `chroma`) include tenant/user metadata filters (`TG-RAG-001`).
|
|
30
|
+
- Flag ingestion of unvalidated external document payloads (`TG-RAG-003`).
|
|
31
|
+
5. **Formulate Patches & Synchronize:** Propose surgical fixes and record findings in `security_report.md`.
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Governed patch application with pre-apply rollback snapshots and Human Gate authorization.
|
|
3
|
-
tools: Read, Grep, Glob, Bash, Edit, Write
|
|
4
|
-
version:
|
|
3
|
+
tools: Read, Grep, Glob, Bash, Edit, Write, run_command
|
|
4
|
+
version: 2.0.0
|
|
5
5
|
agent: remediator
|
|
6
6
|
lifecycle-phase: Phase 5 (Patch Application)
|
|
7
7
|
required-skills:
|
|
8
8
|
- torusguard-apply
|
|
9
9
|
scripts-binding:
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
- .torusguard/scripts/run_manager.py
|
|
13
|
-
- .torusguard/scripts/diff_guard.py
|
|
10
|
+
- internal/apply/apply.go
|
|
11
|
+
- cmd/torusguard/main.go
|
|
14
12
|
---
|
|
15
13
|
|
|
16
14
|
# /torusguard apply — Governed Patch Application & Rollback Snapshot
|
|
@@ -20,83 +18,62 @@ $ARGUMENTS
|
|
|
20
18
|
---
|
|
21
19
|
|
|
22
20
|
## Objective
|
|
23
|
-
|
|
21
|
+
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.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Tri-Mode Execution
|
|
26
|
+
|
|
27
|
+
| Mode | Command / Tool | Execution Method |
|
|
28
|
+
| :--- | :--- | :--- |
|
|
29
|
+
| **Mode A: Terminal CLI** | `torusguard apply candidate.patch [--yes]` | Shell execution of patch applier with snapshot creation. |
|
|
30
|
+
| **Mode B: AI Chat Slash** | `/torusguard apply` | Guided conversational application with explicit Human Gate approval. |
|
|
31
|
+
| **Mode C: Native MCP Tool** | Autonomous Agent Flow | Formulates patch with `torusguard_harden`, awaits Human Gate, invokes CLI. |
|
|
24
32
|
|
|
25
33
|
---
|
|
26
34
|
|
|
27
35
|
## Mandatory Pre-Flight Context Inspection
|
|
28
36
|
|
|
29
37
|
Inspect bundle validity and file safety before modifying disk code:
|
|
30
|
-
1. **Bundle Verification:** Assert `patch
|
|
31
|
-
2. **Pre-Apply Snapshot:** Save a byte-for-byte backup copy (`.
|
|
38
|
+
1. **Bundle Verification:** Assert `candidate.patch` or semantic `patch.json` exists.
|
|
39
|
+
2. **Pre-Apply Snapshot:** Save a byte-for-byte backup copy (`.torusguard/snapshots/<run_id>/<rel_path>.bak`) prior to editing.
|
|
32
40
|
3. **Uncommitted Changes:** Check git status; ensure target file has clean baseline.
|
|
33
41
|
4. **Ponytail Check:** Re-verify that patch additions $\le 35$ and deletions $\le 25$.
|
|
34
42
|
5. **Human Gate:** Confirm operator approval before committing edits to disk.
|
|
35
|
-
6. **Workspace Cleanliness:** Verify git working tree has no uncommitted merge conflicts.
|
|
36
|
-
7. **Execution Privilege:** Verify write access to targeted file locations.
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
## When to Use /torusguard apply
|
|
41
|
-
|
|
42
|
-
| Trigger Scenario | Recommended Action |
|
|
43
|
-
| :--- | :--- |
|
|
44
|
-
| Applying an approved remediation patch to disk | Run `/torusguard apply` |
|
|
45
|
-
| Generating patch diff without modifying disk | Run `/torusguard harden` |
|
|
46
|
-
| Verifying that patch eliminated flaw without regression | Run `/torusguard recheck` |
|
|
47
|
-
| Reverting an applied patch | Restore from `.bak` snapshot |
|
|
48
|
-
| Checking workspace status | Run `/torusguard status` |
|
|
49
43
|
|
|
50
44
|
---
|
|
51
45
|
|
|
52
46
|
## Living Report Invariant
|
|
53
47
|
- Applied patches create pre-apply `.bak` snapshots in `.torusguard/snapshots/<run_id>/`.
|
|
54
48
|
- Finding statuses transition in `security_report.md` to `APPLIED 🔵`.
|
|
55
|
-
- Instant rollback available via `
|
|
56
|
-
|
|
57
|
-
## Execution Steps
|
|
58
|
-
|
|
59
|
-
1. **Load Remediation Bundle:** Read `patch.diff` and metadata from active run directory.
|
|
60
|
-
2. **Audit Patch Invariants:** Run `python .torusguard/scripts/diff_guard.py <patch.diff>`.
|
|
61
|
-
3. **Create Rollback Backup:** Copy target file to `.torusguard/runs/<run_id>/.torusguard/snapshots/<run_id>/<filename>.bak`.
|
|
62
|
-
4. **Apply Minimal Diff:** Execute precise surgical edit using `replace_file_content` or `patch`.
|
|
63
|
-
5. **Assert Syntax & Integrity:** Check that modified file compiles cleanly without syntax errors.
|
|
64
|
-
6. **Log Application Ledger:** Record timestamp, original SHA-256, and patched SHA-256 in `apply-log.json`.
|
|
65
|
-
|
|
66
|
-
---
|
|
67
|
-
|
|
68
|
-
## Failure Recovery
|
|
69
|
-
|
|
70
|
-
- **Syntax Error After Patch:** Instantly revert target file from `.bak` backup snapshot.
|
|
71
|
-
- **Merge / Context Conflict:** Re-run `/torusguard harden` to regenerate diff against latest disk lines.
|
|
72
|
-
- **Missing Backup File:** Do not apply patch if backup copy cannot be written.
|
|
73
|
-
- **Halt Trigger:** Abort if git working tree is dirty on conflicting lines.
|
|
49
|
+
- Instant rollback available via `torusguard rollback`.
|
|
74
50
|
|
|
75
51
|
---
|
|
76
52
|
|
|
77
|
-
##
|
|
53
|
+
## Execution Steps
|
|
78
54
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
55
|
+
1. **Load Remediation Bundle:** Read `candidate.patch` or `patch.json`.
|
|
56
|
+
2. **Obtain Human Gate:** Confirm user approval to modify target source file.
|
|
57
|
+
3. **Create Rollback Backup:** Capture `.bak` in `.torusguard/snapshots/<run_id>/`.
|
|
58
|
+
4. **Apply Surgical Edit:** Run `torusguard apply <patch> --yes` or apply semantic reflection.
|
|
59
|
+
5. **Assert Syntax & Integrity:** Check that modified file compiles cleanly (`go test ./...`, syntax lint).
|
|
60
|
+
6. **Recommend Recheck:** Run `torusguard recheck` or `/torusguard recheck`.
|
|
82
61
|
|
|
83
62
|
---
|
|
84
63
|
|
|
85
64
|
## Output Card Format
|
|
86
65
|
|
|
87
66
|
```markdown
|
|
88
|
-
### 🚀 TorusGuard Patch
|
|
89
|
-
- **
|
|
90
|
-
- **
|
|
91
|
-
- **Rollback
|
|
92
|
-
- **
|
|
93
|
-
- **Syntax Check:** PASSED (clean compile)
|
|
94
|
-
- **Status:** APPLIED — run `/torusguard recheck` to verify fix
|
|
67
|
+
### 🚀 TorusGuard Patch Applied Successfully
|
|
68
|
+
- **Target File:** `src/path/to/file`
|
|
69
|
+
- **Backup Snapshot:** `.torusguard/snapshots/<run_id>/<file>.bak`
|
|
70
|
+
- **Rollback Command:** `torusguard rollback`
|
|
71
|
+
- **Next Step:** Run `/torusguard recheck` to verify closure
|
|
95
72
|
```
|
|
96
73
|
|
|
97
74
|
---
|
|
98
75
|
|
|
99
76
|
## Next Steps
|
|
100
77
|
|
|
101
|
-
1. Run `/torusguard recheck`
|
|
102
|
-
2.
|
|
78
|
+
1. Run `/torusguard recheck` or `torusguard recheck` to verify closure and zero regressions.
|
|
79
|
+
2. If unexpected behavior occurs, run `torusguard rollback`.
|