fix(P5): doc drift — Nova rebrand stale refs in docs/decks/roadmap/arch

v1.15-Nova rebrand doc verification (phase/05-final-review-ship) found
stale ACDL references where the code/terraform already uses Nova names.

Critical drift fixed (doc said old name; code uses new):
- README.md: `.acdl/contract.yml` -> `.nova/contract.yml`;
  `acdl-spike-runner` -> `nova-spike-runner`; ABAC tag keys
  `acdl:owner|contract` -> `nova:owner|contract`.
- docs/environments/index.md: `acdl-contract-ingestor` -> `nova-contract-ingestor`;
  `aws:PrincipalTag/acdl:owner` -> `nova:owner`; `acdl-contracts` -> `nova-contracts`.
- docs/consumer-guide.md: `acdl-change-requests` -> `nova-change-requests`;
  state bucket example `acdl-qa-state` -> `nova-qa-state`.
- docs/presentations/* (4 decks + 2 HTML + talking-points): `acdl:owner|contract|
  environment|cost-center` -> `nova:*`; `ACDL_LIFECYCLE_MODE` -> `NOVA_LIFECYCLE_MODE`.
- pipelines/modules-lifecycle.yml comments: `ACDL_LIFECYCLE_MODE` ->
  `NOVA_LIFECYCLE_MODE` (workflows already use NOVA_; the contract comments were stale).
- docs/NOVA_MIGRATION.md: status banner -> COMPLETE (P5 cutoff passed).
- .ciagent/ARCHITECTURE.md: header `ACDL` -> `Nova`; NOVA_LIFECYCLE_MODE
  rename noted in the live lifecycle-mode section (v1.15 addendum already correct).
- .ciagent/ROADMAP.md: v1.15 phase statuses P1-P4 pending -> complete
  (v1.15.1..v1.15.4); P5 -> in progress (phase/05-final-review-ship).

Verification:
- grep for `acdl:*` tag keys / `.acdl/contract` / `acdl-contract-ingestor` /
  `acdl-contracts` / `ACDL_LIFECYCLE_MODE` in README/docs/pipelines -> 0 hits
  (excluding explicitly-unchanged repo path `acdl/.github/...`,
  `continuous-intelligence/acdl`, and historical narrative).
- core/output_publisher.py uses `/nova`; schemas/tagging-standard.json uses
  `nova:*`; terraform uses `nova-*` (0 `acdl-` in *.tf) — docs now match.
- git tag v1.15.0..v1.15.4 exist.
- pytest tests/test_lifecycle_mode_flag.py tests/test_pipeline_contract.py
  -> 111 passed.

---ci---
project: acdl
This commit is contained in:
Jon Chery
2026-07-30 02:11:12 +00:00
parent 13846d553a
commit eb7634da28
15 changed files with 54 additions and 52 deletions
+3 -3
View File
@@ -56,13 +56,13 @@ threshold. Staging does not exist.
## Cross-account contract ingestion grant (D-051)
Onboarding now also grants the consumer repo's deploy role permission to
invoke the **platform Lambda**`acdl-contract-ingestor` — across
invoke the **platform Lambda**`nova-contract-ingestor` — across
accounts. The Lambda is invoked via a Function URL with IAM auth, so the
grant is an inline IAM policy applied to the consumer's deploy role. The
policy template lives at
[`terraform/platform/consumer_invoke_policy.json`](https://github.com/nova/nova/blob/main/terraform/platform/consumer_invoke_policy.json)
and is scoped via **ABAC**: the condition
`aws:PrincipalTag/acdl:owner == ${consumerRepo}` ensures a repo can only
`aws:PrincipalTag/nova:owner == ${consumerRepo}` ensures a repo can only
invoke the Lambda when its principal tag matches its claimed identity.
The consumer's deploy workflow signs the Function URL request with
@@ -75,7 +75,7 @@ is used for two purposes:
1. **Contract ingestion** — the consumer submits its resolved deployment
contract (`action: "submit_contract"`) so the platform has a durable
record in the `acdl-contracts` DynamoDB table (PK `consumerRepo`, SK
record in the `nova-contracts` DynamoDB table (PK `consumerRepo`, SK
`contractId#submittedAt`).
2. **Error reporting** (D-055) — the consumer reports a deployment error
(`action: "report_error"`) which the platform turns into a GitHub