Fava Trails banner
MachineWisdomAI MachineWisdomAI

Fava Trails

AI community

Description

🫛👣 FAVA Trails — Git-native, curated memory for AI agents via MCP. Draft isolation, promotion gate, thought lifecycle hooks, memory curation protocols, supersession chains.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

[![PyPI](https://img.shields.io/pypi/v/fava-trails)](https://pypi.org/project/fava-trails/) [![License](https://img.shields.io/github/license/MachineWisdomAI/fava-trails)](LICENSE) [![Tests](https://img.shields.io/github/actions/workflow/status/MachineWisdomAI/fava-trails/test.yml?label=tests)](https://github.com/MachineWisdomAI/fava-trails/actions) [![Python](https://img.shields.io/pypi/pyversions/fava-trails)](https://pypi.org/project/fava-trails/) [![Views](https://raw.githubusercontent.com/MachineWisdomAI/fava-trails/traffic/traffic-fava-trails/views.svg)](https://github.com/MachineWisdomAI/fava-trails)

FAVA Trails

**Federated Agents Versioned Audit Trail** — Git-native, curated memory for AI agents via MCP.

Every thought, decision, and observation is stored as a markdown file with YAML frontmatter in a Git repo you control, with crash-proof persistence and a versioned audit trail. Agents interact through [MCP](https://modelcontextprotocol.io/) tools — they never see VCS commands.

Governed recall

FAVA is the governed institutional record for decisions, observations, validation, and lineage. It is not the operational working-context store. Default `recall` and `get_thought` expose current approved records only. Explicit `mode="authoring"` retrieves only the server-configured agent's draft/proposed records; operator-only `mode="history"` selects lifecycle statuses and superseded records. Neither a namespace nor a supplied `agent_id` grants access. See [governed-recall.md](docs/governed-recall.md) for identity setup, compatibility, approval provenance, and interrupted-write recovery.

The operator configures `FAVA_TRAILS_AGENT_ID` on a dedicated process; caller `agent_id` must match it. A shared endpoint is one identity boundary. Configure `FAVA_TRAILS_OPERATOR=1` only on a separate operator-controlled endpoint.

Why

  • Supersession tracking — a proposed correction leaves the original current; approved replacements make predecessors historical. No