tidy-harness
Opinionated agent harness conventions for Rýni: one source of truth, discoverable docs, and focused instructions.
Rules
| ID | Kind | Convention |
|---|---|---|
| TIDY001 | Check | Keep every AGENTS.md at or below 250 lines. |
| TIDY002 | Check | Make each CLAUDE.md a symlink to its adjacent AGENTS.md. |
| TIDY003 | Check | Give documentation directories a README.md index. |
| TIDY004 | Check | Keep local Markdown links and heading references valid. |
| TIDY005 | Check | Make documentation reachable from the root AGENTS.md. |
| TIDY006 | Check | Keep installed skills untracked and Git-ignored. |
| TIDY007 | Review | Resolve contradictory instructions. |
| TIDY008 | Review | Keep one authoritative source for guidance. |
| TIDY009 | Review | Keep documentation aligned with implementation. |
| TIDY010 | Review | Give skills task-specific triggers. |
| TIDY011 | Review | Keep skills focused, or route to supporting workflows. |
| TIDY012 | Review | Explain when references are relevant. |
| TIDY013 | Review | Keep instructions necessary and actionable. |
Reviews require cited evidence and specific corrections. They account for scope, exceptions, and contextual examples; they do not edit files or execute documented commands. Missing evidence or unfinished coverage is reported as incomplete.
Scope
All rules target the repository. Nested AGENTS.md and CLAUDE.md files are included.
A CLAUDE.md is optional, but must point to the adjacent existing AGENTS.md if present.
Documentation means Markdown under any docs/ directory. Each docs/ root and
subdirectory containing Markdown, directly or below it, needs an index. Asset-only
subdirectories do not. Standalone website content is outside this scope.
Link validation also covers AGENTS.md and Markdown under locally owned skills/
directories. It parses CommonMark inline links, reference links and images, ignoring
code examples. Markdown fragments use GitHub-style heading IDs, including duplicate
heading suffixes, explicit {#id} headings, and HTML id/anchor name attributes.
Custom renderer-generated IDs and raw HTML links are not validated. Absolute web
routes, external URLs and links outside the repository are not checked.
Reachability starts at the root AGENTS.md, follows Markdown links (including links
through other repository Markdown files), and treats directory links as links to
README.md. Images do not establish reachability. Every in-scope documentation file
must be reachable. A repository with no documentation needs no entry point for this rule.
Scans skip Git-ignored files; installed .agents/skills/, .claude/skills/, and
.github/skills/; and directories named .git, .venv, venv, node_modules,
__pycache__, .pytest_cache, .ruff_cache, dist, build, _build, site,
fixtures, testdata, or generated. Directory symlinks are not traversed.
Reading a document symlink outside the repository reports an error rather than
silently claiming a completed check.
TIDY006 checks existing installation directories, including nested scopes. It checks both Git's index and ignore behavior, so adding an ignore pattern alone does not hide already tracked files. Without Git metadata, this rule is skipped. The other checks still work outside Git repositories.
Install and run
Version 0.1.1 adds the rules above and requires Rýni 0.1.1 or later in the 0.1 series. The original tidy-harness 0.1.0 release contained no rules.
uv add --dev 'ryni>=0.1.1,<0.2' 'tidy-harness>=0.1.1,<0.2'
uv run ryni check .
The CLI runs the six deterministic checks and prepares seven agent reviews.
Use the ryni-check skill in an agent with sub-agent support to complete reviews,
asking it to use uv run ryni. To run only deterministic checks, add
--deterministic explicitly.
Development
This package is versioned independently under packages/tidy-harness/.
From the repository root:
uv run --with-editable . --with ./packages/tidy-harness pytest packages/tidy-harness/tests
uv build packages/tidy-harness --out-dir packages/tidy-harness/dist
Metadata
Release files for tidy-harness 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| tidy_harness-0.1.1.tar.gz | 10.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tidy_harness-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.2 kB
Release files / tidy_harness-0.1.1.tar.gz
| Download URL | tidy_harness-0.1.1.tar.gz |
|---|---|
| Size | 10.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1be273a9996d12be106c7e8247b95aa21b43d33c0c7e9bbe3110fd6f2913a35a
|
|
BLAKE2b-256 checksum How to use checksums |
88953ca15ba232f2716d52c2ef3491840ce82f159cb31148ce97bb5ff300dd96
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","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 / tidy_harness-0.1.1-py3-none-any.whl
| Download URL | tidy_harness-0.1.1-py3-none-any.whl |
|---|---|
| Size | 10.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
aae2a08abbac719e4b23a212dc7234649f19fcabecf25dcaf9494909e842923d
|
|
BLAKE2b-256 checksum How to use checksums |
d6f02150ae6dfe789f21bda8602f2ce38f30ad3f4bfe1926f74a06c3e8ad34a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for tidy-harness 0.1.1
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.