phase: 10, status: plan-as-execute, persona: platform-engineer, task: T-10.1..T-10.3+T-10.6

---ci---
project: acdl
phase: 10
milestone: v1.1
status: plan-as-execute
persona: platform-engineer
task: [T-10.1, T-10.2, T-10.3, T-10.6]
requirements.covered: [REQ-25]
---/ci---

Wave 1: L2 thin-composition + registry extension + adapter L2 handling.

- T-10.1: modules-ir/l2/l2-static-asset/composition.json (kind=l2, depth=1,
  one child l1-s3@1.0.0, wires passthrough).
- T-10.2: modules-ir/registry.json extended with l2-static-asset@1.0.0.
- T-10.3: modules-ir/l2/l2-static-asset/README.md (D-P10-1 doc).
- T-10.6: adapters/terraform/adapter.py - backend key now derived from
  the stack name (spike/<stack_name>/terraform.tfstate). The resources
  array handling is unchanged; a resolved L2 IR instance has the L1
  resource as resources[0], so the existing TYPE_MAP + resource emission
  handle it (the adapter is shape-driven, not kind-driven).
This commit is contained in:
Jon Chery
2026-07-21 19:33:31 +00:00
parent cc4c27c8ab
commit 8437a51c6c
4 changed files with 58 additions and 1 deletions
+3 -1
View File
@@ -82,6 +82,8 @@ def adapt(ir_instance, out_dir):
)
# --- terraform.tf: required_version + required_providers + S3 backend (no DynamoDB lock per D-P09-1) ---
# The backend key is derived from the stack name so l1 vs l2 spikes use separate state keys (D-P10-1).
stack_name = stack.get("name", "spike")
terraform_tf = (
'terraform {\n'
' required_version = ">= 1.9, < 1.10"\n'
@@ -93,7 +95,7 @@ def adapt(ir_instance, out_dir):
' }\n'
' backend "s3" {\n'
' bucket = "acdl-tfstate-581513795199-us-east-1"\n'
' key = "spike/l1-s3/terraform.tfstate"\n'
f' key = "spike/{stack_name}/terraform.tfstate"\n'
' region = "us-east-1"\n'
' }\n'
'}\n'