Always-Loaded Policy Block Standard (v1.1)¶
A standard for Cloto-family projects whose product value depends on an AI agent
behaving correctly without being asked. The project's skill MUST be able to
generate a small, marker-wrapped policy block into the file the user's
client loads on every session: CLAUDE.md for Claude Code and Claude Desktop,
AGENTS.md for Codex and Cursor, a workspace instructions file for VS Code
(§2.1).
Status of this document¶
Pilot. This standard is piloted in cpersona (the same pilot model as
the Release Lifecycle Standard): every rule
below is exercised by the cpersona-memory skill before family-wide
adoption. Canonical home: this repository, while the pilot runs.
v1.1 (2026-09-05) generalises the target from CLAUDE.md to whichever file
the client loads every session, and adds rule 7 (client neutrality). The rules
are otherwise unchanged, and the file keeps its historical name so that
existing links resolve.
1. Motivation¶
A skill is loaded conditionally and probabilistically: whether it activates
in a given session depends on the conversation. The client's always-loaded
instructions file (CLAUDE.md, AGENTS.md, …) is loaded deterministically,
in every session.
Products like a memory server live or die on the agent calling their tools proactively — recall at session start, store on decisions, archive at session end. A rule that fires only when a skill happens to activate cannot carry that guarantee.
The fix is a promotion from probabilistic to deterministic. The skill — which the user does invoke at install time — writes the product's operating policy into the user's always-loaded file. The skill remains the detailed manual; the policy block is the small resident kernel that makes the agent open the manual at the right moments.
2. Applicability¶
The unit of adoption is the independent repository, meaning a project
published as its own repository. Independence is a necessary condition:
monorepos, and servers vendored inside them (clotohub-servers, for example),
are out of scope of this standard entirely. Private repositories are exempt.
Every Cloto-family independent public repository MUST record a verdict in the table below (§5):
- Applicable — correct end-user experience depends on agent-side behaviour that must persist across sessions. The repository MUST ship a skill, and that skill MUST include a policy-block generation task conforming to §3.
- N/A — no such behaviour exists (specifications, libraries, curated lists, products with their own agent middleware). Recorded with a reason.
2.1 Targets¶
The block goes into the file the user's client loads on every session. The client, not the standard, names that file. The rules below are the same for each:
| Client | User-level default | Project-level alternative |
|---|---|---|
| Claude Code / Claude Desktop | ~/.claude/CLAUDE.md |
./CLAUDE.md |
| Codex CLI | ~/.codex/AGENTS.md |
./AGENTS.md at the repository root |
| Cursor | User Rules (a setting, not a file) | .cursor/rules/<product>.mdc with alwaysApply: true, or ./AGENTS.md |
| VS Code (Copilot) | per the client's custom-instructions documentation | .github/copilot-instructions.md, or ./AGENTS.md with chat.useAgentsMdFile enabled |
A client not listed here is in scope whenever it loads a file into every session. The skill that runs inside a client knows which one it is in and picks the row. A reader on a client with no skill support pastes the block by hand.
3. Requirements for the generation task¶
An applicable repository's skill MUST offer to persist the policy, and the generated block MUST satisfy all of the following:
- Consent — the skill MUST show the exact block and get the user's approval before writing. Never modify a user's always-loaded file without telling them.
- Placement — the default target is the user-level file of the client in
use (
~/.claude/CLAUDE.md,~/.codex/AGENTS.md, … — §2.1), because the products this standard covers are cross-project infrastructure. The project-level file MUST be offered as the scoped alternative. - Idempotency — the block is wrapped in versioned markers:
<!-- BEGIN <product>-policy vN (managed by the <skill-name> skill) -->
...
<!-- END <product>-policy -->
On re-run, a block whose BEGIN marker is already present is replaced in
place, never appended twice. Content outside the markers is never touched.
The markers are HTML comments, which every target treats as Markdown; in a
Cursor .mdc rule, the block follows the frontmatter.
4. Size budget — at most 40 lines between the markers. The budget
exists to force selection, not to forbid substance. Baseline operations (an
obvious store, an explicit recall) work with no block at all, so every line
must earn its place by changing what the agent does by default.
Explanations, setup and troubleshooting stay in the skill, referenced by a
one-line pointer. The file is paid for in every session, so respect the
user's context window.
5. Versioning — bump vN whenever the block content changes. On re-run the
skill upgrades an older-versioned block, with consent, per rule 1.
6. Language — the block is written in English only.
7. Client neutrality — the block MUST NOT assume one client. A line that
applies only to some clients is written conditionally ("if this client keeps
a memory file that loads every session …"), so the same block is correct
wherever it is pasted. The skill, not the block, knows which client it is
running in.
4. What belongs in a policy block¶
The test for every line: would the agent already do this without the block? If yes, cut it. The block's job is to reproduce the quality of life of a well-tuned operator environment — the reference here is the maintainer's own setup — not to restate behaviour the agent performs anyway.
Include: the stable identity the agent should use (agent_id, for example);
the mandatory triggers with concrete natural-language fire conditions (the
phrases that should cause a tool call — this is what the agent gets wrong
without a policy); the non-obvious craft that separates a good deployment from
a default one (pre-computing summaries so storage is synchronous, passing real
history, lock discipline for critical rules, update-not-recreate for rule
changes); the degraded and error behaviour the user must not miss; and a
minimal maintenance cadence.
Exclude: install steps, tool references, configuration tables, prose rationale. That is the skill's job.
5. Applicability table¶
| Repository | Verdict | Notes |
|---|---|---|
| cpersona | Applicable (pilot) | Memory triggers must fire proactively; block generated by the cpersona-memory skill. |
| CEmbedding | Applicable | Block generated by the cembedding skill: embedding-server liveness + degraded-recall runbook. |
| ClotoCore | N/A | The kernel is its own agent middleware; end users do not drive it through an instructions file. |
| mgp-spec / mgp-rs | N/A | Specification / library — no agent-side behavior to persist. |
| awesome-mcp-servers | N/A | Curated list. |
| clotohub-servers | Out of scope | Monorepo — fails the independence precondition. |
New independent repositories add a row here at creation time.