Docs / The generated project / ai-project.config.json
ai-project.config.json
The saved selection, the generator version, and the fingerprints. Check it into git — it is what makes every later command possible.
{
"generatorVersion": "1.0.0",
"selection": {
"aiTools": ["cursor", "claude"],
"target": "mobile",
"mobile": "expo",
"backend": "supabase",
"auth": "supabase-auth",
"analytics": ["posthog"],
"testing": ["jest"]
},
"generated": { "docs/setup.md": "<hash>", "…": "…" }
}What reads it
Command
What it uses the file for
add
Loads the selection, adds one module, regenerates
upgrade
Regenerates against today's templates without changing the selection
implement
Looks up which technology answers the feature's category
review
Knows the exact stack, so findings are stack-aware
analyze
Notices it exists and points at review — then runs its own pass anyway
Editing it by hand
→aiTools is the field you are most likely to edit — add a tool, then run upgrade.
→Editing selection directly works, but add and add --replace exist so you do not have to.
→Never edit generated. Those hashes are what protect your hand-edited files.
Replay it anywhere
--config regenerates the identical project from this file. Combined with deterministic output, that means two machines produce byte-identical results.