---ci---
phase: 5
milestone: v1.0
status: clarify
decisions:
- id: D-031
decision: Phase 05 'dry run' = local bash script (scripts/run_demo.sh) simulating the full pipeline by calling core scripts + writing evidence + uploading audit.json to acdl-evidence. No act_runner (none registered). Exercises all 4 acts.
rationale: spec says '4 scripted acts reproduce deterministically'; without a runner, the bash simulation IS the deterministic reproduction
confidence: 0.85
alternatives: [register an act_runner (out-of-band Gitea UI; not available in this env), skip the dry run and only build the UI]
- id: D-032
decision: index.html committed to acdl repo at evidence-ui/index.html; pushed to acdl-evidence main by run_demo.sh alongside audit.json. Single file, inline CSS+JS, vanilla JS per REQ-14. Fetches ./audit.json (relative).
rationale: D-012 raw-URL approach; vanilla JS per REQ-14; single file for simplicity; relative URL avoids hardcoding host
confidence: 0.90
alternatives: [separate JS/CSS files, hardcoded absolute URL]
- id: D-033
decision: audit.json raw URL on acdl-evidence main is the single source of truth. run_demo.sh writes final audit.json + final index.html in two API calls. Idempotent. UI fetch URL is relative ./audit.json.
rationale: D-012 + D-029; relative URL avoids hardcoding
confidence: 0.90
alternatives: [per-act audit files, absolute URL]
---/ci---
Phase 05 main ambiguity: no act_runner available, so 'dry run' cannot
mean a real Gitea Actions run. Three decisions logged: D-031 dry-run =
local bash simulation covering all 4 acts; D-032 index.html is single-file
vanilla JS at evidence-ui/, pushed to acdl-evidence alongside audit.json;
D-033 audit.json is the single source of truth, idempotent re-run, UI
fetches ./audit.json relatively.
ACDL — Agentic Cloud Delivery Platform
A 30-minute executive demo proving that infrastructure can be delivered automatically, safely, and with a complete audit trail — without the usual weeks of manual tickets, reviews, and copy-pasted configuration.
The demo runs entirely on local stubs (no AWS/GCP/Azure, no external LLM APIs). It shows intent and safety behavior rather than provisioning real cloud resources.
Four acts
- Act 1 — The Friction: the old manual 2-week deployment process.
- Act 2 — Developer Self-Service: commit a valid
contract.yamlforl2-commodity-price-feed, watch Dev auto-run, QA + Prod approval gates, then the evidence timeline. - Act 3 — Citizen Developer: open a GitHub/Gitea Issue with natural-
language intent; the Python keyword parser generates the same
contract.yamland triggers the identical pipeline. - Act 4 — The Safety Net: commit a malicious
contract.yaml(public-ingress: true) forl2-regulatory-reporting; the pipeline halts in Dev because the confidence signal drops below 0.50, and the rejection is visible on the evidence stream.
Repositories
All under the continuous-intelligence Gitea org at
https://git.cloudinit.dev:
acdl(this repo) — platform + stubs + reusable workflowsacdl-contracts— developer surface (contract.yaml+ issue trigger)acdl-evidence— audit timeline (served via raw file URLs; Gitea has no native Pages — see.ciagent/ARCHITECTURE.mdGitea API Surface table)
Project metadata
See .ciagent/PROJECT.md for the full spec, .ciagent/ROADMAP.md for the
5-phase breakdown, .ciagent/REQUIREMENTS.md for traceable requirements,
and .ciagent/PERSONAS.md for the active persona roster.
Phase 01 verification
After running scripts/gitea_setup.sh (which creates acdl-contracts and
acdl-evidence in the org and pushes the placeholder index.html), run:
ACDL_GITEA_TOKEN=<token> scripts/verify_phase01.sh
The script confirms:
- both new repos exist via the Gitea API
- the raw
index.htmlURL onacdl-evidencereturns HTTP 200 - the
qaandprodbranches exist onacdl-contracts
Exit 0 = Phase 01 success criteria met.