A toolkit for the agent-facing documentation of a repository: the coding rules, feature docs and skills that agents read while they work.
Lorecraft keeps that documentation consistent as it grows. A repository declares the shape each kind of document must have, and Lorecraft checks every document against it, locally or in CI. Its agent skills cover the rest, guiding an agent as it writes and reviews those documents.
Installation
With uv, install the lorecraft command as a tool, or run it on demand without
installing it:
uv tool install lorecraft
uvx lorecraft check
To pin it to a uv project instead, add it as a development dependency and run it through the project's environment:
uv add --dev lorecraft
uv run lorecraft check
Or install it in an isolated environment with pipx:
pipx install lorecraft
Confirm which build you are running with lorecraft version. Every command also runs as lc, a shorter
name for lorecraft.
Installing from the Git repository
To run a commit that has not been released yet, install from the repository:
uv tool install "git+https://github.com/lnsd/lorecraft"
pipx install takes the same URL. It builds from the default branch. Append @<tag>, @<branch> or @<commit> to the repository URL to
install a specific revision instead. The version is derived from the repository's git tags, so a build between
two releases reports a development version, such as 0.2.1.dev3+g93b1ed1fb.
Quickstart
Write your coding rules as documents in docs/code/, and describe what a rule document looks like in
docs/__meta__/:
docs/
├── __meta__/
│ ├── code.md # what every rule document looks like, in prose
│ ├── code.header.json # its frontmatter schema
│ ├── code.structure.json # its sections, word caps and token budget
│ ├── code-python.md # narrower rules for the python-* documents
│ └── code-python.structure.json # the sections they must add
└── code/
├── logging.md # governed_by: [code]
├── python-modules.md # governed_by: [code, code-python]
├── python-typing.md # governed_by: [code, code-python]
└── test-functions.md # governed_by: [code]
Keep the rule documents in shape, from the repository root:
lorecraft inspect # which specifications govern which rule document
lorecraft check # check every rule document against them
Then let your agent use them, through the skills: /code-rules loads the rules that apply before it writes code, and
/code-rules-check checks its changes against them. This repository's own docs/code/ is a
working example.
Skills
The skills/ directory holds agent skills that put the rules to work:
- During development,
code-rulesloads the coding rules that apply before the agent writes code, anddocs-rulesdoes the same for your documents. - During review,
code-rules-checkchecks a change for compliance with those same rules, anddocs-rules-checkdoes the same for your documents. - When authoring the rules,
docs-rules-creatorhelps the agent write the specifications that govern your documents.
Install the skills with Vercel's skills CLI:
npx skills add https://github.com/lnsd/lorecraft/tree/main/skills
Or copy them into your agent's skills directory, such as .claude/skills/ or .agents/skills/.
License
Licensed under either of Apache License, Version 2.0 or MIT License, at your option.Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project, as defined in the Apache-2.0 license, shall be dual-licensed as above, without any additional terms or conditions.
Release files for lorecraft 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| lorecraft-0.1.0.tar.gz | 1.8 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lorecraft-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.5 MB
Release files / lorecraft-0.1.0.tar.gz
| Download URL | lorecraft-0.1.0.tar.gz |
|---|---|
| Size | 1.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8dbfdcfc3e2ef54fa648ee4424b18fc5c8e13d07b3f359232743f97689fe7563
|
|
BLAKE2b-256 checksum How to use checksums |
1a7986847ccf1f52b1ee548a33809eac29da351dd34dd6c0af52018fbc006ecb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Manjaro Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / lorecraft-0.1.0-py3-none-any.whl
| Download URL | lorecraft-0.1.0-py3-none-any.whl |
|---|---|
| Size | 1.8 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2e645c4ae0260f108043af0c178e0063df415d4719da9c60091efb840c493987
|
|
BLAKE2b-256 checksum How to use checksums |
3d34861aa733fdae2c1817ebe3bcaf870f43bb26a1c03c29fd609f49143c3b21
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Manjaro Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|