@aegis-scan/skills 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/ATTRIBUTION.md +71 -20
  2. package/CHANGELOG.md +43 -0
  3. package/README.md +66 -18
  4. package/dist/commands/install.d.ts.map +1 -1
  5. package/dist/commands/install.js +17 -1
  6. package/dist/commands/install.js.map +1 -1
  7. package/package.json +3 -2
  8. package/sbom.cdx.json +1 -0
  9. package/skills/compliance/aegis-native/brutaler-anwalt/SKILL.md +305 -0
  10. package/skills/compliance/aegis-native/brutaler-anwalt/references/abmahn-templates.md +306 -0
  11. package/skills/compliance/aegis-native/brutaler-anwalt/references/aegis-integration.md +241 -0
  12. package/skills/compliance/aegis-native/brutaler-anwalt/references/audit-patterns.md +277 -0
  13. package/skills/compliance/aegis-native/brutaler-anwalt/references/bgh-urteile.md +167 -0
  14. package/skills/compliance/aegis-native/brutaler-anwalt/references/branchenrecht.md +285 -0
  15. package/skills/compliance/aegis-native/brutaler-anwalt/references/checklisten.md +276 -0
  16. package/skills/compliance/aegis-native/brutaler-anwalt/references/dsgvo.md +238 -0
  17. package/skills/compliance/aegis-native/brutaler-anwalt/references/international.md +163 -0
  18. package/skills/compliance/aegis-native/brutaler-anwalt/references/it-recht.md +267 -0
  19. package/skills/compliance/aegis-native/brutaler-anwalt/references/strafrecht-steuer.md +193 -0
  20. package/skills/compliance/aegis-native/brutaler-anwalt/references/vertragsrecht.md +243 -0
  21. package/skills/defensive/README.md +33 -4
  22. package/skills/defensive/aegis-native/rls-defense/SKILL.md +174 -0
  23. package/skills/defensive/aegis-native/ssrf-defense/SKILL.md +179 -0
  24. package/skills/defensive/aegis-native/tenant-isolation-defense/SKILL.md +225 -0
  25. package/skills/mitre-mapped/README.md +36 -8
  26. package/skills/mitre-mapped/aegis-native/mapping-overview/SKILL.md +129 -0
  27. package/skills/mitre-mapped/aegis-native/t1078-valid-accounts/SKILL.md +136 -0
  28. package/skills/mitre-mapped/aegis-native/t1190-exploit-public-app/SKILL.md +108 -0
  29. package/skills/ops/README.md +39 -4
  30. package/skills/ops/aegis-native/escalation-runbook/SKILL.md +147 -0
  31. package/skills/ops/aegis-native/suppress-correctly/SKILL.md +196 -0
  32. package/skills/ops/aegis-native/triage-finding/SKILL.md +144 -0
package/ATTRIBUTION.md CHANGED
@@ -41,35 +41,86 @@ rule applies to any incoming updates — no stripping of upstream
41
41
  attribution, no removal of AEGIS-added headers, no paper-over of
42
42
  upstream format variance.
43
43
 
44
- ## Defensive skills — AEGIS-native (skills-v0.2+)
44
+ ## Defensive skills — AEGIS-native
45
45
 
46
- Planned: AEGIS-authored defensive methodology skills mirrored from
47
- the `@aegis-wizard/cli` pattern library under MIT License. Source is
48
- AEGIS itself; this section will expand when the skills ship.
46
+ All skills under `skills/defensive/aegis-native/` are AEGIS-original
47
+ content under MIT License, mirroring patterns from `@aegis-wizard/cli`'s
48
+ pattern library and remediation guidance for `@aegis-scan/cli` scanner
49
+ findings.
49
50
 
50
- ## MITRE-mapped skills — upstream cybersecurity framework-mapped source (skills-v0.2+)
51
+ - **Source:** AEGIS-original
52
+ - **License:** MIT (covered by the AEGIS top-level `LICENSE`)
53
+ - **Skill count at first ship:** 3 (`rls-defense`, `tenant-isolation-defense`, `ssrf-defense`)
54
+ - **First shipped:** post-v0.16.6 work-package WP-A2
51
55
 
52
- Planned: cherry-picked skills from
53
- [mukul975/Anthropic-Cybersecurity-Skills](https://github.com/mukul975/Anthropic-Cybersecurity-Skills)
54
- under Apache-2.0 with per-skill quality-audit plus MITRE ATT&CK /
55
- D3FEND / NIST CSF framework-mappings applied. Section populates when
56
- skills-v0.2 lands.
56
+ ## MITRE-mapped skills — AEGIS-native
57
57
 
58
- ## Operations skills TBD (skills-v0.3+)
58
+ All skills under `skills/mitre-mapped/aegis-native/` are AEGIS-original
59
+ content under MIT License, providing the cross-walk between AEGIS
60
+ scanner findings and MITRE ATT&CK Enterprise / ATLAS / D3FEND / NIST
61
+ CSF 2.0 / NIST AI RMF.
59
62
 
60
- Planned: incident-response, post-build-audit, verify-install-integrity
61
- modules. Source and attribution TBD.
63
+ - **Source:** AEGIS-original
64
+ - **License:** MIT (covered by the AEGIS top-level `LICENSE`)
65
+ - **Skill count at first ship:** 3 (`mapping-overview`, `t1190-exploit-public-app`, `t1078-valid-accounts`)
66
+ - **First shipped:** post-v0.16.6 work-package WP-A2
67
+
68
+ The cross-walk references public MITRE frameworks. MITRE ATT&CK is
69
+ copyright © The MITRE Corporation, distributed under their copyright
70
+ statement at https://attack.mitre.org/resources/legal-and-branding/
71
+ which permits factual cross-walk usage. The AEGIS skills do not
72
+ re-distribute MITRE content; they reference public technique IDs and
73
+ descriptions by ID (which are factual identifiers).
74
+
75
+ ## Operations skills — AEGIS-native
76
+
77
+ All skills under `skills/ops/aegis-native/` are AEGIS-original
78
+ operational runbooks under MIT License.
79
+
80
+ - **Source:** AEGIS-original
81
+ - **License:** MIT (covered by the AEGIS top-level `LICENSE`)
82
+ - **Skill count at first ship:** 3 (`triage-finding`, `suppress-correctly`, `escalation-runbook`)
83
+ - **First shipped:** post-v0.16.6 work-package WP-A2
84
+
85
+ ## Compliance skills — AEGIS-native
86
+
87
+ All skills under `skills/compliance/aegis-native/` are AEGIS-original
88
+ adversarial DE/EU compliance content under MIT License.
89
+
90
+ - **Source:** AEGIS-original
91
+ - **License:** MIT (covered by the AEGIS top-level `LICENSE`)
92
+ - **Skill count at first ship:** 1 (`brutaler-anwalt`, multi-file with 11 supporting `references/*.md`)
93
+ - **First shipped:** v0.2.0
94
+ - **Content domain:** DE/EU compliance audit (DSGVO, DDG, TTDSG, UWG, NIS2, EU AI Act, branchenrecht, strafrecht-steuer). Three-persona self-verification (Hunter / Challenger / Synthesizer) is an AEGIS-original methodology pattern, not derived from upstream content. References cite German/EU statutes (`§`-paragraphs) and BGH/EuGH judgment-IDs (`Az.`) — these are factual legal identifiers, not copyrightable expression.
95
+
96
+ ## Future external sources
97
+
98
+ The `skills/` tree is designed to grow across sources. Future
99
+ candidates being evaluated for cherry-pick (per the maintainer's
100
+ source-evaluation cycle):
101
+
102
+ - [mukul975/Anthropic-Cybersecurity-Skills](https://github.com/mukul975/Anthropic-Cybersecurity-Skills) — Apache-2.0, 754 mixed offensive+defensive skills with MITRE/D3FEND/NIST framework-mappings.
103
+ - [Eyadkelleh/awesome-claude-skills-security](https://github.com/Eyadkelleh/awesome-claude-skills-security) — security-pentesting curated list.
104
+ - [VoltAgent/awesome-agent-skills](https://github.com/VoltAgent/awesome-agent-skills) — MIT, 1000+ mixed agent skills aggregator.
105
+
106
+ Each future cherry-pick will land in a per-source subdirectory under
107
+ the appropriate category (e.g., `defensive/anthropic-cybersec-pick/`)
108
+ with attribution preserved per the same per-file `<!-- aegis-local: -->`
109
+ header convention as the offensive `snailsploit-fork/` source.
62
110
 
63
111
  ## License compatibility
64
112
 
65
113
  AEGIS itself ships under MIT. Offensive skills ship under MIT (via
66
- upstream). Future cybersecurity-framework-mapped cherry-picks ship
67
- under Apache-2.0 (via upstream). Both licenses are permissive,
68
- commercially-redistributable, and require attribution preservation
69
- which this file codifies. No license incompatibility.
114
+ upstream). AEGIS-native defensive / mitre-mapped / ops / compliance
115
+ skills ship under MIT (AEGIS-original). Future cybersecurity-framework-
116
+ mapped cherry-picks would ship under Apache-2.0 (via upstream) when
117
+ those land. All these licenses are permissive, commercially-
118
+ redistributable, and require attribution preservation — which this
119
+ file codifies. No license incompatibility.
70
120
 
71
121
  ## Changes to upstream
72
122
 
73
- See `CHANGELOG.md` for AEGIS-side version history. The only change
74
- to any forked `SKILL.md` at v0.1.0 is the prepended AEGIS-local HTML
75
- attribution header documented above.
123
+ See `CHANGELOG.md` for AEGIS-side version history.
124
+
125
+ - For `snailsploit-fork/` (offensive): the only change to any forked `SKILL.md` is the prepended AEGIS-local HTML attribution header documented above. Quarterly upstream-sync pulls additions and corrections.
126
+ - For `aegis-native/` (defensive / mitre-mapped / ops / compliance): there is no upstream — content is AEGIS-authored. Each `SKILL.md` carries an `<!-- aegis-local: AEGIS-native skill, MIT-licensed; ... -->` header documenting the AEGIS-internal source pattern.
package/CHANGELOG.md CHANGED
@@ -8,6 +8,49 @@ and quality-audit completion, not by a fixed schedule.
8
8
 
9
9
  ---
10
10
 
11
+ ## [Unreleased]
12
+
13
+ ---
14
+
15
+ ## [0.2.0] — 2026-04-27 — "four-category-population + compliance with brutaler-anwalt"
16
+
17
+ ### Added — four category populations (defensive / mitre-mapped / ops / compliance)
18
+
19
+ Ten new AEGIS-native `SKILL.md` files (MIT) populate four previously-placeholder category directories:
20
+
21
+ - **`skills/defensive/aegis-native/`** (3 skills) — `rls-defense`, `tenant-isolation-defense`, `ssrf-defense`. Mirror `@aegis-wizard/cli` patterns and provide remediation guidance for `@aegis-scan/cli` scanner findings (`rls-bypass-checker`, `tenant-isolation-checker`, `ssrf-checker`, `taint-analyzer`, `mass-assignment-checker`, `template-sql-checker`).
22
+ - **`skills/mitre-mapped/aegis-native/`** (3 skills) — `mapping-overview`, `t1190-exploit-public-app`, `t1078-valid-accounts`. Cross-walk AEGIS findings to MITRE ATT&CK Enterprise + ATLAS + D3FEND + NIST CSF 2.0 + NIST AI RMF.
23
+ - **`skills/ops/aegis-native/`** (3 skills) — `triage-finding`, `suppress-correctly`, `escalation-runbook`. Operational runbooks for the AEGIS workflow itself.
24
+ - **`skills/compliance/aegis-native/`** (1 skill) — `brutaler-anwalt`. Adversarial DE/EU compliance auditor (DSGVO / DDG / TTDSG / UWG / NIS2 / EU AI Act / branchenrecht / strafrecht-steuer) with three-persona self-verification (Hunter / Challenger / Synthesizer). Slash-command activation via `/anwalt`. Multi-file: ships an 11-file `references/` sibling tree (~120 KB) covering `audit-patterns.md`, `dsgvo.md`, `it-recht.md`, `vertragsrecht.md`, `checklisten.md`, `branchenrecht.md`, `bgh-urteile.md`, `abmahn-templates.md`, `aegis-integration.md`, `international.md`, `strafrecht-steuer.md`. The `aegis-integration.md` reference defines the consume-AEGIS-scanner-output severity-mapping (critical → 🔴 KRITISCH ≥70%, high → 🟡 HOCH 40–70%, etc.) so the skill bridges AEGIS technical findings to the rechtliche Bewertungs-Layer.
25
+
26
+ Total skills jumps from 37 to 47. All new content is MIT-AEGIS-original; no upstream-fork dependency. The `aegis-native/` source-namespace convention parallels the existing `snailsploit-fork/` for offensive skills, leaving room for future non-AEGIS sources (e.g., `defensive/anthropic-cybersec-pick/`) to slot in without layout churn.
27
+
28
+ ### Added — installer support for multi-file skills (`references/` siblings)
29
+
30
+ `packages/skills/src/commands/install.ts` extended to copy any sibling `references/` directory next to a `SKILL.md` so multi-file skills stay self-consistent under the install target. The `brutaler-anwalt` skill is the first consumer; any future skill that ships supporting `.md` references inherits the same packaging treatment automatically. `--force` semantics extend naturally — references are overwritten alongside the SKILL.md they belong to. Markdown-only invariant intact (the new code only touches `.md` extensions).
31
+
32
+ ### Added — scrub-test coverage for `references/` siblings
33
+
34
+ `__tests__/scrub.test.ts` gains a new describe-block (`scrub-clean — sibling references/ directories`) that iterates every SKILL.md, looks for a sibling `references/` dir, and runs the same FORBIDDEN-codename scan over each `.md` reference. Without this block, leaks in references would slip past source-side gates and only fail at the CI tarball-scrub step. Defense-in-depth: this catches them at unit-test time, source-side, before any push.
35
+
36
+ ### Updated
37
+
38
+ - `skills/defensive/README.md`, `skills/mitre-mapped/README.md`, `skills/ops/README.md` — replace v0.2+ placeholder text with directory-of-shipped-content tables.
39
+ - `ATTRIBUTION.md` — credit the AEGIS-native sources, document the MIT license terms, future-external-source candidate list expanded.
40
+ - `README.md` (this package) — multi-source architecture diagram updated; per-category content tables replace the v0.1.0-only enumeration; new compliance row + brutaler-anwalt mention.
41
+ - `__tests__/manifest.test.ts` — `EXPECTED_TOTAL` 46 → 47, `EXPECTED_CATEGORIES` add `compliance`, `EXPECTED_SOURCES_BY_CATEGORY[compliance]` add `aegis-native`, `EXPECTED_NAMES_BY_CATEGORY[compliance]` add `brutaler-anwalt`.
42
+
43
+ ### Validation
44
+
45
+ - All 10 new SKILL.md files pass the markdown-only structural invariant.
46
+ - All 10 new SKILL.md files pass the scrub-test (no internal-codename leaks).
47
+ - All 11 brutaler-anwalt `references/*.md` pass the new sibling-references scrub-block.
48
+ - All 3 updated category-README placeholders pass the future-category placeholder scrub-test.
49
+ - `loadAllSkills()` auto-discovers the new content via the existing `<category>/<source>/<name>/SKILL.md` layout — no loader changes needed.
50
+ - 405 / 405 tests pass post-addition (was 386).
51
+
52
+ ---
53
+
11
54
  ## [0.1.1] — 2026-04-23 — "ship-gate-caught-recovery"
12
55
 
13
56
  First published release. v0.1.0 was tagged but NEVER published to npm —
package/README.md CHANGED
@@ -41,10 +41,11 @@ After `install` lands the skill files under `~/.claude/skills/user/aegis-skills/
41
41
  Claude Code auto-loads each `SKILL.md` based on its trigger-phrases
42
42
  whenever you invoke the agent with a relevant prompt.
43
43
 
44
- ## What ships in v0.1.0
44
+ ## What ships
45
45
 
46
- Thirty-seven offensive-security SKILL.md files under
47
- `skills/offensive/snailsploit-fork/`, covering:
46
+ ### Offensive skills `skills/offensive/snailsploit-fork/`
47
+
48
+ Thirty-seven offensive-security `SKILL.md` files covering:
48
49
 
49
50
  - **Web application:** sqli · xss · ssrf · ssti · xxe · idor · file-upload
50
51
  · rce · deserialization · race-condition · request-smuggling ·
@@ -63,30 +64,77 @@ Thirty-seven offensive-security SKILL.md files under
63
64
 
64
65
  All forked from
65
66
  [SnailSploit/Claude-Red](https://github.com/SnailSploit/Claude-Red)
66
- under MIT License with attribution preserved per-file. See
67
- [`ATTRIBUTION.md`](./ATTRIBUTION.md) for the full credit chain.
67
+ under MIT License with attribution preserved per-file.
68
+
69
+ ### Defensive skills — `skills/defensive/aegis-native/`
70
+
71
+ Three AEGIS-native `SKILL.md` files (MIT) mirroring `@aegis-wizard/cli`
72
+ patterns and providing remediation guidance for `@aegis-scan/cli`
73
+ findings:
74
+
75
+ - **`rls-defense`** — Supabase Row-Level Security hardening (covers `rls-bypass-checker` + `template-sql-checker` findings)
76
+ - **`tenant-isolation-defense`** — multi-tenant SaaS isolation (covers `tenant-isolation-checker` + `mass-assignment-checker` findings)
77
+ - **`ssrf-defense`** — SSRF defense including DNS-rebinding, IPv6, cloud metadata-endpoint protection (covers `ssrf-checker` + cross-file taint findings)
78
+
79
+ ### MITRE-mapped skills — `skills/mitre-mapped/aegis-native/`
80
+
81
+ Three AEGIS-native `SKILL.md` files (MIT) cross-walking AEGIS findings
82
+ to MITRE frameworks:
83
+
84
+ - **`mapping-overview`** — top-level per-CWE → ATT&CK technique mapping plus tactic-level coverage summary; ATLAS overlay for AI/LLM threats; D3FEND defensive-countermeasure mapping; NIST CSF 2.0 + NIST AI RMF function-level alignment.
85
+ - **`t1190-exploit-public-app`** — deep-dive on T1190 (the #1 Initial Access vector in Verizon DBIR 2024).
86
+ - **`t1078-valid-accounts`** — deep-dive on T1078 (Valid Accounts) coverage via the AEGIS credential-protection scanner family.
87
+
88
+ ### Operations skills — `skills/ops/aegis-native/`
89
+
90
+ Three AEGIS-native `SKILL.md` files (MIT) wrapping the AEGIS workflow
91
+ in process-discipline:
92
+
93
+ - **`triage-finding`** — operational runbook for triaging an AEGIS finding (severity → confidence → verify → fix-vs-suppress-vs-defer).
94
+ - **`suppress-correctly`** — when suppression is appropriate, the structured-rationale syntax, anti-patterns, and audit-trail expectations.
95
+ - **`escalation-runbook`** — what to do when a BLOCKER reaches main, when a finding suggests active exploitation, or when a credential leak is detected.
96
+
97
+ ### Compliance skills — `skills/compliance/aegis-native/`
98
+
99
+ One AEGIS-native multi-file `SKILL.md` (MIT) for adversarial DE/EU
100
+ compliance audits:
101
+
102
+ - **`brutaler-anwalt`** — adversarial DE/EU compliance auditor (DSGVO / DDG / TTDSG / UWG / NIS2 / EU AI Act / branchenrecht / strafrecht-steuer) with three-persona self-verification (Hunter / Challenger / Synthesizer). Slash-command activation via `/anwalt`. Ships an 11-file `references/` sibling tree (~120 KB) with per-bereich rules, BGH/EuGH-judgment database, abmahn-templates, and an explicit AEGIS-scanner-output → rechtliche-Bewertung mapping. The installer auto-copies the references tree alongside the SKILL.md.
103
+
104
+ ### Attribution + license
105
+
106
+ See [`ATTRIBUTION.md`](./ATTRIBUTION.md) for the full credit chain.
107
+ Offensive skills are MIT-via-upstream-fork; defensive / mitre-mapped /
108
+ ops / compliance skills are MIT-AEGIS-original.
68
109
 
69
110
  ## Multi-source architecture
70
111
 
71
112
  `@aegis-scan/skills` is designed to grow across sources without
72
- re-architecting the package. The `skills/` tree carries four
73
- category-directories from day one, three of which are placeholders
74
- for future content:
113
+ re-architecting the package. The `skills/` tree carries five
114
+ category-directories:
75
115
 
76
116
  ```
77
117
  skills/
78
- ├── offensive/ — populated in v0.1.0
79
- │ └── snailsploit-fork/
80
- │ └── 37 SKILL.md files
81
- ├── defensive/ placeholder for skills-v0.2+
82
- ├── mitre-mapped/ — placeholder for skills-v0.2+
83
- └── ops/ placeholder for skills-v0.3+
118
+ ├── offensive/
119
+ │ └── snailsploit-fork/ — 37 SKILL.md files (MIT, forked from SnailSploit/Claude-Red)
120
+ ├── defensive/
121
+ │ └── aegis-native/ 3 SKILL.md files (MIT, AEGIS-original)
122
+ ├── mitre-mapped/
123
+ └── aegis-native/ 3 SKILL.md files (MIT, AEGIS-original — ATT&CK / ATLAS / D3FEND / NIST cross-walk)
124
+ ├── ops/
125
+ │ └── aegis-native/ — 3 SKILL.md files (MIT, AEGIS-original — triage / suppress / escalation runbooks)
126
+ └── compliance/
127
+ └── aegis-native/ — 1 multi-file SKILL.md + 11-file references/ tree (MIT, AEGIS-original — adversarial DE/EU compliance auditor with three-persona self-verification)
84
128
  ```
85
129
 
86
- `aegis-skills list --category defensive` today returns an informative
87
- "coming in v0.2+" message rather than a missing-directory error. When
88
- future sources land, they slot into the existing tree and the manifest
89
- metadata expands without layout churn.
130
+ Total: **47 skills** across **5 categories** and **2 source-namespaces**
131
+ (`snailsploit-fork` for the offensive fork; `aegis-native` for the
132
+ defensive / mitre-mapped / ops / compliance AEGIS-original content).
133
+
134
+ When future external sources land, they slot into the existing tree
135
+ under their own per-source subdirectory (e.g.,
136
+ `defensive/anthropic-cybersec-pick/`) and the manifest metadata
137
+ expands without layout churn.
90
138
 
91
139
  ## Structural invariant
92
140
 
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,UAAU,CAAC,OAAO,GAAE,cAAmB,GAAG,MAAM,CA6D/D"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AA4BA,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,UAAU,CAAC,OAAO,GAAE,cAAmB,GAAG,MAAM,CA4E/D"}
@@ -15,7 +15,7 @@
15
15
  * --dry-run Print what would be copied without writing anything.
16
16
  */
17
17
  import { homedir } from 'node:os';
18
- import { existsSync, mkdirSync, readFileSync, writeFileSync, } from 'node:fs';
18
+ import { existsSync, mkdirSync, readFileSync, readdirSync, statSync, writeFileSync, } from 'node:fs';
19
19
  import { dirname, join, resolve } from 'node:path';
20
20
  import { loadAllSkills } from '../skills-loader.js';
21
21
  export function runInstall(options = {}) {
@@ -61,6 +61,22 @@ export function runInstall(options = {}) {
61
61
  const content = readFileSync(skill.absolutePath, 'utf-8');
62
62
  writeFileSync(targetPath, content, 'utf-8');
63
63
  written += 1;
64
+ // Copy any sibling references/ directory so multi-file skills
65
+ // (e.g. compliance/aegis-native/brutaler-anwalt) keep their
66
+ // SKILL.md → references/*.md links intact under the target tree.
67
+ const sourceRefDir = join(dirname(skill.absolutePath), 'references');
68
+ if (existsSync(sourceRefDir) && statSync(sourceRefDir).isDirectory()) {
69
+ const targetRefDir = join(dirname(targetPath), 'references');
70
+ mkdirSync(targetRefDir, { recursive: true });
71
+ for (const entry of readdirSync(sourceRefDir)) {
72
+ if (!entry.endsWith('.md'))
73
+ continue;
74
+ const refSrc = join(sourceRefDir, entry);
75
+ const refDst = join(targetRefDir, entry);
76
+ writeFileSync(refDst, readFileSync(refSrc, 'utf-8'), 'utf-8');
77
+ written += 1;
78
+ }
79
+ }
64
80
  }
65
81
  catch (err) {
66
82
  console.error(`Error writing ${targetPath}: ${err.message}`);
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aegis-scan/skills",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "AEGIS Skills — opt-in skill library for Claude Code and compatible AI agents. Offensive red-team methodology from curated sources, attribution preserved per-file. Multi-source-ready architecture with placeholder directories for future defensive (AEGIS-native) and MITRE-mapped extensions. Third sibling in the AEGIS full-repertoire toolkit alongside @aegis-scan/cli and @aegis-wizard/cli.",
5
5
  "license": "MIT",
6
6
  "author": "RideMatch1 <230386010+RideMatch1@users.noreply.github.com>",
@@ -41,7 +41,8 @@
41
41
  "README.md",
42
42
  "LICENSE",
43
43
  "ATTRIBUTION.md",
44
- "CHANGELOG.md"
44
+ "CHANGELOG.md",
45
+ "sbom.cdx.json"
45
46
  ],
46
47
  "type": "module",
47
48
  "bin": {
package/sbom.cdx.json ADDED
@@ -0,0 +1 @@
1
+ {"bomFormat":"CycloneDX","specVersion":"1.6","serialNumber":"urn:uuid:cb3f76d2-19cc-48cb-a481-51c8ceecb5d4","version":1,"metadata":{"timestamp":"2026-04-27T22:03:31Z","tools":{"components":[{"group":"@cyclonedx","name":"cdxgen","version":"12.1.4","purl":"pkg:npm/%40cyclonedx/cdxgen@12.1.4","type":"application","bom-ref":"pkg:npm/@cyclonedx/cdxgen@12.1.4","publisher":"OWASP Foundation","authors":[{"name":"OWASP Foundation"}]}]},"authors":[{"name":"OWASP Foundation"}],"lifecycles":[{"phase":"build"}],"component":{"name":"skills","group":"@aegis-scan","version":"0.2.0","description":"AEGIS Skills — opt-in skill library for Claude Code and compatible AI agents. Offensive red-team methodology from curated sources, attribution preserved per-file. Multi-source-ready architecture with placeholder directories for future defensive (AEGIS-native) and MITRE-mapped extensions. Third sibling in the AEGIS full-repertoire toolkit alongside @aegis-scan/cli and @aegis-wizard/cli.","purl":"pkg:npm/%40aegis-scan/skills@0.2.0","bom-ref":"pkg:npm/@aegis-scan/skills@0.2.0","author":"RideMatch1 <230386010+RideMatch1@users.noreply.github.com>","type":"application","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"externalReferences":[{"type":"vcs","url":"https://github.com/RideMatch1/a.e.g.i.s#readme"},{"type":"vcs","url":"git+https://github.com/RideMatch1/a.e.g.i.s.git"}]},"properties":[{"name":"cdx:bom:componentTypes","value":"npm"},{"name":"cdx:bom:componentNamespaces","value":"@types"},{"name":"cdx:bom:componentSrcFiles","value":"packages/skills/node_modules/@types/node/package.json\\npackages/skills/node_modules/typescript/package.json\\npackages/skills/node_modules/vitest/package.json"}]},"components":[{"authors":[{"name":"Anthony Fu <anthonyfu117@hotmail.com>"}],"group":"","name":"vitest","version":"3.2.4","description":"Next generation testing framework powered by Vite","scope":"optional","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/vitest@3.2.4","externalReferences":[{"type":"vcs","url":"https://github.com/vitest-dev/vitest#readme"},{"type":"vcs","url":"git+https://github.com/vitest-dev/vitest.git"}],"type":"framework","bom-ref":"pkg:npm/vitest@3.2.4","properties":[{"name":"SrcFile","value":"packages/skills/node_modules/vitest/package.json"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/skills/node_modules/vitest/package.json"}],"concludedValue":"packages/skills/node_modules/vitest/package.json"}]},"tags":["framework"]},{"authors":[{"name":"Microsoft Corp."}],"group":"","name":"typescript","version":"5.9.3","description":"TypeScript is a language for application scale JavaScript development","scope":"optional","licenses":[{"license":{"id":"Apache-2.0","url":"https://opensource.org/licenses/Apache-2.0"}}],"purl":"pkg:npm/typescript@5.9.3","externalReferences":[{"type":"website","url":"https://www.typescriptlang.org/"},{"type":"vcs","url":"https://github.com/microsoft/TypeScript.git"}],"type":"library","bom-ref":"pkg:npm/typescript@5.9.3","properties":[{"name":"SrcFile","value":"packages/skills/node_modules/typescript/package.json"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/skills/node_modules/typescript/package.json"}],"concludedValue":"packages/skills/node_modules/typescript/package.json"}]}},{"group":"@types","name":"node","version":"22.19.17","description":"TypeScript definitions for node","scope":"optional","licenses":[{"license":{"id":"MIT","url":"https://opensource.org/licenses/MIT"}}],"purl":"pkg:npm/%40types/node@22.19.17","externalReferences":[{"type":"vcs","url":"https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node"},{"type":"vcs","url":"https://github.com/DefinitelyTyped/DefinitelyTyped.git"}],"type":"library","bom-ref":"pkg:npm/@types/node@22.19.17","properties":[{"name":"SrcFile","value":"packages/skills/node_modules/@types/node/package.json"}],"evidence":{"identity":[{"field":"purl","confidence":0.7,"methods":[{"technique":"manifest-analysis","confidence":0.7,"value":"packages/skills/node_modules/@types/node/package.json"}],"concludedValue":"packages/skills/node_modules/@types/node/package.json"}]}}],"dependencies":[],"annotations":[{"bom-ref":"metadata-annotations","subjects":["pkg:npm/@aegis-scan/skills@0.2.0"],"annotator":{"component":{"group":"@cyclonedx","name":"cdxgen","version":"12.1.4","purl":"pkg:npm/%40cyclonedx/cdxgen@12.1.4","type":"application","bom-ref":"pkg:npm/@cyclonedx/cdxgen@12.1.4","publisher":"OWASP Foundation","authors":[{"name":"OWASP Foundation"}]}},"timestamp":"2026-04-27T22:03:31Z","text":"This Software Bill-of-Materials (SBOM) document was created on Monday, April 27, 2026 with cdxgen. The data was captured during the build lifecycle phase. The document describes an application named 'skills' with version '0.2.0'. The package type in this SBOM is npm with a single purl namespace '@types' described under components. The components were identified from 3 source files."}]}