Files
acdl/.ciagent/archive/REVIEW.md
T
Jon Chery a63c85bc51 chore(P02): compress .ciagent/ files — archive completed milestones + slim active context
Relocate completed-milestone history to .ciagent/archive/ (byte-identical
snapshots of PROJECT/REQUIREMENTS/ROADMAP/ARCHITECTURE pre-compression +
verbatim moves of REVIEW/AUDIT/VERIFY/PRE_MORTEM). Slim the in-place files
to retain only active-milestone (v1.26) + immediate-predecessor (v1.25)
context + durable vision/tenets/scope/RACI/capability-status/load-bearing
decisions. REGRESSION_REPORT.{json,md} stay in place (live read/write
targets of core/metrics/collector.py + core/regression_verify.py).

Working context: 11,164 → 4,152 lines (~63% reduction). Archive preserves
8,615 lines. Lossless via relocation + git history. No test regressions
(761 passed; same 3 pre-existing failures as baseline).

---ci---
project: acdl
phase: 2
milestone: v1.26
status: execute
lessons:
  - REGRESSION_REPORT.{json,md} are live operational files (read by
    core/metrics/collector.py + core/regression_verify.py) — must NOT be
    archived. Pre-flight grep for code references to candidate archive
    paths before any move.
  - test_no_purged_loaded_term scans .ciagent/PROJECT.md + CLARIFY.md +
    docs/ for 'penetrat' — slimmed files must not reintroduce it. Historical
    description of the purge ('removed the term ...') is safe in ROADMAP.
  - Git rename detection (R) works for pure file moves; snapshot-then-slim
    shows as A + M. Both preserve history.
---/ci---
2026-08-18 19:21:43 +00:00

5.6 KiB
Raw Blame History

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.3v1.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:117 now emits nova-tfstate-* (matching the live bucket renamed in v1.15 P4). The new test_adapt_emits_nova_state_bucket regression guard asserts this.
  • Kyverno label fix (P1): require-resource-labels.yml enforces nova:* labels (consistent with nova_tagging.py hard-fail on acdl:*). 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). The NOVA_LAMBDA_LOCAL_BYPASS env 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 (not Decayed/Broken) for the post-teardown steady state (D-096). passed accepts 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 (--check exits 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_verify split with re-export shims; G-113 one-way import direction documented. All tests pass without modification (backwards compat preserved).
  • DX (P15-P17): --help works + 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.