Install
openclaw skills install project-orchestrationComplete project orchestration: model routing, coding workflow, scripts, session logging, decision tracking, price checks
openclaw skills install project-orchestrationupdate_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:
| Location | Format | Example |
|---|---|---|
sessions/ | 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.md | Flat table (append-only quick reference) | — |
models.json | JSON inventory | — |
price_changes.log | Flat 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:
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:
bash {baseDir}/scripts/init-project.sh <project-path> <Project Name> [stack]
or ask the LLM: "Start project <name>"
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:
| Command | Action |
|---|---|
/project-orchestration onboard | Full fresh-install onboarding |
/project-orchestration webui | Start dashboard: bash {baseDir}/dashboard/serve.sh |
/project-orchestration project <path> [name] | Onboard a project (new or existing) |
/project-orchestration status | Show orchestration state |
/project-orchestration resume <id> | Resume session: bash {baseDir}/scripts/resume-session.sh <id> (id = filename, partial match, or 'last') |
/project-orchestration check-prices | Check 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 |
| Script | What it does |
|---|---|
bash {baseDir}/scripts/onboard.sh | Fresh-install onboarding (interactive) |
bash {baseDir}/scripts/init-project.sh <path> <name> [stack] | Scaffold a new project |
bash {baseDir}/scripts/log-session.sh ... | Log a session run (with full state for resume) |
bash {baseDir}/scripts/log-decision.sh ... | Log an architecture decision |
bash {baseDir}/scripts/check-prices.sh | Check cloud model prices |
bash {baseDir}/scripts/discover-models.sh | Probe providers for models |
bash {baseDir}/scripts/test-model.sh <id> | Check model endpoint connectivity |
bash {baseDir}/scripts/resume-session.sh <id> | Resume a previous session (id = filename, partial match, or 'last') |
bash {baseDir}/dashboard/serve.sh | Start orchestration dashboard |
| Script | What it does |
|---|---|
bash {baseDir}/scripts/show-tree.sh | Show data dir state + OpenClaw tool guidance |
bash {baseDir}/scripts/find-stuck.sh | Show how to find stuck subagents from session |
bash {baseDir}/scripts/cleanup-stale.sh | Show how to clean stale subagents from session |
bash {baseDir}/scripts/find-stray.sh | Show 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:
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