choosing-a-workflow
Use FIRST when any new piece of work arrives — a request, feature, change, fix, question, or idea — before starting on it or choosing an approach. Not for continuing work already routed to a workflow skill.
Installation
- Make sure Claude is on your device and in your terminal.
Skills load from
~/.claude/skills/when Claude Code starts up — so you need it on your machine first. If you don't have it yet, install it once with the command below, then runclaudein any terminal to verify.One-time setupnpm i -g @anthropic-ai/claude-codeAlready have it? Skip ahead.
- Paste into Claude Code or into your terminal.
This copies the whole skill folder into
~/.claude/skills/choosing-a-workflow-jetbrains/— the SKILL.md plus any scripts, reference docs, or templates the skill ships with. Safe default: works for every skill.Faster alternative (instruction-only skills)
Skips the clone and grabs only the SKILL.md file. Don't use this if the skill ships Python scripts, reference markdowns, or asset templates — they won't be downloaded and the skill will fail when it tries to load them.
Quick install (SKILL.md only)Sign up to copy - Restart Claude Code.
Quit and reopen Claude Code (or any other agent that loads from
~/.claude/skills/). New skills are picked up on startup. - Just ask Claude.
Skills auto-activate when your request matches the skill's description — no slash command needed. Trigger phrases live in the skill's own frontmatter; you can read them in the “What this skill does” section above.
Prefer to read the source first? Open on GitHub.
When Claude uses it
Use FIRST when any new piece of work arrives — a request, feature, change, fix, question, or idea — before starting on it or choosing an approach. Not for continuing work already routed to a workflow skill.
What this skill does
Choosing a Workflow
The root router of the workflow family in packages/pi-thinkrail-workflow. It classifies the incoming
work and names the workflow skill that governs it — nothing more. A routed skill's steps live in that
skill alone; read it, don't run it from memory.
Classify
Read the request and the workspace, then answer three questions — usually silently, from what is already in front of you:
- Is this project onboarding? No spec graph yet — an empty (or effectively empty) workspace where the user brings a raw idea, or an existing codebase being set up / specced for the first time.
- Is this the PR lifecycle? Finished work shipping as a pull request, or an existing PR being tended — created, brought up to date, given screenshots, its checks watched, its review comments addressed. Fixes that flow from a PR's own review comments belong here, not to feature work.
- Does the work create or change anything in the project? A new feature, added functionality, a behavior change, a nontrivial design decision — anything that alters what the project is or does.
If the route is genuinely ambiguous from the request alone, ask one short clarifying question
(ask_user_question, composed per the asking-user-questions concept skill) rather than guessing.
Route
| Classification | Route |
|---|---|
| Project onboarding — no spec graph yet: an empty workspace with a raw idea, or an existing codebase to set up / spec | Read and follow setting-up-a-project — a dispatcher that routes on the workspace's state |
| The PR lifecycle — finished work to ship as a pull request, or an existing PR to tend: create, bring up to date, screenshots, checks, review comments | Read and follow shipping-a-pr |
| The work creates or changes anything in the project — a new feature, added functionality, a behavior change, a nontrivial design decision | Read and follow brainstorming — however small it looks; that skill owns the "too small" judgment |
| Anything else — answering questions, explaining code, running commands or checks, work that changes nothing | No matching workflow. Say so in one line (e.g. "No workflow skill covers this; proceeding directly.") and proceed with your own judgment. Never stretch a route to fit — a forced route is worse than none. |
One route per piece of work. If a request bundles work from different rows (e.g. "explain X, then change Y"), route the part that changes the project and handle the rest directly.
Red flags — stop and re-route
- You started designing or editing before naming a route — routing comes first.
- You are following a routed skill's steps from memory instead of reading that skill.
- You classed a change as "anything else" because it looked small or mechanical — size is brainstorming's call, not the router's.
Handoff
This skill ends by naming exactly one of: setting-up-a-project, shipping-a-pr, brainstorming, or no matching workflow (proceed with judgment). Adding a workflow to the family adds a row to the table above — see the writing-workflow-skills skill.
Related skills
Word Document Editor
anthropics
Create, edit, and format Word documents with tables, images, and tracked changes.
Ask Questions If Underspecified
trailofbits
Ask clarifying questions before starting work on ambiguous requests.
CLAUDE.md Optimizer
daymade
Optimize your CLAUDE.md file for clarity, efficiency, and maintainability.
Claude Skills Troubleshooter
daymade
Diagnose and fix plugin installation, enablement, and activation problems.