Skip to main content

Local AI agent guardrails for FDE and CI — evidence spine, policy DENY, fail-closed quality gates

Project description

HyoDo

Local AI agent guardrails for FDE work and CI — audit evidence, policy DENY, fail-closed quality gates.

Not a pre-commit clone. HyoDo helps Forward Deployed Engineers and AI-assisted teams prove what ran, block unauthorized tools, and absorb your existing tests/linters without replacing them.

Review signals never grant automatic approval. Unobserved is never green.

CI PyPI Python License

Why HyoDo (vs pre-commit alone)

Need HyoDo
Agent step audit trail event record.hyodo/agent-events.jsonl
Tool / path / step policy policy check (ALLOW / DENY; missing = exit 2)
Keep existing CI tools BYOG init absorbs pytest/ruff/npm/go/…
Fake-green resistance fail-closed score + SKIP ≠ PASS
Air-gapped / on-prem loopback dashboard, offline-safe design

pre-commit + ruff is still excellent for hooks. HyoDo adds agent evidence + policy gates + honest measurement for FDE deployment defense.

Start here (any repository)

pipx install hyodo
cd your-project
hyodo safe                 # early-warning scan, no setup
hyodo safe --strict        # exit 1 on high-severity findings
hyodo safe --json          # machine-readable findings for CI
# GitHub Actions
- run: pipx install hyodo
- run: hyodo safe --strict --json

hyodo safe is an early-warning scanner, not a full security audit.

Bring your own gates (optional)

hyodo init                 # detect tools → write .hyodo/gates.toml
hyodo check                # run absorbed gates
hyodo dashboard --open     # local evidence panel (127.0.0.1)

init reads tooling you already own (pytest/ruff/mypy/pyright, npm scripts, go.mod, Cargo.toml, Makefile targets). It does not reinvent them. Empty detection → commented starter (no guessing). Malformed or zero executed gates → exit 2 (not a pass).

Agent evidence spine (opt-in FDE)

hyodo event validate --file step.json
hyodo event record --file step.json --root . --policy .hyodo/policy.toml
hyodo policy check --file step.json --config .hyodo/policy.toml
hyodo schema check --schema agent.schema.json --payload step.json --json

Default storage is digest-only. DENY is recorded for audit; the caller must stop the agent — HyoDo is a gate, not a runtime interceptor. Examples: examples/fde-evidence-spine/.

schema check validates a local JSON payload deterministically. It returns 0 for valid, 1 for a schema violation, and 2 when the schema or payload cannot be observed or trusted. --json emits structured reasons for tools.

Optional local MCP stdio

pip install 'hyodo[mcp]'
hyodo mcp stdio --root .

This starts a local standard-input/output MCP process only. It wraps the existing safe, check, event record, and policy check CLI contracts for the configured host workspace. It does not open a network listener or give a client access to files outside that workspace.

Optional private-network MCP

hyodo mcp serve --bind tailscale --bind-ip 100.99.88.77 \
  --token "$HYODO_MCP_TOKEN" --root .

This explicit connector binds only to the supplied Tailscale 100.64.0.0/10 address and requires a non-empty bearer token before it listens. It serves the host workspace only; a second device must be on the same private network and does not gain access to its own unrelated files. Public listeners are not supported.

Engineering map (branding kept, terms first)

DevSecOps label Pillar Measured by
Static types Truth (眞 / 진) Command gate (typechecker)
Tests + safety Goodness (善 / 선) Tests + safe
Lint / format Beauty (美 / 미) Command gate (linter)
Public surface Benevolence (仁 / 인) Native AST scan
Data privacy Hyo (孝 / 효) Native consent/data scan
Audit trail Yeong (永 / 영) .hyodo/history.jsonl

Command gates are absorbed tools. AST / ledger pillars are never shell-faked. Missing sources show Not measured. Fail-closed geometric mean (HYOGOOK V5 formula, philosophy V6 labels): any pillar at 0 collapses the review signal. Detail: PHILOSOPHY.md.

Local instrument panel

hyodo dashboard --open
# → http://127.0.0.1:8768

Loopback only; 15s poll of /api/evidence; no composite invention. Measure again now is token-protected.

Install

Python 3.10+. pip install -U hyodo or pipx install hyodo. See Quick Start.

Commands

Command Purpose
hyodo safe Safety findings (early warning)
hyodo init Write .hyodo/gates.toml (BYOG)
hyodo check Absorbed gates or checkout preset
hyodo event … Agent event validate / record
hyodo policy check Agent policy ALLOW / DENY
hyodo schema / eval / report Local validation, eval, evidence report
hyodo mcp stdio Optional local MCP CLI adapter
hyodo mcp serve Explicit loopback or authenticated Tailscale MCP adapter
hyodo score … Optional review signal
hyodo dashboard Local evidence panel

safe: 0 findings · 1 high+--strict · 2 bad path. check: 0 all executed PASS · 1 FAIL · 2 none/malformed. event/policy: 0 ok/ALLOW · 1 invalid/DENY · 2 unobserved. schema check: 0 valid · 1 validation error · 2 unobserved input.

Scope

Surface Status
hyodo/ package and CLI Public release surface
tests/ and CI workflows Release verification

Model-agnostic ≠ language-agnostic. Export PDF audit packs and full runtime interceptors are roadmap items — not claimed shipped.

For contributors

git clone https://github.com/lofibrainwav/HyoDo.git && cd HyoDo
python -m venv .venv && source .venv/bin/activate
python -m pip install -e ".[dev]" && ./.venv/bin/hyodo check

Documentation

License

HyoDo is available under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hyodo-4.8.0.tar.gz (115.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hyodo-4.8.0-py3-none-any.whl (65.8 kB view details)

Uploaded Python 3

File details

Details for the file hyodo-4.8.0.tar.gz.

File metadata

  • Download URL: hyodo-4.8.0.tar.gz
  • Upload date:
  • Size: 115.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for hyodo-4.8.0.tar.gz
Algorithm Hash digest
SHA256 c43654fd2c541879a0165c16e401e51a2148220b666ab6e4967e5dae229b56ed
MD5 051b8f431c17f2a1db6c57e7dd737a95
BLAKE2b-256 961a77fd52f3b8dd69f528933bb536a991f38e47934ebcd4e1070945aba9f0b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for hyodo-4.8.0.tar.gz:

Publisher: publish.yml on lofibrainwav/HyoDo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hyodo-4.8.0-py3-none-any.whl.

File metadata

  • Download URL: hyodo-4.8.0-py3-none-any.whl
  • Upload date:
  • Size: 65.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for hyodo-4.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6376c4ed3bd1a88d00b0e91f17de0b165b4f3b6b42ece0949be447f0756ad0f0
MD5 8899e4ac7d54372090e993815d9f8c49
BLAKE2b-256 84d3262132058254fef25ccbb42d5dcd0393b7d8863a00189ad84d7da8db7136

See more details on using hashes here.

Provenance

The following attestation bundles were made for hyodo-4.8.0-py3-none-any.whl:

Publisher: publish.yml on lofibrainwav/HyoDo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page