1.5 KiB
1.5 KiB
Package: dirigent_fermata
Harness-agnostic policy gate for AI coding agents.
Quick Facts
- Type: Library + binary (
fermata) - Main Entry:
src/lib.rs,src/bin/fermata.rs - Dependencies:
ignore,toml,regex,globset,serde,clap(cli feature) - Status: v0.1 — library + CLI + Claude hook adapter
Layering
Three concentric layers; nothing inner imports from anything outer.
core/— harness-unaware, transport-unaware, sync. Types (Op,Decision),.botignorewalker,botignore.tomlparser,Policy::check/check_command, path extraction. Sync, no tokio.harness/—HarnessAdaptertrait over a normalizedToolCall. Each adapter (Claude, future Codex, etc.) lives in its own submodule, feature-gated.bin/fermata.rs— only place whereclap, stdio, and exit codes appear.
Release Model
Developed in this monorepo; planned to be exported as a standalone repo in the future for advertising / external distribution. Development stays here. See docs/tools/fermata.md.
Dependency Direction
dirigent_tools depends on dirigent_fermata, never the reverse. Fermata must remain usable as a standalone hook/MCP without dragging in the in-process ACP tool runtime.
Out of scope (v0.1)
Codex / Gemini hook adapters, MCP server mode, PostToolUse envelope, readonly_only Bash mode, audit log, filesystem watcher. Each is a future task with its own plan.
See also
docs/tools/fermata.md— Dirigent integration plandocs/workpad/brainstorm/fermata.md— canonical product spec