Skip to main content

Context Layers

Overdeck distributes context — engineering rules, project guidance, machine quirks — to the coding-agent harnesses it drives through a layered system. You author small canonical markdown files; pan sync renders Overdeck-owned artifacts that are delivered only when Overdeck launches a managed session. Overdeck never writes native CLAUDE.md, AGENTS.md, or equivalent files.

Canonical terminology

Use these names when adding or moving context; they are the vocabulary the agents themselves are taught: The rendered outputs are managed-session launch artifacts under ~/.overdeck/context/ — never edit those directly. Edit the source layer or rule, then run pan sync.
There is no “global context template”. A request phrased that way means either a bundled rule (every machine) or the global layer (one machine).

The shorthand: “add a <scope> rule”

In practice you (and your agents) only need four phrases — the scope word alone routes the content: After any of them: pan sync, and the change reaches new sessions.

Bundled rules

Overdeck ships engineering rules inside the package under sync-sources/rules/. Each rule carries a scope: frontmatter key:
  • scope: universal — folded into every machine’s rendered global context;
  • scope: dev — folded in only on a overdeck source checkout, for rules about developing Overdeck itself.
Rules ship with pan install and refresh on every pan sync.

Switching a bundled rule off

Every bundled rule is on by default. To switch one off on a machine, name it under context.rules in ~/.overdeck/config.yaml, with the rule’s file basename as the key:
false omits the rule from every rendered launch artifact and the dashboard Context-page preview. Any absent key (or true) leaves the rule on. The map is read when a managed launch is composed, so the new render reaches new sessions only.

What each harness actually reads

Each harness consumes context through its own native mechanism. pan sync keeps inspectable global artifacts and spawn-time plumbing composes one harness-correct launch artifact from global, project, and workspace layers: The claude-global.md / pi-global.md / codex-global.md files are Overdeck-owned render artifacts — the harnesses do not know about them. They exist so the global layer has a stable, inspectable rendered form per harness. The persisted .overdeck/context/workspace.md is harness-neutral and does not contain a pre-rendered project layer. At launch, Overdeck renders the canonical project source for the active harness and combines it exactly once with global rules and workspace-only content. User-authored native files remain entirely user-owned and are still available through each harness’s normal discovery behavior.

Native files are a no-touch boundary

Normal install, sync, startup, workspace, and agent lifecycle paths do not create, edit, clean, back up, delete, or migrate native instruction Markdown. Historical managed regions remain until the user explicitly previews and applies pan context detach --dry-run / pan context detach --apply. When an Overdeck upgrade changes context, hooks, agents, or skills after your last sync, the dashboard shows a Sync now banner. Click it to run the host’s pan sync; the banner clears once the installed package and sync manifest match.

Harness-specific blocks

A layer file targets a single harness with Mustache-style blocks; text outside any block renders for every harness:
Blocks may be stacked to target several harnesses; {{#harness:codex}} is also recognized.

CLI

pan sync runs the context render as part of its broader sync (skills, agents, rules). The dashboard’s Context page edits the same files with per-harness previews.

Changes apply to new sessions only

Harnesses receive their managed context at session startup. After editing a layer and running pan sync, running sessions keep their old context — only newly spawned agents and conversations pick up the change.

Source attribution

Each injected section identifies its canonical source path. Bundled rules are separate from machine context even though both appear in the global render. Claude receives a single composed append-file argument; Codex receives developer instructions. Native user and repository instructions continue to load normally. Existing conversations can retain old instructions in their history; use a fresh session to verify a context cleanup.