agentleFS
preetamnathpreetamnath/agent-skills/skills/jtbd/SKILL.md

jtbd

Skill4 starsChanged 7 months agoMITView on GitHub

Frame a vague goal as the job to be done, so the outcome is explicit before you build or choose. TRIGGER when: user says 'what's the job', 'JTBD', 'frame the outcome', 'what are we actually trying to do'; or a goal, feature, or decision is stated as a solution with the progress underneath it unnamed.

10 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

2 rules. 0 are common, 2 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 6 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Check the outcome is progress, not a restated feature: Test: could a completely different solution deliver the same outcome?

    line 24
  2. Distinctive:

    Ask: "Add a bulk-export button to the orders page."

    line 51

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

JTBD — Job To Be Done

Primitive: JTBD — name the job the user is hiring for, then judge every option by job-fit.

People hire a product to make progress in a situation — the job is that progress, not the feature they ask for or who they are.

The lens — a job is one story:

when [situation], I want to [motivation], so I can [outcome], without [constraint].

  • Situation — the trigger and context they're in.
  • Motivation — what they reach for; the core desire.
  • Outcome — the progress that ends the story.
  • Without — the pain or constraint they're avoiding; often where the real insight sits. Name it when it sharpens the job.

Steps

  1. Find and draft the job. Read the thread for the job in play. If several are live, list them and ask which — or name the primary; don't silently pick. Write it in the lens format, marking any unsupported part [unclear] — never fill a slot with a guess.
  2. Check the outcome is progress, not a restated feature. Test: could a completely different solution deliver the same outcome? If not, it's a feature — ask "so they can what?" until it lands on progress.
  3. Score the options by job-fit — not elegance, effort, or novelty; the without usually separates them. If only the asked-for path is live, add 1–2 alternatives. Then state it back in the format below.

Job frame — the shape to state back:

Job:        when [situation], I want to [motivation], so I can [outcome], without [constraint]
            (any unsupported part → [unclear])
Confidence: 0.00–1.00 — how well the thread supports the job; blanks and assumptions lower it
Options (when choosing):
  | Option | Job-fit 0–1 | Serves the *without*? |
  |---|---|---|
Winner:     the option that best gets the job done — one line

(Write Job unclear — [which parts are blank and why] when the thread doesn't support a job.)

Examples

Job statements — the format filled across domains

  • Milkshake — when I face a long, boring commute, I want a thick, filling treat, so I can keep a hand busy and my stomach full, without making a mess in the car.
  • Spotify Discover Weekly — when I want music while I work, I want fresh tracks I'll probably like, so I can stay in flow, without stopping to curate a playlist.
  • PayPal — when I'm buying online, I want a fast, trusted way to pay, so I can check out in seconds, without re-entering my card or fearing fraud.

A worked reframe — from a solution-shaped ask to the output format

Ask: "Add a bulk-export button to the orders page."

  • Job — when I'm reconciling last month's sales in my accounting tool, I want my order data out of the app, so I can close the books, without having to remember to pull it every month.
  • Confidence — 0.6: the thread gave the ask and the reconciling context, but the monthly without is inferred, not stated.
  • Options —

    OptionJob-fit 0–1Serves the without?
    Export button (asked for)0.5No — relies on remembering to click each month
    Scheduled CSV email0.9Yes — arrives monthly, no memory needed
  • Winner — scheduled CSV email: gets the job done without the user remembering, so the asked-for feature loses to a better fit.

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.