Syngraphe keeps repository context in a small, Git-native .context/ directory of Markdown shared by both humans and coding agents. AGENTS.md points agents to it, while syngraphe check verifies the context is structurally intact: required files exist, references resolve, and the managed bootstrap block has not drifted.
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. As the context grows, stats measures it, and truth, decision, state and history add documents to it.
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 changes no repository contents or Git state.
`syngraphe check --json` emits a versioned payload of findings, and `--strict` turns warnings into a failing build.
Complete files staged beside their destination. A new file never replaces an existing one, and a patch never overwrites an edit made after planning. 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.