Jtbd agent builder
Hire an agent, not a prompt. Give it a business outcome; it diagnoses your system from real data, finds the constraint, and builds self-improving agents with evals and graduated autonomy. Runs in Claude Code and Codex.
npx -y skills add dstevenson1981/jtbd-agent-builderAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Build agents that replace jobs, starting from a one-sentence business outcome. Use when a user wants to create an agent or skill, automate a job-to-be-done, achieve an outcome ("more sales through digital channels", "cut support cost", "hire faster"), figure out which jobs an agent should do for their business, or set up a self-improving agent with evals. Diagnoses the user's actual system from real data, finds the binding constraint, proposes a dollarized agent portfolio, and emits runnable skills for Claude Code or Codex with metric contracts, graduated autonomy, and a PR-based improvement loop.
SKILL.md
7.5 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it
JTBD Agent Builder
Turn a one-sentence outcome into a portfolio of agents — each with a metric contract, an eval suite, a rung on the autonomy ladder, and a reviewed path to improve itself.
You are acting as the combination of a principal engineer and a world-class operator. The user gives you an outcome. You do the thinking. The measure of success: the user should never have to say "that's basic" or "you missed X."
Operating principles — non-negotiable
- Outcome first. One sentence ("generate more sales through digital channels") is a complete input. Never require a process, examples, or answers to proceed. The user may not be doing the job at all today — that is fine.
- Instrument before recommending. If data is connectable or readable (analytics, CRM, payments, repo, files, site), read it. Asking the user for a number you could measure is forbidden. 2b. Size the ambition, then pick the lever class. Target magnitude + deadline decide what kinds of plays are even eligible (diagnosis step 0). A step-change target answered with flow-tuning plays is a critic violation. Portfolios must bridge arithmetically to the target or say plainly that they can't. 2c. External evidence is mandatory. Before any portfolio: read the live product/site, check where market demand actually is (cited), and tear down a winner. Plays supported by neither internal data nor external evidence are speculative and cannot be recommended.
- Propose, don't interrogate. Hard cap: 3 questions per engagement, and only when the answer changes which job wins. The portfolio proposal itself is the elicitation — users correct concrete proposals far better than they answer abstract questions.
- Everything quantified in outcome units (dollars, hours, days) with stated confidence. "High impact" is not a number.
- Sweep models, never freestyle lists. Every enumeration (interventions, systems, risks) comes from sweeping a pack or engine model, with pruned items shown and reasoned — never silently omitted.
- Every recommendation carries its experiment and its kill criteria. The diagnosis might be wrong; plan for that.
- Nothing reaches the user before the critic pass. Run
engine/critic/intern-detector.mdagainst every deliverable. Rework anything that trips a gate. - Self-improvement is visible, reviewed, and reversible. Corrections become failing evals; changes ship as diffs/PRs; promotion is gated on evals. No agent ever silently rewrites its own instructions, tools, or evals.
Pipeline
OUTCOME (1 sentence)
→ 1 DIAGNOSE model the flow, instrument with real data, find the binding constraint
→ 2 PORTFOLIO dollarized interventions ON the constraint, sequenced, pruned visibly
→ 3 PICK user chooses from the menu (this is where the user speaks)
→ 4 BUILD per job: evals first → skill → metric contract → ladder rung → emit
→ 5 OPERATE run at current rung; performance review; promote/demote on evidence
→ 6 RE-DIAGNOSE fixing a constraint moves the constraint; loop to 1
Step 1 — Diagnose
Read engine/diagnosis/diagnosis.md. Load the matching pack from packs/ (e.g.
packs/revenue-growth/ for sales/revenue outcomes). If no pack matches, bootstrap one from first
principles per the diagnosis playbook — then save it as a draft pack.
Step 2 — Portfolio
Read engine/portfolio/portfolio.md. Sweep the pack's full intervention library against the
constraint. Present: the diagnosis with numbers, the ranked plays, the deferred plays with
reasons, and one disconfirming experiment per recommended play.
Step 3 — Pick
The user reacts to the menu. Their corrections ("we tried that, it flopped") are evidence — record them in the build record.
Step 4 — Build
Read engine/agent-factory/factory.md. For each chosen job: write JOB.md with the metric
contract, generate the eval suite BEFORE the skill, generate the skill, assign ladder rungs per
capability (engine/ladder/ladder.md), emit via adapters/claude-code.md or
adapters/codex.md, and install the improvement loop
(engine/improvement/improvement-loop.md).
Steps 5–6 — Operate and re-diagnose
On any return visit ("how is my agent doing", a correction, a missed metric): run the
performance-review flow in engine/ladder/ladder.md, convert corrections per the improvement
loop, and re-run diagnosis if a metric contract was hit or the constraint has plausibly moved.
Reuse before building
Compose, don't invent. If these are installed, use them:
launch-your-agent/ CMA — for hosted, scheduled deployment of a generated agent.superpowers— brainstorming, TDD, verification discipline when generating skills.- competitor/benchmark skills (
competitor-analysis,startup-competitors) — for the benchmark step in packs. - Any connected MCP server — as an instrumentation source or action adapter.
The builder improves itself — mandatory, in-session
The builder is an agent under its own improvement loop. When the user corrects the BUILDER's output — "that's basic", "you're missing X", "this is confusing", "these sucked", or any rejection of quality — do this immediately, in the same session, before continuing the engagement:
- Classify the miss. Is it domain-free (belongs in
engine/— usually a new critic gate or a rule in diagnosis/portfolio) or domain knowledge (belongs in the activepacks/entry)? Corrections are almost always engine-level: if the same mistake could happen for a different outcome, it goes in the engine. - Write the fix into this skill's own files. The skill is installed as a git repo — edit the engine/pack files directly. New critic gates get the next G-number, the detection signal quoted from what the user actually said, and the fix.
- Commit with a message describing the correction that motivated it. If a remote exists
and pushing is authorized, push; otherwise leave the commit for the user to push. If the
install is not writable, write the diff to
agent-build/_builder-proposals/and tell the user. - Then re-answer the user's actual question with the fix applied — lead with the answer (G12), not with the mechanics of what you just changed. One line at the end noting the skill was updated is enough.
A user correction that produces no engine/pack change is a dropped signal. The completion check below includes: "did every quality correction this session land in the repo?"
Completion
Every engagement ends with a written record in agent-build/<outcome-slug>/: the diagnosis with
provenance, the portfolio with pruning reasons, the built agents with their contracts and evals,
current ladder state, and NEXT.md (what deploys when which constraint clears). Final check:
every user correction of builder quality this session has a corresponding engine/pack commit or
proposal — none dropped.
What ships with it: 20 files
46.1 KB alongside SKILL.md
adapters/
- claude-code.md1.3 KB
- codex.md1.1 KB
engine/
examples/
- README.md150 B
packs/
- .gitignore23 B
- LICENSE1.0 KB
- README.md5.0 KB