What's new in ARDS v5.2
SurfDoc is now the native format of the standard. CONTEXT.surf is the canonical root context, every .context/ document is a typed SurfDoc, and Markdown remains a fully conformant alias for any project that declares it.
SurfDoc-native context
v3.1 added .surf as an option. v5.2 makes it the format of the standard and demotes Markdown to a declared alias. Nothing is removed, and no existing project is invalidated.
Canonical root
CONTEXT.surf is the canonical root context filename. A project may keep CONTEXT.md by declaring the .md format — it stays conformant at every tier.
Native .context/ tree
Knowledge docs, guides, agent configs, skills, plans and checkpoints are typed SurfDoc files with validated frontmatter.
Alias resolution
Tooling resolves .surf first and falls back to .md. A tool that reads only one of the two extensions is non-conformant.
Exactly one root
Two root context files are two edit surfaces with no merge rule. Carrying both is a lint failure, not a style preference.
Version-aware defaults
An omitted format field resolves by manifest version — .surf at 5.2 and above, .md below it. Upgrade nothing and nothing breaks.
New lint rule
A manifest declaring the .surf format while carrying a Markdown root now warns: the declared format and the file on disk disagree.
Why the format is the standard's business
ARDS has always specified structure and left rendering to the reader. SurfDoc is not a rendering choice — it is a typed format with validated frontmatter, which is what makes relevance hooks, version stamps and a reliable block-level parse enforceable rather than conventional. Declaring the native format is how the standard stops specifying a contract it cannot check.
| Capability | SurfDoc root | Markdown root |
|---|---|---|
| Root context | ✓ | ✓ |
| Core injection with hash stamp | ✓ | ✓ |
| Generated harness files | ✓ | ✓ |
| Validated frontmatter | ✓ | — |
| Relevance hooks scored by the rubric | ✓ | partial |
| Block-level parse a generator can rely on | ✓ | — |
7 document types
Each type has a distinct purpose, mutability pattern, and read frequency. Agents load them at different times to manage context window usage.
| Type | Location | Mutability | Read Frequency |
|---|---|---|---|
| Root Context | CONTEXT.surf | Updated weekly | Every turn |
| Agent Config | .context/agents/*.surf | Stable | On dispatch |
| Skill Config | .context/skills/*/SKILL.surf | Stable | On invocation |
| Knowledge Doc | .context/docs/*.surf | Updated on change | On demand |
| Guide | .context/guides/*.surf | Living (grows) | On demand |
| Plan Doc | plans/*/.surf | Immutable | On demand |
| Research Doc | research/*/ | Versioned | On demand |
The v5 line
v5.2 is the third release in the guaranteed-context line. The guarantees below carry forward unchanged.
Core Injection Contract
A root file that merely points at the context is non-conformant. The rules live in the file the harness actually loads, stamped so drift is detectable.
Harness Binding Profiles
Generate enforcement configuration — hooks, always-apply rules, launcher prompt composition — not merely documents.
Write-Path Contract
No durable fact may be recoverable only from agent-local memory. Memory is a pointer; the tree is the source.
Relevance Hooks
answers: frontmatter moves connections from inference to lookup, and propagates into generated index views.
Conformance Linting
Three tiers — guaranteed, injected, discovered — with CI exit codes. A project's tier is the minimum across its platform matrix.
Workspace Push Channel
The workspace Core rides the MCP server instructions field, reaching connected agents regardless of vendor, machine, or file layout.
Fully backward-compatible
A valid v5.1 project is a valid v5.2 project. A Markdown-rooted project stays conformant for as long as it declares the .md format.
- 1
Bump the version30 sec
Change
versionin surfcontext.json from "5.1" to "5.2" - 2
Choose a format30 sec
Set
"format": ".surf"to adopt the native format, or".md"to pin the alias explicitly - 3
Rename the root2 min
Rename CONTEXT.md to CONTEXT.surf with SurfDoc frontmatter and the
## Coresection intact - 4
Rename the .context/ tree10 min
Move docs, guides, agents, skills and plans to the .surf extension
- 5
Re-run sync1 min
Generated harness root files pick up the new source path and re-stamp the Core
- 6
Lint30 sec
Confirm no both-roots failure and no format-mismatch warning
Ready to upgrade to v5.2?
Backward-compatible by design. Declare a format, rename the root, re-run sync.
Get Started Full Specification