From cairn
Use to maintain the project profile at docs/project-profile.md — declarative statement of the project's values, risk tolerance, security posture, quality bar, and contribution norms. Triggers when the project settles a stance on a cross-cutting concern (e.g., "we don't mock databases in tests", "pre-1.0, no backwards-compat shims", "security posture is paranoid about injection"). Tracked in git; shared with all contributors. Updated in-place as part of normal PR workflow, NOT synthesis of individual sessions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cairn:build-project-profileThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Maintain the **project profile** — a declarative statement of
Maintain the project profile — a declarative statement of what this project values, stands for, and how it makes tradeoffs. Unlike the user profile (synthesis of observations), the project profile is negotiated consensus — the team's agreed stances, written declaratively.
../../ bypass incident").build-user-profile).docs/architecture.md or similar;
link from the profile.Always docs/project-profile.md in the project root, tracked
in git. Not configurable — the whole point is it's shared
history every contributor sees.
If the file doesn't exist when this skill is first invoked,
bootstrap from templates/project-profile.md and commit it as
part of the PR that introduces the first real stance.
Declarative, not observational. The user profile captures "the user tends to prefer X"; the project profile says "this project values X."
Each section has a fixed shape; consult the template for what belongs where. Typical update sequence:
last-synthesised: in the frontmatter.The project profile is consumed by several other cairn skills:
cairn-autonomous-round / -loop — reads Risk
tolerance to cap the autonomy menu. A "Conservative"
project caps at L1 even if the user's global preference is
L2.cairn-review-phase — reads Security posture to pin
the security pass as mandatory with specific tools, not
just a generic check.autonomous-planner sub-agent — reads the profile to
filter candidate tasks by the project's risk posture.This means keeping the profile up-to-date pays off directly in every autonomous cycle. If you find yourself repeatedly explaining "but this project is more conservative than that," that's a signal to update the profile.
Each section should stay under ~10 bullets. If a section keeps growing, move the detail to a dedicated document:
docs/architecture.mddocs/threat-model.md or
docs/testing/threatmodel.mddocs/style-guide.mddocs/testing/philosophy.mdLink from the project profile; don't duplicate.
Invoked optionally from cairn-close-session:
For projects adopting cairn mid-life, the first project-profile pass is an intentional exercise, not an accidental accumulation. Sit with a maintainer and fill in each section from scratch. The template has comments to prompt the right questions. Don't copy another project's profile — these stances are project-specific.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub foobarto/cairn --plugin cairn