CLI for managing .rhidoc/ specification workspaces
Project description
Rhidoc
Rhidoc is a CLI for agentic documentation management. Rhidoc is short for rhizomatic documentation, a single body of context growing in all directions. A docs workspace managed by rhidoc can accelerate spec-driven development and eliminate the ambiguity between project requirements and source code that leads to hallucinations.
Quick start
pip install rhidoc
rhidoc init
rhidoc init creates the docs workspace structure, with instructions for agents provided by the docs themselves as well as optional skills.
Rhidoc at a Glance
Here's a snippet of rhidoc's own docs structure:
$ rhidoc tree
.rhidoc
├── 00-codex -- Codex
│ ├── 00-index -- Codex
│ ├── 01-about -- About This Workspace
│ ├── 02-maintenance -- Maintenance
│ ├── 03-conventions -- Conventions
│ └── 04-ai-retrieval -- AI Retrieval Patterns
├── 01-architecture -- Architecture
│ ├── 00-index -- Architecture
│ ├── 01-script-pipeline -- Reconciliation Architecture
│ └── 02-design-patterns -- Design Patterns
│ ├── 00-index -- Design Patterns
│ └── 01-python-for-ai -- Python for AI Agents
├── 02-product-design -- Product Design
│ ├── 00-index -- Product Design
│ ├── 01-workspace-scripts -- Workspace Scripts
│ │ ├── 00-index -- Workspace Scripts
│ │ ├── 01-workspace-scripts -- Rhidoc Docs API — Design
│ │ ├── 02-invariants -- Workspace Invariants
│ │ ├── 03-properties -- Property Catalog
│ │ └── 04-errors -- Error Catalog
│ ├── 02-cli-user-flow -- CLI User Flow
The key part is a DocRef; for example, doc02.01.03 resolves to the path .rhidoc/02-product-design/01-workspace-scripts/03-properties.md. The format is readable for humans, gives context to an LLM, and enables deterministic operations.
Doc development loop
- Ahead of code generation, a human starts a session with a coding agent to make necessary docs.
- The agent loads rhidoc skills and
MANIFEST.mdinto its context, which lets it cheaply locate relevant docs. - The agent briefs the human on the status of relevant docs.
- The human inputs design decisions in natural language to the agent.
- The agent updates the docs with deterministic
rhidoccommands. - Finally, the agent
rhidoc regenerateupdatesMANIFEST.mdfor the next session.
Sidecars
Some context is highly structured and is an awkward fit in a prosaic markdown file. Rhidoc provides sidecars. You can write scripts that verify your sidecar specs. For example, you can write inventory of screens in a mobile app in doc02.01-screens, a concept inventory in doc01.03-concepts, and then a script that verifies that every concept-action has an affordance somewhere in your app. Through this, design flaws are surfaced early, and coding agents have access to verified, unambiguous context.
More information at WORKSPACE.md (WIP).
Installation
Requires Python 3.10+. Install via pip:
pip install rhidoc
Or install for development:
pip install -e .
Usage
rhidoc init # create a new .rhidoc/ workspace
rhidoc create doc01.03 # add a doc entry
rhidoc move doc01.03 doc02.01
rhidoc regenerate # rebuild MANIFEST.md
rhidoc tree # print workspace structure
rhidoc ai-skill # print full command reference for AI agents
Run rhidoc --help for the complete command list.
Tests
make test
License
AGPL-3.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rhidoc-0.5.0.tar.gz.
File metadata
- Download URL: rhidoc-0.5.0.tar.gz
- Upload date:
- Size: 328.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f6d7ddded40f4679cf6a3e524a5ce639a6ead52fb67065ceda4de19b4c9d036f
|
|
| MD5 |
14fdbc1411b740676bdaa36247f4e772
|
|
| BLAKE2b-256 |
7307d0acde45fa7b6f1ecc354c9c2fe38c6d151f80873dd5a7dac5855ac75ebc
|
Provenance
The following attestation bundles were made for rhidoc-0.5.0.tar.gz:
Publisher:
publish.yml on saxonthune/rhidoc
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rhidoc-0.5.0.tar.gz -
Subject digest:
f6d7ddded40f4679cf6a3e524a5ce639a6ead52fb67065ceda4de19b4c9d036f - Sigstore transparency entry: 1940154924
- Sigstore integration time:
-
Permalink:
saxonthune/rhidoc@f77841900bb8d2f5f143e41a6a33cee1da5f7b55 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/saxonthune
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f77841900bb8d2f5f143e41a6a33cee1da5f7b55 -
Trigger Event:
push
-
Statement type:
File details
Details for the file rhidoc-0.5.0-py3-none-any.whl.
File metadata
- Download URL: rhidoc-0.5.0-py3-none-any.whl
- Upload date:
- Size: 94.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49b0c3ad601529902aa7892aae01575566251191019a0c58e064d1b37d744bac
|
|
| MD5 |
4da19053a572088139decf6f0ecd0d1e
|
|
| BLAKE2b-256 |
173ea41e6aed7a00f9e10c580607d927e1fe3d2d810d1deda9cd8a987c3c17c3
|
Provenance
The following attestation bundles were made for rhidoc-0.5.0-py3-none-any.whl:
Publisher:
publish.yml on saxonthune/rhidoc
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rhidoc-0.5.0-py3-none-any.whl -
Subject digest:
49b0c3ad601529902aa7892aae01575566251191019a0c58e064d1b37d744bac - Sigstore transparency entry: 1940155038
- Sigstore integration time:
-
Permalink:
saxonthune/rhidoc@f77841900bb8d2f5f143e41a6a33cee1da5f7b55 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/saxonthune
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f77841900bb8d2f5f143e41a6a33cee1da5f7b55 -
Trigger Event:
push
-
Statement type: