diff --git a/formulas/run-planner.toml b/formulas/run-planner.toml index abdb44a..cd89128 100644 --- a/formulas/run-planner.toml +++ b/formulas/run-planner.toml @@ -117,7 +117,7 @@ Update the tree: 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 - 5. Check vault state: vault/pending/*.md (blocked-on-vault), vault/fired/*.md (resolved?) + 5. Check vault state: vault/pending/*.md + vault/approved/*.md (blocked-on-vault), vault/fired/*.md (resolved?) 6. Check RESOURCES.md for newly available capabilities Bounce/stuck detection — for issues in the tree, fetch recent comments: @@ -150,14 +150,33 @@ Stuck issue handling: - BOUNCED/LABEL_CHURN: do NOT re-promote. Dispatch groom-backlog formula instead: tea_file_issue "chore: break down # — bounced x" "" "action" - HUMAN_BLOCKED (needs human decision or external resource): file a vault - procurement item instead of skipping. Write vault/pending/.md: - # + 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. + Naming: vault/pending/-.md (e.g. disinto-github-org.md). + Write with this template: + + # Request: + ## What + ## Why - + Blocks # (), 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> + ## Unblocks - #<issue> — <title> + Then mark the prerequisite in the tree as "blocked-on-vault (vault/pending/<id>.md)". Do NOT skip or mark as "awaiting human decision" — the vault owns the human interface. @@ -174,7 +193,9 @@ Priority label sync: "$FORGE_API/issues/<num>/labels/<priority_label_id>" Vault procurement: if a constraint needs a resource not in RESOURCES.md with -recurring cost, create vault/pending/<resource-id>.md instead of an issue. +recurring cost, create vault/pending/<project>-<slug>.md instead of an issue. +Use the same template as HUMAN_BLOCKED above (What/Why/Human action/Factory will then/Unblocks). +Dedup: check vault/pending/ + vault/approved/ + vault/fired/ before creating. Rules: - Action budget: the planner may create at most (predictions_addressed + 1) @@ -216,6 +237,10 @@ Format: - #NNN: BOUNCED (Nx) — dispatched groom-backlog as #MMM (or "No stuck issues detected") + ## Vault items filed + - vault/pending/<id>.md — <what> — blocks #NNN + (or "No vault items filed") + ## Issues created - #NNN: title — why (or "No new issues") @@ -243,7 +268,7 @@ If no file changes (git status --porcelain), skip. Otherwise: BRANCH="chore/planner-$(date -u +%Y%m%d-%H%M)" git checkout -B "$BRANCH" - git add planner/prerequisite-tree.md planner/journal/ planner/MEMORY.md + git add planner/prerequisite-tree.md planner/journal/ planner/MEMORY.md vault/pending/ git add -u git diff --cached --quiet && skip git commit -m "chore: planner run $(date -u +%Y-%m-%d)" diff --git a/planner/AGENTS.md b/planner/AGENTS.md index e8d507b..d8e530d 100644 --- a/planner/AGENTS.md +++ b/planner/AGENTS.md @@ -27,8 +27,10 @@ dev-agent) or `action` (run existing formula, action-agent). **Stuck issues (detected BOUNCED/LABEL_CHURN) are dispatched to the `groom-backlog` formula 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 a procurement item and marks -the prerequisite as blocked-on-vault in the tree. +are routed through the vault** — the planner files an actionable procurement +item (`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.