docket-feature
Skill2 starsChanged 2 months agoMITView on GitHub
Use before a change reaches its third file, when work will outlast this session or go to another agent, when resuming work an earlier session left uncommitted or unfinished, when the briefing or an edit hook says no feature is open, or before merging, squashing or rebasing a branch that carries a feature.
In this repository3 other files it gives its agents.
- AGENTS.mdAGENTS.md
- docs/agents.mdAGENTS.md
- docketSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
Start one before a change touches its third file, and before any work that spans more than one session, crosses a module boundary, or …
- Very specific: line 46
Run docket feature brief first, before anything else, when picking up a feature already started:
- Very specific: line 102
Run done before squashing or rebasing the branch.
≈ “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
docket-feature
The feature store tracks work in flight: what a piece of work intends, the
paths it declares, and what it actually changed. It never writes to the
ledger. Use the absolute command path supplied by the session context. The
examples use docket for readability.
When to start a feature
Start one before a change touches its third file, and before any work that
spans more than one session, crosses a module boundary, or another agent might
pick up later. Finishing within this turn is not a reason to skip it: done
reports which changed files fell outside the declared paths and asks about
the claims the change touched, and that check is worth as much on a short
change as on a long one. Skip it only for a change confined to one or two
files.
The edit hook says so when a session reaches its third edited file with no
feature open. Start the feature then, declaring the paths the rest of the
change will touch. Uncommitted edits made before start still count toward
done once they are committed.
The session briefing opens with a # feature: none open line when the working
tree carries uncommitted changes and no feature is open. Those changes came
from an earlier session. Start a feature for them before editing further;
commit a leftover edit instead if it is already finished.
Starting work
docket feature start opencode-discovery \
--text "Installer places the OpenCode plugin where discovery finds it" \
--path installer/**A declared path needs a / or a glob character. --path installer or
--path Makefile matches nothing and start refuses both.
Resuming work
Run docket feature brief first, before anything else, when picking up a
feature already started:
docket feature brief opencode-discoveryThe brief derives which ledger records govern the feature from its declared paths and prints each one with three numbers:
strengthis the same scope scoredocket contextranks records by.specificityis the length of the matching glob's literal prefix; a record scoped to one file outranks one scoped to a directory glob even at equal strength.matchesis how many of the feature's files that glob covers.
A rank you disagree with is visible on the line that produced it. Correct it with amend:
docket feature amend opencode-discovery --exclude d81
docket feature amend opencode-discovery --include q75Each flag replaces the whole list. To drop an override rather than change it, clear the list by name:
docket feature amend opencode-discovery --clear excludeStatus and blocked
docket feature list and docket feature show report blocked when an
attached decision derives as blocked, the same prerequisite relation
docket context computes for every decision. An open question in the
feature's scope does not block it on its own; scope overlap alone would fire
on nearly every feature. Work stalled on a question is declared paused by
hand:
docket feature amend opencode-discovery --status pausedAfter a ledger merge
A ledger merge can renumber the records a feature cites in --include or --exclude. The feature store keeps a key for each cited record, so the brief follows a renumbered record to its new ID, and docket check reports each ID that moved. Repoint the stored lists with:
docket feature remapremap needs no argument: it follows those keys. Pass the map file from docket rebase --emit-map PATH to repoint through that map instead. features.jsonl merges through the same git merge driver as the ledger; docket init registers it.
Closing work
Run done before squashing or rebasing the branch. Once the fork point is no
longer an ancestor of HEAD, done refuses and names the stale SHA.
docket feature done opencode-discoverydone prints two change-set lists: paths the branch changed that the feature
declared, and paths it changed outside them. A file outside the declared
paths is not an error, it is a fact to notice before merging.
The claim prompt at done
done asks only about claims whose scope intersects the paths the branch
actually changed; a claim about code the work never touched gained no new
evidence. Mark verdicts with --held and --failed:
docket feature done opencode-discovery --held c12 --failed c9For each --failed claim, done prints the docket claim ... --supersedes
command that would record the correction, then stops. Docket never writes
that record. Run the printed command yourself.
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.

