Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Apply Theory of Constraints (TOC) to identify and manage system bottlenecks. Use this skill when the user needs to find what limits throughput, optimize a constrained process, apply the Five Focusing Steps, or implement Drum-Buffer-Rope scheduling — even if they say 'our output is stuck', 'what's the bottleneck', or 'why can't we produce more'.
.claude/skills/asgard-ai-platform-biz-toc/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -8% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -9% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 312% | 0% |
| case-21 | ✗→✓ | ▲ Improved | 31% | 0% |
| case-04 | ✓→✗ | ▼ Worse | 55% | 0% |
TOC asserts that every system has at least one constraint (bottleneck) that limits total throughput. Improving non-bottleneck processes does NOT improve system output �� only improving the bottleneck does. The Five Focusing Steps provide a systematic method to find and manage constraints.
IRON LAW: The System Is Only as Strong as Its Weakest Link
Improving a non-bottleneck process is a WASTE of resources — it produces
more work-in-progress that piles up at the bottleneck. Before optimizing
any process, verify it IS the bottleneck. If it's not, stop.| Element | What It Is | Purpose | |---------|-----------|---------| | Drum | The bottleneck's pace | Sets the rhythm for the entire system | | Buffer | Time buffer before the bottleneck | Ensures the bottleneck never starves for work | | Rope | Signal to release work at the start | Controls WIP by tying input rate to bottleneck pace |
| Metric | Definition | |--------|-----------| | Throughput (T) | Revenue - Truly Variable Costs (materials only) | | Investment (I) | Money tied up in the system (inventory, equipment) | | Operating Expense (OE) | All other costs to run the system | | Net Profit | T - OE | | ROI | (T - OE) / I |
markdown# TOC Analysis: {System/Process} ## System Map {Process A} → {Process B} → {**Process C (bottleneck)**} → {Process D} → Output ## Constraint Identification - Bottleneck: {process step} - Evidence: {utilization %, queue length, WIP accumulation} - Current throughput: {units/period} ## Five Focusing Steps | Step | Action | Expected Impact | |------|--------|----------------| | 1. Identify | {bottleneck location} | — | | 2. Exploit | {optimize without investment} | +X% throughput | | 3. Subordinate | {pace other processes} | Reduce WIP by X% | | 4. Elevate | {investment if needed} | +X% throughput | | 5. Repeat | {new constraint location} | — | ## DBR Implementation - Drum: {bottleneck pace = X units/hour} - Buffer: {X hours of WIP before bottleneck} - Rope: {release new work every X minutes}
Scenario: TOC for a PCB assembly line (5 stations)
references/dbr-scheduling.md| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-04 | pass→fail | 20,982 | 26,926 | +28% | 1 | 1 | 0% | 3,434 | 5,327 | +55% | 0 | 0 | — |
case-01 | fail→pass | 24,709 | 28,634 | +16% | 1 | 1 | 0% | 4,254 | 3,922 | -8% | 0 | 0 | — |
case-02 | fail→fail | 29,218 | 13,008 | -55% | 1 | 1 | 0% | 4,438 | 3,545 | -20% | 0 | 0 | — |
case-03 | fail→pass | 18,403 | 11,329 | -38% | 1 | 1 | 0% | 3,316 | 3,014 | -9% | 0 | 0 | — |
case-05 | pass→fail | 17,608 | 15,899 | -10% | 1 | 1 | 0% | 2,620 | 3,589 | +37% | 0 | 0 | — |
case-06 | pass→fail | 10,783 | 17,420 | +62% | 1 | 1 | 0% | 1,616 | 3,691 | +128% | 0 | 0 | — |
case-07 | pass→pass | 8,700 | 10,867 | +25% | 1 | 1 | 0% | 1,602 | 3,162 | +97% | 0 | 0 | — |
case-08 | pass→pass | 11,337 | 5,973 | -47% | 1 | 1 | 0% | 1,885 | 2,393 | +27% | 0 | 0 | — |
case-09 | pass→pass | 3,284 | 3,546 | +8% | 1 | 1 | 0% | 709 | 1,674 | +136% | 0 | 0 | — |
case-10 | pass→pass | 16,094 | 11,888 | -26% | 1 | 1 | 0% | 2,404 | 2,880 | +20% | 0 | 0 | — |
case-11 | pass→pass | 14,848 | 12,948 | -13% | 1 | 1 | 0% | 2,221 | 3,059 | +38% | 0 | 0 | — |
case-12 | fail→fail | 14,493 | 13,880 | -4% | 1 | 1 | 0% | 2,237 | 3,233 | +45% | 0 | 0 | — |
case-13 | pass→pass | 13,201 | 12,645 | -4% | 1 | 1 | 0% | 2,075 | 3,033 | +46% | 0 | 0 | — |
case-14 | pass→pass | 10,085 | 11,658 | +16% | 1 | 1 | 0% | 1,523 | 2,657 | +74% | 0 | 0 | — |
case-15 | fail→fail | 19,055 | 9,377 | -51% | 1 | 1 | 0% | 2,997 | 2,698 | -10% | 0 | 0 | — |
case-16 | pass→pass | 13,439 | 7,691 | -43% | 1 | 1 | 0% | 2,465 | 2,485 | +1% | 0 | 0 | — |
case-17 | pass→pass | 7,765 | 7,214 | -7% | 1 | 1 | 0% | 1,307 | 2,270 | +74% | 0 | 0 | — |
case-18 | fail→pass | 3,532 | 11,996 | +240% | 1 | 1 | 0% | 675 | 2,784 | +312% | 0 | 0 | — |
case-19 | pass→pass | 9,108 | 6,992 | -23% | 1 | 1 | 0% | 1,523 | 2,288 | +50% | 0 | 0 | — |
case-20 | pass→pass | 15,802 | 14,571 | -8% | 1 | 1 | 0% | 2,434 | 3,346 | +37% | 0 | 0 | — |
case-21 | fail→pass | 14,518 | 9,754 | -33% | 1 | 1 | 0% | 2,264 | 2,973 | +31% | 0 | 0 | — |
case-22 | pass→pass | 9,258 | 11,110 | +20% | 1 | 1 | 0% | 1,594 | 2,738 | +72% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +5 percentage points is the difference between those two pass rates over the 22 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.