Claude-skill-registry task-orchestration
Execute repo work one task at a time using a strict plan → execute → iterate loop tracked in .copilot-todo.yaml.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/task-orchestration" ~/.claude/skills/majiayu000-claude-skill-registry-task-orchestration && rm -rf "$T"
manifest:
skills/data/task-orchestration/SKILL.mdsource content
Task Orchestration
Use this skill to drive work through a single authoritative YAML todo file:
.copilot-todo.yaml.
Source of truth
— only status tracker..copilot-todo.yaml
— legacy/migration only (do not update by hand)..copilot-todo.md
Getting Started with Templates
Creating a new plan from template
# Copy the template to your repo root or session folder cp .github/skills/task-orchestration/template/plan.md.template plan.md # Edit plan.md with your tasks (use Markdown checkboxes: - [ ] Task name) # Generate .copilot-todo.yaml from your plan python3 .github/skills/task-orchestration/scripts/task_orchestrator.py \ --plan-md plan.md \ --plan-mode regen \ init
Creating a .copilot-todo.yaml from scratch
# Copy the template cp .github/skills/task-orchestration/template/copilot-todo.yaml.template .copilot-todo.yaml # Edit the tasks section, then initialize python3 .github/skills/task-orchestration/scripts/task_orchestrator.py init
Template locations:
— Markdown plan with task checkboxestemplate/plan.md.template
— YAML structure with example tasktemplate/copilot-todo.yaml.template
Loop (plan → execute → iterate)
Repeat until no runnable tasks remain:
- Sync / migrate state
- Reuse existing
(default):.copilot-todo.yaml
python3 .github/skills/task-orchestration/scripts/task_orchestrator.py init
- (Optional) Seed/regenerate tasks from
using Markdown task list items (plan.md
/- [ ] ...
).- [x] ...- If an item starts with an explicit ID prefix like
orA1. ...
, that ID is used.T-001: ... - Otherwise a stable-ish
ID is generated from the text.P-XXXXXXXX
- If an item starts with an explicit ID prefix like
python3 .github/skills/task-orchestration/scripts/task_orchestrator.py \ --plan-md plan.md \ --plan-mode regen \ init
- Start next task
python3 .github/skills/task-orchestration/scripts/task_orchestrator.py next
-
Plan (short bullets, only for the chosen task)
-
Execute (minimal diff; run smallest relevant existing build/test)
-
Update status
python3 .github/skills/task-orchestration/scripts/task_orchestrator.py update <ID> completed --note "..." # or python3 .github/skills/task-orchestration/scripts/task_orchestrator.py update <ID> blocked --note "..."
5b) Commit (required when using
ralph_loop.py --require-commit)
git add -A git commit -m "<ID>: <short summary>"
- Iterate / expand If you discover missing work, add follow-up tasks (don’t silently expand scope):
python3 .github/skills/task-orchestration/scripts/task_orchestrator.py add "Title" --deps <ID1,ID2> --priority Medium --goal "..."
Ralph-style multi-session loop (Copilot CLI)
To run one fresh Copilot run per task (uses
copilot -p, consuming Copilot requests accordingly):
python3 .github/skills/task-orchestration/scripts/ralph_loop.py \ --non-interactive \ --max-steps 10 # or: derive tasks from plan.md python3 .github/skills/task-orchestration/scripts/ralph_loop.py \ --non-interactive \ --plan-md plan.md \ --plan-mode regen \ --max-steps 10
Notes:
- This does not bypass quotas; it just splits work into multiple sessions.
- By default
enforces one commit per finished task (useralph_loop.py
to disable).--no-require-commit - Keep
small to avoid burning requests if a task gets stuck.--max-steps