4.5 KiB
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):
-
Submodule pinned to v0.1.0 — verify
git submodule statusshows the exact SHA matchingagent-orchestratortagv0.1.0, not HEAD or a newer commit. -
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. -
Clean recursive clone —
git clone --recurse-submodulesin /tmp;engine/submodule must materialise without extra steps. -
agents.py status cold — from /tmp clone, inside
nix develop,python3 engine/agents.py statusmust succeed (exit 0) without any pre-setup beyond the clone. -
fleet.toml sample parses —
python3 -c "import tomllib; tomllib.load(open('fleet.toml','rb'))"must succeed. -
nix develop -c python3 -c 'import tomllib' must succeed per DoD-5.
-
Bootstrap doc exists — README or docs/bootstrap.md describes the hand-scaffold flow.
-
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.pypresent in submodule.
DoD-2 — agents.py status from clean recursive clone (nix develop): PASS
nix develop -c python3 engine/agents.py status→ table withproject-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→ listsexample-recipe-ci(enabled, agent-orchestrator@v0.1.0),total=1 enabled=1 disabled=0.tomllib.load(fleet.toml)→ schema v1, projectexample-recipe-ci. Documented indocs/fleet-registry.md.
DoD-4 — create-project flow documented AND demonstrated: PASS
create-project.sh scratch-verify --dir /tmp/po-scratch --ref v0.1.0scaffolded 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 engineonly — exactly minimal. - No PO/fleet metadata:
grep -ril -e fleet -e project-orchestrator . --exclude-dir=engine --exclude-dir=.git→ empty (CLEAN). scratch-verifyNOT registered infleet.toml.scratch-verifyNOT 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.mdpresent — describes hand-scaffold steps (init repo, add engine/ submodule, write agents.toml, runengine/agents.py up).flake.nixdevShell includespython311,tmux,git(with submodule support).README.mddocumentsnix develop.
Break-it probes (independent):
- Submodule URL is
https://git.autonomic.zone/recipe-maintainers/agent-orchestrator.git(public, no embedded creds) — anonymous--recurse-submodulesclone 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-verifynever registered in fleet.toml and never pushed to Gitea.
No findings. No VETO.