agentleFS
NovusEdgeNovusEdge/docket/skills/docket-feature/SKILL.md

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.

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
  1. Distinctive:

    Start one before a change touches its third file, and before any work that spans more than one session, crosses a module boundary, or …

    line 15
  2. Very specific:

    Run docket feature brief first, before anything else, when picking up a feature already started:

    line 46
  3. Very specific:

    Run done before squashing or rebasing the branch.

    line 102

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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-discovery

The brief derives which ledger records govern the feature from its declared paths and prints each one with three numbers:

  • strength is the same scope score docket context ranks records by.
  • specificity is 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.
  • matches is 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 q75

Each flag replaces the whole list. To drop an override rather than change it, clear the list by name:

docket feature amend opencode-discovery --clear exclude

Status 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 paused

After 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 remap

remap 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-discovery

done 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 c9

For 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.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.