mcpbeat Sign in

Choosing A Workflow Agent Skill

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.

852 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
103
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/JetBrains/thinkrail --skill choosing-a-workflow

The instruction itself

5 sections, as written by the author

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.

How to use it

Copy the folder

Take jetbrains/choosing-a-workflow from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.