The project config file is the agent's long-term memory for this project — which tools have been confirmed, which are pending evaluation, and a running audit trail. Three local tools manage it.
File shape
{
"version": "1.0",
"project": {
"name": "my-saas",
"language": "TypeScript",
"framework": "Next.js"
},
"tools": {
"confirmed": [
{ "name": "Prisma", "layer": "database", "version": "6.2.0" },
{ "name": "Auth.js", "layer": "auth", "version": "5.0.0-beta.29" }
],
"pending_evaluation": [
{ "name": "Drizzle", "layer": "database", "reason": "alternative to Prisma" }
]
},
"audit_log": []
}Initialising the file
The first call to toolcairn_init creates the scaffold automatically — there's no separate "init project config" tool to call. From then on, agents read and update the file with the two tools below.
read_project_config
Parses the current config, validates the schema, and returns confirmed, pending_evaluation, and stale lists (stale = confirmed but last-seen > 30 days).
update_project_config
Mutates the config with add/remove/update operations on tools and evaluations. Every change is recorded in audit_log for traceability.
Agent pattern
- Start of session:
read_project_configto load context. - After a stack decision:
update_project_configto record the pick. - Periodically:
update_project_configto flippending_evaluationentries toconfirmed.