@blamejs/exceptd-skills 0.14.20 → 0.14.21

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/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.14.21 — 2026-05-27
4
+
5
+ The survey/meta skills `framework-gap-analysis`, `threat-modeling-methodology`, and `global-grc` now document why their `atlas_refs` / `attack_refs` are intentionally empty (they correlate or teach across other skills' technique mappings rather than owning a native TTP set), matching the "Frontmatter Scope" note the other meta skills already carry. A reader inspecting the frontmatter alone no longer sees zero technique coverage and assumes the skill maps to nothing.
6
+
3
7
  ## 0.14.20 — 2026-05-27
4
8
 
5
9
  Skill content cleanup:
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "schema_version": "1.1.0",
3
- "generated_at": "2026-05-28T02:33:36.583Z",
3
+ "generated_at": "2026-05-28T04:10:43.581Z",
4
4
  "generator": "scripts/build-indexes.js",
5
5
  "source_count": 54,
6
6
  "source_hashes": {
7
- "manifest.json": "dc4cdb2fa56243e42a1989558997a236e564176fa6c8e5dcae9de9d2dad8399b",
7
+ "manifest.json": "238a94feb0967eb74eedd99084ecf49ee6a20cbf04e9f704a6a3526fdddb6363",
8
8
  "data/atlas-ttps.json": "d24bc02859d40ccf1615db75cca68c077585904e41e0d8f6de448121e9b1abb0",
9
9
  "data/attack-techniques.json": "fa193f0d2d248176a8beddb641e9fe56ba4faa9e15dc253ff876dbf0c5d58a77",
10
10
  "data/cve-catalog.json": "03d8071c7ae244ccda7611c3bc66a5581c21e790d158c2948c3001f55aa5aac9",
@@ -19,14 +19,14 @@
19
19
  "skills/kernel-lpe-triage/skill.md": "08b3e9815ba481c57c80f5fc0ccbf5bb7cbb41f570c235ba6ff9596b8c07354d",
20
20
  "skills/ai-attack-surface/skill.md": "c4c1eb22a38ca7a959b5725222bab8fbd4f4044a548a93f3e288e6f698334b72",
21
21
  "skills/mcp-agent-trust/skill.md": "89ac89084391d2341b6513fefb1be2d36b93de1c130f057696219c1c59440f13",
22
- "skills/framework-gap-analysis/skill.md": "17249909697a9c61b71f6885a1f4888ab1e727909ddb487ed82aeef535884a4f",
22
+ "skills/framework-gap-analysis/skill.md": "f7092b8d3efbcbf0b7af9a712a6705ad07ce4dd1abbd92762b5b395d6cbe6cca",
23
23
  "skills/compliance-theater/skill.md": "d656444bb1987f43ae61374f210977d0c1f247f54d7318fdd639dd0cfdbef392",
24
24
  "skills/exploit-scoring/skill.md": "f55e9aa4985ebad8a2a12092c937deb6939a639dc1e16e2214ecfa1c9b9402c4",
25
25
  "skills/rag-pipeline-security/skill.md": "792c6f48a7ff06785c24258cac1714068feafefb3f8f05e6c62ddce2f2f9128d",
26
26
  "skills/ai-c2-detection/skill.md": "de83dc284dc4f85a8a383c0b715ec7b9ea127ec49c3227bf4c72344bad4008ed",
27
27
  "skills/policy-exception-gen/skill.md": "238074319b57399c75d76439ef1ff67153b5a3207adf1556f3ca1e68cfe7cfaa",
28
28
  "skills/threat-model-currency/skill.md": "637861b4dcd2cb608c08c5aa62a8ef73efc976584f901e612c73cf53b3559422",
29
- "skills/global-grc/skill.md": "57ca729034e9d33c527d869c1c4aa82fe37e496878a3cbcd9e5043cb62b7105d",
29
+ "skills/global-grc/skill.md": "6d9722b7a85b8ad1150a61188b578f380e9c9685118028e134a0ba5804dae708",
30
30
  "skills/zeroday-gap-learn/skill.md": "d8872a4f5e5e927ae087e8319996ec3b9e010aa23fca32248c0909051032db48",
31
31
  "skills/pqc-first/skill.md": "8b77569100d10201044d63a69cbc83c9cfe6d2c3568884aa900ef0eb72ba99c3",
32
32
  "skills/skill-update-loop/skill.md": "f7cd18df293b90c0d2afb6ba8b87664419becea6b63221f03efaf09c69586025",
@@ -40,7 +40,7 @@
40
40
  "skills/identity-assurance/skill.md": "f3c29ce17aaa426b65b58238e5bc9ccabcda23a8d350e597840e5d6d664aa102",
41
41
  "skills/ot-ics-security/skill.md": "0acb7c105c87c523720bc19fdb4b6922cbf4f63054396e38b498528cfde02d76",
42
42
  "skills/coordinated-vuln-disclosure/skill.md": "dc7a29a0d503d7e3a55ba9afd963630329397577ca4e6be124c0263c315acca3",
43
- "skills/threat-modeling-methodology/skill.md": "0a115fb8bf2ddd8e97d5ff49d61ffb1d221f1ce9f37f19b4ba86edbf765f632c",
43
+ "skills/threat-modeling-methodology/skill.md": "964e90dd9ba632926414987ab7c26cac881ff1b36ff161172271ad8c94bcc49d",
44
44
  "skills/webapp-security/skill.md": "6d29b944d841b8d21d19edce6b98be20dc2c2b1360ccb946cb2be5a58a0b3e7b",
45
45
  "skills/ai-risk-management/skill.md": "686f53c2aee3a44108d1fa3e5f52fc7d971edc00946cfc1f082e4658af25fddc",
46
46
  "skills/sector-healthcare/skill.md": "c27672afe6abc2b293e213d8482e5e0d1e16a9ed4986d2637d1d586a14598238",
@@ -78,7 +78,7 @@
78
78
  "handoff_dag_nodes": 42,
79
79
  "summary_cards": 42,
80
80
  "section_offsets_skills": 42,
81
- "token_budget_total_approx": 418226,
81
+ "token_budget_total_approx": 418611,
82
82
  "recipes": 8,
83
83
  "jurisdiction_clocks": 29,
84
84
  "did_ladders": 8,
@@ -301,8 +301,8 @@
301
301
  },
302
302
  "framework-gap-analysis": {
303
303
  "path": "skills/framework-gap-analysis/skill.md",
304
- "total_bytes": 32006,
305
- "total_lines": 406,
304
+ "total_bytes": 32609,
305
+ "total_lines": 410,
306
306
  "frontmatter": {
307
307
  "line_start": 1,
308
308
  "line_end": 24,
@@ -311,92 +311,101 @@
311
311
  },
312
312
  "sections": [
313
313
  {
314
- "name": "Threat Context (mid-2026)",
315
- "normalized_name": "threat-context",
314
+ "name": "Frontmatter Scope",
315
+ "normalized_name": "frontmatter-scope",
316
316
  "line": 30,
317
317
  "byte_start": 815,
318
- "byte_end": 2631,
318
+ "byte_end": 1418,
319
+ "bytes": 603,
320
+ "h3_count": 0
321
+ },
322
+ {
323
+ "name": "Threat Context (mid-2026)",
324
+ "normalized_name": "threat-context",
325
+ "line": 34,
326
+ "byte_start": 1418,
327
+ "byte_end": 3234,
319
328
  "bytes": 1816,
320
329
  "h3_count": 0
321
330
  },
322
331
  {
323
332
  "name": "Framework Lag Declaration",
324
333
  "normalized_name": "framework-lag-declaration",
325
- "line": 40,
326
- "byte_start": 2631,
327
- "byte_end": 5906,
334
+ "line": 44,
335
+ "byte_start": 3234,
336
+ "byte_end": 6509,
328
337
  "bytes": 3275,
329
338
  "h3_count": 1
330
339
  },
331
340
  {
332
341
  "name": "TTP Mapping (MITRE ATLAS v5.6.0 and ATT&CK)",
333
342
  "normalized_name": "ttp-mapping",
334
- "line": 70,
335
- "byte_start": 5906,
336
- "byte_end": 7990,
343
+ "line": 74,
344
+ "byte_start": 6509,
345
+ "byte_end": 8593,
337
346
  "bytes": 2084,
338
347
  "h3_count": 0
339
348
  },
340
349
  {
341
350
  "name": "Exploit Availability Matrix",
342
351
  "normalized_name": "exploit-availability-matrix",
343
- "line": 89,
344
- "byte_start": 7990,
345
- "byte_end": 9526,
352
+ "line": 93,
353
+ "byte_start": 8593,
354
+ "byte_end": 10129,
346
355
  "bytes": 1536,
347
356
  "h3_count": 0
348
357
  },
349
358
  {
350
359
  "name": "Built-In Gap Catalog",
351
360
  "normalized_name": "built-in-gap-catalog",
352
- "line": 103,
353
- "byte_start": 9526,
354
- "byte_end": 20205,
361
+ "line": 107,
362
+ "byte_start": 10129,
363
+ "byte_end": 20808,
355
364
  "bytes": 10679,
356
365
  "h3_count": 9
357
366
  },
358
367
  {
359
368
  "name": "Analysis Procedure",
360
369
  "normalized_name": "analysis-procedure",
361
- "line": 235,
362
- "byte_start": 20205,
363
- "byte_end": 21923,
370
+ "line": 239,
371
+ "byte_start": 20808,
372
+ "byte_end": 22526,
364
373
  "bytes": 1718,
365
374
  "h3_count": 9
366
375
  },
367
376
  {
368
377
  "name": "Universal Gaps (No Framework Covers These Adequately)",
369
378
  "normalized_name": "universal-gaps-no-framework-covers-these-adequately",
370
- "line": 293,
371
- "byte_start": 21923,
372
- "byte_end": 23018,
379
+ "line": 297,
380
+ "byte_start": 22526,
381
+ "byte_end": 23621,
373
382
  "bytes": 1095,
374
383
  "h3_count": 0
375
384
  },
376
385
  {
377
386
  "name": "Output Format",
378
387
  "normalized_name": "output-format",
379
- "line": 313,
380
- "byte_start": 23018,
381
- "byte_end": 24952,
388
+ "line": 317,
389
+ "byte_start": 23621,
390
+ "byte_end": 25555,
382
391
  "bytes": 1934,
383
392
  "h3_count": 6
384
393
  },
385
394
  {
386
395
  "name": "Compliance Theater Check",
387
396
  "normalized_name": "compliance-theater-check",
388
- "line": 356,
389
- "byte_start": 24952,
390
- "byte_end": 27419,
397
+ "line": 360,
398
+ "byte_start": 25555,
399
+ "byte_end": 28022,
391
400
  "bytes": 2467,
392
401
  "h3_count": 0
393
402
  },
394
403
  {
395
404
  "name": "Defensive Countermeasure Mapping",
396
405
  "normalized_name": "defensive-countermeasure-mapping",
397
- "line": 382,
398
- "byte_start": 27419,
399
- "byte_end": 32006,
406
+ "line": 386,
407
+ "byte_start": 28022,
408
+ "byte_end": 32609,
400
409
  "bytes": 4587,
401
410
  "h3_count": 0
402
411
  }
@@ -1112,8 +1121,8 @@
1112
1121
  },
1113
1122
  "global-grc": {
1114
1123
  "path": "skills/global-grc/skill.md",
1115
- "total_bytes": 40604,
1116
- "total_lines": 569,
1124
+ "total_bytes": 41029,
1125
+ "total_lines": 573,
1117
1126
  "frontmatter": {
1118
1127
  "line_start": 1,
1119
1128
  "line_end": 28,
@@ -1121,93 +1130,102 @@
1121
1130
  "byte_end": 621
1122
1131
  },
1123
1132
  "sections": [
1133
+ {
1134
+ "name": "Frontmatter Scope",
1135
+ "normalized_name": "frontmatter-scope",
1136
+ "line": 34,
1137
+ "byte_start": 960,
1138
+ "byte_end": 1390,
1139
+ "bytes": 430,
1140
+ "h3_count": 0
1141
+ },
1124
1142
  {
1125
1143
  "name": "Framework Registry (mid-2026 currency)",
1126
1144
  "normalized_name": "framework-registry-mid-2026-currency",
1127
- "line": 36,
1128
- "byte_start": 965,
1129
- "byte_end": 18713,
1145
+ "line": 40,
1146
+ "byte_start": 1390,
1147
+ "byte_end": 19138,
1130
1148
  "bytes": 17748,
1131
1149
  "h3_count": 8
1132
1150
  },
1133
1151
  {
1134
1152
  "name": "Universal Gaps (No Jurisdiction Covers These)",
1135
1153
  "normalized_name": "universal-gaps-no-jurisdiction-covers-these",
1136
- "line": 348,
1137
- "byte_start": 18713,
1138
- "byte_end": 19817,
1154
+ "line": 352,
1155
+ "byte_start": 19138,
1156
+ "byte_end": 20242,
1139
1157
  "bytes": 1104,
1140
1158
  "h3_count": 0
1141
1159
  },
1142
1160
  {
1143
1161
  "name": "Notification Timeline Summary",
1144
1162
  "normalized_name": "notification-timeline-summary",
1145
- "line": 366,
1146
- "byte_start": 19817,
1147
- "byte_end": 20741,
1163
+ "line": 370,
1164
+ "byte_start": 20242,
1165
+ "byte_end": 21166,
1148
1166
  "bytes": 924,
1149
1167
  "h3_count": 0
1150
1168
  },
1151
1169
  {
1152
1170
  "name": "Threat Context",
1153
1171
  "normalized_name": "threat-context",
1154
- "line": 386,
1155
- "byte_start": 20741,
1156
- "byte_end": 23303,
1172
+ "line": 390,
1173
+ "byte_start": 21166,
1174
+ "byte_end": 23728,
1157
1175
  "bytes": 2562,
1158
1176
  "h3_count": 0
1159
1177
  },
1160
1178
  {
1161
1179
  "name": "Framework Lag Declaration",
1162
1180
  "normalized_name": "framework-lag-declaration",
1163
- "line": 402,
1164
- "byte_start": 23303,
1165
- "byte_end": 31063,
1181
+ "line": 406,
1182
+ "byte_start": 23728,
1183
+ "byte_end": 31488,
1166
1184
  "bytes": 7760,
1167
1185
  "h3_count": 0
1168
1186
  },
1169
1187
  {
1170
1188
  "name": "TTP Mapping",
1171
1189
  "normalized_name": "ttp-mapping",
1172
- "line": 445,
1173
- "byte_start": 31063,
1174
- "byte_end": 33199,
1190
+ "line": 449,
1191
+ "byte_start": 31488,
1192
+ "byte_end": 33624,
1175
1193
  "bytes": 2136,
1176
1194
  "h3_count": 0
1177
1195
  },
1178
1196
  {
1179
1197
  "name": "Exploit Availability Matrix",
1180
1198
  "normalized_name": "exploit-availability-matrix",
1181
- "line": 468,
1182
- "byte_start": 33199,
1183
- "byte_end": 36098,
1199
+ "line": 472,
1200
+ "byte_start": 33624,
1201
+ "byte_end": 36523,
1184
1202
  "bytes": 2899,
1185
1203
  "h3_count": 0
1186
1204
  },
1187
1205
  {
1188
1206
  "name": "Compliance Theater Check",
1189
1207
  "normalized_name": "compliance-theater-check",
1190
- "line": 496,
1191
- "byte_start": 36098,
1192
- "byte_end": 38061,
1208
+ "line": 500,
1209
+ "byte_start": 36523,
1210
+ "byte_end": 38486,
1193
1211
  "bytes": 1963,
1194
1212
  "h3_count": 0
1195
1213
  },
1196
1214
  {
1197
1215
  "name": "Analysis Procedure",
1198
1216
  "normalized_name": "analysis-procedure",
1199
- "line": 510,
1200
- "byte_start": 38061,
1201
- "byte_end": 39097,
1217
+ "line": 514,
1218
+ "byte_start": 38486,
1219
+ "byte_end": 39522,
1202
1220
  "bytes": 1036,
1203
1221
  "h3_count": 4
1204
1222
  },
1205
1223
  {
1206
1224
  "name": "Output Format",
1207
1225
  "normalized_name": "output-format",
1208
- "line": 539,
1209
- "byte_start": 39097,
1210
- "byte_end": 40604,
1226
+ "line": 543,
1227
+ "byte_start": 39522,
1228
+ "byte_end": 41029,
1211
1229
  "bytes": 1507,
1212
1230
  "h3_count": 6
1213
1231
  }
@@ -2554,8 +2572,8 @@
2554
2572
  },
2555
2573
  "threat-modeling-methodology": {
2556
2574
  "path": "skills/threat-modeling-methodology/skill.md",
2557
- "total_bytes": 31561,
2558
- "total_lines": 320,
2575
+ "total_bytes": 32085,
2576
+ "total_lines": 324,
2559
2577
  "frontmatter": {
2560
2578
  "line_start": 1,
2561
2579
  "line_end": 48,
@@ -2564,92 +2582,101 @@
2564
2582
  },
2565
2583
  "sections": [
2566
2584
  {
2567
- "name": "Purpose",
2568
- "normalized_name": "purpose",
2585
+ "name": "Frontmatter Scope",
2586
+ "normalized_name": "frontmatter-scope",
2569
2587
  "line": 52,
2570
2588
  "byte_start": 1575,
2571
- "byte_end": 2259,
2589
+ "byte_end": 2099,
2590
+ "bytes": 524,
2591
+ "h3_count": 0
2592
+ },
2593
+ {
2594
+ "name": "Purpose",
2595
+ "normalized_name": "purpose",
2596
+ "line": 56,
2597
+ "byte_start": 2099,
2598
+ "byte_end": 2783,
2572
2599
  "bytes": 684,
2573
2600
  "h3_count": 0
2574
2601
  },
2575
2602
  {
2576
2603
  "name": "Threat Context",
2577
2604
  "normalized_name": "threat-context",
2578
- "line": 60,
2579
- "byte_start": 2259,
2580
- "byte_end": 6664,
2605
+ "line": 64,
2606
+ "byte_start": 2783,
2607
+ "byte_end": 7188,
2581
2608
  "bytes": 4405,
2582
2609
  "h3_count": 0
2583
2610
  },
2584
2611
  {
2585
2612
  "name": "Framework Lag Declaration",
2586
2613
  "normalized_name": "framework-lag-declaration",
2587
- "line": 86,
2588
- "byte_start": 6664,
2589
- "byte_end": 11235,
2614
+ "line": 90,
2615
+ "byte_start": 7188,
2616
+ "byte_end": 11759,
2590
2617
  "bytes": 4571,
2591
2618
  "h3_count": 0
2592
2619
  },
2593
2620
  {
2594
2621
  "name": "TTP Mapping",
2595
2622
  "normalized_name": "ttp-mapping",
2596
- "line": 116,
2597
- "byte_start": 11235,
2598
- "byte_end": 15137,
2623
+ "line": 120,
2624
+ "byte_start": 11759,
2625
+ "byte_end": 15661,
2599
2626
  "bytes": 3902,
2600
2627
  "h3_count": 0
2601
2628
  },
2602
2629
  {
2603
2630
  "name": "Exploit Availability Matrix",
2604
2631
  "normalized_name": "exploit-availability-matrix",
2605
- "line": 138,
2606
- "byte_start": 15137,
2607
- "byte_end": 17460,
2632
+ "line": 142,
2633
+ "byte_start": 15661,
2634
+ "byte_end": 17984,
2608
2635
  "bytes": 2323,
2609
2636
  "h3_count": 0
2610
2637
  },
2611
2638
  {
2612
2639
  "name": "Analysis Procedure",
2613
2640
  "normalized_name": "analysis-procedure",
2614
- "line": 160,
2615
- "byte_start": 17460,
2616
- "byte_end": 24067,
2641
+ "line": 164,
2642
+ "byte_start": 17984,
2643
+ "byte_end": 24591,
2617
2644
  "bytes": 6607,
2618
2645
  "h3_count": 10
2619
2646
  },
2620
2647
  {
2621
2648
  "name": "Output Format",
2622
2649
  "normalized_name": "output-format",
2623
- "line": 235,
2624
- "byte_start": 24067,
2625
- "byte_end": 26375,
2650
+ "line": 239,
2651
+ "byte_start": 24591,
2652
+ "byte_end": 26899,
2626
2653
  "bytes": 2308,
2627
2654
  "h3_count": 9
2628
2655
  },
2629
2656
  {
2630
2657
  "name": "Compliance Theater Check",
2631
2658
  "normalized_name": "compliance-theater-check",
2632
- "line": 279,
2633
- "byte_start": 26375,
2634
- "byte_end": 28299,
2659
+ "line": 283,
2660
+ "byte_start": 26899,
2661
+ "byte_end": 28823,
2635
2662
  "bytes": 1924,
2636
2663
  "h3_count": 0
2637
2664
  },
2638
2665
  {
2639
2666
  "name": "Defensive Countermeasure Mapping",
2640
2667
  "normalized_name": "defensive-countermeasure-mapping",
2641
- "line": 297,
2642
- "byte_start": 28299,
2643
- "byte_end": 30003,
2668
+ "line": 301,
2669
+ "byte_start": 28823,
2670
+ "byte_end": 30527,
2644
2671
  "bytes": 1704,
2645
2672
  "h3_count": 0
2646
2673
  },
2647
2674
  {
2648
2675
  "name": "Hand-Off / Related Skills",
2649
2676
  "normalized_name": "hand-off",
2650
- "line": 310,
2651
- "byte_start": 30003,
2652
- "byte_end": 31561,
2677
+ "line": 314,
2678
+ "byte_start": 30527,
2679
+ "byte_end": 32085,
2653
2680
  "bytes": 1558,
2654
2681
  "h3_count": 0
2655
2682
  }
@@ -3,8 +3,8 @@
3
3
  "schema_version": "1.0.0",
4
4
  "tokenizer_note": "Character-density approximation: 1 token ≈ 4 chars. This is the canonical rule-of-thumb for OpenAI tokenizers on English+technical text. Claude's tokenizer is typically more efficient on prose; treat this as an upper-bound budget for both. Consumers with stricter precision needs should re-tokenize with their own tokenizer.",
5
5
  "approx_chars_per_token": 4,
6
- "total_chars": 1672872,
7
- "total_approx_tokens": 418226,
6
+ "total_chars": 1674420,
7
+ "total_approx_tokens": 418611,
8
8
  "skill_count": 42
9
9
  },
10
10
  "skills": {
@@ -175,12 +175,17 @@
175
175
  },
176
176
  "framework-gap-analysis": {
177
177
  "path": "skills/framework-gap-analysis/skill.md",
178
- "bytes": 32006,
179
- "chars": 31898,
180
- "lines": 406,
181
- "approx_tokens": 7975,
178
+ "bytes": 32609,
179
+ "chars": 32501,
180
+ "lines": 410,
181
+ "approx_tokens": 8125,
182
182
  "approx_chars_per_token": 4,
183
183
  "sections": {
184
+ "frontmatter-scope": {
185
+ "bytes": 603,
186
+ "chars": 603,
187
+ "approx_tokens": 151
188
+ },
184
189
  "threat-context": {
185
190
  "bytes": 1816,
186
191
  "chars": 1804,
@@ -645,12 +650,17 @@
645
650
  },
646
651
  "global-grc": {
647
652
  "path": "skills/global-grc/skill.md",
648
- "bytes": 40604,
649
- "chars": 40406,
650
- "lines": 569,
651
- "approx_tokens": 10102,
653
+ "bytes": 41029,
654
+ "chars": 40829,
655
+ "lines": 573,
656
+ "approx_tokens": 10207,
652
657
  "approx_chars_per_token": 4,
653
658
  "sections": {
659
+ "frontmatter-scope": {
660
+ "bytes": 430,
661
+ "chars": 428,
662
+ "approx_tokens": 107
663
+ },
654
664
  "framework-registry-mid-2026-currency": {
655
665
  "bytes": 17748,
656
666
  "chars": 17650,
@@ -1485,12 +1495,17 @@
1485
1495
  },
1486
1496
  "threat-modeling-methodology": {
1487
1497
  "path": "skills/threat-modeling-methodology/skill.md",
1488
- "bytes": 31561,
1489
- "chars": 31382,
1490
- "lines": 320,
1491
- "approx_tokens": 7846,
1498
+ "bytes": 32085,
1499
+ "chars": 31904,
1500
+ "lines": 324,
1501
+ "approx_tokens": 7976,
1492
1502
  "approx_chars_per_token": 4,
1493
1503
  "sections": {
1504
+ "frontmatter-scope": {
1505
+ "bytes": 524,
1506
+ "chars": 522,
1507
+ "approx_tokens": 131
1508
+ },
1494
1509
  "purpose": {
1495
1510
  "bytes": 684,
1496
1511
  "chars": 684,
package/manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exceptd-security",
3
- "version": "0.14.20",
3
+ "version": "0.14.21",
4
4
  "description": "AI security skills grounded in mid-2026 threat reality, not stale framework documentation",
5
5
  "homepage": "https://exceptd.com",
6
6
  "license": "Apache-2.0",
@@ -53,7 +53,7 @@
53
53
  ],
54
54
  "last_threat_review": "2026-05-15",
55
55
  "signature": "lXhZgoIrrVloO3XaTvo/43AxZn4mwErstd7DR0O/oVhD3AOGODM4HqrageYEou9WKOdMEGP5mJNTjJsXdP5NDA==",
56
- "signed_at": "2026-05-28T02:32:11.254Z",
56
+ "signed_at": "2026-05-28T04:09:16.149Z",
57
57
  "cwe_refs": [
58
58
  "CWE-125",
59
59
  "CWE-362",
@@ -123,7 +123,7 @@
123
123
  ],
124
124
  "last_threat_review": "2026-05-17",
125
125
  "signature": "ztSKk/zFMFbT12qRcEeBKpydBn7fTT86KxMmor0DTCoKQWk5fJ0fSInfP1XMSB6rFk4/SuSjKVxQRMKVJ5a+Cg==",
126
- "signed_at": "2026-05-28T02:32:11.256Z",
126
+ "signed_at": "2026-05-28T04:09:16.151Z",
127
127
  "cwe_refs": [
128
128
  "CWE-1039",
129
129
  "CWE-1426",
@@ -196,7 +196,7 @@
196
196
  ],
197
197
  "last_threat_review": "2026-05-17",
198
198
  "signature": "K6QdPHNK5c4K5QFjrW0QsUhjp71D7SOisSoulwPNSvKRdi2rY+yg0kdckijBMkLMsVPyUvcC9giu93mKJ1OZDg==",
199
- "signed_at": "2026-05-28T02:32:11.256Z",
199
+ "signed_at": "2026-05-28T04:09:16.151Z",
200
200
  "cwe_refs": [
201
201
  "CWE-22",
202
202
  "CWE-345",
@@ -247,8 +247,8 @@
247
247
  "attack_refs": [],
248
248
  "framework_gaps": [],
249
249
  "last_threat_review": "2026-05-22",
250
- "signature": "Qd3SBWmUAaaT++e1Ry2wBIz/dCBmNBMl0+4Rb0etvJLES0fIBEAkU1mTbgNZnT5XOg9J5twdUpymWtmKnDDQCQ==",
251
- "signed_at": "2026-05-28T02:32:11.257Z"
250
+ "signature": "zbr8CbOe2rIPuxj2bCl8mVc3YgLsRHnx3/UU7MmyMLNg4c13q6LEBglC1A7cjhfblfHsX/1rxNLaukDzc65lAw==",
251
+ "signed_at": "2026-05-28T04:09:16.152Z"
252
252
  },
253
253
  {
254
254
  "name": "compliance-theater",
@@ -279,7 +279,7 @@
279
279
  ],
280
280
  "last_threat_review": "2026-05-22",
281
281
  "signature": "F2Shxae0ua0gPtvwzTRVzzHaIgJcFDRT3/akLUAZ4aaMQhkleKkcTaTpkjp+pTVEdPfLeLGNCeAOMs+whVYOBg==",
282
- "signed_at": "2026-05-28T02:32:11.257Z"
282
+ "signed_at": "2026-05-28T04:09:16.152Z"
283
283
  },
284
284
  {
285
285
  "name": "exploit-scoring",
@@ -308,7 +308,7 @@
308
308
  ],
309
309
  "last_threat_review": "2026-05-18",
310
310
  "signature": "NA1hoQycvQhSUoG5rwlXX0mOVmGxoXRVezkELGEA2nZOdGis4gXkHT3O6Sfw7zxE4JuMrsCb65TEeOWk9WEPDg==",
311
- "signed_at": "2026-05-28T02:32:11.258Z"
311
+ "signed_at": "2026-05-28T04:09:16.153Z"
312
312
  },
313
313
  {
314
314
  "name": "rag-pipeline-security",
@@ -345,7 +345,7 @@
345
345
  ],
346
346
  "last_threat_review": "2026-05-22",
347
347
  "signature": "W3pS8lnaCP96TQzsJpG5d5yv5IwgaQyS4Z2Ctcz5BOJf6LbajSIgeDgTZ4f4Bhr5m4E7KsgWGjZS4x7Fwd33BQ==",
348
- "signed_at": "2026-05-28T02:32:11.258Z",
348
+ "signed_at": "2026-05-28T04:09:16.153Z",
349
349
  "cwe_refs": [
350
350
  "CWE-1395",
351
351
  "CWE-1426"
@@ -405,7 +405,7 @@
405
405
  ],
406
406
  "last_threat_review": "2026-05-17",
407
407
  "signature": "/WDGygh1Ck4yWlBWDGtEUVCqKB8d+UaJXoAoBXujtt+GAl8JbMNpaN1TvI0WkEltQ9dTxaAzSn20/eVDqv8iDQ==",
408
- "signed_at": "2026-05-28T02:32:11.258Z",
408
+ "signed_at": "2026-05-28T04:09:16.154Z",
409
409
  "d3fend_refs": [
410
410
  "D3-CA",
411
411
  "D3-CSPP",
@@ -440,7 +440,7 @@
440
440
  "framework_gaps": [],
441
441
  "last_threat_review": "2026-05-22",
442
442
  "signature": "za1NKBpy9LC91F/ESO/qhUfmvVr8GNItQOjR5OJLeHm+2dQ9HHiFWQK2eo53V/n/0uhubuggURA3yS6kJuWwBg==",
443
- "signed_at": "2026-05-28T02:32:11.259Z",
443
+ "signed_at": "2026-05-28T04:09:16.154Z",
444
444
  "cwe_refs": [
445
445
  "CWE-1188"
446
446
  ],
@@ -474,7 +474,7 @@
474
474
  "framework_gaps": [],
475
475
  "last_threat_review": "2026-05-18",
476
476
  "signature": "1853tUUOO35GCXP4vn4qYdBDCdGJu2/WXCNOShhEt69G6BUoq9C3gYGjKWwEPxRKjwjyMtb2nmsL2BZFHRIADw==",
477
- "signed_at": "2026-05-28T02:32:11.259Z",
477
+ "signed_at": "2026-05-28T04:09:16.154Z",
478
478
  "forward_watch": [
479
479
  "New AI attack classes as ATLAS v6 publishes",
480
480
  "Post-quantum adversary capability timeline",
@@ -512,8 +512,8 @@
512
512
  "attack_refs": [],
513
513
  "framework_gaps": [],
514
514
  "last_threat_review": "2026-05-01",
515
- "signature": "oYsSk35N2Uzq7MRofACykylcVwkgPhI4luWZ14vmQT+gUKLyZiKVOUJbe1+7lGl6BYPRN0sUDQ0f7S5Eu5w2Ag==",
516
- "signed_at": "2026-05-28T02:32:11.259Z"
515
+ "signature": "ZoFh0msOLToS9Xntp9e6zAcg8mE5TOsm7Tq9EYybKL7midjQ5z+aue1Uhp4+xjMRRqVtj8F2W0PvIBTYkYlyAg==",
516
+ "signed_at": "2026-05-28T04:09:16.155Z"
517
517
  },
518
518
  {
519
519
  "name": "zeroday-gap-learn",
@@ -540,7 +540,7 @@
540
540
  "framework_gaps": [],
541
541
  "last_threat_review": "2026-05-18",
542
542
  "signature": "igRqYyU1unRFH40BsPyAR62SPrk8QZv8dPGb8S9O9EvLCNOZAzm3t+HdT/NKqzWHwrpomOzkkkyLfYI/0qTUDA==",
543
- "signed_at": "2026-05-28T02:32:11.260Z",
543
+ "signed_at": "2026-05-28T04:09:16.155Z",
544
544
  "forward_watch": [
545
545
  "New CISA KEV entries",
546
546
  "New ATLAS TTP additions in each ATLAS release",
@@ -604,7 +604,7 @@
604
604
  ],
605
605
  "last_threat_review": "2026-05-22",
606
606
  "signature": "XJFnPtu9tG23qlHGUJulQ0/Vu/p41qFrQng0fE3+GpCPD35+oipdlDXvf9zFo6A6i4OVj601qNuXKh9/kfcHDw==",
607
- "signed_at": "2026-05-28T02:32:11.260Z",
607
+ "signed_at": "2026-05-28T04:09:16.155Z",
608
608
  "cwe_refs": [
609
609
  "CWE-327"
610
610
  ],
@@ -652,7 +652,7 @@
652
652
  ],
653
653
  "last_threat_review": "2026-05-22",
654
654
  "signature": "QuOVaQ4E2Sl39TClbhZ7HA9XrYAyRrDL44HY3RTE7aWLue0hV2cxaBt40ALGmHS++631QGFDlZTLZI77Tr6nAA==",
655
- "signed_at": "2026-05-28T02:32:11.260Z"
655
+ "signed_at": "2026-05-28T04:09:16.156Z"
656
656
  },
657
657
  {
658
658
  "name": "security-maturity-tiers",
@@ -689,7 +689,7 @@
689
689
  ],
690
690
  "last_threat_review": "2026-05-01",
691
691
  "signature": "8Px1s2lDj10/Q6erwEQlXgUHM1+OTruUR8qAHPX7Oo3k/l69N6P9sm0PsafS9wDFtj9l5C/OiLiFgzMlMt6vBw==",
692
- "signed_at": "2026-05-28T02:32:11.261Z",
692
+ "signed_at": "2026-05-28T04:09:16.156Z",
693
693
  "cwe_refs": [
694
694
  "CWE-1188"
695
695
  ]
@@ -724,7 +724,7 @@
724
724
  "framework_gaps": [],
725
725
  "last_threat_review": "2026-05-11",
726
726
  "signature": "urRcataVWg6/utyEkSiOWoNxTL8sABRjPR7ShyDfZGnAozFph/yDktSoaPVxQDXwu9EfJE+qhUW5OYR/yJECBQ==",
727
- "signed_at": "2026-05-28T02:32:11.261Z"
727
+ "signed_at": "2026-05-28T04:09:16.156Z"
728
728
  },
729
729
  {
730
730
  "name": "attack-surface-pentest",
@@ -796,7 +796,7 @@
796
796
  "Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — Microsoft Edge 4-bug sandbox escape by Orange Tsai (DEVCORE); forward-watch only (browser sandbox, out of current playbook scope); track Microsoft Edge security advisory and KEV add"
797
797
  ],
798
798
  "signature": "C7lv65/Ecm8JJgSKxrX5lxx0YFzKWtrIQSKp+vy50I5e8945s1JmifGUUrnQwRQhq/Pkv7EmfiH5XSO8h75bDg==",
799
- "signed_at": "2026-05-28T02:32:11.261Z"
799
+ "signed_at": "2026-05-28T04:09:16.157Z"
800
800
  },
801
801
  {
802
802
  "name": "fuzz-testing-strategy",
@@ -856,7 +856,7 @@
856
856
  "OSS-Fuzz-Gen / AI-assisted harness generation becoming the default expectation for OSS maintainers"
857
857
  ],
858
858
  "signature": "Z7ypCUnXx8JpLtgxxB6RHNi39w74AmrGY1N4ofAGCXhkuM2EaFVm1AU0dvl9UQ1bVLfHKEDGqMO/TwlIY7RABg==",
859
- "signed_at": "2026-05-28T02:32:11.261Z"
859
+ "signed_at": "2026-05-28T04:09:16.157Z"
860
860
  },
861
861
  {
862
862
  "name": "dlp-gap-analysis",
@@ -931,7 +931,7 @@
931
931
  "Quebec Law 25, India DPDPA, KSA PDPL enforcement actions naming AI-tool prompt data as in-scope personal information"
932
932
  ],
933
933
  "signature": "IgEnpHOhCftAyfUNdKsjbrd169T9pJkk/rRM2ZEna+H18y7p5x48+1kME2sJMZjJuyAdQFBJi8PJXZFwLGI+DQ==",
934
- "signed_at": "2026-05-28T02:32:11.262Z"
934
+ "signed_at": "2026-05-28T04:09:16.157Z"
935
935
  },
936
936
  {
937
937
  "name": "supply-chain-integrity",
@@ -1010,7 +1010,7 @@
1010
1010
  "Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — NVIDIA Megatron Bridge path traversal by haehae; AI training-stack file-system trust boundary; track patch and SBOM-attestation impact"
1011
1011
  ],
1012
1012
  "signature": "pcLrM98A3vUSZRjwNAk0aZ9umvOwB41XCLLsCOy/IebB2F/06oIrGUKkMHtHwm4pTVPShMMcKdZQQ3jz30FnCg==",
1013
- "signed_at": "2026-05-28T02:32:11.262Z"
1013
+ "signed_at": "2026-05-28T04:09:16.157Z"
1014
1014
  },
1015
1015
  {
1016
1016
  "name": "defensive-countermeasure-mapping",
@@ -1067,7 +1067,7 @@
1067
1067
  ],
1068
1068
  "last_threat_review": "2026-05-11",
1069
1069
  "signature": "G5q5elh7Q7eu2xcwTVQJGDTGfvZR0OGQaLSLJPb2wjzCHFF8PWuZfCHZdjjqisiRzRWPyLlzgfHeMJqOdy7cBw==",
1070
- "signed_at": "2026-05-28T02:32:11.262Z"
1070
+ "signed_at": "2026-05-28T04:09:16.158Z"
1071
1071
  },
1072
1072
  {
1073
1073
  "name": "identity-assurance",
@@ -1134,7 +1134,7 @@
1134
1134
  "d3fend_refs": [],
1135
1135
  "last_threat_review": "2026-05-11",
1136
1136
  "signature": "Wv5hGMeHjlaQK1zwicVCA7AvdKgJBgvcjdpGM9Ywahh9tagAKhbkOjybowDQZzu7OZ3bDkbh6pBYc1Sdwr6NAA==",
1137
- "signed_at": "2026-05-28T02:32:11.263Z"
1137
+ "signed_at": "2026-05-28T04:09:16.158Z"
1138
1138
  },
1139
1139
  {
1140
1140
  "name": "ot-ics-security",
@@ -1190,7 +1190,7 @@
1190
1190
  "d3fend_refs": [],
1191
1191
  "last_threat_review": "2026-05-11",
1192
1192
  "signature": "8t5qKHd3yWi57dvG36YQkLN/X9bQWqtEiYjay4IfSmqhJpM/xXPaQVKNGz3wscrO8OLKUZ0OaX7Mj5kzpgBKBQ==",
1193
- "signed_at": "2026-05-28T02:32:11.263Z"
1193
+ "signed_at": "2026-05-28T04:09:16.158Z"
1194
1194
  },
1195
1195
  {
1196
1196
  "name": "coordinated-vuln-disclosure",
@@ -1242,7 +1242,7 @@
1242
1242
  "NYDFS 23 NYCRR 500 amendments potentially adding explicit CVD program requirements"
1243
1243
  ],
1244
1244
  "signature": "GDGt4UPqBa04PjlpSmpyihGzd3OgfBN7jaAK5tfwp+LRSs3ygKOdbeivUCCHNagTY1hE6hG2Ou40ADfBFuXeAg==",
1245
- "signed_at": "2026-05-28T02:32:11.263Z"
1245
+ "signed_at": "2026-05-28T04:09:16.159Z"
1246
1246
  },
1247
1247
  {
1248
1248
  "name": "threat-modeling-methodology",
@@ -1291,8 +1291,8 @@
1291
1291
  "LINDDUN-GO and LINDDUN-PRO updates incorporating LLM privacy threats",
1292
1292
  "PASTA v2 updates incorporating AI/ML application threats"
1293
1293
  ],
1294
- "signature": "rFBpOQEJUPpl+v88Lw/WqVJRhTl80vy0VbPAbzQj3Q0suJRRrJg368I9uKu5LXIBKFDvKxnGIcIzbGg9NUtaCA==",
1295
- "signed_at": "2026-05-28T02:32:11.264Z"
1294
+ "signature": "t6IgW+ciQMuY5uvLD0HDDB/U1TjZmgAy76bvH0526QcqPMCz27CWX3cdyJ6nxpg3rYrx93xAawu0opw/ZZckCw==",
1295
+ "signed_at": "2026-05-28T04:09:16.159Z"
1296
1296
  },
1297
1297
  {
1298
1298
  "name": "webapp-security",
@@ -1366,7 +1366,7 @@
1366
1366
  "d3fend_refs": [],
1367
1367
  "last_threat_review": "2026-05-11",
1368
1368
  "signature": "ux85YI4t2mVHOyt744Yin1HHy+z11JIFygjKfFfQOBBl5QVV3A267jeIy7utix85irMcpZm/T3yx/ooqiK2tBA==",
1369
- "signed_at": "2026-05-28T02:32:11.264Z",
1369
+ "signed_at": "2026-05-28T04:09:16.159Z",
1370
1370
  "forward_watch": [
1371
1371
  "NGINX Rift CVE-2026-42945 (disclosed 2026-05-13, source depthfirst) — KEV-watch predicted CISA KEV listing by 2026-05-29; AI-assisted discovery angle; track for active-exploitation confirmation and patch advisory affecting front-door web app deployments"
1372
1372
  ]
@@ -1419,7 +1419,7 @@
1419
1419
  "d3fend_refs": [],
1420
1420
  "last_threat_review": "2026-05-15",
1421
1421
  "signature": "IIXnkZ5ZNqFwOto5KfytADTLLZLoyXNZACD1ORZ40P1HUAQxe6u2uyXFzzsfuob4Uy06jNkRGr2FFgCphUH1Cw==",
1422
- "signed_at": "2026-05-28T02:32:11.265Z"
1422
+ "signed_at": "2026-05-28T04:09:16.160Z"
1423
1423
  },
1424
1424
  {
1425
1425
  "name": "sector-healthcare",
@@ -1479,7 +1479,7 @@
1479
1479
  "d3fend_refs": [],
1480
1480
  "last_threat_review": "2026-05-11",
1481
1481
  "signature": "AhF9KF8ZBlDteciV+F8IBSmFVYCvQOn44GmD4rZjgLoPxfIv/QE1/vSkK32zyqDKtHWkLSXExbkkPkxA/V6dDw==",
1482
- "signed_at": "2026-05-28T02:32:11.265Z"
1482
+ "signed_at": "2026-05-28T04:09:16.160Z"
1483
1483
  },
1484
1484
  {
1485
1485
  "name": "sector-financial",
@@ -1560,7 +1560,7 @@
1560
1560
  "TIBER-EU framework v2.0 alignment with DORA TLPT RTS (JC 2024/40); cross-recognition with CBEST and iCAST"
1561
1561
  ],
1562
1562
  "signature": "HQgZvb4ReziEz5rNFr8i/O8/rJEZR+iHRROT7m/D2QUqhrcNISPkYXENsUZlG8xapzy/Ik92ehkseyj4hdmhCQ==",
1563
- "signed_at": "2026-05-28T02:32:11.266Z"
1563
+ "signed_at": "2026-05-28T04:09:16.161Z"
1564
1564
  },
1565
1565
  {
1566
1566
  "name": "sector-federal-government",
@@ -1629,7 +1629,7 @@
1629
1629
  "Australia PSPF 2024 revision and ISM quarterly updates — track for Essential Eight Maturity Level requirements for federal entities"
1630
1630
  ],
1631
1631
  "signature": "linxmsXZiOYtcs71sSWgGCrvb8xQfmxmtTY5PRvZJ0/8FgJulo0tQtejzexYG775s7XhjAmGsDP238BQTQ8ADA==",
1632
- "signed_at": "2026-05-28T02:32:11.266Z"
1632
+ "signed_at": "2026-05-28T04:09:16.161Z"
1633
1633
  },
1634
1634
  {
1635
1635
  "name": "sector-energy",
@@ -1694,7 +1694,7 @@
1694
1694
  "ICS-CERT advisory feed (https://www.cisa.gov/news-events/cybersecurity-advisories/ics-advisories) for vendor CVEs in Siemens, Rockwell, Schneider Electric, ABB, GE Vernova, Hitachi Energy, AVEVA / OSIsoft PI"
1695
1695
  ],
1696
1696
  "signature": "JjBfc0ovta560Clk0x3QGRM5osFJDwcvpy3rT7QEGdCIL827jzE8QCow1C8deXq+4JhY2sA/d7/8IsxikdlkCg==",
1697
- "signed_at": "2026-05-28T02:32:11.266Z"
1697
+ "signed_at": "2026-05-28T04:09:16.161Z"
1698
1698
  },
1699
1699
  {
1700
1700
  "name": "sector-telecom",
@@ -1780,7 +1780,7 @@
1780
1780
  "O-RAN SFG / WG11 security specifications"
1781
1781
  ],
1782
1782
  "signature": "QpfWU8d2FFbo/Kt0Be2jcyDM9JPhKOiwKSi+RWmtPa2SrBVzFNYdC3T23fQXxHDEC2iyApEbXnwk8KN4d6PuBQ==",
1783
- "signed_at": "2026-05-28T02:32:11.267Z"
1783
+ "signed_at": "2026-05-28T04:09:16.162Z"
1784
1784
  },
1785
1785
  {
1786
1786
  "name": "api-security",
@@ -1849,7 +1849,7 @@
1849
1849
  "d3fend_refs": [],
1850
1850
  "last_threat_review": "2026-05-18",
1851
1851
  "signature": "BmCRCestWqr55+fCynEhtAl5NWLT+xLTkpwS0Icp3SaoZOw/ce3Y6TtqjHRSKn4CBJq7YDiLRWxmhO3MStvOAA==",
1852
- "signed_at": "2026-05-28T02:32:11.267Z",
1852
+ "signed_at": "2026-05-28T04:09:16.162Z",
1853
1853
  "forward_watch": [
1854
1854
  "NGINX Rift CVE-2026-42945 (disclosed 2026-05-13, source depthfirst) — KEV-watch predicted CISA KEV listing by 2026-05-29; track for active-exploitation confirmation and patch advisory affecting API gateway / reverse-proxy deployments",
1855
1855
  "Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — LiteLLM 3-bug SSRF + Code Injection chain by k3vg3n; LLM-proxy API surface; track upstream patch and CVE assignments",
@@ -1935,7 +1935,7 @@
1935
1935
  "CISA KEV additions for cloud-control-plane CVEs (IMDSv1 abuses, federation token mishandling, cross-tenant boundary failures); CISA Cybersecurity Advisories for cross-cloud advisories"
1936
1936
  ],
1937
1937
  "signature": "/DV3pmZwrRySrk1OCbyI+0BQESacjupJfUX3eC2NGtXuYOBro0vndIP+z27heFxumnjU3a9sfla7/U9X+pqnDw==",
1938
- "signed_at": "2026-05-28T02:32:11.267Z"
1938
+ "signed_at": "2026-05-28T04:09:16.162Z"
1939
1939
  },
1940
1940
  {
1941
1941
  "name": "container-runtime-security",
@@ -1997,7 +1997,7 @@
1997
1997
  "d3fend_refs": [],
1998
1998
  "last_threat_review": "2026-05-15",
1999
1999
  "signature": "E2UGSf9ATyYgzBr8uM/0ubOUmDqo1jVA7f9mVxv6LHfWGCNuQNXDyuNou9VAmUCeeXEeUYIi3AFjXkJqpOkxDA==",
2000
- "signed_at": "2026-05-28T02:32:11.268Z",
2000
+ "signed_at": "2026-05-28T04:09:16.163Z",
2001
2001
  "forward_watch": [
2002
2002
  "Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — NVIDIA Container Toolkit container escape ($50K award) by chompie / IBM X-Force XOR; high-severity container/hypervisor boundary break; track patch and KEV add post-embargo"
2003
2003
  ]
@@ -2071,7 +2071,7 @@
2071
2071
  "MITRE ATLAS v5.6.0 (released May 2026) shipped the AML.T0010 sub-technique expansion this forecast tracked plus new techniques (\"Publish Poisoned AI Agent Tool\", \"Escape to Host\"); inventory now 16 tactics, 84 techniques, 56 sub-techniques. Forward watch: subsequent ATLAS minor and major releases — track next-cadence updates to agentic-AI TTPs and MLOps-pipeline-specific techniques"
2072
2072
  ],
2073
2073
  "signature": "IL+DlRCDJN/p08iiJCFkasKcoyjcB0uWrJ6ORLjQcS1HrUa5Xt62QxVjYPHzaevlm5y36ZdmfESqsZJmzK3lCg==",
2074
- "signed_at": "2026-05-28T02:32:11.268Z"
2074
+ "signed_at": "2026-05-28T04:09:16.163Z"
2075
2075
  },
2076
2076
  {
2077
2077
  "name": "incident-response-playbook",
@@ -2133,7 +2133,7 @@
2133
2133
  "NYDFS 23 NYCRR 500.17 amendments tightening ransom-payment 24h disclosure operationalization"
2134
2134
  ],
2135
2135
  "signature": "MmjLjlmOMLjhJJ4ZfR8MYlHam+ZB+eSqfh6Nv+DecaG4O5zeo9DBP/iL3cbyDVZxmhnhivgJild2ccYeWTeZAg==",
2136
- "signed_at": "2026-05-28T02:32:11.269Z"
2136
+ "signed_at": "2026-05-28T04:09:16.163Z"
2137
2137
  },
2138
2138
  {
2139
2139
  "name": "ransomware-response",
@@ -2213,7 +2213,7 @@
2213
2213
  ],
2214
2214
  "last_threat_review": "2026-05-22",
2215
2215
  "signature": "ssueL03g9fWlhXpTe+IiY5l7RqQkunN4DTN5QETKE+VOX+qggdjAR8PONxk77ol4xWYmHrM/VcH8CNtXUEvgBA==",
2216
- "signed_at": "2026-05-28T02:32:11.269Z"
2216
+ "signed_at": "2026-05-28T04:09:16.164Z"
2217
2217
  },
2218
2218
  {
2219
2219
  "name": "email-security-anti-phishing",
@@ -2266,7 +2266,7 @@
2266
2266
  "d3fend_refs": [],
2267
2267
  "last_threat_review": "2026-05-18",
2268
2268
  "signature": "oAFeZmci6BN7Xlu0oOThrazZNBQBIWeCQnoZDqjXo9cs1hIe/6ZijSEr3R3hFQSXH3c1KAbhPw+InR9Gc0HIBQ==",
2269
- "signed_at": "2026-05-28T02:32:11.269Z"
2269
+ "signed_at": "2026-05-28T04:09:16.164Z"
2270
2270
  },
2271
2271
  {
2272
2272
  "name": "age-gates-child-safety",
@@ -2334,7 +2334,7 @@
2334
2334
  "US state adult-site age-verification laws — 19+ states by mid-2026 (TX HB 18 upheld by SCOTUS June 2025 in Free Speech Coalition v. Paxton); track ongoing challenges in remaining states"
2335
2335
  ],
2336
2336
  "signature": "Rgho5TOFUL1txOzcVR0kASCNdovSU4yt99JlGilJlJRyg0A+BdeeQYrZrhPF6Vx2reUAVG0BeHfcZtSbi+cwCg==",
2337
- "signed_at": "2026-05-28T02:32:11.270Z"
2337
+ "signed_at": "2026-05-28T04:09:16.164Z"
2338
2338
  },
2339
2339
  {
2340
2340
  "name": "cloud-iam-incident",
@@ -2414,7 +2414,7 @@
2414
2414
  ],
2415
2415
  "last_threat_review": "2026-05-15",
2416
2416
  "signature": "e/kij7GtKaytROyIj7V5RH+FC9WtmVFzrmG2kIlNDNn29ep/CRNlIQKwXLpzo/81AIf634pmdr1qy/+vwIuUDA==",
2417
- "signed_at": "2026-05-28T02:32:11.270Z",
2417
+ "signed_at": "2026-05-28T04:09:16.165Z",
2418
2418
  "forward_watch": [
2419
2419
  "AWS IAM Identity Center session-policy refresh and step-up-on-admin enforcement (anticipated 2026-H2 release)",
2420
2420
  "GCP Workload Identity Federation principal-set attribute mapping tightening (post-2026 Q3 Federation hardening guide)",
@@ -2508,7 +2508,7 @@
2508
2508
  ],
2509
2509
  "last_threat_review": "2026-05-15",
2510
2510
  "signature": "ew9Kglc9fAZzbn0ZIfGP7WSK/j4eV2VhSvpy+s5bEfNEVYIMa2kZjnGBapgUsyGDLes9H9K2ovjQyX17+GKiBw==",
2511
- "signed_at": "2026-05-28T02:32:11.270Z",
2511
+ "signed_at": "2026-05-28T04:09:16.165Z",
2512
2512
  "forward_watch": [
2513
2513
  "Entra ID conditional access evolution post-Midnight Blizzard — Microsoft's 2025-2026 commitments on legacy-tenant MFA enforcement and OAuth-app consent gating",
2514
2514
  "Okta IPSIE (Interoperability Profile for Secure Identity in the Enterprise) OpenID Foundation working-group output and adoption timeline",
@@ -2526,6 +2526,6 @@
2526
2526
  ],
2527
2527
  "manifest_signature": {
2528
2528
  "algorithm": "Ed25519",
2529
- "signature_base64": "5OiCS9JG1FyBhcQTjlzV2KgueN5dvuLey3BsQCUskFORk8RMth3VNoYjSCzbaxKo1U3WcqjY21DtpdjPWFXxCg=="
2529
+ "signature_base64": "W7kT6heP1mvpfgQFFeCdpGOGbCZpbIVT9cW+cqlB5ZXqhSbXOHpweL3UfArgFYl8vQGsdk18P0kNJrTGlIwNAw=="
2530
2530
  }
2531
2531
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blamejs/exceptd-skills",
3
- "version": "0.14.20",
3
+ "version": "0.14.21",
4
4
  "description": "AI security skills grounded in mid-2026 threat reality, not stale framework documentation. 42 skills, 11 catalogs (406 CVEs / 171 CWEs / 805 ATT&CK + ICS / 170 ATLAS / 468 D3FEND / 8888 RFCs), 35 jurisdictions, 10-class catalog gap detector + budget gate, real XML parser + canonical-form diff + content-pattern regression detection, Ed25519-signed.",
5
5
  "keywords": [
6
6
  "ai-security",
package/sbom.cdx.json CHANGED
@@ -1,22 +1,22 @@
1
1
  {
2
2
  "bomFormat": "CycloneDX",
3
3
  "specVersion": "1.6",
4
- "serialNumber": "urn:uuid:ad7d6e30-1f30-448b-9b72-08b3725ef84e",
4
+ "serialNumber": "urn:uuid:f146b015-d9dd-4d2f-838c-622d665d3777",
5
5
  "version": 1,
6
6
  "metadata": {
7
- "timestamp": "2118-03-28T09:49:36.000Z",
7
+ "timestamp": "2154-04-11T04:14:13.000Z",
8
8
  "tools": [
9
9
  {
10
10
  "vendor": "blamejs",
11
11
  "name": "scripts/refresh-sbom.js",
12
- "version": "0.14.20"
12
+ "version": "0.14.21"
13
13
  }
14
14
  ],
15
15
  "component": {
16
- "bom-ref": "pkg:npm/@blamejs/exceptd-skills@0.14.20",
16
+ "bom-ref": "pkg:npm/@blamejs/exceptd-skills@0.14.21",
17
17
  "type": "application",
18
18
  "name": "@blamejs/exceptd-skills",
19
- "version": "0.14.20",
19
+ "version": "0.14.21",
20
20
  "description": "AI security skills grounded in mid-2026 threat reality, not stale framework documentation. 42 skills, 11 catalogs (406 CVEs / 171 CWEs / 805 ATT&CK + ICS / 170 ATLAS / 468 D3FEND / 8888 RFCs), 35 jurisdictions, 10-class catalog gap detector + budget gate, real XML parser + canonical-form diff + content-pattern regression detection, Ed25519-signed.",
21
21
  "licenses": [
22
22
  {
@@ -25,17 +25,17 @@
25
25
  }
26
26
  }
27
27
  ],
28
- "purl": "pkg:npm/%40blamejs/exceptd-skills@0.14.20",
28
+ "purl": "pkg:npm/%40blamejs/exceptd-skills@0.14.21",
29
29
  "hashes": [
30
30
  {
31
31
  "alg": "SHA-256",
32
- "content": "c1335307705d90a12e6b3d03d0213107590748fbefb17affec2b4134027a2066"
32
+ "content": "1bc1d2d5014d8a83b8f499cf898b342920cc38777e20b96d9aa0a4809c5e3446"
33
33
  }
34
34
  ],
35
35
  "externalReferences": [
36
36
  {
37
37
  "type": "distribution",
38
- "url": "https://www.npmjs.com/package/@blamejs/exceptd-skills/v/0.14.20"
38
+ "url": "https://www.npmjs.com/package/@blamejs/exceptd-skills/v/0.14.21"
39
39
  },
40
40
  {
41
41
  "type": "vcs",
@@ -116,11 +116,11 @@
116
116
  "hashes": [
117
117
  {
118
118
  "alg": "SHA-256",
119
- "content": "70237899d20090dad92ebb1847b7645138b1f94f072f0a4c6101e969f30c4049"
119
+ "content": "e5b92405b978dea5757ad66959b0cc39a1007261f83ffd793d318d2a187df1e0"
120
120
  },
121
121
  {
122
122
  "alg": "SHA3-512",
123
- "content": "5d51b673341672c8f0efbca7ba0c7fb85acbc07fda47ec314bd10b2a979a3c736aa5cea78f73f7f259cd5099332bfaa70b8ab59d0d376d1f41b07cd962b88927"
123
+ "content": "8d872587150b13cefadfdccdb74b2954b129e6fe82177dad98ac3eae5e9bc02efcc75ab1b54c05b66ab24e0d1641cf7e488ef416ac35c318f6b864784907ba6d"
124
124
  }
125
125
  ]
126
126
  },
@@ -1751,11 +1751,11 @@
1751
1751
  "hashes": [
1752
1752
  {
1753
1753
  "alg": "SHA-256",
1754
- "content": "dc4cdb2fa56243e42a1989558997a236e564176fa6c8e5dcae9de9d2dad8399b"
1754
+ "content": "238a94feb0967eb74eedd99084ecf49ee6a20cbf04e9f704a6a3526fdddb6363"
1755
1755
  },
1756
1756
  {
1757
1757
  "alg": "SHA3-512",
1758
- "content": "79f50a6fa13bb5b81b29bed3a637e6e94a3df1689ed14d88bfc6ce1bd1df5353044308c3db24c065d69b522dd38de3c37f5bf0efd9b0ccc6c66a3acc163d77b8"
1758
+ "content": "c531fde98b619b4f5438f4aeea5e046b2fc405d6267609e2de0f7430a6a408d3d5a287efe63d78399c8d1dd46ce27079ad6e31d8f5f6cf98fefd4b5e7af85873"
1759
1759
  }
1760
1760
  ]
1761
1761
  },
@@ -2726,11 +2726,11 @@
2726
2726
  "hashes": [
2727
2727
  {
2728
2728
  "alg": "SHA-256",
2729
- "content": "17249909697a9c61b71f6885a1f4888ab1e727909ddb487ed82aeef535884a4f"
2729
+ "content": "f7092b8d3efbcbf0b7af9a712a6705ad07ce4dd1abbd92762b5b395d6cbe6cca"
2730
2730
  },
2731
2731
  {
2732
2732
  "alg": "SHA3-512",
2733
- "content": "2d656f044cbfe53cb9e5b630ce50e6d848eb5e0ef3eaad3c9c4b10974ab10776a9be0e03c136e32a62cbce08f59425be15c59624f10e4322396ddf531dfafec5"
2733
+ "content": "893b789ffc99ffd3724aa51eef2254e64c2fea4e28c1b9bb378454dd5c86280c18b92f16d1e4313ae3980cbbcb7d0b728fdead29140f487d50bd313c316c2f2e"
2734
2734
  }
2735
2735
  ]
2736
2736
  },
@@ -2756,11 +2756,11 @@
2756
2756
  "hashes": [
2757
2757
  {
2758
2758
  "alg": "SHA-256",
2759
- "content": "57ca729034e9d33c527d869c1c4aa82fe37e496878a3cbcd9e5043cb62b7105d"
2759
+ "content": "6d9722b7a85b8ad1150a61188b578f380e9c9685118028e134a0ba5804dae708"
2760
2760
  },
2761
2761
  {
2762
2762
  "alg": "SHA3-512",
2763
- "content": "fe0573c4c5a22f2fc24ce2b3a54a7695de6fd392cfe3b396a2e4b0eca812989cf33404c6d5cf932ef4a474fd84b900b6d40f1e728357a9df6ade95746e4444ec"
2763
+ "content": "498af3e4d2b94c4312e65d3e266ecc6edebd411ee5da590f4038ac890d0428efc32cdf1754ed472f9fe17d0a1517fd12480a00c3204593a81dfde5c283ac5362"
2764
2764
  }
2765
2765
  ]
2766
2766
  },
@@ -3086,11 +3086,11 @@
3086
3086
  "hashes": [
3087
3087
  {
3088
3088
  "alg": "SHA-256",
3089
- "content": "0a115fb8bf2ddd8e97d5ff49d61ffb1d221f1ce9f37f19b4ba86edbf765f632c"
3089
+ "content": "964e90dd9ba632926414987ab7c26cac881ff1b36ff161172271ad8c94bcc49d"
3090
3090
  },
3091
3091
  {
3092
3092
  "alg": "SHA3-512",
3093
- "content": "865782360930bc6fda9c86b8c46b2d30fd65841854c1558ee9c1080fc9123c4defcc32c809f0d72407521c3f456d74c546ea37c75cfd6829e1e01bcf31d251e6"
3093
+ "content": "92777b2822acb929b345c7000def8cbcaaaac82dd5ba4fde2ad7829351c97f3b81d5dee7f53586892fc78ec022aeaabca5d38246fa433a2f9c9a9f50f647f959"
3094
3094
  }
3095
3095
  ]
3096
3096
  },
@@ -27,6 +27,10 @@ last_threat_review: "2026-05-22"
27
27
 
28
28
  This skill analyzes the gap between what a compliance framework control was designed to address and what current attacker TTPs require. It is the meta-skill that underlies compliance-theater, global-grc, and policy-exception-gen.
29
29
 
30
+ ## Frontmatter Scope
31
+
32
+ The `atlas_refs` and `attack_refs` arrays are intentionally empty. This skill is a meta-analysis: its subject is the *gap* between a control's design intent and the live TTP landscape, so its inputs are the TTP-to-control mappings already attached to every other playbook and skill rather than a fixed native TTP set. The specific techniques appear in the body where a given gap is illustrated; the authoritative TTP attachment lives on the skill or playbook that owns that detection. The `framework_gaps` reference set is the populated, authoritative declaration for this skill.
33
+
30
34
  ## Threat Context (mid-2026)
31
35
 
32
36
  Compliance frameworks lag the threat environment by years. Most active controls in NIST 800-53, ISO 27001:2022, SOC 2, PCI DSS 4.0, NIS2, and DORA were drafted against assumptions (human-speed exploit development, persistent inventoriable assets, human-controlled accounts) that current attacker TTPs no longer respect. Three concrete mid-2026 instances anchor the lag:
@@ -31,6 +31,10 @@ last_threat_review: "2026-05-01"
31
31
 
32
32
  This skill provides multi-jurisdiction GRC analysis. It maps current security threats against frameworks from 14 jurisdictions and two global standards bodies, identifies universal control gaps that no jurisdiction's framework covers, and surfaces jurisdiction-specific notification and compliance requirements.
33
33
 
34
+ ## Frontmatter Scope
35
+
36
+ The `atlas_refs` and `attack_refs` arrays are intentionally empty. This skill is a jurisdiction/framework registry and gap-correlation layer — its subject is regulatory coverage, not a native set of attacker techniques. The TTPs referenced in the body come from the domain skills whose threats each framework is measured against; that downstream skill carries the authoritative technique attachment.
37
+
34
38
  ---
35
39
 
36
40
  ## Framework Registry (mid-2026 currency)
@@ -49,6 +49,10 @@ discovery_mode: "standalone" # v0.13.2: operator-reached via `exceptd brief thr
49
49
 
50
50
  # Threat Modeling Methodology
51
51
 
52
+ ## Frontmatter Scope
53
+
54
+ The `atlas_refs` and `attack_refs` arrays are intentionally empty. This skill teaches the *method* for selecting and combining threat-modeling frameworks and mapping threats to techniques — it does not own a fixed TTP set. The specific TTPs cited in the body are illustrative of the method; the authoritative technique attachment lives on the domain skill or playbook that detects each threat. Duplicating those IDs here would create a divergence surface the next time a downstream mapping changes.
55
+
52
56
  ## Purpose
53
57
 
54
58
  The companion skill `threat-model-currency` measures *when* a threat model is stale. This skill governs *how* a threat model is built. Currency without methodology yields opinion; methodology without currency yields a current-looking 2022 artefact. Both are required.