Skip to content

Commit cfb997d

Browse files
committed
docs(docs): clean up internal tracking and enforce reference standards
1 parent 68de9aa commit cfb997d

32 files changed

Lines changed: 368 additions & 1150 deletions
Binary file not shown.

AGENTS.md

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@ Cursor, Cline, GitHub Copilot, and Windsurf) — see
2626
5. [Debugging Standards](#debugging-standards)
2727
6. [Compliance Artifact Obligations](#compliance-artifact-obligations)
2828
7. [Architecture & Design Standards](#architecture--design-standards)
29-
8. [Answering Questions About This Repository](#answering-questions-about-this-repository)
30-
9. [Tool-Specific Configuration](#tool-specific-configuration)
31-
10. [Test Execution](#test-execution)
29+
8. [Documentation Standards](#documentation-standards)
30+
9. [Answering Questions About This Repository](#answering-questions-about-this-repository)
31+
10. [Tool-Specific Configuration](#tool-specific-configuration)
32+
11. [Test Execution](#test-execution)
3233

3334
---
3435

@@ -279,6 +280,16 @@ When modifying STPA source files:
279280

280281
---
281282

283+
## Documentation Standards
284+
285+
Because CAGE is an illustrative reference architecture and not a live production deployment, all repository documentation must strictly adhere to the following principles:
286+
287+
- **No Internal Operational Tracking:** Do not add or maintain documents that track specific internal deployments, incidents, or team progress (e.g., active POAM trackers, rollback procedures for specific migrations, internal implementation status).
288+
- **Illustrative Patterns Only:** Documents that describe operational procedures (like key rotation, deployment rules, or compensating controls) must clearly include a "Reference Architecture Note" stating they are illustrative templates for adopters.
289+
- **Maintainer Independence:** Documentation should be written for an external adopter to adapt, devoid of maintainer-specific internal cloud project names, timestamps, or specific ticket tracking.
290+
291+
---
292+
282293
## Answering Questions About This Repository
283294

284295
When explaining repository concepts, reference the authoritative source

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ Versions follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
1111

1212
### Added
1313

14+
- `tests/test_tls_enforcement.py` — Gateway TLS enforcement test suite: unit assertions for NIST SP 800-52 Rev. 2 TLS 1.2+ protocol minimums, OIDC JWKS `verify=True` transport security, and Linkerd mTLS manifest annotations (`test(compliance)`, closes POAM-2026-011)
15+
- `docs/operations/KEY_ROTATION.md` — Cryptographic key management & rotation guide: documented rotation cadences for Cloud KMS HSM keys (90-day), HMAC routing seal secrets (30-day), and Linkerd mTLS certs with zero-downtime procedures and emergency revocation runbooks (`docs(operations)`, closes POAM-2026-012)
16+
- `deployment/k8s/` manifests — Pinned third-party container image tags: `openpolicyagent/opa:0.68.0-static`, `redis/redis-stack-server:7.4.0-v1`, and `anchore/syft:v1.10.0` across deployment manifests (`feat(infra)`, closes POAM-2026-013)
17+
- `AGENTS.md` — Parallel test isolation standards: added mandatory `--dist=loadfile` flag requirement and targeted test command reference matrix (`docs(tests)`)
1418
- `src/gateway/governance/symbolic_governor.py` — PAUSE handler in `validate_action()`: first-class runtime execution path returning `verdict: PAUSE`, pause token, resume endpoint, and retry metadata (`feat(governance)`)
1519
- `src/gateway/governance/routing_seal.py` — HMAC Routing Seal v2: 4-tuple format `<expire_hex>.<action_slug>.<record_hash_hex>.<hmac_hex>` binding SHA-256 evidence record hash with fail-closed actuator enforcement (`feat(governance)`)
1620
- `src/gateway/governance/cbf.py` — Strict replication rollback & cold-start epoch seed: synchronous Redis `WAIT` verification with fail-closed automatic rollback on replica timeout, plus `_fetch_initial_fence_epoch_sync()` startup seeding (`feat(governance)`)

COMPLIANCE.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# CAGE Compliance & Governance Posture Framework
2-
**CAGE Version:** v2.1.1
3-
**Last Evaluated:** 2026-08-05
2+
**CAGE Version:** v3.0.0
3+
**Last Evaluated:** 2026-08-22
44

55
---
66

@@ -247,18 +247,20 @@ Full STPA hazard analysis (UCAs 1–9, Saga pattern, FiscalLimitGuard): [`docs/s
247247
* **KMS Batch Signing for Audit Evidence:** All OSCAL findings and AARM conformance reports are asymmetrically signed via Google Cloud KMS HSM (`src/gateway/governance/kms_signer.py`) before GCS persistence. The private key never leaves the HSM; Cloud Audit Logs provide external, immutable attestation of every signing operation. This constitutes the audit evidence chain for FedRAMP HIGH AU-9 and AU-10.
248248

249249
* **KMS replay-attack closure:** `KmsSigner.sign()` now embeds `"signed_at": int(time.time())` in every signed payload. `KmsSigner.verify()` raises `ValueError` if `now - signed_at > 300 s`. This closes the replay-attack vector where a compromised agent with Redis write access could reset the 300 s TTL indefinitely.
250-
* **⚠️ Gaps to Authorization:** The CAGE software runtime does not inherently possess an official **Authority to Operate (ATO)**. To close this loop, the parent organization must deploy independent assessors to complete RMF Step 5 (Assess) and Step 6 (Authorize), as well as remediate the remaining 11 open infrastructure POA&M infrastructure tickets.
251-
* **Companion Documentation:** For infrastructure configurations, Linkerd policy files, and security posture tracking, see [docs/SECURITY_STATUS.md](docs/security/SECURITY_STATUS.md) and [docs/POAM.md](docs/compliance/cross-region/POAM.md).
250+
* **⚠️ Gaps to Authorization:** The CAGE software runtime does not inherently possess an official **Authority to Operate (ATO)**. To close this loop, the parent organization must deploy independent assessors to complete RMF Step 5 (Assess) and Step 6 (Authorize), as well as remediate the remaining open infrastructure POA&M tickets.
251+
* **Companion Documentation:** For infrastructure configurations, Linkerd policy files, cryptographic key management, and security posture tracking, see [docs/SECURITY_STATUS.md](docs/security/SECURITY_STATUS.md), [`docs/operations/KEY_ROTATION.md`](docs/operations/KEY_ROTATION.md), and [docs/POAM.md](docs/POAM.md).
252252

253-
### F. Lula Automated Compliance Validation (29 Manifests)
253+
### F. Lula Automated Compliance Validation (30 Manifests)
254254
* **Status:** Partially Automated.
255-
* **Mechanism:** Lula automates OSCAL Assessment Result generation on a 6-hour CronJob schedule (`deployment/k8s/lula-cron.yaml`). There are **29 validation manifests** in `compliance/lula/` covering ISO 42001 (universal), NIST SP 800-53 (US_FED), NIST AI 600-1 (US_FED), EU AI Act/GDPR/DORA (EU_ECB), and MAS FEAT/Notice 655/TRM (APAC_MAS). See [`compliance/lula/README.md`](compliance/lula/README.md) for the full status table and activation instructions.
255+
* **Mechanism:** Lula automates OSCAL Assessment Result generation on a 6-hour CronJob schedule (`deployment/k8s/lula-cron.yaml`). There are **30 validation manifests** in `compliance/lula/` covering ISO 42001 (universal), NIST SP 800-53 (US_FED), NIST AI 600-1 (US_FED), EU AI Act/GDPR/DORA (EU_ECB), and MAS FEAT/Notice 655/TRM (APAC_MAS). See [`compliance/lula/README.md`](compliance/lula/README.md) for the full status table and activation instructions.
256256

257-
**✅ Active (4):**
257+
**✅ Active (6):**
258258
* `lula-validation-a52.yaml` (ISO 42001 A.5.2, **ALL regions**) — Social impact assessment; NeMo Guardrails toxicity blocking ≥ 99%
259259
* `lula-validation-a53.yaml` (ISO 42001 A.5.3, **ALL regions**) — Logging and monitoring; Langfuse safety rate ≥ 98%
260260
* `lula-validation-a92.yaml` (ISO 42001 A.9.2, **ALL regions**) — Data transfer to suppliers; Presidio PII leak rate = 0%
261261
* `lula-validation-sc4.yaml` (NIST SP 800-53 SC-4, **US_FED only**) — Fiscal limits and RBAC; OPA ConfigMap label present in `governance-stack` namespace
262+
* `lula-validation-sc8.yaml` (NIST SP 800-53 SC-8, **US_FED only**) — Transmission confidentiality / TLS enforcement verified via unit tests in `tests/test_tls_enforcement.py` and Linkerd mTLS manifest annotations
263+
* `lula-validation-ia5.yaml` (NIST SP 800-53 IA-5 / SC-12, **US_FED only**) — Authenticator management / KMS HSM key lifecycle documented in `docs/operations/KEY_ROTATION.md`
262264

263265
**🔶 Stub (11)** — NIST SP 800-53 / CSA AARM; logic complete, requires cluster-specific configuration:
264266
* `lula-validation-aarm-vectors.yaml` (CSA AARM v1.0, **ALL regions**) — 11-vector AI agent threat model coverage

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
> **AI governance for regulated financial services — built-in, not bolted on.**
55
6-
![v3.0.0](https://img.shields.io/badge/version-3.0.0-brightgreen) ![2817 Tests Passing](https://img.shields.io/badge/tests-2817%20passing-brightgreen) ![Coverage 75.40%](https://img.shields.io/badge/coverage-75.40%25-brightgreen) ![Cloud KMS HSM](https://img.shields.io/badge/Cloud%20KMS-HSM-brightgreen) ![POAM Closed 8](https://img.shields.io/badge/POAM%20Closed-8-brightgreen)
6+
![v3.0.0](https://img.shields.io/badge/version-3.0.0-brightgreen) ![2841 Tests Passing](https://img.shields.io/badge/tests-2841%20passing-brightgreen) ![Coverage 75.40%](https://img.shields.io/badge/coverage-75.40%25-brightgreen) ![Cloud KMS HSM](https://img.shields.io/badge/Cloud%20KMS-HSM-brightgreen) ![POAM Closed 12](https://img.shields.io/badge/POAM%20Closed-12-brightgreen)
77

88
**Universal (all regions):** ![ISO 42001](https://img.shields.io/badge/ISO-42001-blue)
99

@@ -36,12 +36,12 @@
3636

3737
| Suite / Jurisdiction | Posture | Result | Date |
3838
|---|---|---|---|
39-
| **US_FED** (NIST SP 800-53 / FedRAMP) | `dev` / `test` |**2,817 passed** / 0 failed / 67 skipped (75.32% cov) | 2026-08-18 |
40-
| **US_FED** (NIST SP 800-53 / FedRAMP) | `prod` |**217 passed** / 0 failed / 131 skipped | 2026-08-18 |
41-
| **EU_ECB** (GDPR / EU AI Act) | `dev` / `test` |**2,809 passed** / 0 failed / 75 skipped (75.40% cov) | 2026-08-18 |
42-
| **EU_ECB** (GDPR / EU AI Act) | `prod` |**209 passed** / 0 failed / 139 skipped | 2026-08-18 |
43-
| **APAC_MAS** (MAS TRM / FEAT) | `dev` / `test` |**2,811 passed** / 0 failed / 73 skipped (75.30% cov) | 2026-08-18 |
44-
| **APAC_MAS** (MAS TRM / FEAT) | `prod` |**211 passed** / 0 failed / 137 skipped | 2026-08-18 |
39+
| **US_FED** (NIST SP 800-53 / FedRAMP) | `dev` / `test` |**2,841 passed** / 0 failed / 67 skipped (75.40% cov) | 2026-08-22 |
40+
| **US_FED** (NIST SP 800-53 / FedRAMP) | `prod` |**217 passed** / 0 failed / 131 skipped | 2026-08-22 |
41+
| **EU_ECB** (GDPR / EU AI Act) | `dev` / `test` |**2,833 passed** / 0 failed / 75 skipped (75.40% cov) | 2026-08-22 |
42+
| **EU_ECB** (GDPR / EU AI Act) | `prod` |**209 passed** / 0 failed / 139 skipped | 2026-08-22 |
43+
| **APAC_MAS** (MAS TRM / FEAT) | `dev` / `test` |**2,835 passed** / 0 failed / 73 skipped (75.40% cov) | 2026-08-22 |
44+
| **APAC_MAS** (MAS TRM / FEAT) | `prod` |**211 passed** / 0 failed / 137 skipped | 2026-08-22 |
4545

4646
Tests pass cleanly across all three regulatory postures on macOS and Linux GKE targets (`governance-cluster-2`, project `laah-cybernetics`).
4747
Skipped tests represent live GKE cluster integration endpoints (evaluated via `scripts/port_forward_dev.sh` + `uv run pytest tests/ --run-integration`).
@@ -111,7 +111,7 @@ CAGE is composed of six runtime subsystems:
111111
| **Compliance Bridge** | `src/compliance_bridge/` | OSCAL audit ingest; SSE event bus; Langfuse integration; AARM Conformance Engine; DEFER Queue API |
112112
| **AgentSight UI** | `src/agentsight-ui/` | React/TypeScript operator dashboard; real-time governance and remediation events |
113113
| **AgentSight eBPF DaemonSet** | `deployment/agentsight/` | Kernel-level process telemetry via BPF uprobes |
114-
| **Vendor Integrations** | `src/integrations/` | Isolated third-party adapters: `trustlayers/` (normative provider), `nexart/` (CER attestation) |
114+
| **Vendor Integrations** | `src/integrations/` | Isolated third-party adapters: `trustlayers/` (normative provider), `nexart/` (CER attestation), `veip/` (Verifiable Execution Evidence Pack), `archytan/` (socket-level execution guillotine), `veritas/` (JCS canonicalization) |
115115

116116
```
117117
User ──POST /agent/query──► FastAPI Agent Server (:8000)

SECURITY.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ controls are documented in:
8181

8282
- [`docs/security/SECURITY_STATUS.md`](docs/security/SECURITY_STATUS.md) — full
8383
security posture, NIST RMF status, and all open POA&M items
84+
- [`docs/operations/KEY_ROTATION.md`](docs/operations/KEY_ROTATION.md) — cryptographic key lifecycle and rotation runbooks (SC-12 / IA-5)
8485
- [`docs/architecture/GATEWAY_ARCHITECTURE.md`](docs/architecture/GATEWAY_ARCHITECTURE.md)
8586
- [`deployment/k8s/K8S_SECURITY_HARDENING.md`](deployment/k8s/K8S_SECURITY_HARDENING.md)
8687
- [`COMPLIANCE.md`](COMPLIANCE.md)
@@ -89,14 +90,16 @@ controls are documented in:
8990

9091
| Control | Implementation |
9192
|---------|---------------|
92-
| Governance signing | Cloud KMS HSM-backed asymmetric signing; HMAC-SHA256 fallback in dev/CI |
93-
| Routing seal v2 | 4-tuple token `<expire_hex>.<action_slug>.<record_hash_hex>.<hmac_hex>` binding SHA-256 evidence record hash |
93+
| Governance signing | Cloud KMS HSM-backed asymmetric signing; HMAC-SHA256 fallback in dev/CI; 90-day rotation cadence per `KEY_ROTATION.md` |
94+
| Routing seal v2 | 4-tuple token `<expire_hex>.<action_slug>.<record_hash_hex>.<hmac_hex>` binding SHA-256 evidence record hash; 30-day secret rotation cadence |
95+
| TLS & Transport Security | NIST SP 800-52 Rev. 2 minimum TLS 1.2+ validation, OIDC JWKS `verify=True` enforcement, and Linkerd mTLS manifest policies (`tests/test_tls_enforcement.py`) |
96+
| Base Image Hardening | Container images standardized on `python:3.12-slim-bookworm` with build-time security upgrade layers and pinned third-party tags |
9497
| Prompt injection detection | Aho-Corasick O(n) scan; 14+ patterns |
9598
| PII protection | Presidio; 15 entity types; input + output |
9699
| Human-in-the-loop | Redis-persisted checkpoint; TOCTOU remediation via `post_hitl_rehydrate` + `post_hitl_revalidate` |
97100
| Control Barrier Function | Atomic Redis Lua (`atomic_verify_and_commit()`) with synchronous replica `WAIT` barrier, monotonic `safety:fence_epoch`, and fail-closed state rollback |
98101
| Evidence chain integrity | SHA-256 hash-chained NDJSON & Redis Streams db=1; enforced blocking durability in production (`validate_evidence_stream_preconditions()`) |
99-
| mTLS | Linkerd SPIFFE/SVID; gateway↔OPA, gateway↔NeMo |
102+
| mTLS | Linkerd SPIFFE/SVID; gateway↔OPA, gateway↔NeMo; ServiceAccounts annotated with compliance metadata (`POAM-007,POAM-011`) |
100103
| Egress lockdown | Cilium L7 FQDN allowlist |
101104
| Token quota enforcement | Per-session step-count (≤12) and token (≤100k) via Redis atomic Lua counters; fail-closed |
102105

deployment/README.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -419,7 +419,6 @@ cd infra/targets/gcp-gke
419419
CAGE_DEPLOYMENT_REGION=US_FED terraform apply -var-file=prod.tfvars
420420
```
421421

422-
See [`deployment/TERRAFORM_MIGRATION.md`](TERRAFORM_MIGRATION.md) for migration notes.
423422

424423
---
425424

@@ -440,5 +439,4 @@ See [`deployment/TERRAFORM_MIGRATION.md`](TERRAFORM_MIGRATION.md) for migration
440439
- [`infra/DEPLOYMENT_GUIDE.md`](../infra/DEPLOYMENT_GUIDE.md) — full deployment reference
441440
- [`deployment/k8s/NAMESPACE-GUIDE.md`](k8s/NAMESPACE-GUIDE.md) — namespace inventory and Redis topology
442441
- [`deployment/agentsight/README.md`](agentsight/README.md) — AgentSight setup
443-
- [`deployment/TERRAFORM_MIGRATION.md`](TERRAFORM_MIGRATION.md) — Terraform migration notes
444442
- [`docs/operations/DEPLOYMENT_RULES.md`](../docs/operations/DEPLOYMENT_RULES.md) — deployment rules (Cloud Build requirement)

0 commit comments

Comments
 (0)