Build incremental
Collection of Claude Code and Claude Desktop skills for developer workflows, automation, and productivity
npx -y skills add mostafa-drz/claude-skills --skill build-incrementalAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 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
Implements code in progressive, verified increments — auto-detects the project's toolchain, builds each unit, runs checks (typecheck, lint, test), fixes errors, and commits with semantic messages. Use when building features, implementing milestones, or making multi-step changes.
SKILL.md
6.1 KB, as published. Nobody here has run it
Build
Implement code in progressive, verified increments. Each unit is built, checked, and committed before moving to the next.
Preferences
Read ~/.claude/skills/build-incremental/preferences.md using the Read tool. If not found, no preferences are set.
Project context
On startup, use Bash to detect: project stack files (ls package.json Cargo.toml pyproject.toml go.mod Makefile), CLAUDE.md presence, current git branch, and git status. Skip any that fail.
Command routing
Check $ARGUMENTS:
help→ display help then stopconfig→ interactive setup then stopreset→ delete~/.claude/skills/build-incremental/preferences.md, confirm, stop--dry-run <description>→ show the plan without executing then stop--no-commit <description>→ build and verify but don't commit--skip-lint <description>→ skip linting, only run type checks- anything else → proceed with build
Help
Build — Implement code in verified increments
Usage:
/build-incremental <what to build> Build incrementally with checks + commits
/build-incremental --dry-run <description> Show plan without executing
/build-incremental --no-commit <description> Build and verify, don't commit
/build-incremental --skip-lint <description> Skip lint, only typecheck
/build-incremental config Set toolchain and commit preferences
/build-incremental reset Clear preferences
/build-incremental help This help
Examples:
/build-incremental add user settings page with form validation
/build-incremental Milestone 2 from IMPLEMENTATION_PLAN.md
/build-incremental --dry-run refactor auth middleware
How it works:
1. Detects your toolchain (or reads from preferences)
2. Breaks work into committable units
3. For each unit: implement → check → fix → commit
4. Reports summary with all commits
Current preferences:
(shown above under Preferences)
Config
Use AskUserQuestion:
Q1 — "Type check command?" (auto-detect (default), custom command)
- Auto-detect looks for:
pnpm typecheck,npm run typecheck,tsc --noEmit,cargo check,go vet,mypy .,pyright
Q2 — "Lint command?" (auto-detect (default), custom command, skip)
- Auto-detect looks for:
pnpm lint,npm run lint,cargo clippy,golangci-lint run,ruff check
Q3 — "Lint fix command?" (auto-detect (default), custom command, skip)
- Auto-detect looks for:
pnpm lint:fix,npm run lint:fix,cargo clippy --fix,ruff check --fix
Q4 — "Commit style?" (conventional (default) — feat:, fix:, etc.; simple — plain messages; project-default — read from CLAUDE.md)
Q5 — "Unit size?" (small — 1-2 files per commit; medium — 3-5 files (default); large — whole milestone)
Save to ~/.claude/skills/build-incremental/preferences.md.
First-time detection
If no preferences file exists:
-
Auto-detect the toolchain from project files:
package.json→ check fortypecheck,lint,lint:fixscripts, detectpnpm/npm/yarnfrom lockfileCargo.toml→cargo check,cargo clippypyproject.toml/requirements.txt→mypy,ruff,pyrightgo.mod→go vet,golangci-lintMakefile→ check forlint,checktargets
-
Show: "Detected: [toolchain]. Run
/build-incremental configto customize, or continue with these defaults." -
Proceed normally.
Build process
Step 1: Understand scope
- Read context:
- CLAUDE.md for project conventions
- IMPLEMENTATION_PLAN.md if it exists and
$ARGUMENTSreferences a milestone - Existing code in the target area
- Related components for pattern consistency
- Break work into committable units (size based on preference)
- Order: types/interfaces first → logic/providers → components → pages/routes
If --dry-run, show the plan and stop.
Step 2: Implement one unit
Write the code for one unit. Follow project conventions from CLAUDE.md. Read existing code before modifying.
Step 3: Verify
Run checks in this order:
Type check:
{typecheck command from preferences or auto-detected}
If fails: read errors, fix, re-run until passing.
Lint:
{lint command}
If fails:
- Run lint fix:
{lint fix command} - Fix remaining issues manually
- Re-run until passing (warnings OK, errors not)
Skip lint if --skip-lint flag.
Step 4: Commit
Skip if --no-commit flag.
- Stage specific files (never
git add -Aorgit add .) - Commit with semantic message based on style preference:
- conventional:
feat(scope): description,fix(scope): description,refactor: description - simple: plain descriptive message
- project-default: follow CLAUDE.md conventions
- conventional:
- Under 72 characters
- Describe what changed, not which files
Step 5: Repeat or complete
Check if more units remain. If yes → Step 2. If no → summary.
Completion summary
Build complete: {description}
Commits:
1. {hash} {message}
2. {hash} {message}
Verification:
✓ Type check: no errors
✓ Lint: no errors
{If milestone: Next milestone: {name} or "none remaining"}
Rules
- Never skip verification — every commit must pass checks
- Never commit unrelated changes together — one unit per commit
- Never use
git add .— always add specific files - Never amend previous commits unless explicitly asked
- Fix forward — if checks fail, fix and re-verify, don't revert
- Read before writing — always read existing code first
- Ask when uncertain — if scope is ambiguous, ask before implementing