Rules Reference
This page covers the eight rules that do not have a page of their own. Autonomy Levels and Blocked Commands are described separately. For how rules load and how updates treat them, see How Rules Work.
| Rule | File | Tier |
|---|---|---|
| Checkpoint Protocol | checkpoint-protocol.md |
Critical |
| Content Defaults | content-defaults.md |
Customisable |
| Decomposition | decomposition.md |
Standard |
| Engine Protection | engine-protection.md |
Critical |
| File Conventions | file-conventions.md |
Standard |
| No Permission Prompts | no-permission-prompts.md |
Standard |
| PDF Processing Scale | pdf-scale.md |
Standard |
| State Validation | state-validation.md |
Standard, managed by PRIMA Project Management when installed |
All eight files are in .claude/rules/.
Checkpoint Protocol
Section titled “Checkpoint Protocol”Multi-step skills pause for your input in one of three standard formats, so every pause looks and works the same way.
| Checkpoint | When it appears | Your options |
|---|---|---|
| Review | After Claude produces something you need to approve | Approve, Revise (say what to change), or Reject |
| Decision | When there are several valid approaches and you choose | Pick an option, ask for more detail, or propose something else |
| Action | When you must do something Claude cannot, such as send an email, upload a file or approve a payment | Say when it is done, say you cannot do it now, or ask for help |
A Review checkpoint shows a short preview of under 20 lines, with the full output written to disk. Claude never skips a checkpoint to save time. A skill with no natural pause point needs no checkpoint, and the format changes only how Claude pauses, not what the skill does. To adjust checkpoint behaviour, create .claude/rules/custom-checkpoint.md.
Content Defaults
Section titled “Content Defaults”This rule sets the language, tone and formatting Claude uses in everything it writes for you.
| Setting | Placeholder in the shipped file |
|---|---|
| English variant | [UK_OR_US_ENGLISH] |
| Grammar conventions | [UK_OR_US] |
| Default tone | [TONE_DESCRIPTION] |
| Formality | [FORMALITY_LEVEL] |
| Email style | [CLIENT_EMAIL_STYLE] |
/setup fills in the English variant. The tone, formality and email style placeholders stay until you replace them, so open the file and write your own values, for example “Professional but approachable” for tone. The rule also sets client documents as formal, allows bullet points in internal notes, and asks Claude to proofread every output and use the terminology in .claude/company/industry.md.
This is a customisable file. Your edits survive /update through a three-way merge. See Configuration.
Decomposition
Section titled “Decomposition”Before building anything reusable, or starting a task of any size, Claude decides what kind of thing the work should be. It picks the cheapest option that fits.
| Option | What it is | Use when |
|---|---|---|
| Tool inline | Claude calls one of its tools directly | One action with a small result |
| Script | A Bash or Python script in Infrastructure/Scripts/ |
The same mechanical operation over many items |
| Skill | A SKILL.md workflow |
A method worth following the same way every time |
| Subagent | Work handed to an agent with its own context window | Independent work whose raw material would crowd the main conversation |
The rule gives Claude four tests. When it is about to repeat a tool over three or more items, it writes a script. A habit of the form “always do X before Y” becomes a skill. If the work is independent and bulky, it uses an agent, and several agents run in parallel, each returning a file path and a one-line summary. If an agent’s answer would be one number or one fact, Claude does the work itself.
Engine Protection
Section titled “Engine Protection”AI Business OS separates engine files, which it owns and updates, from your own files. The engine manifest, .claude/engine-manifest.json, lists every engine file and its tier.
| Tier | Manifest list | Can you edit it | What /update does |
|---|---|---|---|
| 1, Critical | critical |
No. A hook blocks Claude, and the update discards changes you make by hand | Replaces it. settings.json is merged instead |
| 2, Customisable | userCustomisable |
Yes, you are expected to | Three-way merge |
| 3, Standard | the rest of engineFiles |
Yes, with care | Three-way merge |
| Your files | neverTouch |
Yes, they are yours | Never touched |
The critical files are the framework file, the engine manifest, the suite registry, settings.json, four rules (Autonomy Levels, Blocked Commands, Checkpoint Protocol and Engine Protection) and five scripts in Infrastructure/Scripts/ (the two guards, the update script, the hook installer and the pre-commit hook). The customisable files are every skill except creating-skills, the reference files of processing-pdfs, both agents, and the Content Defaults rule. Your own files include .claude/CLAUDE.md, the six company files, the project register, integrations.json and every domain CLAUDE.md.
The three-way merge. The update compares three copies of a file. These are the published copy of the version your workspace runs, your copy, and the new published copy. Changes to different lines are both kept. Changes to the same lines produce conflict markers for you to resolve. If the published copy of your version cannot be found, the latest backup in .claude/engine-backups/ is used instead. If neither exists, the update overwrites changed files, lists them as “no merge base” and keeps the earlier copies in .claude/engine-backups/.
What breaks the merge. Renaming or moving an engine file means the update cannot find it and creates a fresh copy beside yours. Deleting one means the update recreates it.
Before an engine file is edited. When you ask Claude to edit a file in the manifest, it first tells you in a sentence or two what happens to the change at the next /update. For a critical file, it tells you the edit is blocked and offers a companion file instead. When a change alters how the engine itself works, such as project numbering or the register structure, Claude also tells you it may span several files, and that an add-on is the supported route where one covers the need.
Engine Health. /status and the status-report skill run bash Infrastructure/Scripts/update-engine.sh --health. It compares each critical file with the published copy for your version and changes none of your files. settings.json counts as intact while it still holds every engine permission and hook.
PRIMA-managed files. Some base commands and files have fuller versions in PRIMA Project Management, among them /day, /night, /status, /newproject and the state schema. Without PRIMA Project Management, /update merges them like standard files. With it installed, /update skips them and PRIMA Project Management’s own update manages them.
File Conventions
Section titled “File Conventions”This rule decides where files go and what they are called.
| Type | Location |
|---|---|
| Project work | Domains/NN Domain/{ID} {Project Name}/ |
| Client work | Domains/01 Clients/[Client-Name]/ |
| Standing material for a business function | Domains/NN Domain/NN.M Subfolder/ |
| Projects spanning three or more domains | Domains/99 Cross-Domain/{ID} {Project Name}/ |
| Templates | Documentation/Templates/ |
| Reports and analyses | Documentation/Reports/ |
| Scripts | Infrastructure/Scripts/ |
| Completed projects | Archive/{ID} {Project Name}/ |
See Folder Structure and Domains.
Naming.
- Project folders. The project ID, a space, then the name in Title Case, such as
P012 Spring Workshop. - Client folders. Title Case with hyphens, such as
Harbour-Lane-Interiors. - Structural files. Uppercase with no date, such as
CLAUDE.md,README.mdandPRD.md. - Working files. The creation date, then the name in Title Case with hyphens and no spaces, such as
2026-10-14-Spring-Workshop-Agenda.md. - Skill folders. A hyphenated gerund, such as
drafting-documents. - Rules, agents and commands. Lowercase and hyphenated.
The conventions apply to new files only. Claude does not rename existing files, because that can break links and scripts.
Reference subfolders. When Claude adds a subfolder inside a domain, it takes the next number in sequence, such as 02.6 after 02.5, and adds a row to the domain’s CLAUDE.md. Numbers are never reused, and gaps are left as they are.
Heavy files. PDFs, Office documents, images, video, audio and datasets over 1MB stay on your cloud storage. Claude must not create files in the repository root, or in .claude/ unless you tell it to.
No Permission Prompts
Section titled “No Permission Prompts”When you tell Claude to edit, change, update or remove something in a workspace file, the instruction is the permission. Claude does it straight away. It does not say “I’ll make that change” and wait, show you a diff for approval, or ask “shall I?”.
This applies to every file in the workspace, including state files, commands, skills, rules, scripts and documentation. The only exceptions are Level 4 items under Autonomy Levels, such as client-facing documents being sent, financial figures and contracts. A direct instruction overrides the autonomy level for the file you named, because the levels govern what Claude does unprompted.
Critical engine files are still protected. The engine guard hook blocks Claude’s edit tools from changing them, whatever you ask, and Claude offers a companion file instead.
PDF Processing Scale
Section titled “PDF Processing Scale”Before reading any PDF, Claude checks its size and page count and places it on a five-level scale.
| Scale | Size | Pages | Approach | Summary to disk |
|---|---|---|---|---|
| 1 Trivial | Under 1MB | Under 10 | Read directly | No |
| 2 Small | 1 to 5MB | 10 to 50 | Read directly, write a summary | Yes |
| 3 Medium | 5 to 20MB | 50 to 200 | Read 20 pages at a time | Yes, after each chunk |
| 4 Large | 20 to 50MB | 200 to 500 | Split with qpdf, then read in chunks |
Yes, after each chunk |
| 5 Massive | Over 50MB | Over 500 | Split with qpdf and use parallel agents |
Yes, each agent writes its own |
When size and page count give different levels, the higher level applies. At Scale 3 and above, Claude reads the first five pages to find the structure and then reads only the relevant sections. It works from the file path, never an attachment. To change the scale, create .claude/rules/custom-pdf-scale.md. See processing-pdfs.
State Validation
Section titled “State Validation”This rule protects the project register, .claude/state/state.json, every time Claude writes to it.
- Claude backs up the register first with
Scripts/backup-state.sh. - Claude checks that the new content is valid JSON.
- Claude writes the file.
- Claude runs
Scripts/validate-state.sh. - If validation fails, Claude restores the backup and reports the error.
The rule also sets these standards.
- Project IDs. An ID is never reused, even after the project is archived, and its meaning never changes.
- Status. Only
in-progress,paused,overdueandarchived. A paused project needs apausedReason, and every other project has none. - Continuity fields.
stoppedAtrecords where work stopped andlastActionthe last completed action./nightsets both. - Session history. New entries go at the start, existing entries are never changed or deleted, and the list holds the current calendar month. Earlier months move to the monthly archive in
.claude/state/history/.
If the register does not exist, Claude tells you and does not create one. A missing schema file does not stop the check, because Claude still checks the JSON. If the backup script is missing, Claude warns you and continues. See State Files and Validation for the register’s fields, how IDs are formed and how to restore a backup.

