feat: operationalise project bus for Sandbox
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
# WP-PA-002 — Project Bus Operationalisation
|
||||
|
||||
Status: `ISSUED`
|
||||
Project: Epimonos Sandbox
|
||||
Issued by: Sandbox PM
|
||||
Coordinated by: PA
|
||||
Implementer: Codex (`IMPLEMENTER`)
|
||||
Independent reviewer: Claude Code (`REVIEWER`)
|
||||
Predecessor: WP-PA-001, accepted at commit
|
||||
`a2229bc26902e79d63a368e8ab002ebefd4f0863`
|
||||
|
||||
## Objective
|
||||
|
||||
Bring the accepted Project Bus MVP into controlled operational use for the
|
||||
Sandbox project without yet declaring it the primary project interface.
|
||||
|
||||
## Scope
|
||||
|
||||
- a repeatable, idempotent Sandbox project bootstrap;
|
||||
- explicit actor/role provisioning without credentials in Git;
|
||||
- a hardened single-node Compose deployment profile;
|
||||
- health, authenticated smoke, backup and restore verification;
|
||||
- client connection guidance and durable cursor ownership;
|
||||
- an activation, rollback and incident runbook;
|
||||
- evidence for an independent implementation and security review.
|
||||
|
||||
The Project Bus remains a separate generic component and repository. This work
|
||||
package does not change the Generic Sandbox API, Sandbox Manager Core, Incus
|
||||
provider, Open WebUI integration, private Epimonos implementation, or the
|
||||
canonical Sandbox documentation baseline.
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
1. A fresh instance can be deployed from the repository with no secret values
|
||||
committed.
|
||||
2. The Sandbox project and its formal actors can be provisioned repeatedly
|
||||
without duplicate state or conflicting idempotency keys.
|
||||
3. Each configured actor is authenticated by transport-derived identity and
|
||||
can read the project using its own credential.
|
||||
4. The operational smoke test checks health, MCP initialization, project
|
||||
membership, event synchronization, and role-filtered pending actions.
|
||||
5. A live SQLite backup can be made, integrity checked, restored into an
|
||||
isolated instance, and compared with the source event cursor.
|
||||
6. The runbook defines activation, rollback, token revocation/rotation,
|
||||
cursor recovery, backup, restore and incident handling.
|
||||
7. SG, PTO and existing project threads remain the formal channels until
|
||||
Claude has independently approved the exact implementation commit and the
|
||||
PM has closed the activation gate with `ACCEPT`.
|
||||
8. No internet-facing deployment, purchase, or new long-lived infrastructure
|
||||
is created without the existing PM-to-PO consultation rule.
|
||||
9. The implementation and its evidence receive an independent Claude Code
|
||||
review; the implementer does not self-review or close the gate.
|
||||
|
||||
## Required evidence
|
||||
|
||||
- exact implementation commit SHA and clean worktree;
|
||||
- source and packaged-install test results under Python 3.12;
|
||||
- container build and non-root runtime proof;
|
||||
- fresh bootstrap plus idempotent replay transcript;
|
||||
- per-actor authenticated smoke transcript;
|
||||
- backup/restore/integrity transcript;
|
||||
- secret scan and repository diff;
|
||||
- independent review report with `APPROVE`, `CHANGES_REQUESTED`, or `REJECT`.
|
||||
|
||||
## Activation gate
|
||||
|
||||
The PM may declare the Project Bus the primary Sandbox project interface only
|
||||
after all acceptance criteria pass and an independent review has returned
|
||||
`APPROVE`. Until then, bus records are shadow records and SG/PTO/project
|
||||
threads remain authoritative.
|
||||
Reference in New Issue
Block a user