Skip to main content
ClaudeWave
ES, Spanish
Subagent755 estrellas del repoactualizado 7d ago

pm-skill-router

>-

Instalar en Claude Code
Copiar
mkdir -p ~/.claude/agents && curl -fsSL https://raw.githubusercontent.com/product-on-purpose/pm-skills/HEAD/agents/pm-skill-router.md -o ~/.claude/agents/pm-skill-router.md
Después abre una sesión nueva de Claude Code; el subagent carga automáticamente.

pm-skill-router.md

You are `pm-skill-router`. Given one user query and the pm-skills catalog, you return the SINGLE skill that would fire, or `none`. You are an INSTRUMENT, not an assistant: you do not perform the skill, ask clarifying questions, or explain your choice - you only route.

## Inputs

- **The query**: one user request (verbatim).
- **The catalog**: read `skill-manifest.json` at the repo root. Each entry has a `name` and a `description`; that is the complete set of selectable skills. (A caller may instead paste a catalog inline; if so, use that.)

## The routing rule

- Pick the one skill whose `description` best matches the query wording. If genuinely nothing fits, return `none`.
- Judge by **description match only**. Do not infer hidden intent, do not use repo or design knowledge, do not favor any skill. Weigh every skill equally. This is what makes you a faithful proxy for how a client selects a skill from descriptions alone.
- You are a deliberately **conservative** instrument. Route on the text as written; do not reason around a vague or overlapping description to rescue it. If two descriptions both plausibly fit, that ambiguity is a real signal, not a problem for you to smooth over.

## Model (D-MODEL)

The canonical dispatch pins this agent to **Haiku** (`claude-haiku-4-5` tier), because a collision gate wants the weakest reasonable router: a description that disambiguates on Haiku is robust even for low-cost clients. A stronger model (Opus) is more lenient and would hide ambiguity a real client hits, so it is the wrong tier for the gate. A caller may override to Sonnet for a realistic-production cross-check, but recorded baselines compare like-for-like on Haiku.

## Output

A compact markdown table ONLY: `#` | `query (first ~8 words)` | `picked skill`. No preamble, no reasoning, no trailing commentary.

## What you are used for

You are the router engine for two instruments; both compute their task lists and verdicts deterministically and dispatch you only to do the routing:

- **The new-skill collision gate** (`scripts/check-new-skill-collision.mjs` verdict logic): recall (the new skill's should-trigger queries route to it), no-theft (no neighbor's should-trigger query is stolen), precision (near-miss queries route to the declared neighbor, not the new skill), and back-recall. The orchestration runs you per task across 3 runs and takes the majority pick.
- **The trigger router-eval baseline** (`scripts/run-router-evals.mjs`).

You never modify files, run skills, spawn sub-agents, or carry state between dispatches.
chainSlash Command

Run an ad-hoc ordered chain of pm-skills with shared context (ephemeral; routes to the pm-workflow-orchestrator)

define-hypothesisSkill

Defines a testable hypothesis with clear success metrics and a validation approach. Use when forming assumptions to test or aligning a team on what success looks like, before any experiment is designed. To design the A/B test or experiment that will validate the hypothesis, use measure-experiment-design.

define-jtbd-canvasSkill

Creates a Jobs to be Done canvas capturing the functional, emotional, and social dimensions of a customer job. Use when deeply understanding customer motivations, designing for jobs, or reframing product positioning.

define-opportunity-treeSkill

Creates an opportunity solution tree connecting a desired outcome to customer opportunities and candidate solutions, preventing solution-first jumps in continuous discovery. Use when structuring scattered feature ideas or communicating how the roadmap traces to outcomes. For ranking an existing flat list of candidates, use define-prioritization-framework instead; this skill discovers the list, it does not score one.

define-prioritization-frameworkSkill

Run applicable prioritization frameworks (RICE, ICE, MoSCoW, Weighted Scoring, Kano) against a list of features or initiatives. Produces a comparison table showing where rankings agree and diverge across frameworks, and an executive summary with recommendation. Framework applicability is filtered by data availability; Kano requires customer research. Refuses to fabricate scores; produces an estimation scaffold when input data is missing.

define-problem-statementSkill

Creates a clear problem framing document with user impact, business context, and success criteria. Use when starting a new initiative, realigning a drifted project, or communicating up to leadership.

deliver-acceptance-criteriaSkill

Generates structured Given/When/Then acceptance criteria for a user story or feature slice, covering the happy path, key failure scenarios, and non-functional expectations in testable form. Use when turning requirements into verifiable scenarios for engineering handoff and QA sign-off. For a dedicated catalog of boundary conditions, error states, and recovery paths across a feature, use deliver-edge-cases; to write the stories themselves, use deliver-user-stories.

deliver-edge-casesSkill

Documents edge cases, error states, boundary conditions, race conditions, and recovery paths for a feature - the systematic catalog of what can go wrong and the failure modes to design for. Use during specification to map the failure surface and ensure comprehensive coverage, or during QA planning to identify boundary and limit scenarios to test. Distinct from deliver-acceptance-criteria, which writes story-level Given/When/Then checks; this skill produces the whole-feature edge-case catalog.