Every external requirement of the harness — Python libraries, CLI tools, MCP
servers, vulnerability-data feeds, and the security frameworks whose content
the skills reference — with its license and an evidence link. Every license
was checked against the upstream LICENSE file or terms page at intake, not
recalled from memory; /check-licensing is the intake procedure for adding a
row, and the docs gate fails when a tool the code invokes has no row here.
Not legal advice. This is an engineering-compiled inventory to support a licensing review.
Why the usage model matters. License obligations attach differently depending on how a dependency is used:
- Subprocess CLI — the harness invokes an unmodified binary and parses its output. No linking, no derivation: even GPL tools impose no obligations unless the harness redistributes them.
- Imported library — the Python code
imports the package; its license applies to the combined work more directly (LGPL is the strongest imported). - Referenced content — framework text (benchmarks, standards, taxonomies) reproduced or adapted inside skill prompt files is distributed content, and content licenses (CC variants, CIS/SEI terms) bind regardless of the "it's only a prompt" framing. This is where licensing risk concentrates.
Declared in pyproject.toml (with requirements.lock as the hash-pinned
resolution); verified against actual imports across src/, the sibling
packages, and harnessing/.
| Package | Used by | License | Evidence | Notes |
|---|---|---|---|---|
traust-engine |
processing core — validators, scanners, reporting, impact analysis (traust_engine.*) |
Same license as this harness | sibling repository, installed from its git tag via [tool.uv.sources] |
Not a third-party licensing surface |
traust-contracts |
contract surface — bundled JSON schemas, shared enums, identity vectors | Same license as this harness | sibling repository, installed from its git tag via [tool.uv.sources] |
Not a third-party licensing surface |
traust-ledger |
disposition-ledger kernel — finding identity, Merkle integrity, signing | Same license as this harness | sibling repository, installed from its git tag via [tool.uv.sources] |
Not a third-party licensing surface |
jsonschema |
all validators | MIT | PyPI | Permissive |
referencing |
schema registry for the validators | MIT | PyPI | Permissive |
pyyaml |
config, scope and targets parsing | MIT | PyPI | Permissive |
playwright |
validate-browser-finding |
Apache-2.0 | PyPI | Downloads browser binaries (Chromium/Firefox/WebKit) carrying their own upstream licenses. |
pytest |
test suite only (dev dependency) | MIT | PyPI | Not shipped with any artifact. |
tree-sitter (py-tree-sitter) |
portfolio-graph Layer 4 symbol extraction — optional dependency group graph |
MIT | LICENSE | Permissive. Core library also MIT (LICENSE). |
tree-sitter-go / -python / -typescript / -javascript grammars |
same (one wheel per language) | MIT (each, individually verified) | go · python · typescript · javascript | Permissive. Deliberately the official per-language wheels, NOT grammar aggregation packs whose bundled grammars license individually — adding a language means adding its verified row here. |
sigstore (sigstore-python) |
disposition-ledger Merkle-root signing — optional dependency group signing |
Apache-2.0 | LICENSE (verbatim Apache-2.0 text; PyPI metadata is empty — the file governs) | Permissive; imported only when signing is used. |
fsspec |
traust_engine.storage remote tier — optional extra, imported lazily; a local path or file:// never imports it |
BSD-3-Clause | LICENSE — PyPI metadata carries no license field; the repo is the authority | Permissive |
s3fs / gcsfs / adlfs |
per-backend drivers behind the s3 / gcs extras for ANALYSIS_RESULTS_URI / PORTFOLIO_GRAPH_URI |
BSD-3-Clause (all three) | s3fs · gcsfs · adlfs | Permissive |
None of these are linked or vendored — the harness shells out to whatever is
on PATH. Copyleft licenses (GPL) in this table therefore impose no
obligations on the harness; they matter only if a distribution bundles the
binaries (in which case ship the license text and a source offer for those
tools). Pinned versions for the scanner binaries live in
config/external-tools.yaml; scripts/install-toolchain.sh installs them.
| Tool | Required by | License | Evidence |
|---|---|---|---|
git |
everything | GPL-2.0-only | COPYING |
curl |
toolchain installer (release downloads); validation-step safe-exec profile (in-scope lab probes) |
curl license (MIT-style) | COPYING |
pipx / pip |
toolchain installer — isolated installs of Python-packaged CLIs | MIT (pipx) / MIT (pip) | pipx LICENSE · pip LICENSE |
sha256sum / shasum |
toolchain installer — verifies downloaded release archives against the upstream checksum file (GNU coreutils on Linux, Perl shasum on macOS) |
GPL-3.0-or-later (coreutils) / Perl Artistic+GPL (shasum) | COPYING |
opengrep |
secure-code-audit, vuln-scan (semantic pre-scan) | LGPL-2.1-only (OCaml libs carry a static-linking exception); single self-contained binary, cosign-signed releases | LICENSE — engine only; rule packs license separately, see the frameworks table |
gitleaks |
secure-code-audit secret pre-scan, delta-watch history scan, router tripwire | MIT | LICENSE — the only secret scanner in scope; detector gaps are closed with harness-owned rules in harnessing/3-audit/secure-code-audit/gitleaks-rules/, never by adopting AGPL alternatives |
syft |
secure-container-audit; secure-code-audit (optional SBOM step) | Apache-2.0 | LICENSE |
grype |
secure-container-audit; secure-code-audit (optional SBOM step) | Apache-2.0 (code — DB is data, see feeds table) | LICENSE |
osv-scanner |
secure-rpm-audit; secure-code-audit / vuln-scan dependency pre-scan; dependency-watch | Apache-2.0 | LICENSE |
govulncheck |
secure-code-audit, secure-rpm-audit, triage, impact-analysis (Go reachability); go-scan safe-exec profile |
BSD-3-Clause | LICENSE |
pip-audit |
secure-code-audit optional Python-environment dependency check | Apache-2.0 | LICENSE |
cosign |
secure-container-audit (signature checks); ledger Merkle-root signing (traust_ledger keypair backend, offline bundle format — see signing.md) |
Apache-2.0 | LICENSE |
skopeo |
inventory-repositories, secure-container-audit | Apache-2.0 | LICENSE |
podman |
inventory-repositories, validate-findings (container adapter), remediate-finding (sandboxed build/test leg) | Apache-2.0 | LICENSE |
yara |
secure-container-audit (exported rootfs), secure-rpm-audit (prepared source tree) — known-malware-family pre-scan | BSD-3-Clause | LICENSE — engine only. Rule packs license separately, see the frameworks table |
checkov |
cloud-config-audit (pinned version, subprocess only — never imported, never vendored; always --skip-download, never an API key; secrets framework skipped in favour of gitleaks) |
Apache-2.0 | LICENSE — the vendor's SaaS platform is opt-in via API key, which the harness never passes. Checkov's policies are its own Apache-licensed implementations that map to CIS and other frameworks — do not add CIS recommendation prose alongside them |
bicep |
cloud-config-audit (bicep-transpile fallback, pinned, subprocess only, bicep build --no-restore: external registry modules are never fetched) |
MIT | LICENSE |
pqc-scan |
pqc-readiness — binary built from pinned source by build_pqc_scan.sh, invoked by pqc_facts.py |
MIT | LICENSE — rules provenance in the frameworks table |
joern / joern-parse / jimple2cpg |
impact-analysis Java and C/C++ call-site reachability tiers, the taint-flow enumerator, and library-side entry-point expansion (traust_engine.impact.expand_advisory_entry_points) — invoked as an external pinned tool, never vendored; emits facts the skill judges, never verdicts. Requires a JDK ≤ 21 (jimple2cpg's bundled bytecode frontend cannot read newer class files), selected per-lane via JIMPLE_JAVA_HOME |
Apache-2.0 | LICENSE |
java (JVM) / javac / jar (JDK) |
runtime for every Joern tier; java-build safe-exec profile grants (target build verification) |
GPL-2.0 WITH Classpath-exception-2.0 (OpenJDK; Temurin ships the same terms) | OpenJDK LICENSE — invoked, never redistributed, never linked |
go / gofmt (Go toolchain) |
create-fuzzing (go test -fuzz); pqc-readiness scan_xcrypto_usage.py --callgraph; go-fuzz safe-exec profile grants; govulncheck install |
BSD-3-Clause | LICENSE |
callgraph / digraph (golang.org/x/tools) |
pqc-readiness scan_xcrypto_usage.py --callgraph (reachability graph, witness chains) |
BSD-3-Clause | LICENSE — installed with go install golang.org/x/tools/cmd/<tool>@<pin> |
cargo / rustc (Rust toolchain) |
pqc-readiness build_pqc_scan.sh (cargo build --locked); rust-fuzz safe-exec profile grants |
MIT OR Apache-2.0 | LICENSE-MIT · LICENSE-APACHE |
cargo-fuzz |
create-fuzzing Rust targets (runs inside the target repo's toolchain; libFuzzer runtime is Apache-2.0 WITH LLVM-exception) | MIT OR Apache-2.0 | LICENSE-MIT · LICENSE-APACHE |
jazzer (JVM, pinned) / Jazzer.js |
create-fuzzing Java and JS/TS targets (dependencies of generated harnesses in target repos, not of this repo); the Java lane downloads the pinned release with sha256 verification | Apache-2.0 (each) — verified at the pinned tag | jazzer LICENSE · jazzer.js |
atheris |
create-fuzzing Python targets (imported by generated harnesses in target repos, not by this repo) | Apache-2.0 | LICENSE |
node / npm / npx (Node.js) |
node-build safe-exec profile grants (target build/test steps; Jazzer.js fuzz lane); remediate-finding run_checks.sh when the target uses them |
MIT (Node.js license, aggregate) / Artistic-2.0 (npm) | LICENSE |
mvn / gradle |
java-build safe-exec profile grants (target build verification; the target's own ./gradlew/./mvnw preferred); remediate-finding run_checks.sh |
Apache-2.0 | gradle LICENSE |
kustomize, golangci-lint, cargo-clippy |
remediate-finding run_checks.sh — opportunistic, only if the target repo uses them |
Apache-2.0 / GPL-3.0-only (golangci-lint) / Apache-2.0 (clippy) | golangci-lint LICENSE |
tokei / scc / cloc |
secure-code-audit LoC step (tokei preferred; scc, then cloc as fallbacks) | MIT OR Apache-2.0 / MIT / GPL-2.0-or-later (cloc) | tokei · scc · cloc header |
universal-ctags |
build_symbol_index.py ctags engine (optional; built-in extractors otherwise) |
GPL-2.0-or-later | source headers |
ast-grep |
fleet-fix structural transforms (apply_fleet_fix.py, matcher kind ast_grep) |
MIT | LICENSE |
gh |
remediate-finding, secure-code-audit (API lookups), the rescan router (github-kind hosts) |
MIT | LICENSE |
glab |
fleet-fix and remediate-finding MR automation (human-gated); the rescan router (gitlab-kind hosts) |
MIT | LICENSE |
jq |
shell snippets across several skills | MIT (code) + CC-BY-3.0 (docs) | COPYING |
sqlite3 (CLI + Python stdlib module) |
findings.db / portfolio-graph.db projections | Public Domain (SQLite); PSF-2.0 for the stdlib wrapper | SQLite copyright |
oc / kubectl |
inventory-repositories, deploy-operator, validate-findings (cluster adapters); validation-step safe-exec profile |
Apache-2.0 | oc · kubectl |
operator-sdk / opm |
deploy-operator, inventory-repositories | Apache-2.0 | operator-sdk · operator-registry |
aws (CLI v2) |
compliance-check collect_cloud_inventory.py (declared cloud inventory export) |
Apache-2.0 | LICENSE — AWS service use is governed separately by AWS service terms |
gcloud (Google Cloud CLI) |
pqc-readiness build_xcrypto_tracker.py --push-sheet only — mints a short-lived bearer from the operator's own login; never required for the CSV/md outputs |
Proprietary (Google Cloud SDK ToS; freely downloadable, not OSS) | terms — invoked, never redistributed |
gws (Google Workspace CLI) |
reassign-findings-owners (document-share permissions, ownership tracker) | Apache-2.0 | LICENSE — README notes it is "not an officially supported Google product" |
wasm-tools / wasmtime / wasmedge |
validate-findings WASM adapter | Apache-2.0 WITH LLVM-exception (OR MIT) / same / Apache-2.0 | wasm-tools · wasmtime · wasmedge |
Cluster-provisioning tools (managed-cloud CLIs, installers, deployment helpers) are not harness dependencies. Live validation needs a reachable cluster named in the rules-of-engagement file; how that cluster is provisioned is the deployment's concern, and the deployment-specific provisioning skills carry their own dependency rows in their own repository.
Consumed as separately-installed servers speaking MCP; the harness contains none of their code.
| Server | Used by | License | Evidence |
|---|---|---|---|
| github-mcp-server | secure-code-audit, inventory, remediation flows | MIT | LICENSE |
| GitLab MCP (zereight/gitlab-mcp) | secure-rpm-audit, ledger/MR flows | MIT | LICENSE — community server; a hosted GitLab MCP endpoint is used as a service and its licensing does not attach to clients |
| mcp-atlassian (sooperset) | file-security-defect, Jira flows | MIT | LICENSE — community-maintained, not an Atlassian product |
| playwright-mcp | validate-browser-finding | Apache-2.0 | LICENSE |
Code and data license differently — all these feeds permit free consumption at runtime; attribution obligations trigger only if the data is republished.
The machine-readable registry is config/feeds.yaml —
every source, cached or live, with its endpoint, cadence, licence block, and
consumers. The feed fetcher, the advisory fetcher, and check_drift.py
(feeds:* freshness + feed-source:* liveness) all read it, so adding a
source is a config change and a dead source is a failing row. The table below
is the licensing companion, not a second source of truth. HTTP endpoints are
not covered by the docs gate's subprocess scan — a new feed adds a row here at
intake.
| Feed / API | Used by | Terms | Evidence | Notes |
|---|---|---|---|---|
Vendor CSAF VEX (Red Hat: access.redhat.com/security/data/csaf/v2/vex/) |
fetch_feeds.py --feed vex (index) + lazy per-CVE load → /impact-analysis, /triage |
CC-BY-4.0 | Red Hat security data | Per-CVE product impact status (known_affected, fixed, known_not_affected with justification flags). CVE-keyed; the advisories/ endpoint is advisory-id-keyed (next row). Index synced; documents fetched on demand and cached |
Vendor CSAF advisories (Red Hat: access.redhat.com/security/data/csaf/v2/advisories/) |
secure-rpm-audit, container CVE context, fetch_advisory.py redhat-csaf |
CC-BY-4.0 | security data page | Attribute the vendor when distributing. Advisory-id-keyed and year-partitioned |
Vendor CVE data (Red Hat: access.redhat.com/hydra/rest/securitydata/cve.json) |
fetch_feeds.py --feed rh-cve → first-discovery reconciliation |
CC-BY-4.0 | Red Hat security data | Attribute when redistributing. Public endpoint, paginated and incremental from a stored watermark |
| grype vulnerability DB (grype.anchore.io) | secure-container-audit, secure-code-audit SBOM step | No published license/ToS — provided "at no cost to users" | Anchore docs | The one undocumented feed; obtain written terms before redistributing a product that depends on it |
| Go vulnerability DB (vuln.go.dev) | govulncheck runs | CC-BY-4.0 | copyright | Attribute if republishing records |
| OSV.dev | osv-scanner, secure-rpm-audit, the CVE-replay monitor, fork-advisory lag, fetch_advisory.py |
Pass-through: each record keeps its home DB's license (mostly CC-BY-4.0; some CC0/MIT/BSD) | data docs | Free unauthenticated API; attribute the source DB when reproducing advisory text |
| NVD CVE API | fetch_advisory.py → impact-analysis advisory ingestion |
Free public API; attribution requested ("This product uses the NVD API but is not endorsed or certified by the NVD"); rate limits apply without an API key | NVD terms | US-Gov data, no content license on records; consumed at runtime, not republished |
| OpenSSF Scorecard API | secure-code-audit, secure-rpm-audit | CDLA-Permissive-2.0 (data); Apache-2.0 (code) | repo | Essentially no downstream obligations |
| FIRST EPSS scores | fetch_feeds.py cache → CVE-finding enrichment |
Free to the public incl. commercial products; "appropriate attribution" requested | EPSS FAQ | Cite "EPSS at https://www.first.org/epss" wherever scores are rendered |
| CISA KEV catalog | fetch_feeds.py cache → CVE-finding enrichment |
CC0-1.0 (no CISA/DHS logo use or endorsement implication) | license.txt | Third-party links inside KEV records carry their own terms |
GitHub REST API (/languages, commits, compare) |
secure-code-audit, loc-dashboard, the rescan router | GitHub ToS | docs | Service terms, not a content license |
Credential-liveness probe endpoints (GitHub /user, GitLab /api/v4/user, Slack auth.test, OpenShift users/~, AWS sts:GetCallerIdentity) |
validate-findings credential_liveness.py |
Each service's ToS / API terms | GitHub · GitLab · Slack | No harness-owned tokens — each probe authenticates with the discovered candidate credential itself, one read-only introspection call, explicit-only scope unlock. Keep probing inside the engagement's authorization, which the scope guard enforces |
| Deployment-internal registries and services (product registry, directory service, dist-git lookaside cache) | owner skills, SLA view, defect filing, secure-rpm-audit | Internal to the deployment — no third-party licence surface | — | Network-gated; excluded from --feed all; cache-only, never vendored. Configured per deployment |
The licensing-critical table. Three usage categories, in increasing risk
order: (a) citing IDs/names in emitted reports (CWE-79, CIS 1.2.3,
PEACH-P) — uniformly safe, facts and short identifiers are not copyrightable
expression; (b) reproducing/adapting framework text inside skill prompt
files — the prompt files are distributed content, so content licenses bind;
(c) embedding in a commercial product — same as (b) plus NonCommercial
clauses activate.
| Framework | Used by | License / Terms | Evidence | Risk |
|---|---|---|---|---|
| OWASP ASVS v5.0 | secure-code-audit, secure-rpm-audit, vuln-scan | CC-BY-SA-4.0 | LICENSE | Low — attribution + ShareAlike on adapted excerpts only; keep them delimited and attributed so SA stays scoped |
| OWASP Kubernetes Top 10 (2025) | secure-code-audit | CC-BY-SA-4.0 | LICENSE | Low — same as ASVS |
| CIS Kubernetes Benchmark v2.0 | secure-code-audit | CIS non-member ToU: internal, non-commercial use only; no derivatives; no incorporation into commercial products | CIS ToU | High for any commercial embedding of benchmark-derived text (requires a CIS SecureSuite Product Vendor membership). ID-only citations remain safe — and are all the harness emits (enforced, see below) |
| DISA STIG for Kubernetes | secure-code-audit | US Government work — public domain (17 U.S.C. §105) | §105 · cyber.mil | None — avoid implying DoD endorsement |
| NIST SP 800-53 rev 5 + SP 800-53B baselines (OSCAL) | compliance-check (canonical spine) | CC0-1.0 / US-Gov public domain | LICENSE.md | None — provenance (upstream sha256, retrieval date) recorded next to the vendored derivations |
| FedRAMP rev 5 baselines (OSCAL) | compliance-check (FedRAMP High/Moderate overlays) | US-Gov public domain — the authoritative OSCAL source was decommissioned; community mirrors fail the provenance bar | — | Interim posture: NIST 800-53B Moderate/High selections, labelled as such, until a provenance-grade overlay source is available |
| PCI DSS v4.x | compliance-check (requirement-ID citations only) | PCI SSC copyright — no open license | PCI SSC document library terms | Bare requirement IDs only, never standard text — enforced by the content guard |
| GDPR (Regulation (EU) 2016/679) | compliance-check (technical-slice catalog) | EUR-Lex reuse: permitted incl. commercial; attribution for editorial content (CC-BY-4.0); metadata CC0 | EUR-Lex legal notice | Low — law text reproducible; legal compliance judgment stays with counsel |
| SOC 2 / AICPA Trust Services Criteria | compliance-check (criterion-ID citations only) | AICPA copyright, all rights reserved | AICPA TSC publications (aicpa-cima.com) | Bare criterion IDs only ("TSC CC6.1"), never criteria text — enforced by the content guard; reference PDFs stay local, never vendored |
| SLSA v1.2 | secure-code-audit, secure-rpm-audit, secure-container-audit | Community Specification License 1.0 | LICENSE | Low — attribution on derivatives; defensive patent-termination clause |
| OpenSSF Scorecard | secure-code-audit, secure-rpm-audit | Apache-2.0 (code) / CDLA-Permissive-2.0 (data) | repo | None |
| PEACH tenant-isolation framework | secure-code-audit, security-audit-phased (methodology reference) | Upstream content is NonCommercial and self-contradictory (repo LICENSE.md CC-BY-NC-ND-4.0; README badge and site CC-BY-NC-SA-4.0). The harness reproduces none of it: its PEACH sections are original text citing only the methodology, parameter names, and IDs |
LICENSE.md · README | Low while the text stays original — enforced by the content guard |
| SEI CERT C/C++ Coding Standards | secure-rpm-audit, secure-code-audit (language-conditional lens) | CMU copyright: verbatim whole reproduction + internal derivatives free; other external/commercial use needs written permission | terms in standard PDF | Medium — rule IDs + titles + own paraphrase are fine; verbatim rule bodies/examples need permission |
| SEI CERT Oracle Coding Standard for Java | secure-code-audit (language-conditional lens; the Java rule pack cites rule IDs in metadata.cert — patterns and text original to the pack) |
CMU copyright, same terms | published standard | Medium — rule IDs + titles + own paraphrase only; never import compliant/noncompliant example code |
| Fedora Packaging Guidelines | secure-rpm-audit | CC-BY-SA-4.0 | Fedora content license | Low |
| CWE (MITRE) | all audit skills | CWE ToU: royalty-free incl. commercial; reproduce MITRE copyright notice with copied content | ToU | None |
| CAPEC (MITRE) | audit skills (capec field) |
CAPEC ToU: royalty-free incl. commercial; carry MITRE notice; derivative right not explicit — prefer verbatim-with-notice or ID-only | ToU | None |
| MITRE ATT&CK (Enterprise) | harnessing/attack-coverage/ — vendored distilled technique/mitigation table built from one sha256-pinned STIX release; technique IDs cited in validation reports, threat models, and the coverage layer |
ATT&CK Terms of Use: royalty-free use, reproduction, and distribution incl. commercial, with attribution and the MITRE copyright statement carried | ToU | None — attribution statement embedded in the vendored table and every emitted layer |
| CVSS v3.1/v4.0 (FIRST) | all audit skills | Open standard: free use with attribution to FIRST, scoring per official spec, vector string published alongside every score | spec | None — the schema's cvss.vector requirement satisfies the disclosure condition |
| Harness-authored opengrep rule pack (the default) | run_opengrep.py default ruleset — harnessing/3-audit/secure-code-audit/opengrep-rules/, mined from the deployment's own ledger-confirmed findings |
Same license as the harness | in-tree | None — own IP; framework citations by ID only, messages in the harness's own words |
| argus-observe-rules (contributor pack) | run_opengrep.py opt-in supplement — fetched at run time to the user cache, pinned by SHA, never vendored; individual rules enabled per deployment via $TRAUST_CONFIG_HOME/rule-pack-allowlist.yaml |
MIT | LICENSE | Low — MIT permits internal use, redistribution and commercial use with attribution; the notice stays with the upstream clone and the pack's licence is recorded in metadata.tools per run |
| ReversingLabs YARA rules | run_yara.py default malware-family pack for secure-container-audit / secure-rpm-audit — fetched at run time to the user cache, pinned by SHA, never vendored |
MIT | LICENSE | Low — MIT; rolling develop branch, so the SHA pin is a deliberate bump watched by the yara-rules-pin drift row |
| pqc-scan rules (wakaken/pqc-scan) | pqc-readiness — vendored default rules snapshot (rules/*.yml) alongside the pinned binary; supplemented by a harness-owned pack |
MIT | LICENSE | Low — MIT permits vendoring, modification, and redistribution with attribution |
Rule-pack contract. run_opengrep.py runs the harness-authored pack by
default and accepts supplements only as SHA-pinned, permissively-licensed,
never-vendored inputs whose licence is recorded per run. It refuses
--config auto and does not use Semgrep-maintained registry rules, whose
licence restricts use to internal business purposes and forbids distribution;
adopting any new pack goes through /check-licensing and adds a row here.
Content-license rules enforced mechanically by
python3 -m traust.cli check content-licenses (the deterministic core
of /check-licensing; run standalone, by the pre-push hook, and by the test
suite):
- CIS: identifiers only. Emitted reports and skill text cite bare CIS
section IDs; CIS recommendation-text signatures fail the build.
validate_report.py --strictadditionally warns when a finding's description or remediation matches CIS recommendation-title phrasing. - PEACH: keep it original. The PEACH sections were rewritten as original text; fingerprint phrases from the upstream adaptation fail the build, and NonCommercial license markers may appear only in the files that discuss licensing (this one and the changelog).
- PCI DSS and AICPA TSC: identifiers only. Standard text and criteria text signatures fail the build.
- Every
pyproject.tomldependency has a row here, and so does every CLI tool the code invokes (checked by the docs gate). Adding a dependency without its intake row fails the build.
Extend the guard's pattern lists when a new protected content class enters the harness — never edit them to make a violation pass.
Formal citations for the frameworks the harness applies:
- OWASP Foundation. OWASP Application Security Verification Standard, v5.0. https://owasp.org/www-project-application-security-verification-standard/ — CC-BY-SA-4.0.
- OWASP Foundation. OWASP Kubernetes Top 10, 2025 edition. https://owasp.org/www-project-kubernetes-top-ten/ — CC-BY-SA-4.0.
- Center for Internet Security. CIS Kubernetes Benchmark, v2.0. https://www.cisecurity.org/benchmark/kubernetes — CIS Terms of Use (non-member).
- Defense Information Systems Agency. Kubernetes Security Technical Implementation Guide, V2R6. https://public.cyber.mil/stigs/ — US Government work.
- OpenSSF / The Linux Foundation. SLSA: Supply-chain Levels for Software Artifacts, v1.2. https://slsa.dev/ — Community Specification License 1.0.
- OpenSSF. Scorecard. https://securityscorecards.dev/ — Apache-2.0 (code), CDLA-Permissive-2.0 (data).
- Wiz, Inc. PEACH: A Tenant Isolation Framework for Cloud Applications, v1.1 (2022). https://peach.wiz.io — cited as the source of the methodology only; the harness's PEACH sections are original text and reproduce no Wiz-authored content (upstream content licensing: repo LICENSE.md BY-NC-ND-4.0 vs README/site BY-NC-SA-4.0).
- Software Engineering Institute, Carnegie Mellon University. SEI CERT C Coding Standard and SEI CERT C++ Coding Standard. https://wiki.sei.cmu.edu/confluence/display/seccode — CMU copyright, permission-based reuse.
- Software Engineering Institute, Carnegie Mellon University. SEI CERT Oracle Coding Standard for Java. https://cmu-sei.github.io/secure-coding-standards/sei-cert-oracle-coding-standard-for-java/ — CMU copyright, permission-based reuse; cited by rule ID with original paraphrase only.
- Fedora Project. Fedora Packaging Guidelines. https://docs.fedoraproject.org/en-US/packaging-guidelines/ — CC-BY-SA-4.0.
- The MITRE Corporation. Common Weakness Enumeration (CWE). https://cwe.mitre.org/ — CWE Terms of Use.
- The MITRE Corporation. Common Attack Pattern Enumeration and Classification (CAPEC). https://capec.mitre.org/ — CAPEC Terms of Use.
- The MITRE Corporation. MITRE ATT&CK®. https://attack.mitre.org/ — ATT&CK Terms of Use.
- FIRST.Org, Inc. Common Vulnerability Scoring System, v3.1/v4.0. https://www.first.org/cvss/ — open standard, attribution required.