docs(init): initialize Agentic Cloud Delivery Platform (5 phases)
---ci---
phase: 0
milestone: v1.0
status: specify
decisions:
- id: D-001
decision: Use Gitea org continuous-intelligence for all ACDL repos
rationale: User-specified target org; already exists at git.cloudinit.dev
confidence: 0.95
alternatives: [new dedicated demo org]
- id: D-002
decision: Map "GitHub Actions" to Gitea Actions (act_runner) using same workflow YAML
rationale: Environment is Gitea; syntax-compatible with act_runner
confidence: 0.85
alternatives: [migrate to GitHub.com, raw shell scripts]
- id: D-003
decision: Collapse acdl-platform into the existing empty acdl repo
rationale: acdl already exists at org root; avoids a 4th repo
confidence: 0.90
alternatives: [create separate acdl-platform repo]
- id: D-004
decision: Use Gitea environment blocks + required reviewers for QA/Prod; fallback to manual workflow_dispatch with approval input
rationale: Spec mandates approval gates; forge supports environment protection
confidence: 0.80
alternatives: [external approval bot, no approval gates]
- id: D-005
decision: Hash-chained ledger (prev_hash + own hash via SHA-256 of canonical JSON) for evidence; declared demonstrative not adversarially secure
rationale: Spec asks for simple JSON; chain gives visible tamper-evidence
confidence: 0.85
alternatives: [signed commits only, full Merkle tree]
- id: D-006
decision: Confidence gate threshold = 0.50 exactly (base 0.90, fail drops to 0.40)
rationale: Explicit in spec
confidence: 0.99
alternatives: []
- id: D-007
decision: Each mock_apply.sh echoes "[L1: <name>] applying..." + "OK", sleeps 1s, exits 0
rationale: Spec literal; uniformity aids timeline parsing
confidence: 0.95
alternatives: [randomized sleep durations]
- id: D-008
decision: L3B keyword->stack mapping: gas/price/ingest/data-lake->commodity-price-feed; invoice/billing->invoice-service; analytics/historical/query->energy-analytics-api; regulatory/compliance/reporting/trading->regulatory-reporting; fallback->invoice-service
rationale: Mirrors the 4 L2 modules + Act 3 example issue text
confidence: 0.85
alternatives: [single default stack, ML classifier (forbidden by no-AI constraint)]
- id: D-009
decision: Init milestone = v1.0, branch milestone/v1.0-initial
rationale: init.md Step 5 mandates milestone/v1.0-initial
confidence: 0.99
alternatives: []
- id: D-010
decision: Single-project mode for the acdl checkout; ---ci--- blocks omit project field
rationale: User chose standalone single-project; no other projects in this checkout
confidence: 0.90
alternatives: [register acdl in /root multi-project config]
---/ci---
Specification: 30-minute executive demo of the Agentic Cloud Delivery Platform proving automatic, safe, audited infra delivery via local stubs on Gitea Actions (no cloud, no AI APIs).
Requirements: [3 repos under continuous-intelligence org, 8 L1 stub modules, 4 L2 composed modules mirroring S&P Global Energy use cases, 5 core scripts (mock_executor.sh, policy_checker.py, confidence_signal.py, evidence_writer.py, l3b_agent_stub.py), reusable Dev->QA->Prod pipeline with approval gates, issue-triggered L3B agent, Pages evidence timeline UI, 4 scripted demo acts]
Constraints: [local Linux OS, Gitea Actions + Environments, no AWS/GCP/Azure, no external LLM APIs, state in flat JSON/artifacts, EKS Fargate + serverless primitives (no VPC module), L1 single-purpose substrate-agnostic max-depth-1, L2 max-depth-5]
Out of scope: [real cloud provisioning, real LLM inference, production-grade infrastructure, adversarial tamper-proofing of evidence]
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
# ACDL — Requirements
|
||||
|
||||
## v1
|
||||
|
||||
### Category: Repos & Org
|
||||
- **REQ-01:** All demo code lives under the `continuous-intelligence` Gitea org at `https://git.cloudinit.dev`.
|
||||
- **REQ-09:** Three repos exist: `acdl` (platform + stubs + reusable workflows), `acdl-contracts` (developer surface), `acdl-evidence` (Pages audit timeline).
|
||||
|
||||
### Category: L1 Modules
|
||||
- **REQ-02:** 8 L1 module folders exist under `acdl/modules/l1/`: `l1-eks-fargate`, `l1-iam-role`, `l1-lambda`, `l1-api-gateway`, `l1-eventbridge`, `l1-sqs`, `l1-s3`, `l1-cloudwatch`.
|
||||
- **REQ-03:** Each L1 module has a `manifest.yaml` (declaring inputs) and a `mock_apply.sh` that echoes success, sleeps 1s, and exits 0.
|
||||
|
||||
### Category: L2 Modules
|
||||
- **REQ-04:** 4 L2 modules exist under `acdl/modules/l2/`: `l2-invoice-service`, `l2-commodity-price-feed`, `l2-energy-analytics-api`, `l2-regulatory-reporting`, each composing the specified L1s.
|
||||
- **REQ-05:** L2 modules compose L1 primitives into deployable shapes with a maximum depth of 5.
|
||||
|
||||
### Category: Core Scripts
|
||||
- **REQ-06:** `mock_executor.sh` reads an L2 composition, invokes each L1 `mock_apply.sh`, and writes `state.json`.
|
||||
- **REQ-07:** `policy_checker.py` reads `contract.yaml` and fails with `POLICY_VIOLATION:PUBLIC_INGRESS` on `public-ingress: true`; otherwise passes.
|
||||
- **REQ-08:** `confidence_signal.py` returns a base score of 0.90 and drops to 0.40 (with reason code) when policy fails; gate threshold is ≥ 0.50.
|
||||
|
||||
### Category: Evidence Stream
|
||||
- **REQ-11:** `evidence_writer.py` appends events to `audit.json` and links each event to the previous via a SHA-256 hash chain (`prev_hash` + own `hash`).
|
||||
- **REQ-13:** `acdl-evidence` is Pages-enabled and serves `audit.json` plus `index.html`.
|
||||
|
||||
### Category: Pipeline
|
||||
- **REQ-10:** The reusable pipeline runs Dev (autonomous), pauses at QA (manual approval), pauses at Prod (manual approval), then finalizes by committing `audit.json` to `acdl-evidence`.
|
||||
- **REQ-12:** Opening an Issue in `acdl-contracts` runs `l3b_agent_stub.py`, commits a generated `contract.yaml` to a new branch, closes the Issue, and triggers the main pipeline.
|
||||
|
||||
### Category: Demo Acts
|
||||
- **REQ-14:** `index.html` uses vanilla JS to fetch `audit.json` from the Pages URL and render events as a timeline.
|
||||
- **REQ-15:** All four demo acts (Friction, Developer Self-Service, Citizen Developer, Safety Net) reproduce deterministically in a dry run.
|
||||
|
||||
## v2
|
||||
|
||||
(None — v1 covers the complete demo.)
|
||||
|
||||
## Out of Scope
|
||||
|
||||
| Feature | Reason |
|
||||
|---------|--------|
|
||||
| Real cloud provisioning (AWS/GCP/Azure) | Demo explicitly stubs all infrastructure; no cloud access available. |
|
||||
| Real LLM inference / external AI APIs | Spec forbids external AI; L3B is a keyword parser. |
|
||||
| Production-grade infrastructure | Demo target is a 30-minute executive show, not a production system. |
|
||||
| Adversarial tamper-proofing of evidence | Hash chain is demonstrative; not cryptographically secure against a determined attacker. |
|
||||
| Multi-tenant isolation | Out of demo scope. |
|
||||
|
||||
## Traceability
|
||||
|
||||
| Requirement | Phase | Status |
|
||||
|-------------|-------|--------|
|
||||
| REQ-01 | 1 | pending |
|
||||
| REQ-02 | 2 | pending |
|
||||
| REQ-03 | 2 | pending |
|
||||
| REQ-04 | 3 | pending |
|
||||
| REQ-05 | 3 | pending |
|
||||
| REQ-06 | 3 | pending |
|
||||
| REQ-07 | 3 | pending |
|
||||
| REQ-08 | 3 | pending |
|
||||
| REQ-09 | 1 | pending |
|
||||
| REQ-10 | 4 | pending |
|
||||
| REQ-11 | 3 | pending |
|
||||
| REQ-12 | 4 | pending |
|
||||
| REQ-13 | 5 | pending |
|
||||
| REQ-14 | 5 | pending |
|
||||
| REQ-15 | 5 | pending |
|
||||
Reference in New Issue
Block a user