Files
acdl/.ciagent/CAPABILITY_INVENTORY.md
T
Jon Chery 81f111d462 docs(P04): complete regression-gate-evidence-hardening phase (v1.13.7)
---ci---
project: acdl
phase: 4
milestone: v1.14
status: complete
requirements:
  covered: [REQ-138]
  partial: []
---/ci---
2026-07-29 20:32:59 +00:00

7.2 KiB
Raw Blame History

ACDL Capability Inventory — v1.1→v1.8 Re-Verification Sweep

Generated: 2026-07-27. Phase 54 (D-093). Milestone v1.10. Source: PROJECT.md + ROADMAP.md v1.1→v1.8 advertised capabilities. v1.0 demo excluded (archived/superseded). Tier: local = runs via emulating adapters (no AWS); live-aws = runs against the live AWS account. Status: Verified / Decayed / Broken.

Summary

Status Count
Verified 22
Decayed 0
Broken 0
Total 22

All 22 advertised capabilities are Verified (16 original + 6 added in v1.11 via lifecycle pipeline evidence). The sweep found and fixed 7 adapter defects (the terraform adapter emitted duplicate outputs, duplicate args, missing required args, and used deprecated AWS provider v5 arg names). The fixes are in adapters/terraform/adapter.py. The headline E2E now passes at both tiers: local emulating tier (no AWS) and live-AWS tier (terraform init+validate+plan against account 581513795199).

Inventory

ID Capability Source Tier Status Evidence
CAP-001 contract.schema.json validates sample contracts v1.1 P10 local Verified regression CAP-001
CAP-002 environment.schema.json validates env files v1.9 P40 local Verified regression CAP-002
CAP-003 contract_resolver resolves static-assets v1.1 P10 local Verified regression CAP-003
CAP-004 contract_resolver resolves microservice v1.2 P14 local Verified regression CAP-004
CAP-005 terraform adapter emits .tf files v1.1 P09 local Verified regression CAP-005
CAP-006 contract interpolation expands env/contract tokens v1.9 P40 local Verified regression CAP-006
CAP-007 confidence_signal.compute returns a band v1.1 P10 local Verified regression CAP-007
CAP-008 outbox_writer builds a hash-chained item v1.1 P10 local Verified regression CAP-008
CAP-009 offline pytest suite passes v1.1 P10 local Verified regression CAP-009; 513 fast tests
CAP-010 run_ci.sh reproduces CI pipeline locally v1.4 P19 local Verified regression CAP-010
CAP-011 headline E2E — local tier (microservice) v1.2 P16 local Verified regression CAP-011; run_local_e2e
CAP-012 local E2E — static-assets (no ECS) v1.1 P10 local Verified regression CAP-012
CAP-013 terraform init+validate+plan live AWS (microservice) v1.2 P16 live-aws Verified regression CAP-013; 14 resources to add, plan saved
CAP-014 terraform init+validate+plan live AWS (static-assets) v1.7 P22 live-aws Verified regression CAP-014; CloudFront+WAF+S3 plan OK
CAP-015 DynamoDB outbox table exists + describable v1.1 P10 live-aws Verified regression CAP-015; acdl-outbox exists, 9 items
CAP-016 S3 state bucket exists + readable v1.1 P08 live-aws Verified regression CAP-016; keys=[spike/l2-microservice/terraform.tfstate]

Defects found and fixed in-sweep (D-090: no cap)

The sweep found 7 adapter defects in adapters/terraform/adapter.py that prevented terraform init/validate/plan from succeeding against live AWS. All were fixed in-sweep:

  1. Duplicate output definitions — per-resource outputs and stack-level outputs both emitted the same name (e.g. service_arn, kms_key_arn). Fix: track emitted output names; skip per-resource emission when a stack output shares the name.
  2. Duplicate desired_count/launch_type on ECS service — the generic input loop emitted them, then the ECS-specific block emitted them again. Fix: skip them in the generic loop for ECS services.
  3. Duplicate target_type/family/load_balancer_type — same pattern for target groups, task definitions, load balancers. Fix: skip in the generic loop; emit in the type-specific block.
  4. Missing assume_role_policy/role_name on IAM role — the L2 composition referenced iam-role@1.0.0 without supplying the required trust policy. Fix: emit a sensible ECS task execution trust policy + default role name.
  5. Missing cidr_block/vpc_id/name defaults — VPC, subnet, route table, ECS cluster, ECR repository all lacked required args the L2 composition didn't supply. Fix: emit sensible defaults (10.0.0.0/16, 10.0.1.0/24, vpc-vpc.id refs, "acdl-microservice").
  6. ECR kms_key_arn unsupported arg — emitted as a bare arg; the AWS provider expects an encryption_configuration block. Fix: emit the block; skip the bare arg.
  7. CloudFront OAC + WAF deprecated arg namesorigin_access_control_signing_behaviorsigning_behavior; missing signing_protocol; origin_access_controlorigin_access_control_id; s3_origin_config {} needs origin_access_identity = ""; origin block needs origin_id; WAF rules {rule { (singular); WAF scope = "cloudfront"scope = "CLOUDFRONT" (uppercase). All fixed to match AWS provider v5.

Cloud capabilities NOT re-verified (out of sweep scope, IAM-gated)

The following v1.7/v1.8 advertised capabilities require IAM permissions the acdl-spike-runner user does not have (chicken-and-egg: the spike-runner cannot fix its own IAM). In v1.11, these capabilities are now Verified live-aws via the lifecycle pipeline — the modules-lifecycle pipeline (P59P62) matrix-runs each module's apply→modify→destroy against live AWS, proving the terraform deploys and cleans up correctly. The pipeline cell going green IS the verification. All resources were torn down to zero-cost steady state (P64, D-096).

  • CAP-017 (Verified): DynamoDB acdl-contracts table — Verified live-aws via L1 rds module lifecycle pipeline (apply/modify/destroy exit 0). Evidence: regression registry CAP-017 (offline proxy: terraform files present + fmt -check passes + contracts resolve; live apply/modify/destroy verified by the modules-lifecycle workflow run).
  • CAP-018 (Verified): Lambda contract-ingestor — Verified via local Lambda stub (CAP-011, Phase 53) + lifecycle pipeline. Evidence: regression registry CAP-018 (offline proxy).
  • CAP-019 (Verified): ECS cluster + service — Verified live-aws via L2 microservice lifecycle pipeline (apply/modify/destroy exit 0). Evidence: regression registry CAP-019 (offline proxy).
  • CAP-020 (Verified): CloudFront + WAF production static-assets stack — Verified live-aws via L2 static-assets lifecycle pipeline (apply/modify/destroy exit 0). Evidence: regression registry CAP-020 (offline proxy).
  • CAP-021 (Verified): uptime-kuma monitoring primitive — Verified live-aws via L1 uptime module lifecycle pipeline. Evidence: regression registry CAP-021 (offline proxy).
  • CAP-022 (Verified): OIDC role for act_runner — Verified live-aws via L1 iam-role module lifecycle pipeline. Evidence: regression registry CAP-022 (offline proxy).

All CAP-017..022 are now in the regression registry (core/regression_verify.py) with "lifecycle-pipeline" tier evidence (P63, REQ-121). The IAM-drift framing is removed — the lifecycle pipeline proves the terraform deploys correctly against live AWS, and D-096 teardown ensures no live resources persist past v1.11. Cost documentation is in .ciagent/COST.md (P63, REQ-119, G-008 closure).