agentleFS
ronniepinnellronniepinnell/casper/skills/fix-pool/SKILL.md

fix-pool

Skill1 starsChanged 4 months agoMITView on GitHub

Findings→fixes pooler for a coordinator session. Polls the task manager for new issues (walkthrough/tester-filed or manual), triages each (auto-fix / investigate / hold-for-operator / duplicate), and dispatches throttled background fix agents that stop at PR. Use when a build-hub session runs alongside human testing slots and new findings should flow into the builder workflow without the operator relaying them. Arm with `/fix-pool arm`, check `/fix-pool status`, stop with `/fix-pool drain`.

The file

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 2 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

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

    Read the task-manager adapter per _shared/adapters/{tracker.kind}.md (resolved from .claude/project.yml / project-context).

    line 26
  2. Distinctive:

    Surface mutex: Never dispatch a fix touching a surface an active testing slot is walking (the operator names the active surfaces at arm …

    line 71
  3. Distinctive:

    Honest triage beats fast triage: If AUTO-FIX vs HOLD is unclear, it's HOLD.

    line 76

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

Fix Pool — findings→fixes pooler

One coordinator session + N human testing slots produce a stream of freshly-filed issues. This skill turns the coordinator into the drain: poll → triage → dispatch → report, on a loop, with hard throttles. Capture stays with the testers (they have the context); pickup is centralized here (dedup + sequencing live in one place).

Invocation

/fix-pool arm [--interval 10m] [--max-agents 3] [--since <ISO|now>]
/fix-pool status
/fix-pool drain     # stop polling; let in-flight fix agents finish

Resolve config first

Read the task-manager adapter per _shared/adapters/{tracker.kind}.md (resolved from .claude/project.yml / project-context). All issue reads/links go through the adapter — never a hardcoded API. State file: .claude/.fix-pool-state.json (last_poll_iso, seen_ids[], dispatched{id→agent,pr}, held[]). Not committed.

Arm (the loop)

On arm, record the baseline timestamp (--since, default now) and start a polling cycle every --interval (default 10m) using the session's wake/scheduling mechanism (background monitor or ScheduleWakeup — whatever the harness provides; never a foreground sleep).

Each cycle:

  1. Poll — adapter: issues created since last_poll_iso in the configured team/project (include tester-session-filed and manually-filed; exclude issues this session created itself unless labeled for the pool). Self-filter is mandatory in the poll query or first triage step — the hub files tickets too, and without it the pool re-triages its own output (observed live, 2026-07-17). Track hub-created ids in the state file and drop them on sight. Also drop issues whose domain an ACTIVE sibling workstream owns (e.g. a migration terminal's own ledger ticket) — that's a HOLD with a named owner, not a dispatch.
  2. Triage each new issue (read title+body, check seen_ids):

    VerdictCriteriaAction
    AUTO-FIXClear repro + scope is test-only, docs, or a small UI/logic fix; no schema, no auth/security semantics, no design decisionDispatch a fix agent (worktree, own branch, PR to the integration branch, never merges)
    INVESTIGATEReal defect, root cause unclearDispatch an investigate agent: repro + root cause + proposed fix posted as an issue comment; fix only if the cause turns out AUTO-FIX-class
    HOLDSchema/migration, security posture, product/design decision, or anything one-way-doorAdd to held[]; surface in the next report; never auto-built
    DUPMatches an open issue/known findingLink via adapter comment; no work
  3. Throttle — at most --max-agents fix/investigate agents in flight (check TaskList); excess stays queued in order. New dispatches only as slots free.
  4. Report — one short message per cycle only when something changed: new findings by verdict, dispatches started, PRs ready, held items. Silent cycles stay silent.

Hard rules

  • PR-only. Pool agents never merge. Merges/deploys happen at operator break points — a deploy mid-test invalidates the testers' ground truth.
  • No schema pushes, ever. Migration-class findings are always HOLD.
  • Surface mutex. Never dispatch a fix touching a surface an active testing slot is walking (the operator names the active surfaces at arm time, or the walkthrough epics define them); queue until that slot completes.
  • Dedup before dispatch. Two findings, one root cause → one agent, both issues linked.
  • Honest triage beats fast triage. If AUTO-FIX vs HOLD is unclear, it's HOLD. A wrong auto-fix during a test session poisons two things at once.

Drain

drain: stop the poll loop, let in-flight agents finish and open their PRs, emit a final consolidated report: all findings routed, PRs awaiting merge, held items needing operator rulings. The pool is not drained until every finding has a disposition.

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.