707d8a1e39
---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---
8.9 KiB
8.9 KiB
project, milestone, generated_at, generator, verification_toolchain
| project | milestone | generated_at | generator | verification_toolchain | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| acdl | v1.26 | 2026-08-12 | lead-developer |
|
PERSONAS — v1.26 Live Pilot Estate Activation
Generated by the lead-developer at the end of RESEARCH. Assesses the project domains, activates/deactivates personas, creates custom personas for domains beyond the default four, aligns frameworks + territory + constraints to the actual project structure.
Active Roster (5)
1. lead-developer (active)
- active: true
- phase_specific: false
- reason: Coordinates task decomposition + resolves conflicts between engineering personas. Owns the milestone narrative (PROJECT.md, ROADMAP.md, ARCHITECTURE.md §12.8). Final architectural decisions when personas disagree (e.g. where the outcome-backfill emitter lives).
- domain: project coordination, milestone narrative, cross-persona conflict resolution.
- frameworks: none (coordination role).
- territory:
.ciagent/,docs/METRICS.md,adapters/README.md,modules/README.md,modules/STANDARDS.md. - constraints: does not write Python/Terraform (delegates to backend/data-engineer); does not author policies (delegates to policy-engineer); does not author chain code (delegates to blockchain-engineer).
2. backend-engineer (active)
- active: true
- phase_specific: false
- reason: Owns the platform-side Python changes: confidence signal escalation reason (REQ-318), outcome-backfill emitter (REQ-317), env-JSON state_backend wiring (REQ-319), adapter test updates for DynamoDB (REQ-322), regression CAP-025 (REQ-316).
- domain: core Python (confidence_signal.py, metrics/, adapter.py, regression_verify.py, contract_resolver.py), run_platform.sh wiring.
- frameworks: Python 3.12, pytest, boto3, SQLite, DynamoDB.
- territory:
core/confidence_signal.py,core/metrics/,adapters/terraform/adapter.py,core/regression_verify.py,core/environments/,scripts/run_platform.sh,tests/test_adapter.py,tests/test_confidence_signal.py,tests/test_outcome_backfill.py,tests/test_regression_pilot.py. - constraints: does not change
schemas/policy_check_result.schema.json(v1.25 moat, D-211); does not changeschemas/contract.schema.json(no schema breaks, D-213); does not author Terraform modules (delegates to data-engineer for DynamoDB); does not author policies (delegates to policy-engineer); does not author chain code (delegates to blockchain-engineer).
3. data-engineer (active)
- active: true
- phase_specific: false
- reason: Owns the DynamoDB L1 primitive (REQ-322) — the single
platform-side module build-out. Owns the metrics cold store
outcome-backfill integration (REQ-317, the
fact_decision.outcomecolumn +backfilled_attimestamp). Owns the env-JSON data updates (REQ-319,core/environments/*.jsonaccount_id + state_backend.bucket). - domain: Terraform modules (
modules/l1/), schema definitions (interface.json), registry (modules/registry.json), metrics cold store (metrics/nova_metrics.db,core/metrics/collector.py). - frameworks: Terraform, JSON, SQLite, DynamoDB, boto3.
- territory:
modules/l1/dynamodb/,modules/registry.json,modules/README.md,core/environments/*.json,core/metrics/collector.py,tests/test_adapter.py(DynamoDB emission test). - constraints: does not change the adapter (stateless, v1.11);
follows the v1.8 NFR defaults (encryption + deletion protection +
PITR); follows the module standards (
modules/STANDARDS.md).
4. policy-engineer (active, custom — added in v1.25)
- active: true
- phase_specific: false
- reason: Owns the kyverno-json policy authoring for the pilot: settlement-finality (REQ-315), pilot-readiness (REQ-320). Extends v1.25's policy engine to the securities domain.
- domain: declarative policies (kyverno-json ValidatingPolicy YAML), JMESPath assertions, policy tests.
- frameworks: kyverno-json, JMESPath, JSON, pytest.
- territory:
adapters/kyverno-json/policies/pilot-readiness/,adapters/kyverno-json/policies/settlement-finality/,tests/test_settlement_finality_policy.py,tests/test_pilot_readiness_policy.py. - constraints: policies are declarative (no imperative Python);
is_configured()guard skips gracefully whenkjabsent; follows the v1.25 policy-authoring standard (modules/STANDARDS.mdpolicy section +adapters/kyverno-json/README.md).
5. blockchain-engineer (active, custom, phase-specific — added in v1.26)
- active: true
- phase_specific: true (created for v1.26 P1; removed after P1 unless the chain has ongoing work in P2..P4)
- reason: The pilot introduces a homegrown blockchain — a domain
beyond the default four personas. Owns the chain core (block, ledger,
validator, REQ-310), the order-matching engine (REQ-311), the
settlement service (REQ-312), and the consumer
contract.yaml(REQ-313) + deploy invocation (REQ-314). - domain: blockchain consensus (PoA, single validator), order matching (limit order book, price-time priority), settlement (T+1, finality = block commit), consumer-repo deploy model.
- frameworks: Python 3.12 (the chain is Python, not Solidity/Go — it's a homegrown ledger, not a smart-contract platform), pytest, YAML (contract.yaml), GitHub Actions / Gitea Actions (deploy.yml invocation).
- territory:
/root/nova-blockchain-exchange/(the consumer repo:chain/,engine/,settlement/,contract.yaml,contracts/*.yml,.github/workflows/deploy.yml,.gitea/workflows/deploy.yml,tests/). - constraints: the chain is deterministic (same inputs → same block)
— it is automation, not AI (NORTH_STAR Objective #2 tenet); equities
only (D-200); single validator PoA (D-201); the consumer deploy MUST
go through
deploy.yml@v1.25(no direct terraform apply); the contract MUST validate againstschemas/contract.schema.json.
Deactivated (1)
frontend-engineer (inactive)
- active: false
- phase_specific: false
- reason: The pilot has no UI — the blockchain exchange is a backend service (matching engine + settlement). The consumer repo has no web/frontend. Reactivated if a future milestone adds a trading dashboard.
Phase-Specific Notes
- blockchain-engineer is created for v1.26 P1 (blockchain core + order engine + settlement). If P2..P4 have no chain changes, the persona is removed after P1 (the chain is a stable substrate for the pilot run). If P2 (consumer-contract-and-deploy) requires chain adjustments, the persona stays through P2.
- policy-engineer is active for P3 (pilot-metrics-and-policies) + may consult on P4 (pilot run policy verification).
- data-engineer is active for P3 (DynamoDB primitive + outcome backfill + env-JSON) + P4 (regression CAP-025 may touch the registry).
Territory Enforcement
- Mode:
warn(the pilot is cross-territory by nature — the consumer repo + the platform repo share the milestone; the blockchain-engineer works in the consumer repo, backend/data/policy engineers work in the platform repo). - Cross-territory collisions: REQ-322 (DynamoDB primitive) is
data-engineer territory, but the adapter test update
(
tests/test_adapter.pyEXPECTED_L1_KEYS) is backend-engineer territory. The lead-developer resolves: data-engineer authors the module + registry; backend-engineer updates the test assertion (the test is backend territory, the module is data territory).