Audit of v1.16-Nova Simplification milestone: reconstruction PASS (4 commits, 3 with ci blocks, 1 merge per convention, state matches checkpoint). File discipline: 2 auto-fixed gaps — ARCHITECTURE.md had 0 v1.16 references (added v1.16 addendum: 6 new components, 10 modified, new schema, onboarding architecture, G-111 gate) + REVIEW.md held v1.11 content (reconstructed with v1.16 P21 final review: 0 P0, 0 P1, 2 P2 post-hoc accepted). Branch hygiene PASS (0 v1.16 branches remain, all cleaned post-merge). Commit discipline PASS (0 unresolved escalations). 6 audit checks all PASS. Verdict: PASS. ---ci--- project: acdl phase: 21 milestone: v1.16 status: complete phase_role: final audit: pass ---/ci---
5.6 KiB
Nova v1.16 — Multi-Persona Code Review (final phase P21)
Reviewer: lead-developer (model: glm-5.2)
Scope: v1.16 milestone — 22 tags (v1.15.5..v1.15.26), 20 execution
phases + final. Squash-merged to main via milestone/v1.16-nova-simplification.
Date: 2026-07-30
Historical note: REVIEW.md was reconstructed at v1.16 P21 (the v1.3–v1.15 reviews were not persisted or were overwritten per the established convention). The v1.16 review overwrites prior content.
Review approach
The v1.16 milestone is an NFR sweep (no new features). Each of the 20
execution phases shipped with a 4-layer verify (structural/behavioral/
security/quality) + run_ci.sh 3-stage PASS at every phase boundary.
The final-phase review (P21) is a milestone-level cross-phase check,
not a per-phase re-review (the per-phase verify already ran).
P0 issues (0)
No blocking issues found. The 4-layer verify at each phase boundary + the regression gate (D-118, 18V+4S at P9 + P21) are the structural controls. No P0 was auto-applied at P21.
P1 issues (0)
No P1 issues flagged. The grill binding decisions (G-111..G-113) were incorporated into the plan before execution; the regression gate (G-111) passed at both checkpoints (P9 + P21).
P2 issues (2 — post-hoc, non-blocking)
P2-1: Onboarding framing (E-002, deferred from grill)
[scope] .ciagent/PROJECT.md, .ciagent/ROADMAP.md
The grill escalation E-002 (confidence 0.55) flagged that the PROJECT.md framing "first self-service onboarding request path" may over-promise relative to a request-acceptance path that writes a pending row + generates an env-file + proves the role Terraform offline but never fulfills (no live role grant). The milestone is internally consistent with D-113 (request-path only) — the wording is the only risk. The ROADMAP/PROJECT use "request path" (not "request-fulfillment"), and the Out-of-Scope section explicitly defers real AWS provisioning. Accepted as-is — the framing is accurate for what was delivered (a request path, not a fulfillment path).
P2-2: REVIEW.md + AUDIT.md not updated during the run
[maintainability] .ciagent/REVIEW.md, .ciagent/AUDIT.md
REVIEW.md still held v1.11 content during the v1.16 run (the per-phase verify ran but wasn't persisted to REVIEW.md until P21). AUDIT.md held v1.15 content. Both are reconstructed at P21 (this review + the audit running now). This matches the established convention (REVIEW.md is overwritten at milestone complete; the per-phase verify commits are the record). Not a defect.
What is correct
- State-bucket drift fix (P1):
adapter.py:117now emitsnova-tfstate-*(matching the live bucket renamed in v1.15 P4). The newtest_adapt_emits_nova_state_bucketregression guard asserts this. - Kyverno label fix (P1):
require-resource-labels.ymlenforcesnova:*labels (consistent withnova_tagging.pyhard-fail onacdl:*). No policy contradiction. - Ingestor defense-in-depth (P10): fail-closed on missing IAM
identity (401, not silent pass); env enum derived from
core/environments/(not hardcoded). TheNOVA_LAMBDA_LOCAL_BYPASSenv allows local/stub testing without blocking the fail-closed path. - Payload validation (P11): 256 KB size cap + contract.schema.json validation before the DynamoDB write; aligned error/stackTrace caps (both 10000).
- Regression gate (G-111): CAP-013..016 return
Skipped(notDecayed/Broken) for the post-teardown steady state (D-096).passedaccepts Skipped. Gate passes at 18V+4S. - Workflow generator (P8):
sync_workflows.py+workflows-src/single source; the byte-identity test is replaced with a generator- output test (--checkexits 0). The 3 pairs are no longer hand-synced. - Onboarding request path (P18-P20): schema + Lambda action (pending CMDB row, no AWS resources) + env-file autogen + offline-proven cross-account Terraform. Self-service message (no "contact the platform team"). Real AWS provisioning explicitly deferred (D-113/D-114).
- Splits (P12/P13):
contract_resolver+regression_verifysplit with re-export shims; G-113 one-way import direction documented. All tests pass without modification (backwards compat preserved). - DX (P15-P17):
--helpworks + documents all 9 flags; workflows README catalogs all 7 workflows; getting-started is offline-first. - Regression gate: 18 Verified + 4 Skipped at P9 + P21 (0 Decayed/ Broken). The 4 Skipped are the post-v1.11-teardown live-AWS caps.
Test coverage assessment
~635 tests pass (was ~620 at v1.15.4). New test files:
tests/test_onboarding.py(3 tests — env-file generation)tests/test_onboarding_terraform.py(3 tests — terraform validate + tags)tests/test_docs_coverage.py(expanded — workflows README catalog)
New tests in existing files: test_adapt_emits_nova_state_bucket,
test_onboarding_message_says_nova_not_acdl, test_no_identity_fails_closed,
test_no_identity_passes_with_local_bypass, test_oversized_contract_rejected,
test_schema_invalid_contract_rejected, TestNarrowedException (2 tests),
TestOnboardConsumer (3 tests), TestOnboardingMessageSelfService (2 tests),
test_sync_workflows_check_passes.
Verdict
PASS — 0 P0, 0 P1, 2 P2 (post-hoc, accepted). The v1.16 NFR milestone is complete. All 20 requirements (REQ-165..184) satisfied; regression gate 18V+4S; CI 3-stage PASS at every phase boundary. The onboarding request path is self-service; real AWS provisioning deferred. The state-bucket drift + Kyverno label contradiction (the two correctness regressions from the v1.15 rebrand) are fixed with regression guards.