update_plan for anything beyond one editAll private data (models, sessions, prices) lives outside the skill.
Set ORCHESTRATOR_DATA_DIR to point to your data directory.
Default: ../../orchestrator-data/ from the skill root (i.e. <workspace>/orchestrator-data/)
All generated files use consistent, sortable naming for cross-session compatibility:
LocationFormatExamplesessions/``YYYY-MM-DD-HHMM-<project-slug>-<task-slug>.md``2026-06-08-1134-project-orchestration-publish.md``projects/``<project-slug>-<path-slug>.md``kfinance-projects-kfinance.md``session_log.mdFlat table (append-only quick reference)—models.jsonJSON inventory—price_changes.logFlat log (append-only)—Per-project .planning/ADRs/``YYYY-MM-DD-<title-slug>.md``2026-06-08-use-postgres.md
Session state files in sessions/ persist across OpenClaw sessions. When a conversation is compacted or a new session starts, the LLM can read the last session state file to continue where it left off — no dependency on conversation history.
If this is a fresh skill install with no data yet, run onboarding:
text
bash {baseDir}/scripts/onboard.sh
or ask the LLM: "Set up orchestrator" or "/project-orchestration onboard"
This walks through:
If you're in an LLM session, the LLM will guide you through each step.
When starting a new project or adding an existing one:
text
bash {baseDir}/scripts/init-project.sh <project-path> <Project Name> [stack]
or ask the LLM: "Start project "
This creates .planning/ with:
CONFIG.md — project config, ports, tech stackSTATE.md — current state trackerROADMAP.md — planned workREQUIREMENTS.md — requirementsADRs/ — architecture decisionsFor existing projects, the LLM will also run Repowise/scan, detect tech stack, and initialise the project in the orchestrator.
When invoked via /project-orchestration, interpret the subcommand:
CommandAction/project-orchestration onboardFull fresh-install onboarding/project-orchestration webuiStart dashboard: bash {baseDir}/dashboard/serve.sh``/project-orchestration project <path> [name]Onboard a project (new or existing)/project-orchestration statusShow orchestration state/project-orchestration resume <id>Resume session: bash {baseDir}/scripts/resume-session.sh <id> (id = filename, partial match, or 'last')/project-orchestration check-pricesCheck prices: bash {baseDir}/scripts/check-prices.sh``/project-orchestration log-session <project> <task> <model> <status> [notes]Log a session run/project-orchestration log-decision <path> <title> <context> <decision> [alt] [cons]Log an architecture decision
ScriptWhat it doesbash {baseDir}/scripts/onboard.shFresh-install onboarding (interactive)bash {baseDir}/scripts/init-project.sh <path> <name> [stack]Scaffold a new projectbash {baseDir}/scripts/log-session.sh ...Log a session run (with full state for resume)bash {baseDir}/scripts/log-decision.sh ...Log an architecture decisionbash {baseDir}/scripts/check-prices.shCheck cloud model pricesbash {baseDir}/scripts/discover-models.shProbe providers for modelsbash {baseDir}/scripts/test-model.sh <id>Check model endpoint connectivitybash {baseDir}/scripts/resume-session.sh <id>Resume a previous session (id = filename, partial match, or 'last')bash {baseDir}/dashboard/serve.shStart orchestration dashboard
ScriptWhat it doesbash {baseDir}/scripts/show-tree.shShow data dir state + OpenClaw tool guidancebash {baseDir}/scripts/find-stuck.shShow how to find stuck subagents from sessionbash {baseDir}/scripts/cleanup-stale.shShow how to clean stale subagents from sessionbash {baseDir}/scripts/find-stray.shShow how to find stray subagents from session
When you need detailed instructions, read the relevant file:
{baseDir}/README.md — Full documentation (all procedures){baseDir}/ROUTING.md — Model routing table template$ORCHESTRATOR_DATA_DIR/models.json — Your model inventory$ORCHESTRATOR_DATA_DIR/session_log.md — Quick reference session history$ORCHESTRATOR_DATA_DIR/sessions/ — Detailed session state files (for resume)For specialised tasks, use whatever skills are available in your instance.
Always fall back to built-in tools ( edit, exec, read, web_search, web_fetch, browser) when specialised skills are unavailable.
Every spawned sub-agent or Cursor session MUST include:
text
IMPORTANT: Follow Genor's Project Orchestration conventions:
- Repowise first (or exec find as fallback)
- Plan before coding (update_plan or mental plan)
- Verify before claiming (build, test, screenshot, vision Q&A)
- Self-review your output before returning
- Fallback chains: if a tool is unavailable, use the next fallback
- Document decisions, log sessions