Queue
π octo β portable AI-agent workflow plugin: plan β build β review-until-clean, a lessons engine that absorbs every bug it sees, an autonomous studio mode, and Mission Control. Every bug leaves a scar; octo remembers. Works with Claude Code and any Agent Skills harness.
npx -y skills add eduardkumskyi/octo --skill queueAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Collect task descriptions all day, then run them unattended: each item becomes a studio mission in its own git worktree, ending in a branch + delivery digest. Come back to finished work.
SKILL.md
4.6 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
Progress Contract
OCTO_ROOT = ${CLAUDE_PLUGIN_ROOT} when set; otherwise two directories above this skill's base directory (skills/<name>/ sits at <plugin-root>/skills/<name>/). Resolve once at start.
Register steps as a native task list before doing any work. Report progress as "N steps remaining" β never wall-clock ETAs.
Register steps in the native task list named π <n>/<total> β <step name>; update each to in_progress/completed as you go β the checklist is the user's primary progress view.
Arguments
add <description>β append a new item to the queue.listβ show the current queue as a table.runβ execute all pending items unattended, sequentially.clearβ remove all done items from the queue file.
Queue File
Queue state lives at .claude/octo/queue.md. Each item has the form:
## Q<n> β <description>
Status: pending|running|done|failed
Branch:
Register .claude/octo/ in .git/info/exclude (append only if not already present; never modify .gitignore).
Commands
add <description>
Append a new item to .claude/octo/queue.md:
## Q<n> β <description>
Status: pending
Branch:
Where n is the next sequential number. Create the file with a # Queue header if absent.
Report: "Q<n> added.".
list
Read .claude/octo/queue.md and print a table:
| # | Description | Status | Branch |
|---|
run
For each item with Status: pending, in order:
- Derive a slug from the description: lower-case, replace spaces and special characters
with
-, collapse runs of-. - Create an isolated git worktree:
git worktree add ../<repo-name>-q<n> -b octo/q<n>-<slug>from the current HEAD. - Set
Status: runningin.claude/octo/queue.md. - Run the
/octo:studioworkflow inside the worktree, with these adjustments:- Phase 1 (contract) is replaced: the item description IS the mission. The studio derives acceptance criteria from the description using the consilium β seat: client advocate maps the description to observable, testable outcomes. Zero questions β this is unattended by definition.
- All other studio phases (consilium-setup, milestone-loop, delivery) apply in full, including the state-write gate and blocked-event protocol.
- The corrupt-state exception (Phase 4) may still halt an item: set
Status: failedwith reason appended under the item; continue to the next item.
- On completion (delivery reached):
- Set
Status: done. - Set
Branch: octo/q<n>-<slug>. - Append a one-line delivery digest under the item's entry in
.claude/octo/queue.md.
- Set
- Run
bash "$OCTO_ROOT/scripts/notify.sh" "octo queue" "done: Q<n> β <description>". - Continue to the next pending item.
Items run sequentially β one studio at a time. Parallel-first applies INSIDE each mission (the studio's own agent dispatches are concurrent); the queue itself is serial.
Worktrees are left in place with their branches for the user's review. The user merges or discards them manually.
clear
Remove all items with Status: done from .claude/octo/queue.md. Report the count removed.
Final Output for run
After all items have been processed, present a table as the chat output (not prose):
| Q# | Description | Status | Branch | Try it |
|---|
Try it = the exact command from the item's delivery digest, or β if failed.
Shared Conventions
- Commits: conventional format
type(scope): brief descriptionβ no AI attribution, noCo-Authored-Bylines of any kind. - Never push directly to protected branches (protected branches β see the octo guard's list).
- Never use
--no-verifyor force-push. - Parallel-first: dispatches that do not consume each other's output MUST go in a single message. Dispatching sequentially what could run concurrently is a defect, not a style choice. Cap β10 concurrent lanes; more work than lanes β batch waves.
- Reader-first output: lead with the outcome in one sentence; keep the visible reply short and dev-readable β only what changes the reader's next action. Full detail (complete reports, evidence, logs) goes to a file under
.claude/octo/reports/YYYY-MM-DD-<skill>-<slug>.mdwith the path given in chat β never dumped into the conversation.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.