majiayu000/sol-luna-router
Route coding work so GPT-5.6 Sol remains the commander and reviewer while a separate GPT-5.6 Luna Max Codex CLI session performs concrete implementation. Use when the user asks for Sol to direct, plan, supervise, or review work done by Luna Max; when native Sol-to-Luna subagent spawning is unavailable or incompatible; or when a task needs an auditable plan, bounded worker ownership, verification, and review loop.
npx skills add https://github.com/majiayu000/spellbook --skill sol-luna-router
Keep Sol responsible for decisions and Luna Max responsible for implementation. Use the bundled
runner instead of native spawn_agent; current Sol and Luna releases can select different
multi-agent backends.
this thread.
use isolated worktrees with explicit, disjoint file ownership.
credential, or secret-handling flags.
AGENTS.md files and repository verification commands.Write a temporary UTF-8 task file outside the target repository. Include only task-local context:
Role: implementation worker.
Objective: <one bounded outcome>
Target repository: <absolute path>
Allowed files: <explicit paths or one narrow subtree>
Do not touch: <user changes and out-of-scope paths>
Constraints: <applicable requirements>
Reproduction or evidence: <fresh evidence>
Done when: <observable conditions>
Verification: <repository commands to run>
Return: root cause, changed files, commands with outcomes, and remaining risks.
Do not leak an intended patch or diagnosis when Luna must independently determine the root cause.
Run the bundled script with an absolute target directory and task-file path:
python3 <skill-dir>/scripts/run_luna_worker.py run \
--cwd /absolute/path/to/repo \
--prompt-file /absolute/path/to/task.md \
--sandbox workspace-write
The script fixes the worker to gpt-5.6-luna with model_reasoning_effort="max", disables
native multi-agent tools for the worker, invokes Codex without a shell, and returns one JSON
object containing thread_id, final_response, usage, and repository metadata.
Use --allow-non-git only when the user explicitly wants work outside a Git repository. Use
--events-file /absolute/path/events.jsonl only when a durable raw trace is needed.
When verification or Sol review finds an actionable defect, write a new temporary prompt containing
the exact failure evidence and resume the same worker thread:
python3 <skill-dir>/scripts/run_luna_worker.py resume \
--cwd /absolute/path/to/repo \
--thread-id <thread_id> \
--prompt-file /absolute/path/to/correction.md
Repeat verification after every correction. Do not open a new worker thread unless the previous
thread is unavailable or the task has materially changed.
the user or revise the plan; do not grant it silently.
worker run as failed.
Take majiayu000/sol-luna-router from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.