agentleFS
timurgaleevtimurgaleev/vibestack/skills/vibe/SKILL.md

vibe

Skill8 starsChanged 6 months agoMITView on GitHub

Router for the vibestack skills: name the task and it picks the right skill, also where there is no / picker.

19 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

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

  • 0

    Common

    Most of the 19 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If this session was compacted, the copy of this skill in context may be cut off.

    line 17
  2. Very specific:

    Read ${CLAUDE_SKILL_DIR}/SKILL.md from disk and resume at the step you are on.

    line 18
  3. Very specific:

    Use when the task clearly wants a vibestack workflow but the right one is not obvious, or when the host has no slash-command picker and the …

    line 22
  4. Very specific:

    Failures: When the user names the cause and a narrow fix, make one read-only check of the file, test or log it rests on.

    line 133
  5. Distinctive:

    Answer directly instead: when the request is a quick factual question (including "which skills are there?" — show the table), a small edit …

    line 139
  6. Distinctive:

    Pick one: Don't stack skills; each carries its own full workflow, and a skill's own instructions take precedence once invoked.

    line 143
  7. Distinctive:

    Only route to a skill that is installed: Don't guess a name: if the table or the index has nothing that fits, or the skill is not present …

    line 145

“Common” is measured: kept by at least 6 in 10 of the 19 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

If this session was compacted, the copy of this skill in context may be cut off. Read ${CLAUDE_SKILL_DIR}/SKILL.md from disk and resume at the step you are on.

When to invoke

Use when the task clearly wants a vibestack workflow but the right one is not obvious, or when the host has no slash-command picker and the pack has to be found by name. In Claude Code, Cursor, Kiro and Copilot CLI, skills are /name. In Codex there is no / picker — reference a skill as $name inside an ordinary message (Use $office-hours to shape this idea).

/vibe — pick the right skill

The router is named vibe, not vibestack: the pack's own checkout is sometimes parked at ~/.claude/skills/vibestack, and a skill installing to that path would collide with it — the installer's own integration test asserts that checkout survives.

Route on intent. Process skills come first: brainstorm or plan before implementing, investigate before fixing, review before shipping.

When the task is…Use
Shape a rough idea into a design docoffice-hours
Turn intent into a precise, executable specspec
Plan a feature, refactor, or architecture changeplan-eng-review, autoplan
Execute an approved multi-step planan installed plan-execution skill if present; otherwise the plan-eng-review cold-start briefs lane by lane, then review and ship
Weigh product scope or the bigger problemplan-ceo-review
Plan a UI change, or review a design before it is builtplan-design-review
Pressure-test the developer experience of a planplan-devex-review
Audit the live developer experience of a shipped productdevex-review
Debug an error, test failure, or odd behaviorinvestigate (see Failures below)
Review a diff before mergereview
Rewrite a PR description from its actual changespr-summary
Get a second opinion from a different modelcodex or claude — by host, see below
Audit securitycso
QA a running web appqa (fixes), qa-only (report)
Drive a browser, scrape a page, pair a remote agentbrowse, scrape, open-browser, pair-agent
Test logged-in pages with your real browser's cookiesconnect-chrome, setup-browser-cookies
Turn a browse or scrape flow that worked into a skillskillify
Read, transcribe or send Telegram messages as yourselftelegram
Review a shipped UI, or explore design directionsdesign-review, design-shotgun, design-consultation
Turn an approved mockup into production HTML/CSSdesign-html
Render a Mermaid diagram to HTML and PNGdiagram
Render markdown or HTML to a polished PDFmake-pdf
Ship: tests, version, changelog, PRship
See which VERSION slots open PRs already claimlanding-report
Address PR review threads and failing CIaddress-pr-review
Merge, deploy, and confirm production healthtype /land-and-deploy (typed-only), then canary (setup-deploy configures it once)
Measure page performance against a baselinebenchmark
Update docs after shippingdocument-release, document-generate
Strip machine-sounding proseunslop
Check code-quality health or find refactorshealth, improve-arch
Make the build, lint and tests pass without editing a testhealth as /health --fix
Review AWS spend, or price a change before it deploysaws-cost (--estimate <plan>)
Review a Terraform plan, cdk diff or EKS config before applyiac-review
Cap paid-inference spendai-cost-guard
Audit Bedrock guardrails, region and tenant isolationbedrock-guardrails
Review a knowledge base or RAG pipelinekb-review
Review an Amazon Connect, Lex or voice solutionconnect-review
Evaluate an agent or promptagent-eval
Review an MCP servermcp-review
Save or restore working context across sessionscontext-save, context-restore
Review, search or prune what the pack has learnedlearn
Run a retrospective from git historyretro
Tune which questions the skills ask youplan-tune
Guard a risky sessioncareful, freeze, guard (and unfreeze to release)
Update the pack itselftype /vibe-upgrade (typed-only)
Find and retire unused skills, hooks, permissions and cachesvibe-gc

Anything not listed here is in the full index — read it rather than guessing at a skill name:

_found=""
for _d in "${CLAUDE_SKILL_DIR:-}" "$HOME/.agents/skills/vibe" "$HOME/.claude/skills/vibe" \
          "$HOME/.cursor/skills/vibe" "$HOME/.kiro/skills/vibe" "${COPILOT_HOME:-$HOME/.copilot}/skills/vibe" \
          ".agents/skills/vibe" ".claude/skills/vibe" ".cursor/skills/vibe" ".kiro/skills/vibe" ".github/skills/vibe"; do
  if [ -n "$_d" ] && [ -r "$_d/skills-index.md" ]; then
    cat "$_d/skills-index.md"; _found=1; break
  fi
done
if [ -z "$_found" ]; then
  for _r in "$HOME/.agents/skills" "$HOME/.claude/skills" "$HOME/.cursor/skills" "$HOME/.kiro/skills" \
            "${COPILOT_HOME:-$HOME/.copilot}/skills"; do
    [ -d "$_r" ] && { echo "$_r:"; ls "$_r"; }
  done
fi

The index sits next to this file, so if none of those paths resolve, read skills-index.md from the directory this SKILL.md was loaded from.

Second opinion — route by host. The outside voice has to be a different model from the one already running:

if [ -n "${CODEX_THREAD_ID:-}" ] || [ -n "${CODEX_SANDBOX:-}" ]; then echo "HOST: codex"
elif [ -n "${CLAUDECODE:-}" ]; then echo "HOST: claude"
else echo "HOST: other"; fi

HOST: claude → codex. HOST: codex → claude (codex refuses to run nested under Codex, and would be the same model anyway). HOST: other (Cursor, Kiro, Copilot CLI) → codex, unless the session's own model is GPT, then claude. Copilot CLI sets no documented session variable, so it always reports HOST: other.

Rules when routing:

  • Invoke it, don't describe it. Once a skill fits, hand off: invoke it through the Skill tool (Claude Code, Cursor, Kiro, Copilot CLI), or on Codex load that skill's SKILL.md and follow it (users invoke it there as Use $<name>). Do not answer with a list of options, and do not do the skill's work freehand when the skill exists. Except: never invoke a typed-only skill (a row that says "type /name") — tell the user to type it (on Codex, Use $name) and do not do its work yourself.
  • Failures. When the user names the cause and a narrow fix, make one read-only check of the file, test or log it rests on; if it holds, fix it and run the focused test, otherwise invoke investigate. When the cause is unknown, make one read-only triage pass, with no reproduction and no wider search, over the supplied evidence and the code it implicates; fix only if that pass alone proves the root cause, otherwise invoke investigate.
  • Answer directly instead when the request is a quick factual question (including "which skills are there?" — show the table), a small edit the user scoped themselves, or the user asked for a direct answer rather than a workflow.
  • Pick one. Don't stack skills; each carries its own full workflow, and a skill's own instructions take precedence once invoked.
  • Only route to a skill that is installed. Don't guess a name: if the table or the index has nothing that fits, or the skill is not present on this host, say so and proceed normally — these are workflows, not dependencies.

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.