@blamejs/exceptd-skills 0.16.17 → 0.16.19
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 +3 -1
- package/CHANGELOG.md +8 -0
- package/README.md +5 -5
- package/bin/exceptd.js +3 -1
- package/data/_indexes/_meta.json +17 -15
- package/data/_indexes/activity-feed.json +17 -3
- package/data/_indexes/catalog-summaries.json +1 -1
- package/data/_indexes/chains.json +14784 -1833
- package/data/_indexes/currency.json +19 -1
- package/data/_indexes/frequency.json +138 -86
- package/data/_indexes/handoff-dag.json +9 -1
- package/data/_indexes/jurisdiction-map.json +9 -3
- package/data/_indexes/section-offsets.json +170 -0
- package/data/_indexes/stale-content.json +1 -1
- package/data/_indexes/summary-cards.json +77 -0
- package/data/_indexes/token-budget.json +103 -3
- package/data/_indexes/trigger-table.json +93 -0
- package/data/_indexes/xref.json +38 -7
- package/data/cwe-catalog.json +35 -4
- package/data/playbooks/audit-log-integrity.json +3 -0
- package/data/playbooks/framework.json +2 -0
- package/data/playbooks/log-injection-telemetry.json +619 -0
- package/data/playbooks/privacy-consent-ops.json +605 -0
- package/data/playbooks/secrets.json +1 -0
- package/manifest-snapshot.json +104 -2
- package/manifest-snapshot.sha256 +1 -1
- package/manifest.json +161 -51
- package/package.json +2 -2
- package/sbom.cdx.json +92 -32
- package/skills/log-injection-telemetry/skill.md +80 -0
- package/skills/privacy-consent-ops/skill.md +80 -0
package/AGENTS.md
CHANGED
|
@@ -156,7 +156,7 @@ Cross-cutting playbook `framework` is the natural correlation layer — many pla
|
|
|
156
156
|
|
|
157
157
|
| Verb | What it does |
|
|
158
158
|
|---|---|
|
|
159
|
-
| `exceptd brief --all` | Grouped-by-scope summary of all
|
|
159
|
+
| `exceptd brief --all` | Grouped-by-scope summary of all 33 playbooks. `--scope <type>` filters. `--directives` expands directive IDs/titles per playbook. `--flat` for non-grouped. `exceptd plan` was removed in v0.13.0; invoking it returns a structured `ok:false` refusal pointing at this command. |
|
|
160
160
|
| `exceptd brief <pb>` | Phase 2 threat-context briefing — threat context, RWEP thresholds, skill chain, token budget, jurisdiction obligations. |
|
|
161
161
|
| `exceptd run <pb> --evidence <file>` | Phases 5-7 (analyze + validate + close) from agent evidence. Auto-detect cwd when no playbook positional. `--vex <file>` drops CycloneDX/OpenVEX `not_affected` CVEs. `--diff-from-latest` for drift mode. `--force-stale` overrides currency hard-block. |
|
|
162
162
|
| `exceptd ai-run <pb>` | Streaming variant of `run` for AI agents; emits phase-by-phase NDJSON. |
|
|
@@ -457,6 +457,8 @@ When in doubt, ship the playbook without a collector and open the gap as a follo
|
|
|
457
457
|
| self update, auto update, update integrity, anti rollback, downgrade attack, key pinning, subresource integrity, sri, c2pa, scitt, transparency log, update channel | self-update-integrity |
|
|
458
458
|
| multitenancy isolation, cross tenant, tenant isolation, row level security, rls, bola, idor, noisy neighbour, rapid reset, per tenant quota, circuit breaker, denial of service | multitenancy-isolation |
|
|
459
459
|
| decompression bomb, zip bomb, zip slip, redos, catastrophic backtracking, billion laughs, xml entity expansion, parser dos, amplification attack, nested archive, recursion depth | decompression-dos |
|
|
460
|
+
| log injection, crlf injection, log forging, telemetry integrity, secrets in logs, metrics endpoint exposure, otlp exporter, webhook sink, exporter ssrf, observability security | log-injection-telemetry |
|
|
461
|
+
| privacy operations, consent integrity, sanctions screening, ofac screening, homoglyph evasion, iab tcf, mspa, dsr, right to erasure, gdpr article 17, ropa, record of processing | privacy-consent-ops |
|
|
460
462
|
| ot security, ics security, scada, plc, iec 62443, nist 800-82, nerc cip | ot-ics-security |
|
|
461
463
|
| cvd, vdp, bug bounty, iso 29147, iso 30111, csaf, security.txt | coordinated-vuln-disclosure |
|
|
462
464
|
| threat model, stride, pasta, linddun, kill chain, diamond model, unified kill chain | threat-modeling-methodology |
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.16.19 — 2026-06-02
|
|
4
|
+
|
|
5
|
+
New `privacy-consent-ops` playbook and skill audit where privacy and sanctions controls become paper despite existing: sanctions screening that does not normalize confusable / homoglyph Unicode (or lacks alias + transliteration + fuzzy matching), so a listed name spelled with lookalikes evades it; IAB TCF / MSPA consent signals acted on without an integrity binding to the consent log of record and not re-validated against withdrawal or expiry at processing time; data-subject erasure marked "completed" without per-store proof and not propagated to backups, indexes, warehouses, and processors; and a GDPR Record of Processing Activities that drifts from actual processing. It maps to ATT&CK T1036 / T1565.001 / T1070 and to NIST 800-53 SI-10, ISO 27001 A.5.34, NIS2 Art.21, UK CAF B4, and AU ISM. Run it with `exceptd brief privacy-consent-ops` or `exceptd run privacy-consent-ops`.
|
|
6
|
+
|
|
7
|
+
## 0.16.18 — 2026-06-02
|
|
8
|
+
|
|
9
|
+
New `log-injection-telemetry` playbook and skill audit the integrity and confidentiality of the telemetry pipeline itself, which "we centralize all logs" does not cover: CR/LF log injection that forges or splits entries on every sink except syslog, secrets and PII logged without a redaction pass, unauthenticated `/metrics` and debug endpoints leaking internal state, telemetry exporters shipping to un-inventoried or input-derived destinations (exfiltration), embedded exporter credentials, plaintext or unverified-TLS export, and webhook log sinks usable for SSRF. It maps to ATT&CK T1565.001 / T1530 / T1213 and to NIST 800-53 AU-9 / SI-11, ISO 27001 A.8.15, NIS2 Art.21, UK CAF B4, and AU ISM. CWE-117 (improper output neutralization for logs) is added to the catalog to back it. Run it with `exceptd brief log-injection-telemetry` or `exceptd run log-injection-telemetry`.
|
|
10
|
+
|
|
3
11
|
## 0.16.17 — 2026-06-02
|
|
4
12
|
|
|
5
13
|
New `decompression-dos` playbook and skill audit the input-amplification denial-of-service class a single small crafted input can trigger — which input-format validation, a WAF, and autoscaling do not bound: unbounded archive decompression (zip bomb) and nested-archive bombs, Zip Slip path traversal on extraction, XML entity expansion (billion laughs) / XXE, catastrophic-backtracking regular expressions (ReDoS), recursive parsing with no depth limit, and length-field-driven unbounded allocation in binary parsers (ASN.1/DER, CBOR, MIME, protobuf). It maps to ATT&CK T1499 / T1499.001 / T1059 and to NIST 800-53 SI-10 / SC-5, ISO 27001 A.8.26, NIS2 Art.21, UK CAF B4, and AU ISM. Two weaknesses are added to the catalog to back it: CWE-409 (data amplification) and CWE-1333 (inefficient regular-expression complexity). Run it with `exceptd brief decompression-dos` or `exceptd run decompression-dos`.
|
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
[](https://github.com/blamejs/exceptd-skills/actions/workflows/ci.yml)
|
|
15
15
|
[](https://scorecard.dev/viewer/?uri=github.com/blamejs/exceptd-skills)
|
|
16
16
|
[](https://www.apache.org/licenses/LICENSE-2.0)
|
|
17
|
-
[](#skill-inventory)
|
|
18
18
|
[](https://atlas.mitre.org)
|
|
19
19
|
[](https://attack.mitre.org)
|
|
20
20
|
[](AGENTS.md)
|
|
@@ -30,7 +30,7 @@ This platform surfaces what is actually happening right now. Every skill explici
|
|
|
30
30
|
|
|
31
31
|
## Status
|
|
32
32
|
|
|
33
|
-
Pre-1.0. Latest release lives on [GitHub Releases](https://github.com/blamejs/exceptd-skills/releases) and on npm as [`@blamejs/exceptd-skills`](https://www.npmjs.com/package/@blamejs/exceptd-skills) with signed npm provenance attestation and Ed25519-signed skill bodies. The package ships
|
|
33
|
+
Pre-1.0. Latest release lives on [GitHub Releases](https://github.com/blamejs/exceptd-skills/releases) and on npm as [`@blamejs/exceptd-skills`](https://www.npmjs.com/package/@blamejs/exceptd-skills) with signed npm provenance attestation and Ed25519-signed skill bodies. The package ships 51 skills across kernel LPE, MCP supply chain, AI-as-C2, prompt injection, post-quantum crypto, SBOM integrity, identity-incident response, and 35 other AI/security domains, plus 11 intelligence catalogs (CVE / ATLAS / ATT&CK / CWE / D3FEND / DLP / RFC / framework gaps / global frameworks / zero-day lessons / exploit availability) covering 35 jurisdictions; the CVE catalog holds 439 actively-exploited and high-priority entries, each carrying behavioral indicators, an ATT&CK technique mapping, and a defense-chain zero-day lesson. 33 investigation playbooks (kernel, MCP, AI-API, framework, SBOM, runtime, hardening, secrets, cred-stores, containers, crypto, plus `webhook-callback-abuse`, `cicd-pipeline-compromise`, `identity-sso-compromise`, `llm-tool-use-exfil`, `post-quantum-migration`, `ai-discovered-cve-triage`, `supply-chain-recovery`, `citation-hygiene`, `vc-wallet-trust`, `mail-server-hardening`, `network-trust`, `audit-log-integrity`, `self-update-integrity`, `multitenancy-isolation`, `decompression-dos`, `log-injection-telemetry`, `privacy-consent-ops`, and more), a CLI for discovery and investigation built around `discover → brief → run → attest` (each run executes the playbook's seven-phase contract), and a nightly auto-refresh job that pulls KEV / NVD / EPSS / GHSA / OSV / IETF deltas plus 15 primary-source advisory, research-blog, and tech-press feeds (Qualys TRU, Red Hat RHSA, Ubuntu USN, ZDI, kernel.org, oss-security, JFrog, CISA, Microsoft Security Blog, Sysdig, Trail of Bits, Embrace the Red, BleepingComputer security, and The Hacker News) into auto-PRs for editorial review, alongside a silent-regression watcher that flags historical CVEs re-broken without a new identifier.
|
|
34
34
|
|
|
35
35
|
---
|
|
36
36
|
|
|
@@ -144,7 +144,7 @@ exceptd help
|
|
|
144
144
|
First run — verify the signing chain and pin the public-key fingerprint for out-of-band checks:
|
|
145
145
|
|
|
146
146
|
```bash
|
|
147
|
-
exceptd doctor --signatures # verify Ed25519 chains (
|
|
147
|
+
exceptd doctor --signatures # verify Ed25519 chains (51/51 expected)
|
|
148
148
|
cat $(exceptd path)/keys/EXPECTED_FINGERPRINT # pin fingerprint for OOB verify
|
|
149
149
|
```
|
|
150
150
|
|
|
@@ -162,7 +162,7 @@ GitHub repo-pattern monitoring: `exceptd watchlist --org-scan --org <login>` pro
|
|
|
162
162
|
|
|
163
163
|
AI-assistant config-file audit: `exceptd doctor --ai-config` walks `~/.claude`, `~/.cursor`, `~/.codeium`, `~/.aider`, and `~/.continue`, flagging sensitive files (`settings.json`, `mcp.json`, `*.mcp_config.json`, `api_key*`, `*.token`, `*.credentials`) not at mode 0600 on POSIX. On Windows the mode bits aren't load-bearing; each finding is surfaced with an info-level "manual ACL review" note. Catches the AI-config-credential-exfil class that the Shai-Hulud framework targets. Opt-in — does not run as part of the default no-flag `doctor` pass.
|
|
164
164
|
|
|
165
|
-
Evidence-collection layer: `exceptd collect <playbook>` invokes a companion script under `lib/collectors/<playbook>.js` that walks cwd, applies the catalogued regex set, stats permissions, and emits the submission JSON in the same shape `exceptd run --evidence -` accepts. 14 of
|
|
165
|
+
Evidence-collection layer: `exceptd collect <playbook>` invokes a companion script under `lib/collectors/<playbook>.js` that walks cwd, applies the catalogued regex set, stats permissions, and emits the submission JSON in the same shape `exceptd run --evidence -` accepts. 14 of 33 playbooks have collectors today (`ai-api`, `cicd-pipeline-compromise`, `citation-hygiene`, `containers`, `cred-stores`, `crypto`, `crypto-codebase`, `hardening`, `kernel`, `library-author`, `mcp`, `runtime`, `sbom`, `secrets`); the remaining 19 are policy-skipped per AGENTS.md (judgement-shaped incident / governance / pure-analyze playbooks where AI-driven evidence collection is the design). Canonical operator pipe: `exceptd collect <pb> | exceptd run <pb> --evidence -`. `exceptd doctor --collectors` enumerates the layer; `exceptd discover` tags applicable playbooks with `[collector]` when one ships. `cicd-pipeline-compromise` requires `--attest-ownership` on the collect call (the playbook's `operator-owns-ci-fleet` precondition is opt-in to prevent unauthorized CI assessments).
|
|
166
166
|
|
|
167
167
|
Daily scheduled threat intake: a `routine: exceptd-threat-intake` (claude.ai remote agent) runs daily at 14:00 UTC. Sequence: `npm install` → `refresh --check-advisories` → `watchlist --alerts` → `refresh --apply` → `refresh --advisory <CVE-ID>` for up to 5 new CVE IDs from the primary-source feeds → re-sign + rebuild-indexes if the catalog mutated → commit on `intake/<YYYY-MM-DD>` branch with the full diff in the report. Closes the cadence gap that previously left fresh disclosures dependent on operator-triggered intake. Operator-managed at <https://claude.ai/code/routines>.
|
|
168
168
|
|
|
@@ -281,7 +281,7 @@ exceptd collect <playbook> Walk cwd + invoke the companion collector
|
|
|
281
281
|
under lib/collectors/<playbook>.js. Emits
|
|
282
282
|
a submission JSON ready to pipe into
|
|
283
283
|
`exceptd run <playbook> --evidence -`.
|
|
284
|
-
14/
|
|
284
|
+
14/33 playbooks have collectors; the rest
|
|
285
285
|
are AI-driven by design (incident /
|
|
286
286
|
governance / pure-analyze — see
|
|
287
287
|
AGENTS.md).
|
package/bin/exceptd.js
CHANGED
|
@@ -3124,10 +3124,12 @@ const POLICY_SKIPPED_PLAYBOOKS = new Set([
|
|
|
3124
3124
|
"idp-incident",
|
|
3125
3125
|
"identity-sso-compromise",
|
|
3126
3126
|
"llm-tool-use-exfil",
|
|
3127
|
+
"log-injection-telemetry",
|
|
3127
3128
|
"mail-server-hardening",
|
|
3128
3129
|
"multitenancy-isolation",
|
|
3129
3130
|
"network-trust",
|
|
3130
3131
|
"post-quantum-migration",
|
|
3132
|
+
"privacy-consent-ops",
|
|
3131
3133
|
"ransomware",
|
|
3132
3134
|
"self-update-integrity",
|
|
3133
3135
|
"supply-chain-recovery",
|
|
@@ -7070,7 +7072,7 @@ function cmdDoctor(runner, args, runOpts, pretty) {
|
|
|
7070
7072
|
"post-quantum-migration", "webhook-callback-abuse",
|
|
7071
7073
|
"vc-wallet-trust", "mail-server-hardening", "network-trust",
|
|
7072
7074
|
"audit-log-integrity", "self-update-integrity", "multitenancy-isolation",
|
|
7073
|
-
"decompression-dos",
|
|
7075
|
+
"decompression-dos", "log-injection-telemetry", "privacy-consent-ops",
|
|
7074
7076
|
];
|
|
7075
7077
|
const playbookFiles = fs.readdirSync(playbookDir)
|
|
7076
7078
|
.filter(f => f.endsWith(".json") && !f.startsWith("_"))
|
package/data/_indexes/_meta.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": "1.1.0",
|
|
3
|
-
"generated_at": "2026-06-
|
|
3
|
+
"generated_at": "2026-06-02T20:02:19.338Z",
|
|
4
4
|
"generator": "scripts/build-indexes.js",
|
|
5
|
-
"source_count":
|
|
5
|
+
"source_count": 63,
|
|
6
6
|
"source_hashes": {
|
|
7
|
-
"manifest.json": "
|
|
7
|
+
"manifest.json": "7b4d7758ddd3db55f2abb0b09a2985fb7f8e99e34f5bf1c90f3e4c044aa3dfab",
|
|
8
8
|
"data/atlas-ttps.json": "f66b456cf82a3c20575d8479de41f7b11b7ee5693eb1fcf64a67e162ae1b88a2",
|
|
9
9
|
"data/attack-techniques.json": "c39f28e3402ef13ad9b7076819f63fda67a22f97e3e375cfe01c4a4e0beff7c9",
|
|
10
10
|
"data/cve-catalog.json": "8264da4534d39c9493cfcd18acf7e38ed47ce2a81be15afd5a3f4baf1d504929",
|
|
11
|
-
"data/cwe-catalog.json": "
|
|
11
|
+
"data/cwe-catalog.json": "feadd8497221c097d8237fb93d9557c4dbdd70434097da8debd6f5e50ede1b24",
|
|
12
12
|
"data/d3fend-catalog.json": "9a54bccb9f24f84b32024216cc3f53819a053721ac8ab43c326859e68fc0ffaf",
|
|
13
13
|
"data/dlp-controls.json": "d2406c482dddd30e49203879999dc4b3a7fd4d0494d6a61d86b91ee76415df19",
|
|
14
14
|
"data/exploit-availability.json": "ec2656f0d9a893610e27b43eb6035fe9b18e057c9f6dfaac7e7d4959bbcbb795",
|
|
@@ -64,35 +64,37 @@
|
|
|
64
64
|
"skills/audit-log-integrity/skill.md": "72485e8df55dea8df80b675f04f32de2d32b8ee17d5e0aa96e61cd9bcb831193",
|
|
65
65
|
"skills/self-update-integrity/skill.md": "305d4841d7434e18812be4b8646eb7a4f7f4416e3646aad3b6e7152d16f0c8af",
|
|
66
66
|
"skills/multitenancy-isolation/skill.md": "60d7db9cbac49b307c7062a3b27a3cef8aab8cc774176c428075981fbc18758f",
|
|
67
|
-
"skills/decompression-dos/skill.md": "53fd0a90ccc0e7ac6056e9c9fd40f3ab3342d30739399079b5e644eef6405d88"
|
|
67
|
+
"skills/decompression-dos/skill.md": "53fd0a90ccc0e7ac6056e9c9fd40f3ab3342d30739399079b5e644eef6405d88",
|
|
68
|
+
"skills/log-injection-telemetry/skill.md": "69c4e65c6f78703b923c2455a5ecf5a6d79fcc28d56fff57acb2605639231104",
|
|
69
|
+
"skills/privacy-consent-ops/skill.md": "6c14052577178f0cffc943c2d7f1ac2aca6704cca912ce7492d9eac88a1c6d88"
|
|
68
70
|
},
|
|
69
|
-
"skill_count":
|
|
71
|
+
"skill_count": 51,
|
|
70
72
|
"catalog_count": 11,
|
|
71
73
|
"index_stats": {
|
|
72
74
|
"xref_entries": {
|
|
73
|
-
"cwe_refs":
|
|
75
|
+
"cwe_refs": 53,
|
|
74
76
|
"d3fend_refs": 21,
|
|
75
77
|
"framework_gaps": 87,
|
|
76
78
|
"atlas_refs": 10,
|
|
77
|
-
"attack_refs":
|
|
79
|
+
"attack_refs": 51,
|
|
78
80
|
"rfc_refs": 23,
|
|
79
81
|
"dlp_refs": 0
|
|
80
82
|
},
|
|
81
|
-
"trigger_table_entries":
|
|
83
|
+
"trigger_table_entries": 685,
|
|
82
84
|
"chains_cve_entries": 426,
|
|
83
|
-
"chains_cwe_entries":
|
|
85
|
+
"chains_cwe_entries": 177,
|
|
84
86
|
"jurisdictions_indexed": 29,
|
|
85
|
-
"handoff_dag_nodes":
|
|
86
|
-
"summary_cards":
|
|
87
|
-
"section_offsets_skills":
|
|
88
|
-
"token_budget_total_approx":
|
|
87
|
+
"handoff_dag_nodes": 51,
|
|
88
|
+
"summary_cards": 51,
|
|
89
|
+
"section_offsets_skills": 51,
|
|
90
|
+
"token_budget_total_approx": 435954,
|
|
89
91
|
"recipes": 8,
|
|
90
92
|
"jurisdiction_clocks": 29,
|
|
91
93
|
"did_ladders": 8,
|
|
92
94
|
"theater_fingerprints": 7,
|
|
93
95
|
"currency_action_required": 0,
|
|
94
96
|
"frequency_fields": 7,
|
|
95
|
-
"activity_feed_events":
|
|
97
|
+
"activity_feed_events": 63,
|
|
96
98
|
"catalog_summaries": 11,
|
|
97
99
|
"stale_content_findings": 1
|
|
98
100
|
},
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"_meta": {
|
|
3
3
|
"schema_version": "1.0.0",
|
|
4
4
|
"note": "Per-artifact 'last changed' feed sorted descending by date. Skill events from manifest.last_threat_review; catalog events from data/<catalog>.json _meta.last_updated.",
|
|
5
|
-
"event_count":
|
|
5
|
+
"event_count": 63
|
|
6
6
|
},
|
|
7
7
|
"events": [
|
|
8
8
|
{
|
|
@@ -54,6 +54,20 @@
|
|
|
54
54
|
"path": "skills/decompression-dos/skill.md",
|
|
55
55
|
"note": "Decompression-bomb, parser-DoS, and ReDoS resistance for mid-2026 — decompression size/ratio caps, Zip Slip path confinement, XML entity-expansion disabling, linear-time regex on untrusted input, parse-depth limits, and length-field allocation bounds against single-input amplification denial of service"
|
|
56
56
|
},
|
|
57
|
+
{
|
|
58
|
+
"date": "2026-06-02",
|
|
59
|
+
"type": "skill_review",
|
|
60
|
+
"artifact": "log-injection-telemetry",
|
|
61
|
+
"path": "skills/log-injection-telemetry/skill.md",
|
|
62
|
+
"note": "Telemetry-pipeline integrity for mid-2026 — CR/LF log-injection neutralization across every sink, secret/PII redaction before shipping, authenticated metrics endpoints, and exporter destination allowlisting, secret-store credentials, verified TLS, and webhook SSRF guarding"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"date": "2026-06-02",
|
|
66
|
+
"type": "skill_review",
|
|
67
|
+
"artifact": "privacy-consent-ops",
|
|
68
|
+
"path": "skills/privacy-consent-ops/skill.md",
|
|
69
|
+
"note": "Privacy, consent, and sanctions operational integrity for mid-2026 — confusable/homoglyph normalization before sanctions screening, integrity-bound and re-validated consent records, evidence-gated and downstream-propagated DSR erasure, and ROPA reconciliation against actual processing"
|
|
70
|
+
},
|
|
57
71
|
{
|
|
58
72
|
"date": "2026-06-01",
|
|
59
73
|
"type": "catalog_update",
|
|
@@ -68,7 +82,7 @@
|
|
|
68
82
|
"artifact": "data/cwe-catalog.json",
|
|
69
83
|
"path": "data/cwe-catalog.json",
|
|
70
84
|
"schema_version": "1.0.0",
|
|
71
|
-
"entry_count":
|
|
85
|
+
"entry_count": 177
|
|
72
86
|
},
|
|
73
87
|
{
|
|
74
88
|
"date": "2026-06-01",
|
|
@@ -321,7 +335,7 @@
|
|
|
321
335
|
"type": "manifest_review",
|
|
322
336
|
"artifact": "manifest.json",
|
|
323
337
|
"path": "manifest.json",
|
|
324
|
-
"note": "manifest threat_review_date —
|
|
338
|
+
"note": "manifest threat_review_date — 51 skills, 11 catalogs"
|
|
325
339
|
},
|
|
326
340
|
{
|
|
327
341
|
"date": "2026-05-11",
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
"rebuild_after_days": 365,
|
|
85
85
|
"note": "Per-entry last_verified governs decay. Skills depending on this catalog must check entry freshness before high-stakes use."
|
|
86
86
|
},
|
|
87
|
-
"entry_count":
|
|
87
|
+
"entry_count": 177,
|
|
88
88
|
"sample_keys": [
|
|
89
89
|
"CWE-20",
|
|
90
90
|
"CWE-22",
|