Skip to main content

Crate cordance_emit

Crate cordance_emit 

Source
Expand description

Target emitters. Each emitter consumes the same CordancePack IR and writes a deterministic, fence-aware file.

Every emitter:

  • Refuses to follow symlinks / Windows reparse points via cordance_core::fs::safe_write_with_mkdir (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.toml can’t inject fake fence markers.

§Golden path

use camino::Utf8PathBuf;
use cordance_core::advise::AdviseReport;
use cordance_core::lock::SourceLock;
use cordance_core::pack::{CordancePack, PackTargets, ProjectIdentity};
use cordance_core::schema;
use cordance_emit::{TargetEmitter, agents_md::AgentsMdEmitter};

let repo_root = Utf8PathBuf::from(".");
let pack = CordancePack {
    schema: schema::CORDANCE_PACK_V1.into(),
    project: ProjectIdentity {
        name: "my-project".into(),
        repo_root: repo_root.clone(),
        kind: "rust-workspace".into(),
        host_os: "linux".into(),
        axiom_pin: None,
    },
    sources: vec![],
    doctrine_pins: vec![],
    targets: PackTargets::all(),
    outputs: vec![],
    source_lock: SourceLock::empty(),
    advise: AdviseReport::empty(),
    residual_risk: vec!["claim_ceiling=candidate".into()],
};

let outputs = AgentsMdEmitter.emit(&pack, &repo_root).expect("emit AGENTS.md");
for out in &outputs {
    println!("wrote {} ({} bytes)", out.path, out.bytes);
}

Modules§

agents_md
AGENTS.md emitter.
claude_md
CLAUDE.md emitter.
codex
.codex/AGENTS.md + agents/codex/AGENTS.md emitter.
cursor
.cursor/rules/*.mdc emitter.
evidence_map
Evidence map emitter. Writes .cordance/evidence-map.json — the deterministic map from rule/output ID to the doctrine, ADR, schema, or scan anchor that produced it.
harness_target
pai-axiom-project-harness-target.v1 JSON emitter.
pack_json
.cordance/pack.json IR emitter.

Enums§

EmitError

Traits§

TargetEmitter
Trait every target emitter implements.