6691974445
---ci---
phase: 1
milestone: v1.0
status: research
research:
gitea_capabilities:
pages: not_supported
environments_api: not_supported
repository_dispatch: not_supported
workflow_call: supported
workflow_dispatch: supported
issues_opened: supported
workarounds:
- D-012 raw file URLs in place of Pages
- D-013 workflow_dispatch approval inputs in place of environments
- D-014 workflow_dispatch API in place of repository_dispatch
verification_toolchain:
typecheck: bash -n + python -m py_compile (no package.json)
test: per-phase scripts/verify_phaseNN.sh
build: no-op
---/ci---
ARCHITECTURE.md gains a Gitea API surface table and a branch-pinning rule.
PERSONAS.md is the canonical project-level persona roster: lead-developer
and backend-engineer always active; infra-stub-engineer custom persona owns
L1 stubs; data-engineer deactivated (no DB); frontend-engineer deactivated
until Phase 05.
4.9 KiB
4.9 KiB
project, milestone, generated_at, generator, verification_toolchain
| project | milestone | generated_at | generator | verification_toolchain | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| acdl | v1.0 | 2026-07-21 | lead-developer |
|
ACDL — Persona Roster (project-level)
Active personas
lead-developer
- Domain: coordination
- Active: true
- Phase-specific: false
- Frameworks: (none)
- Constraints: pragmatic, battle-tested defaults, no-cross-territory-edits
- Territory:
.ciagent/**,scripts/verify_phase*.sh,README.md,.gitignore - Reason: Owns CIAgent metadata and cross-phase verification scripts.
backend-engineer
- Domain: backend
- Active: true
- Phase-specific: false
- Frameworks: gitea-actions, act_runner, bash, python, yaml
- Constraints: no-cloud, no-ai, stub-only, hash-chain-must-be-deterministic, max-depth-5
- Territory:
.gitea/workflows/**,scripts/**(exceptscripts/verify_phase*.sh),modules/l2/**/manifest.yaml - Reason: Owns workflow YAML, core scripts (mock_executor, policy_checker, confidence_signal, evidence_writer, l3b_agent_stub), and L2 composition manifests.
infra-stub-engineer (custom)
- Domain: backend
- Active: true
- Phase-specific: false
- Frameworks: bash, yaml
- Constraints: mock-only, echo-contract-from-D-007, sleep-1s-exit-0, substrate-agnostic, single-purpose
- Territory:
modules/l1/** - Reason: Created to own L1 stub modules (Phase 02) and their uniform mock_apply.sh behavior per D-007. Domain is backend (bash stubs) but territory is strictly L1 modules to keep L1/L2 concerns separated from workflow YAML.
Deactivated personas
data-engineer
- Domain: data
- Active: false
- Reason: No persistence layer. ACDL state is flat JSON files (
audit.json,state.json) written by bash/python scripts; no ORM, no migrations, no DB. Schema contracts live inmanifest.yaml(owned by backend-engineer / infra-stub-engineer). - Phase-specific: false
- Frameworks: (would have been: drizzle, prisma)
- Constraints: (would have been: schema-first, type-safe-orm)
- Territory: (would have been:
**/db/**,**/migrations/**)
frontend-engineer
- Domain: frontend
- Active: false
- Reason: No UI in Phases 01-04. The single UI artifact (
index.html, vanilla JS) is built in Phase 05. frontend-engineer is reactivated for Phase 05 only (see Phase-specific overrides below). - Phase-specific: true (reactivates in Phase 05)
- Frameworks: vanilla-js, dom-api, fetch-api
- Constraints: no-frameworks, single-file, fetch-from-same-origin-raw-url
- Territory:
acdl-evidence/index.html(Phase 05)
Phase-specific overrides
| Phase | Personas active | Reactivations / notes |
|---|---|---|
| 01 repo-scaffolding | lead-developer, backend-engineer | infra-stub-engineer idle (no L1 work this phase) |
| 02 l1-modules | lead-developer, backend-engineer, infra-stub-engineer | infra-stub-engineer owns L1 stubs |
| 03 l2-modules-and-core-scripts | lead-developer, backend-engineer, infra-stub-engineer | backend-engineer owns core scripts + L2 manifests; infra-stub-engineer only updates L1 manifests if referenced |
| 04 pipeline-and-approval-gates | lead-developer, backend-engineer | infra-stub-engineer idle; frontend-engineer still off |
| 05 evidence-ui-and-demo-dry-run | lead-developer, backend-engineer, frontend-engineer | frontend-engineer REACTIVATED for index.html only; backend-engineer owns the dry-run script and audit.json wiring |
Domain priority (used by TaskDecomposer)
coordination -> backend -> infra-stub-engineer -> frontend-engineer (Phase 05 only)
Conflict resolutions (lead-developer arbitration)
backend-engineervsinfra-stub-engineerovermodules/l2/**/manifest.yaml: backend-engineer owns L2 manifests; infra-stub-engineer owns L1 manifests. No overlap.backend-engineervsfrontend-engineeroveracdl-evidence/index.html: frontend-engineer owns the file in Phase 05; backend-engineer provides theaudit.jsonschema contract (event shape) viaevidence_writer.pyand aSCHEMA.mdnote in ARCHITECTURE.md.lead-developervs any: lead-developer owns.ciagent/**and verification scripts; persona engineers do not edit CIAgent metadata.
Territory enforcement mode
warn — config.json has no personas.territory_enforcement field, so the default per execute.md is warn. Cross-territory edits are logged in the commit message but do not fail the task.