disinto-ops/prerequisites.md
2026-04-19 17:05:05 +00:00

124 lines
6 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-19 -->
## 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 (239 nodes, 263 edges as of 2026-04-19)
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)
- [ ] 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-7)
- [x] Step 5: Edge + staging + chat + dispatcher + vault-runner on Nomad (S5.1S5.5, plus fixes S5-1 through S5-7)
- [ ] Step 6: Cutover runbook from docker-compose to Nomad+Vault (#1037 — vision)
Status: DONE (Steps 05 complete; Step 6 cutover runbook is operational, not a code prerequisite)
## Objective: Adoption — Landing page communicating value proposition
- [x] Website addressable exists (disinto.ai)
- [ ] Website observability — no engagement measurement (#426 — vision)
Status: BLOCKED — no evidence process connected to website
## 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
## Objective: Adoption — Core pipeline reliability
- [ ] dev-poll blocked label not cleared on re-claim (#1047 — backlog+priority+bug-report)
- [ ] Woodpecker agent unhealthy; log truncation on short-duration failures (#1044 — backlog+bug-report)
Status: BLOCKED — two open pipeline bugs degrading CI-fix loop and debugging
## --- 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 15 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)
- [ ] collect-engagement.sh never commits evidence (#982 — backlog+priority, blocked on #758)
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: 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