RESEARCH stage. Verified the technical assumptions behind the 13-phase
v1.11 restart plan against the live codebase (branched off v1.10.2).
Findings:
- Adapter monolith audit: adapters/terraform/adapter.py is 918 lines
with 3 constant tables (TYPE_MAP/INPUT_MAP/OUTPUT_MAP) that duplicate
what interface.json already declares, plus 39 type-specific branches
across 18 stack types carrying nested HCL blocks + hardcoded defaults
(CIDR, assume_role_policy JSON, ECR/logs inline policy, Fargate
requires_compatibilities, assign_public_ip, listener/target ports,
security group emission). STANDARDS.md §8 blessed this drift as the
intended design — the standards doc itself must be rewritten (P56a).
- State-key root cause of the 4-VPC bug: adapter.py:664,676 emits
spike/{stack_name}/terraform.tfstate where stack_name = contract.id;
all 5 microservice contracts share id 'msvc' but differ in
environment (dev/qa/prod/dr); the state key does NOT include the
environment, so all 4 env contracts collide on spike/msvc/terraform.tfstate.
Combined with verify_deploy_microservice.py running terraform init
-reconfigure in a fresh temp dir each time, each run created a fresh
VPC. Two root causes: (1) per-contract state keys with no VPC sharing,
(2) non-deterministic state keys across environments. D-105 + D-106 +
D-101 correct all three.
- Per-module terraform module design: documented the
versions/variables/locals/main/outputs.tf layout for s3, vpc, ecs-service
and how the stateless adapter assembles them via registry.json →
terraform_dir → module-instantiation blocks + ref wiring.
- Existing pipeline architecture: run_platform.sh line 287 runs terraform
plan only (never apply/destroy); the --apply/--destroy lifecycle modes
must be ADDED (P57). Byte-identical Gitea+GitHub convention documented.
PERSONAS.md updated for v1.11:
- Deactivated lambda-engineer, platform-engineer, security-engineer,
frontend-engineer (no per-module Python this milestone).
- Reactivated data-engineer (owns terraform/ + per-module terraform
subdirs — the heaviest v1.11 work).
- Kept backend-engineer (adapter/resolver), general (pipelines/workflows).
- Territory enforcement: warn (co-authoring expected on adapter +
run_platform.sh boundary).
- Domain priority: data → backend → general.
6 assumptions logged (A-1.1..A-5.1), all >= 0.6 confidence, none
escalated.
---ci---
project: acdl
phase: 0
milestone: v1.11
status: research
---/ci---
9 requirements implemented across presentation decks and project docs:
1. DX closing slide: added 'Infrastructure as a utility, not a craft' bullet
to convey the full vision (infrastructure consumed, not maintained;
platform compounds value over time).
2. PW Problem slide: 'moving a merged change' → 'promoting a change'.
3. PW Problem slide: added 'Red tape' and 'Scalability without increasing
headcount' bullets (4 frictions, not 2).
4. PW Roadmap slide: redesigned with side-by-side HTML table layout
(Testing | Planned), 16px font, no overflow.
5. PW deck: added new slide 'What This Platform Is — and Isn't' after North
Star (sovereign boundary, infrastructure as utility, 4 anti-goals).
PW deck now 16 slides (was 15).
6. Maturity nomenclature: 'Available today'/'shipped' → 'Testing' across
both decks + source markdown. New .testing badge (blue/teal #DBEAFE).
Roadmap title: 'Testing vs. Planned'. The platform has 0 consumer
adoption — 'shipped' was inaccurate.
7. Global: 'substrate' → 'engine' across entire project (88 matches, 30+
files including .ciagent/, docs/, modules/, adapters/, schemas/, code).
8. Presentation files only: 'forge' → 'VCS' / 'version control system'
(6 occurrences in 4 files). 'forge' retained in all technical docs and
code as the industry-standard term.
9. New .agentic badge (purple/violet #EDE9FE) appended to agentic features
in both decks: confidence signal, autonomous dev, pattern recognition,
dynamic module creation, citizen developer surface, auto-promotion.
Also: Change Request ID format changed from 'CR-2026-001' to 'CHG0678912'
across presentation files, consumer guide, and test fixtures.
HTML re-rendered. PPTX rendered for release upload.
---ci---
phase: 48
milestone: v1.9
status: complete
requirements:
covered: []
partial: []
---/ci---
Delete the consumer-repos/ directory (v1.2 artifact removed in v1.7).
Rewrite all .ciagent/ historical narrative references per D-048 to
describe the removal rather than referencing the directory as existing.
---ci---
project: acdl
phase: 27
milestone: v1.7
status: execute
---/ci---
---ci---
project: acdl
phase: 0
milestone: v1.6
status: audit
verdict: CLEAN (after fixes)
---/ci---
Audit found stale acdl_platform/ references in .ciagent/ files that
described the package by its pre-rename name. Fixed:
- REQUIREMENTS.md REQ-53: updated to reflect the actual core/ rename
(was 'platform/', the original target that shadows stdlib).
- ROADMAP.md overview line 315: acdl_platform/ -> core/ (platform/
shadows stdlib).
- ROADMAP.md phase 21 description + success criteria: platform/ -> core/
(already partially fixed during run; this completes it).
- ARCHITECTURE.md line 345-346: acdl_platform/*.py -> core/*.py.
- PERSONAS.md: all territory globs + typecheck command + co-ownership
references updated from acdl_platform/ to core/.
Historical references preserved (REQUIREMENTS REQ-29/30/32/36/39,
RESEARCH.md) — they record what existed at the time and must not be
rewritten.
Reconstruction: PASS (config.json v1.6, ROADMAP phase 21 complete
v1.6.0, REQUIREMENTS REQ-52..61 complete v1.6.0 — all match git log).
File discipline: PASS (config.json valid, PROJECT.md sections present,
ROADMAP phases match branches, ARCHITECTURE.md matches code structure).
Branch hygiene: PASS (phase/21 merged to main; no orphans).
Commit discipline: PASS (10/10 v1.6 commits have ---ci--- blocks; 0
escalations).
Squash merge of phase/05-evidence-ui-and-demo-dry-run; evidence-ui/index.html + run_demo.sh 4-act simulation + verify_phase05.sh; demo live at acdl-evidence raw URL.
---ci---
phase: 1
milestone: v1.0
status: research
research:
gitea_capabilities:
pages: not_supported
environments_api: not_supported
repository_dispatch: not_supported
workflow_call: supported
workflow_dispatch: supported
issues_opened: supported
workarounds:
- D-012 raw file URLs in place of Pages
- D-013 workflow_dispatch approval inputs in place of environments
- D-014 workflow_dispatch API in place of repository_dispatch
verification_toolchain:
typecheck: bash -n + python -m py_compile (no package.json)
test: per-phase scripts/verify_phaseNN.sh
build: no-op
---/ci---
ARCHITECTURE.md gains a Gitea API surface table and a branch-pinning rule.
PERSONAS.md is the canonical project-level persona roster: lead-developer
and backend-engineer always active; infra-stub-engineer custom persona owns
L1 stubs; data-engineer deactivated (no DB); frontend-engineer deactivated
until Phase 05.