@blamejs/exceptd-skills 0.9.1
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/AGENTS.md +232 -0
- package/ARCHITECTURE.md +267 -0
- package/CHANGELOG.md +616 -0
- package/CONTEXT.md +203 -0
- package/LICENSE +200 -0
- package/NOTICE +82 -0
- package/README.md +307 -0
- package/SECURITY.md +73 -0
- package/agents/README.md +81 -0
- package/agents/report-generator.md +156 -0
- package/agents/skill-updater.md +102 -0
- package/agents/source-validator.md +119 -0
- package/agents/threat-researcher.md +149 -0
- package/bin/exceptd.js +183 -0
- package/data/_indexes/_meta.json +88 -0
- package/data/_indexes/activity-feed.json +362 -0
- package/data/_indexes/catalog-summaries.json +229 -0
- package/data/_indexes/chains.json +7135 -0
- package/data/_indexes/currency.json +359 -0
- package/data/_indexes/did-ladders.json +451 -0
- package/data/_indexes/frequency.json +2072 -0
- package/data/_indexes/handoff-dag.json +476 -0
- package/data/_indexes/jurisdiction-clocks.json +967 -0
- package/data/_indexes/jurisdiction-map.json +536 -0
- package/data/_indexes/recipes.json +319 -0
- package/data/_indexes/section-offsets.json +3656 -0
- package/data/_indexes/stale-content.json +14 -0
- package/data/_indexes/summary-cards.json +1736 -0
- package/data/_indexes/theater-fingerprints.json +381 -0
- package/data/_indexes/token-budget.json +2137 -0
- package/data/_indexes/trigger-table.json +1374 -0
- package/data/_indexes/xref.json +818 -0
- package/data/atlas-ttps.json +282 -0
- package/data/cve-catalog.json +496 -0
- package/data/cwe-catalog.json +1017 -0
- package/data/d3fend-catalog.json +738 -0
- package/data/dlp-controls.json +1039 -0
- package/data/exploit-availability.json +67 -0
- package/data/framework-control-gaps.json +1255 -0
- package/data/global-frameworks.json +2913 -0
- package/data/rfc-references.json +324 -0
- package/data/zeroday-lessons.json +377 -0
- package/keys/public.pem +3 -0
- package/lib/framework-gap.js +328 -0
- package/lib/job-queue.js +195 -0
- package/lib/lint-skills.js +536 -0
- package/lib/prefetch.js +372 -0
- package/lib/refresh-external.js +713 -0
- package/lib/schemas/cve-catalog.schema.json +151 -0
- package/lib/schemas/manifest.schema.json +106 -0
- package/lib/schemas/skill-frontmatter.schema.json +113 -0
- package/lib/scoring.js +149 -0
- package/lib/sign.js +197 -0
- package/lib/ttp-mapper.js +80 -0
- package/lib/validate-catalog-meta.js +198 -0
- package/lib/validate-cve-catalog.js +213 -0
- package/lib/validate-indexes.js +83 -0
- package/lib/validate-package.js +162 -0
- package/lib/validate-vendor.js +85 -0
- package/lib/verify.js +216 -0
- package/lib/worker-pool.js +84 -0
- package/manifest-snapshot.json +1833 -0
- package/manifest.json +2108 -0
- package/orchestrator/README.md +124 -0
- package/orchestrator/dispatcher.js +140 -0
- package/orchestrator/event-bus.js +146 -0
- package/orchestrator/index.js +874 -0
- package/orchestrator/pipeline.js +201 -0
- package/orchestrator/scanner.js +327 -0
- package/orchestrator/scheduler.js +137 -0
- package/package.json +113 -0
- package/sbom.cdx.json +158 -0
- package/scripts/audit-cross-skill.js +261 -0
- package/scripts/audit-perf.js +160 -0
- package/scripts/bootstrap.js +205 -0
- package/scripts/build-indexes.js +721 -0
- package/scripts/builders/activity-feed.js +79 -0
- package/scripts/builders/catalog-summaries.js +67 -0
- package/scripts/builders/currency.js +109 -0
- package/scripts/builders/cwe-chains.js +105 -0
- package/scripts/builders/did-ladders.js +149 -0
- package/scripts/builders/frequency.js +89 -0
- package/scripts/builders/jurisdiction-clocks.js +126 -0
- package/scripts/builders/recipes.js +159 -0
- package/scripts/builders/section-offsets.js +162 -0
- package/scripts/builders/stale-content.js +171 -0
- package/scripts/builders/summary-cards.js +166 -0
- package/scripts/builders/theater-fingerprints.js +198 -0
- package/scripts/builders/token-budget.js +96 -0
- package/scripts/check-manifest-snapshot.js +217 -0
- package/scripts/predeploy.js +267 -0
- package/scripts/refresh-manifest-snapshot.js +57 -0
- package/scripts/refresh-sbom.js +222 -0
- package/skills/age-gates-child-safety/skill.md +456 -0
- package/skills/ai-attack-surface/skill.md +282 -0
- package/skills/ai-c2-detection/skill.md +440 -0
- package/skills/ai-risk-management/skill.md +311 -0
- package/skills/api-security/skill.md +287 -0
- package/skills/attack-surface-pentest/skill.md +381 -0
- package/skills/cloud-security/skill.md +384 -0
- package/skills/compliance-theater/skill.md +365 -0
- package/skills/container-runtime-security/skill.md +379 -0
- package/skills/coordinated-vuln-disclosure/skill.md +473 -0
- package/skills/defensive-countermeasure-mapping/skill.md +300 -0
- package/skills/dlp-gap-analysis/skill.md +337 -0
- package/skills/email-security-anti-phishing/skill.md +206 -0
- package/skills/exploit-scoring/skill.md +331 -0
- package/skills/framework-gap-analysis/skill.md +374 -0
- package/skills/fuzz-testing-strategy/skill.md +313 -0
- package/skills/global-grc/skill.md +564 -0
- package/skills/identity-assurance/skill.md +272 -0
- package/skills/incident-response-playbook/skill.md +546 -0
- package/skills/kernel-lpe-triage/skill.md +303 -0
- package/skills/mcp-agent-trust/skill.md +326 -0
- package/skills/mlops-security/skill.md +325 -0
- package/skills/ot-ics-security/skill.md +340 -0
- package/skills/policy-exception-gen/skill.md +437 -0
- package/skills/pqc-first/skill.md +546 -0
- package/skills/rag-pipeline-security/skill.md +294 -0
- package/skills/researcher/skill.md +310 -0
- package/skills/sector-energy/skill.md +409 -0
- package/skills/sector-federal-government/skill.md +302 -0
- package/skills/sector-financial/skill.md +398 -0
- package/skills/sector-healthcare/skill.md +373 -0
- package/skills/security-maturity-tiers/skill.md +464 -0
- package/skills/skill-update-loop/skill.md +463 -0
- package/skills/supply-chain-integrity/skill.md +318 -0
- package/skills/threat-model-currency/skill.md +404 -0
- package/skills/threat-modeling-methodology/skill.md +312 -0
- package/skills/webapp-security/skill.md +281 -0
- package/skills/zeroday-gap-learn/skill.md +350 -0
- package/vendor/blamejs/LICENSE +201 -0
- package/vendor/blamejs/README.md +54 -0
- package/vendor/blamejs/_PROVENANCE.json +54 -0
- package/vendor/blamejs/retry.js +335 -0
- package/vendor/blamejs/worker-pool.js +418 -0
package/README.md
ADDED
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<picture>
|
|
4
|
+
<source media="(prefers-color-scheme: dark)" srcset="public/img/logo/exceptd-logo-dark.svg">
|
|
5
|
+
<img src="public/img/logo/exceptd-logo-primary.svg" alt="exceptd" width="220" />
|
|
6
|
+
</picture>
|
|
7
|
+
|
|
8
|
+
# exceptd Security
|
|
9
|
+
|
|
10
|
+
**AI security skills grounded in mid-2026 threat reality, not framework documentation from 2020.**
|
|
11
|
+
|
|
12
|
+
[](https://github.com/blamejs/exceptd-skills/releases)
|
|
13
|
+
[](https://www.npmjs.com/package/@blamejs/exceptd-skills)
|
|
14
|
+
[](https://github.com/blamejs/exceptd-skills/actions/workflows/ci.yml)
|
|
15
|
+
[](https://scorecard.dev/viewer/?uri=github.com/blamejs/exceptd-skills)
|
|
16
|
+
[](https://www.apache.org/licenses/LICENSE-2.0)
|
|
17
|
+
[](#skill-inventory)
|
|
18
|
+
[](https://atlas.mitre.org)
|
|
19
|
+
[](https://attack.mitre.org)
|
|
20
|
+
[](AGENTS.md)
|
|
21
|
+
[](data/global-frameworks.json)
|
|
22
|
+
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
**Core premise:** Every major security and compliance tool on the market is still operating on stale threat models. NIST 800-53, ISO 27001, SOC 2, and PCI-DSS were written for network-centric, on-prem or early-cloud environments. They have no controls for AI pipeline integrity, MCP/agent tool trust boundaries, LLM prompt injection as an access control failure, page-cache exploitation bypassing filesystem integrity checks, or ephemeral infrastructure where traditional asset inventory is architecturally impossible.
|
|
28
|
+
|
|
29
|
+
This platform surfaces what is actually happening right now. Every skill explicitly flags where a compliance framework's control is insufficient for current attack patterns. The framework is often the problem, not the org.
|
|
30
|
+
|
|
31
|
+
## Status
|
|
32
|
+
|
|
33
|
+
Pre-1.0. Latest release lives on [GitHub Releases](https://github.com/blamejs/exceptd-skills/releases). 38 skills across kernel LPE, AI attack surface, MCP trust, RAG security, AI-API C2 detection, PQC migration, framework gap analysis, compliance theater, exploit scoring, threat-model currency, zero-day learning, global GRC, policy exception generation, security maturity tiers, skill update loop, attack-surface pen testing, fuzz testing, DLP gap analysis, supply-chain integrity, defensive-countermeasure mapping, identity assurance, OT/ICS security, coordinated vulnerability disclosure, threat-modeling methodology, child-safety age gates, plus sector packs (federal, financial, healthcare, energy) — and a `researcher` triage dispatcher. 10 data catalogs cover CVE / ATLAS / ATT&CK / CWE / D3FEND / DLP / RFC / framework gaps / global frameworks / zero-day lessons. 34 jurisdictions tracked. AI-consumer ergonomics: `data/_indexes/` ships 17 pre-computed indexes (xref / chains / dispatch / DiD ladders / theater fingerprints / recipes / token budget / currency / activity feed) regenerated by `npm run build-indexes`. External-data refresh is automated nightly via `.github/workflows/refresh.yml` — KEV/EPSS/NVD/RFC drift opens an auto-PR; ATLAS/ATT&CK/CWE/D3FEND version bumps open an issue (audit required per AGENTS.md Hard Rule #12).
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Skill Inventory
|
|
38
|
+
|
|
39
|
+
### Triage & Dispatch
|
|
40
|
+
|
|
41
|
+
**[researcher](skills/researcher/skill.md)**
|
|
42
|
+
Front-door triage skill for raw threat intel. Takes a CVE ID, ATLAS TTP, vendor advisory, framework control ID, or incident narrative; cross-joins it across `data/cve-catalog.json`, `data/atlas-ttps.json`, `data/framework-control-gaps.json`, `data/zeroday-lessons.json`, `data/exploit-availability.json`, and `data/global-frameworks.json`; produces a one-page RWEP-anchored dispatch report; routes the operator to the right specialized skill(s). Start here when the input is "here's a thing, tell me what to do with it".
|
|
43
|
+
|
|
44
|
+
### Kernel & Privilege Escalation
|
|
45
|
+
|
|
46
|
+
**[kernel-lpe-triage](skills/kernel-lpe-triage/skill.md)**
|
|
47
|
+
Assess Linux kernel local privilege escalation exposure. Covers Copy Fail (CVE-2026-31431, CISA KEV, 732-byte deterministic root, all Linux since 2017), Dirty Frag (CVE-2026-43284/CVE-2026-43500, page-cache chain via ESP/IPsec and RxRPC). Outputs: exposure score, live-patch vs. reboot remediation path, compensating controls, framework gap declaration.
|
|
48
|
+
|
|
49
|
+
### AI-Specific Attack Surface
|
|
50
|
+
|
|
51
|
+
**[ai-attack-surface](skills/ai-attack-surface/skill.md)**
|
|
52
|
+
Comprehensive AI/ML attack surface assessment mapped to MITRE ATLAS v5.1.0 with explicit gap flags. Covers prompt injection as enterprise RCE (CVE-2025-53773 CVSS 9.6, 85%+ bypass rate against SOTA defenses), MCP supply chain RCE (CVE-2026-30615, zero user interaction, 150M+ downloads), RAG exfiltration, model poisoning, AI-assisted exploit development (41% of 2025 zero-days), credential theft acceleration (160% increase).
|
|
53
|
+
|
|
54
|
+
**[mcp-agent-trust](skills/mcp-agent-trust/skill.md)**
|
|
55
|
+
Enumerate MCP (Model Context Protocol) trust boundary failures. Covers tool allowlisting gaps, unsigned server manifests, prompt injection via tool responses, supply chain compromise. CVE-2026-30615 (Windsurf, zero-interaction RCE). Generates: tool allowlist policy, server signing requirements, bearer auth config, output sanitization requirements.
|
|
56
|
+
|
|
57
|
+
**[rag-pipeline-security](skills/rag-pipeline-security/skill.md)**
|
|
58
|
+
RAG-specific threat model with no current framework coverage. Embedding manipulation for data exfiltration, vector store poisoning, chunking attacks, retrieval filter bypass, indirect prompt injection via retrieved documents. ATLAS-mapped. Generates: retrieval audit controls, anomaly detection requirements, output monitoring policy.
|
|
59
|
+
|
|
60
|
+
**[ai-c2-detection](skills/ai-c2-detection/skill.md)**
|
|
61
|
+
Detect adversary use of AI APIs as covert command-and-control (SesameOp case study, ATLAS AML.T0096). PROMPTFLUX/PROMPTSTEAL malware families that query LLMs during execution for real-time evasion. Outputs: behavioral baseline model, detection signatures, network monitoring rules, incident response playbook.
|
|
62
|
+
|
|
63
|
+
### Framework & Compliance
|
|
64
|
+
|
|
65
|
+
**[framework-gap-analysis](skills/framework-gap-analysis/skill.md)**
|
|
66
|
+
Feed a compliance framework control ID and a threat scenario — receive: what the control was designed for, why it is insufficient against current TTPs, which attacker technique exploits the gap, what a real control would require. Built-in gap mappings for NIST 800-53, ISO 27001:2022, SOC 2, PCI-DSS 4.0, NIS2, DORA, CIS v8.
|
|
67
|
+
|
|
68
|
+
**[compliance-theater](skills/compliance-theater/skill.md)**
|
|
69
|
+
Identify where an organization passes an audit but remains exposed. Seven documented compliance theater patterns with specific detection tests. Outputs: theater score per control domain, exposure summary, auditor-facing remediation language, evidence gap list.
|
|
70
|
+
|
|
71
|
+
**[global-grc](skills/global-grc/skill.md)**
|
|
72
|
+
Multi-jurisdiction GRC mapping. Covers EU (GDPR Art. 32, NIS2, DORA, EU AI Act, EU CRA), UK (Cyber Essentials Plus, NCSC CAF), Australia (ISM, ASD Essential 8, APRA CPS 234), Singapore (MAS TRM, CSA CCoP), Japan (METI, NISC), India (CERT-In, SEBI), Canada (OSFI B-10), and global (ISO 27001:2022, CSA CCM v4, CIS Controls v8). Identifies universal gaps that no jurisdiction's framework covers.
|
|
73
|
+
|
|
74
|
+
**[policy-exception-gen](skills/policy-exception-gen/skill.md)**
|
|
75
|
+
Generate defensible policy exceptions for architectural realities frameworks don't accommodate. Templates for: ephemeral/serverless infrastructure (no traditional asset inventory), AI pipelines (continuous opaque model updates), zero trust architecture (no network perimeter), live-system no-reboot patching. Each exception includes compensating controls, risk acceptance language, and auditor-ready justification.
|
|
76
|
+
|
|
77
|
+
### Risk Intelligence
|
|
78
|
+
|
|
79
|
+
**[exploit-scoring](skills/exploit-scoring/skill.md)**
|
|
80
|
+
Real-World Exploit Priority (RWEP) scoring beyond CVSS. Factors: CISA KEV status (0.25), public PoC (0.20), AI-assisted weaponization (0.15), active exploitation (0.20), patch availability (-0.15), live-patch availability (-0.10), blast radius (0.15). Pre-calculated RWEP scores for all CVEs in `data/cve-catalog.json`. Outputs RWEP alongside CVSS with plain-language priority guidance.
|
|
81
|
+
|
|
82
|
+
**[threat-model-currency](skills/threat-model-currency/skill.md)**
|
|
83
|
+
Score how current an organization's threat model is against 2026 threat reality. Checklist of 14 current threat classes against documented model coverage. Outputs: currency percentage, specific missing threat classes, recommended additions with ATLAS/ATT&CK references, prioritized update roadmap.
|
|
84
|
+
|
|
85
|
+
**[zeroday-gap-learn](skills/zeroday-gap-learn/skill.md)**
|
|
86
|
+
Run the zero-day learning loop: zero-day description → attack vector extraction → control gap identification → framework coverage assessment → new control requirement generation → exposure scoring. Encodes lessons from Copy Fail, Dirty Frag, CVE-2025-53773, CVE-2026-30615, SesameOp. Feeds back into framework-gap-analysis and threat-model-currency.
|
|
87
|
+
|
|
88
|
+
### Identity, OT, Disclosure & Threat Modeling
|
|
89
|
+
|
|
90
|
+
**[identity-assurance](skills/identity-assurance/skill.md)**
|
|
91
|
+
Identity assurance for mid-2026. NIST 800-63 AAL/IAL/FAL levels, FIDO2/WebAuthn passkey deployment, OIDC/SAML/SCIM federation, agent-as-principal identity for autonomous AI workloads, short-lived workload token issuance, OAuth 2.0 + RFC 9700 (OAuth 2.0 Security BCP) hardening. Outputs: assurance-level gap map, passkey rollout plan, agent identity policy, token-lifetime targets.
|
|
92
|
+
|
|
93
|
+
**[ot-ics-security](skills/ot-ics-security/skill.md)**
|
|
94
|
+
OT / ICS security for mid-2026. NIST 800-82r3, IEC 62443-3-3, NERC CIP, IT/OT convergence risks (flat networks, shared AD, jump-host weaknesses), AI-augmented HMI threats, and ATT&CK for ICS mappings. Outputs: zone/conduit gap map, safety-instrumented-system isolation review, OT-specific patching exception templates.
|
|
95
|
+
|
|
96
|
+
**[coordinated-vuln-disclosure](skills/coordinated-vuln-disclosure/skill.md)**
|
|
97
|
+
Coordinated Vulnerability Disclosure for mid-2026. ISO 29147 (disclosure) + ISO 30111 (handling), VDP and bug bounty design, CSAF 2.0 machine-readable advisories, security.txt (RFC 9116), EU CRA / NIS2 regulator-mandated disclosure timelines, AI-specific vulnerability classes (prompt injection, training data poisoning, model exfiltration). Outputs: VDP policy, advisory template, regulator notification calendar.
|
|
98
|
+
|
|
99
|
+
**[threat-modeling-methodology](skills/threat-modeling-methodology/skill.md)**
|
|
100
|
+
Methodology selection and execution across STRIDE, PASTA, LINDDUN (privacy), Cyber Kill Chain, Diamond Model, MITRE Unified Kill Chain, AI-system threat modeling, and agent-based threat modeling. Outputs: methodology choice with justification, scoped DFD or attack tree, threat-to-control crosswalk against ATLAS / ATT&CK / D3FEND.
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Install
|
|
105
|
+
|
|
106
|
+
Three audience paths. Pick the one that matches how you'll use this.
|
|
107
|
+
|
|
108
|
+
### 1. AI consumer (read-only — most users)
|
|
109
|
+
|
|
110
|
+
You want an AI assistant to load the skills + catalogs against a question of yours. Easiest path:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
npx @blamejs/exceptd-skills path
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
That prints the absolute path of the installed package. Point your AI assistant at:
|
|
117
|
+
|
|
118
|
+
- `<path>/AGENTS.md` — canonical project rules + ground truth for every skill
|
|
119
|
+
- `<path>/data/_indexes/summary-cards.json` — 100-word abstract per skill (12 KB)
|
|
120
|
+
- `<path>/data/_indexes/recipes.json` — curated multi-skill chains for common use cases
|
|
121
|
+
|
|
122
|
+
No clone, no signing keys, no Node 24 required for assistants that read directly from disk. If your assistant needs a local copy as a regular checkout, use `npx degit blamejs/exceptd-skills my-skills` instead.
|
|
123
|
+
|
|
124
|
+
### 2. Operator (run commands locally)
|
|
125
|
+
|
|
126
|
+
You want to refresh CVE/RFC data, run currency checks, or generate reports. Install + invoke via `npx` (no global install needed):
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
npx @blamejs/exceptd-skills prefetch # warm local cache of upstream data
|
|
130
|
+
npx @blamejs/exceptd-skills refresh --from-cache --swarm
|
|
131
|
+
npx @blamejs/exceptd-skills validate-cves --from-cache --no-fail
|
|
132
|
+
npx @blamejs/exceptd-skills currency
|
|
133
|
+
npx @blamejs/exceptd-skills report executive
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
For frequent use, install globally to skip the `npx` resolution every time:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
npm install -g @blamejs/exceptd-skills
|
|
140
|
+
exceptd help
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Air-gapped operation: run `exceptd prefetch` on a connected host, copy the resulting `.cache/upstream/` to the airgap, run `exceptd refresh --from-cache <path> --apply` over there. The vendored upstream snapshots replace every network call.
|
|
144
|
+
|
|
145
|
+
Optional env vars for higher rate budgets:
|
|
146
|
+
|
|
147
|
+
| Variable | Purpose |
|
|
148
|
+
|---|---|
|
|
149
|
+
| `NVD_API_KEY` | Lifts NVD 2.0 from 5 → 50 requests per 30s window. Free key at <https://nvd.nist.gov/developers/request-an-api-key>. |
|
|
150
|
+
| `GITHUB_TOKEN` | Lifts GitHub Releases (used for ATLAS / ATT&CK / D3FEND / CWE pin checks) from 60 → 5000 requests per hour. |
|
|
151
|
+
|
|
152
|
+
### 3. Maintainer (extend / sign / publish)
|
|
153
|
+
|
|
154
|
+
You're adding a skill, updating a catalog, or cutting a release. Clone + bootstrap the full toolchain:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
git clone https://github.com/blamejs/exceptd-skills
|
|
158
|
+
cd exceptd-skills
|
|
159
|
+
npm run bootstrap # auto-detects: verify-only / re-sign / first-init
|
|
160
|
+
npm run predeploy # full 13-gate CI sequence locally
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
`bootstrap` auto-detects the right mode based on which keys exist on disk:
|
|
164
|
+
|
|
165
|
+
- **Verify-only** (default on a fresh clone): `keys/public.pem` ships in the repo, no `.keys/private.pem` locally. Checks that every skill verifies against the shipped signature, exits.
|
|
166
|
+
- **Re-sign**: `.keys/private.pem` exists locally. Re-signs every skill against current content, verifies.
|
|
167
|
+
- **First-init**: no `keys/public.pem` shipped or `--init` passed. Generates a new Ed25519 keypair, signs everything.
|
|
168
|
+
|
|
169
|
+
Direct invocations also available: `npm run verify`, `node lib/sign.js sign-all`.
|
|
170
|
+
|
|
171
|
+
## CLI command reference
|
|
172
|
+
|
|
173
|
+
Every command works the same via `npx @blamejs/exceptd-skills`, a global install (`exceptd`), or a local `node bin/exceptd.js`.
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
exceptd path Print absolute path to the installed package.
|
|
177
|
+
|
|
178
|
+
exceptd prefetch [args] Warm local cache of upstream artifacts.
|
|
179
|
+
--max-age 24h Skip entries fresher than this.
|
|
180
|
+
--source kev,nvd Comma-separated source filter.
|
|
181
|
+
--force Ignore freshness; refetch everything.
|
|
182
|
+
--no-network Dry-run plan; do not actually fetch.
|
|
183
|
+
|
|
184
|
+
exceptd refresh [args] Refresh upstream data; optionally apply upserts.
|
|
185
|
+
--apply Write diffs back to data/*.json and rebuild indexes.
|
|
186
|
+
--from-cache [<dir>] Read from prefetch cache instead of upstream.
|
|
187
|
+
--swarm Fan-out across worker threads.
|
|
188
|
+
--source kev,epss,nvd,rfc,pins Scope by source.
|
|
189
|
+
--from-fixture <dir> Test mode — read frozen fixtures.
|
|
190
|
+
--report-out <path> Redirect refresh-report.json output.
|
|
191
|
+
|
|
192
|
+
exceptd build-indexes [args] Rebuild data/_indexes/*.json (17 outputs).
|
|
193
|
+
--only <names> Comma-separated subset (auto-pulls in dependencies).
|
|
194
|
+
--changed Rebuild only outputs whose deps changed.
|
|
195
|
+
--parallel Run independent outputs concurrently.
|
|
196
|
+
|
|
197
|
+
exceptd verify Verify Ed25519 signature on every skill.
|
|
198
|
+
exceptd scan Scan environment for findings.
|
|
199
|
+
exceptd dispatch Scan then route findings to skills.
|
|
200
|
+
exceptd skill <name> Show context for a specific skill.
|
|
201
|
+
exceptd currency Skill currency report.
|
|
202
|
+
exceptd report [executive|technical|compliance] Generate report.
|
|
203
|
+
exceptd validate-cves [args] Cross-check CVE catalog vs NVD/KEV/EPSS.
|
|
204
|
+
--offline Local view only; no network.
|
|
205
|
+
--from-cache [<dir>] Cache-first lookups with live fallback.
|
|
206
|
+
--no-fail Report drift without failing exit code.
|
|
207
|
+
exceptd validate-rfcs [args] Cross-check RFC catalog vs IETF Datatracker.
|
|
208
|
+
--offline Local view only; no network.
|
|
209
|
+
--from-cache [<dir>] Cache-first lookups with live fallback.
|
|
210
|
+
--no-fail Report drift without failing exit code.
|
|
211
|
+
exceptd watchlist [--by-skill] Forward-watch aggregator across skills.
|
|
212
|
+
|
|
213
|
+
exceptd version Package version.
|
|
214
|
+
exceptd help This help.
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
## Invoking a skill from your AI assistant
|
|
218
|
+
|
|
219
|
+
Once your assistant has loaded `AGENTS.md`, type a trigger phrase or skill name:
|
|
220
|
+
|
|
221
|
+
```
|
|
222
|
+
kernel-lpe-triage
|
|
223
|
+
ai-attack-surface
|
|
224
|
+
framework-gap-analysis NIST-800-53-SI-2 CVE-2026-31431
|
|
225
|
+
compliance-theater
|
|
226
|
+
global-grc NIS2
|
|
227
|
+
exploit-scoring CVE-2026-31431
|
|
228
|
+
zeroday-gap-learn CVE-2026-30615
|
|
229
|
+
security-maturity-tiers
|
|
230
|
+
pqc-first
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
## AI assistant configuration
|
|
234
|
+
|
|
235
|
+
The canonical agent-agnostic project rules live in `AGENTS.md` — the **only** project-rules file in this repo. The project does not ship per-vendor mirrors; each tool is configured to load `AGENTS.md` directly.
|
|
236
|
+
|
|
237
|
+
| Assistant | How it picks up the rules |
|
|
238
|
+
|-----------|---------------------------|
|
|
239
|
+
| OpenAI Codex CLI, Sourcegraph amp, Aider, Continue, Cline, Roo Code, Q Developer, and any tool that follows the cross-vendor `AGENTS.md` convention | Auto-loads `AGENTS.md` from the project root. |
|
|
240
|
+
| Cursor | Auto-loads `.cursorrules` (a short stub pointing at `AGENTS.md`). |
|
|
241
|
+
| GitHub Copilot | Auto-loads `.github/copilot-instructions.md` (stub pointing at `AGENTS.md`). |
|
|
242
|
+
| Windsurf | Auto-loads `.windsurfrules` (stub pointing at `AGENTS.md`). |
|
|
243
|
+
| Anthropic Claude Code | Doesn't auto-load `AGENTS.md`. Load it manually with `@AGENTS.md` on the first turn, or add your own per-machine `~/.claude/CLAUDE.md` that references it. The project intentionally does not ship a `CLAUDE.md` mirror. |
|
|
244
|
+
| Google Gemini CLI, JetBrains AI, Replit Agent, anything else | Point the tool at `AGENTS.md` via its config, or load `CONTEXT.md` manually for a shorter orientation. |
|
|
245
|
+
|
|
246
|
+
If your tool has a conventional auto-load filename not listed here and you'd like first-class support, open an issue — we'll add a pointer stub.
|
|
247
|
+
|
|
248
|
+
## Pre-computed indexes
|
|
249
|
+
|
|
250
|
+
`data/_indexes/` ships 17 derived files so AI consumers can answer cross-reference questions without scanning every skill + catalog. Highlights:
|
|
251
|
+
|
|
252
|
+
- **`summary-cards.json`** — 100-word abstract per skill; what to load when planning a multi-skill workflow.
|
|
253
|
+
- **`recipes.json`** — 8 curated skill sequences for common use cases (AI red team prep, PCI audit defense, federal IR, DORA TLPT, K-12 EdTech review, ransomware tabletop, new-CVE triage, OSS dep triage).
|
|
254
|
+
- **`chains.json`** — pre-hydrated cross-walks per CVE and per CWE: which skills cite this, which framework gaps it surfaces, which D3FEND countermeasures back it.
|
|
255
|
+
- **`token-budget.json`** — approximate token cost per skill + per section for context budgeting.
|
|
256
|
+
- **`jurisdiction-clocks.json`** — normalized jurisdiction × obligation × hours matrix (breach notification, patch SLA) across 29 jurisdictions.
|
|
257
|
+
- **`did-ladders.json`** — canonical defense-in-depth ladders per attack class (prompt injection, kernel LPE, AI-as-C2, ransomware, supply chain, BOLA, model exfiltration, BEC).
|
|
258
|
+
- **`theater-fingerprints.json`** — structured records for the 7 compliance theater patterns: claim, audit evidence, reality, fast detection test, controls implicated.
|
|
259
|
+
- **`_meta.json`** — sha256 of every source file. The `validate-indexes` predeploy gate fails if any source changed after the last build; `build-indexes --changed` reads this to know what to rebuild.
|
|
260
|
+
|
|
261
|
+
Regenerate with `exceptd build-indexes` (full) or `exceptd build-indexes --changed --parallel` (incremental).
|
|
262
|
+
|
|
263
|
+
## Data catalogs
|
|
264
|
+
|
|
265
|
+
All skills pull from `data/`. Cross-validated against canonical upstream sources via `exceptd refresh` / `exceptd validate-cves` / `exceptd validate-rfcs`.
|
|
266
|
+
|
|
267
|
+
- `cve-catalog.json` — CVE metadata with RWEP scores, CISA KEV status, PoC availability, live-patch info
|
|
268
|
+
- `atlas-ttps.json` — MITRE ATLAS v5.1.0 TTPs with gap flags and exploitation examples
|
|
269
|
+
- `framework-control-gaps.json` — Per-framework, per-control: what it was designed for vs. what it misses
|
|
270
|
+
- `exploit-availability.json` — PoC locations, weaponization status, AI-assist factor
|
|
271
|
+
- `global-frameworks.json` — All major global compliance frameworks (34 jurisdictions) with control inventories and lag scores
|
|
272
|
+
- `zeroday-lessons.json` — Zero-day → control gap → framework gap → new control requirement mappings
|
|
273
|
+
- `cwe-catalog.json` — CWE entries pinned to CWE v4.17 (Top 25 + AI- / supply-chain-relevant additions)
|
|
274
|
+
- `d3fend-catalog.json` — MITRE D3FEND defensive technique entries pinned to D3FEND v1.0.0
|
|
275
|
+
- `rfc-references.json` — IETF RFC / Internet-Draft references with status, errata, replaces / replaced-by, `last_verified`
|
|
276
|
+
- `dlp-controls.json` — DLP control entries indexed by channel / classifier / surface / enforcement / evidence
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## Philosophy
|
|
281
|
+
|
|
282
|
+
**Compliance is not security.** A SOC 2 Type II report confirms that controls existed and operated effectively during the audit period. It says nothing about whether those controls are adequate for current attack patterns. When NIST 800-53 SI-2 says "apply security patches in a timely manner" and Copy Fail is a 732-byte deterministic root with a public PoC and no race condition, "timely" is the wrong frame entirely.
|
|
283
|
+
|
|
284
|
+
**Framework lag is measured in months.** MITRE ATLAS v5.1.0 (November 2025) is the most current AI threat framework available. It still lags real exploitation by 3-6 months. NIST AI RMF lags by years. ISO 27001:2022 has no AI-specific controls. These skills explicitly flag every place where framework coverage ends and real attacker capability begins.
|
|
285
|
+
|
|
286
|
+
**AI changed the exploit development timeline.** Copy Fail was discovered by an AI system in approximately one hour. 41% of 2025 zero-days involved AI-assisted reverse engineering on the attacker side. The time between vulnerability introduction and reliable exploitation is compressing faster than patch management processes can adapt. Risk scoring must reflect this.
|
|
287
|
+
|
|
288
|
+
**Every org has a compliance theater problem.** The question is not whether paper controls map to audit requirements. The question is whether those controls would actually detect or prevent an attack. These skills answer the second question.
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## Contributing
|
|
293
|
+
|
|
294
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md). Key rules:
|
|
295
|
+
|
|
296
|
+
- No new CVE reference without a complete `data/cve-catalog.json` entry
|
|
297
|
+
- No new framework gap claim without a `data/framework-control-gaps.json` entry
|
|
298
|
+
- No skill uses CVSS as the sole risk metric
|
|
299
|
+
- Every new zero-day triggers a `data/zeroday-lessons.json` entry
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
## License
|
|
304
|
+
|
|
305
|
+
Apache 2.0. See [LICENSE](LICENSE).
|
|
306
|
+
|
|
307
|
+
Community at [exceptd.com](https://exceptd.com).
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Scope
|
|
4
|
+
|
|
5
|
+
This security policy covers the exceptd Security skills repository itself — the skill files, data catalogs, and library code. It does not cover downstream applications that use these skills.
|
|
6
|
+
|
|
7
|
+
## Reporting a Vulnerability
|
|
8
|
+
|
|
9
|
+
Email: security@exceptd.com
|
|
10
|
+
|
|
11
|
+
Include:
|
|
12
|
+
- Description of the issue
|
|
13
|
+
- Steps to reproduce
|
|
14
|
+
- Impact assessment
|
|
15
|
+
- Whether you believe this is being actively exploited
|
|
16
|
+
|
|
17
|
+
**Do not file public GitHub issues for security vulnerabilities.**
|
|
18
|
+
|
|
19
|
+
## Response SLAs
|
|
20
|
+
|
|
21
|
+
| Severity | First Response | Triage | Fix |
|
|
22
|
+
|---|---|---|---|
|
|
23
|
+
| Critical (data integrity attack on CVE catalog, RWEP score manipulation) | 24h | 72h | 7d |
|
|
24
|
+
| High (skill instruction that produces incorrect remediation for CISA KEV) | 72h | 7d | 14d |
|
|
25
|
+
| Medium (incorrect framework gap mapping, wrong control ID) | 7d | 14d | 30d |
|
|
26
|
+
| Low (missing data, incomplete entries) | 14d | 30d | next minor |
|
|
27
|
+
|
|
28
|
+
## Threat Model
|
|
29
|
+
|
|
30
|
+
### What This Repo Defends
|
|
31
|
+
|
|
32
|
+
**Data integrity of the CVE catalog and RWEP scores.** Tampered scores could cause security teams to deprioritize genuinely critical vulnerabilities. Every RWEP calculation is reproducible from `data/cve-catalog.json` inputs and the formula in `lib/scoring.js`. Auditors should verify scores independently for high-stakes decisions.
|
|
33
|
+
|
|
34
|
+
**Accuracy of framework gap declarations.** If a gap is incorrectly declared as "closed" when it remains open, organizations may believe they are protected when they are not. Gap status changes require evidence (framework update reference + control text analysis) not assertions.
|
|
35
|
+
|
|
36
|
+
**Freshness of exploit availability data.** Stale PoC status (marking an exploit as not-public when it is) causes teams to use incorrect RWEP scores. `data/exploit-availability.json` is versioned and dated. Every entry has a `last_verified` field.
|
|
37
|
+
|
|
38
|
+
**Skill instruction correctness.** A skill that produces incorrect remediation guidance (e.g., recommending a patch that doesn't exist for a kernel version, citing a wrong ATLAS TTP ID) creates direct harm. Skills are pinned to `last_threat_review` dates and reviewed when referenced CVEs or TTPs change.
|
|
39
|
+
|
|
40
|
+
### What This Repo Does Not Defend
|
|
41
|
+
|
|
42
|
+
- Runtime security of applications that use these skills (that's blamejs's scope)
|
|
43
|
+
- Upstream framework accuracy (NIST, ISO, MITRE ATLAS) — we track lag, we don't control it
|
|
44
|
+
- Physical access to systems this runs on
|
|
45
|
+
|
|
46
|
+
## Data Integrity
|
|
47
|
+
|
|
48
|
+
CVE catalog entries and RWEP scores are not authoritative sources — they are analytical summaries for operational use. Always cross-reference:
|
|
49
|
+
|
|
50
|
+
- CISA KEV: https://www.cisa.gov/known-exploited-vulnerabilities-catalog
|
|
51
|
+
- NVD: https://nvd.nist.gov/
|
|
52
|
+
- MITRE ATLAS: https://atlas.mitre.org/
|
|
53
|
+
- MITRE ATT&CK: https://attack.mitre.org/
|
|
54
|
+
|
|
55
|
+
For critical security decisions, verify CISA KEV status directly. RWEP scores are a prioritization heuristic, not a compliance instrument.
|
|
56
|
+
|
|
57
|
+
## Supported Versions
|
|
58
|
+
|
|
59
|
+
Pre-1.0: Latest patch on the most recent minor receives data updates (CVE catalog, framework gap updates, new ATLAS TTPs). All versions receive critical accuracy corrections.
|
|
60
|
+
|
|
61
|
+
Once 1.0: 18-month data update support after each major version.
|
|
62
|
+
|
|
63
|
+
## Supply Chain
|
|
64
|
+
|
|
65
|
+
This repository has no npm runtime dependencies. The library code in `lib/` is self-contained. Skills and data files are plain text/JSON.
|
|
66
|
+
|
|
67
|
+
When using these skills via an AI assistant, the skills are loaded as instruction text. No code from this repository executes in your environment beyond what your AI assistant chooses to implement.
|
|
68
|
+
|
|
69
|
+
## Accuracy Disclaimer
|
|
70
|
+
|
|
71
|
+
Security threat intelligence has a short shelf life. CVE data, PoC availability status, and framework coverage assessments in this repository reflect the state of knowledge at the `last_threat_review` date in each skill's frontmatter. Verify current status with primary sources before making production security decisions.
|
|
72
|
+
|
|
73
|
+
RWEP scores are analytical tools, not authoritative risk assessments. They are designed to surface prioritization signal beyond CVSS, not to replace professional security judgment.
|
package/agents/README.md
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Agents
|
|
2
|
+
|
|
3
|
+
Multi-agent coordination for exceptd Security. Each agent file defines a specialized agent role: what it does, what tools it uses, what it produces, and how it hands off to other agents.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Agent Roster
|
|
8
|
+
|
|
9
|
+
| Agent | Role | Triggers |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| [threat-researcher](threat-researcher.md) | Research and validate new CVEs, threat campaigns, and ATLAS TTPs | New CVE published, ATLAS update, CISA KEV addition |
|
|
12
|
+
| [framework-analyst](framework-analyst.md) | Analyze framework updates and gap changes | Framework amendment published |
|
|
13
|
+
| [skill-updater](skill-updater.md) | Apply validated intelligence to update skill files | Threat researcher or framework analyst output |
|
|
14
|
+
| [source-validator](source-validator.md) | Cross-check data against primary sources | Before any data enters cve-catalog.json or atlas-ttps.json |
|
|
15
|
+
| [report-generator](report-generator.md) | Generate structured reports from skill outputs | User invokes a reporting workflow |
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Multi-Agent Workflow Overview
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
External trigger (new CVE, ATLAS update, framework change)
|
|
23
|
+
↓
|
|
24
|
+
[threat-researcher] or [framework-analyst]
|
|
25
|
+
— researches the trigger
|
|
26
|
+
— identifies affected skills
|
|
27
|
+
— produces a validated intelligence package
|
|
28
|
+
↓
|
|
29
|
+
[source-validator]
|
|
30
|
+
— cross-checks all claims against primary sources (sources/index.json)
|
|
31
|
+
— flags any unverified claims
|
|
32
|
+
— produces a verification report
|
|
33
|
+
↓
|
|
34
|
+
[skill-updater]
|
|
35
|
+
— applies validated intelligence to skill files
|
|
36
|
+
— updates data files
|
|
37
|
+
— runs the zeroday learning loop if applicable
|
|
38
|
+
— updates manifest.json last_threat_review
|
|
39
|
+
↓
|
|
40
|
+
[report-generator] (optional)
|
|
41
|
+
— generates structured output for the user
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Parallelization Model
|
|
47
|
+
|
|
48
|
+
These agents can run in parallel when their inputs are independent:
|
|
49
|
+
|
|
50
|
+
**Parallel-safe:**
|
|
51
|
+
- Multiple threat-researcher instances on different CVEs
|
|
52
|
+
- framework-analyst + threat-researcher on unrelated topics
|
|
53
|
+
- Multiple source-validator instances on different data items
|
|
54
|
+
|
|
55
|
+
**Must be sequential:**
|
|
56
|
+
- source-validator must complete before skill-updater writes to data files
|
|
57
|
+
- skill-updater must complete before report-generator reads skill state
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Agent Coordination Protocol
|
|
62
|
+
|
|
63
|
+
Each agent produces a structured handoff package:
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"agent": "threat-researcher",
|
|
68
|
+
"run_id": "2026-05-01-CVE-2026-31431",
|
|
69
|
+
"timestamp": "2026-05-01T12:00:00Z",
|
|
70
|
+
"input": {"cve_id": "CVE-2026-31431"},
|
|
71
|
+
"output": {
|
|
72
|
+
"cve_data": {...},
|
|
73
|
+
"affected_skills": ["kernel-lpe-triage", "exploit-scoring"],
|
|
74
|
+
"proposed_changes": {...}
|
|
75
|
+
},
|
|
76
|
+
"verification_required": true,
|
|
77
|
+
"next_agent": "source-validator"
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
The handoff package is the audit trail. Every change to skill files or data files must trace to a handoff package.
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# Agent: Report Generator
|
|
2
|
+
|
|
3
|
+
## Role
|
|
4
|
+
|
|
5
|
+
Generate structured, audience-appropriate reports from skill outputs. Translates technical security intelligence into actionable documents for different audiences: executives, auditors, security engineers, and developers.
|
|
6
|
+
|
|
7
|
+
## When to spawn
|
|
8
|
+
|
|
9
|
+
- User requests a report after running one or more skills
|
|
10
|
+
- A periodic assessment (weekly threat review, quarterly GRC report, annual threat model review)
|
|
11
|
+
- A compliance report is needed for audit evidence
|
|
12
|
+
- An incident post-mortem requires a structured analysis
|
|
13
|
+
|
|
14
|
+
## Report Types
|
|
15
|
+
|
|
16
|
+
### 1. Executive Risk Summary
|
|
17
|
+
|
|
18
|
+
**Audience:** CISO, CTO, Board-level
|
|
19
|
+
**Template:** `reports/templates/executive-summary.md`
|
|
20
|
+
**Content:**
|
|
21
|
+
- Top 3 risks requiring immediate action (by RWEP)
|
|
22
|
+
- Business impact language (not technical CVE IDs)
|
|
23
|
+
- Compliance posture vs. actual security posture
|
|
24
|
+
- Resource asks required for remediation
|
|
25
|
+
- Theater score (how many controls are theater)
|
|
26
|
+
|
|
27
|
+
**Length:** 1–2 pages max. Executives don't read longer.
|
|
28
|
+
|
|
29
|
+
**Format rules:**
|
|
30
|
+
- No CVE IDs in the headline — translate to business risk
|
|
31
|
+
- RWEP scores translated to: "active exploitation ongoing / 72-hour response required / standard priority"
|
|
32
|
+
- Framework gaps stated as: "Our [framework] compliance does not protect against [threat]"
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
### 2. Technical Assessment Report
|
|
37
|
+
|
|
38
|
+
**Audience:** Security engineers, DevOps, Platform teams
|
|
39
|
+
**Template:** `reports/templates/technical-assessment.md`
|
|
40
|
+
**Content:**
|
|
41
|
+
- Full CVE inventory with CVSS + RWEP
|
|
42
|
+
- Specific remediation commands and configurations
|
|
43
|
+
- Detection rule recommendations
|
|
44
|
+
- Framework gap technical analysis
|
|
45
|
+
- Policy exception templates where needed
|
|
46
|
+
|
|
47
|
+
**Format rules:**
|
|
48
|
+
- Include specific version numbers, kernel versions, distro variants
|
|
49
|
+
- Include copy-pasteable remediation commands
|
|
50
|
+
- Include detection rule code (auditd, sigma, eBPF)
|
|
51
|
+
- Reference data files by path for audit trail
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
### 3. Compliance Gap Report
|
|
56
|
+
|
|
57
|
+
**Audience:** Auditors, Compliance managers, GRC teams
|
|
58
|
+
**Template:** `reports/templates/compliance-gap-report.md`
|
|
59
|
+
**Content:**
|
|
60
|
+
- Per-framework: passing controls, gap controls, theater controls
|
|
61
|
+
- Specific evidence gaps (what evidence is missing for each theater pattern)
|
|
62
|
+
- Policy exception documentation for architectural gaps
|
|
63
|
+
- Remediation roadmap with compliance milestone dates
|
|
64
|
+
- Global jurisdiction matrix if multi-jurisdiction in scope
|
|
65
|
+
|
|
66
|
+
**Format rules:**
|
|
67
|
+
- Control IDs must be exact (auditors cite them)
|
|
68
|
+
- Gap analysis must quote the control text being analyzed
|
|
69
|
+
- Theater findings must include specific test results (not just assertions)
|
|
70
|
+
- Exception documents must follow templates in policy-exception-gen
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
### 4. Threat Model Update Report
|
|
75
|
+
|
|
76
|
+
**Audience:** Security architects, threat modeling teams
|
|
77
|
+
**Template:** `reports/templates/threat-model-update.md`
|
|
78
|
+
**Content:**
|
|
79
|
+
- Currency score before and after update
|
|
80
|
+
- Specific threat classes added
|
|
81
|
+
- ATLAS/ATT&CK mapping changes
|
|
82
|
+
- New controls recommended
|
|
83
|
+
- Deprecated assumptions removed
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
### 5. Zero-Day Response Report
|
|
88
|
+
|
|
89
|
+
**Audience:** Incident response team, CISO, affected system owners
|
|
90
|
+
**Template:** `reports/templates/zero-day-response.md`
|
|
91
|
+
**Content:**
|
|
92
|
+
- CVE description and RWEP score
|
|
93
|
+
- Affected systems inventory
|
|
94
|
+
- Immediate action timeline (4h / 24h / 72h as applicable)
|
|
95
|
+
- Compensating controls if patch not immediately available
|
|
96
|
+
- Detection rules to deploy now
|
|
97
|
+
- Compliance theater check for affected controls
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Report Generation Protocol
|
|
102
|
+
|
|
103
|
+
### Step 1: Identify report type and audience
|
|
104
|
+
|
|
105
|
+
Ask: Who reads this? What decision do they need to make?
|
|
106
|
+
|
|
107
|
+
### Step 2: Collect skill outputs
|
|
108
|
+
|
|
109
|
+
Pull the relevant skill outputs:
|
|
110
|
+
- For executive summary: exploit-scoring + compliance-theater + threat-model-currency
|
|
111
|
+
- For technical assessment: specific skill outputs + data file excerpts
|
|
112
|
+
- For compliance gap: framework-gap-analysis + compliance-theater + global-grc
|
|
113
|
+
- For threat model update: threat-model-currency output
|
|
114
|
+
- For zero-day response: zeroday-gap-learn + exploit-scoring + kernel-lpe-triage or relevant skill
|
|
115
|
+
|
|
116
|
+
### Step 3: Apply audience translation
|
|
117
|
+
|
|
118
|
+
**Technical → Executive:**
|
|
119
|
+
- "RWEP 96 CISA KEV CVE-2026-31431" → "A critical Linux vulnerability with active confirmed exploitation requires patching within 4 hours or isolation"
|
|
120
|
+
- "SOC 2 CC6 theater for AI agents" → "Our access controls do not detect or prevent attacks through AI tools that 82% of our developers use daily"
|
|
121
|
+
|
|
122
|
+
**Technical → Auditor:**
|
|
123
|
+
- Keep control IDs exact
|
|
124
|
+
- Cite specific evidence gaps
|
|
125
|
+
- Quote control text
|
|
126
|
+
- Use "insufficient" not "broken" — auditors respond to precision
|
|
127
|
+
|
|
128
|
+
### Step 4: Apply report template
|
|
129
|
+
|
|
130
|
+
See `reports/templates/` for the exact structure of each report type.
|
|
131
|
+
|
|
132
|
+
### Step 5: Quality check
|
|
133
|
+
|
|
134
|
+
Before delivering the report:
|
|
135
|
+
- All CVE IDs match catalog entries
|
|
136
|
+
- All RWEP scores match current catalog values
|
|
137
|
+
- No unverified claims (check source-validator trail)
|
|
138
|
+
- Audience translation is accurate (technical details not lost, jargon not carried into executive output)
|
|
139
|
+
- Action items are SMART: Specific, Measurable, Assignable, Realistic, Time-bound
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Report Output Format
|
|
144
|
+
|
|
145
|
+
Reports are Markdown documents with this header:
|
|
146
|
+
|
|
147
|
+
```markdown
|
|
148
|
+
---
|
|
149
|
+
report_type: executive-summary | technical-assessment | compliance-gap | threat-model-update | zero-day-response
|
|
150
|
+
date: YYYY-MM-DD
|
|
151
|
+
audience: [audience]
|
|
152
|
+
skills_used: [list of skills that produced the underlying analysis]
|
|
153
|
+
data_version: [manifest.json threat_review_date]
|
|
154
|
+
classification: [Internal / Confidential / Restricted — set by the org]
|
|
155
|
+
---
|
|
156
|
+
```
|