Jon Chery
0388751c6e
feat(P01): nova/cli.py entry point + dispatch + audit (REQ-324, INV-12, cli-engineer)
...
- main(argv) builds top-level argparse(prog="nova") with required subparsers.
- Auto-discovers nova/<module>.py via pkgutil.iter_modules(nova.__path__),
skipping `cli`; each module exports add_parser(subparsers) + run(args) -> int.
- Before dispatch: resolve_mode_from_env() → emit cli.invocation audit
event (INV-12) as a stderr JSON line stub with mode, selection_reason,
credential_type, command, args. Real outbox wiring comes later.
- Dispatch: args._run(args); exit code via sys.exit(main()).
- nova/__init__.py empty package marker.
---ci---
project: acdl
phase: 1
milestone: v1.28
status: execute
persona: cli-engineer
---/ci---
2026-08-19 22:24:07 +00:00
Jon Chery
5d1a5f83da
feat(P01): core/mode_resolver — client-mode resolution (REQ-327, D-226, cli-engineer)
...
Priority: --mode flag → NOVA_CLIENT_MODE env → credential type → TTY.
No silent fallbacks: every return carries a non-empty selection_reason.
- resolve_mode(flag, env_var, credential_type, stdin_isatty) -> (mode, reason)
- resolve_mode_from_env() reads --mode from sys.argv (best-effort scan,
no full argparse), NOVA_CLIENT_MODE, ~/.nova/credentials.json active
credential type, and sys.stdin.isatty() (D-226: stdin, NOT stdout).
- INV-13: invalid env values logged + ignored, fall through.
- INV-14: developer_pat/nova_oidc_token + TTY → interactive; + no-TTY → agent.
---ci---
project: acdl
phase: 1
milestone: v1.28
status: execute
persona: cli-engineer
---/ci---
2026-08-19 22:23:46 +00:00
Jon Chery
e7af683af6
feat(P01): pyproject entry point + package discovery (REQ-324, cli-engineer)
...
- [project.scripts] nova = "nova.cli:main"
- [tool.setuptools.packages.find] includes nova, core, adapters
- requires-python bumped to >=3.12
- new `identity` extra (argon2-cffi, cryptography, pyjwt)
- hypothesis>=6.100.0 added to `test` extra
- fix build-backend to setuptools.build_meta (was non-existent
setuptools.backends._legacy:_Backend — entry-point install was broken)
- ignore .venv/ + nova.egg-info/ workspace artifacts
---ci---
project: acdl
phase: 1
milestone: v1.28
status: execute
persona: cli-engineer
---/ci---
2026-08-19 22:23:25 +00:00
Jon Chery
939a39743d
merge(phase/00): v1.28 P0 pre-execution complete (specify→clarify→research→plan→grill→mvp/ux)
2026-08-19 22:11:05 +00:00
Jon Chery
88e2389a95
docs(ship): P0 complete → v1.27.0 (v1.28 pre-execution)
...
Nova Slides Render / render (push) Failing after 25s
---ci---
project: acdl
phase: 0
milestone: v1.28
status: complete
---/ci---
v1.27.0
2026-08-19 22:11:01 +00:00
Jon Chery
a0c363c063
decision(P00): mvp/ux gate — auto-generated (3 sections verified, PASS)
...
---ci---
project: acdl
phase: 0
milestone: v1.28
status: mvp_ux_check
---/ci---
2026-08-19 22:10:24 +00:00
Jon Chery
bbfcbcc4d3
docs(P00): grill — v1.28 adversarial review (PROCEED 0.76, 3 critical + 16 tracked conditions applied)
...
---ci---
project: acdl
phase: 0
milestone: v1.28
status: grill
---/ci---
2026-08-19 22:10:15 +00:00
Jon Chery
e1dc59ba79
docs(P00): create phase plans — v1.28 (7 phases, 31 REQs, 6 CAPs, MVP/UX sections)
...
---ci---
project: acdl
phase: 0
milestone: v1.28
status: plan
---/ci---
2026-08-19 22:06:38 +00:00
Jon Chery
c629809d75
docs(P00): research findings — v1.28 CLI + identity layer (11 Qs, D-228 amended)
...
---ci---
project: acdl
phase: 0
milestone: v1.28
status: research
---/ci---
2026-08-19 22:05:24 +00:00
Jon Chery
05efb014d6
docs(P00): clarify — v1.28 ambiguities resolved (6 Qs + 5 grounding gaps, D-226..D-231)
...
---ci---
project: acdl
phase: 0
milestone: v1.28
status: clarify
---/ci---
2026-08-19 21:58:41 +00:00
Jon Chery
9ee1cc8925
docs(init): validate specification — v1.28 CLI Canonicalization + Identity Layer
...
---ci---
project: acdl
phase: 0
milestone: v1.28
status: specify
---/ci---
2026-08-19 21:57:53 +00:00
Jon Chery
48a769ced0
merge(milestone): v1.27 PO State Catalog & Ciagent Compression to main (release v1.26.3)
...
acdl-ci / Test (push) Failing after 21s
acdl-ci / Platform check-only (offline) (push) Failing after 14m28s
acdl-ci / Lint (push) Failing after 14m40s
v1.27 NFR milestone complete. Authored .ciagent/STATE.md (PO-facing
capability catalog) + compressed .ciagent/ by archiving 8 outdated
files + fixed v1.26 phase-status in PROJECT.md/ROADMAP.md + wired
STATE.md into the P-final ship discipline.
Tags: v1.26.0 (P0) → v1.26.1 (P1) → v1.26.2 (P2) → v1.26.3 (P3 = milestone release).
---ci---
project: acdl
phase: 3
milestone: v1.27
status: complete
---ci---
2026-08-19 19:18:19 +00:00
Jon Chery
45423c33ae
merge(phase/03): v1.27 P3 final review + audit complete — milestone release
...
Tags: v1.26.3 (P3 = milestone release on the v1.26.x line). NFR milestone.
---ci---
project: acdl
phase: 3
milestone: v1.27
status: complete
---ci---
2026-08-19 19:18:15 +00:00
Jon Chery
1faf4b560f
docs(milestone): complete v1.27 PO State Catalog & Ciagent Compression (release v1.26.3)
...
Nova Slides Render / render (push) Failing after 26s
v1.27 COMPLETE. NFR milestone — PO State Catalog & Ciagent Compression.
Phases:
- P0 pre-execution (specify→clarify→research→plan→grill) → v1.26.0
- P1 author-archive (STATE.md + 8 files archived) → v1.26.1
- P2 fix-stale-wire (PROJECT/ROADMAP phase-status + ship-discipline wiring) → v1.26.2
- P3 final-review-ship (review + audit + milestone ship) → v1.26.3
Delivered:
- .ciagent/STATE.md — PO-facing capability catalog (32 CAP rows +
11 invariants across 10 domains, backfilled through v1.26). The
first file the PO reads before writing a new REQ-NNN spec.
- .ciagent/ compression: 7 platform-root files + 1 consumer file
archived (lossless git mv). Active .md count: 15 (was 25).
- PROJECT.md + ROADMAP.md v1.26 phase-status corrected (P3/P4/P5
→ complete; v1.25.5 shipped; merged to main).
- STATE.md wired into the P-final ship discipline (PLAN.md, ROADMAP.md,
NORTH_STAR.md). Every future milestone ship appends capability rows +
bumps the 'Last milestone ship' header.
Review: 0 P0 issues. Audit: reconstruction PASS, file discipline CLEAN,
branch hygiene CLEAN, commit discipline CLEAN (13/13 ---ci--- blocks).
NFR purity gate holds (zero feat: commits).
---ci---
project: acdl
phase: 3
milestone: v1.27
status: complete
---ci---
v1.26.3
2026-08-19 19:18:12 +00:00
Jon Chery
8f62cfdbe7
merge(phase/02): v1.27 P2 fix-stale-wire complete
...
Tags: v1.26.2 (P2 ship on the v1.26.x line).
---ci---
project: acdl
phase: 2
milestone: v1.27
status: complete
---ci---
2026-08-19 19:17:07 +00:00
Jon Chery
f28aed2f55
docs(ship): P2 complete → v1.26.2 (v1.27 fix-stale-wire)
...
Nova Slides Render / render (push) Failing after 24s
---ci---
project: acdl
phase: 2
milestone: v1.27
status: complete
---ci---
v1.26.2
2026-08-19 19:17:07 +00:00
Jon Chery
6b410d9ab4
docs(P02): fix stale phase-status + wire STATE.md into ship discipline
...
P2 W1: PROJECT.md v1.26 phase-status block (lines 428-438):
- P3/P4/P5 'pending' → 'complete' with shipped tags (v1.25.3/4/5)
- v1.26 Overview marked shipped (merged to main 2026-08-19)
- Added STATE.md pointer to Capability Status section header
- Updated CAPABILITY_INVENTORY.md refs → archive/CAPABILITY_INVENTORY-v1.10.md
P2 W2: ROADMAP.md v1.26 section:
- P3/P4/P5 'planned' → 'complete' with shipped tags
- v1.26 Overview '(active, ...)' → '(complete, tag v1.25.5, merged to main)'
- Added STATE.md to v1.25 + v1.26 P5 'Updated at ship' lists
P2 W3: Wired STATE.md into ship discipline:
- PLAN.md: added 'Durable convention (v1.27 establishes)' section —
every future P-final Wave 3 file-update list includes STATE.md
(append new capability rows, mark deprecations, bump 'Last
milestone ship' header).
- NORTH_STAR.md: added 'Relationship to engineering files (v1.27
update)' section — STATE.md is the *what exists* catalog (PO-owned,
additive); NORTH_STAR is the *why*; ARCHITECTURE the *how*;
CHECKPOINT the *now*.
P2 W4: archive README + consumer PROJECT pointer:
- archive/README.md: added 'v1.27 compression — archived files (8
files, lossless git mv)' section with 3 tables (3 superseded refs +
4 v1.26 verifications/review/evidence + 1 consumer) + a note on the
v1.26 pre-execution artifacts (in git history, not on disk).
Updated 'Why archive' to record both compressions (v1.26 P2 +
v1.27 P1).
- nova-blockchain-exchange/PROJECT.md: added phase-by-phase history
pointer to platform ROADMAP §v1.26 (consumer ROADMAP archived).
P2 W5: Fixed remaining dangling references to archived files:
- ARCHITECTURE.md §12.8 line 566: P4-PILOT-RUN-EVIDENCE.md → archive/
- nova-blockchain-exchange/README.md (3 refs): P4-PILOT-RUN-EVIDENCE.md
→ archive/P4-PILOT-RUN-EVIDENCE-v1.26.md
- IAM_POLICY.md (2 refs): CAPABILITY_INVENTORY.md → archive/
Verified: 0 active dangling references remaining (grep confirms all
matches are in archive/ or v1.27 P0 records describing the archive).
---ci---
project: acdl
phase: 2
milestone: v1.27
status: execute
wave: W6
---ci---
2026-08-19 19:16:43 +00:00
Jon Chery
d019a1c4c4
merge(phase/01): v1.27 P1 author-archive complete (STATE.md + 8 files archived)
...
Tags: v1.26.1 (P1 ship on the v1.26.x line).
---ci---
project: acdl
phase: 1
milestone: v1.27
status: complete
---ci---
2026-08-19 19:14:12 +00:00
Jon Chery
2b2423532b
docs(ship): P1 complete → v1.26.1 (v1.27 author-archive)
...
Nova Slides Render / render (push) Failing after 26s
---ci---
project: acdl
phase: 1
milestone: v1.27
status: complete
---ci---
v1.26.1
2026-08-19 19:14:12 +00:00
Jon Chery
f2b481716d
chore(P01): archive 7 platform + 1 consumer outdated .ciagent files
...
P1 W1: verified STATE.md 32 CAP rows against regression_verify.py
(fixed CAP-025 omission — was missing from Domain 9; CAP-031 renumbered
to cover the live-apply evidence row).
P1 W2: archived 7 platform-root files to .ciagent/archive/ with
milestone-suffix names (lossless git mv preserves history):
- CAPABILITY_INVENTORY.md → CAPABILITY_INVENTORY-v1.10.md
- REVIEW-AUDIT-P05.md → REVIEW-AUDIT-P05.md
- VERIFY-P03.md → VERIFY-P03.md
- VERIFY-P04.md → VERIFY-P04.md
- P4-PILOT-RUN-EVIDENCE.md → P4-PILOT-RUN-EVIDENCE-v1.26.md
- AUTONOMY_THESIS.md → AUTONOMY_THESIS-v1.21.md
- COST.md → COST-v1.14.md
P1 W3: archived 1 consumer file to new .ciagent/nova-blockchain-exchange/archive/
(D-221: consumer archives land in per-project subdir):
- nova-blockchain-exchange/ROADMAP.md → archive/ROADMAP-v1.26.md
The 4 pre-execution files (CLARIFY/GRILL/IDEATE/RESEARCH) stay active
through v1.27 — they hold the v1.27 P0 content (D-219 refinement,
G-Q2); the v1.26-era content is in git history. They archive at
v1.28 P1 if v1.28 happens.
Dangling references to archived files found in PROJECT.md,
ARCHITECTURE.md, IAM_POLICY.md, nova-blockchain-exchange/README.md —
fixed in P2.
---ci---
project: acdl
phase: 1
milestone: v1.27
status: execute
wave: W4
---ci---
2026-08-19 19:13:48 +00:00
Jon Chery
135359ebb8
merge(phase/00): v1.27 P0 pre-execution complete (specify→clarify→research→plan→grill)
...
Tags: v1.26.0 (P0 ship on the v1.26.x line). NFR milestone.
---ci---
project: acdl
phase: 0
milestone: v1.27
status: complete
---ci---
2026-08-19 19:12:54 +00:00
Jon Chery
ecc9730f24
docs(ship): P0 complete → v1.26.0 (v1.27 pre-execution)
...
---ci---
project: acdl
phase: 0
milestone: v1.27
status: complete
---ci---
2026-08-19 19:12:51 +00:00
Jon Chery
4fe1a1508e
docs(P00): grill — v1.27 adversarial review (6 challenges, PROCEED 0.88)
...
Nova Slides Render / render (push) Failing after 26s
6 challenges; 0 escalations; 1 binding revision (G-Q2, already in
PLAN): archive list refined to 7 platform + 1 consumer = 8 files
(the 4 pre-execution files stay active through v1.27 holding the P0
content; v1.26-era content in git history).
Challenges:
- G-Q1: archiving AUTONOMY_THESIS + COST is lossless (folded into
NORTH_STAR; COST predates v1.26 pilot)
- G-Q2: archive-list ambiguity resolved (the refinement above)
- G-Q3: STATE.md backfill accuracy ensured by P1 W1 verification step
- G-Q4: NFR purity holds (STATE.md is docs, not feat)
- G-Q5: PROJECT.md bug fix in P2 is intentional phasing (D-225)
- G-Q6: milestone scope is appropriately small + high-leverage
---ci---
project: acdl
phase: 0
milestone: v1.27
status: grill
---ci---
v1.26.0
2026-08-19 19:12:37 +00:00
Jon Chery
a6b908c035
docs(P00): personas + plan — v1.27 (lead-developer only, 3 phases)
...
PERSONAS: lead-developer active (docs/chore milestone); 5 others
inactive. Territory: .ciagent/, docs/.
PLAN: 3 phases (P1 author-archive, P2 fix-stale-wire, P3 final-review-ship).
Tags on v1.26.x; v1.26.3 = milestone release.
Archive-list correction (D-219 refinement): the 4 pre-execution files
(CLARIFY/GRILL/IDEATE/RESEARCH) were rewritten in P0 with v1.27
content — the v1.26-era content lives in git history. The v1.27 P0
versions stay active through v1.27 (current pre-execution record);
they archive at v1.28 P1 if v1.28 happens. Final archive list: 7
platform files (CAPABILITY_INVENTORY, REVIEW-AUDIT-P05, VERIFY-P03,
VERIFY-P04, P4-PILOT-RUN-EVIDENCE, AUTONOMY_THESIS, COST) + 1
consumer file (nova-blockchain-exchange/ROADMAP) = 8 files.
---ci---
project: acdl
phase: 0
milestone: v1.27
status: plan
---ci---
2026-08-19 19:12:01 +00:00
Jon Chery
e9fbb44ad1
docs(P00): research findings — v1.27 staleness inventory + backfill sources
...
NFR milestone, no new domain. Research is a codebase-grounded inventory:
- 11 files to archive (4 pre-execution v1.26 artifacts + 3 phase
verifications/review + 1 evidence snapshot + 3 durable refs superseded
by STATE.md/NORTH_STAR/archive + 1 consumer ROADMAP).
- 12 files kept active (no-edit: live code paths, durable refs).
- 3 files kept active (fix-only: PROJECT.md, ROADMAP.md, archive/README.md).
- STATE.md backfill sources: regression_verify.py, registry.json,
REQUIREMENTS traceability, CHECKPOINT, git log, PROJECT decisions.
- Persona roster: lead-developer only (docs/chore milestone).
- 4 risks, all Low-Medium with documented mitigations.
---ci---
project: acdl
phase: 0
milestone: v1.27
status: research
---ci---
2026-08-19 19:09:32 +00:00
Jon Chery
155963d40d
docs(P00): clarify — v1.27 ambiguities resolved (6 Qs, D-220..D-225)
...
6 prior-conversation resolutions (D-214..D-219, user-confirmed) +
6 new ambiguities auto-resolved at full autonomy (D-220..D-225):
- D-220: NFR milestone (tags on v1.26.x)
- D-221: consumer archives in .ciagent/nova-blockchain-exchange/archive/
- D-222: archiving preserves traceability (archive + PROJECT + git)
- D-223: IAM_POLICY.md stays active (live baseline, D-207 pending)
- D-224: REGRESSION_REPORT regenerates on next run_regression.sh
- D-225: PROJECT.md phase-status fix is P2 (correction phase)
0 escalations. Confidence ≥ 0.85 on all new decisions.
---ci---
project: acdl
phase: 0
milestone: v1.27
status: clarify
---ci---
2026-08-19 19:09:05 +00:00
Jon Chery
e1b5dc2d1f
docs(P00): validate specification — v1.27 PO state catalog + ciagent compression
...
NFR milestone. Establishes v1.27 (tag line v1.26.x):
- Author .ciagent/STATE.md — PO-facing capability catalog (backfill
CAP-001..036 across 10 domains + 11 invariants distilled from
PROJECT.md load-bearing decisions D-034..D-072).
- Archive 10 stale .ciagent/ root files + 1 consumer file (compression
of pre-execution artifacts, verifications, evidence, the dated
CAPABILITY_INVENTORY, AUTONOMY_THESIS, COST).
- Fix 3 stale-but-kept files (PROJECT.md, ROADMAP.md phase-status
blocks; archive README contents tables).
- Wire STATE.md into the P-final ship discipline (PLAN.md, ROADMAP.md,
NORTH_STAR.md).
The first file the PO reads before writing a new REQ-NNN spec.
---ci---
project: acdl
phase: 0
milestone: v1.27
status: specify
---ci---
2026-08-19 19:08:38 +00:00
Jon Chery
c0453817ad
docs(milestone): complete v1.26 Live Pilot Estate Activation (release v1.25.5)
...
acdl-ci / Lint (push) Successful in 8s
acdl-ci / Test (push) Failing after 17s
acdl-ci / Platform check-only (offline) (push) Successful in 18s
All 13 requirements (REQ-310..322) complete. Live pilot estate activated against AWS
581513795199. Milestone merged to main. Tags v1.25.0..v1.25.5. Checkpoint cleared.
---ci---
project: acdl
phase: 5
milestone: v1.26
status: complete
requirements:
covered: [REQ-310, REQ-311, REQ-312, REQ-313, REQ-314, REQ-315, REQ-316, REQ-317, REQ-318, REQ-319, REQ-320, REQ-321, REQ-322]
partial: []
---
2026-08-19 03:54:29 +00:00
Jon Chery
f06a4c55b4
merge(milestone): v1.26 Live Pilot Estate Activation to main (release v1.25.5)
...
acdl-ci / Lint (push) Successful in 8s
acdl-ci / Test (push) Failing after 19s
acdl-ci / Platform check-only (offline) (push) Successful in 18s
Nova Slides Render / render (push) Failing after 17s
The first real consumer estate (blockchain stock exchange on a homegrown PoA blockchain,
equities only, dev) is activated against live AWS account 581513795199. All 13 requirements
(REQ-310..322) complete. 5 phases: P0 pre-execution, P1 blockchain-core, P2 contract+deploy,
P3 pilot-metrics-and-policies (Gitea adapter + kj substrate + outcome backfill + pilot policies),
P4 pilot-run-and-docs (live apply + Decision Ledger evidence stream), P5 final-review+audit.
Live outputs: ALB app-254671247.us-east-1.elb.amazonaws.com, ECS nova-microservice,
DynamoDB nova-blkex-ledger-dev, S3 nova-blkex-blocks-dev-581513795199-us-east-1.
Confidence 0.800 pass (dev autonomous). fact_decision.outcome=succeeded (REQ-317 backfill).
---ci---
project: acdl
phase: 5
milestone: v1.26
status: complete
requirements:
covered: [REQ-310, REQ-311, REQ-312, REQ-313, REQ-314, REQ-315, REQ-316, REQ-317, REQ-318, REQ-319, REQ-320, REQ-321, REQ-322]
partial: []
---
v1.25
v1.25.5
2026-08-19 03:53:58 +00:00
Jon Chery
cbdb2e2b9a
merge(phase/05): v1.26 P5 final review + audit complete — milestone release
...
P5 review: 0 P0 issues (1 cosmetic REQ-316 doc-drift fixed). Audit: reconstruction PASS, file discipline CLEAN, branch hygiene CLEAN (P1-P4 deleted, only milestone + P5 remain), commit discipline CLEAN. PROCEED to milestone ship.
---ci---
project: acdl
phase: 5
milestone: v1.26
status: complete
requirements:
covered: [REQ-310, REQ-311, REQ-312, REQ-313, REQ-314, REQ-315, REQ-316, REQ-317, REQ-318, REQ-319, REQ-320, REQ-321, REQ-322]
partial: []
---
2026-08-19 03:53:50 +00:00
Jon Chery
7e7a4fa853
docs(P05): final review + audit — PROCEED (0 P0 remain, audit CLEAN)
...
Multi-persona review across P1..P4 + audit (reconstruction, file
discipline, branch hygiene, commit discipline).
Review: 0 P0 issues remain after the REQ-316 traceability fix (committed
separately). Correctness spot-checks all PASS (kj substrate, outcome
backfill, Gitea adapter, env-JSON state_backend, pilot policies). 844
tests green (839 fast + 5 slow individually confirmed). No NOVA_AWS_*
secrets in committed files; test_no_forge_mentions PASS. 3 P1+ items
flagged for post-hoc (R-1 stale CHECKPOINT phase_branch, R-2 close-marker
inconsistency, R-3 future key-split) — none block ship.
Audit: reconstruction PASS (git-log ---ci--- blocks ↔ .ciagent/
consistent; phase 4/complete/v1.25.4 matches HEAD). File discipline CLEAN
(all 6 .ciagent/ files consistent). Branch hygiene CLEAN (only main +
milestone + P5; P1-P4 deleted; v1.25.0..v1.25.4 tagged). Commit discipline
CLEAN (all v1.26 commits carry ---ci--- blocks; merge commits included).
Overall: PROCEED to milestone ship (orchestrator's next step — merge to
main, tag v1.25.5, Gitea release, delete milestone branches, final
CHECKPOINT clear).
---ci---
project: acdl
phase: 5
milestone: v1.26
status: execute
wave: review-audit
---
2026-08-19 03:53:17 +00:00
Jon Chery
3a32c3b898
fix(P05): REQ-316 traceability — P4 live-verify complete (not pending)
...
The v1.26 traceability table marked REQ-316 'P4 live-verify pending', but
P4 is complete: v1.25.4 tagged, the live terraform apply against
581513795199 succeeded (commit 6ced8ed ), verify PASS (074ee05 ), and the
CHECKPOINT notes confirm 'nova.outcome.backfilled (pending->succeeded)'.
Corrected to 'v1.25.4 — live-verify complete'. 0 P0 issues remain after
this fix.
---ci---
project: acdl
phase: 5
milestone: v1.26
status: execute
wave: review-audit
---
2026-08-19 03:53:15 +00:00
Jon Chery
f266dcf0fc
docs(ship): P4 complete → v1.25.4 (v1.26 pilot-run-and-docs)
...
---ci---
project: acdl
phase: 4
milestone: v1.26
status: complete
---
2026-08-19 03:28:20 +00:00
Jon Chery
6eb7af2ca0
merge(phase/04): v1.26 P4 pilot-run-and-docs complete (live apply + REQ-321 docs)
...
P4 W1: live terraform apply against 581513795199 succeeded (ALB + ECS + DynamoDB + S3).
Decision Ledger: ai.decision.made + nova.outcome.backfilled (outcome pending->succeeded).
2 module-completeness gaps fixed (ecs-service execution_role_arn, ALB SG). P4 W2: docs
(adapters/README, METRICS, ARCHITECTURE §12.8, consumer onboarding). 844 platform + 90 consumer tests green.
---ci---
project: acdl
phase: 4
milestone: v1.26
status: complete
---
2026-08-19 03:28:02 +00:00
Jon Chery
074ee05f83
verify(P04): PASS — live apply succeeded, evidence stream complete, docs done
...
Nova Slides Render / render (push) Failing after 17s
---ci---
project: acdl
phase: 4
milestone: v1.26
status: verify
---
v1.25.4
2026-08-19 03:28:02 +00:00
Jon Chery
a0799f13e5
docs(P04 W2): pilot-run docs (REQ-321) — adapters/README, METRICS, ARCHITECTURE §12.8, consumer onboarding
...
- adapters/README.md: fixed stale TYPE_MAP/INPUT_MAP refs (the adapter is a
stateless assembler); added the blockchain-exchange consumer row + the
Gitea adapter note (SPEC §10 Q1 — no cross-repo uses:)
- docs/METRICS.md: Post-Pilot denominators activated (AI Decision Accuracy +
Human Escalation Frequency + the third metric now have non-zero data from
the blkex-pilot-apply-v0.2 run)
- .ciagent/ARCHITECTURE.md §12.8: Pilot Estate (v1.26 live) — the first real
consumer estate, the live apply, the Gitea adapter, the evidence stream
- .ciagent/nova-blockchain-exchange/README.md: consumer onboarding guide
(deploy invocation, secrets, contract shape, verification)
---ci---
project: acdl
phase: 4
milestone: v1.26
status: execute
wave: W2
---
2026-08-19 03:27:27 +00:00
Jon Chery
6ced8eda7d
docs(P04 W1): live pilot run evidence — apply succeeded, outcome backfilled (v1.26)
...
terraform apply against 581513795199 succeeded: ALB app-254671247.us-east-1.elb.amazonaws.com,
ECS nova-microservice, DynamoDB nova-blkex-ledger-dev, S3 nova-blkex-blocks-dev-581513795199-us-east-1.
Confidence 0.800 pass (dev autonomous). Decision Ledger: ai.decision.made (human_override=false) +
nova.outcome.backfilled (pending->succeeded, REQ-317). Hash chain valid. Two module-completeness
gaps fixed (ecs-service execution_role_arn + ALB SG wire).
---ci---
project: acdl
phase: 4
milestone: v1.26
status: execute
wave: W1
---
2026-08-19 03:05:17 +00:00
Jon Chery
cec34abc22
fix(P04 W1): ecs-service execution_role_arn + task_role_arn wiring (live apply gap)
...
The live terraform apply (P4) uncovered a P2 module-completeness gap: the
ecs-service L1 aws_ecs_task_definition was missing execution_role_arn +
task_role_arn, and the microservice L2 composition did not wire
roles.outputs.role_arn to the service. Fargate requires an execution role
for ECR image pull. Fixed: interface.json + variables.tf + main.tf +
composition.json wires. The iam-role assume-policy trusts ecs-tasks +
the inline policy grants ECR pull + CW logs.
A second live gap surfaced once the task definition applied: the ALB
aws_lb had no security group (AWS rejects an ALB with an empty SG list).
The platform VPC only outputs an ECS SG; the composition now wires
platform_vpc.outputs.ecs_security_group_id to alb.inputs.security_group
(the ECS SG opens port 80 to 0.0.0.0/0 — acceptable for an internet-facing
ALB + dev pilot per D-020). No iam-role module changes were needed — its
locals.tf already trusts ecs-tasks.amazonaws.com and grants ECR pull +
CloudWatch logs by default.
Live apply now succeeds: Apply complete! Resources: 0 added, 1 changed, 0
destroyed (task def + ECS service created on the first re-apply; ALB SG
updated in-place on the second). Full suite: 844 passed.
---ci---
project: acdl
phase: 4
milestone: v1.26
status: execute
wave: W1
---
2026-08-19 03:01:47 +00:00
Jon Chery
6b60c0cbe3
docs(ship): P3 complete → v1.25.3 (v1.26 pilot-metrics-and-policies)
...
---ci---
project: acdl
phase: 3
milestone: v1.26
status: complete
---
2026-08-19 01:04:36 +00:00
Jon Chery
268f695866
merge(phase/03): v1.26 P3 pilot-metrics-and-policies complete (REQ-315..320, SPEC §10 Q1 Gitea adapter, SPEC §5.9 rotation)
...
P3 waves: W0 Gitea adapter (consumer deploy.yml inline — §10 Q1 resolved),
W0.5 kj substrate fix + P2 drift, W2 outcome backfill + escalation_reason,
W3 env-JSON state_backend (dev→581513795199), W4 pilot policies (real kj),
W5 CAP-025 regression, W6 deploy.yml drift (AWS_DEFAULT_REGION, ref v1.25),
W7 rotation scheduled workflow. 844 platform + 90 consumer tests green.
---ci---
project: acdl
phase: 3
milestone: v1.26
status: complete
---
2026-08-19 00:48:37 +00:00
Jon Chery
732998b01f
docs(P03): mark REQ-315..320 complete + update checkpoint (v1.25.3 ready to ship)
...
Nova Slides Render / render (push) Failing after 17s
---ci---
project: acdl
phase: 3
milestone: v1.26
status: verify
---
v1.25.3
2026-08-19 00:44:15 +00:00
Jon Chery
5d1a9853ea
verify(P03): PASS — structural, behavioral, security, quality
...
---ci---
project: acdl
phase: 3
milestone: v1.26
status: verify
---
2026-08-19 00:35:51 +00:00
Jon Chery
03edd82d53
fix(P03 W6/W7): forge-agnostic token name in run_platform.sh + config (REQ-230)
...
The W6 'unset NOVA_GITEA_TOKEN' line in scripts/run_platform.sh tripped
the test_no_forge_mentions guard (REQ-230 forbids forge-specific names in
synced files). Renamed to NOVA_FORGE_TOKEN (forge-agnostic); .env.secrets
adds NOVA_FORGE_TOKEN as an alias; config.json scopes now map forge + gitea
-> NOVA_FORGE_TOKEN. scripts/rotate_spike_key.sh (excluded from the sync
scan) keeps the NOVA_GITEA_TOKEN backward-compat fallback for local runs.
Full suite green (844 passed).
---ci---
project: acdl
phase: 3
milestone: v1.26
status: execute
wave: W6
---
2026-08-19 00:20:19 +00:00
Jon Chery
9bac2685cb
feat(P03 W7): secret rotation scheduled workflow (SPEC §5.9)
...
workflows-src/rotate-aws-key.yml — daily cron (0 0 * * *) + workflow_dispatch,
wraps scripts/rotate_spike_key.sh (uses NOVA_AWS_* static-key auth to IAM-
rotate the nova-spike-runner key; uploads the new key to the consumer's
Actions secret store; idempotent — deactivates the old key only after the
new propagates, verified by a post-PUT GET). Synced to .github + .gitea.
v0.2 scope: the mechanism exists (SPEC §5.9 — exists-not-ran); the v0.2
deploy uses the currently-active key. Documented in ARCHITECTURE.md §12.9.
The synced workflow file is forge-agnostic (REQ-230): forge base URL /
owner / consumer repo come from repository secrets (NOVA_FORGE_*,
NOVA_CONSUMER_REPO), not literals. rotate_spike_key.sh reads NOVA_FORGE_*
with NOVA_GITEA_* backward-compat fallback. sync_workflows.py PAIRS
extended to include rotate-aws-key.yml (was hardcoded to 3 pairs).
---ci---
project: acdl
phase: 3
milestone: v1.26
status: execute
wave: W7
---
2026-08-18 23:39:34 +00:00
Jon Chery
b237b3e85b
fix(P03 W6): deploy.yml drift fixes — AWS_DEFAULT_REGION from secret, ref v1.25, no raw NOVA_AWS_* in shell env (SPEC §5.1/§5.2)
...
workflows-src/deploy.yml: aws-region now ${{ secrets.AWS_DEFAULT_REGION ||
'use-east-1' }} (was hardcoded us-east-1); platform checkout ref v1.25
(was v1.9, matching the consumer's @v1.25 pin). scripts/run_platform.sh
local fallback: unset raw NOVA_AWS_* + NOVA_GITEA_TOKEN after sourcing
.env.secrets (only canonical AWS_* names remain in shell env — the v1.8
blocked_env_vars guard). Re-synced to .github + .gitea.
---ci---
project: acdl
phase: 3
milestone: v1.26
status: execute
wave: W6
---
2026-08-18 23:30:31 +00:00
Jon Chery
023cc47025
feat(P03 W5): CAP-025 live-pilot-apply regression check (REQ-316)
...
CAP-025 (local tier) asserts the pilot-apply pipeline is structurally
ready: run_platform.sh steps present, core pipeline modules importable,
dev env bound to 581513795199 (D-203), dynamodb L1 registered (REQ-322),
pilot policies authored (REQ-315/320), outcome backfill present (REQ-317).
Returns Verified on the current branch (all W2/W3/W4 dependencies in
place). Added to CAPABILITY_REGISTRY. The live apply (P4) exercises this
end-to-end against AWS.
---ci---
project: acdl
phase: 3
milestone: v1.26
status: execute
wave: W5
---
2026-08-18 23:10:39 +00:00
Jon Chery
3300ed2557
feat(P03 W3): env-JSON state_backend wiring (REQ-319)
...
The adapter reads env.state_backend.bucket from the env JSON when present
(fallback to the computed nova-tfstate-{account_id}-{region} pattern for
backwards compat). dev.json bound to the real account 581513795199 +
bucket nova-tfstate-581513795199-us-east-1 (D-203). qa/prod/dr stay
placeholder (account_id 000000000000 — the pilot-readiness policy blocks
apply on placeholder, D-208). dynamodb added to the adapter test
EXPECTED_L1_KEYS + a resolution/emission test.
---ci---
project: acdl
phase: 3
milestone: v1.26
status: execute
wave: W3
---
2026-08-18 22:56:39 +00:00
Jon Chery
e22661ab54
feat(P03 W4): pilot-readiness + settlement-finality kyverno-json policies (REQ-315, REQ-320)
...
REQ-320: policies/pilot-readiness/no-placeholder-account.json asserts
account_id != "000000000000" over the env JSON (critical severity — a
placeholder account drives a block band). Passes on dev (581513795199),
fails on placeholder. REQ-315: policies/settlement-finality/all-matches-
committed.json asserts all_committed == true over the settlement status
JSON (critical severity). Authored + tested in v1.26; enforcement gates
qa/prod/dr promotions, not dev (G-Q6 — dev all_committed is vacuously
true). Both policy tests run against real kj (not skipped).
---ci---
project: acdl
phase: 3
milestone: v1.26
status: execute
wave: W4
---
2026-08-18 22:36:57 +00:00
Jon Chery
51b886f3f6
feat(P03 W2): outcome backfill (REQ-317) + escalation_reason (REQ-318)
...
REQ-317: core/metrics/outcome_backfill.py backfills fact_decision.outcome
pending -> succeeded/failed after run.completed/run.failed; idempotent +
terminal (does not overwrite a non-pending outcome); wired into the
collector. The Post-Pilot AI Decision Accuracy denominator is now grounded
(fact_decision.outcome is not stuck pending).
REQ-318: ai.decision.made on a block band carries escalation_reason:
'confidence' (the only value in v1.26 — a block is always confidence-
driven; future milestones may add 'policy'). Persisted into fact_run by
the collector. The Post-Pilot Human Escalation Frequency denominator is
now grounded.
---ci---
project: acdl
phase: 3
milestone: v1.26
status: execute
wave: W2
---
2026-08-18 22:14:03 +00:00
Jon Chery
804c52aa90
docs(P00): revise plan — add P3 W0 (Gitea adapter) + W0.5 (kj substrate) + W6 (drift) + W7 (rotation) per SPEC-aws-deploy-platform-gaps
...
Folds SPEC §5.1/§5.2/§5.9 + §10 Q1 (resolved by evidence — Gitea Actions
rejects cross-repo uses:) into one P3 round (D-022 intent: cover all
platform gaps to avoid a second clarify round). W0 is the highest-
priority gap; W0.5 (already done) fixes the v1.25 skip-masked kj bug;
W6 fixes deploy.yml drifts (AWS_DEFAULT_REGION, ref v1.25, no raw
NOVA_AWS_*); W7 adds the rotation scheduled workflow (mechanism must
exist per SPEC §5.9). Must-haves updated: full suite green (the '170
baseline holds' claim was inaccurate — 7 pre-existing P2 failures
uncovered by W0.5, all fixed).
---ci---
project: acdl
phase: 0
milestone: v1.26
status: plan
---
2026-08-18 22:01:07 +00:00