cordance-emit
Target emitters for the Cordance compiler. Each emitter consumes the same
CordancePackIR and writes a deterministic, fence-aware file.
Part of the Cordance workspace.
Discoverability
Search terms: Cordance emitters, AGENTS.md generator, CLAUDE.md generator, Cursor rules, Codex AGENTS, MCP context, axiom harness target, symlink-safe writes, fenced regeneration.
What it does
Implements the TargetEmitter trait for every Cordance output target:
| Emitter | Writes |
|---|---|
AgentsMdEmitter |
AGENTS.md |
ClaudeMdEmitter |
CLAUDE.md |
CursorEmitter |
.cursor/rules/*.mdc |
CodexEmitter |
.codex/AGENTS.md, agents/codex/AGENTS.md |
HarnessTargetEmitter |
pai-axiom-project-harness-target.json |
PackJsonEmitter |
.cordance/pack.json |
EvidenceMapEmitter |
.cordance/evidence-map.json |
Every emitter:
- Refuses to follow symlinks / Windows reparse points via
cordance_core::fs::safe_write_with_mkdir(POSIXis_symlink+ WindowsFILE_ATTRIBUTE_REPARSE_POINT, ancestor walk included). - Merges fenced regions (
<!-- cordance:begin <key> -->) so hand-edits outside fences survive regeneration. - Sanitises target-controlled strings before fence interpolation so a
hostile
cordance.tomlcan't inject fake fence markers. - Validates authority-bearing structures (
AxiomProjectHarnessTargetV1) at construct time, not just on the deserialise path.
Install
[]
= "0.1"
= "0.1"
Quick start
use Utf8PathBuf;
use ;
use ;
use SourceLock;
use AdviseReport;
use schema;
let repo_root = from;
let pack = CordancePack ;
let outputs = AgentsMdEmitter.emit.expect;
for out in &outputs
See also
- Cordance project README
cordance-core— defines theCordancePackIR + fence helpers.cordance-cli—cordance packorchestrates every emitter.
License
Dual-licensed under MIT OR Apache-2.0.