agentleFS
hdprajwalhdprajwal/agent-skills/skills/incremental-implementation/SKILL.md

incremental-implementation

Skill1 starsChanged 5 months agoMITView on GitHub

Build in thin vertical slices — implement one piece, test it, prove it runs, commit, then expand. Use for any change touching more than one file, when you're about to write a lot of code at once, or when a task feels too big for one step. Each increment leaves the system working and committed.

77 other projects use a version of this, 27 of them edited.

Adopted by

Most recently taken up by

Used with

Projects with it also use constraint-driven-development, deprecation-and-migration and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • MrCipherSmithSkill

    constraint-driven-development

    Use when a project needs a persistent, measurable quality bar — starting a project without documented standards, 'set up constraints', or when coverage/perf/a11y thresholds get re-debated per-PR. Produces CONSTRAINTS.md with enforceable numbers, ratchets, and a guard against silent weakening. NOT for throwaway prototypes or a one-off CI setup.

    Also in 14 projects that use this

  • HK-hubSkill

    deprecation-and-migration

    Manages deprecation and migration. Use when removing old systems, APIs, or features. Use when migrating users from one implementation to another. Use when deciding whether to maintain or sunset existing code.

    Also in 36 projects that use this

  • HK-hubSkill

    observability-and-instrumentation

    Instruments code so production behavior is visible and diagnosable. Use when adding logging, metrics, tracing, or alerting. Use when shipping any feature that runs in production and you need evidence it works. Use when production issues are reported but you can't tell what happened from the available data.

    Also in 29 projects that use this

  • seikaikyoSkill

    doubt-driven-development

    對非平凡決策啟動新鮮 context 對抗審查(找碴不背書),在修正還便宜的時候抓出錯誤方向。適用:高風險改動(production、資安敏感邏輯、不可逆操作)、不熟的程式碼、要宣稱「這樣是安全的 / 可行的」之前。機械性操作與一行修改不適用。

    Also in 33 projects that use this

  • seikaikyoSkill

    interview-me

    需求不明時的意圖萃取訪談:一次一題、每題附上自己的猜測、聽出「真正想要 vs 覺得應該要」,直到能預測使用者反應(約 95% 信心)才動工。適用:需求缺少對象 / 動機 / 成功標準 / 約束,或使用者點名「訪談我」「先確認一下」「我們確定嗎」。明確自足的指示、純資訊查詢、機械性操作不適用。

    Also in 30 projects that use this

  • thunderkdsSkill

    review-diff

    Generate a Markdown review file with C4 architecture diagrams and code walkthrough for the current git changes

    Also in 3 projects that use this

  • +2 more from HK-hub

The file

We split this skill into the rules it gives an agent

4 rules. 0 are common, 4 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 72 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    0 — Simplest thing first: Before coding: what's the simplest thing that works?

    line 45
  2. Distinctive:

    1 — One thing per increment: Don't mix a new component, a refactor, and a build-config change in one commit.

    line 68
  3. Distinctive:

    2 — Keep it compilable: After each increment the project builds and existing tests pass.

    line 71
  4. Distinctive:

    Run each check after a change that could affect it.

    line 99

“Common” is measured: kept by at least 6 in 10 of the 72 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Incremental Implementation

Build in thin vertical slices. Implement one piece, test it, prove it runs, commit, then expand. Never build a whole feature in one pass — each increment leaves the system working and committed. This is what makes large features manageable.

When to use

Any multi-file change, building a feature from a task breakdown, refactoring, or any time you're about to write more than ~100 lines before testing. Skip it for single-file, single-function changes.

The cycle

For each slice: implement the smallest complete piece → test (run the suite, or write a test) → verify it actually runs → commit one logical change → next slice, carry forward.

Slicing

Vertical (preferred) — one complete path through the stack per slice:

Slice 1: Create  (DB + API + basic UI) → user can create
Slice 2: List    (query + API + UI)    → user can see them
Slice 3: Edit    → user can modify
Slice 4: Delete  → full CRUD

Contract-first — when backend and frontend move in parallel: define the types/interfaces first, build each side against the contract, then integrate.

Risk-first — prove the riskiest piece first (e.g. the WebSocket connection) before investing in what's built on top. If it fails, you find out cheaply.

Rules

0 — Simplest thing first. Before coding: what's the simplest thing that works? After: fewer lines? are these abstractions earning their keep? building for hypothetical future needs or the current task?

✗ Generic EventBus + middleware for one notification → ✓ a function call
✗ Abstract factory for two similar components         → ✓ two components
✗ Config-driven form builder for three forms          → ✓ three forms

Three similar lines beat a premature abstraction. Write the naive, obviously-correct version first; optimize only after correctness is proven.

0.5 — Scope discipline. Touch only what the task needs. Don't clean up adjacent code, refactor imports in files you're not changing, or modernize syntax in files you're only reading. Spotted something? Note it, don't fix it:

NOTICED, NOT TOUCHING:
- src/utils/format.ts has an unused import (unrelated)
→ Want me to file these?

1 — One thing per increment. Don't mix a new component, a refactor, and a build-config change in one commit.

2 — Keep it compilable. After each increment the project builds and existing tests pass. Never leave it broken between slices.

3 — Flag incomplete work. Gate not-yet-ready features behind a flag so you can land small pieces without exposing them.

4 — Safe defaults. New behavior defaults to conservative/opt-in.

5 — Rollback-friendly. Each increment is independently revertable. Don't delete-and-replace in one commit; migrations get rollback migrations.

Prove each slice runs

Tests green ≠ working. For the slices that matter, actually run it — start the app, hit the endpoint, run the CLI; for UI, drive it with agent-browser. The recurring failure mode is claiming "done" on something that compiles but doesn't actually work end-to-end.

Increment checklist

After each increment:

  • One thing, done completely
  • Existing tests pass (pnpm test / cargo test / go test ./...)
  • Build succeeds; types and lint pass
  • The new behavior actually runs
  • Committed with a descriptive message

Run each check after a change that could affect it. After a green run, don't re-run on unchanged code — it adds nothing.

Common rationalizations

RationalizationReality
"I'll test it all at the end"Bugs compound. A bug in Slice 1 makes 2-5 wrong.
"Faster all at once"Until something breaks and you can't find which of 500 lines did it.
"Too small to commit separately"Small commits are free; large ones hide bugs.
"I'll add the flag later"If it's incomplete, it shouldn't be user-visible. Flag it now.
"This refactor is small enough to include"Mixed refactor + feature is harder to review and debug. Split them.

Red flags

100+ lines without running tests · multiple unrelated changes in one increment · "let me just quickly add this too" · skipping verify to go faster · broken build between increments · abstractions before the third use case · touching files outside scope "while I'm here".

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.