glebis/the-goal
A Theory-of-Constraints diagnostic for deciding what to automate with AI agents. Before building any automation, skill, Goal, loop, or schedule, it walks Goldratt's Five Focusing Steps over the user's work system to find the real bottleneck, then recommends the single highest-leverage automation aimed at the constraint plus a what-NOT-to-automate list. Use when the user asks "what should I automate", "where do I point my agents", "prioritize my automation backlog", "which workflow should I agentify", "is this worth building", "find my bottleneck", "what's the highest-leverage thing", when they are about to build a Claude Code skill/Goal/loop/schedule and aren't sure it matters, or during a review of their automations. Guards against the common failure of automating busywork (a local optimum) instead of the constraint.
npx skills add https://github.com/glebis/claude-skills --skill the-goal
Named after Eliyahu Goldratt's *The Goal*. The lesson this skill encodes: a local optimum is not a global one. Automating something that feels productive but is not the system's constraint produces no throughput gain. Most wasted automation effort dies here. This skill finds the constraint first, then points exactly one automation at it.
Use before building anything, and during reviews:
If the user already knows their constraint with confidence and just wants to build, skip the diagnosis and go straight to Step 4 (elevate) and the Recommendation.
Three ways an automation idea fails, worst first:
Run as an interactive diagnostic, one focused question at a time. The LLM's job is to *elicit* the picture and map it to structured inputs; two scripts then do the ranking and the rung selection deterministically, so the core calls aren't free-form vibes. Load references/five-focusing-steps.md for the full method, definitions (throughput / inventory / operating expense in knowledge-work terms, drum-buffer-rope, Herbie) and example walkthroughs.
Optional — cenno mode. If cenno is available and the user prefers panels (or asks to "ask me in panels"), collect the inputs through cenno instead of chat: choice 0–3 (or a custom a2ui 0–3 slider) for the ordinal scores, confirm for necessary_condition/policy_gate and the seven rung facts, text for the goal/throughput. The answers feed the same two scripts unchanged. Load references/cenno-mode.md for the control mapping, ask_sequence batching, and how to persist the analysis. Fall back to chat if cenno isn't running — never block.
Step 0 — Define the goal + throughput measure (gate). What is this system *for*, and what single *rate* rises when it succeeds (revenue/quarter, products shipped/month, clients served, qualified leads)? No measurable throughput → stop and define one first. Validate it: "reclaimed hours" and "inbox zero" are usually operating-expense reduction or local efficiency, *not* throughput, unless free capacity is the system's explicit goal. Reject local-efficiency measures here.
necessary_condition: true for steps that must be adequate to function but already are (e.g. a sales page that converts) — the scorer then labels them "prerequisite: finish, don't over-invest" instead of lumping them with non-binding traps. Then rank deterministically: echo '[{"name":"...","throughput_sensitivity":3,"wait_before":2,"downstream_starvation":3,"capacity_gap":2,"annoyance":1}, ...]' | python3 scripts/score_constraints.py
Honor the verdict: insufficient_data → gather more before deciding; ambiguous → re-scope or shorten the time window; constraint_found → proceed. The script flags the *annoying-but-non-binding* trap automatically.
python3 scripts/recommend_rung.py --recurring --fixed-steps # or --bounded-outcome, --streaming-input, etc.
See references/autonomy-ladder.md for what each rung means. Elevation costs operating expense, so it comes after exploit + subordinate, never before.
Produce a short constraint analysis using assets/constraint-analysis-template.md with these sections:
Before delivering, run this validity checklist (not just shape):
constraint_found verdict (or unknowns named)End with the call to action: pick the single constraint-targeting automation and define it as a Goal (verifiable end-state + conditions), then build it.
name-audition — sibling diagnostic; same "a local optimum is not safe" discipline, applied to names. (Cross-reference only; not a handoff.)Take glebis/the-goal from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
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.