Fit it to your project¶
Two things tell the kit about your project: a profile, which decides how much engineering it gets, and the standard commands, which give every agent the same way to build and test it. The project scan proposes both; you confirm them.
Project profile¶
Not every project needs every practice. An internal tool for ten people shouldn't be built like a bank's payment system. Each project describes itself in the Profile part of "This project" in AGENTS.md. That section belongs to the project, and kit updates never change it:
| Dimension | Values | Decides |
|---|---|---|
| Stage | prototype, early, production, mature | How much engineering rigor: test depth, migration safety, compatibility |
| Audience | personal, internal, customer, public | Security depth, versioned API contracts, accessibility, abuse limits |
| Team | solo, small, several | Formality: decision records, contracts and contract tests between teams |
| Handles | none, or money, personal data, regulated data, safety | Risk at any size: security reviews, audit trails, backups before migrations |
Costly items in the skills carry a tag, such as (production), (external), (public), (teams) or (sensitive). A tagged item applies only when the profile matches. Cheap correctness and safety always apply: input validation, access checks, parameterized queries, tests, and stopping before data loss.
Example
An internal time-tracking tool in production, run by a small team, that handles billing and employee data, gets security reviews for billing and sign-in changes and migrations that keep live data safe. It doesn't get contract tests, Testcontainers or feature switches.
The project-profile skill defines the tags, says what each value adds or relaxes, and lists the signs of building for a bigger project than this one.
Standard commands¶
Every project should offer the same commands, each wrapping the project's real tools. Then one instruction, "run make test", works everywhere, for agents and people alike:
| Command | Does |
|---|---|
make setup |
Install dependencies and prepare a local environment |
make run |
Start the application locally |
make build |
Build everything that ships |
make test |
Run all tests; make test T=<path> runs one file or test |
make lint |
Lint and type-check |
make format |
Format the code |
make check |
Everything that must pass before work is done |
The working agreement defines done as "make check passes". The project scan reports which commands are missing and proposes them, using Makefile.template; it never adds them without asking.
Make is on nearly every macOS and Linux machine. On Windows, use it through WSL, or install it with a package manager.