707d8a1e39480efa268fc60d94ec690d8bbbb3d2
5 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
0e6ecae26d |
feat(P4): Nova rebrand — AWS resource migration (REQ-163)
Rename all acdl-* AWS resources → nova-* across terraform (DynamoDB, Secrets Manager, Lambda, SNS, SG, KMS alias, ECS, ECR, IAM user/policy, state bucket, ALB, VPC/subnet names). Lambda default table names → nova-* (D-111). State bucket backend → nova-tfstate (-migrate-state documented). New docs/NOVA_AWS_MIGRATION.md runbook (staged migration + rollback). New scripts/migrate_dynamodb_data.py (scan+copy, dry-run default). acdl-deploy- → nova-deploy- role ARN in deploy workflows. Test fixtures updated; terraform validate + pytest + run_ci.sh PASS. ---ci--- project: acdl phase: 4 milestone: v1.15 status: execute ---/ci--- |
||
|
|
e5d8dadbd4 |
feat(P56): IAM re-bootstrap live step — managed policy + OIDC role
D-095 RESOLVED. User provided fresh root credentials in .env.secrets; the run resumed and applied the IAM baseline against account 581513795199. Live actions (2026-07-28): 1. Converted spike_runner_policy.json from an inline user policy to a customer-managed policy acdl-spike-runner-policy (ARN arn:aws:iam::581513795199:policy/acdl-spike-runner-policy). The extended policy (5917 bytes) exceeded the 2048-byte inline limit; the managed-policy path supports 6144 bytes per version + 5 versions. Inline policy deleted; managed policy attached. 2. Re-created the acdl-act-runner-role OIDC role (CAP-022 — was gone since Phase 08). Trust policy permits root assume until go-gitea/gitea#36988 merges real OIDC federation. Same managed policy attached so the runner inherits spike-runner-equivalent permissions, no long-lived key needed. Grant verification (all OK): - cloudfront:ListDistributions — OK (0 items, stacks not yet deployed) - wafv2:ListWebAcls(CLOUDFRONT) — OK - lambda:ListFunctions — OK - dynamodb:DescribeTable(acdl-contracts) — ResourceNotFound (table not yet created — Phase 57 applies it; grant works, no AccessDenied) - ce:GetCostAndUsage (7-day window) — OK (7 results — Phase 59 queries the full window) - secretsmanager:ListSecrets — OK - sns:ListTopics — OK - iam:GetRole(acdl-act-runner-role) — OK terraform/bootstrap/apply_iam_baseline.py — new idempotent script that records the live step (create/version managed policy, attach to user + role, delete leftover inline, ensure runner role). Re-ran to confirm idempotency (created v2, deleted v1). .ciagent/IAM_POLICY.md — updated with the managed-policy note, the OIDC role ARN + trust policy, the grant verification table, and the D-095 resolution note. terraform/bootstrap/README.md — added the v1.11 Phase 56 section documenting apply_iam_baseline.py. Baseline test: 15/15 pass. ---ci--- project: acdl phase: 56 milestone: v1.11 status: execute escalation: type: deploy id: D-095 status: resolved resolved_at: 2026-07-28 resolution: user provided fresh root credentials in .env.secrets; managed policy applied + OIDC role re-created ---/ci--- |
||
|
|
7585c828f0 |
docs(P48): vision gaps + badge system + substrate→engine + CR format + agentic tags
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--- |
||
|
|
f68f85c9fd |
review(v1.5): READY TO SHIP — multi-persona code review
---ci---
project: acdl
phase: 20
milestone: v1.5
status: review
verdict: READY TO SHIP
p0: 1 (fixed — contract path resolution in deploy workflow)
p1: 6 (flagged post-hoc)
---/ci---
Multi-persona review of v1.5 phase 20 (docs + reusable deploy workflow).
P0 (blocking) — AUTO-FIXED:
- C1: scripts/run_platform.sh contract path resolution broken in deploy
workflow. The reusable workflow invokes run_platform.sh from the consumer
workspace root with a relative contract path (.acdl/contract.yaml), but
run_platform.sh does `cd "$ROOT"` (platform repo) early, so the relative
path resolved against the platform repo and the pipeline could never run.
Fix (commit
|
||
|
|
1d5c4d2ae7 |
phase: 8, status: plan-as-execute, persona: platform-engineer+lead-developer, task: T-8.5..T-8.7
---ci--- project: acdl phase: 8 milestone: v1.1 status: plan-as-execute persona: platform-engineer+lead-developer task: [T-8.5, T-8.6, T-8.7] requirements.covered: [REQ-23] ---/ci--- Waves 3+4: rotation script + verify script + README + .gitignore. - T-8.5 (platform): scripts/rotate_spike_key.sh - boto3 with bootstrap root key from env (ACDL_BOOTSTRAP_AWS_*); creates new key for acdl-spike-runner, deactivates+deletes old, writes new to gitignored .env.secrets (chmod 600); idempotent (re-run ends with exactly 1 active key); optional Gitea secret upload if ACDL_GITEA_TOKEN set; does NOT rotate the root key (D-034 closure = manual user step). - T-8.6 (lead): scripts/verify_phase08.sh - loads rotated key from .env.secrets, asserts caller identity is acdl-spike-runner (not root), S3 bucket + DynamoDB table + IAM user + scoped policy with DenyEverythingElse all present, .env.secrets + .bootstrap_state.json gitignored. Uses heredoc python to avoid bash quoting issues. - T-8.7 (lead): terraform/bootstrap/README.md runbook (6 steps incl. manual D-034 root-key rotation) + .gitignore (.env.secrets + .bootstrap_state.json). Spike vs v1.2 boundary table. bash -n + gitignore checks pass. |