chore: materialize standalone-repo assets (auto-generated)
ci / test (push) Has been cancelled

This commit is contained in:
2026-05-07 22:39:52 +02:00
parent 14c679541a
commit ca6418bccf
3 changed files with 82 additions and 57 deletions
+15
View File
@@ -0,0 +1,15 @@
name: ci
on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo test --all-features
- run: cargo build --release --features cli
+40 -43
View File
@@ -1,43 +1,40 @@
[package] [package]
name = "dirigent_fermata" name = "dirigent_fermata"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition = "2021"
rust-version = "1.75" rust-version = "1.75"
description = "Harness-agnostic policy gate for AI coding agents (.botignore + botignore.toml)" description = "Harness-agnostic policy gate for AI coding agents (.botignore + botignore.toml)"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
repository = "https://git.g4b.org/dirigence/fermata" repository = "https://git.g4b.org/dirigence/fermata"
readme = "README.md" readme = "README.md"
keywords = ["ai", "agents", "security", "policy", "gitignore"] keywords = ["ai", "agents", "security", "policy", "gitignore"]
categories = ["command-line-utilities", "development-tools"] categories = ["command-line-utilities", "development-tools"]
[lib] [lib]
path = "src/lib.rs" path = "src/lib.rs"
[[bin]] [[bin]]
name = "fermata" name = "fermata"
path = "src/bin/fermata.rs" path = "src/bin/fermata.rs"
required-features = ["cli"] required-features = ["cli"]
[dependencies] [dependencies]
globset = "0.4" globset = "0.4"
ignore = "0.4" ignore = "0.4"
walkdir = "2" walkdir = "2"
toml = "0.8" toml = "0.8"
regex = "1.10" regex = "1.10"
serde = { version = "1.0", features = ["derive"] } serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0" serde_json = "1.0"
thiserror = "2.0" thiserror = "2.0"
clap = { version = "4.5", features = ["derive"], optional = true } clap = { version = "4.5", features = ["derive"], optional = true }
[dev-dependencies] [dev-dependencies]
tempfile = "3.10" tempfile = "3.10"
assert_cmd = "2.0" assert_cmd = "2.0"
predicates = "3.1" predicates = "3.1"
[features] [features]
default = ["cli", "harness-claude"] default = ["cli", "harness-claude"]
cli = ["dep:clap"] cli = ["dep:clap"]
harness-claude = [] harness-claude = []
[lints]
workspace = true
+27 -14
View File
@@ -1,4 +1,4 @@
# dirigent_fermata # fermata
**A fast, harness-agnostic policy gate for AI coding agents.** **A fast, harness-agnostic policy gate for AI coding agents.**
@@ -44,14 +44,14 @@ Out of scope for v0.1: Codex / Gemini hook adapters, MCP server mode, audit log,
## Install ## Install
From source (this monorepo):
```bash ```bash
cargo install --path crates/dirigent_fermata --features cli cargo install --git https://git.g4b.org/dirigence/fermata --features cli
``` ```
This installs the `fermata` binary into `~/.cargo/bin/`. This installs the `fermata` binary into `~/.cargo/bin/`.
Requires a working [Rust toolchain](https://rustup.rs).
--- ---
## Usage ## Usage
@@ -197,18 +197,31 @@ Decision: BLOCK — matched bash deny rule "cat .env*"
--- ---
## Architecture ## Harness support
Three concentric layers; nothing inner imports from anything outer: | Harness | v0.1 |
|---------|------|
- **`core/`** — harness-unaware, sync. Types, `.botignore` walker, `botignore.toml` parser, `Policy::check` / `check_command`, path extraction. | Claude Code (PreToolUse) | Supported — native JSON adapter |
- **`harness/`** — `HarnessAdapter` trait over a normalized `ToolCall`. Each adapter lives in its own submodule, feature-gated. | Codex CLI | Planned |
- **`bin/fermata.rs`** — the only place `clap`, stdio, and exit codes appear. | Gemini CLI | Planned (via MCP server mode) |
| Any shell-based hook | Supported — CLI exit codes |
--- ---
## See also ## About this repository
- `docs/tools/fermata.md` — Dirigent integration plan This is a downstream mirror. Fermata is developed inside the upstream
- `docs/workpad/brainstorm/fermata.md` — full product spec and field notes [Dirigent](https://git.g4b.org/dirigence/dirigent) monorepo and exported here
- `docs/architecture/crates.md` — crate dependency map for standalone distribution. Issues and pull requests are accepted on the
`develop` branch, but the canonical development happens upstream.
---
## License
Licensed under either of
- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE))
- MIT License ([LICENSE-MIT](LICENSE-MIT))
at your option.