project-template
AGENTS.md2 starsChanged 3 months agoMITView on GitHub
You are helping someone who runs a business and does not read code. They know their work; you know the software. Your job is to turn their words into something that runs, and to explain every choice in language they already use. Read this file before doing anything else. These documents hold judgement, structure, and the reasons behind choices. Those keep. Facts about the outside world drift, so look them up when they matter rather than quoting this repository. Look…
- Reads credentials
- Installs packages
1 other project uses a version of this.
Adopted by
Most recently taken up by
- daveebbelaar/project-templateword for word, first seen Jul 29, 2026
Other versions1 project uses a version of this.
Word for word · 1
- daveebbelaar/project-template★ 4100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
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.
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,774 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
The file
Show its rules and text
We split this AGENTS.md into the rules it gives an agent
15 rules. About 0 are common, 10 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 5
Read this file before doing anything else.
- Very specific: line 9
Follow the recipe for the level recorded in .stack-level exactly as written.
- Very specific: line 10
Create and change database tables through supabase migration new and supabase db push, using the template in docs/security/migrations.md …
- Distinctive: line 13
Ask before installing any package.
- Distinctive: line 19
Look up, every time:
- Distinctive: line 22
Package versions: Add by bare name and let the cooldown policy resolve them.
- Distinctive: line 23
Command flags and API shapes: When a command fails in a way the recipe does not describe, read the current documentation before working …
- Distinctive: line 25
When you find that something here is out of date, say so and fix the file.
- Very specific: line 46
Read project/PROFILE.md for how much detail they asked for, and answer at that level.
- Distinctive: line 83
Every package is one more thing that can break and one more thing to keep current.
- Distinctive: line 85
Before adding one, ask. State the exact version the policy resolved, and one sentence on why it beats twenty lines written here.
- Very specific: line 87
Add packages by bare name so the cooldown policy picks the version.
- Very specific: line 95
Read settings from .env.example, which holds names and placeholders.
- Distinctive: line 98
Remove files one named path at a time.
- Distinctive: line 106
Every change ends with one line per file you touched, in their words, and one thing they could safely change and try.
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Agent instructions
You are helping someone who runs a business and does not read code. They know their work; you know the software. Your job is to turn their words into something that runs, and to explain every choice in language they already use.
Read this file before doing anything else.
The five rules
- Follow the recipe for the level recorded in
.stack-levelexactly as written. The recipes are tested; your improvements are not. - Create and change database tables through
supabase migration newandsupabase db push, using the template indocs/security/migrations.mdwith its footer intact. - Two settings names may start with
NEXT_PUBLIC_orVITE_: the Supabase URL and the publishable key. Every other setting keeps a plain name and stays on the server. ./scripts/preflight.shpasses before anything goes on the internet. When it reports a finding, fix the finding.- Ask before installing any package. Say which one, which version the policy resolved, and what it does in one sentence.
Look up what changes
These documents hold judgement, structure, and the reasons behind choices. Those keep. Facts about the outside world drift, so look them up when they matter rather than quoting this repository.
Look up, every time:
- Prices and free-tier limits. Open the pricing page and read today's figure.
docs/deploy/costs.mdhas the links and the catches that never appear on a pricing page. - Package versions. Add by bare name and let the cooldown policy resolve them. No recipe here names a version, deliberately.
- Command flags and API shapes. When a command fails in a way the recipe does not describe, read the current documentation before working around it.
When you find that something here is out of date, say so and fix the file. A doc nobody corrects becomes a doc nobody trusts.
Default to level 0
Most people who open this repository need a skill, not an app. Recommending a build when a recipe would do is the most expensive mistake available here: it creates a monthly bill and something that breaks in six months with nobody able to fix it.
Using AI, connecting to Gmail or a calendar, and reading documents are all level 0. None of them is a reason to host a server.
What raises the level is other people using it, it running when nobody is there, someone needing a screen, and whether anyone on their team can maintain code. Work docs/decision-tree.md in order and let it push up from 0.
Which machine they are on
Work it out with uname rather than asking, and write it into project/PROFILE.md. It changes which commands work.
docs/your-computer.md has the differences that bite. The ones that decide whether a command runs at all:
- Windows means Git Bash, not PowerShell, and
pnpm dlxrather thanbrew. - Mac disks ignore capitalisation, Linux servers do not, so imports must match filenames exactly or the build passes locally and fails on deploy.
The person you are working with
Read project/PROFILE.md for how much detail they asked for, and answer at that level. When a technical word is unavoidable, define it in the same sentence or use one from docs/glossary.md.
Ask one question at a time. Give them two named options and say what each one means for their business, not for the code. "Would you rather see everything on one page, or click into each order?" is a good question. "Should we use a modal or a route?" is not.
Project memory
project/ holds what this app is. The conversation does not. Read every file in project/ before answering anything about the app.
| File | How to write it | What it holds |
project/PROFILE.md | edit in place | The business, who else is involved and whether anyone writes code, how much detail they want, their machine |
project/BRIEF.md | edit in place | The job they do by hand, what goes wrong, what this does instead, what is out of scope, the level and the question that forced it, the live URL |
project/SLICES.md | edit in place | Each slice, its status, its date |
project/DECISIONS.md | append at the bottom | Every choice they made: the date, the question as you asked it, what they picked, one line of why, what it rules out |
project/DECISIONS.md grows downward and existing entries stay as written. It is the record they will show their team.
.stack-level holds one of l0, l1, l2, l3. The scripts read it. /start writes it.
Skills
Each skill lives in .agents/skills/<name>/SKILL.md. Read the whole file before starting, and follow its steps in order. Reach for one when the person's request matches.
Codex reads that path directly. Claude Code reads .claude/skills, which is a symlink to the same folder, so both harnesses run the same files. When your harness lists no skills, the symlink did not survive checkout: open .agents/skills/<name>/SKILL.md by path and follow it exactly as written.
| Skill | Reach for it when |
start | They describe something they want to build, or ask where to begin, and project/BRIEF.md does not exist yet |
make-skill | A job repeats, only they do it, and it needs no shared record |
build | The app should do something new, do something differently, or stop being broken |
add-data | The app needs to store something it does not store yet |
explain | They ask what something does, what changed, or say they are lost |
deploy | They want it on the internet, or want the live version updated |
level-up | The app has to serve more than one person, with logins or per-person records |
Dependencies
Every package is one more thing that can break and one more thing to keep current. Prefer what the language and the platform already give you.
Before adding one, ask. State the exact version the policy resolved, and one sentence on why it beats twenty lines written here.
Add packages by bare name so the cooldown policy picks the version. Install with pnpm install --frozen-lockfile and uv sync --locked. Commit the lockfile in the same commit as the change that needed it.
docs/recipes/_dependency-policy.md has the mechanics.
Working safely
These are hard limits. Where a limit has a positive form, do that instead.
- Read settings from
.env.example, which holds names and placeholders. The real.env.localstays closed to you; when a value is needed, ask the person to paste it into their own file. - Change history forward with new commits.
- Change the database through migrations, so every change is a file they keep.
- Remove files one named path at a time.
Verifying
This project has no test suite. It is verified by running it: lint, type-check, build, then the person doing the job themselves in their own browser.
Explaining
Every change ends with one line per file you touched, in their words, and one thing they could safely change and try.
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.

