Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Structures routine design through pseudocode-first iteration: clarifies naming and purpose before any code, catches design flaws cheaply, and prevents compile-debug loops on poorly understood routines. For designing a routine before writing it; not for assessing routines that already exist (use cc-routine-and-class-design).
.claude/skills/ryanthedev-cc-pseudocode-programming/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | -7% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 37% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 36% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 115% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 49% | 0% |
Design a routine in pseudocode before writing it. Iterating on intent is cheaper than iterating on code, and four questions catch the expensive mistakes early:
| Question | Why | |---|---| | Can you name it clearly? | Naming difficulty signals an unclear design — clarify purpose first | | Is there pseudocode before the code? | Refining pseudocode is cheaper than refining code | | Do you understand why it works? | Working code you can't explain probably doesn't really work | | Did you consider an alternative? | The first design is rarely the best |
If the user asks to skip pseudocode, comply or surface the tradeoff once (the routine will likely cost more in debugging) — don't refuse.
Shared CC vocabulary and thresholds (cohesion, parameters, routine length): Read(${CLAUDE_PLUGIN_ROOT}/references/cc-foundations.md).
Skip the process only when one of these holds:
getValue()/setName() with no validation, transformation, or side effects.A routine you're debating as "trivial enough" is not trivial — design it.
Guide routine design with the Pseudocode Programming Process. Produces pseudocode design, header comments, and an implementation plan.
"Convinced it's correct" means you can mentally trace every path — happy, error, edge — and explain why each produces the right output. "It looks right" is not convinced.
Pseudocode at the level of intent, no target-language syntax:
If another resource is available
Allocate a dialog box structure
If a dialog box structure could be allocated
Note that one more resource is in use
Initialize the resource
Store the resource number at the location provided by the caller
Return success
Endif
Endif
Return failureThis reads as English, becomes excellent comments, and is precise enough to generate code from. The anti-pattern instead writes *hRsrcPtr, malloc(), return 1 — target-language detail that focuses on HOW, exposes implementation, and makes poor comments.
Verify the produced pseudocode and resulting routine. Checklist: Read(${CLAUDE_SKILL_DIR}/checklists.md). Assess the artifacts:
| After | Next | |---|---| | Pseudocode complete | Skill(code-foundations:cc-routine-and-class-design) | | Implementation done | Skill(code-foundations:cc-defensive-programming) |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-08 | pass→pass | 11,018 | 6,532 | -41% | 1 | 1 | 0% | 1,789 | 2,095 | +17% | 0 | 0 | — |
case-09 | fail→pass | 24,830 | 19,750 | -20% | 1 | 1 | 0% | 4,894 | 4,535 | -7% | 0 | 0 | — |
case-01 | fail→pass | 14,445 | 14,016 | -3% | 1 | 1 | 0% | 2,373 | 3,240 | +37% | 0 | 0 | — |
case-06 | pass→pass | 6,060 | 3,949 | -35% | 1 | 1 | 0% | 1,088 | 1,673 | +54% | 0 | 0 | — |
case-02 | pass→pass | 7,996 | 7,494 | -6% | 1 | 1 | 0% | 1,797 | 2,394 | +33% | 0 | 0 | — |
case-03 | fail→pass | 12,401 | 10,858 | -12% | 1 | 1 | 0% | 1,964 | 2,664 | +36% | 0 | 0 | — |
case-04 | pass→pass | 3,716 | 2,470 | -34% | 1 | 1 | 0% | 682 | 1,362 | +100% | 0 | 0 | — |
case-05 | pass→pass | 5,108 | 2,508 | -51% | 1 | 1 | 0% | 798 | 1,380 | +73% | 0 | 0 | — |
case-07 | fail→pass | 9,234 | 12,542 | +36% | 1 | 1 | 0% | 1,468 | 3,163 | +115% | 0 | 0 | — |
case-10 | fail→pass | 10,161 | 8,559 | -16% | 1 | 1 | 0% | 1,527 | 2,269 | +49% | 0 | 0 | — |
case-11 | fail→pass | 12,184 | 11,052 | -9% | 1 | 1 | 0% | 2,104 | 2,786 | +32% | 0 | 0 | — |
case-12 | pass→pass | 14,285 | 10,663 | -25% | 1 | 1 | 0% | 2,292 | 2,759 | +20% | 0 | 0 | — |
case-13 | pass→pass | 10,442 | 6,945 | -33% | 1 | 1 | 0% | 1,690 | 2,152 | +27% | 0 | 0 | — |
case-14 | pass→pass | 14,083 | 15,686 | +11% | 1 | 1 | 0% | 1,558 | 2,807 | +80% | 0 | 0 | — |
case-15 | pass→pass | 17,133 | 11,786 | -31% | 1 | 1 | 0% | 2,705 | 2,791 | +3% | 0 | 0 | — |
case-16 | pass→pass | 13,225 | 5,974 | -55% | 1 | 1 | 0% | 1,938 | 1,882 | -3% | 0 | 0 | — |
case-17 | pass→pass | 8,966 | 2,250 | -75% | 1 | 1 | 0% | 1,337 | 1,341 | +0% | 0 | 0 | — |
case-18 | fail→pass | 13,133 | 7,370 | -44% | 1 | 1 | 0% | 2,098 | 2,228 | +6% | 0 | 0 | — |
case-19 | pass→pass | 10,801 | 4,101 | -62% | 1 | 1 | 0% | 1,645 | 1,618 | -2% | 0 | 0 | — |
case-20 | pass→pass | 6,897 | 2,897 | -58% | 1 | 1 | 0% | 804 | 1,414 | +76% | 0 | 0 | — |
case-21 | pass→pass | 15,858 | 9,685 | -39% | 1 | 1 | 0% | 1,769 | 2,383 | +35% | 0 | 0 | — |
case-22 | fail→pass | 15,030 | 2,431 | -84% | 1 | 1 | 0% | 2,447 | 1,301 | -47% | 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 +36 percentage points is the difference between those two pass rates over the 22 comparable cases.
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.