Used by the Security audit, in a Security run, or a Security review
-
thirdshift-security-audit/SKILL.md
+
+ thirdshift-security-audit/SKILL.md
---
name: thirdshift-security-audit
description: Security guidance and vulnerability review for codebases, APIs, services, CLI tools, libraries, and daemons. Use for security questions, focused reviews, vulnerability research, security audits, or pen tests. Run the complete workflow only for explicit codebase audit or pen-test requests, full/comprehensive/end-to-end reviews, or requested report artifacts.
@@ -1375,7 +1499,9 @@ thirdshift-security-audit
9. Assigning severity to `needs_validation` records.
10. Writing the report before independent verification or letting prose and JSON disagree.
- thirdshift-security-audit/AI-AND-LLM.md
+
+
+ thirdshift-security-audit/AI-AND-LLM.md
# AI, LLM, and Agent Hunting
#### When to use this file
@@ -1460,7 +1586,9 @@ thirdshift-security-
5. For MCP identity claims, verify the authenticated connection, request correlation, tool namespace, and effective credential. Mark `needs_validation` if external server identity or deployment routing is required.
6. Return `confirmed` findings only with a complete source trace and meaningful result. Return `needs_validation` for a specific unresolved boundary fact and state the bounded local or owner-observed check needed to resolve it.
- thirdshift-security-audit/ATTACK-CLASSES.md
+
+
+ thirdshift-security-audit/ATTACK-CLASSES.md
# Attack Classes
#### Attack classes — choose and split based on Phase 1
@@ -1592,7 +1720,9 @@ thirdshift-secur
**Important**: For any finding this agent reports, it must verify the full code path, not just surface appearance. If a cookie is missing `HttpOnly`, check whether the cookie contains security-sensitive data and whether JS needs to read it by design. If an error message contains a field name, check whether the field is ever actually populated with sensitive data. A flag is not a finding — trace the impact before reporting.
- thirdshift-security-audit/CLIENT-SIDE.md
+
+
+ thirdshift-security-audit/CLIENT-SIDE.md
# Client-Side and Browser Hunting
#### When to use this file
@@ -1677,7 +1807,9 @@ thirdshift-security
4. For messaging, CORS, WebSocket, and XS-Leaks, show exact origin/source validation and the protected state or action exposed. Confirm that CSP, COOP/CORP, cookies, and SameSite policy do not already block it.
5. Return `confirmed` findings only with a complete client path and bounded local evidence. Return `needs_validation` with the precise deployed header, extension permission, browser version, or renderer behavior an owner must verify.
- thirdshift-security-audit/CLOUD-AND-DEPLOYMENT.md
+
+
+ thirdshift-security-audit/CLOUD-AND-DEPLOYMENT.md
# Cloud and Deployment Hunting
#### When to use this file
@@ -1765,7 +1897,9 @@ thirdshift
4. Local validation may render templates, evaluate policy, inspect container/user namespaces in an isolated fixture, or run an emulator with dummy identities. Do not probe live endpoints or alter shared cloud resources.
5. Return `confirmed` only with a complete active source trace and concrete boundary result. Return `needs_validation` with the exact deployed policy, identity attachment, overlay, network, or drift observation needed.
- thirdshift-security-audit/CREDITS.md
+
+
+ thirdshift-security-audit/CREDITS.md
# Upstream and licence
Copied from Cloudflare's [security-audit-skill](https://github.com/cloudflare/security-audit-skill), at commit [`c1c8a8c1471069fb0e188eeaff69b8e8db6564a8`](https://github.com/cloudflare/security-audit-skill/tree/c1c8a8c1471069fb0e188eeaff69b8e8db6564a8).
@@ -1774,7 +1908,9 @@ thirdshift-security-aud
Used under the MIT License. Cloudflare's copyright notice and licence are kept in [LICENSE](LICENSE) in this directory.
- thirdshift-security-audit/DATA-ISOLATION-AND-LIFECYCLE.md
+
+
+ thirdshift-security-audit/DATA-ISOLATION-AND-LIFECYCLE.md
# Data Isolation and Lifecycle Hunting
#### When to use this file
@@ -1860,7 +1996,9 @@ th
4. If external cache, object storage, replicas, analytics, backup, or retention policy is required, classify `needs_validation` and state the owner-observed check.
5. Return `confirmed` only with complete lineage and concrete boundary impact. Return `needs_validation` with the exact unresolved storage, ACL, invalidation, retention, or restore fact.
- thirdshift-security-audit/DESKTOP-MOBILE-AND-LOCAL-IPC.md
+
+
+ thirdshift-security-audit/DESKTOP-MOBILE-AND-LOCAL-IPC.md
# Desktop, Mobile, and Local IPC Hunting
#### When to use this file
@@ -1951,7 +2089,9 @@ th
4. Keep local tests bounded and use dummy content/accounts. Stop after proving the boundary result; do not extend proof into persistence or broader system modification.
5. Return `confirmed` only with a complete source and local evidence chain. Return `needs_validation` with the exact OS, manifest, signing, ACL, or device-lifecycle fact required.
- thirdshift-security-audit/HUNTING.md
+
+
+ thirdshift-security-audit/HUNTING.md
# Vulnerability Hunting
### Phase 2: Run coverage-led hunting waves
@@ -2204,7 +2344,9 @@ thirdshift-security-aud
A budget bounds it the same way. Before assigning each wave, compare remaining budget against its hunter count, the validation reserve, the immediate post-wave critic, and the retained final-clean critic (`quick` reserves only its single final post-wave critic). Shrink the hunter wave to fit, taking units in priority order. If those mandatory reserves do not fit, launch no hunter from that wave and mark its planned units `deferred` with reason `budget_cannot_reserve_critics_and_validation`. Critic-proposed units enter the same ranked queue rather than extending the budget. If surviving candidates exceed the validation reserve, follow the incomplete-run rule in `SKILL.md`: stop hunting, validate in fingerprint order, retain unvalidated units as unresolved candidates, and never present them as findings.
- thirdshift-security-audit/LICENSE
+
+
+ thirdshift-security-audit/LICENSE
MIT License
Copyright (c) 2025-2026 Cloudflare, Inc.
@@ -2227,7 +2369,9 @@ thirdshift-security-audit/
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- thirdshift-security-audit/MEMORY-SAFETY-AND-BINARY.md
+
+
+ thirdshift-security-audit/MEMORY-SAFETY-AND-BINARY.md
# Memory Safety, Binary, and Kernel Hunting
#### When to use this file
@@ -2330,7 +2474,9 @@ thirds
4. For concurrency, use a deterministic schedule or sanitizer trace. For binary loading, prove the checked identity differs from the mapped identity and name the lower-trust writer.
5. Return `confirmed` findings only with exact input, source trace, and observed result. Return `needs_validation` for a specific unresolved reachability, ABI, build, deployment, or runtime fact and state the bounded check needed.
- thirdshift-security-audit/PROTOCOLS-RPC-AND-MESSAGING.md
+
+
+ thirdshift-security-audit/PROTOCOLS-RPC-AND-MESSAGING.md
# Protocols, RPC, and Messaging Hunting
#### When to use this file
@@ -2413,7 +2559,9 @@ thi
4. For authorization and isolation, verify all interceptor, broker ACL, gateway, and consumer layers visible in source. External attachments make the candidate `needs_validation`.
5. Return `confirmed` only with the complete message lifecycle and observed meaningful result. Return `needs_validation` with the exact broker, service identity, route, or delivery fact required.
- thirdshift-security-audit/RECONNAISSANCE.md
+
+
+ thirdshift-security-audit/RECONNAISSANCE.md
# Reconnaissance
### Phase 1: Map the source and plan coverage
@@ -2571,7 +2719,9 @@ thirdshift-secur
Run `node <skill-dir>/validate-coverage-ledger.cjs <output-dir>/coverage-ledger.json` after seeding, after every parent update, and before Phase 6. The validator rejects input beyond 5 MiB, 64 nesting levels, 10,000 units, 1,000 entries in a nested collection, or 500,000 traversed values, and caps reported validation errors at 100. In practice the 5 MiB byte limit holds roughly 2,000-5,000 realistic units, so it binds before the 10,000-unit cap. Fix every error before assigning work or making a coverage claim.
- thirdshift-security-audit/RESOURCE-EXHAUSTION-AND-AVAILABILITY.md
+
+
+ thirdshift-security-audit/RESOURCE-EXHAUSTION-AND-AVAILABILITY.md
# Resource Exhaustion and Availability Hunting
#### When to use this file
@@ -2651,7 +2801,9 @@
4. Prioritize by low requester work, unauthenticated reachability, cross-tenant scope, persistence, and poor recovery; do not validate with availability impact.
5. Return `confirmed` only with safe local proof and meaningful shared effect. Return `needs_validation` with the exact upstream limit, topology, quota, or recovery observation an owner must check.
- thirdshift-security-audit/SUPPLY-CHAIN-AND-RELEASE.md
+
+
+ thirdshift-security-audit/SUPPLY-CHAIN-AND-RELEASE.md
# Supply Chain and Release Hunting
#### When to use this file
@@ -2726,7 +2878,9 @@ thirds
4. Keep local validation bounded: use a harmless fixture repository, dummy credential marker, local registry/config, and non-production artifact namespace. Do not publish or alter a real release.
5. Return `confirmed` only with a complete source-visible handoff and meaningful result. Return `needs_validation` with the precise branch, runner, registry, signing, or deployment fact an owner must observe.
- thirdshift-security-audit/VALIDATION-AND-REPORTING.md
+
+
+ thirdshift-security-audit/VALIDATION-AND-REPORTING.md
# Validation, Structured Output, Verification, and Reporting
### Phase 3: Independently validate every candidate
@@ -2914,7 +3068,9 @@ thirds
Keep the report proportional to the evidence. A clean run may have zero confirmed records. State that result and the remaining coverage/validation limits without inventing LOW findings.
- thirdshift-security-audit/WEB-PROTOCOL-AND-AUTH.md
+
+
+ thirdshift-security-audit/WEB-PROTOCOL-AND-AUTH.md
# HTTP-Protocol and Authentication Hunting
#### When to use this file
@@ -3021,7 +3177,9 @@ thirdshif
5. Verify framework and library defaults. If version or configuration is unknown, use `needs_validation`; do not turn an unverified critical claim into a lower-severity confirmed finding.
6. Return `confirmed` only with a complete source trace and observable unauthorized identity, state, or disclosure. For `needs_validation`, name the missing fact and safe local or owner-observed check that resolves it.
- thirdshift-security-audit/report-schema.json
+
+
+ thirdshift-security-audit/report-schema.json
{
"$comment": "Top-level contract for findings.json. validate-findings.cjs interprets and checks this schema directly.",
"type": "array",
@@ -3484,7 +3642,9 @@ thirdshift-secu
}
}
- thirdshift-security-audit/validate-coverage-ledger.cjs
+
+
+ thirdshift-security-audit/validate-coverage-ledger.cjs
#!/usr/bin/env node
/**
@@ -4358,7 +4518,9 @@ third
if (require.main === module) process.exit(run(process.argv[2]));
- thirdshift-security-audit/validate-coverage-ledger.test.cjs
+
+
+ thirdshift-security-audit/validate-coverage-ledger.test.cjs
const assert = require("node:assert/strict");
const fs = require("node:fs");
const os = require("node:os");
@@ -5100,7 +5262,9 @@
}
});
- thirdshift-security-audit/validate-findings.cjs
+
+
+ thirdshift-security-audit/validate-findings.cjs
#!/usr/bin/env node
/**
@@ -5875,7 +6039,9 @@ thirdshift-s
if (require.main === module) process.exit(run(process.argv[2]));
- thirdshift-security-audit/validate-findings.test.cjs
+
+
+ thirdshift-security-audit/validate-findings.test.cjs
const assert = require("node:assert/strict");
const fs = require("node:fs");
const os = require("node:os");
@@ -6529,11 +6695,17 @@ thirdsh
}
});
+
+
+