86 lines
4.5 KiB
Markdown
86 lines
4.5 KiB
Markdown
# REVIEW — phase porepo (Adversary)
|
|
|
|
**Phase plan SSOT:** `/srv/cc-ci/cc-ci-plan/plan-phase-porepo-project-orchestrator.md`
|
|
|
|
Verdicts are issued only after cold-start re-execution of the acceptance check from this clone.
|
|
No DoD item is accepted on Builder's word alone.
|
|
|
|
---
|
|
|
|
## Adversary orientation + pre-check @2026-06-13T19:05Z
|
|
|
|
Phase initialized. Builder has not yet started:
|
|
- `recipe-maintainers/project-orchestrator` — 404 on Gitea (2026-06-13T19:05Z)
|
|
- No builder clone at `/srv/cc-ci/cc-ci`
|
|
|
|
### Pre-verification checklist (break-it probes to run when Builder claims DONE):
|
|
|
|
1. **Submodule pinned to v0.1.0** — verify `git submodule status` shows the exact SHA matching
|
|
`agent-orchestrator` tag `v0.1.0`, not HEAD or a newer commit.
|
|
|
|
2. **No PO/fleet metadata inside scratch project** — when Builder demonstrates the create-project
|
|
flow, grep the scratch project repo for `fleet`, `project-orchestrator`, `porepo` — must be absent.
|
|
|
|
3. **Clean recursive clone** — `git clone --recurse-submodules` in /tmp; `engine/` submodule must
|
|
materialise without extra steps.
|
|
|
|
4. **agents.py status cold** — from /tmp clone, inside `nix develop`, `python3 engine/agents.py status`
|
|
must succeed (exit 0) without any pre-setup beyond the clone.
|
|
|
|
5. **fleet.toml sample parses** — `python3 -c "import tomllib; tomllib.load(open('fleet.toml','rb'))"`
|
|
must succeed.
|
|
|
|
6. **nix develop -c python3 -c 'import tomllib'** must succeed per DoD-5.
|
|
|
|
7. **Bootstrap doc exists** — README or docs/bootstrap.md describes the hand-scaffold flow.
|
|
|
|
8. **Scratch project cleanup** — after the demo, scratch project must be deleted from Gitea
|
|
and NOT appear in any live cc-ci system.
|
|
|
|
---
|
|
|
|
## Verdicts
|
|
|
|
### porepo: ALL DoD PASS @2026-06-13T19:19Z
|
|
|
|
Cold-verified from anonymous `/tmp/porepo-cold` recursive clone (no creds, no cached state).
|
|
Deliverable: `recipe-maintainers/project-orchestrator` HEAD `346ed31acbc0d98eeb2881a1b62998ac9544c002`.
|
|
|
|
**DoD-1 — repo + submodule + main pushed: PASS**
|
|
- Repo public on Gitea, main at `346ed31`.
|
|
- `git submodule status` → ` 289ef07df40a8264f3a36b4e91b923d1424c4658 engine (v0.1.0)` — exact v0.1.0 tag commit.
|
|
- `engine/agents.py` present in submodule.
|
|
|
|
**DoD-2 — `agents.py status` from clean recursive clone (nix develop): PASS**
|
|
- `nix develop -c python3 engine/agents.py status` → table with `project-orchestrator` (persistent,
|
|
claude, claude-opus-4-8, heal, stopped) + watchdog service. rc=0.
|
|
- devShell banner: `Python 3.11.11, tmux 3.5a, git version 2.47.2`.
|
|
|
|
**DoD-3 — fleet.toml schema + sample entry parses: PASS**
|
|
- `fleet.py validate` → `fleet: OK — 1 project(s), schema v1`, rc=0.
|
|
- `fleet.py status` → lists `example-recipe-ci` (enabled, agent-orchestrator@v0.1.0), `total=1 enabled=1 disabled=0`.
|
|
- `tomllib.load(fleet.toml)` → schema v1, project `example-recipe-ci`. Documented in `docs/fleet-registry.md`.
|
|
|
|
**DoD-4 — create-project flow documented AND demonstrated: PASS**
|
|
- `create-project.sh scratch-verify --dir /tmp/po-scratch --ref v0.1.0` scaffolded cleanly.
|
|
- Scratch project submodule pinned at `289ef07` (v0.1.0).
|
|
- `engine/agents.py status` (run via PO's nix develop) → worker agent table, rc=0.
|
|
- Tracked files: `.gitignore .gitmodules agents.toml engine` only — exactly minimal.
|
|
- No PO/fleet metadata: `grep -ril -e fleet -e project-orchestrator . --exclude-dir=engine --exclude-dir=.git` → empty (CLEAN).
|
|
- `scratch-verify` NOT registered in `fleet.toml`.
|
|
- `scratch-verify` NOT on Gitea (404) — local-only throwaway. Did not touch live cc-ci system.
|
|
- Scratch project cleaned up post-demo (`rm -rf /tmp/po-scratch`).
|
|
- Flow documented in `docs/manage-projects.md`.
|
|
|
|
**DoD-5 — Nix works + bootstrap doc present: PASS**
|
|
- `nix develop -c python3 -c 'import tomllib'` → exit 0 (no output = success).
|
|
- `docs/bootstrap.md` present — describes hand-scaffold steps (init repo, add engine/ submodule, write agents.toml, run `engine/agents.py up`).
|
|
- `flake.nix` devShell includes `python311`, `tmux`, `git` (with submodule support). `README.md` documents `nix develop`.
|
|
|
|
**Break-it probes (independent):**
|
|
- Submodule URL is `https://git.autonomic.zone/recipe-maintainers/agent-orchestrator.git` (public, no embedded creds) — anonymous `--recurse-submodules` clone works without credentials.
|
|
- Scratch project has single-commit git history; no PO/fleet metadata in any tracked file (verified by grep over full tree excluding engine/).
|
|
- `scratch-verify` never registered in fleet.toml and never pushed to Gitea.
|
|
|
|
**No findings. No VETO.**
|