Skip to content
Skills Library
Programming · Building & coding

implement

/implement

Build a planned change in small, test-first steps, with the layer checklists and a self-review. Use when you write product code.

Licence
MIT
Last repository change
11.11.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
1
Scripts
0
HTML comments
0
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 11.11.2026, without references to retired models or APIs.

Licence

MIT, open: use and modify while retaining author attribution.

What it does and when to use it

Build a planned change in small, test-first steps, with the layer checklists and a self-review. Use when you write product code.

Arguments

/implement [ticket id or plan step]
Original author description

Build a planned change in small, test-first steps, with the layer checklists and a self-review. Use when you write product code.

How it works

  1. Before the first line
  2. The loop, per step
  3. Layer checklists
  4. The product check (before calling it built)
  5. Finish the build
Original SKILL.md headings · 82 lines, 938 words
SKILL.md preview
---
name: implement
description: "Build a planned change in small, test-first steps, with the layer checklists and a self-review. Use when you write product code."
argument-hint: "[ticket id or plan step]"
---

# Implement

> Playbook files named here: when the project has its own copy at `.playbook/local/<same path>`, use that copy instead.

Work: $ARGUMENTS

`AGENTS.md` is the law: the project's rules win over anything here. Principles: `${CLAUDE_PLUGIN_ROOT}/principles/01-engineering.md` (how code is written), `02-architecture.md`, `04-design-and-ux.md`, `05-accessibility-i18n.md`, `06-security-privacy.md`, `08-testing-qa.md`, `09-data-and-migrations.md`.

## Before the first line

1. **Have a plan with checks** (`start-task`). If there isn't one, write the short version now: steps, and a verify for each.
2. **Know the product intent**: the acceptance criteria, the requirement ids, and the owner decisions already made. If a customer-visible behaviour isn't settled (a wording, a limit, what happens on delete, who sees what), **stop and ask**. Don't invent product.
3. **Read before writing**: the code you'll change, its tests, and the nearest existing example of the same kind of change. Follow that pattern.
4. **Check the docs for the installed version** of any API you'll call. Memory isn't a source.
5. **Order the work bottom up**: data → server → client data → UI → docs. Each step leaves the project green.

## The loop, per step

1. **Test first where it fits**: a failing test for a bug, a unit test for a rule, a DB test for a policy. For UI, decide what you'll look at.
2. **Write the least code** that passes it, matching the surrounding style, names and comment density. Comments explain why.
3. **Run the step's check, then the related suite.** Never move on while red. Paste failures; don't paper over them.
4. **Stay in scope.** Touch only what the step needs. Note anything else you find, and file it later.

## Layer checklists

**Data** (`09`)
- [ ] A migration, never an edit to a merged one; types regenerated
- [ ] Tenant id; deny-by-default policies; grants (column grants where needed); can/can't tests per role
- [ ] Constraints and size caps in the DB; triggers for cross-row or role rules
- [ ] Soft delete plus purge coverage; files follow rows
- [ ] Realtime: published or not, with a column list if any column is secret
- [ ] Content tables are included in the data export

**Server / API / functions** (`06`, the stack add-on)
- [ ] Validate at the boundary (types, sizes, enums); derive the tenant from the session, never from the client
- [ ] Idempotent creates (a client id or an idempotency key); a stable error code for each failure, mapped on the client
- [ ] Rate limits where abuse is possible; no content in logs or notifications
- [ ] Jobs are idempotent, record their outcome, and can be re-planned

**Client data** (`02`)
- [ ] Query keys scoped by tenant, and by user for "me" queries
- [ ] Writes are idempotent (client UUID) through the project's write path (an outbox if offline matters)
- [ ] One retry layer; errors classified by code; live updates invalidate
- [ ] Entitlement or plan checks before costly creates, with a friendly limit message

**UI** (`04`, `05`)
- [ ] Kit components and tokens only; no hard-coded colours, fonts, curves or strings
- [ ] Loading, error (retry), offline and empty states through the shared gate; never "empty" before data arrives
- [ ] Copy in the catalogue, from the reader's side; names and pronouns from data
- [ ] Labels, roles and hints; targets at the minimum size in `05`; a cue besides colour; works at the largest text size; reduce motion respected
- [ ] Destructive actions confirm with their consequence

## The product check (before calling it built)

Walk the change as each person who meets it:
- **The first-time user**, and the empty account.
- **The other person or tenant member**: what do they see, and when (realtime, push)?
- **The unhappy paths**: offline, the app killed mid-action, slow network, a server error, a limit reached, no permission.
- **Time**: someone in another zone, near midnight, on a leap day.
- **Lifecycle**: delete, leave, sign out, a second device, an old app version talking to the new server.

Anything that behaves in a way the customer wouldn't expect is either fixed now (in scope) or raised as a question or ticket. Never left silent.

## Finish the build

1. **Full check suite** from `AGENTS.md` (lint, typecheck, unit tests, plus DB and integration tests when data changed). All green.
2. **Self-review the whole diff** (`git diff <base>...`):
   - Every line traces to the task, with no debug code and no secrets.
   - Nothing your change left unused remains.
   - No speculative abstraction.
   - **No unnecessary try/catch**: each catch handles the error (retry, user-facing state, context and re-throw, or cleanup); nothing is swallowed, re-thrown unchanged, or logged twice (`${CLAUDE_PLUGIN_ROOT}/principles/01-engineering.md` §7).
   - **No unnecessary comments**: none that restate the code, narrate the change, keep commented-out code, or are TODOs without a ticket (§5).
3. **Note what the release needs**: a new build, an env var, a migration deploy, an owner action.
4. **Note rules to record**: new helpers or conventions for `AGENTS.md`, and decisions for the Decision Log (`docs-upkeep` writes them).
5. **Don't push or open a PR**: that's `ship-pr`, on the owner's word. As a delegated agent in your own worktree (`product-engineer`), commit there on its own branch so the orchestrator can review and bring it in; in the main session, leave committing to `ship-pr`.
6. **Hand off** (`${CLAUDE_PLUGIN_ROOT}/templates/handoff.md`):
   - The changes by file; the checks you ran, with their results.
   - Decisions you took, and questions you hit.
   - What verification should focus on (the riskiest path, the states, the screens to capture).
   - Anything still running.

Versions

RepositoryScoreLicence
This page · seancabalse/agentic-playbook100MIT
ericrisco/rsc-harness100MIT
yonatangross/orchestkit100MIT
sentimony/agentic-workflow100MIT
moberghr/mtk-agent-toolkit100MIT
michielvandermeer/skills100MIT
rossumai/claude-marketplace100MIT
userKael/rastro100MIT
yonatangross/orchestkit100MIT

Database snapshot: 13.11.2026 · package version fcdfd40a2297 (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 100oldhand-build
    Implements a planned change the lazy, correct way: reuse what the codebase has, then the standard library, the platform and installed dependencies, and only then the least new code, fixing the whole class of bug at the shared point. Takes a baseline of the repo checks before the…
  • 100tlc-implement
    Implement a work already planned: extracts a checklist, builds it, and proves every check with an independent verifier. Use when the user says "extract a checklist", "build this ticket", "implement this spec", or "tlc-implement". Do NOT use when nobody has decided what to build,…
  • 100test-first
    Drive one feature through a strict TDD Red-Green-Refactor cycle with checklists for each phase. Use when implementing new functionality test-first, or when the user runs /test-first.
  • 100refactor
    Plans and performs a behaviour-preserving refactor in small steps with the test suite green before, during and after. Use when code is hard to change, duplicated, too large, or when a tech-debt item is scheduled.
  • 90test-first-implementation
    Implement behavior with a red-green-refactor loop, observable tests, and small vertical slices. Use when the user asks for TDD, test-first work, regression-first fixes, or a feature that needs clear behavior before implementation.
  • 100tlc-implement
    Implements work already planned - a plan.md from tlc-plan, or a small ticket - by freezing it into checks with proofs, building, and proving every check with a script and an independent Verifier before declaring done. Use when the user says "implement this plan", "build this…

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.