Files
acdl/.ciagent/PLAN.md
T
Jon Chery d103a37419 docs(P14): plan-as-execute + verify (v1.2.4)
---ci---
project: acdl
phase: 14
milestone: v1.2
status: verify
verdict: VERIFIED
requirements:
  covered: [REQ-32]
---/ci---

Phase 14 plan-as-execute + verify. scripts/verify_phase14.sh green.
l2-microservice composition (6 L1s, 2 wire kinds); contract schema
extended (inputs allow objects + healthcheck); resolver extended
(array-form wires, child->child refs, multi-resource L1 expansion);
adapter extended (ref: interpolation translation). v1.2 IR: 11 resources.
v1.1 S3 regression byte-identical. Ready to ship v1.2.4.
2026-07-21 21:12:17 +00:00

2.0 KiB

phase, name, milestone, requirements, type, branch
phase name milestone requirements type branch
14 l2-microservice-and-contract-schema v1.2
REQ-32
feat phase/14-l2-microservice-and-contract-schema

Phase 14 — l2-microservice-and-contract-schema (v1.2) PLAN

Goal

Author l2-microservice thin-composition (6 ECS L1s, depth ≤ 5), extend the contract schema for microservice inputs, extend the resolver for child→child wiring, and verify contract→IR resolution yields a complete target stack.

Tasks

T-14.1 — l2-microservice composition

Create modules-ir/l2/l2-microservice/composition.json + README.md. Register in modules-ir/registry.json at 1.0.0. 6 children: vpc, cluster, ecr, roles, alb, service. Wires: contract→child passthrough (name, cidr, azs, image, port, cpu, memory, env, protocol) + child→child refs (cluster.cluster_arn→service.cluster_arn, vpc.subnet_ids→service.subnets + alb.subnets, alb.target_group_arn→service.lb_target_group_arn, roles.role_arn→service.security_group). Wire format: "source": "child:<id>.<output>" for child→child.

T-14.2 — Contract schema extension

Extend schemas/contract.schema.json: inputs.additionalProperties allows objects too (for env map + healthcheck). Add optional healthcheck top-level field (object). Create contracts/microservice.yaml (dev, l2-microservice, inputs: name/cidr/azs/image/port/cpu/memory).

T-14.3 — Resolver child→child wiring

Extend acdl_platform/contract_resolver.py: second pass for wires with "source": "child:<id>.<output>" → emit "ref:<id>.<output>" string in the child's inputs. Handle multi-resource L1s: iterate the L1's resources array, emit one IR resource per entry (prefix id with child id). Adapter translates ref:X.Y${<tf_type>.<X>.<attr>}.

T-14.4 — Verify

contracts/microservice.yaml → resolver → IR (all 6 L1s' resources) → adapter → terraform validate. v1.1 spike regression. scripts/verify_phase14.sh.

Ship

Merge → main (--no-ff). Tag v1.2.4.