Early Access. Commands and behavior can change between releases.
How context works
Architech doesn’t load everything at once. Each agent gets the context its work needs, at the moment it needs it.The context map
The context map is your project’s table of contents: which repositories exist, what each one does and where things live. Onboarding creates it at the project root. The Orchestrator and the Architect read the whole map when they start, to plan across repositories. An agent dispatched for one task reads only the map’s navigation block: the lines between<!-- architech:nav --> and <!-- /architech:nav -->. That keeps its first load small. A
map without that block, or a project without a map, is a warning, not a stop.
Rules and memory, per repository
Before an agent works in a repository, it loads that repository’s rules and memory. In a monorepo, an agent that changes two packages loads each package’s files separately, so each one is held to its own standards.
A rule name such as
coding-rules means .engineeringrules/coding-rules.md. Repository context is
.memory/repository-context.md, and design-principles is .memory/design-principles.md.
Progressive disclosure
Each command declares the context it needs. Some entries always load; others load only when the task matches their condition. For example, when the Developer runs/implement:
A backend change never loads your design system. A prompt change loads your prompt rules even if
the file sits in an ordinary package.
When a file is missing
A file the repository carries itself always loads. When it doesn’t carry one, Architech decides in this order:1
Your context rules
A declaration for that repository in your context rules decides:
exempt, inherit, require, or follow the code beside the change.
2
The parent's file
With no declaration, a rule or memory file from the nearest parent folder, up to the project
root, stands in.
3
Proceed with a warning
With nothing to inherit, the agent works from the conventions beside the change, records the
gap and recommends an action. See when a file is missing.
design-principles is the exception to step 2. With no declaration, a repository’s design
principles are its own: a parent’s file doesn’t stand in. A declaration that inherits changes that,
including if-missing: inherit written out: with that line in your context rules, every repository
without its own design-principles.md inherits the nearest parent’s. To keep design principles per
repository, leave if-missing out (it defaults to inherit for everything else), and inherit them
only where you mean to, with memory: { design-principles: inherit }.
Only a declared required file stops anything, and then only the code-writing step that needs it.
Reviews never block on missing context: the reviewer reports the gap and still gives a verdict.
Context exemptions
A context exemption declares that a repository doesn’t need a rule or memory file. The agent skips that file without a warning, and records the decision with your reason. Without one, a missing file still proceeds, but with a warning and a recommended action on every run. An exemption turns a recurring warning into a recorded decision.When to use one
What an exemption doesn’t do
- It doesn’t turn off project instructions. The repository’s
AGENTS.md/CLAUDE.mdstill load, following the project-file precedence. There is nouse: <file>option to point at them. - It doesn’t hide a file you have. A file the repository carries still loads.
- The quick exemption doesn’t override
required.exempt: all,rulesormemorynever silences arequireddeclaration from any repository that covers the same folder. A more specific entry’s ownrules:ormemory:setting is different: it wins over a parent’srequired. An entry forpayments/ledgerwithrules: { exempt: [testing-rules] }exempts that folder even whenpaymentsrequirestesting-rules, so keep entries inside a required repository under the same review as therequireditself.
Configure context rules
Where the configuration lives
Declare everything in onecontext: block, laid out by repository:
.architech/factory/factory.yaml— if your project has a Software Factory, put the block alongsiderepos,boards,labelsandtriggers..architech/context-rules.yaml— otherwise, the same top-levelcontext:block in its own file.
AGENTS.md, CLAUDE.md or your onboarding
notes.
The keys
A repository key that isn’t a folder in the checkout names a separate repository. It matches a
checkout whose folder name, or Git origin repository name, is the same. This is different from the
Factory’s top-level
repos list of owner/repo names.
Under rules: or memory: you can write one word for the whole kind, or a mapping. Pick one form
per kind:
Within an entry, a file’s own setting wins over its kind (
rules or memory), which wins over the
quick exempt.
A worked example
A monorepo with a generated Python SDK, an adapter that should followpackages/core, a payments
service with strict standards, and a legacy API whose testing standards are being rewritten:
.architech/factory/factory.yaml, or to .architech/context-rules.yaml if you don’t
use a Factory:
payments shows what required means: the root’s coding-rules.md doesn’t satisfy it. Only
the declaring repository’s own file does; a folder inside payments uses the payments file, unless
its own, more specific entry sets those rules differently. Until the files exist, only the
code-writing step that needs them is held. Planning and reviews continue, and neither a lead’s
one-run instruction nor a quick exempt: all overrides the declaration.
When 2026-12-01 has passed, the legacy-api entry reads as absent and normal lookup resumes, with
a warning if nothing supplies the file. The date applies to the whole entry.
Check the result
Validate a factory file, then ask the resolver what a repository gets:context-rules.yaml. Use the
resolver for that file. For a single repository, declare it under repos: { ".": … } and run the
resolver with --cwd .. Each declared decision prints a line, a sentence and a CONTEXT-HINT/1
record. For sdk-python (excerpt):
0 and loads no content. A missing required file prints CRITICAL, with
"decision":"block", and exits 1. Check the repository, source and decision, not only the exit
code. source is factory for the factory file and repo-file for context-rules.yaml. With
--json, the same record is context_hint and the full decision is context_decision.
Where Architech looks
A file the repository carries always wins. For a missing file, the sources are read in this order; a later source fills only what an earlier one leaves undeclared:ARCHITECH_CONTEXT_RULES— a file with a top-levelcontext:block. In Cloud, the platform sets it for each Factory stage session, including a session that resumes later, with your Factory’s rules. A workspace Environment can’t set it..architech/factory/factory.yaml— the checkout’scontext:block..architech/context-rules.yaml— the repository fallback file.- The parent’s file, where
inherit(the default) applies. - Proceed with a warning, with nothing to inherit.
A lead’s context instruction in a task brief can fill an uncovered gap for one run. It never
removes a
required guard or replaces a file the repository has. Put lasting decisions in your
context rules.Invalid entries approve nothing
An unknown key, a misspelt word such asrequird, or a malformed until makes the whole entry
approve nothing: the resolver warns, names the problem and ignores the entry. Any required
values in it still stand, so a typo can’t grant an exemption. Other entries keep working.
A valid exemption or required without why still applies, with a note. architech factory validate refuses it, so add the reason. approved stays optional.
Move older declarations
If your project still uses inlineContext: records in AGENTS.md / CLAUDE.md, or
ONBOARD-PLAN.json with "memory_rules": "exempt", move the lasting decision into context:. Those
legacy forms still work, with a deprecation note. "memory_rules": "exempt" reads as
repos: { ".": { exempt: all } }. Check the repository with the resolver, then remove the old
declaration.
See the full context reference for every field,
and onboarding for where your intent and setup notes live.
Memory and rules
What belongs in each file, and the warning you see when one is missing.
Project context
How
AGENTS.md and CLAUDE.md load into every session.