Zenrei
by pikonori
README.md
# Zenrei(前例)
> "That proposal? There's a precedent." — Decision memory for AI-driven development.
AI agents don't remember past discussions. They keep re-proposing designs you rejected weeks ago. Zenrei records your decisions — accepted, rejected, deferred — as Markdown in your repos, and serves them to every AI agent (Claude Code / Cursor / CI) over MCP. When an agent re-proposes a rejected design, `check_proposal` stops it.
- **git-native** — decisions live in *your* git. Zenrei indexes and serves; it never owns your data
- **Humans decide** — agents can only file drafts (`pending`); only a human can accept or reject
- **Deterministic & light** — no LLM calls, no API key, works offline (Japanese-aware bigram BM25). With 1,000 decisions, responses stay ~1,800 chars / 44ms — your prompts never bloat
🌐 How it works: https://zenrei.karakurio.com ・ Operations guide: https://zenrei.karakurio.com/guide
## Quick start
```bash
claude mcp add zenrei --scope user -- npx -y zenrei --root /path/to/repo1 --root /path/to/repo2
```
For English tool responses, append `--lang en` (default is Japanese; or set `ZENREI_LANG=en`).
Add three lines to each repo's CLAUDE.md (agent instructions):
```markdown
## Decision memory (zenrei)
- At session start, call get_context (scope: this repo) to load decided matters
- Before proposing designs or policies, call check_proposal
- File new decision points with record_decision (humans approve)
```
Decision file format: [docs/decision-format.en.md](docs/decision-format.en.md)(日本語: [docs/decision-format.md](docs/decision-format.md))
## Tools (fixed at five)
| tool | role |
|---|---|
| `check_proposal` | Match a proposal against past decisions — "rejected on 2026-07-08, because …" |
| `search_decisions` | Search by keyword / status / scope / date range |
| `record_decision` | File a decision draft (`pending`; humans approve) |
| `list_pending` | List drafts and deferred decisions |
| `get_context` | A digest of relevant decisions for session start |
## Repository layout
- `src/` — local MCP server (stdio)
- `packages/core/` — parsing / matching / formatting
- `packages/cli/` — the [`zenrei`](https://www.npmjs.com/package/zenrei) npm package
- `docs/` — decision format spec (EN / JA)
The hosted version (GitHub App, cross-repo timeline, approval UI, PR gate) is operated separately: https://zenrei.karakurio.com
## Development
```bash
npm install
npm run build
npm test
```
---
## 日本語
Zenrei(前例)は、AI駆動開発のための意思決定メモリです。採用・却下・保留の決定をリポジトリ内のMarkdown(`decisions/*.md`)で管理し、MCP経由で全AIエージェントに配ります。エージェントが却下済みの設計を蒸し返したら `check_proposal` が止めます。
- git-native: 決定はあなたのgitの中。データを人質に取りません
- 決定するのは人間: AIが起票できるのは承認待ち(pending)まで
- 決定論的照合: LLM不使用・APIキー不要・オフライン動作。決定が増えてもプロンプトは太りません
導入は上のQuick startのとおり。仕組み: https://zenrei.karakurio.com / 使い方: https://zenrei.karakurio.com/guide / 決定フォーマット仕様: [docs/decision-format.md](docs/decision-format.md)
## License
MIT
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues