Skip to content

Development

The plugin's slash commands are Markdown prompt files under commands/; the stdlib-only scripts they call live under scripts/, with tests under tests/.

Layout

Path Purpose
.claude-plugin/marketplace.json Marketplace manifest listing the rhiza plugin.
.claude-plugin/plugin.json The rhiza plugin manifest.
commands/ The plugin's slash commands (one .md per command).
scripts/ Bundled stdlib-only Python scripts backing the commands.
tests/ Pytest suite for the scripts.
docs/ This book.

Make targets

make help        # list targets
make lint        # run pre-commit against every file
make test        # run the script test suite (100% coverage gate)
make stats       # print the stats dashboard + write docs/stats.html
make book        # build the documentation site into _book/
make book-serve  # serve the docs locally with live reload
make clean       # remove generated caches and artifacts

make lint runs every quality hook — mypy, interrogate (docstrings), the test-layout check, and the manifest JSON/version-parity checks. To run a single one, use uvx pre-commit run <hook-id> --all-files (e.g. mypy, interrogate, test-layout, manifest-version-parity).

Building the book

The book is MkDocs + Material. Build it with no local install using uvx:

uvx --with mkdocs-material mkdocs build   # → _book/
uvx --with mkdocs-material mkdocs serve   # live preview

mkdocs.yml inherits docs/mkdocs-base.yml (theme, extensions, plugins) and adds the site metadata and navigation.

Tests

make test                          # fast, offline; enforces 100% coverage of scripts/
RHIZA_E2E=1 uvx pytest tests/test_init_e2e.py   # opt-in end-to-end (needs network + uv)

The end-to-end test scaffolds a repo, runs a real rhiza sync, and asserts the template's own gates pass — the sign-off for changes to the init scaffolder.

CI/CD

  • CI (.github/workflows/ci.yml) runs pre-commit (including a strict mypy type-check and 100% interrogate docstring coverage of scripts/) and the test suite under the 100% coverage gate.
  • Book (.github/workflows/book.yml) builds the site on every push and deploys it to GitHub Pages from the default branch.
  • CodeQL (.github/workflows/codeql.yml) scans the Python scripts and the workflows for security issues.
  • Scorecard (.github/workflows/scorecard.yml) runs the OpenSSF Scorecard supply-chain analysis and publishes the score (README badge).