Skip to content
v0.1 · context schema v1 · no network, no AI

Repository context that stays true.

Syngraphe keeps a repository's own context in a small .context/ directory of Markdown, one set of files your team and your coding agents both read. AGENTS.md points the agents at it; syngraphe check verifies the files are there, their references resolve, and the bootstrap block has not been edited.

AGENTS.md+10 −0
# AGENTS.md
<!-- syngraphe:start version="1" -->
<!-- Managed by Syngraphe. Do not edit this block manually. -->
This repository maintains shared project context in `.context/`.
Before substantial work, read `.context/index.md` and the relevant context documents.
Keep that context accurate: when a change makes it out of date, update it in the same change.
If Syngraphe is available, run `syngraphe check` before completing substantial work.
<!-- syngraphe:end -->
## Build
Everything syngraphe init adds to an AGENTS.md you already have. Remove the block and the file is byte for byte what it was.
The position

Project knowledge belongs where the code is.

Architecture notes live in chat threads, conventions live in one person's head, and the reason behind a decision lives nowhere at all. Syngraphe puts that knowledge in the repository, in plain Markdown, where it is reviewed like anything else.

The context is in the repository

`.context/` is committed, reviewed and branched with the code it describes. No external service holds it, and nothing has to be exported before someone else can read it.

Git is the history

Versions, blame and diffs come from the repository itself. There is no second timeline to keep in sync and no database to migrate.

Additive by construction

Syngraphe owns only the text between its markers. Everything else is preserved byte for byte, a hand-edited block is reported rather than overwritten, and running init twice changes nothing.

How it works

Three commands, no surprises.

Each one also answers to the shorthand syg: syg init, syg check.

syngraphe init

Creates .context/ and adds a managed block to AGENTS.md. Run it with --dry-run first to see the exact plan; the real run applies that same plan and nothing else.

syngraphe status

A fast, read-only summary: schema, which context documents exist, how many decisions and history entries, which agents are wired up, and how many findings are open.

syngraphe check

The deterministic checks: structure, manifest, managed blocks, internal references and freshness. Human output by default, --json for CI, --strict to fail on warnings.

The layout

Four kinds of context, separated by lifecycle.

.context/
├── manifest.json
├── index.md
├── truth/
│   ├── architecture.md
│   └── conventions.md
├── state/
│   └── current.md
├── decisions/
│   └── README.md
└── history/
    └── README.md
  • truth/ — what is stably true: architecture, conventions, domain concepts, constraints and invariants.
  • state/ — what is true this week: current focus, recent relevant changes, next steps, blockers.
  • decisions/ — what was decided and why, one Markdown file per decision, including the alternatives that were rejected.
  • history/ — what used to be true: completed or superseded operational context, kept out of the active reading path.
What it gives you

Small tool, strict guarantees.

One bootstrap for every agent

AGENTS.md is the canonical entry point. Claude gets a thin CLAUDE.md import; Cursor and Codex read AGENTS.md natively and get no extra files.

Deterministic checks

Structure, manifest, managed blocks, internal references and context freshness — all offline, all with stable codes you can pin a CI job to.

Plan, then apply

Every modifying command builds a plan, renders it, and applies exactly that plan. `--dry-run` runs the same planner and stops before writing.

Machine-readable output

`syngraphe check --json` emits a versioned payload of findings, and `--strict` turns warnings into a failing build.

Careful with your files

Complete-file writes via temporary file and rename, never outside the Git root, never through a symlink, never into a `.context/` that belongs to something else.

Useful without Syngraphe

If the executable disappears, the repository still has AGENTS.md, .context/, Markdown and Git history. Syngraphe implements the protocol; the protocol does not depend on it.

Start with a dry run.

Syngraphe writes nothing until you have seen the plan. Point it at a repository you already have and read what it proposes.

Syngraphe v0.1.0 · context schema v1 · GitHub