disinto-ops/prerequisites.md
planner-bot c947011765 chore: planner run 2026-04-18
- Updated prerequisite tree: Nomad Steps 1-4 marked DONE, added S5 vision objective
- Triaged 2 predictions: #968 (Nomad S5 stub) → #981, #967 (engagement data loss) → #982
- Filed vault procurement item for #758 (ops repo branch protection)
- Priority sync: added priority to #982

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-18 03:15:11 +00:00

124 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Prerequisite Tree
<!-- Last updated: 2026-04-18 -->
## Objective: Foundation — Core agent loop (dev → CI → review → merge)
- [x] dev-agent picks up backlog issues (dev/dev-agent.sh exists)
- [x] review-agent reviews PRs (review/review-pr.sh exists)
- [x] CI integration with Woodpecker (lib/ci-helpers.sh exists)
- [x] Stale in-progress recovery (#224 — closed)
- [x] Agent race condition fix (#160 — closed)
- [x] Dispatcher grep Alpine fix (#150 — closed)
Status: DONE
## Objective: Foundation — Supervisor health monitoring
- [x] supervisor-run.sh exists and runs via cron
- [x] preflight.sh collects health data
Status: DONE
## Objective: Foundation — Planner gap analysis against vision
- [x] Planner formula exists (run-planner.toml v4)
- [x] planner-run.sh cron wrapper exists
- [x] Planning runs established and maintaining prerequisite tree (runs 13)
Status: DONE
## Objective: Foundation — Multi-project support
- [x] Per-project TOML config (projects/*.toml)
- [x] load-project.sh helper
Status: DONE
## Objective: Foundation — Knowledge graph for structural defect detection
- [x] networkx package installed in agents container (#220 — closed)
- [x] build-graph.py exists in lib/
- [x] Graph report generating successfully (224 nodes, 251 edges as of 2026-04-17)
Status: DONE
## Objective: Foundation — Predictor-planner adversarial feedback loop
- [x] Predictor formula exists (run-predictor.toml)
- [x] Planner prediction triage step defined
- [x] Prediction workflow labels created on Forgejo (#225 — closed)
- [x] Predictor filing predictions (4 predictions triaged in run 2)
Status: DONE
## --- FOUNDATION MILESTONE: DONE ---
## Objective: Adoption — One-command bootstrap (disinto init → disinto up)
- [x] disinto init re-run stability (#158 — closed)
- [x] disinto init repo creation API endpoint (#164 — closed)
- [x] Prediction labels created during init (#225 — closed)
- [x] Ops repo migration issue filed (#425 — closed, superseded by #820)
- [ ] Ops repo branch protection blocks remote writes (#758 — blocked, HUMAN_BLOCKED, blocked-on-vault vault/pending/disinto-ops-branch-protection.md)
- [ ] Re-seed ops repo directories (#820 — backlog+priority, blocked on #758)
Status: BLOCKED — #758 ops repo branch protection needs human admin action
## Objective: Adoption — Built-in Forgejo + Woodpecker CI
- [x] Docker compose with Forgejo + Woodpecker
- [x] Woodpecker OAuth2 redirect URI fix (#172 — closed)
- [x] WOODPECKER_HOST override fix (#178 — closed)
Status: DONE
## Objective: Adoption — Nomad+Vault orchestration
- [x] Step 0: Nomad+Vault installers (cluster-up.sh, install.sh, vault-init.sh, lib-systemd.sh)
- [x] Step 1: Forgejo on Nomad (nomad/jobs/forgejo.hcl, deploy.sh, S1.3 wiring, S1.4 CI validation)
- [x] Step 2: Vault policies + secret import (S2.1S2.6, plus fixes S2-A through S2-G)
- [x] Step 3: Woodpecker on Nomad (S3.1S3.4 jobspecs + OAuth + wiring, plus fixes S3-1 through S3-6)
- [x] Step 4: Agents on Nomad (S4.1 agents.hcl with 7 roles + llama + vault-templated tokens, S4.2 --with agents wiring, plus fixes S4-1 through S4-5)
- [ ] Step 5: Dispatcher Nomad backend + retire docker-compose dispatch (#981 — vision)
Status: DONE (S0S4 complete; S5 is Ship-milestone work, not Adoption-blocking)
## Objective: Adoption — Landing page communicating value proposition
- [x] Website addressable exists (disinto.ai)
- [ ] Website observability — no engagement measurement (#426 — vision)
- [ ] Engagement data pipeline non-functional — data collected but never committed (#982 — backlog+priority, blocked on #820)
Status: BLOCKED — no evidence process connected to website; engagement pipeline broken
## Objective: Adoption — Example project demonstrating full lifecycle
- [ ] No example project exists (#697 — vision+priority)
- [ ] Requires verified bootstrap (blocked on #758/#820)
Status: BLOCKED — depends on bootstrap completion and ops repo migration
## --- ADOPTION MILESTONE: IN PROGRESS ---
## Objective: Ship (Fold 2) — Deploy profiles per artifact type
- [ ] No deploy profiles defined
- [x] CI pipeline working (Woodpecker OAuth fixed)
- [x] Nomad jobspec infrastructure available (Steps 14 complete)
Status: BLOCKED — not started, needs design (vision-level)
## Objective: Ship (Fold 2) — Vault-gated fold transitions
- [x] Vault redesign complete (#73-#77 — all closed)
- [x] Vault PR workflow documented (docs/VAULT.md)
- [x] Vault + Nomad integration (template stanzas, JWT auth, policies)
- [ ] Vault lifecycle directories on remote ops repo (blocked on #758/#820)
Status: BLOCKED — #758/#820 ops repo dirs needed for vault workflow
## Objective: Ship (Fold 2) — Engagement measurement baked into deploy pipelines
- [ ] No engagement measurement exists
- [ ] No observables yet (AGENTS.md confirms)
Status: BLOCKED — depends on deploy profiles + website observability (#426)
## Objective: Ship (Fold 2) — Rent-a-human for gated channels
- [x] run-rent-a-human formula exists
- [ ] Not yet exercised in production
Status: READY
## Objective: Ship (Fold 2) — Assumptions register
- [ ] No assumptions register exists
Status: BLOCKED — not started
## Objective: Ship (Fold 2) — Nomad S5 dispatcher cutover
- [ ] Implement _launch_runner_nomad() in dispatcher (#981 — vision)
- [ ] Implement _dispatch_sidecar_nomad() in dispatcher (#981 — vision)
- [ ] End-to-end test before retiring docker-compose dispatch
Status: BLOCKED — vision-level design decisions needed
## Objective: Learn (Fold 3) — Observable-driven planning
- [ ] No observables exist yet
Status: BLOCKED — depends on Ship milestone (engagement measurement)
## Objective: Learn (Fold 3) — Predictor challenges assumptions against signals
- [ ] Requires observables + assumptions register
Status: BLOCKED — depends on Ship milestone
## Objective: Learn (Fold 3) — Audience variation + signal detection
- [ ] Requires observables
Status: BLOCKED — depends on Ship milestone