Skip to content

One briefing file — AGENT_SYSTEM.mdsynthesized once per plan, read by every agent first. Enforced by a hook. One source of truth; one orientation cost; one consistent baseline.

Pattern

Shared Briefing Document

The failure mode

Three agents. Same codebase. Three different mental models.

Each agent rediscovers independentlyN paraphrases

Agent Agreps →"auth is the core layer"

Agent Bgreps →"data is the core layer"

Agent Cgreps →"invents its own convention"

Conventions drift within a single plan. Same source, three paraphrases, three incompatible outputs. Agent C's code doesn't integrate with Agent A's.

Shared briefing, read first1 synthesis

Agent Areads →AGENT_SYSTEM.md

Agent Breads →AGENT_SYSTEM.md

Agent Creads →AGENT_SYSTEM.md

One baseline. All agents start aligned. Paraphrase is impossible when everyone reads the same bytes. Convention drift can't happen mid-plan.

How it's built

Synthesized once. Written before any agent spawns.

The planner reads the raw sources and writes one consolidated briefing.

Raw sources

05-tdd.output.md

CLAUDE.md

ARCHITECTURE.md

CONSTRAINTS.md

PATTERNS.md

👤

PLANNER

📘

AGENT_SYSTEM.md

one file · one plan

Raw sources are authored for humans, spread across files. The briefing is the distilled agent-consumable version, written once per plan.

The hook that makes it mandatory

Agents can't skip it. Write/Edit is blocked until it's read.

Reading the briefing isn't a convention. It's a gate.

Agent spawn

receives task with requiredReads[0] = AGENT_SYSTEM.md

Agent tries

Edit("src/auth.py") → BLOCKED by context-gate.sh

Agent reads

Read("AGENT_SYSTEM.md") → logged

Agent tries

Edit("src/auth.py") → ALLOWED

PreToolUse:Write/Edit — the gate fires before any write, blocks until the briefing is logged as read. Not a suggestion. Not documented best practice. A hook.

What the briefing contains

Six required sections. Missing one = rejected.

AGENT_SYSTEM.md

agent-system-gate.sh

✓Project Overview

What is being built and why.

✓Architecture

Key files, module boundaries, entry points. Enough to orient without opening files.

✓Conventions

Naming patterns, file structure, code style in use.

✓Constraints

What must never change, what's off-limits.

✓Vocabulary

Project-specific terms, abbreviations, domain concepts.

✓Current State

What phase we're in, what's complete, what's in progress.

Missing sectionagent-system-gate.sh rejects the write. Structural validation, not prose review.

Why these sections

They cover the Core Four axes of any agent conversation.

Context-pollution happens when any one of the four is left implicit. AGENT_SYSTEM.md makes all four explicit before the agent starts.

CONTEXT

which files to read; what not to change

MODEL

which Claude variant; which thinking mode

PROMPT

role, constraints, expected output format

TOOLS

which tools available; any restrictions

The irreducible axes of any agent conversation. If the briefing under-specifies one of them, agents improvise — and the improvisation is where drift starts.

Don't confuse with

Briefing vs Task description.

Scope

Shared baseline — true across ALL tasks

One task — true for this task only

Contents

Architecture, conventions, constraints

Which files, which symbols, acceptance criteria

Lifetime

Whole plan

One task run

Function

Orients the agent

Directs the agent

Agents read both. Neither substitutes for the other — orientation without direction is ungrounded; direction without orientation invents its own context.

The discipline

Orientation is a shared resource, not private work.

N agents rediscovering the same architecture is N paraphrases and N inconsistencies. One briefing, written once, consumed N times, enforced by a hook — and the plan produces coherent output instead of a composite of conflicting mental models.