Skip to content

Scenario: team repository

Several people work in one repository, and you want every one of them, and CI, to get the same Cratis guidance. Commit it with the code.

Run cratis ai install in the repository root, select the harnesses, profiles, and languages the repository needs, then review and commit the result.

PathWhat it carries
.cratis/ai.jsonThe selected harnesses, profiles, and languages.
.cratis/ai/Cratis-managed rules, skills, prompts, agents, and hooks, plus anything you add.
.cratis/ai.manifest.jsonThe source commit, and each managed file’s source identity and installed hash.
Harness adaptersSymbolic links or configuration entries pointing to .cratis/ai.

A configuration can select more than one harness and profile:

{
"schemaVersion": "1.0",
"harnesses": ["claude", "codex", "pi"],
"profiles": ["cratis/application/csharp", "cratis/documentation"],
"languages": ["csharp", "typescript"]
}
  • One source. Harness integrations point to .cratis/ai; they do not carry diverging skill folders.
  • Reviewable updates. An update is a diff in a pull request. Run cratis ai update --dry-run first to see what will change.
  • Protected edits. The manifest hashes every managed file. Update and uninstall stop before changing anything if one was edited locally.
  • Your own extensions. Local rules and skills under .cratis/ai are never claimed, deleted, or overwritten by Cratis.

To catch hand edits to managed guidance in CI, run cratis ai status; it exits non-zero when a managed file was modified.