Agent skill
task-orchestration
Execute repo work one task at a time using a strict plan → execute → iterate loop tracked in .copilot-todo.yaml.
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/task-orchestration
Metadata
Additional technical details for this skill
- author
- github-copilot-cli
- version
- 1.0
SKILL.md
Task Orchestration
Use this skill to drive work through a single authoritative YAML todo file: .copilot-todo.yaml.
Source of truth
.copilot-todo.yaml— only status tracker..copilot-todo.md— legacy/migration only (do not update by hand).
Getting Started with Templates
Creating a new plan from template
bash
# 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
bash
# 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:
template/plan.md.template— Markdown plan with task checkboxestemplate/copilot-todo.yaml.template— YAML structure with example task
Loop (plan → execute → iterate)
Repeat until no runnable tasks remain:
- Sync / migrate state
- Reuse existing
.copilot-todo.yaml(default):
bash
python3 .github/skills/task-orchestration/scripts/task_orchestrator.py init
- (Optional) Seed/regenerate tasks from
plan.mdusing Markdown task list items (- [ ] .../- [x] ...).- If an item starts with an explicit ID prefix like
A1. ...orT-001: ..., that ID is used. - Otherwise a stable-ish
P-XXXXXXXXID is generated from the text.
- If an item starts with an explicit ID prefix like
bash
python3 .github/skills/task-orchestration/scripts/task_orchestrator.py \
--plan-md plan.md \
--plan-mode regen \
init
- Start next task
bash
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
bash
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)
bash
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):
bash
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):
bash
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
ralph_loop.pyenforces one commit per finished task (use--no-require-committo disable). - Keep
--max-stepssmall to avoid burning requests if a task gets stuck.
Didn't find tool you were looking for?