Tech stack
tiny-harness is a Python package. Every tool below is configured in the repository and pinned, so a check that passes on your machine passes in CI.
| Concern | Tool | Configured in |
|---|---|---|
| Language | Python 3.14 | .python-version, pyproject.toml (requires-python) |
| Package manager and virtualenv | uv | pyproject.toml, uv.lock |
| Build backend | uv_build | pyproject.toml ([build-system]) |
| Lint and format | Ruff | pyproject.toml ([tool.ruff]) |
| Type check | Pyright, strict mode | pyproject.toml ([tool.pyright]) |
| Tests | pytest | pyproject.toml ([tool.pytest.ini_options]) |
| Commit messages and versioning | Commitizen (Conventional Commits) | pyproject.toml ([tool.commitizen]) |
| Git hooks | pre-commit | .pre-commit-config.yaml |
| Markdown lint | markdownlint-cli2 | .markdownlint-cli2.jsonc |
| Docs site | VitePress on Bun, diagrams via vitepress-plugin-mermaid | docs/.vitepress/config.mts, docs/package.json |
| CI/CD | GitHub Actions | .github/workflows/ |
| Package registry | PyPI, Trusted Publishing | .github/workflows/release.yml |
| Docs hosting | GitHub Pages | .github/workflows/docs.yml |
How the checks fit together
The pre-commit hooks are the one definition of the checks. CI runs the same hooks, and the release workflow runs CI before it publishes.
Repository layout
text
tiny_harness/ the package — import as `from tiny_harness import ...`
tests/unit/ fast tests, run by the pre-commit hook
tests/integration/ slower tests (build and install the wheel), run in CI
docs/ this site, and the-loop's specs, capabilities and decisions
.github/workflows/ ci.yml, release.yml, docs.yml