Fixes #757 ## Changes Separate operations from code into {project}-ops repo pattern. Added OPS_REPO_ROOT infrastructure (env.sh, load-project.sh, formula-session.sh with ensure_ops_repo helper). Updated all 8 agent scripts and 7 formulas to read/write vault items, journals, evidence, prerequisites, RESOURCES.md, and knowledge from the ops repo. Added setup_ops_repo() to disinto init for automatic ops repo creation and seeding. Removed migrated data from code repo (vault data dirs, planner journal/memory/prerequisites, supervisor journal/best-practices, evidence, RESOURCES.md). Updated all documentation. 55 files changed, ShellCheck clean, all 38 phase tests pass. Co-authored-by: openhands <openhands@all-hands.dev> Reviewed-on: https://codeberg.org/johba/disinto/pulls/767 Reviewed-by: Disinto_bot <disinto_bot@noreply.codeberg.org>
This commit is contained in:
parent
a899fd0733
commit
71fe89cdd0
55 changed files with 421 additions and 932 deletions
|
|
@ -4,7 +4,7 @@
|
|||
**Role**: Strategic planning using a Prerequisite Tree (Theory of Constraints),
|
||||
executed directly from cron via tmux + Claude.
|
||||
Phase 0 (preflight): pull latest code, load persistent memory and prerequisite
|
||||
tree from `planner/MEMORY.md` and `planner/prerequisite-tree.md`. Also reads
|
||||
tree from `$OPS_REPO_ROOT/knowledge/planner-memory.md` and `$OPS_REPO_ROOT/prerequisites.md`. Also reads
|
||||
all available formulas: factory formulas (`$FACTORY_ROOT/formulas/*.toml`) and
|
||||
project-specific formulas (`$PROJECT_REPO_ROOT/formulas/*.toml`). Phase 1
|
||||
(prediction-triage): triage `prediction/unreviewed` issues filed by the
|
||||
|
|
@ -20,7 +20,7 @@ prerequisites, discover new ones, update the tree. **Also scans comments on
|
|||
referenced issues for bounce/stuck signals** (BOUNCED, LABEL_CHURN)
|
||||
to detect issues ping-ponging between backlog and underspecified. Issues that
|
||||
need human decisions or external resources are filed as vault procurement items
|
||||
(`vault/pending/*.md`) instead of being escalated. Phase 3
|
||||
(`$OPS_REPO_ROOT/vault/pending/*.md`) instead of being escalated. Phase 3
|
||||
(file-at-constraints): identify the top 3 unresolved prerequisites that block
|
||||
the most downstream objectives — file issues as either `backlog` (code changes,
|
||||
dev-agent) or `action` (run existing formula, action-agent). **Stuck issues
|
||||
|
|
@ -28,18 +28,17 @@ dev-agent) or `action` (run existing formula, action-agent). **Stuck issues
|
|||
in breakdown mode instead of being re-promoted** — this breaks the ping-pong
|
||||
loop by splitting them into dev-agent-sized sub-issues. **Human-blocked issues
|
||||
are routed through the vault** — the planner files an actionable procurement
|
||||
item (`vault/pending/<project>-<slug>.md` with What/Why/Human action/Factory
|
||||
item (`$OPS_REPO_ROOT/vault/pending/<project>-<slug>.md` with What/Why/Human action/Factory
|
||||
will then sections) and marks the prerequisite as blocked-on-vault in the tree.
|
||||
Deduplication: checks pending/ + approved/ + fired/ before creating.
|
||||
Phase 4 (journal-and-memory): write updated prerequisite tree + daily journal
|
||||
entry (committed to git) and update `planner/MEMORY.md` (committed to git).
|
||||
Phase 5 (commit-and-pr): one commit with all file changes, push, create PR.
|
||||
entry (committed to ops repo) and update `$OPS_REPO_ROOT/knowledge/planner-memory.md`.
|
||||
Phase 5 (commit-ops): commit all ops repo changes, push directly.
|
||||
AGENTS.md maintenance is handled by the Gardener.
|
||||
|
||||
**Artifacts use `$PROJECT_REPO_ROOT`**: All planner artifacts (journal,
|
||||
prerequisite tree, memory, vault state) live under `$PROJECT_REPO_ROOT/planner/`
|
||||
and `$PROJECT_REPO_ROOT/vault/`, not `$FACTORY_ROOT`. Each project manages its
|
||||
own planner state independently.
|
||||
**Artifacts use `$OPS_REPO_ROOT`**: All planner artifacts (journal,
|
||||
prerequisite tree, memory, vault state) live under `$OPS_REPO_ROOT/`.
|
||||
Each project manages its own planner state in a separate ops repo.
|
||||
|
||||
**Trigger**: `planner-run.sh` runs daily via cron (accepts an optional project
|
||||
TOML argument, defaults to `projects/disinto.toml`). Sources `lib/guard.sh` and
|
||||
|
|
@ -60,12 +59,12 @@ component, not work.
|
|||
- `formulas/groom-backlog.toml` — Dual-mode formula: grooming (default) or
|
||||
breakdown (dispatched by planner for bounced/stuck issues — splits the issue
|
||||
into dev-agent-sized sub-issues, removes `underspecified` label)
|
||||
- `planner/prerequisite-tree.md` — Prerequisite tree: versioned constraint
|
||||
- `$OPS_REPO_ROOT/prerequisites.md` — Prerequisite tree: versioned constraint
|
||||
map linking VISION.md objectives to their prerequisites. Planner owns the
|
||||
tree, humans steer by editing VISION.md. Tree grows organically as the
|
||||
planner discovers new prerequisites during runs
|
||||
- `planner/MEMORY.md` — Persistent memory across runs (committed to git)
|
||||
- `planner/journal/*.md` — Daily raw logs from each planner run (committed to git)
|
||||
- `$OPS_REPO_ROOT/knowledge/planner-memory.md` — Persistent memory across runs (in ops repo)
|
||||
- `$OPS_REPO_ROOT/journal/planner/*.md` — Daily raw logs from each planner run (in ops repo)
|
||||
|
||||
**Constraint focus**: The planner uses Theory of Constraints to avoid premature
|
||||
issue filing. Only the top 3 unresolved prerequisites that block the most
|
||||
|
|
@ -74,5 +73,5 @@ prerequisite tree but NOT as issues. This prevents the "spray issues across
|
|||
all milestones" pattern that produced premature work in planner v1/v2.
|
||||
|
||||
**Environment variables consumed**:
|
||||
- `FORGE_TOKEN`, `FORGE_PLANNER_TOKEN` (falls back to FORGE_TOKEN), `FORGE_REPO`, `FORGE_API`, `PROJECT_NAME`, `PROJECT_REPO_ROOT`
|
||||
- `FORGE_TOKEN`, `FORGE_PLANNER_TOKEN` (falls back to FORGE_TOKEN), `FORGE_REPO`, `FORGE_API`, `PROJECT_NAME`, `PROJECT_REPO_ROOT`, `OPS_REPO_ROOT`
|
||||
- `PRIMARY_BRANCH`, `CLAUDE_MODEL` (set to opus by planner-run.sh)
|
||||
|
|
|
|||
|
|
@ -1,45 +0,0 @@
|
|||
<!-- summarized-through-run: 6 -->
|
||||
# Planner Memory
|
||||
|
||||
## 2026-03-26 — Sixth planner run
|
||||
|
||||
### Milestone state
|
||||
- **Foundation**: COMPLETE. All agent loops, supervisor, planner, multi-project, knowledge graph, predictor-planner feedback loop — all working.
|
||||
- **Adoption**: 4/5 COMPLETE. Bootstrap (#393), docs (#394), dashboard (#395), landing page (#534) all done. Only #466 (example project) remains — stuck on human decision since 2026-03-23.
|
||||
- **Ship (Fold 2)**: ENTERING SCOPE. Rent-a-human (#679) done. Exec agent (#699) done. Observable addressables (#718) filed. Deploy profiles and assumptions register not yet tracked.
|
||||
- **Scale**: DEFERRED. No external users yet. Plugin system, community formulas, hosted option all premature.
|
||||
|
||||
### Completed since last summary (runs 2-6)
|
||||
- Bootstrap fully hardened: init smoke test (#668), CI wiring (#661), Forgejo reachability (#660), 10+ bootstrap fixes
|
||||
- Full stack containerized (#618, #619) with Forgejo, Woodpecker, Dendrite
|
||||
- Autonomous merge pipeline (#568) — PRs auto-merge on CI pass + approval
|
||||
- Unified escalation path (#510) — PHASE:escalate replaces needs_human
|
||||
- Factory operational reliability — guard logging (#663), stale phase cleanup (#664)
|
||||
- Prediction/backlog killed (#686) — planner now only ACTIONs or DISMISSes predictions
|
||||
- Planner v2 — graph-driven formula (#667), tea CLI integration (#666)
|
||||
- Exec agent (#699) — interactive assistant via Matrix
|
||||
- Rent-a-human (#679) — formula-dispatchable human action drafts
|
||||
- Tech-debt queue cleared (~30 items)
|
||||
- Skill package initiative started (#710-#715) from research (#709)
|
||||
|
||||
### Patterns
|
||||
- **Label loss resolved**: #535 fixed the recurring label-loss pattern. Labels now persist reliably.
|
||||
- **Predictor signal quality improved**: Later runs show 100% substantive predictions. Over-signaling on transient ops issues has stopped.
|
||||
- **Human bottleneck is real**: #466 escalated 2026-03-23, still no response after 3 days. When the factory needs human input and doesn't get it, work halts on that branch entirely.
|
||||
- **Factory throughput is extreme when unblocked**: 50+ issues cleared in ~5 days (2026-03-20 to 2026-03-25). Pipeline processes ~10 issues/day when backlog is stocked.
|
||||
- **Duplicate issues from parallel creation**: #710/#714 and #711/#715 are duplicates — likely created in separate exec/research sessions. Gardener should catch these.
|
||||
- **prediction/backlog migration**: All 4 legacy prediction/backlog items dismissed and closed in run 6. prediction/dismissed label created.
|
||||
|
||||
### Strategic direction
|
||||
- Ship milestone is the next frontier. Adoption is blocked only on #466 (human decision).
|
||||
- Skill package distribution (#710→#711→#712) is the immediate pipeline work — packaging disinto for external discovery.
|
||||
- Observable addressables (#718) bridges Fold 2 → Fold 3 — core vision item.
|
||||
- The factory has the exec agent (#699) and rent-a-human (#679) — two vision capabilities now live.
|
||||
- VISION.md updated with factory primitives (resources, addressables, observables) — formalizes the framework.
|
||||
|
||||
### Watch list
|
||||
- #466: human response overdue (3 days) — will it ever be unblocked?
|
||||
- #710-#712: skill package pipeline — first new work direction since Adoption
|
||||
- #714/#715: duplicate cleanup by gardener
|
||||
- prediction/backlog label: should be deleted per #686, still exists
|
||||
- Ship milestone gaps: deploy profiles, assumptions register, vault-gated folds — not yet filed
|
||||
|
|
@ -1,65 +0,0 @@
|
|||
# Planner run — 2026-03-21 09:29 UTC
|
||||
|
||||
## Predictions triaged
|
||||
- #455: DISMISS — orphaned gardener session, transient, supervisor's job
|
||||
- #454: DISMISS — crashed review session, transient, supervisor recovers
|
||||
- #449: DISMISS — legacy predictor duplication, already tracked by #419
|
||||
- #448: WATCH — disk at 75% (was 79% last run), improving trend, supervisor monitors
|
||||
- #447: DISMISS — swap at 52%, expected behavior with memory guards
|
||||
- #446: WATCH — harb pipeline stalled 8h on needs_human, supervisor didn't escalate
|
||||
|
||||
## Issues created
|
||||
- #465: feat: supervisor escalates prolonged PHASE:needs_human states — revealed by #446 pattern, prevents silent pipeline stalls
|
||||
- #466: feat: example project demonstrating the full Disinto lifecycle — VISION.md Adoption gap, needed by docs and landing page
|
||||
|
||||
## Label fixes
|
||||
- #393 (disinto init): added backlog label — was created last run but lost its label
|
||||
- #394 (quickstart docs): added backlog label — same issue
|
||||
- #395 (metrics dashboard): added backlog label — same issue
|
||||
|
||||
## Observations
|
||||
- Predictor continues to over-signal on transient operational issues (4/6 predictions were transient tmux/session issues the supervisor already handles). Pattern from last run confirmed.
|
||||
- Adoption issues from last planner run (#393/#394/#395) existed but had NO labels. The dev-agent only picks up backlog-labeled issues. Root cause unclear — either the label API call failed silently during creation, or labels were removed. Fixed this run.
|
||||
- Foundation milestone remains complete. Adoption still the bottleneck — no progress since last run because issues weren't in the backlog.
|
||||
- Tech-debt and small backlog items (~20) will be processed before Adoption features due to sequential pipeline and lower issue numbers.
|
||||
- #357 (action-agent runtime isolation) is in-progress — active dev work happening.
|
||||
|
||||
## Deferred
|
||||
- Scale milestone (multi-project works, plugin system premature without users)
|
||||
- Evidence pipeline (harb-specific, blocked on #1047)
|
||||
- Production halt/resume (#1) — far future, no users to protect yet
|
||||
- Multi-VPS (#4) — premature, single server handles current load
|
||||
- Adding backlog labels to #462 (PHASE:escalate) and #291 (secrets in formulas) — both valid but not highest leverage this cycle
|
||||
|
||||
---
|
||||
|
||||
# Planner run — 2026-03-21 10:05 UTC
|
||||
|
||||
## Predictions triaged
|
||||
No unreviewed predictions.
|
||||
|
||||
## Issues created
|
||||
No new issues — backlog is well-stocked (~30 open items) and aligned with VISION.md.
|
||||
|
||||
## Label fixes
|
||||
- #291 (secrets in formulas): added backlog label — deferred last run, now promoted
|
||||
- #289 (gardener creates investigation issues for closed escalations): added backlog label
|
||||
- #462 (PHASE:escalate): added backlog label — complements #465
|
||||
|
||||
## Closures
|
||||
- #144 (reschedule planner after predictor): closed — already implemented (predictor 06:00, planner weekly)
|
||||
|
||||
## Observations
|
||||
- #357 (action-agent runtime isolation) COMPLETED since last run — merged via PR #464. Watch item resolved.
|
||||
- #360 (no relabeling on DISMISS) also completed — merged via PR #468.
|
||||
- Label persistence: #393/#394/#395 retain their backlog labels. Watch item resolved — the label loss from last run was a one-time issue.
|
||||
- #361 (planner journal pattern) is in-progress — active dev work.
|
||||
- Backlog queue still deep: ~20 tech-debt and small fixes sit ahead of the 4 Adoption features (#393/#394/#395/#466). Sequential pipeline means Adoption work is weeks out unless manually prioritized.
|
||||
- Three previously unlabeled issues (#291, #289, #462) were invisible to the dev-agent. Now labeled as backlog. Last run deferred #291 and #462; this run is the right time to make them visible since the pipeline needs work to process.
|
||||
|
||||
## Deferred
|
||||
- Scale milestone (plugin system, hosted option, community formulas — premature without users)
|
||||
- Multi-VPS (#4) — single server handles current load
|
||||
- Production halt/resume (#1) — no users to protect yet
|
||||
- Self-tuning wake parameters (#2) — current static cron schedule works fine
|
||||
- Memory update — only 2 runs since last summarization, threshold is 5
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
# Planner run — 2026-03-22 07:02 UTC
|
||||
|
||||
## Predictions triaged
|
||||
- #528: DISMISS — missing backlog label on #466. Fixed directly by adding the label. Recurring label-loss pattern (4/4 planner-created issues affected). Closed.
|
||||
- #529: WATCH — swap at 57%, up from 52% (#447). Available RAM (4385MB) still above 2000MB threshold. Monitoring upward trend.
|
||||
|
||||
## Prerequisite tree updates
|
||||
- Resolved: #393, #394, #395, #510, #504, #516, #514 all closed since last run
|
||||
- Objectives completed: 5 moved to DONE (init, docs, dashboard, escalation, vault)
|
||||
- Objectives ready: #466 (example project), #534 (landing page) — both in backlog
|
||||
|
||||
## Top 3 constraints
|
||||
1. #466 (example project) — blocks Adoption completion → delays Scale — issue already in backlog
|
||||
2. #534 (landing page value proposition) — blocks Growth goals visibility — issue filed this run
|
||||
3. #535 (label-loss on planner-created issues) — cross-cutting reliability — issue filed this run
|
||||
|
||||
## Issues created
|
||||
- #534: feat: landing page communicates value proposition clearly — Adoption milestone gap, Growth goals
|
||||
- #535: fix: planner-created issues lose backlog labels on creation — 4/4 failure rate, delays pipeline activation
|
||||
|
||||
## Label fixes
|
||||
- #466: added backlog label — confirmed prediction #528 was correct, recurring pattern
|
||||
|
||||
## Observations
|
||||
- Explosive progress: ~50 issues closed between 2026-03-20 and 2026-03-22. Foundation and most of Adoption now complete.
|
||||
- Adoption milestone nearly done: only #466 (example project) and #534 (landing page) remain. Both are READY with no blocking prerequisites.
|
||||
- Tech-debt queue (9 items: #93, #110, #179, #310, #311, #330, #429, #433, #435) has lower issue numbers than #466, so sequential pipeline will process them first.
|
||||
- #531 (dev-poll direct merges) is in-progress — improves pipeline throughput for approved PRs.
|
||||
- Vault infrastructure deployed but empty (no pending/approved/fired items). Procurement gate available when Scale needs resources.
|
||||
- Label-loss pattern confirmed as persistent: 4/4 planner-created issues lost backlog labels. Filed #535 to investigate and fix.
|
||||
- Predictor signal quality improving: 2 predictions this run (vs 6 last run), both actionable.
|
||||
- Scale milestone remains premature — no users yet. Plugin system, community formulas, hosted option all deferred.
|
||||
|
||||
## Deferred (in tree, not filed)
|
||||
- Scale: plugin system, community formulas, hosted option — premature without users
|
||||
- Vision items: #1 (halt/resume), #2 (self-tuning), #4 (multi-VPS) — far future
|
||||
- Prediction #448 (disk 75%): still in prediction/backlog, trend was improving
|
||||
- Prediction #446 (harb stall): supervisor escalation (#465/#510) now in place, should prevent recurrence
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
# Planner run — 2026-03-23 07:15 UTC
|
||||
|
||||
## Predictions triaged
|
||||
- #583: DISMISS — #568 (merge guard blocker) already exists as an open issue. Fixed labels directly (added backlog+priority).
|
||||
- #582: DISMISS — backlog depletion is expected; this planner run is the replenishment cycle. Factory cleared 20+ issues in 48h.
|
||||
- #581: DISMISS — Gitea CVEs are Codeberg's upstream infrastructure. Disinto can't upgrade their Gitea. RCE requires repo-template processing (not in our workflow). Auto-merge cancellation mitigated by our review-agent flow.
|
||||
- #580: WATCH — Caddy CVEs. disinto.ai is a static site without FastCGI/PHP, so the HIGH RCE (CVE-2026-27590) doesn't apply. Medium CVEs low risk. No system-upgrade formula available.
|
||||
|
||||
## Prerequisite tree updates
|
||||
- Resolved: #534 (landing page) → DONE, #535 (label-loss fix) → resolved
|
||||
- Discovered: #568 (merge guard blocker) added as new objective — every PR merge escalates, blocking full pipeline autonomy
|
||||
- Status change: #466 remains READY, #534 moved to DONE
|
||||
|
||||
## Top 3 constraints
|
||||
1. #568 — PreToolUse guard blocks merge — affects every PR across all agents — issue already open, added backlog+priority
|
||||
2. #466 — example project (last Adoption item) — blocks Adoption completion — issue already open, added backlog+priority
|
||||
3. Tech-debt backlog visibility — 9 items invisible to dev-poll — fixed by adding backlog labels to all 9
|
||||
|
||||
## Issues created
|
||||
No new issues — all constraints already have existing issues.
|
||||
|
||||
## Priority label changes
|
||||
- Added priority: #568, #466 (top 2 constraints)
|
||||
- No priority labels removed (clean set)
|
||||
|
||||
## Label fixes
|
||||
- #568: added backlog + priority (was unlabeled, invisible to dev-poll)
|
||||
- #466: added backlog + priority (label-loss recurrence — 5th time this pattern appears)
|
||||
- #93, #110, #179, #310, #311, #330, #429, #433, #435: added backlog label to all 9 tech-debt items
|
||||
|
||||
## Observations
|
||||
- Explosive throughput confirmed: factory cleared entire backlog (20+ issues, 19+ PRs) in ~48h. The predictor correctly flagged the empty state (#582).
|
||||
- Label-loss persists despite #535 fix: #466 lost its label AGAIN. The #535 fix addressed planner-created label application, but #466 was created before that fix. Root cause may be that the original label was never applied, or was stripped by gardener quality gate (the issue body does have acceptance criteria, so the gate shouldn't strip it).
|
||||
- Merge guard (#568) is the #1 factory constraint: every PR requires human merge intervention. Dev-poll's try_direct_merge() catches approved PRs eventually, but with delay and false escalations. This should be fixed before the factory tackles #466 (which will generate multiple PRs).
|
||||
- Adoption milestone nearly complete: 4/5 objectives DONE (#393, #394, #395, #534). Only #466 remains.
|
||||
- Scale milestone remains premature — no external users yet. Plugin system, community formulas, hosted option all deferred.
|
||||
- Vault infrastructure deployed but empty — no procurement requests needed this cycle.
|
||||
- RESOURCES.md unchanged since last run.
|
||||
|
||||
## Deferred (in tree, not filed)
|
||||
- Scale: plugin system, community formulas, hosted option — premature without users
|
||||
- Vision items: #1 (halt/resume), #2 (self-tuning), #4 (multi-VPS) — far future
|
||||
- Prediction #529 (swap 57%): still in prediction/backlog, stable
|
||||
- Prediction #580 (Caddy CVEs): watching, static site mitigates RCE
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
# Planner run — 2026-03-25 07:15 UTC
|
||||
|
||||
## Predictions triaged
|
||||
- #656: DISMISS — planning deadlock is resolved by this run; tree staleness corrected
|
||||
- #655: PROMOTE_BACKLOG → #663 — check_active guard should log when skipping
|
||||
- #644: WATCH — disk P1 reactive cleanup works; not urgent enough for backlog slot
|
||||
- #643: PROMOTE_BACKLOG → #664 — supervisor should clean stale phase files for closed issues
|
||||
- #642: DISMISS — HTTP 401 likely caused by #653 (wrong remote), now fixed
|
||||
- #640: DISMISS — all 5 bootstrap failures (#634-638) closed; remaining fixes in pipeline
|
||||
|
||||
## Prerequisite tree updates
|
||||
- Resolved: #568 (merge guard) moved from BLOCKED to DONE — was closed but tree was stale
|
||||
- Resolved: bootstrap hardening issues #634-638, #652, #653, #658 all closed
|
||||
- Discovered: #660 (Forgejo reachability) and #661 (Woodpecker CI wiring) as remaining init prerequisites
|
||||
- Added: new objective "Factory operational reliability" with #663 and #664
|
||||
- Added: #668 (end-to-end init smoke test) as init prerequisite
|
||||
- Status change: #466 marked ESCALATED (bounced + gardener escalation, awaiting human decision)
|
||||
|
||||
## Top 5 constraints
|
||||
1. #466 — example project — blocks Adoption completion — ESCALATED, awaiting human decision
|
||||
2. #661 — Woodpecker CI wiring — blocks init completeness — in backlog with priority
|
||||
3. #668 — init smoke test — blocks init quality assurance — filed this run
|
||||
4. #663 — guard logging — prevents invisible agent dropouts — filed this run (from #655)
|
||||
5. #664 — stale phase cleanup — reduces supervisor signal noise — filed this run (from #643)
|
||||
|
||||
## Stuck issues detected
|
||||
- #466: BOUNCED (1x, "too large for single session") + ESCALATED (gardener: "needs human decision on approach") — added comment noting escalation seen, suggested option (b) local demo may be viable
|
||||
|
||||
## Issues created
|
||||
- #663: fix: check_active guard should log to stderr when skipping (from prediction #655)
|
||||
- #664: fix: supervisor should clean up stale PHASE:escalate files (from prediction #643)
|
||||
- #668: feat: end-to-end disinto init smoke test in CI (new constraint — init quality)
|
||||
|
||||
## Priority label changes
|
||||
- Added priority: #661, #663, #664, #668 (top constraints)
|
||||
- Kept priority: #466 (still #1 constraint, though escalated)
|
||||
- No priority removed (only #466 had it previously)
|
||||
|
||||
## Observations
|
||||
- Massive progress since last run (2026-03-23): ~30 issues closed in 48h. Bootstrap hardening wave (#634-638, #652, #653, #658) completed. Full stack containerized (#618, #619).
|
||||
- Planner missed 2026-03-24 run due to active-state guard deploy gap (#655). State files created 21h after guard merged. No visible signal of the missed run.
|
||||
- Factory nearly idle: 1 in-progress (#660), 1 backlog (#661), plus 3 newly filed. After current pipeline clears, #466 is the only Adoption item left.
|
||||
- Adoption milestone 4/5 complete. #466 is stuck on human decision (external vs local demo). The containerized stack work makes option (b) viable — suggested in comment.
|
||||
- #568 (merge guard) was marked BLOCKED in tree but actually closed — 2-day stale tree from missed planner run.
|
||||
- Predictor signal quality: 6 predictions, all substantive. 2 promoted, 1 watched, 3 dismissed. Better signal-to-noise than earlier runs.
|
||||
- RESOURCES.md unchanged. Vault empty (no procurement requests).
|
||||
|
||||
## Deferred (in tree, not filed)
|
||||
- Scale: plugin system, community formulas, hosted option — premature without users
|
||||
- Vision items: #1 (halt/resume), #2 (self-tuning), #4 (multi-VPS) — far future
|
||||
- Prediction #644 (disk P1): watching, reactive cleanup works
|
||||
- Prediction #580 (Caddy CVEs): still in prediction/backlog, static site mitigates
|
||||
- Prediction #529 (swap 57%): stable, not trending worse
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
# Planner run — 2026-03-26 07:15 UTC
|
||||
|
||||
## Predictions triaged
|
||||
- #644: DISMISS — disk P1 handled by supervisor reactive cleanup, no persistent issue
|
||||
- #580: DISMISS — Caddy CVEs don't apply to static site (no FastCGI/PHP)
|
||||
- #529: DISMISS — swap stable at 57%, supervisor monitors, not trending worse
|
||||
- #446: DISMISS — root cause fixed by #465/#510 escalation path improvements
|
||||
All 4 were prediction/backlog → migrated to prediction/dismissed per #686 policy. Created prediction/dismissed label (was missing).
|
||||
|
||||
## Prerequisite tree updates
|
||||
- Resolved: #660 (Forgejo reachability), #661 (Woodpecker CI wiring), #668 (init smoke test), #663 (guard logging), #664 (stale phase cleanup) — all closed
|
||||
- Objectives completed: bootstrap (#393) now FULLY DONE (all prereqs resolved), factory operational reliability DONE
|
||||
- New objectives added: exec agent (#699) DONE, rent-a-human (#679) DONE, skill package distribution (#710-#712), observable addressables (#718)
|
||||
- Discovered: #710-#715 skill package initiative (created since last run), with #714/#715 as duplicates of #710/#711
|
||||
|
||||
## Top 5 constraints
|
||||
1. #466 — example project — blocks Adoption completion — ESCALATED 3 days, no human response
|
||||
2. #710 — skill package creation — enables distribution — in backlog with priority
|
||||
3. #718 — observable addressables — Ship milestone bridge — filed this run
|
||||
4. #714/#715 — duplicate issues — pending gardener cleanup
|
||||
5. prediction/backlog label — should be deleted per #686 — needs admin action
|
||||
|
||||
## Stuck issues detected
|
||||
- #466: ESCALATED (since 2026-03-23, 3 days) — no human response. Dev-agent bounced as too large, gardener escalated for approach decision. Not re-promoting — already has priority label.
|
||||
|
||||
## Issues created
|
||||
- #718: feat: observable addressables — engagement measurement for deployed artifacts — Ship milestone, Fold 2→3 bridge
|
||||
|
||||
## Priority label changes
|
||||
- Added priority: #710 (next ready pipeline work)
|
||||
- Kept priority: #466 (still #1 constraint, escalated)
|
||||
- No priority removed
|
||||
|
||||
## Label changes
|
||||
- #710, #711, #712, #713: added backlog (were unlabeled, invisible to pipeline)
|
||||
- #644, #580, #529, #446: relabeled from prediction/backlog to prediction/dismissed, closed
|
||||
- Created prediction/dismissed label (id: 1335444) — missing despite #686 implementation
|
||||
|
||||
## Observations
|
||||
- Explosive progress continues: ~30 issues closed since last run (2026-03-25). Bootstrap fully hardened, init smoke test passing, exec agent deployed, rent-a-human implemented.
|
||||
- Factory nearly idle: no backlog items existed until this run labeled #710-#713. The skill package chain is the only ready work.
|
||||
- Skill package initiative (#710-#715) appeared since last run — created from #709 research. Two parallel tracks with duplicates (#710/#714, #711/#715). Preferred #710 chain, flagged duplicates for gardener.
|
||||
- Adoption milestone 4/5 complete. #466 stuck 3 days on human decision. All technical prerequisites resolved. The human bottleneck is real.
|
||||
- Ship milestone entering scope: #679 (rent-a-human) and #699 (exec agent) already done. #718 (observable addressables) filed. Deploy profiles and assumptions register remain untracked.
|
||||
- VISION.md updated this cycle (3c97ddb) — factory primitives (resources, addressables, observables) now formally defined. Tree reflects this.
|
||||
- RESOURCES.md unchanged. Vault empty (no procurement requests).
|
||||
- Graph report clean: no cycles, no bottlenecks. Orphan issues are all closed bug fixes — expected.
|
||||
|
||||
## Deferred (in tree, not filed)
|
||||
- Ship: deploy profiles per artifact type — premature until skill package or example project demonstrates need
|
||||
- Ship: assumptions register — needs design decision on format
|
||||
- Ship: vault-gated fold transitions — vault infrastructure exists, fold logic not yet designed
|
||||
- Scale: plugin system, community formulas, hosted option — premature without users
|
||||
- Vision items: #1 (halt/resume), #2 (self-tuning), #4 (multi-VPS) — far future
|
||||
|
|
@ -48,30 +48,33 @@ log "--- Planner run start ---"
|
|||
|
||||
# ── Load formula + context ───────────────────────────────────────────────
|
||||
load_formula "$FACTORY_ROOT/formulas/run-planner.toml"
|
||||
build_context_block VISION.md AGENTS.md RESOURCES.md planner/prerequisite-tree.md
|
||||
build_context_block VISION.md AGENTS.md ops:RESOURCES.md ops:prerequisites.md
|
||||
|
||||
# ── Build structural analysis graph ──────────────────────────────────────
|
||||
build_graph_section
|
||||
|
||||
# ── Ensure ops repo is available ───────────────────────────────────────
|
||||
ensure_ops_repo
|
||||
|
||||
# ── Read planner memory ─────────────────────────────────────────────────
|
||||
MEMORY_BLOCK=""
|
||||
MEMORY_FILE="$PROJECT_REPO_ROOT/planner/MEMORY.md"
|
||||
MEMORY_FILE="$OPS_REPO_ROOT/knowledge/planner-memory.md"
|
||||
if [ -f "$MEMORY_FILE" ]; then
|
||||
MEMORY_BLOCK="
|
||||
### planner/MEMORY.md (persistent memory from prior runs)
|
||||
### knowledge/planner-memory.md (persistent memory from prior runs)
|
||||
$(cat "$MEMORY_FILE")
|
||||
"
|
||||
fi
|
||||
|
||||
# ── Read recent journal files ──────────────────────────────────────────
|
||||
JOURNAL_BLOCK=""
|
||||
JOURNAL_DIR="$PROJECT_REPO_ROOT/planner/journal"
|
||||
JOURNAL_DIR="$OPS_REPO_ROOT/journal/planner"
|
||||
if [ -d "$JOURNAL_DIR" ]; then
|
||||
# Load last 5 journal files (most recent first) for run history context
|
||||
JOURNAL_FILES=$(find "$JOURNAL_DIR" -name '*.md' -type f | sort -r | head -5)
|
||||
if [ -n "$JOURNAL_FILES" ]; then
|
||||
JOURNAL_BLOCK="
|
||||
### Recent journal entries (planner/journal/)
|
||||
### Recent journal entries (journal/planner/)
|
||||
"
|
||||
while IFS= read -r jf; do
|
||||
JOURNAL_BLOCK="${JOURNAL_BLOCK}
|
||||
|
|
|
|||
|
|
@ -1,77 +0,0 @@
|
|||
# Prerequisite Tree
|
||||
<!-- Last updated: 2026-03-26 -->
|
||||
|
||||
## Objective: One-command bootstrap — `disinto init` (#393)
|
||||
- [x] Core agent loop stable (Foundation)
|
||||
- [x] Multi-project support (Foundation)
|
||||
- [x] Guard allows formula agents in worktrees (#487)
|
||||
- [x] Bundled dust cleanup — set-euo-pipefail (#516)
|
||||
- [x] Agent-session.sh pre-register worktree trust (#514)
|
||||
- [x] Bootstrap hardening — Forgejo INSTALL_LOCK (#634), su-exec (#635), admin user (#636), DNS (#637), crontab (#638), auth (#652), remote target (#653), token creation (#658)
|
||||
- [x] Agents container reaches Forgejo — env.sh override (#660)
|
||||
- [x] Woodpecker CI wiring during init (#661)
|
||||
- [x] End-to-end init smoke test (#668)
|
||||
Status: DONE — all prerequisites resolved, init fully functional
|
||||
|
||||
## Objective: Documentation site with quickstart (#394)
|
||||
- [x] disinto init working (#393)
|
||||
Status: DONE — #394 closed
|
||||
|
||||
## Objective: Metrics dashboard (#395)
|
||||
- [x] disinto init working (#393)
|
||||
- [x] Supervisor formula stable
|
||||
Status: DONE — #395 closed
|
||||
|
||||
## Objective: Example project demonstrating full lifecycle (#466)
|
||||
- [x] disinto init working (#393)
|
||||
- [ ] Human decision on implementation approach (external repo vs local demo) — blocked-on-vault
|
||||
Status: BLOCKED — bounced by dev-agent (too large), routed to vault for human decision
|
||||
|
||||
## Objective: Landing page communicating value proposition (#534)
|
||||
- [x] disinto init working (#393)
|
||||
- [x] Documentation site live (#394)
|
||||
- [x] Planner-created issues retain labels reliably (#535)
|
||||
Status: DONE — #534 closed
|
||||
|
||||
## Objective: Autonomous PR merge pipeline (#568)
|
||||
- [x] PreToolUse guard allows merge API calls from phase-handler (#568)
|
||||
Status: DONE — #568 closed
|
||||
|
||||
## Objective: Unified escalation path (#510)
|
||||
- [x] PHASE:escalate replaces PHASE:needs_human (supersedes #465)
|
||||
Status: DONE — #510 closed
|
||||
|
||||
## Objective: Vault as procurement gate + RESOURCES.md inventory (#504)
|
||||
- [x] RESOURCES.md exists
|
||||
- [x] Vault poll scripts deployed (vault-poll.sh)
|
||||
Status: DONE — #504 closed
|
||||
|
||||
## Objective: Factory operational reliability
|
||||
- [x] check_active guard logs when skipping (#663)
|
||||
- [x] Supervisor cleans stale PHASE:escalate files (#664)
|
||||
Status: DONE — both fixes merged
|
||||
|
||||
## Objective: Exec agent — interactive executive assistant (#699)
|
||||
- [x] Matrix bot infrastructure
|
||||
- [x] CHARACTER.md personality definition
|
||||
- [x] exec-session.sh implementation
|
||||
Status: DONE — #699 closed
|
||||
|
||||
## Objective: Rent-a-human — formula-dispatchable human action drafts (#679)
|
||||
- [x] Formula infrastructure (run-rent-a-human.toml)
|
||||
- [x] Vault gating for human actions
|
||||
Status: DONE — #679 closed
|
||||
|
||||
## Objective: Skill package distribution (#710 → #711 → #712)
|
||||
- [ ] Create disinto skill package — SKILL.md + helper scripts (#710) — in backlog, priority
|
||||
- [ ] Publish to ClawHub registry (#711) — in backlog, depends on #710
|
||||
- [ ] Submit to secondary registries (#712) — in backlog, depends on #711
|
||||
- [ ] Evaluate MCP server wrapper (#713) — in backlog, independent
|
||||
- Note: #714, #715 flagged as duplicates of #710, #711 — pending gardener cleanup
|
||||
Status: READY — no blocking prerequisites
|
||||
|
||||
## Objective: Observable addressables — engagement measurement (#718)
|
||||
- [ ] Lightweight analytics on disinto.ai (#718) — in backlog
|
||||
- [ ] Deploy formula verifies measurement is live
|
||||
- [ ] Planner consumes engagement data
|
||||
Status: READY — Ship milestone, Fold 2 → Fold 3 bridge
|
||||
Loading…
Add table
Add a link
Reference in a new issue