CIAgent Orchestrator
0789c27ca2
docs(P00): complete v1.29 pre-execution — SPECIFY+CLARIFY+RESEARCH+PLAN+GRILL+MVP/UX
...
Nova Slides Render / render (push) Failing after 14m27s
---ci---
project: acdl
phase: 0
milestone: v1.29
status: complete
---/ci---
2026-08-20 05:00:35 +00:00
Jon Chery
c629809d75
docs(P00): research findings — v1.28 CLI + identity layer (11 Qs, D-228 amended)
...
---ci---
project: acdl
phase: 0
milestone: v1.28
status: research
---/ci---
2026-08-19 22:05:24 +00:00
Jon Chery
e9fbb44ad1
docs(P00): research findings — v1.27 staleness inventory + backfill sources
...
NFR milestone, no new domain. Research is a codebase-grounded inventory:
- 11 files to archive (4 pre-execution v1.26 artifacts + 3 phase
verifications/review + 1 evidence snapshot + 3 durable refs superseded
by STATE.md/NORTH_STAR/archive + 1 consumer ROADMAP).
- 12 files kept active (no-edit: live code paths, durable refs).
- 3 files kept active (fix-only: PROJECT.md, ROADMAP.md, archive/README.md).
- STATE.md backfill sources: regression_verify.py, registry.json,
REQUIREMENTS traceability, CHECKPOINT, git log, PROJECT decisions.
- Persona roster: lead-developer only (docs/chore milestone).
- 4 risks, all Low-Medium with documented mitigations.
---ci---
project: acdl
phase: 0
milestone: v1.27
status: research
---ci---
2026-08-19 19:09:32 +00:00
Jon Chery
707d8a1e39
docs(P00): research findings — v1.26 (PoA blockchain, deploy model, DynamoDB gap, personas)
...
---ci---
project: acdl
phase: 0
milestone: v1.26
status: research
requirements: [REQ-310..REQ-322]
personas: [lead-developer, backend-engineer, data-engineer, policy-engineer, blockchain-engineer]
---/ci---
2026-08-12 21:16:42 +00:00
Jon Chery
f753353ad4
docs(P00): research findings — v1.25 kyverno-json engine surface, 4 policy targets, PolicyEngine swap boundary
...
RESEARCH.md: kyverno-json CLI (kj scan), ValidatingPolicy structure,
assertion trees + ~ modifier + JMESPath, output shape, severity-via-
annotation convention, 4 policy targets (contract/stack-IR/plan-JSON/
meta), PolicyEngine protocol + OPA-equivalent swap surface, latency
<1s (parallel with checkov), deterministic-not-AI tenet, ECS catalog
prior art, 5 logged assumptions (A1..A5).
PERSONAS.md: 4 active personas (lead-developer, backend-engineer,
new policy-engineer, data-engineer); frontend-engineer deactivated.
policy-engineer owns kyverno-json policies + engine translation +
STANDARDS.md policy-authoring section.
ARCHITECTURE.md §12.7: Policy Engine Registry — protocol, registry,
NullEngine fallback, engine enum reuse (D-116), defense-in-depth
critical-override (D-119), graceful degradation (D-120).
---ci---
project: acdl
phase: 0
milestone: v1.25
status: research
---/ci---
2026-08-12 18:09:12 +00:00
Jon Chery
5dc97673e5
docs(P00): research findings — v1.24 env-transition detect-and-destroy
...
---ci---
project: acdl
phase: 0
milestone: v1.24
status: research
---/ci---
2026-08-12 14:22:37 +00:00
Jon Chery
f496dd9c24
docs(P00): research — v1.23 Nova Deck Cleanup & Python PPTX
...
10 findings grounding the v1.23 milestone plan:
- Marp default theme + inline style block (exact CSS from ref deck)
- HTML passthrough confirmed; python-pptx API mapped; stdlib image
inlining sufficient; 12 tests need updating; attach script +
slides.yml + README structure documented; persona roster (same as
v1.22); 5 pitfalls identified.
---ci---
phase: 0
milestone: v1.23
status: research
decisions:
- id: D-163
decision: Inline Marp style block is lead-developer territory (not frontend-engineer)
rationale: Marp frontmatter CSS is a static stylesheet, not a React/Next.js component system (D-148 precedent from v1.22)
confidence: 0.95
alternatives: [frontend-engineer owns CSS, custom slides-engineer persona]
- id: D-164
decision: No new personas for v1.23
rationale: Work splits cleanly into lead-developer (markdown+CSS+README+metadata) and backend-engineer (Python+bash+tests+CI); python-pptx is backend
confidence: 0.90
alternatives: [custom docs/deck persona, pptx-engineer persona]
---/ci---
2026-08-11 23:54:47 +00:00
Jon Chery
0404988465
docs(P00): research findings — v1.22 deck layout root cause (REQ-254..262)
...
8 findings (all confidence >= 0.8):
- F1 (VERY HIGH): theme CSS has zero section padding (/* @theme */ is
a comment, not the directive; no @import of Marp default).
- F2 (VERY HIGH): overflow:hidden silently clips dense content (8/19
slides overflow).
- F3 (HIGH): image aspect-ratio catastrophe (platform-pipeline 13.52x,
telemetry-live-ops 0.63x).
- F4 (HIGH): header+footer chrome on every slide (~70px lost).
- F5 (MEDIUM-HIGH): render_deck.sh omits --theme (unthemed output).
- F6 (HIGH): render_slides.sh missing -s 2 -b transparent (1x PNGs).
- F7 (LOW): P5 marp-cli version bump — NOT the cause (theme CSS byte-
identical P3->P5).
- F8 (VERY HIGH): test coverage gaps — no layout/overflow/aspect-ratio
tests; static-file-property tests only.
Persona roster (v1.22): lead-developer (theme CSS + deck markdown +
mermaid + .ciagent), backend-engineer (render scripts + tests).
frontend-engineer + data-engineer deactivated. D-148 (theme CSS is
lead-developer, not frontend), D-149 (no new personas).
---ci---
project: acdl
phase: 0
milestone: v1.22
status: research
---/ci---
2026-08-11 19:22:45 +00:00
Jon Chery
4c8b2b77fc
docs(P00): research findings — v1.18 Atelier integration + MCP SDK + submission-readiness + Marp PPTX
...
5 research targets completed:
- Atelier: 19 domains → 9 Nova skills (REQ-221); agent-checklist → MCP validation; principle-lookup model; pin tag v0.3.6
- MCP Python SDK v2: MCPServer + @mcp.tool() + plugin-registry skeleton (D-140)
- Submission-readiness: superset gate confirmed (contract.schema.json defines shape only; readiness adds tags/env/policy/profile/appSource)
- Marp PPTX: inline style: CSS survives --pptx export (no fallback needed)
- Personas: 3 active (lead/backend/data) + frontend deactivated; mcp-engineer folded into backend (D-143, 0.90)
9 assumptions logged (A1-A9, conf 0.80-0.95).
---ci---
project: acdl
phase: 0
milestone: v1.18
status: research
---/ci---
2026-08-06 14:59:18 +00:00
Jon Chery
ca7d41c1ad
docs(P00): research findings — v1.17 telemetry signal inventory + reference architecture + metric scorecard + deck research
...
---ci---
project: acdl
phase: 0
milestone: v1.17
status: research
---/ci---
2026-08-04 19:12:18 +00:00
Jon Chery
f83b974c0e
Merge milestone/v1.16-nova-simplification — v1.16 complete (Nova Simplification: 20-phase NFR sweep + final; tag v1.15.26)
acdl-ci / Lint (push) Successful in 11s
acdl-ci / Platform check-only (offline) (push) Successful in 29s
acdl-ci / Test (push) Failing after 7m25s
2026-08-01 13:37:18 +00:00
Jon Chery
787a6490a5
docs(audit): v1.15 post-milestone audit — PASS (rebrand header fixes + 6 checks)
...
acdl-ci / Lint (push) Successful in 10s
acdl-ci / Platform check-only (offline) (push) Successful in 23s
acdl-ci / Test (push) Successful in 5m53s
Audit of v1.15-Nova milestone: reconstruction PASS (27 commits, 20 with
ci blocks, 7 merges per convention, state matches checkpoint). File
discipline: 10 auto-fixed rebrand-completeness gaps — 9 .ciagent/*.md
headers still said ACDL (PROJECT/REQUIREMENTS/ROADMAP/RESEARCH/AUDIT/
REVIEW/COST/IAM_POLICY/CAPABILITY_INVENTORY → Nova) + config.json
projects[].name → Nova. Active v1.15 sections already Nova; historical
v1.1-v1.14 narratives left as-is. Branch hygiene PASS (6 phases + 1
milestone all merged, 0 orphans). Commit discipline PASS (0 non-merge
commits without ci blocks, 0 unresolved escalations). 6 audit checks
all PASS. Verdict: PASS.
---ci---
project: acdl
phase: 5
milestone: v1.15
status: complete
phase_role: final
audit: pass
---/ci---
2026-07-30 14:37:58 +00:00
Jon Chery
93c7106cd9
docs(P00): research findings — v1.15-Nova rebrand scope
...
RESEARCH: 8 findings from the exhaustive codebase survey (1,465 ACDL
occurrences / 205 files; 0 nova collisions). Brand string surface area,
code identifiers (21 env var prefixes, no centralized loader → core/env.py
per D-108), AWS resource names (high-risk migration table), consumer/infra
conventions (tag keys/SSM path/consumer path), docs & decks (mechanical,
S&P theme untouched per D-107), CI/release, external URLs, nomenclature.
Persona assessment: roster carries forward (lead/backend/data active,
frontend deactivated); domain priority inverted to lead→backend→data
(docs-first rebrand). ARCHITECTURE.md v1.15 addendum: full naming-
conventions rebrand table + migration ordering + capability gate.
---ci---
project: acdl
phase: 0
milestone: v1.15
status: research
---/ci---
2026-07-30 00:02:31 +00:00
Jon Chery
3b1181f39b
Merge milestone/v1.14-refinement — v1.14 complete (NFR Refinement: bug fixes, security, stubs, tests, docs; 20 phases + final; tag v1.13.24)
...
acdl-ci / Lint (push) Successful in 10s
acdl-ci / Platform check-only (offline) (push) Successful in 25s
acdl-ci / Test (push) Successful in 6m34s
v1.14 NFR Refinement milestone complete. 20 execution phases (P1-P20) +
1 final (P21). All P1/P2 backlog from v1.11 review resolved. Security
posture hardened (swallowed errors, account ID externalized, IAM scoped,
schema validation, credential hygiene). Stubs resolved (kyverno --kube-
version removed). 7 untested scripts gained coverage. Documentation
synced (ARCHITECTURE v1.11-v1.14 addenda, stale @v1.6-1.9 -> @v1.13,
GRILL G-005/G-008 resolved, COST.md window extended, D-083 deferral
recorded). Platform VPC parameterized.
561 tests pass (was 528 at v1.13.2; +33). 22/22 capabilities Verified.
6 grill binding decisions (G-101..G-106) applied. 1 escalation (E-001)
auto-resolved at full autonomy (D-101).
---ci---
project: acdl
phase: 21
milestone: v1.14
status: complete
---/ci---
2026-07-29 21:36:37 +00:00
Jon Chery
aebc63127d
docs(P66): v1.12 init + research — presentation refinement drift audit
...
---
ci---
project: acdl
phase: 66
milestone: v1.12
status: specify
---
/ci---
---
ci---
project: acdl
phase: 66
milestone: v1.12
status: research
---
/ci---
Spec: validate v1.12 specification (presentation refinement, decks-only
surface + one adapter fix + two probe fixes). REQUIREMENTS.md gains
REQ-129..REQ-133. config.json milestone v1.11 -> v1.12, branch
milestone/v1.12-presentation.
Research: drift audit (9 items) comparing docs/presentations/* against
v1.11-verified reality. Regression gate (D-091) re-run surfaced 3 Broken
capabilities: CAP-013 (real adapter dedup defect, Class A), CAP-017
(probe over-strict re locals.tf, Class B/C), CAP-018 (probe stale
LocalLambdaStub signature, Class B/C). PRE_MORTEM.md FM-3 requires decks
to match verified reality; the inventory's 22/22 claim is overstated
until CAP-013 is fixed. Decisions D-108 (fix defect inside v1.12),
D-109 (deck version refs @v1.11 -> @v1.12 at Phase 70).
2026-07-29 12:51:13 +00:00
Jon Chery
ad0e0378da
docs(P56a): research findings for v1.11 RESTART
...
RESEARCH stage. Verified the technical assumptions behind the 13-phase
v1.11 restart plan against the live codebase (branched off v1.10.2).
Findings:
- Adapter monolith audit: adapters/terraform/adapter.py is 918 lines
with 3 constant tables (TYPE_MAP/INPUT_MAP/OUTPUT_MAP) that duplicate
what interface.json already declares, plus 39 type-specific branches
across 18 stack types carrying nested HCL blocks + hardcoded defaults
(CIDR, assume_role_policy JSON, ECR/logs inline policy, Fargate
requires_compatibilities, assign_public_ip, listener/target ports,
security group emission). STANDARDS.md §8 blessed this drift as the
intended design — the standards doc itself must be rewritten (P56a).
- State-key root cause of the 4-VPC bug: adapter.py:664,676 emits
spike/{stack_name}/terraform.tfstate where stack_name = contract.id;
all 5 microservice contracts share id 'msvc' but differ in
environment (dev/qa/prod/dr); the state key does NOT include the
environment, so all 4 env contracts collide on spike/msvc/terraform.tfstate.
Combined with verify_deploy_microservice.py running terraform init
-reconfigure in a fresh temp dir each time, each run created a fresh
VPC. Two root causes: (1) per-contract state keys with no VPC sharing,
(2) non-deterministic state keys across environments. D-105 + D-106 +
D-101 correct all three.
- Per-module terraform module design: documented the
versions/variables/locals/main/outputs.tf layout for s3, vpc, ecs-service
and how the stateless adapter assembles them via registry.json →
terraform_dir → module-instantiation blocks + ref wiring.
- Existing pipeline architecture: run_platform.sh line 287 runs terraform
plan only (never apply/destroy); the --apply/--destroy lifecycle modes
must be ADDED (P57). Byte-identical Gitea+GitHub convention documented.
PERSONAS.md updated for v1.11:
- Deactivated lambda-engineer, platform-engineer, security-engineer,
frontend-engineer (no per-module Python this milestone).
- Reactivated data-engineer (owns terraform/ + per-module terraform
subdirs — the heaviest v1.11 work).
- Kept backend-engineer (adapter/resolver), general (pipelines/workflows).
- Territory enforcement: warn (co-authoring expected on adapter +
run_platform.sh boundary).
- Domain priority: data → backend → general.
6 assumptions logged (A-1.1..A-5.1), all >= 0.6 confidence, none
escalated.
---ci---
project: acdl
phase: 0
milestone: v1.11
status: research
---/ci---
2026-07-28 16:07:57 +00:00
Jon Chery
7585c828f0
docs(P48): vision gaps + badge system + substrate→engine + CR format + agentic tags
...
acdl-ci / Lint (push) Successful in 7s
acdl-ci / Test (push) Successful in 23s
acdl-ci / Platform check-only (offline) (push) Successful in 8s
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---
2026-07-23 14:58:29 +00:00
Jon Chery
2bea048bb6
docs(P00): research v1.9 — interpolation, per-env jobs, Wiz, attestation matrix
...
---ci---
project: acdl
phase: 0
milestone: v1.9
status: research
---/ci---
RESEARCH.md v1.9 addendum:
- RA-1: interpolation prior art + ${env.<field>} syntax choice (D-081)
- RA-2: GitHub/Gitea Actions workflow_call environment input + per-env jobs (D-082)
- RA-3: Wiz GraphQL API shape + PolicyCheckResult mapping (REQ-110)
- RA-4: attestation matrix freshness validation + signed artifacts (D-084)
- RA-5: design doc drift audit (hitl_matrix + audit_ledger)
- RA-6: P1-1 adapter hardcoded defaults audit (D-085)
New decisions surfaced: D-087 (recursive expansion), D-088 (env override
pre-validation), D-089 (signature skip when signing key unset).
PERSONAS.md updated for v1.9: milestone field, lambda-engineer
reactivated (SNS topic), phase-specific overrides for phases 39-43,
domain priority updated.
2026-07-23 04:17:41 +00:00
Jon Chery
7f1eff622d
docs(P22-38): research findings + 6 phase plans
...
---ci---
project: acdl
phase: 22-38
milestone: v1.8
status: research
---/ci---
v1.8 research: 6 targets investigated + 5 decisions surfaced (D-073..D-077).
TARGET 1: uptime-kuma on ECS Fargate (image louislam/uptime-kuma:1,
port 3001, EFS volume, ALB, monitor seeding via post-deploy API script).
TARGET 2: Terraform prevent_destroy lifecycle (2-step decommission pattern).
TARGET 3: AWS KMS rotation (enable_key_rotation=true, annual AWS-managed;
90-day is roadmap item D-075).
TARGET 4: Forge-agnostic API URLs (GITHUB_API_BASE + _forge_type helper).
TARGET 5: DynamoDB as CMDB (acdl-change-requests table + validate_change_request).
TARGET 6: Module engineering standards scan (codified patterns from 12 modules).
PERSONAS.md updated for v1.8: lambda-engineer reactivated (D-068 CMDB +
D-065 API portability). 11 phase-specific overrides added.
2026-07-22 22:01:13 +00:00
Jon Chery
dca35c78ec
feat(P22): rename static-asset→static-assets + cloudfront/waf primitives + production stack + @v1.6 bump
...
---ci---
phase: 22
title: rename-and-production-static-assets-stack
status: complete
verification:
- scripts/run_ci.sh: PASS (CI PIPELINE OK)
- python3 -m pytest tests/ -v: 175 passed
- scripts/run_platform.sh --check-only: PASS (PLATFORM CHECK OK)
- grep -R "static-asset[^s]" . (excl .git/): 0 hits
- grep -R "static-asset$" . (excl .git/): 0 hits
- floating git tags v1.6 + v1 point at v1.6.0 (a90a756 )
changed_files:
- Task 1 (rename): contracts/static-asset.yaml→static-assets.yaml (git mv); modules/l2/static-asset→static-assets (git mv); sed replaceAll static-asset→static-assets in 22 files (README, docs, scripts/run_platform.sh, pipelines/deploy.yaml, modules/registry.json, tests/*, .ciagent/* historical narrative)
- Task 2 (cloudfront primitive): modules/l1/cloudfront/interface.json + README.md
- Task 3 (waf primitive): modules/l1/waf/interface.json + README.md
- Task 4 (registry): modules/registry.json (+cloudfront, +waf, static-assets renamed)
- Task 5 (augment static-assets): modules/l2/static-assets/composition.json (s3+cloudfront+waf, depth 1); modules/l1/s3/interface.json +instance.json (+bucket_regional_domain_name output); modules/l2/static-assets/README.md (production stack docs)
- Task 6 (adapter): adapters/terraform/adapter.py (+TYPE_MAP/INPUT_MAP/OUTPUT_MAP for cloudfront distribution+OAC+wafv2 webacl; special handling in _emit_resource for OAC defaults, distribution origin/cache_behavior/restrictions/viewer_certificate/web_acl_id, waf scope/default_action/visibility_config/managed rules)
- Task 7 (contract schema): no change needed (generic inputs object; new module names match ^[a-z][a-z0-9-]*$)
- Task 8 (@v1.6 bump): contracts/static-assets.yaml, .gitea/.github/workflows/deploy.yml (ref: v1.6 + header comments), docs/consumer-guide.md, docs/contracts/index.md, docs/pipeline/versioning.md, docs/pipeline/index.md, docs/architecture.md, README.md, modules/l2/microservice/README.md, tests/test_environment_check.py, tests/test_pipeline_contract.py
- Task 9 (floating tags): git tag -f v1.6 v1.6.0; git tag -f v1 v1.6.0
- Task 10 (tests): tests/test_adapter.py (registry 11 entries/9 L1/2 L2; cloudfront+waf type map tests; TestS3Output bucket_regional_domain_name; TestStaticAssetsStack 4 tests); tests/test_contract_resolver.py (+s3/cloudfront/waf resource assertions)
generated:
- terraform/spike/main.tf + terraform.tf (regenerated by run_platform.sh --check-only; reflect static-assets production stack + backend key spike/static-assets/)
notes:
- D-048 full rewrite of .ciagent/ historical narrative (verbatim phase descriptions, REQ-25/27/50, D-036) — produces intentional tautologies (e.g. "Rename static-assets → static-assets") per the decision to override the v1.6 preservation precedent.
- cloudfront interface.json resources array ordered distribution-first so the resolver (first-match wire resolution) routes bucket_regional_domain_name/waf_web_acl_arn/region to the distribution; the OAC gets adapter-provided defaults (name=acdl-oac, origin_type=s3, signing_behavior=always).
- .ciagent/ @v1.4 references left as historical record (D-048 scope was static-asset rename only; @v1.4 is historical narrative of Phase 20).
- s3 OUTPUT_MAP bucket_regional_domain_name not added (identity fallback in adapt() already handles it; OUTPUT_MAP documents non-identity mappings only).
---ci---
2026-07-22 19:56:52 +00:00
Jon Chery
0fea29cdbb
docs(P12): plan-as-execute + verify (v1.2.2)
...
---ci---
project: acdl
phase: 12
milestone: v1.2
status: verify
verdict: VERIFIED
requirements:
covered: [REQ-30]
---/ci---
Phase 12 plan-as-execute + verify. scripts/verify_phase12.sh green (22
assertions). All Wave 1 + Wave 2 tasks complete:
- T-12.1: run_spike_*.sh -> run_platform.sh (D-048, --plan-only flag)
- T-12.2: spike_runner_policy.json expanded (ECS + ECR + ELB + IAM + EC2)
- T-12.3: idempotency documented in bootstrap scripts
- T-12.4: P1-1 redacted (no live AWS key IDs in .ciagent/)
- T-12.5: P1-B fixed (PERSONAS.md platform/registry -> modules-ir/registry.json)
Subagent confirmed run_platform.sh --plan-only runs against real AWS, exit 0.
Ready to ship v1.2.2.
2026-07-21 21:01:51 +00:00
Jon Chery
1ad9c35fb6
docs(P11): v1.2 research addendum + README rewrite
...
---ci---
project: acdl
phase: 11
milestone: v1.2
status: research
requirements:
covered: [REQ-29]
---/ci---
Phase 11 deliverables:
- RESEARCH.md: v1.2 addendum (Targets 9-13). #36988 re-checked (still
open, 2026-05-27) -> D-047 extends D-039 waiver. NFR audit: spike IAM
policy already least-privilege (needs ECS/ECR/ELB/IAM expansion for
Phase 15); bootstrap scripts already idempotent; run_spike_*.sh to
consolidate into run_platform.sh (D-048); P1-1 redaction targets
identified in VERIFY.md; PERSONAS.md line 47 stale path. ECS L1
catalog scoped (D-049): 6 L1s, 9 IR types for the adapter TYPE_MAP.
- README.md: rewritten. v1.1 complete (tag v1.2.0); v1.2 active. Documents
the actual spike flow (contract -> IR -> plan -> Checkov -> confidence
-> outbox), how to run (bootstrap, rotate, run_spike_e2e.sh), the real
repo layout, environments table, credentials/D-039/D-047 waiver. No
stale 'v1.1 (active)' framing.
2026-07-21 20:56:54 +00:00
Jon Chery
930c24be6d
docs(research): OIDC blocker found; adopt D-039..D-046; re-scope Phase 08
...
---ci---
project: acdl
phase: 0
milestone: v1.1
status: research
research_targets: 10
top_finding:
- TARGET 1 (conf 0.95): Gitea Actions does NOT support id-token: write / OIDC.
Real OIDC deferred to v1.2 (blocked on go-gitea/gitea#36988).
Spike adopts D-039: per-run-rotated long-lived key waiver.
decisions_adopted: [D-039, D-040, D-041, D-042, D-043, D-044, D-045, D-046]
risks:
- R-1 (highest): OIDC gap -> key-rotation waiver (mitigated by D-039)
- R-2: Checkov terraform_plan edge cases (mitigated by ACDL_TAG_NAMING skipped record)
- R-3: 6 confidence inputs are a recommendation (D-040 adopted in PROJECT.md)
---/ci---
RESEARCH.md (1330 lines) authored by ci-researcher. Key findings:
- TARGET 1: Gitea Actions does NOT support emitting an OIDC id-token
(Gitea docs list id-token as unsupported; go-gitea/gitea#33681 open;
draft PR #36988 unmerged; Gitea's own CI still uses long-lived keys
per #37980 ). Real-AWS OIDC is unachievable in this environment for v1.1.
- TARGETS 2-10: Terraform/Checkov install steps, IR prior art, Checkov
adapter, DynamoDB outbox, 6-input confidence signal, tiered ledger
(Object Lock deferred), HITL/SoD, contract schema, archive strategy
— all resolved with concrete sketches in RESEARCH.md.
Adopted D-039..D-046 in PROJECT.md. Re-scoped Phase 08 (ROADMAP) and
REQ-23 (REQUIREMENTS) to reflect the OIDC blocker: the spike uses a
per-run-rotated long-lived key (D-039) instead of OIDC; real OIDC is a
v1.2 deliverable. ARCHITECTURE.md Gitea API surface table updated with
the OIDC verdict.
2026-07-21 18:03:41 +00:00