Agent skill

Seeds Issue Audit

by jayminwest in jayminwest/warren

Audit and triage open Seeds (sd) issues — find which can be closed, auto-close high-confidence completed ones, and report borderline cases.

MITAuto-check passedDevelopment

Install Seeds Issue Audit

skills CLI
$ npx skills add jayminwest/warren --skill seeds-issue-audit -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jayminwest/warren seeds-issue-audit --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jayminwest/warren.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/seeds-issue-audit .claude/skills/seeds-issue-audit && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
seeds-issue-audit
GitHub stars
481
Token cost
~2.7k tokens
SKILL.md length
1,281 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
MIT

At a glance

Audit and triage open Seeds (sd) issues — find which can be closed, auto-close high-confidence completed ones, and report borderline cases.

  • Works in 7 steps: Operating Principles → Recon (always run first, read-only) → Choose Execution Mode (adaptive by… → …
  • Tasks that involve Issue triage
  • SKILL.md covers 1. Operating Principles, 2. Recon (always run first,…, 3. Choose Execution Mode… and 4. Gather Signals (per issue), plus 3 more sections
  • Calls git and gh

What it does

Seeds Issue Audit is an agent skill from jayminwest/warren. Audit and triage open Seeds (sd) issues — find which can be closed, auto-close high-confidence completed ones, and report borderline cases. Activate for prompts like "audit open issues", "which seeds issues can be closed", "clean up the issue tracker", "triage the seeds backlog".

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Issue triage. The repository describes itself as: Run coding agents like infrastructure, not terminal sessions. Warren manages isolation, lifecycle, spend, recovery, and Git delivery on compute you control. The licence is MIT.

When your agent uses it

  • Tasks that involve Issue triage

Example prompts

  • “audit open issues”
  • “which seeds issues can be closed”
  • “clean up the issue tracker”
  • “/seeds-issue-audit”

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Operating Principles
  2. Recon (always run first, read-only)
  3. Choose Execution Mode (adaptive by open-issue count)
  4. Gather Signals (per issue)
  5. Score & Decide (weighted rubric)
  6. Closing Protocol (orchestrator only)
  7. Final Report

What it can do on your machine

Read from SKILL.md and the folder at commit 9595340. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Seeds Issue Audit loads about 2.7k tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 1,281 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~75
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from jayminwest/warren at commit 9595340, republished under its MIT licence (© jayminwest). 1,281 words, ~2,736 tokens.

Download SKILL.mdSave it as .claude/skills/seeds-issue-audit/SKILL.md (or your agent's skills folder).
name
seeds-issue-audit
description
Audit and triage open Seeds (sd) issues — find which can be closed, auto-close high-confidence completed ones, and report borderline cases. Activate for prompts like "audit open issues", "which seeds issues can be closed", "clean up the issue tracker", "triage the seeds backlog".

Protocol: Seeds Issue Audit & Triage

You audit the project's open Seeds (sd) issues, decide which are safely closeable, auto-close only the high-confidence completed ones, and report everything borderline for a human to review. You NEVER guess: every auto-close must cite concrete evidence. Staleness alone is never enough to close anything.

1. Operating Principles

  • Auto-close only HIGH confidence. A HIGH-confidence issue has at least one strong completion signal AND no unresolved blockers. Close it.
  • Report, never close, BORDERLINE. Weak/partial/ambiguous signals are surfaced in the report for a human — you do not touch them.
  • Leave contradicted issues open. Open blockers, "WIP" / "in progress" language, or a reopened history means NOT closeable, full stop.
  • A blocker only counts if it is still OPEN. sd blocked / sd ready membership is a SNAPSHOT, not proof — a "blocked" issue may be sitting behind a blocker that is already closed (stale dependency edge), and its work may be fully shipped. Audit the blocked set too; never auto-exclude it. Re-resolve every blocker's LIVE status before trusting the gate.
  • Cascade until the set stabilizes. Closing an issue can unblock its downstream consumers. After every close pass, RE-AUDIT anything that was blocked solely by the issues you just closed — its work may already be done and merely waiting on a stale edge. Loop until a pass closes nothing.
  • Plans drift ahead of their seeds. A plan can be fully implemented and released while its child seeds stay open. Always reconcile plans against shipped code (Section 2) — don't trust plan_status/open child seeds at face value.
  • Evidence-first. Seeds has no first-class PR/commit field — references live only in free-text description / closeReason. Confirm them against git / gh before trusting them.
  • sd close is the only mutating command you run (plus sd sync to commit and sd plan outcome to record a finished plan). It is reversible via reopen. Never run sd update on others' issues; never push.

2. Recon (always run first, read-only)

Count the open set to pick an execution mode and gather candidates:

bash
sd stats                       # totals by status/type/priority
sd list --format ids           # bare open issue ids, one per line (fast)
sd list --format compact       # "id Priority status title" one-liner (fast)
sd ready --json                # open issues with NO unresolved blockers
sd blocked                     # issues that ARE blocked (audit too — see below)
  • sd ready is the closeable-candidate gate for the FIRST pass — but it is a snapshot. Audit BOTH the ready set and the blocked set. The blocked set's edges are frequently stale: a "blocked" issue may sit behind a blocker that is already closed, with its own work fully shipped. Never silently exclude blocked issues from the audit.
  • For every blocked issue, resolve each blocker's LIVE status (sd dep list <id>, then sd show <blocker> if unsure). If all blockers are already closed, the issue is auto-close-eligible and must be scored like any other.
  • Reconcile plans against code. If any open issue carries a plan_id, or recon shows active plans, run sd plan show <pl-id> and walk its steps. A plan whose phase PRs have all merged/released is materially DONE even if several child seeds are still open — those children are stale-open and should be verified (Section 4) and closed. After closing all of a plan's children, record sd plan outcome <pl-id> --result success.
  • Avoid sd list --json over the full open set — it embeds full descriptions and is SLOW / may time out. Page it or use per-issue sd show <id> [more ids] --json (single or batched ids are fast).

3. Choose Execution Mode (adaptive by open-issue count)

Count open issues with sd stats or sd list --format ids | wc -l, then:

Open issuesMode
<= 15INLINE — audit every issue yourself in this agent.
> 15FAN OUT — split ids into batches (~10 per batch) and dispatch one parallel worker subagent per batch via the Task tool.

In FAN OUT mode, each worker audits its batch (Sections 4–5) and returns a structured per-issue verdict. The orchestrator then aggregates all verdicts, performs the auto-closes itself (Section 6), and compiles the report (Section 7). Workers MUST NOT run sd close / sd sync — auditing only.

Required worker return format (one block per issue)
- id: <issue-id>
  title: <title>
  score: <integer>
  signals: [<merged-pr|plan-done|blockers-clear|stale|wip|...>]
  recommendation: <auto-close | report-borderline | leave-open>
  close_reason: "<proposed concise evidence-based reason, or empty>"

4. Gather Signals (per issue)

Pull the full record and scan it:

bash
sd show <id> --json            # id, status, type, priority, createdAt,
                               # updatedAt, description, closeReason,
                               # labels, blockedBy, blocks, plan_id,
                               # plan_status, parentId, extensions
sd dep list <id>               # list "Blocked by" edges

For EVERY blocker listed, confirm its LIVE status — a blocker that is already closed does not count. Do not infer "blocked" from sd blocked membership alone; resolve the actual edge:

bash
sd show <blocker-id> --json | grep -E '"status"'   # closed blocker ≠ a blocker

If the issue carries a plan_id, pull the plan and map this issue to its step so you can judge it against sibling progress and shipped PRs:

bash
sd plan show <plan-id>         # steps, child seeds, blocks edges, status

Extract references from description + closeReason (the only place PRs / commits appear) with these patterns:

ReferenceRegex
PR / issue number#\d+
Plan idpl-[0-9a-f]+
Warren tracker idwarren-[0-9a-f]+
Commit SHA\b[0-9a-f]{7,40}\b
Completion languagemerged, done, closed, shipped, landed

Confirm references are REAL completions (best-effort; gh is optional):

bash
git log --oneline --all | grep -iE "<issue-id>|#<pr-number>|<sha>"
gh pr view <N> --json state,merged   # state=MERGED / merged=true → confirmed

A PR reference counts as a strong signal only when gh reports it MERGED, or the commit/PR is found on the default branch via git log.

Show full SKILL.md (501 more words)Show less

5. Score & Decide (weighted rubric)

Score each issue, then map to a verdict.

Signals & weights

  • Merged PR / commit confirmed (gh merged=true, OR commit/PR on default branch): strong (+3).
  • plan_status == "done" for the issue's plan, paired with completion language: strong (+3).
  • blockedBy empty OR every listed blocker already closed: required gate (+1). If ANY blocker is still open → NOT auto-closeable, period.
  • Staleness: updatedAt older than the threshold (default 90 days, override if the user prompt specifies one): weak (+1), flag-only. Staleness ALONE never auto-closes.

Confidence bands

  • HIGH (auto-close): at least one strong signal AND no unresolved blockers AND no contradiction.
  • BORDERLINE (report only): only weak/partial signals, an unconfirmed PR reference, stale-but-otherwise-quiet, or any ambiguity.
  • NOT CLOSEABLE (leave open): any open blocker, "WIP"/"in progress" language, or evidence the work is unfinished/reopened.

Decision table

Strong signal?Blockers clear?Other signalsVerdict
Yes (merged PR / plan done)Yes—AUTO-CLOSE
YesNo (open blocker)—LEAVE OPEN
NoYesunconfirmed PR ref / completion language onlyREPORT BORDERLINE
NoYesstale only (updatedAt past threshold)REPORT BORDERLINE
NoYesnone / fresh / no signalsLEAVE OPEN
AnyAny"WIP" / reopened / unfinishedLEAVE OPEN
——status == in_progressREPORT (never auto-close w/o explicit OK)

6. Closing Protocol (orchestrator only)

Close ONLY the HIGH-confidence set. Cite the signal in every reason.

bash
# Close one — reason cites concrete evidence
sd close <id> --reason "PR #197 merged; plan pl-55a3 done"

# Batch-close ONLY when issues share the exact same reason
sd close <id1> <id2> <id3> --reason "shared evidence here"
  • Prefer individual closes so each --reason is accurate; batch only when the reason genuinely applies to all.

Cascade re-audit (mandatory after every close pass). Closing an issue can clear the last open blocker of a downstream issue. Before you sync:

  1. Collect the issues that were blocked SOLELY by the ones you just closed (sd ready will now list newly-unblocked items; cross-check against the blocks edges of the closed set).
  2. Re-audit each (Sections 4–5) with its blockers now resolved. Many will be stale-open work that already shipped — verify evidence and auto-close the HIGH-confidence ones.
  3. Repeat until a full pass closes nothing (the set has stabilized).

This is how a fully-shipped-but-unclosed plan chain gets caught: closing the early phases unblocks the later phases, whose PRs already merged.

  • When you have closed every child of a plan, record the outcome:
bash
sd plan outcome <plan-id> --result success   # or partial / failure
  • After all close passes and cascades settle, stage/commit the .seeds/ changes:
bash
sd sync
  • Do not push — the user pushes per the repo session-completion protocol.

Hard safety rules

  • Never close an issue with a blocker that is still OPEN (a closed blocker does not count — verify live status, don't trust the blocked snapshot).
  • Never auto-close an in_progress issue without explicit user confirmation.
  • Staleness-only is never an auto-close.
  • If evidence is unconfirmed or contradictory, downgrade to BORDERLINE.

7. Final Report

End with a concise, scannable summary — two tables.

Auto-closed

idtitlereason
......evidence-based close reason

Borderline (needs human review)

idtitlesignalswhy not auto-closedsuggested action
......stale 140d; PR #x unconfirmedno confirmed completion signalverify PR #x merged, then close

Optionally render these with the <json-render> Table / Card components for the terminal UI. Lead with the counts (e.g. "Closed 6, flagged 9 borderline, left 29 open") so the outcome is obvious at a glance.

© jayminwest, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/seeds-issue-audit of jayminwest/warren.

Open the folder on GitHubat commit 9595340

Compare with similar skills

Seeds Issue Audit next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Seeds Issue Audit compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Seeds Issue Audit this skilljayminwest/warren481—~2.7kAutomated safety check: PassMIT
Wayfinderbestofjs/bestofjs3.1k21 repos~2.9kAutomated safety check: PassMIT
Setup Matt Pocock Skillsbestofjs/bestofjs3.1k20 repos~1.7kAutomated safety check: PassMIT
Windows App SDK Issue Triage Reportmicrosoft/WindowsAppSDK4.7k—~3.4kAutomated safety check: PassApache-2.0
Exposed Bug Fix WorkflowJetBrains/Exposed9.3k—~3.8kAutomated safety check: PassApache-2.0
Archify Reviewtt-a1i/archify81k—~415Automated safety check: PassMIT

Similar skills

  • Wayfinder

    bestofjs/bestofjs

    Plan a huge chunk of work — more than one agent session can hold — as a shared map of decision tickets on your issue tracker, and resolve them one at a time until the way to the destination is clear.

    3.1k GitHub starsUsed in 21 repos~2.9k tokens
    DevelopmentAuto-check passed
  • Setup Matt Pocock Skills

    bestofjs/bestofjs

    Configure this repo for the engineering skills — set up its issue tracker, triage label vocabulary, and domain doc layout.

    3.1k GitHub starsUsed in 20 repos~1.7k tokens
    DevelopmentAuto-check passed
  • Official

    Generates GitHub Feature Area Status reports for the Windows App SDK repository, scoring issues so teams can see what needs attention in each area.

    4.7k GitHub stars~3.4k tokensUpdated today
    DevelopmentAuto-check passed
  • Exposed Bug Fix Workflow

    JetBrains/Exposed

    Official

    Takes a GitHub or YouTrack issue for the Exposed project through reproduction, a failing test, a fix, validation and a pull request.

    9.3k GitHub stars~3.8k tokensUpdated today
    DevelopmentAuto-check passed
  • Archify Review

    tt-a1i/archify

    Review Archify issues, PRs, or code through value, cost, and impact to support evidence-based maintenance decisions. Use for issue triage, change reviews, and…

    81k GitHub stars~415 tokensUpdated today
    DevelopmentAuto-check passed
  • Bug Triage

    symfony/symfony

    Decide whether open Bug PRs target the correct branch. An agent skill from symfony/symfony.

    31k GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check passed

More from jayminwest/warren

  • Os Eco Dep Sync

    jayminwest/warren

    Bump warren onto the latest published @os-eco/ versions across package.json + bun.lock and the Dockerfile CLI pins, then run the gates and open a PR.

    481 GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Good First Issue Batch

    jayminwest/warren

    File a batch of contributor-ready GitHub issues from the seeds backlog, re-verifying every candidate against HEAD first so no dead issue reaches a contributor.

    481 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Release

    jayminwest/warren

    Prepare, cut, and verify a warren release — tracker audits, version bump, CHANGELOG curation, ROADMAP update, push, then watch the pipeline through to published artifacts.

    481 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • UI Design Review

    jayminwest/warren

    Independent design review of a warren web-UI change. An agent skill from jayminwest/warren.

    481 GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Warren Dogfood Pipeline

    jayminwest/warren

    Full prioritize → dispatch → shepherd → track pipeline against the live warren instance.

    481 GitHub stars~2.9k tokensUpdated today
    Auto-check passed

Categories

Questions about Seeds Issue Audit

What does Seeds Issue Audit do?

Audit and triage open Seeds (sd) issues — find which can be closed, auto-close high-confidence completed ones, and report borderline cases. Seeds Issue Audit is an agent skill from jayminwest/warren. Audit and triage open Seeds (sd) issues — find which can be closed, auto-close high-confidence completed ones, and report borderline cases.

When should I use Seeds Issue Audit?

Seeds Issue Audit fits situations like: tasks that involve Issue triage.

How do I install Seeds Issue Audit in Claude Code?

Run `npx skills add jayminwest/warren --skill seeds-issue-audit -a claude-code`. Or copy the skill folder (.agents/skills/seeds-issue-audit in jayminwest/warren) into .claude/skills/seeds-issue-audit in your project. Claude Code loads it when a task matches its description.

How do I install Seeds Issue Audit in Codex?

Run `npx skills add jayminwest/warren --skill seeds-issue-audit -a codex`. Or copy the skill folder (.agents/skills/seeds-issue-audit in jayminwest/warren) into .agents/skills/seeds-issue-audit in your project. Codex loads it when a task matches its description.

Can I use Seeds Issue Audit in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jayminwest/warren --skill seeds-issue-audit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/seeds-issue-audit, .gemini/skills/seeds-issue-audit, .github/skills/seeds-issue-audit and .opencode/skills/seeds-issue-audit in your project.

What does Seeds Issue Audit need to run?

Going by SKILL.md and its folder, Seeds Issue Audit needs the command-line tools its instructions call (git and gh).

Does Seeds Issue Audit access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Seeds Issue Audit safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Seeds Issue Audit use?

Seeds Issue Audit is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Seeds Issue Audit use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Seeds Issue Audit?

Skills that share tags, products or a category with Seeds Issue Audit: Wayfinder (bestofjs/bestofjs, 3.1k stars), Setup Matt Pocock Skills (bestofjs/bestofjs, 3.1k stars), Windows App SDK Issue Triage Report (microsoft/WindowsAppSDK, 4.7k stars) and Exposed Bug Fix Workflow (JetBrains/Exposed, 9.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Seeds Issue Audit?

jayminwest (a GitHub user) maintains it in jayminwest/warren, which has 481 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 9, 2026.

Source: jayminwest/warren on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.