5274bc48a9
Layer 1 (Structural): all 8 plan-referenced files exist; imports resolve;
no TODO/stub placeholders; all declared exports present. PASS.
Layer 2 (Behavioral): 518 tests pass (513 fast + 5 slow); REQ-112..115
all complete; regression gate 16/16 Verified. PASS.
Layer 3 (Security/STRIDE): all 6 threats low-severity; auto-accepted.
No creds logged; loopback-only binding; monkey-patches scoped to local
tier. PASS.
Layer 4 (Quality): 0 P0, 0 P1, 1 P2 (post-hoc: expand regression
registry to uptime-kuma + RDS stacks). Gate can't be bypassed; local
E2E can't mutate cloud; no injection vectors. PASS.
Verdict: VERIFY PASS. v1.10 ready to ship.
---ci---
project: acdl
phase: 0
milestone: v1.10
status: verify
requirements:
covered: [REQ-112, REQ-113, REQ-114, REQ-115]
partial: []
lessons:
- The regression gate (D-091) is the durable fix for the diff-scoped
VERIFY defect; it must run at every milestone completion to catch
capability decay before it hides behind docs-only NFR patches.
- Local emulating adapters (D-092) make the platform testable without
cloud credentials; the local tier is now the regression baseline.
- 6 IAM-gated cloud resources cannot be auto-verified (chicken-and-egg);
the terraform plan path is the strongest verification possible
without terraform apply (a deploy-class autonomy escalation).
---/ci---
142 lines
4.7 KiB
JSON
142 lines
4.7 KiB
JSON
{
|
|
"run_id": "regr-1785177468",
|
|
"run_at_utc": "2026-07-27T18:37:48Z",
|
|
"milestone": "v1.10",
|
|
"phase": 52,
|
|
"summary": {
|
|
"Verified": 16,
|
|
"Decayed": 0,
|
|
"Broken": 0
|
|
},
|
|
"passed": true,
|
|
"results": [
|
|
{
|
|
"capability_id": "CAP-001",
|
|
"name": "contract.schema.json validates sample contracts",
|
|
"status": "Verified",
|
|
"detail": "exit 0; 2 sample contracts validate",
|
|
"tier": "local",
|
|
"duration_ms": 245
|
|
},
|
|
{
|
|
"capability_id": "CAP-002",
|
|
"name": "environment.schema.json validates env files",
|
|
"status": "Verified",
|
|
"detail": "exit 0; env schema validates",
|
|
"tier": "local",
|
|
"duration_ms": 195
|
|
},
|
|
{
|
|
"capability_id": "CAP-003",
|
|
"name": "contract_resolver resolves static-assets",
|
|
"status": "Verified",
|
|
"detail": "exit 0; ",
|
|
"tier": "local",
|
|
"duration_ms": 260
|
|
},
|
|
{
|
|
"capability_id": "CAP-004",
|
|
"name": "contract_resolver resolves microservice",
|
|
"status": "Verified",
|
|
"detail": "exit 0; ",
|
|
"tier": "local",
|
|
"duration_ms": 264
|
|
},
|
|
{
|
|
"capability_id": "CAP-005",
|
|
"name": "terraform adapter emits .tf files",
|
|
"status": "Verified",
|
|
"detail": "exit 0; ",
|
|
"tier": "local",
|
|
"duration_ms": 332
|
|
},
|
|
{
|
|
"capability_id": "CAP-006",
|
|
"name": "contract interpolation expands env/contract tokens",
|
|
"status": "Verified",
|
|
"detail": "exit 0; interpolation ok",
|
|
"tier": "local",
|
|
"duration_ms": 216
|
|
},
|
|
{
|
|
"capability_id": "CAP-007",
|
|
"name": "confidence_signal.compute returns a band",
|
|
"status": "Verified",
|
|
"detail": "exit 0; confidence band=pass",
|
|
"tier": "local",
|
|
"duration_ms": 90
|
|
},
|
|
{
|
|
"capability_id": "CAP-008",
|
|
"name": "outbox_writer builds a hash-chained item",
|
|
"status": "Verified",
|
|
"detail": "exit 0; outbox hash chain ok",
|
|
"tier": "local",
|
|
"duration_ms": 326
|
|
},
|
|
{
|
|
"capability_id": "CAP-009",
|
|
"name": "offline pytest suite passes",
|
|
"status": "Verified",
|
|
"detail": "exit 0; [ 98%]\ntests/test_wiz_adapter_real_client.py ......... [100%]\n\n====================== 475 passed, 2 deselected in 14.26s ======================",
|
|
"tier": "local",
|
|
"duration_ms": 15683
|
|
},
|
|
{
|
|
"capability_id": "CAP-010",
|
|
"name": "run_ci.sh reproduces CI pipeline locally",
|
|
"status": "Verified",
|
|
"detail": "exit 0; resource(s))\n\n=== PLATFORM CHECK OK ===\ncontract -> resolver -> stack -> adapter -> structure validated (offline, no AWS)\ncheck-only: OK\n\n=== CI PIPELINE OK ===\n3 stages passed: lint, test, check-only",
|
|
"tier": "local",
|
|
"duration_ms": 19489
|
|
},
|
|
{
|
|
"capability_id": "CAP-011",
|
|
"name": "headline E2E runs against the local emulating tier (microservice)",
|
|
"status": "Verified",
|
|
"detail": "exit 0; al-emulator\",\n \"desired_count\": 1,\n \"running_count\": 1\n },\n \"outbox_dir\": \"/tmp/acdl_local_e2e_92qknwvi/outbox\",\n \"outbox_events\": 2,\n \"outbox_chain_verified\": true,\n \"lambda_status\": 200\n}",
|
|
"tier": "local",
|
|
"duration_ms": 1076
|
|
},
|
|
{
|
|
"capability_id": "CAP-012",
|
|
"name": "local E2E on the static-assets stack (no ECS)",
|
|
"status": "Verified",
|
|
"detail": "exit 0; acdl_local_e2e_ntp1b581/tf\",\n \"backend\": \"local\",\n \"ecs\": null,\n \"outbox_dir\": \"/tmp/acdl_local_e2e_ntp1b581/outbox\",\n \"outbox_events\": 2,\n \"outbox_chain_verified\": true,\n \"lambda_status\": 200\n}",
|
|
"tier": "local",
|
|
"duration_ms": 500
|
|
},
|
|
{
|
|
"capability_id": "CAP-013",
|
|
"name": "terraform init+validate+plan live AWS (microservice)",
|
|
"status": "Verified",
|
|
"detail": "terraform init+validate+plan OK (live AWS, microservice)",
|
|
"tier": "live-aws",
|
|
"duration_ms": 28354
|
|
},
|
|
{
|
|
"capability_id": "CAP-014",
|
|
"name": "terraform init+validate+plan live AWS (static-assets)",
|
|
"status": "Verified",
|
|
"detail": "terraform init+validate+plan OK (live AWS, static-assets)",
|
|
"tier": "live-aws",
|
|
"duration_ms": 32121
|
|
},
|
|
{
|
|
"capability_id": "CAP-015",
|
|
"name": "DynamoDB outbox table exists (live AWS)",
|
|
"status": "Verified",
|
|
"detail": "acdl-outbox exists, item_count=9",
|
|
"tier": "live-aws",
|
|
"duration_ms": 564
|
|
},
|
|
{
|
|
"capability_id": "CAP-016",
|
|
"name": "S3 state bucket exists + readable (live AWS)",
|
|
"status": "Verified",
|
|
"detail": "state bucket exists, keys=['spike/l2-microservice/terraform.tfstate']",
|
|
"tier": "live-aws",
|
|
"duration_ms": 434
|
|
}
|
|
]
|
|
} |