How burhan-mujahid/precedent works
Precedent turns team conversations into human-approved, versioned operating rules, then checks agent decisions against those rules before and during execution. The main path is ingest and redact messages, identify Q&A episodes, draft proposals, review them into the rulebook, and resolve agent situations into act/approval/escalation outcomes. Escalations and halts can feed later rule work; drift checks, regression evaluations, packs, exports, and MCP integration are additional capabilities. Several subsystems are documented but unsampled, so their internal links are omitted where evidence is insufficient.
Main entry points: kb.py Precedent API · loop.py Proposal learning loop · runtime.py Decision resolver · store.py Git rulebook files
Components 23
Rule learning
- Chat ingestion
precedent/ingest - Q&A episodes
precedent/ingest/episodes.py - Proposal learning loop
precedent/loop.py
Rulebook and governance
- Precedent API
precedent/kb.py - Git rulebook files
precedent/store.py - Starter rule packs
precedent/packs.py - Drift detection
precedent/drift.py - Regression evaluations
precedent/evals.py - Provider calibration
precedent/calibrate.py - Rulebook exports
precedent/export.py
Agent decisions
- Decision resolver
precedent/runtime.py - Rule retrieval
precedent/retrieve.py - Execution checks
precedent/guard.py
Interfaces and integrations
- CLI commands
precedent/cli.py - Model providers
precedent/llm.py - MCP tools
precedent/mcp.py
Shared foundations
- PII redaction
precedent/ingest/redact.py - Rule reasoner
precedent/reasoner.py - Rulebook configuration
precedent/config.py - Domain records
precedent/models.py
Other components
- Team conversations
- Operator
- AI agent
Connections 32
- Operator → CLI commands: runs commands
README.md - CLI commands → Precedent API: invokes API
precedent/cli.py - Team conversations → Chat ingestion: provides exports
README.md - Chat ingestion → Q&A episodes: normalizes messages
precedent/ingest/__init__.py - Q&A episodes → PII redaction: redacts text
precedent/ingest/episodes.py - Precedent API → Chat ingestion: loads and mines
precedent/kb.py - Precedent API → Proposal learning loop: delegates learning
precedent/kb.py - Proposal learning loop → Rule reasoner: drafts candidates
precedent/loop.py - Proposal learning loop → Git rulebook files: records proposals
precedent/loop.py - Operator → Proposal learning loop: reviews proposals
README.md - Proposal learning loop → Git rulebook files: approves rules
README.md - Git rulebook files → Decision resolver: supplies approved rules
precedent/runtime.py - AI agent → Decision resolver: consults rulebook
README.md - Decision resolver → Rule retrieval: ranks rules
precedent/runtime.py - Decision resolver → Rule reasoner: judges coverage
precedent/runtime.py - Decision resolver → PII redaction: redacts situation
precedent/runtime.py - Decision resolver → Git rulebook files: logs decisions
precedent/runtime.py - AI agent → Execution checks: checks each step
README.md - Execution checks → Git rulebook files: checks and records
precedent/guard.py - Execution checks → Proposal learning loop: halts create gaps
precedent/guard.py - Precedent API → Drift detection: checks rule health
precedent/kb.py - Precedent API → Regression evaluations: runs regression cases
precedent/kb.py - Precedent API → Provider calibration: calibrates decisions
precedent/kb.py - Precedent API → Rulebook exports: exports reports
precedent/kb.py - MCP tools → Precedent API: exposes operations
precedent/mcp.py - Precedent API → Rule reasoner: configures judgement
precedent/kb.py - Rule reasoner → Model providers: requests completions
precedent/reasoner.py - Precedent API → Git rulebook files: opens rulebook
precedent/kb.py - Git rulebook files → Rulebook configuration: loads settings
precedent/store.py - Proposal learning loop → Domain records: uses domain records
precedent/loop.py - Decision resolver → Domain records: produces decisions
precedent/runtime.py - Operator → Proposal learning loop: answers gaps
README.md