operator-backlog-refinement
Skill1 starsChanged 4 months agoMITView on GitHub
Refine backlog items until an agent could pick one up and finish it without asking anything, then walk the product owner through approving them. Use before starting work when the queue is empty, or when an item is too vague to execute.
In this repository23 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- templates/copilot-instructions.mdCopilot instructions
- speckit-analyzeSkill
- speckit-checklistSkill
- speckit-clarifySkill
- speckit-constitutionSkill
- speckit-convergeSkill
- speckit-implementSkill
- speckit-planSkill
- speckit-specifySkill
- speckit-tasksSkill
- speckit-taskstoissuesSkill
- backlogSkill
- code-intelligenceSkill
- field-notesSkill
- operator-backlog-newitemSkill
- operator-backlog-scrumSkill
- peer-agentsSkill
- request-auditSkill
- spec-drivenSkill
- worktreesSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 3 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 36
Not a design — an observable.
- Distinctive: line 54
Do not resolve an ambiguity by picking the more likely reading and writing it down as settled.
- Very specific: line 71
If an item should not be built, say why and leave it.
- Distinctive: line 78
Commit the refinements. Refinement that lives only in a working tree is not refinement.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Refine the backlog
$ARGUMENTS may name one item id. With no argument, refine everything that is
awaiting approval.
Refinement is the step that makes a queue consumable. An unrefined item guarantees the failure it was filed to prevent: an agent picks it up, discovers it cannot tell what "done" means, and either asks (ending the session) or decides for itself (shipping something nobody asked for).
What to refine
backlog ready --explain # the queue, and why everything else is out of it
backlog list --status proposed
backlog show <id>Work on the proposed items. Approved items are the product owner's decision
already made — do not rewrite their scope under the guise of refining them; if
one is wrong, say so and let the owner decide.
What "refined" means
An item is refined when another agent, with no memory of this conversation, could finish it and know that it had. Concretely:
- Evidence a stranger can verify. A date, a command, an observed output. Replace "it's flaky" with the run that failed and what it printed.
- A stated outcome. What is true when this is done that is not true now. Not a design — an observable.
- Scope, including its edges. Say what is not in it. An item with no stated boundary grows one at implementation time, chosen by whoever is holding it.
- Named risk. Which files, and how dangerous. Auth, payments, data deletion, schema migration and concurrency all deserve saying out loud.
- A spec tie.
spec:is a path underspecs/or the literalnone, andnonemust be written out — "this changes no specification" is a decision somebody recorded, not a silence that could equally mean nobody looked.
Edit the item file directly. Keep the front matter intact; the body is prose.
Ask, do not guess
Where the item is ambiguous, ask the user — one question at a time, each phrased so that either answer changes what gets built. A question whose answers lead to the same implementation is not worth a turn.
Do not resolve an ambiguity by picking the more likely reading and writing it down as settled. A guess recorded in an item is indistinguishable from a decision, and the next agent has no way to tell it was invented.
Approval is the owner's act, not yours
backlog approve <id> # proposed -> openRun this only when the user has said yes, and say so plainly when you report: "approved 7 on your say-so". Nothing in the tool can stop an agent approving its own work — the file is right there — so the only real control is that the act is visible in the commit and that you do not do it unasked. An agent that approves its own items has not found a shortcut; it has removed the one signal telling the owner what they agreed to.
If an item should not be built, say why and leave it. Rejecting is also the
owner's decision: it takes a closed date and no commit, because nothing
shipped.
Finishing
backlog checkmust pass.- Commit the refinements. Refinement that lives only in a working tree is not refinement.
- Report: how many items are now ready, which are still awaiting approval, and any question you are still blocked on.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

