Give your coding agent the decisions your team already made — so it stops re-doing things you ruled out.
Lore keeps your team's recorded knowledge — requirements, decisions, designs, roadmaps, and prompts — as typed Markdown in your repo and serves it read-only to Claude Code, Cursor, and Claude Desktop over MCP, so the agent cites your decisions instead of violating them. It is built on RAC — Requirements as Code, the open-source engine underneath; the package, CLI, and MCP server ship under the rac name.
pip install requirements-as-codeRequires Python 3.11+. uv tool install requirements-as-code also works.
Claude Code (from your repo root):
claude mcp add lore -- rac mcpClaude Desktop / Cursor (mcpServers in the client config):
{
"mcpServers": {
"lore": { "command": "rac", "args": ["mcp", "--root", "/absolute/path/to/your/repo"] }
}
}rac quickstart # one command: set up identity + scaffold your first artifact
rac validate rac/ # check every artifact in a directory
rac inspect requirement.md # see its type and completeness
rac review rac/ # full repository review, worst problems first
rac export rac/ --html --out lore-export.html # the Portal, one fileAlready have decisions in Confluence, Notion, or loose Markdown? The rac-import
agent skill turns one existing document into one valid RAC artifact, with
a human-review step before anything is written.
rac skill install rac-import # installs into .claude/skills/ (Claude Code / Cursor auto-discover)Then ask your agent, in plain language: "import this decision doc into RAC"
(paste the text or give a path). The skill reads the real schema with
rac schema, drafts the artifact from only what your document says, and
shows you the proposed type, title, and any relationships to confirm or
correct before it writes a file. It scaffolds with rac new (which mints the
id), then closes on rac validate — and offers fixes if validation fails, so it
never leaves an invalid artifact behind. It is single-document by design; for
multi-format or bulk conversion use the rac-ingest skill.
- Teams running coding agents heavily (Claude Code, Cursor) who are tired of the agent ignoring decisions the team already made.
- Teams who already write ADRs and want those decisions to actually shape what the agent does.
- Anyone who wants the why behind their software versioned alongside the code.
Google's Open Knowledge Format (OKF) standardises the carrier — a Git tree of Markdown with YAML front matter — and is deliberately permissive: an OKF consumer must not reject a bundle for missing fields, unknown types, or broken links. RAC writes that same carrier and adds what OKF leaves to the consumer: write-time enforcement in CI. rac validate and rac relationships --validate reject malformed artifacts, broken or ambiguous links, references to superseded decisions, and relationship edges a type does not support — deterministically, before the knowledge lands. OKF is read-optimised interchange; RAC is write-time enforcement, and rac export --okf turns any RAC repo into a conformant OKF bundle — so the two compose rather than compete.
Full documentation: https://tcballard.github.io/requirements-as-code/
- Quickstart — install and author your first artifact
- MCP server — tools, client configuration, examples
- CLI reference — every command, flag, and exit code
Lore is early and evolving quickly. The MCP server ships today. Contributions, ideas, and experiments welcome — see CONTRIBUTING.md.
MIT