agentleFS
vzhukovsvzhukovs/podman-desktop-kit/skills/close/SKILL.md

close

Skill0 starsChanged 11 days agoApache-2.0View on GitHub

Close out a merged issue: harvest what was learned, clean up worktrees.

26 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use reconcile, start and 3 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • howellsSkill

    reconcile

    Audit a project against current plugin conventions and offer to update structure.

    Also in 3 projects that use this

  • AnthropicSkill

    start

    Set up your bio-research environment and explore available tools. Use when first getting oriented with the plugin, checking which literature, drug-discovery, or visualization MCP servers are connected, or surveying available analysis skills before starting a new project.

    Also in 6 projects that use this

  • OpenAISkill

    bootstrap

    Project bootstrapping orchestrator for repos that depend on Vercel-linked resources (databases, auth, and managed integrations). Use when setting up or repairing a repository so linking, environment provisioning, env pulls, and first-run db/dev commands happen in the correct safe order.

    Also in 3 projects that use this

  • AnthropicSkill

    brief

    Generate contextual briefings for legal work — daily summary, topic research, or incident response. Use when starting your day and need a scan of legal-relevant items across email, calendar, and contracts, when researching a specific legal question across internal sources, or when a developing situation (data breach, litigation threat, regulatory inquiry) needs rapid context.

    Also in 3 projects that use this

  • SentrySkill

    review

    Fixture review skill.

    Also in 5 projects that use this

The file

We split this skill into the rules it gives an agent

4 rules. 0 are common, 2 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 21 edited versions we read keep these.

  • 2

    Distinctive

    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. Very specific:

    Harvest: Read the facts and decide what belongs in ${CLAUDE_PLUGIN_ROOT}/knowledge/:

    line 35
  2. Distinctive:

    Not a narrative of the work, and not "we learned to test more carefully".

    line 43
  3. Very specific:

    Leave the tree first if this session is in it: If the session moved into the issue's worktree with EnterWorktree, call ExitWorktree before …

    line 65
  4. Distinctive:

    Do not close the upstream issue and do not comment on it.

    line 105

“Common” is measured: kept by at least 6 in 10 of the 21 edited versions of this file we could read. “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

Steps

  1. pdkit close <issue> --json — the facts: what merged and when, which amendments happened, what the journal recorded as notable, which worktrees are still on disk.

    It re-reads every pull request the record still calls open before it answers. The merge happens in the browser, usually long after anything local last ran pdkit pr refresh, so the stale copy is the normal case rather than the exception — and this is the one command where believing it would end the issue in the wrong state.

    A read that could not be made is in refreshFailed, with how old the record it could not replace is. That is not a reason to stop: the facts on disk are still worth reading, and --finish refuses on a pull request whose state nobody could establish anyway.

  2. Check the rollup before anything else. An issue is finished when every one of its pull requests has landed. One merged slice of three is not a finished issue, and a pull request the maintainer closed is unfinished work rather than finished work — that is the entry to the redo route, not the exit.

    pdkit close --finish refuses while anything is open, and it is right to.

  3. Harvest. Read the facts and decide what belongs in ${CLAUDE_PLUGIN_ROOT}/knowledge/:

    • a trap that cost time and would cost it again (the RunOptions class of thing);
    • a review expectation nobody had written down;
    • a package boundary that turned out to be different from what the plan assumed.

    Not a narrative of the work, and not "we learned to test more carefully". If a finding would not change what a future run does, it is not knowledge, it is a diary entry.

    Propose the additions and let the user approve them. ${CLAUDE_PLUGIN_ROOT}/knowledge/ ships with the plugin and is read by every later issue; growing it quietly is how it stops being read.

    An approved entry is a commit to the plugin's own repository, not an edit under ${CLAUDE_PLUGIN_ROOT}: that directory is the installed copy, the next update replaces it, and an edit made there is lost with it.

    This is the per-issue half, done while the details are still live. The pass over the whole base — entries that have gone stale, paths that moved, a layer chain that drifted — is /pd:knowledge, and it is periodic rather than part of finishing anything.

  4. pdkit close <issue> --finish — moves the issue to merged and removes its worktrees. Removal refuses on a tree holding an unmerged branch, because that is the one case where tidying up loses work. --force only once you mean to abandon those commits.

    Leave the tree first if this session is in it. If the session moved into the issue's worktree with EnterWorktree, call ExitWorktree before --finish. Removing the directory the session stands in leaves it with no working directory, and the next step then needs a new session.

    Three outcomes per tree, and they are worth telling apart:

    • removed — gone.
    • removed — git left files behind; deleted — git worktree remove failed after it had already dropped the registration, which git does first. The directory was deleted here and the journal says so. Nothing to do.
    • unregistered but still on disk: <path> — the same failure, and the leftover could not be deleted either. Only this one needs a person. Git no longer tracks that path, so no later close will offer it again and the next worktree create there will fail on it.

    kept means what it says: the tree is still registered, git refused, and nothing was touched.

When the issue was answered rather than changed

An issue in answered finished differently: the deliverable was a reproduction, a detector and a workaround, published as a comment, and no diff of ours settled it. The rollup has nothing to say about it — asking it produces "no pull request was ever opened", which is true and about nothing.

pdkit close <issue> --finish --confirmed "<who confirmed, and how>"

--confirmed is required and is a fact about them, not a verdict of ours: the reporter said it worked, or a maintainer closed the issue. Without it the close is refused, because deciding on our own that someone else's problem went away is the same overreach awaiting-review refuses for domain owners. If nobody ever answers, the honest end is abandoned and the reason says so; if the answer implied product work, the issue goes back to planned instead of being closed at all.

What not to do here

Do not close the upstream issue and do not comment on it. Both are refused by the hook, and the refusal is the workflow being honest with itself: writing to someone else's tracker is a human action, and upstream closes its own issues when the pull request merges.

Next

Nothing, for this issue: merged is terminal, and so is resolved. The next issue starts with /pd:triage in a new session. Nothing of this one needs to be in it — what it taught that is worth keeping went into ${CLAUDE_PLUGIN_ROOT}/knowledge/, which every later issue reads, and the rest would only be re-read on every turn of work it has no bearing on.

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.