Skip to content
Get AI Business OS

Rules Reference

AI Business OS

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/.

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.

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.

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.

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.

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.md and PRD.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.

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.

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.

This rule protects the project register, .claude/state/state.json, every time Claude writes to it.

  1. Claude backs up the register first with Scripts/backup-state.sh.
  2. Claude checks that the new content is valid JSON.
  3. Claude writes the file.
  4. Claude runs Scripts/validate-state.sh.
  5. 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, overdue and archived. A paused project needs a pausedReason, and every other project has none.
  • Continuity fields. stoppedAt records where work stopped and lastAction the last completed action. /night sets 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.