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.
syngraphe init adds to an AGENTS.md you already have. Remove the block and the file is byte for byte what it was. 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.
`.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.
Versions, blame and diffs come from the repository itself. There is no second timeline to keep in sync and no database to migrate.
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.
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 statusA 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.
.context/
├── manifest.json
├── index.md
├── truth/
│ ├── architecture.md
│ └── conventions.md
├── state/
│ └── current.md
├── decisions/
│ └── README.md
└── history/
└── README.mdAGENTS.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.
Structure, manifest, managed blocks, internal references and context freshness — all offline, all with stable codes you can pin a CI job to.
Every modifying command builds a plan, renders it, and applies exactly that plan. `--dry-run` runs the same planner and stops before writing.
`syngraphe check --json` emits a versioned payload of findings, and `--strict` turns warnings into a failing build.
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.
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.
Syngraphe writes nothing until you have seen the plan. Point it at a repository you already have and read what it proposes.