codex/skills/tame-software-complexity/SKILL.md
Use when a task involves ambiguous or shifting software requirements, architecture or system design choices, build-vs-buy decisions, thin prototypes, incremental delivery planning, or evaluating tools/frameworks/AI systems without treating them as a silver bullet. Use it to separate essential complexity from accidental friction and to produce a grounded plan before or alongside implementation. Do not use for straightforward code edits, isolated bug fixes with clear reproduction steps, rote migrations, or purely syntactic refactors unless the user explicitly asks for broader design guidance.
npx skillsauth add tkersey/dotfiles tame-software-complexityInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Approach software work as a conceptual design problem first.
Treat languages, frameworks, tooling, and automation as useful for removing accidental friction, but not as substitutes for understanding the problem, interfaces, constraints, and change pressures.
Use this skill when the hard part is one or more of the following:
Do not use this skill when the task is already well-specified and the main work is mechanical implementation.
Diagnose essence before accidents.
Prefer buy/reuse before build.
Prototype to learn.
Grow the system incrementally.
Protect conceptual integrity.
Make the invisible visible.
Validate the specification, not just the code.
Follow this sequence unless the user explicitly asks for something narrower:
Extract or infer:
If the request is underspecified, state the most important assumptions plainly.
Produce a short diagnosis:
Before proposing a custom design, inspect what already exists:
Then recommend one of:
Explain the reason in terms of fit, constraints, and maintenance burden.
For ambiguous work, specify the smallest useful prototype:
If a prototype is unnecessary, say why.
Break the work into a minimal sequence of running increments. Favor vertical slices over deep infrastructure-first plans.
For each increment, identify:
When useful, output one or more compact artifacts in text form, such as:
End with the smallest credible next step, not a grand rewrite.
Use this structure unless the user requested a different format:
Diagnosis
Recommendation
Prototype or first slice
Increment plan
Risks and assumptions
Next action
testing
Use before local patching when bugs, regressions, malformed state, crashes, parser failures, migrations, cache drift, protocol problems, compatibility requests, tolerant readers, fallbacks, coercions, retries, catch-and-continue logic, or local workarounds may broaden accepted invalid state.
testing
Use for bug reports, PR/issue prose, reviewer comments, user diagnoses, generated summaries, memories, retrieved context, public tracker context, claimed root causes, proposed fixes, fake-minimal repro risk, or any investigation where natural-language context could anchor the implementation scope.
development
Use when non-trivial work needs Challenge Escalation, latent-intelligence activation, frame-market selection, doctrine operators, dominant-move selection, ablation/surface-tax judgment, reification, review comment law, negative capability, route receipts, or proof-bearing refusal to mutate.
development
Apply Algebra-Driven Design. Use for ADD, denotational design, combinator models, law-driven architecture, domain algebra, property tests, codebase modeling, event sourcing, workflow design, or agentic skill design. If the canonical bundle is unavailable, use this wrapper as the minimal ADD kernel and report the missing bundle path.