From 59c330f012e9d4fc987bdeb5d9676b713ccc7cbf Mon Sep 17 00:00:00 2001 From: Jon Chery Date: Tue, 21 Jul 2026 13:13:12 +0000 Subject: [PATCH] =?UTF-8?q?docs(P02):=20research=20findings=20=E2=80=94=20?= =?UTF-8?q?L1=20manifest=20schema=20+=20mock=5Fapply=20uniformity?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ---ci--- phase: 2 milestone: v1.0 status: research research: l1_schema: manifest_yaml: flat inputs map of string keys + descriptions (D-017) mock_apply_sh: uniform echo + sleep 1 + exit 0 (D-007, D-018) constraints: single-purpose, substrate-agnostic, max-depth-1, no composition l1_names: fixed per REQ-02 / D-019 (8 modules) personas: no change; infra-stub-engineer owns L1 territory this phase ---/ci--- ARCHITECTURE.md gains an L1 module schema section with a manifest.yaml example, a mock_apply.sh template, and the 8-L1 table. PERSONAS.md is unchanged for Phase 02 (infra-stub-engineer was already activated in the project-level roster). --- .ciagent/ARCHITECTURE.md | 45 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/.ciagent/ARCHITECTURE.md b/.ciagent/ARCHITECTURE.md index 87b77aa..c475734 100644 --- a/.ciagent/ARCHITECTURE.md +++ b/.ciagent/ARCHITECTURE.md @@ -100,4 +100,47 @@ for pushes. There is no `package.json`; ACDL is bash + python stubs. The verification gate substitutes `bash -n` and `python -m py_compile` for `npm run typecheck`, and per-phase `scripts/verify_phaseNN.sh` for `npm test`. `npm run build` is a -no-op (no build step). See PERSONAS.md / VERIFICATION note. \ No newline at end of file +no-op (no build step). See PERSONAS.md / VERIFICATION note. + +## L1 module schema (Phase 02 research) + +Each L1 module lives at `modules/l1//` with exactly two files: + +- `manifest.yaml` — declares the L1's identity + a flat `inputs:` map. + Schema (D-017): + ```yaml + name: l1-eks-fargate # matches the folder name + kind: l1 # literal "l1"; substrate-agnostic + description: + inputs: + : + description: + type: string # only "string" allowed (flat, max-depth-1) + ``` +- `mock_apply.sh` — uniform stub per D-007 + D-018: + ```bash + #!/usr/bin/env bash + set -euo pipefail + echo "[L1: ] applying..." + sleep 1 + echo "[L1: ] OK" + exit 0 + ``` + `mock_apply.sh` does NOT read input values; the manifest is for traceability + and for Phase 03's `mock_executor.sh` to enumerate the L1s in an L2. + +### L1 list (fixed per REQ-02 / D-019) + +| Folder | Description | +|--------|-------------| +| `l1-eks-fargate` | Serverless container compute substrate | +| `l1-iam-role` | Identity and access role primitive | +| `l1-lambda` | Event-driven function primitive | +| `l1-api-gateway` | HTTP routing primitive | +| `l1-eventbridge` | Event bus primitive | +| `l1-sqs` | Queue primitive | +| `l1-s3` | Object store primitive | +| `l1-cloudwatch` | Observability primitive | + +L1 modules are single-purpose, substrate-agnostic, max-depth-1 (per +PROJECT.md Constraints). They do not compose with other L1s. \ No newline at end of file