Replace $FACTORY_ROOT/planner/ and $FACTORY_ROOT/vault/ references with
$PROJECT_REPO_ROOT/planner/ and $PROJECT_REPO_ROOT/vault/ in the planner
formula and planner-run.sh. Planner artifacts (journal, memory, prerequisite
tree) and vault state are per-project, not factory-owned. The old paths
caused cross-repo contamination when the planner ran for non-disinto projects.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove SCRATCH_FILE from action-agent cleanup() trap so it survives crashes
- Change instruction to note contents already injected (avoid wasted tool call)
- Cap scratch file read at 8KB via head -c 8192
- Move predictor scratch instruction after formula (consistent placement)
- Remove redundant FINAL_PHASE re-reads in planner/predictor
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Eliminates 7 duplicate code blocks between planner-run.sh and predictor-run.sh
flagged by CI duplicate-detection. Adds build_prompt_footer() and
run_formula_and_monitor() helpers to lib/formula-session.sh.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Rename planner-poll.sh → planner-run.sh: direct cron executor that
creates a tmux session with Claude (opus), injects the formula as
context, monitors phase file, handles crash recovery and cleanup.
No action issues, no action-poll dependency.
- Source disinto project config explicitly (projects/disinto.toml)
instead of defaulting to harb via env.sh.
- Update formulas/run-planner.toml (v2): remove agents-update step
(now handled by gardener per #246), add journal-and-memory step
(daily journal entries committed to git + local MEMORY.md update),
add commit-and-pr step (one commit, one PR per run).
- Create planner/journal/ directory for daily raw logs.
- Update crontab: weekly Sunday 6AM call to planner-run.sh.
- Update AGENTS.md to reflect new architecture.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>