seiso
A Markdown convention and linter for project docs written by AI and read by humans and agents.
AI writes project docs faster than anyone can review them, and coding agents read those docs back as context for the next change. People and agents alike take the page at its word, so a stale version number or a field list updated in only one of its three copies misleads all of them. And AI makes the same few mistakes over and over.
seiso defines one convention for how Markdown in a repository is organized,
the way rustfmt settled formatting for Rust code. Projects share the rules
instead of negotiating their own; each project mainly maps its documents to
kinds, and seiso init suggests a starting point.
The convention
- Every document declares one kind, such as
howto,reference, oradr, and holds only what that kind is for. A how-to gives the steps. Why the design looks this way belongs in an ADR. - Each fact has one home. Other pages link to it instead of retelling it.
- Long-lived pages don't record values that change faster than the page, such as versions, deployment status, or counts.
- A pointer names a file or symbol, so the reader doesn't have to search for what the sentence promised.
- The finished page doesn't address whoever asked for it or narrate how it was made.
- Judgment calls a tool can't make are written down with a reason. An exception without one is itself a violation.
seiso's rules check documents against this convention; stable rules run by default, and the rest are opt-in previews. Each diagnostic says where the problem is and how to fix it, so an agent can repair most findings from seiso's output alone. When a fix needs a judgment, such as which of two pages owns a fact, the diagnostic names the decision. seiso doesn't guess whether prose sounds machine-written, and it leaves formatting and spelling to other tools. The convention defines each kind's contract and the evidence a diagnostic can claim.
Install
cargo install seiso
uv tool install seiso # or: pipx install seiso
npm install -g @scarletkc/seiso
The PyPI and npm packages include prebuilt binaries for macOS on Apple silicon
and Intel, Linux x64 and arm64 with glibc, and Windows x64. On other platforms,
including musl-based Linux such as Alpine, use cargo; the PyPI package also
works there but builds from source, which requires a Rust toolchain. From a
source checkout, run cargo run -- <command>.
Quick start
From the repository root:
seiso init
seiso check
seiso init writes a seiso.toml at the repository root with suggested
exclusions and kind mappings; review them before relying on the results.
seiso check runs only stable rules, which have met the
promotion criteria.
The other rules are in preview: they are experimental, can report false
positives, and run only with --preview. Try them locally before relying on
them, and keep them out of CI gates. seiso rule --all lists every rule with
its status, seiso rule <CODE> explains a rule with examples, and seiso parse
inspects the document model without running rules.
Documentation
- Checking documents: configuration, rule selection, and output formats
- Integrations: Claude Code hooks, pre-commit, and CI
- Development: building, testing, and validation commands
- Architecture: command execution
- Roadmap: proposed features and milestone evidence
- Documentation index: guides, references, and evaluation records
- Contributing: issues, branches, commits, and pull requests
License
seiso is licensed under MIT.
Metadata
Release files for seiso 0.2.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 | |
|---|---|---|---|
| seiso-0.2.0.tar.gz | 106.3 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| seiso-0.2.0-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| seiso-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| seiso-0.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | Python 3 | none | Linux glibc 2.17+ ARM64 | Details |
| seiso-0.2.0-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| seiso-0.2.0-py3-none-macosx_10_12_x86_64.whl | Python 3 | none | macOS 10.12+ x86-64 | Details |
Total release size: 11.5 MB
Release files / seiso-0.2.0.tar.gz
| Download URL | seiso-0.2.0.tar.gz |
|---|---|
| Size | 106.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
94891476a0034db74dacdbd0f7d2924771dd2a19810f1a6a4a3c16d4c13b5ba5
|
|
BLAKE2b-256 checksum How to use checksums |
3a87a1531177ed3047f2e63facb0977b47d4033eada15bac66e7018d71532cd6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency logRelease files / seiso-0.2.0-py3-none-win_amd64.whl
| Download URL | seiso-0.2.0-py3-none-win_amd64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
972b734ce9ac6f728af71d68ee264718df66fe7b22274521d4f204ab49ad1e31
|
|
BLAKE2b-256 checksum How to use checksums |
fa5803f3a67b7385e5c39feaaa01b91902b91d7d84a3702ca071c0e754e1f449
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency logRelease files / seiso-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | seiso-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
08c8c3dd3a3f495c1617e021ac4560df5803897222897c813c73fa452d244b1d
|
|
BLAKE2b-256 checksum How to use checksums |
e4b135b23ea87468d4bbdd1e7e6110839e3660eea911396d104543f84938ab02
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency logRelease files / seiso-0.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | seiso-0.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
44aa7757892f4b937429249dcf733ec01398ebab355b3ea690171f15163e3a34
|
|
BLAKE2b-256 checksum How to use checksums |
9a68359c830ae02d4b8abf8059d34380592bf6ab6c56c43f06e5e8634c33cfd0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency logRelease files / seiso-0.2.0-py3-none-macosx_11_0_arm64.whl
| Download URL | seiso-0.2.0-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b48cd4bb3cd92d462fa6c6a904f900e9f23bafb6982d543f76c39fdbe060ed00
|
|
BLAKE2b-256 checksum How to use checksums |
0a53bc0d9f5d2f762a2a517c4fbc386542e9127826f180931e8b1ddf2087d163
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency logRelease files / seiso-0.2.0-py3-none-macosx_10_12_x86_64.whl
| Download URL | seiso-0.2.0-py3-none-macosx_10_12_x86_64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | Python 3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
69a644d2230a0658f42ed034d74c92c3e3ca9168d948c2fed6e1ba6aadb42b90
|
|
BLAKE2b-256 checksum How to use checksums |
4ebe90efbd4c08f960f7fc4b9a70d63b6e8d764faaec92867edfdb053cdcf14d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency log