add-feature
Skill2 starsChanged 22 days agoMITView on GitHub
Checklist for a new product feature in this repo that spans database, API contract, server and UI. Use when a task adds a capability end to end, such as a new resource, a new field users can set, or a new user-facing action.
27 other projects use a version of this.
Adopted by
Most recently taken up by
- NVIDIA/nvcftheir own version, first seen Nov 15, 2026
- SHREESHMAN/lineupifytheir own version, first seen Nov 15, 2026
- subhashkhileri/agntreetheir own version, first seen Oct 25, 2026
- WhatIfWeDigDeeper/claude-code-courseratheir own version, first seen Oct 20, 2026
- NumericalEarth/Breeze.jltheir own version, first seen Oct 17, 2026
- CliMA/Oceananigans.jltheir own version, first seen Oct 17, 2026
Other versions27 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 27
- fullstackhero/dotnet-starter-kit★ 6.9ksame name
- JamieMason/syncpack★ 2.1ksame name
- CliMA/Oceananigans.jl★ 1.4ksame name
- OpusGameLabs/game-creator★ 360same name
- microsoft/SqlScriptDOM★ 284same name
- NVIDIA/nvcf★ 268same name
- NumericalEarth/Breeze.jl★ 90same name
- nikandr-surkov/ai-saas-starter★ 16same name
- Azure/azure-functions-agents-runtime★ 13same name
- aiqadam/qadam-flow★ 5same name
17 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository10 other files it gives its agents.
- AGENTS.mdAGENTS.md
- tests/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- tests/CLAUDE.mdCLAUDE.md
- add-pageSkill
- api-changeSkill
- auth-changeSkill
- database-changeSkill
- shadcnSkill
- upgrade-prerelease-depsSkill
The file
Files
Add a feature
A new feature usually touches every layer, in this order. Each step names the skill or file with the details. The posts feature is the reference for each step: open the one file a step names, not the whole folder.
- Schema in
src/server/db/schema/, thenpnpm db:generate --name <slug>andpnpm db:migrate(skilldatabase-change). A table of user content takes the shared columns ofschema/columns.ts(uuidv7Id,authorId,createdAt,updatedAt,trimmedTextCheck) and, if it is listed, a keyset index ending in (created_at, id), asposthas. - Contract in
src/contract/: schemas, endpoints, tagged errors. Constants the UI also needs (limits, lengths) go insrc/contract/limits.ts, which stays free of Effect (skillapi-change). An input schema a form also validates goes in a module without HttpApi code (src/contract/post-input.ts), so the browser loads Schema only. A list endpoint takesquery: PageQueryand answerspageOf(Item)(src/contract/pages.ts). - Repository (for example
src/server/posts/repo.ts) and handler insrc/server/api/handlers.ts, added toApiHandlersthere. Each statement goes throughquery(src/server/db/query.ts, withDbErrorandisUuid); a list reads a page withkeyset(table)andtoPage, and its handler turns the query into a request withpageRequest(src/server/db/keyset.ts). A write of several statements runs inDatabase.transaction(effect)(src/server/db/client.ts, proven intests/db/transaction.test.ts). Provide the repository's Layer insrc/server/api/web-handler.tsand an in-memory one inapiLayer(tests/api/harness.ts), built liketests/api/posts-repo.tsonmemoryPageandmemoryClock(tests/api/memory-keyset.ts). Name itsrc/server/<feature>/repo.ts: Oxlint keeps drivers and singletons out of that path. pnpm codegen.- Errors: map every new error tag to a message in
src/lib/api-error.ts.pnpm typecheckfails untildescribeApiErrorhandles it. - UI in
src/features/<name>/(see "Where code goes" inAGENTS.md) and routes insrc/routes/(skilladd-pagefor a new page). Reuse the shared list piecessrc/features/AGENTS.mdnames instead of copying the posts ones:pnpm checkfails on any duplicated block. A component takes the signed-in user from its route's context (Route.useRouteContext()), notuseSessionUser:session.functions.tshas no component-test stub, and importing it breaks the tests' browser bundle. An account action follows theauth-changeskill instead. - Tests, cheapest layer first, each with its folder's
AGENTS.md: handler branches intests/api/, UI states intests/component/, query budgets intests/db/, thentests/integration/andtests/e2e/(each new page or UI state gets an entry inSTATESintests/e2e/a11y.spec.ts; a section added to an existing page needs no edit to other states' keyboard rows or landmark snapshots).
Done when
pnpm check, pnpm check:drift and pnpm build && pnpm verify:app pass, and every generated file is
committed with its source. Run pnpm check after each layer. At the end, run pnpm build && pnpm verify:app through
the verifier subagent; while fixing, rerun only the layer that failed (its summary names the command), then run
the whole verify:app once more. The feature is done only when that last full run passed: contract coverage runs
only there. Wait for the verifier's report each time (call it in the foreground, or wait for a background run to
finish) and act on it before you report the feature: ending while it still runs hands over unverified work. Every status the contract declares needs a test that provokes it (the api layer counts): a 400 for
an operation with a body or query, a 429 for a rate-limited write.
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
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.

