agentsclimarketplace

Implementation strategy

Skill Topurrra/claude-plugins/plugins/foundational-skills/skills/implementation-strategy

My Claude Code plugins, one repo, any machine: a universal coding-discipline skill and 15 foundational build-from-scratch skills behind one orchestrator.

Install
npx -y skills add Topurrra/claude-plugins --skill implementation-strategy

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use when you have a plan and are about to build, to build in small verified increments that stay runnable, reusing what exists instead of over-building.

SKILL.md

7.7 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it

Skill 05: Implementation Strategy & Execution

Purpose: Actually build the thing well, in an order that stays working, stays understandable, and stays verifiable at every step. Use when: You have a plan and are ready to build. Don't use when: You don't yet have clear requirements (requirements-and-success-criteria) or a plan (planning-and-decomposition). Building without them produces fast garbage.


Why this matters

Execution is where good plans go to die. The common failure is not typing speed, it is building in a way that becomes an unverifiable, tangled pile: fifteen things changed at once, nothing runnable until the end, and no idea which change broke what. This skill is about the discipline of building so that quality is preserved as you go, not bolted on afterward.

The central habit: keep the work in a runnable, verified state as often as possible, and change one thing at a time.

The core principle

Make it work, then make it right, then make it fast: in that order, and never skip straight to "fast." Get a correct, simple version running end-to-end first. Clean it up second. Optimize only what measurement proves is slow, third. Most premature optimization and premature abstraction is complexity you'll pay to maintain forever, bought before you knew you needed it.


The execution loop

Repeat for each task in your plan:

  1. Pick the next single task from the plan (top of the list).
  2. Know your check first: before writing anything, know how you'll verify this task ("done when …").
  3. Build the smallest thing that could satisfy it. Not the general version. Not the future-proof version. The version that makes this check pass.
  4. Run it. Verify against the check. Not "it looks right": actually run it and observe the result.
  5. If it works: commit / save a known-good state, cross the task off, go to 1.
  6. If it doesn't: fix it now, while the change is small and fresh (see systematic-debugging). Don't pile the next change on top of a broken one.

Never let the number of unverified changes grow large. A working state you can return to is your safety net.

Build order: the "make it work" sequence

  1. Walking skeleton first: the thinnest end-to-end path (from Skills 01/03). Prove the whole thing connects.
  2. Happy path: the main case working correctly on real input.
  3. Edge cases and errors: empty, missing, malformed, too-big, unauthorized. Handle each deliberately (see robustness-and-failure-modes).
  4. Cleanup: names, structure, duplication, comments. Make it readable now that it works.
  5. Optimization: only if a real measurement shows it's too slow, and only the measured hot spot.

Execution disciplines (the habits that preserve quality)

Reuse before you build

Before writing new code, check what already exists: in this project, in the standard library, in dependencies you already have. Re-implementing something that's a few files over (or one stdlib call away) is the most common form of self-inflicted complexity. Look first, write second.

One change at a time

Change one thing, verify, then change the next. When you batch ten changes and something breaks, you've lost the ability to know which change did it. Small verified steps are faster than big unverifiable ones because debugging a small diff is trivial.

Match the surrounding style

New work should read like it belongs. Follow the existing conventions, naming, and structure of whatever you're working in. Consistency is a feature; a "better" style that clashes is a cost to every future reader.

Simplest thing that works

Don't add an abstraction for one use. Don't add config for a value that never changes. Don't build an interface with one implementation. You can always generalize later, when a second real case appears. Speculative generality is a debt you pay before you borrow.

Leave a check behind

For any non-trivial logic (a branch, a loop, a parser, anything touching money/security/data), leave the smallest runnable check that fails if the logic breaks: a tiny self-test or an assertion. This is how you and everyone after you know it still works. Trivial one-liners don't need one.

Keep it runnable

Prefer a sequence of states where the thing always runs, even if it does less. "Always green" beats "big-bang integration at the end." If you must break it temporarily, keep that window as short as possible.


Decision aid: how much structure does this need?

SignalLean simplerInvest more
LifespanThrowaway / one-offLong-lived, others depend on it
ReadersJust you, nowA team, or future-you in 6 months
Change rateRarely touchedFrequently extended
Blast radiusIsolatedShared, central, hard to change
CertaintyYou know the requirementsRequirements still moving

When in doubt, start simpler. It is far cheaper to add structure to simple code that works than to remove structure from a complex thing that doesn't.


Worked example

Task: Add "export report to JSON" to the cost CLI.

Weak execution: Simultaneously add a plugin system for "export formats," a config file for output options, an abstract Exporter base class, and JSON/CSV/XML exporters, none tested, then try to run it. It doesn't work and you can't tell why.

Disciplined execution:

  1. Check first: "Given the sample data, --json prints valid JSON that parses back to the same totals."
  2. Smallest thing: one function that takes the already-computed totals and prints json.dumps(totals). Wire --json to call it.
  3. Run it, verify: pipe output to a JSON parser; confirm totals round-trip. ✅
  4. Save known-good state. Cross it off.
  5. Only if a second format is actually requested later do you introduce an abstraction, and by then you'll know its real shape.

One tested function beats an untested framework. If XML is never requested, you never paid for the plugin system.


Common failure modes

FailureFix
Big-bang build, nothing runs till the endWalking skeleton first, integrate continuously.
Ten changes at onceOne change, verify, repeat.
Premature abstraction / optimizationMake it work simply first; generalize/optimize on evidence.
Reinventing existing helpersSearch the codebase and stdlib before writing.
"Looks right," never actually runExecute and observe every task's check.
Clashing with existing styleMatch surrounding conventions.
No test/assert left behindLeave one runnable check on non-trivial logic.

Red flags: stop and correct

  • Nothing has actually run in the last several changes.
  • You can't say which recent change would have broken the current failure.
  • You're building a general/configurable system for a single concrete need.
  • You're optimizing something you never measured.
  • You wrote a chunk of logic with no way to tell if it's correct.

Definition of done for this skill

  • Built in small, individually-verified steps, each leaving a runnable state.
  • Walking skeleton → happy path → edges → cleanup → (measured) optimization.
  • Reused existing/stdlib solutions instead of re-implementing.
  • No speculative abstractions or unmeasured optimizations.
  • Non-trivial logic has a check left behind.

See also

  • planning-and-decomposition, supplies the ordered tasks.
  • systematic-debugging, for when a step fails.
  • self-verification, verifying the finished result.
  • maintainability-and-extensibility, the "make it right" step in depth.

Gives 0 of the 12 instructions most roadmap strategy skills give in ~1.7k tokens

Counted across 591 of the 672 authors here whose files we hold, read 2026-08-06

  • read product marketing context before asking questionsin 21 of 591, across 10 files
  • base price on perceived value, not costin 15 of 591, across 4 files
  • compact after finalizing a planin 14 of 591, across 9 files
  • differentiate tiers using features, limits, or supportin 14 of 591, across 3 files
  • use Van Westendorp to find acceptable price rangein 13 of 591, across 2 files
  • use MaxDiff to identify highly valued featuresin 13 of 591, across 2 files
  • map topics to buyer journey stagesin 12 of 591, across 6 files
  • Extract domain capabilities and classify subdomainsin 11 of 591, across 1 file
  • Define bounded contexts around consistency and ownershipin 11 of 591, across 1 file
  • Establish a ubiquitous language glossary and anti-termsin 11 of 591, across 1 file
  • Capture context boundaries in ADRs before implementationin 11 of 591, across 1 file
  • Open the strategic design template if neededin 11 of 591, across 1 file

Said here and by no other author read

  • change one thing at a time
  • verify each change against a check
  • save a known-good state after each task
  • build a walking skeleton first
  • check existing code before writing new code
  • match existing code conventions

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.