
Incremental Implementation
Land multi-file features in thin vertical slices—implement, test, verify, and commit—instead of one risky big-bang change.
Overview
Incremental Implementation is a journey-wide agent skill that breaks multi-file work into test-and-commit vertical slices so solo builders never land an entire feature in one untested pass.
Install
npx skills add https://github.com/addyosmani/agent-skills --skill incremental-implementationWhat is this skill?
- Increment cycle: Implement → Test → Verify → Commit → next slice
- Targets multi-file features, refactors, and any urge to write ~100+ lines before testing
- Each slice must leave the system working and testable
- Explicit anti-pattern: single-pass entire feature implementation
- Pairs naturally with task breakdowns from planning skills
- Four-step increment cycle: Implement, Test, Verify, Commit
- Explicit ~100-line threshold before testing called out in When to Use
Adoption & trust: 4.6k installs on skills.sh; 49.1k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You have a task list but keep writing huge diffs that are hard to review, test, or roll back.
Who is it for?
Indie builders implementing plans, refactors, or integrations who want continuous green main.
Skip if: Single-file, single-function tweaks where incremental slicing adds overhead without risk reduction.
When should I use this skill?
Implementing any feature or change touching more than one file, about to write a large amount of code at once, or when a task feels too big for one step.
What do I get? / Deliverables
Each commit is a small working increment with tests run in the loop, so large features land safely slice by slice.
- Series of small commits each leaving the app working
- Tests executed per slice
- Completed feature assembled from vertical increments
Recommended Skills
Journey fit
Useful at every journey phase - explore requirements and options before committing to a direction.
Where it fits
Ship the API route first with tests, then wire the UI button in a second slice.
Migrate one table column per commit with verification between steps.
Fix a cross-module bug by reproducing in tests, patching minimally, then expanding coverage.
Patch production config in one safe increment before refactoring callers.
Extend a spike one endpoint at a time so the demo stays runnable for feedback.
How it compares
Use instead of ad-hoc “implement everything then test” agent sessions.
Common Questions / FAQ
Who is incremental-implementation for?
Solo and indie developers using coding agents on multi-file features, refactors, or integrations.
When should I use incremental-implementation?
During Build feature work, Ship bugfixes across modules, Validate prototypes you are extending, and Operate hotfixes—whenever the change touches more than one file or ~100 lines before a test run.
Is incremental-implementation safe to install?
It is process-only guidance with no extra permissions; review the Security Audits panel on this page for the package source.
SKILL.md
READMESKILL.md - Incremental Implementation
# Incremental Implementation ## Overview Build in thin vertical slices — implement one piece, test it, verify it, then expand. Avoid implementing an entire feature in one pass. Each increment should leave the system in a working, testable state. This is the execution discipline that makes large features manageable. ## When to Use - Implementing any multi-file change - Building a new feature from a task breakdown - Refactoring existing code - Any time you're tempted to write more than ~100 lines before testing **When NOT to use:** Single-file, single-function changes where the scope is already minimal. ## The Increment Cycle ``` ┌──────────────────────────────────────┐ │ │ │ Implement ──→ Test ──→ Verify ──┐ │ │ ▲ │ │ │ └───── Commit ◄─────────────┘ │ │ │ │ │ ▼ │ │ Next slice │ │ │ └──────────────────────────────────────┘ ``` For each slice: 1. **Implement** the smallest complete piece of functionality 2. **Test** — run the test suite (or write a test if none exists) 3. **Verify** — confirm the slice works as expected (tests pass, build succeeds, manual check) 4. **Commit** -- save your progress with a descriptive message (see `git-workflow-and-versioning` for atomic commit guidance) 5. **Move to the next slice** — carry forward, don't restart ## Slicing Strategies ### Vertical Slices (Preferred) Build one complete path through the stack: ``` Slice 1: Create a task (DB + API + basic UI) → Tests pass, user can create a task via the UI Slice 2: List tasks (query + API + UI) → Tests pass, user can see their tasks Slice 3: Edit a task (update + API + UI) → Tests pass, user can modify tasks Slice 4: Delete a task (delete + API + UI + confirmation) → Tests pass, full CRUD complete ``` Each slice delivers working end-to-end functionality. ### Contract-First Slicing When backend and frontend need to develop in parallel: ``` Slice 0: Define the API contract (types, interfaces, OpenAPI spec) Slice 1a: Implement backend against the contract + API tests Slice 1b: Implement frontend against mock data matching the contract Slice 2: Integrate and test end-to-end ``` ### Risk-First Slicing Tackle the riskiest or most uncertain piece first: ``` Slice 1: Prove the WebSocket connection works (highest risk) Slice 2: Build real-time task updates on the proven connection Slice 3: Add offline support and reconnection ``` If Slice 1 fails, you discover it before investing in Slices 2 and 3. ## Implementation Rules ### Rule 0: Simplicity First Before writing any code, ask: "What is the simplest thing that could work?" After writing code, review it against these checks: - Can this be done in fewer lines? - Are these abstractions earning their complexity? - Would a staff engineer look at this and say "why didn't you just..."? - Am I building for hypothetical future requirements, or the current task? ``` SIMPLICITY CHECK: ✗ Generic EventBus with middleware pipeline for one notification ✓ Simple function call ✗ Abstract factory pattern for two similar components ✓ Two straightforward components with shared utilities ✗ Config-driven form builder for three forms ✓ Three form components ``` Three similar lines of code is better than a premature abstraction. Implement the naive, obviously-correct version first. Optimize only after correctness is proven with tests. ### Rule 0.5: Scope Discipline Touch only what the task requires. Do NOT: - "Clean up" code adjacent to your change - Refactor imports in files you're not modifying - R