2026-03-25 13:47:48 +00:00
|
|
|
# formulas/run-planner.toml — Strategic planning formula (v4: graph-driven)
|
2026-03-20 09:00:56 +00:00
|
|
|
#
|
2026-03-20 13:40:09 +00:00
|
|
|
# Executed directly by planner-run.sh via cron — no action issues.
|
|
|
|
|
# planner-run.sh creates a tmux session with Claude (opus) and injects
|
2026-03-25 13:47:48 +00:00
|
|
|
# this formula as context, plus the graph report from build-graph.py.
|
2026-03-20 13:40:09 +00:00
|
|
|
#
|
2026-04-01 09:14:25 +00:00
|
|
|
# Steps: preflight → triage-and-plan → commit-ops-changes
|
2026-03-21 18:28:38 +00:00
|
|
|
#
|
2026-03-25 13:47:48 +00:00
|
|
|
# v4 changes from v3:
|
|
|
|
|
# - Graph report (orphans, cycles, thin objectives, bottlenecks) replaces
|
|
|
|
|
# manual repo scanning and hardcoded constraint patterns.
|
|
|
|
|
# - tea CLI helpers replace inline curl commands.
|
|
|
|
|
# - 3 steps instead of 6.
|
2026-03-20 13:40:09 +00:00
|
|
|
#
|
|
|
|
|
# AGENTS.md maintenance is handled by the gardener (#246).
|
2026-04-01 09:14:25 +00:00
|
|
|
# All git writes (tree, memory) happen in one commit at the end.
|
|
|
|
|
# Journal writing is delegated to generic profile_write_journal() function.
|
2026-03-20 09:00:56 +00:00
|
|
|
|
|
|
|
|
name = "run-planner"
|
2026-03-25 13:47:48 +00:00
|
|
|
description = "Planner v4: graph-driven planning with tea helpers"
|
|
|
|
|
version = 4
|
2026-03-20 09:08:17 +00:00
|
|
|
model = "opus"
|
2026-03-20 09:00:56 +00:00
|
|
|
|
|
|
|
|
[context]
|
fix: {project}-ops repo — separate operations from code (#757) (#767)
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>
2026-03-26 19:55:12 +01:00
|
|
|
files = ["VISION.md", "AGENTS.md"]
|
|
|
|
|
# RESOURCES.md and prerequisites.md loaded from ops repo (ops: prefix)
|
|
|
|
|
# Recent journal/planner/*.md files + graph report loaded by planner-run.sh
|
2026-03-20 09:00:56 +00:00
|
|
|
|
|
|
|
|
[[steps]]
|
|
|
|
|
id = "preflight"
|
2026-03-25 13:47:48 +00:00
|
|
|
title = "Pull latest code, run graph, load context"
|
2026-03-20 09:00:56 +00:00
|
|
|
description = """
|
|
|
|
|
1. Change to the project repository:
|
|
|
|
|
cd "$PROJECT_REPO_ROOT"
|
|
|
|
|
|
|
|
|
|
2. Pull the latest code:
|
|
|
|
|
git fetch origin "$PRIMARY_BRANCH" --quiet
|
|
|
|
|
git checkout "$PRIMARY_BRANCH" --quiet
|
|
|
|
|
git pull --ff-only origin "$PRIMARY_BRANCH" --quiet
|
|
|
|
|
|
2026-03-20 13:40:09 +00:00
|
|
|
3. Record the current HEAD SHA:
|
2026-03-20 09:00:56 +00:00
|
|
|
HEAD_SHA=$(git rev-parse HEAD)
|
|
|
|
|
echo "$HEAD_SHA" > /tmp/planner-head-sha
|
|
|
|
|
|
fix: {project}-ops repo — separate operations from code (#757) (#767)
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>
2026-03-26 19:55:12 +01:00
|
|
|
4. Read the planner memory file at: $OPS_REPO_ROOT/knowledge/planner-memory.md
|
2026-03-20 09:00:56 +00:00
|
|
|
If it does not exist, this is the first planning run.
|
2026-03-21 18:28:38 +00:00
|
|
|
|
fix: {project}-ops repo — separate operations from code (#757) (#767)
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>
2026-03-26 19:55:12 +01:00
|
|
|
5. Read the prerequisite tree at: $OPS_REPO_ROOT/prerequisites.md
|
2026-03-25 13:47:48 +00:00
|
|
|
If it does not exist, create an initial tree from VISION.md in the next step.
|
|
|
|
|
|
|
|
|
|
6. Read the graph report injected into the prompt (## Structural analysis).
|
|
|
|
|
This JSON contains: orphans, cycles, disconnected clusters, thin_objectives,
|
|
|
|
|
bottlenecks (by betweenness centrality). Use it instead of manual file scanning.
|
2026-03-20 09:00:56 +00:00
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
[[steps]]
|
2026-03-25 13:47:48 +00:00
|
|
|
id = "triage-and-plan"
|
|
|
|
|
title = "Triage predictions, update tree, file at constraints"
|
2026-03-20 09:00:56 +00:00
|
|
|
description = """
|
2026-03-25 13:47:48 +00:00
|
|
|
One unified step replacing the former prediction-triage, update-prerequisite-tree,
|
|
|
|
|
and file-at-constraints steps.
|
|
|
|
|
|
|
|
|
|
### Part A: Triage predictions
|
2026-03-20 09:00:56 +00:00
|
|
|
|
|
|
|
|
1. Fetch unreviewed predictions:
|
fix: Replace Codeberg dependency with local Forgejo instance (#611)
- Add setup_forge() to bin/disinto: provisions Forgejo via Docker,
creates admin + bot users (dev-bot, review-bot), generates API
tokens, creates repo, and pushes code — all automated
- Rename env vars: CODEBERG_TOKEN→FORGE_TOKEN, REVIEW_BOT_TOKEN→
FORGE_REVIEW_TOKEN, CODEBERG_REPO→FORGE_REPO, CODEBERG_API→
FORGE_API, CODEBERG_WEB→FORGE_WEB, CODEBERG_BOT_USERNAMES→
FORGE_BOT_USERNAMES (with backwards-compat fallbacks)
- Rename API helpers: codeberg_api()→forge_api(), codeberg_api_all()
→forge_api_all() (with compat aliases)
- Add forge_url field to project TOML; load-project.sh derives
FORGE_API/FORGE_WEB from forge_url + repo
- Update parse_repo_slug() to accept any host URL, not just codeberg
- Forgejo data stored under ~/.disinto/forgejo/ (not in factory repo)
- Update all 58 files: agent scripts, formulas, docs, site HTML
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 16:57:12 +00:00
|
|
|
curl -sf -H "Authorization: token $FORGE_TOKEN" \
|
|
|
|
|
"$FORGE_API/issues?state=open&type=issues&labels=prediction%2Funreviewed&limit=50"
|
2026-03-25 13:47:48 +00:00
|
|
|
If none, skip to Part B.
|
2026-03-20 09:00:56 +00:00
|
|
|
|
2026-03-25 13:47:48 +00:00
|
|
|
2. Fetch all open issues (for overlap check):
|
fix: Replace Codeberg dependency with local Forgejo instance (#611)
- Add setup_forge() to bin/disinto: provisions Forgejo via Docker,
creates admin + bot users (dev-bot, review-bot), generates API
tokens, creates repo, and pushes code — all automated
- Rename env vars: CODEBERG_TOKEN→FORGE_TOKEN, REVIEW_BOT_TOKEN→
FORGE_REVIEW_TOKEN, CODEBERG_REPO→FORGE_REPO, CODEBERG_API→
FORGE_API, CODEBERG_WEB→FORGE_WEB, CODEBERG_BOT_USERNAMES→
FORGE_BOT_USERNAMES (with backwards-compat fallbacks)
- Rename API helpers: codeberg_api()→forge_api(), codeberg_api_all()
→forge_api_all() (with compat aliases)
- Add forge_url field to project TOML; load-project.sh derives
FORGE_API/FORGE_WEB from forge_url + repo
- Update parse_repo_slug() to accept any host URL, not just codeberg
- Forgejo data stored under ~/.disinto/forgejo/ (not in factory repo)
- Update all 58 files: agent scripts, formulas, docs, site HTML
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 16:57:12 +00:00
|
|
|
curl -sf -H "Authorization: token $FORGE_TOKEN" \
|
|
|
|
|
"$FORGE_API/issues?state=open&type=issues&limit=50"
|
2026-03-20 09:00:56 +00:00
|
|
|
|
2026-03-25 13:47:48 +00:00
|
|
|
3. Read available formulas: $FACTORY_ROOT/formulas/*.toml and $PROJECT_REPO_ROOT/formulas/*.toml
|
2026-03-20 09:28:24 +00:00
|
|
|
|
2026-03-25 17:16:13 +00:00
|
|
|
4. For each prediction, choose one of two actions (no fence-sitting):
|
|
|
|
|
- ACTION: agree with the prediction -> create a backlog or action issue,
|
|
|
|
|
relabel to prediction/actioned, close the prediction
|
|
|
|
|
- DISMISS: disagree or noise -> comment reasoning, relabel to
|
|
|
|
|
prediction/dismissed, close the prediction
|
|
|
|
|
|
|
|
|
|
If a dismissed prediction is real, the predictor will re-file it with
|
|
|
|
|
stronger evidence next run. The issue history is the predictor's memory.
|
2026-03-20 09:28:24 +00:00
|
|
|
|
2026-03-25 13:47:48 +00:00
|
|
|
5. Execute triage using tea helpers:
|
|
|
|
|
- Create issues: tea_file_issue "<title>" "<body>" "backlog" (or "action")
|
2026-03-25 17:16:13 +00:00
|
|
|
- Relabel: tea_relabel <num> "prediction/actioned" (or "prediction/dismissed")
|
2026-03-25 13:47:48 +00:00
|
|
|
- Comment: tea_comment <num> "<reasoning>"
|
|
|
|
|
- Close: tea_close <num>
|
2026-03-20 09:00:56 +00:00
|
|
|
|
2026-03-25 13:47:48 +00:00
|
|
|
Issue body template (gardener quality gate requires these sections):
|
|
|
|
|
## Problem
|
|
|
|
|
<what the prediction identified>
|
|
|
|
|
|
|
|
|
|
## Proposed solution
|
|
|
|
|
<approach>
|
|
|
|
|
|
|
|
|
|
## Affected files
|
|
|
|
|
- <file1>
|
|
|
|
|
|
|
|
|
|
## Acceptance criteria
|
|
|
|
|
- [ ] <criterion>
|
|
|
|
|
- [ ] CI green
|
|
|
|
|
|
|
|
|
|
Every decision MUST include reasoning in a comment on the prediction issue.
|
|
|
|
|
|
|
|
|
|
### Part B: Update prerequisite tree
|
2026-03-20 09:00:56 +00:00
|
|
|
|
|
|
|
|
Read these inputs:
|
2026-03-25 13:47:48 +00:00
|
|
|
- VISION.md, RESOURCES.md, planner memory (from preflight)
|
|
|
|
|
- Graph report: orphans, cycles, thin_objectives, bottlenecks, disconnected
|
2026-03-26 15:56:10 +00:00
|
|
|
- Portfolio: ## Addressables and ## Observables tables in AGENTS.md —
|
|
|
|
|
use these as the concrete inventory of what the factory has produced.
|
|
|
|
|
Plan toward making addressables observable (measurement wired).
|
|
|
|
|
Vision changes (#733) should trigger a review of these tables.
|
2026-03-25 13:47:48 +00:00
|
|
|
- Open issues (from Part A or fresh fetch)
|
|
|
|
|
- Recently closed issues:
|
fix: Replace Codeberg dependency with local Forgejo instance (#611)
- Add setup_forge() to bin/disinto: provisions Forgejo via Docker,
creates admin + bot users (dev-bot, review-bot), generates API
tokens, creates repo, and pushes code — all automated
- Rename env vars: CODEBERG_TOKEN→FORGE_TOKEN, REVIEW_BOT_TOKEN→
FORGE_REVIEW_TOKEN, CODEBERG_REPO→FORGE_REPO, CODEBERG_API→
FORGE_API, CODEBERG_WEB→FORGE_WEB, CODEBERG_BOT_USERNAMES→
FORGE_BOT_USERNAMES (with backwards-compat fallbacks)
- Rename API helpers: codeberg_api()→forge_api(), codeberg_api_all()
→forge_api_all() (with compat aliases)
- Add forge_url field to project TOML; load-project.sh derives
FORGE_API/FORGE_WEB from forge_url + repo
- Update parse_repo_slug() to accept any host URL, not just codeberg
- Forgejo data stored under ~/.disinto/forgejo/ (not in factory repo)
- Update all 58 files: agent scripts, formulas, docs, site HTML
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 16:57:12 +00:00
|
|
|
curl -sf -H "Authorization: token $FORGE_TOKEN" \
|
|
|
|
|
"$FORGE_API/issues?state=closed&type=issues&limit=50&sort=updated&direction=desc"
|
2026-03-21 18:28:38 +00:00
|
|
|
|
2026-03-25 13:47:48 +00:00
|
|
|
Update the tree:
|
|
|
|
|
1. Mark resolved prerequisites ([x]) — check if issue closed or capability present
|
|
|
|
|
2. Recalculate objective status (READY/BLOCKED/DONE)
|
|
|
|
|
3. Add new prerequisites discovered from graph report
|
|
|
|
|
4. Add new objectives from VISION.md not yet in tree
|
fix: {project}-ops repo — separate operations from code (#757) (#767)
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>
2026-03-26 19:55:12 +01:00
|
|
|
5. Check vault state: $OPS_REPO_ROOT/vault/pending/*.md + $OPS_REPO_ROOT/vault/approved/*.md (blocked-on-vault), $OPS_REPO_ROOT/vault/fired/*.md (resolved?)
|
2026-03-25 13:47:48 +00:00
|
|
|
6. Check RESOURCES.md for newly available capabilities
|
|
|
|
|
|
|
|
|
|
Bounce/stuck detection — for issues in the tree, fetch recent comments:
|
|
|
|
|
curl -sf -H "Authorization: token $FORGE_TOKEN" \
|
|
|
|
|
"$FORGE_API/issues/<number>/comments?limit=10"
|
2026-03-26 09:09:58 +00:00
|
|
|
Signals: BOUNCED (too_large, underspecified),
|
2026-03-25 13:47:48 +00:00
|
|
|
LABEL_CHURN (3+ relabels between backlog/underspecified).
|
2026-03-26 09:09:58 +00:00
|
|
|
If an issue needs a human decision or external resource, it is HUMAN_BLOCKED.
|
2026-03-25 13:47:48 +00:00
|
|
|
Track as stuck_issues[] for constraint filing below.
|
|
|
|
|
|
|
|
|
|
Hold the updated tree in memory — written to disk in journal-and-commit.
|
|
|
|
|
|
|
|
|
|
Tree format:
|
2026-03-21 18:28:38 +00:00
|
|
|
# Prerequisite Tree
|
|
|
|
|
<!-- Last updated: YYYY-MM-DD -->
|
|
|
|
|
|
|
|
|
|
## Objective: <name> (#issue or description)
|
|
|
|
|
- [x] Resolved prerequisite (reference)
|
|
|
|
|
- [ ] Unresolved prerequisite (#issue or description)
|
fix: {project}-ops repo — separate operations from code (#757) (#767)
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>
2026-03-26 19:55:12 +01:00
|
|
|
- [ ] Resource need blocked-on-vault ($OPS_REPO_ROOT/vault/pending/<id>.md)
|
2026-03-25 13:47:48 +00:00
|
|
|
Status: READY | BLOCKED — <reason> | DONE
|
2026-03-21 18:28:38 +00:00
|
|
|
|
2026-03-25 13:47:48 +00:00
|
|
|
### Part C: File at constraints
|
2026-03-21 18:28:38 +00:00
|
|
|
|
2026-03-25 13:47:48 +00:00
|
|
|
From the updated tree + graph bottlenecks, identify the top 5 constraints.
|
|
|
|
|
A constraint is an unresolved prerequisite blocking the most downstream objectives.
|
|
|
|
|
Graph bottlenecks (high betweenness centrality) and thin objectives inform ranking.
|
2026-03-20 09:00:56 +00:00
|
|
|
|
2026-04-01 08:57:14 +00:00
|
|
|
HUMAN_BLOCKED handling (needs human decision or external resource):
|
|
|
|
|
- File a vault procurement item instead of skipping. First check for duplicates
|
|
|
|
|
across ALL vault directories (pending/, approved/, fired/) — if a file with the
|
|
|
|
|
same slug already exists in any of them, do NOT create a new one.
|
fix: {project}-ops repo — separate operations from code (#757) (#767)
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>
2026-03-26 19:55:12 +01:00
|
|
|
Naming: $OPS_REPO_ROOT/vault/pending/<project>-<slug>.md (e.g. disinto-github-org.md).
|
2026-03-26 13:01:36 +00:00
|
|
|
Write with this template:
|
|
|
|
|
|
|
|
|
|
# Request: <short description>
|
|
|
|
|
|
2026-03-26 09:09:58 +00:00
|
|
|
## What
|
|
|
|
|
<description of the resource or decision needed>
|
2026-03-26 13:01:36 +00:00
|
|
|
|
2026-03-26 09:09:58 +00:00
|
|
|
## Why
|
2026-03-26 13:01:36 +00:00
|
|
|
Blocks #<issue> (<title>), which blocks <downstream objective>.
|
|
|
|
|
Waiting since <date constraint was first identified>.
|
|
|
|
|
|
|
|
|
|
## Human action
|
|
|
|
|
1. <concrete step>
|
|
|
|
|
2. <concrete step>
|
|
|
|
|
3. Paste result here or in #<issue>
|
|
|
|
|
|
|
|
|
|
## Factory will then
|
|
|
|
|
- <what the factory does once the resource is available>
|
|
|
|
|
- <downstream work that unblocks>
|
|
|
|
|
|
2026-03-26 09:09:58 +00:00
|
|
|
## Unblocks
|
|
|
|
|
- #<issue> — <title>
|
2026-03-26 13:01:36 +00:00
|
|
|
|
fix: {project}-ops repo — separate operations from code (#757) (#767)
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>
2026-03-26 19:55:12 +01:00
|
|
|
Then mark the prerequisite in the tree as "blocked-on-vault ($OPS_REPO_ROOT/vault/pending/<id>.md)".
|
2026-03-26 09:09:58 +00:00
|
|
|
Do NOT skip or mark as "awaiting human decision" — the vault owns the human interface.
|
2026-03-25 13:47:48 +00:00
|
|
|
|
2026-04-01 08:57:14 +00:00
|
|
|
Template-or-vision filing gate (for non-stuck constraints):
|
|
|
|
|
1. Read issue templates from .codeberg/ISSUE_TEMPLATE/*.yaml:
|
|
|
|
|
- bug.yaml: for broken/incorrect behavior (error in logs, failing test)
|
|
|
|
|
- feature.yaml: for new capabilities (prerequisite doesn't exist)
|
|
|
|
|
- refactor.yaml: for restructuring without behavior change
|
|
|
|
|
|
|
|
|
|
2. Attempt to fill template fields:
|
|
|
|
|
- affected_files: list 3 or fewer specific files
|
|
|
|
|
- acceptance_criteria: write concrete, checkable criteria (max 5)
|
|
|
|
|
- proposed_solution/approach: is there one clear approach, or design forks?
|
|
|
|
|
|
|
|
|
|
3. Complexity test:
|
|
|
|
|
- If work touches ONE subsystem (3 or fewer files) AND no design forks
|
|
|
|
|
(only one reasonable approach) AND template fields fill confidently:
|
|
|
|
|
→ File as `backlog` using matching template format
|
|
|
|
|
- Otherwise → Label `vision` with short body:
|
|
|
|
|
- Problem statement
|
|
|
|
|
- Why it's vision-sized
|
|
|
|
|
- Which objectives it blocks
|
|
|
|
|
- Include "## Why vision" section explaining complexity
|
|
|
|
|
|
|
|
|
|
4. Template selection heuristic:
|
|
|
|
|
- Bug template: planner identifies something broken (error in logs,
|
|
|
|
|
incorrect behavior, failing test)
|
|
|
|
|
- Feature template: new capability needed (prerequisite doesn't exist)
|
|
|
|
|
- Refactor template: existing code needs restructuring without behavior change
|
|
|
|
|
|
|
|
|
|
5. Filing steps:
|
|
|
|
|
- Check if issue already exists (match by #number in tree or title search)
|
|
|
|
|
- If no issue, create with tea_file_issue using template format
|
|
|
|
|
- If issue exists and is open, skip — no duplicates
|
2026-03-25 13:47:48 +00:00
|
|
|
|
|
|
|
|
Priority label sync:
|
|
|
|
|
- Add priority to current top-5 constraint issues (if missing):
|
|
|
|
|
tea_relabel <num> "backlog,priority"
|
|
|
|
|
- Remove priority from issues no longer in top 5:
|
|
|
|
|
curl -sf -X DELETE -H "Authorization: token $FORGE_TOKEN" \
|
|
|
|
|
"$FORGE_API/issues/<num>/labels/<priority_label_id>"
|
|
|
|
|
|
|
|
|
|
Vault procurement: if a constraint needs a resource not in RESOURCES.md with
|
fix: {project}-ops repo — separate operations from code (#757) (#767)
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>
2026-03-26 19:55:12 +01:00
|
|
|
recurring cost, create $OPS_REPO_ROOT/vault/pending/<project>-<slug>.md instead of an issue.
|
2026-03-26 13:01:36 +00:00
|
|
|
Use the same template as HUMAN_BLOCKED above (What/Why/Human action/Factory will then/Unblocks).
|
fix: {project}-ops repo — separate operations from code (#757) (#767)
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>
2026-03-26 19:55:12 +01:00
|
|
|
Dedup: check $OPS_REPO_ROOT/vault/pending/ + $OPS_REPO_ROOT/vault/approved/ + $OPS_REPO_ROOT/vault/fired/ before creating.
|
2026-03-22 14:05:41 +00:00
|
|
|
|
2026-03-20 09:00:56 +00:00
|
|
|
Rules:
|
2026-03-25 17:16:13 +00:00
|
|
|
- Action budget: the planner may create at most (predictions_addressed + 1)
|
|
|
|
|
new issues per run if any predictions were triaged, or 4 if no predictions.
|
|
|
|
|
This covers issues from Part A promotions + Part C constraint filing combined.
|
2026-03-25 13:47:48 +00:00
|
|
|
- No issues filed past the bottleneck
|
|
|
|
|
- Leave existing premature issues as-is
|
|
|
|
|
- Only reference formulas that exist on disk
|
|
|
|
|
- Do NOT file issues for objectives blocked on pending vault items
|
|
|
|
|
- Promoted predictions may become constraints — rank them equally
|
|
|
|
|
|
|
|
|
|
CRITICAL: If any part of this step fails, log the failure and continue.
|
2026-03-20 09:00:56 +00:00
|
|
|
"""
|
2026-03-25 13:47:48 +00:00
|
|
|
needs = ["preflight"]
|
2026-03-20 09:00:56 +00:00
|
|
|
|
|
|
|
|
[[steps]]
|
2026-04-01 09:14:25 +00:00
|
|
|
id = "commit-ops-changes"
|
|
|
|
|
title = "Write tree, memory, and journal; commit and push"
|
2026-03-20 09:00:56 +00:00
|
|
|
description = """
|
2026-03-25 13:47:48 +00:00
|
|
|
### 1. Write prerequisite tree
|
fix: {project}-ops repo — separate operations from code (#757) (#767)
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>
2026-03-26 19:55:12 +01:00
|
|
|
Write to: $OPS_REPO_ROOT/prerequisites.md
|
2026-03-21 18:28:38 +00:00
|
|
|
|
2026-04-01 09:14:25 +00:00
|
|
|
### 2. Memory update (every 5th run)
|
2026-03-25 13:47:48 +00:00
|
|
|
Count "# Planner run —" headers across all journal files.
|
fix: {project}-ops repo — separate operations from code (#757) (#767)
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>
2026-03-26 19:55:12 +01:00
|
|
|
Check "<!-- summarized-through-run: N -->" in planner-memory.md.
|
|
|
|
|
If (count - N) >= 5 or planner-memory.md missing, write to:
|
|
|
|
|
$OPS_REPO_ROOT/knowledge/planner-memory.md
|
2026-03-25 13:47:48 +00:00
|
|
|
Include: run counter marker, date, constraint focus, patterns, direction.
|
|
|
|
|
Keep under 100 lines. Replace entire file.
|
|
|
|
|
|
2026-04-01 09:14:25 +00:00
|
|
|
### 3. Commit ops repo changes
|
|
|
|
|
Commit the ops repo changes (prerequisites, memory, vault items):
|
fix: {project}-ops repo — separate operations from code (#757) (#767)
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>
2026-03-26 19:55:12 +01:00
|
|
|
cd "$OPS_REPO_ROOT"
|
2026-04-01 09:14:25 +00:00
|
|
|
git add prerequisites.md knowledge/planner-memory.md vault/pending/
|
2026-03-25 13:47:48 +00:00
|
|
|
git add -u
|
fix: {project}-ops repo — separate operations from code (#757) (#767)
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>
2026-03-26 19:55:12 +01:00
|
|
|
if ! git diff --cached --quiet; then
|
|
|
|
|
git commit -m "chore: planner run $(date -u +%Y-%m-%d)"
|
|
|
|
|
git push origin "$PRIMARY_BRANCH"
|
|
|
|
|
fi
|
|
|
|
|
cd "$PROJECT_REPO_ROOT"
|
2026-04-01 09:14:25 +00:00
|
|
|
|
|
|
|
|
### 4. Write journal entry (generic)
|
|
|
|
|
The planner-run.sh wrapper will handle journal writing via profile_write_journal()
|
|
|
|
|
after the formula completes. This step is informational only.
|
2026-03-20 13:40:09 +00:00
|
|
|
"""
|
2026-03-25 13:47:48 +00:00
|
|
|
needs = ["triage-and-plan"]
|