setup-sanurb-skills/SKILL.md
Sets up an `## Agent skills` block in AGENTS.md/CLAUDE.md and `docs/agents/` so the engineering skills know this repo's issue tracker (GitHub, GitLab, fp, or local markdown), triage label vocabulary, and domain doc layout. Run before first use of `fp-plan`, `fp-implement`, `fp-review`, `to-issues`, `to-prd`, `triage`, `diagnose`, `tdd`, `improve-codebase-architecture`, or `zoom-out` — or if those skills appear to be missing context about the issue tracker, triage labels, or domain docs.
npx skillsauth add sanurb/skills setup-sanurb-skillsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Scaffold the per-repo configuration the engineering skills assume — issue tracker, triage label vocabulary, and domain doc layout — by inserting an ## Agent skills block into CLAUDE.md/AGENTS.md and seeding three files under docs/agents/. This is what makes the rest of the skill set composable: fp-plan, fp-implement, fp-review, to-issues, triage, diagnose, tdd, improve-codebase-architecture, and zoom-out all read the same three files, so they speak the same vocabulary about THIS repo.
Collect facts BEFORE presenting a single decision:
git remote -v and .git/config — GitHub remote? GitLab remote? Self-hosted?AGENTS.md and CLAUDE.md at the repo root — does either exist? Is there already an ## Agent skills section in either?CONTEXT.md and CONTEXT-MAP.md at the repo root.docs/adr/ and any src/*/docs/adr/ directories.docs/agents/ — has this skill already produced output?.scratch/ — sign that local-markdown issue tracking is already in use.fp tree (suppress errors) — sign that fp is initialised in this repo.Do not propose anything yet. Just collect.
Present Section A → wait for the user's answer → Section B → wait → Section C. Never dump all three at once. Each section opens with a short explainer (assume the user does not know the term, why these skills need it, or what changes if they pick differently).
Section A — Issue tracker. Where issues live for this repo. Default by detection from Step 1:
git remote points at GitHub → propose GitHub (uses gh). Seed: references/issue-tracker-github.md.git remote points at GitLab → propose GitLab (uses glab). Seed: references/issue-tracker-gitlab.md.fp tree returned a tree → propose fp (uses fp issue ...). Seed: references/issue-tracker-fp.md..scratch/ exists, or no remote → propose Local markdown under .scratch/<feature-slug>/. Seed: references/issue-tracker-local.md.Section B — Triage label vocabulary. Five canonical roles: needs-triage, needs-info, ready-for-agent, ready-for-human, wontfix. Read: references/triage-labels.md for the seed table. Default each role's string to its name; ask the user if their tracker already uses different strings and map them. (For fp, state lives in the tree shape — the table maps idiomatically; see references/issue-tracker-fp.md for the divergence.)
Section C — Domain docs. Read: references/domain.md for the seed and consumer rules. Confirm layout:
CONTEXT.md + docs/adr/ at the repo root. Most repos.CONTEXT-MAP.md at the root pointing at per-context CONTEXT.md files. Default to single-context unless CONTEXT-MAP.md already exists.After all three are answered, show the user the draft ## Agent skills block and the three docs/agents/*.md file contents. Let them edit before writing.
Pick the file: edit CLAUDE.md if it exists; else edit AGENTS.md if it exists; else ask the user which to create. Never create one when the other already exists.
If an ## Agent skills block already exists in the chosen file, update it in place. Do not append a duplicate. Do not touch the surrounding sections.
The block:
## Agent skills
### Issue tracker
[one-line summary]. See `docs/agents/issue-tracker.md`.
### Triage labels
[one-line summary]. See `docs/agents/triage-labels.md`.
### Domain docs
[single-context | multi-context]. See `docs/agents/domain.md`.
Then write the three files under docs/agents/, seeded from the matching reference:
docs/agents/issue-tracker.md ← copy from references/issue-tracker-{github,gitlab,fp,local}.md. For "Other" trackers, write from scratch using the user's description.docs/agents/triage-labels.md ← copy from references/triage-labels.md and fill in the user's mappings.docs/agents/domain.md ← copy from references/domain.md.Then tell the user which engineering skills will now consume these files. Mention they can edit docs/agents/*.md directly later — re-running this skill is only necessary to switch issue trackers or restart from scratch.
The skill delivers nothing if any of these fails:
docs/agents/, .scratch/, fp tree) completed BEFORE any decision was presented to the user.CLAUDE.md or AGENTS.md was edited. Never both. Never created the other when one already existed.## Agent skills block was updated in place. No duplicate block was created. No surrounding sections were overwritten or reordered.docs/agents/issue-tracker.md, docs/agents/triage-labels.md, docs/agents/domain.md) exist after Step 3, even if the user accepted defaults verbatim.CONTEXT.md, docs/adr/, or .scratch/ was created speculatively — those are produced by other skills lazily, not by this one.Three artifact streams:
Stream 1 — block inserted in CLAUDE.md or AGENTS.md (whichever was already present), in this exact shape:
## Agent skills
### Issue tracker
{one-line summary, e.g. "GitHub issues via `gh`."}. See `docs/agents/issue-tracker.md`.
### Triage labels
{one-line summary, e.g. "Five canonical roles, defaults verbatim."}. See `docs/agents/triage-labels.md`.
### Domain docs
{single-context | multi-context}. See `docs/agents/domain.md`.
Stream 2 — three files under docs/agents/:
docs/agents/issue-tracker.md — seeded from references/issue-tracker-{github,gitlab,fp,local}.md, or written from scratch for "Other".docs/agents/triage-labels.md — seeded from references/triage-labels.md, with the user's mappings filled in.docs/agents/domain.md — seeded from references/domain.md.Stream 3 — confirmation message listing the engineering skills that now read from these files: fp-plan, fp-implement, fp-review, to-issues, to-prd, triage, diagnose, tdd, improve-codebase-architecture, zoom-out. Note that re-running this skill is only needed to switch tracker / restart.
development
Build a throwaway prototype to flush out a design before committing to it. Routes between two branches — a runnable terminal app for state/business-logic questions, or several radically different UI variations toggleable from one route. Use when the user wants to prototype, sanity-check a data model or state machine, mock up a UI, explore design options, or says "prototype this", "let me play with it", "try a few designs".
tools
Control herdr (a terminal-native agent multiplexer) from inside it. Manage workspaces and tabs, split panes, spawn sibling agents, read pane output, and wait for state changes — all via CLI commands that talk to the running herdr instance over a local unix socket. Use when running inside herdr (HERDR_ENV=1). Do not use outside herdr.
documentation
Compact the current conversation into a handoff document for another agent to pick up.
testing
Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.