skills / pstack-mcp.md
skills / pstack-mcp.md
Purpose: When you (the LLM) are working on a task and need the right skill, principle, or playbook ā call pstack-mcp instead of guessing.
list_skills ā List all skills, optionally filtered by category.
search_skills ā Keyword search across all skills.
search_skills_embedded ā Phrase search (handles partial matches, synonyms).
get_skill ā Load one skill. mode: "summary" = brief, mode: "full" = complete SKILL.md.
get_skill ā Also loads principles (prefixed with principle-).
recommend_skills ā Given a task description, return the most relevant 1ā5 skills. Best entry point when you're unsure.
playbook-route ā Route a task ā best playbook + recommended skills + structured prompt. Like typing /poteto-mode.
get_principles ā List all 24 principles, or load specific ones.
principles-index ā Browse all 24 organized by hierarchy (Core ā Architecture ā Verification ā Delegation ā Meta).
get_playbook ā Load one poteto-mode playbook.
skill-graph ā Explore the pstack skill dependency graph.
skill-prompt ā Get a ready-to-use prompt for a skill.
model-setup ā Read pstack-models.mdc config (model names, aliases, fallbacks).
automate-workflow ā List or read benny automations.
| Need | Use this tool |
|---|---|
| "What skills help me with X?" | recommend_skills({ task: "X" }) |
| "What playbook for X?" | playbook-route({ task: "X" }) |
| "Show me all principles" | get_principles() |
| "Load a skill full" | get_skill({ name, mode: "full" }) |
| "I need a prompt to explain X" | skill-prompt({ skill_name: "how", ... }) |
| "What automations exist?" | automate-workflow({ mode: "list" }) |
| "Show me the skill graph" | skill-graph() |
pstack-mcp = skills on demand. You never need to memorize pstack skills. Just call the tool, read the answer, and continue your work.
Purpose: When you (the LLM) are working on a task and need the right skill, principle, or playbook ā call pstack-mcp instead of guessing.
list_skills ā List all skills, optionally filtered by category.
search_skills ā Keyword search across all skills.
search_skills_embedded ā Phrase search (handles partial matches, synonyms).
get_skill ā Load one skill. mode: "summary" = brief, mode: "full" = complete SKILL.md.
get_skill ā Also loads principles (prefixed with principle-).
recommend_skills ā Given a task description, return the most relevant 1ā5 skills. Best entry point when you're unsure.
playbook-route ā Route a task ā best playbook + recommended skills + structured prompt. Like typing /poteto-mode.
get_principles ā List all 24 principles, or load specific ones.
principles-index ā Browse all 24 organized by hierarchy (Core ā Architecture ā Verification ā Delegation ā Meta).
get_playbook ā Load one poteto-mode playbook.
skill-graph ā Explore the pstack skill dependency graph.
skill-prompt ā Get a ready-to-use prompt for a skill.
model-setup ā Read pstack-models.mdc config (model names, aliases, fallbacks).
automate-workflow ā List or read benny automations.
| Need | Use this tool |
|---|---|
| "What skills help me with X?" | recommend_skills({ task: "X" }) |
| "What playbook for X?" | playbook-route({ task: "X" }) |
| "Show me all principles" | get_principles() |
| "Load a skill full" | get_skill({ name, mode: "full" }) |
| "I need a prompt to explain X" | skill-prompt({ skill_name: "how", ... }) |
| "What automations exist?" | automate-workflow({ mode: "list" }) |
| "Show me the skill graph" | skill-graph() |
pstack-mcp = skills on demand. You never need to memorize pstack skills. Just call the tool, read the answer, and continue your work.
{ "tool": "list_skills", "params": { "category": "design" } }
{ "tool": "search_skills", "params": { "query": "parallel design", "limit": 5 } }
{ "tool": "search_skills_embedded", "params": { "query": "remove unnecessary comments", "limit": 10 } }
{ "tool": "get_skill", "params": { "name": "how", "mode": "full" } }
{ "tool": "get_skill", "params": { "name": "principle-prove-it-works", "mode": "full" } }
{ "tool": "recommend_skills", "params": { "task": "fix a race condition in a React app and verify the fix", "limit": 3 } }
{ "tool": "playbook-route", "params": { "task": "write a new feature for user authentication", "limit": 3 } }
{ "tool": "get_principles", "params": { "names": ["fix-root-causes", "test-behavior-not-implementation"], "mode": "full" } }
{ "tool": "principles-index", "params": { "category": "verification" } }
{ "tool": "get_playbook", "params": { "name": "bug-fix", "mode": "full" } }
{ "tool": "skill-graph", "params": { "skill_name": "how" } }
{ "tool": "skill-prompt", "params": { "skill_name": "how", "task_context": "explain why a React state machine has a deadlock" } }
{ "tool": "model-setup", "params": {} }
{ "tool": "automate-workflow", "params": { "mode": "list" } }
{ "tool": "automate-workflow", "params": { "automation_name": "reproduce-and-fix-issues", "mode": "read" } }
Step 1: "I'm refactoring. What should I do?"
ā call: playbook-route({ "task": "refactor a large component into smaller pieces" })
ā read the returned playbook steps
Step 2: call: get_skill({ "name": "refactoring", "mode": "full" })
ā apply the extracted pattern to the actual code
Step 1: call: recommend_skills({ "task": "flaky test race condition debug" })
ā gets: blast-radius, principle-fix-root-causes, how
Step 2: call: get_skill({ "name": "principle-fix-root-causes", "mode": "full" })
ā trace the real root cause before patching
Step 1: call: playbook-route({ "task": "implement user onboarding flow" })
ā returns: feature playbook, recommended skills (how, arena, statechart)
Step 2: call: get_skill({ "name": "how", "mode": "full" })
ā use the explanation prompt to document the flow before coding
Step 1: call: principles-index({ "category": "architecture" })
ā pick: principle-model-the-domain or principle-boundary-discipline
Step 2: call: get_skill({ "name": "principle-model-the-domain", "mode": "full" })
ā apply the domain-modeling pattern to your design
Step 1: call: skill-prompt({ "skill_name": "how", "task_context": "justify choosing Redux over Context for this app state" })
ā use the returned prompt to generate the explanation
{ "tool": "list_skills", "params": { "category": "design" } }
{ "tool": "search_skills", "params": { "query": "parallel design", "limit": 5 } }
{ "tool": "search_skills_embedded", "params": { "query": "remove unnecessary comments", "limit": 10 } }
{ "tool": "get_skill", "params": { "name": "how", "mode": "full" } }
{ "tool": "get_skill", "params": { "name": "principle-prove-it-works", "mode": "full" } }
{ "tool": "recommend_skills", "params": { "task": "fix a race condition in a React app and verify the fix", "limit": 3 } }
{ "tool": "playbook-route", "params": { "task": "write a new feature for user authentication", "limit": 3 } }
{ "tool": "get_principles", "params": { "names": ["fix-root-causes", "test-behavior-not-implementation"], "mode": "full" } }
{ "tool": "principles-index", "params": { "category": "verification" } }
{ "tool": "get_playbook", "params": { "name": "bug-fix", "mode": "full" } }
{ "tool": "skill-graph", "params": { "skill_name": "how" } }
{ "tool": "skill-prompt", "params": { "skill_name": "how", "task_context": "explain why a React state machine has a deadlock" } }
{ "tool": "model-setup", "params": {} }
{ "tool": "automate-workflow", "params": { "mode": "list" } }
{ "tool": "automate-workflow", "params": { "automation_name": "reproduce-and-fix-issues", "mode": "read" } }
Step 1: "I'm refactoring. What should I do?"
ā call: playbook-route({ "task": "refactor a large component into smaller pieces" })
ā read the returned playbook steps
Step 2: call: get_skill({ "name": "refactoring", "mode": "full" })
ā apply the extracted pattern to the actual code
Step 1: call: recommend_skills({ "task": "flaky test race condition debug" })
ā gets: blast-radius, principle-fix-root-causes, how
Step 2: call: get_skill({ "name": "principle-fix-root-causes", "mode": "full" })
ā trace the real root cause before patching
Step 1: call: playbook-route({ "task": "implement user onboarding flow" })
ā returns: feature playbook, recommended skills (how, arena, statechart)
Step 2: call: get_skill({ "name": "how", "mode": "full" })
ā use the explanation prompt to document the flow before coding
Step 1: call: principles-index({ "category": "architecture" })
ā pick: principle-model-the-domain or principle-boundary-discipline
Step 2: call: get_skill({ "name": "principle-model-the-domain", "mode": "full" })
ā apply the domain-modeling pattern to your design
Step 1: call: skill-prompt({ "skill_name": "how", "task_context": "justify choosing Redux over Context for this app state" })
ā use the returned prompt to generate the explanation