brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
theory-of-constraintsApply the Theory of Constraints (Goldratt's Five Focusing Steps) to find and fix the single bottleneck that caps a process, workflow, pipeline, or Agent Skill/plugin's throughput. Use whenever optimizing speed, lead time, cost, or token/context budget of a system — CI/build pipelines, dev value streams (idea→review→merge→ship), an Agent Skill's trigger/cont…
Independent GitHub snapshot · Automated classification · Original documentation governs
A diagnostic runbook for optimizing any process — a CI/build pipeline, a dev value stream, an Agent Skill or plugin, or a runtime code path — through Eliyahu Goldratt's Theory of Constraints (ToC).
The one idea that makes ToC powerful: every system has exactly one binding constraint at a time, and global throughput rises only when you improve that constraint. Effort spent anywhere else produces nothing — "an hour saved at a non-bottleneck is a mirage." This runbook finds the constraint with measurement, then walks the Five Focusing Steps to relieve it without creating new problems.
Use this skill when the user wants to optimize a process or workflow and any of these are true:
Do not use this skill for:
complexity-optimizer).ToC is a loop, not a one-shot. Always run it in order — exploiting before elevating is what separates ToC from "just throw resources at it."
┌─────────────────────────────────────────────────┐
│ │
▼ │
1. IDENTIFY the constraint ── the one stage that gates global throughput
│
▼
2. EXPLOIT it ── get the most from it with NO new spend
│ (remove waste/idle on the constraint)
▼
3. SUBORDINATE everything ── pace all non-constraints to the constraint;
else to the constraint let them idle rather than build WIP
│
▼
4. ELEVATE the constraint ── only now add capacity / invest / parallelize
│
▼
5. REPEAT ── the constraint has moved; go to step 1.
│ Do NOT let inertia (old policies) be the
└───────────────────────new constraint.
The most common mistakes map directly to skipped steps: jumping to step 4 (elevate) before step 2 (exploit), or never reaching step 1 (optimizing whatever is most visible instead of what is binding).
Start here. Match the symptom, open its decision tree, run the quick check.
| Symptom | Usual constraint | Quick check | Tree |
|---|---|---|---|
| "Optimize this, don't know where" | Unknown — measure first | queries/measure-stage-times.sh | find-the-constraint |
| Local speedup, no global gain | You optimized a non-constraint | queries/throughput-accounting.py | local-optimum |
| Queue/WIP piling up at a stage | Constraint is at/just downstream of the pile | queries/measure-wip.sh | wip-accumulation |
| Busy everywhere, little ships | Non-constraints over-activated | queries/utilization-vs-throughput.py | utilization-trap |
| Added capacity, no improvement | Elevated the wrong thing / skipped exploit | queries/measure-stage-times.sh | elevation-misfire |
| Fix one bottleneck, another appears | Constraint moved (expected) | queries/measure-stage-times.sh | moving-constraint |
| A rule/process is the limiter | Policy constraint | queries/five-focusing-steps.sh | policy-constraint |
| Stuck in a tradeoff | A surfaced dilemma blocks the fix | (reasoning — Evaporating Cloud) | conflict-resolution |
For Agent Skills / plugins specifically, the constraint is most often the always-loaded context budget (a bloated SKILL.md) or a weak description (the skill never triggers, so its throughput is zero). Run queries/skill-context-cost.sh <skill-dir>.
references/.config.json or ask the user.Read references/symptoms.md for the full catalog with entry points and severity.
This skill uses config.json to know what "throughput" means for the system under study and how to measure each stage. On first use, if goal_metric or value_stream_stages are empty, ask the user (via AskUserQuestion) for:
Then save them to config.json. If config cannot be filled, the skill still works — fall back to asking the user inline and measuring stages manually. Never block on missing config.
The classic ToC traps (measuring local efficiency, elevating before exploiting, optimizing the most-visible stage) are captured in gotchas.md. Read it before your first investigation — these errors are the whole reason ToC exists.
complexity-optimizer — once ToC identifies a code stage as the constraint, use this to find and fix the algorithmic hotspot inside it.dx-harness — when the constraint is a developer-experience chore (slow bootstrap, manual steps), this audits and fixes the harness.dev-skill:evolve — when the constraint is an Agent Skill itself (bloated context, weak triggering), this improves it.