Practical Prose tooling: metrics, rubric scoring, evaluation reports, comparisons, and agent skills
Project description
pprose
Practical Prose tooling: deterministic metrics, rubric scoring, evaluation reports, and comparisons for practical documents.
pprose is the command-line companion to
Practical Prose, a reference system and
evaluation toolkit for writing that helps a reader understand, decide, do, verify, or
maintain something.
Install
The distribution and command are both pprose. After publication, run with no install
using uv:
uvx pprose <command> ...
Or install it:
uv tool install pprose
Commands
pprose metrics doc.md # deterministic metrics for a document
pprose report from-metrics doc.md --out doc.eval.md # build an eval report stub
pprose score doc.eval.md # qualitative rubric scoring (Anthropic SDK)
pprose compare a.eval.md b.eval.md # compare N eval reports
pprose about # the project narrative (bundled README)
pprose skill # workflow skills overview + routing pointers
pprose guidelines --list # bundled style guides and writing rules
pprose shortcut --list # workflow playbooks the skills invoke
pprose runbook --list # operational procedures (eval, compare)
pprose install # install skills into the current project
pprose install --global # install skills user-wide for every project
pprose install runs in one of two scopes:
- Project (
--project, the default when cwd is inside a git repo) writes into<repo>/.agents/skills/(Codex, Gemini CLI, pi),<repo>/.claude/skills/(Claude Code), and a marker-bounded block in<repo>/AGENTS.md. - User-global (
--global) writes into~/.agents/skills/pprose-*/and~/.claude/skills/pprose-*/, making the skills available across every project. Skips~/.codex/AGENTS.mdso the global instruction file stays user-authored.
Outside an unambiguous project context ($HOME, a non-git directory), --project or
--global must be passed explicitly — no silent default.
$HOME is always refused under --project; use --global for a user-wide install.
Pass --surfaces=portable,claude,agents-md (or --surfaces=all, the default) to select
install destinations within the chosen scope, or --pin <version> to override the
version baked into the bootstrap line.
Every generated artifact carries a format=fNN stamp; re-running install is idempotent,
and a newer-format artifact is never clobbered by an older pprose.
Each generated skill bakes in a pinned, local-first invocation (pprose if on PATH,
else uvx pprose@<version>). Cross-scope coexistence is the supported pattern:
project-scope skills shadow user-scope skills of the same name in modern agents.
Run pprose --help or pprose install --help for full options.
score requires ANTHROPIC_API_KEY; the package auto-loads .env and .env.local
from the current directory hierarchy and $HOME.
Project docs
- Installing uv and Python: installation.md
- Development workflows: development.md
- Publishing to PyPI: publishing.md
License
The package code is MIT licensed (the license field in package metadata).
The wheel also bundles practical-prose content (the guidelines, rubric, runbooks,
and other prose under resources/), which is licensed under Creative Commons
Attribution 4.0 (CC BY 4.0). See the
repository LICENSE.
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 pprose-0.1.0.tar.gz.
File metadata
- Download URL: pprose-0.1.0.tar.gz
- Upload date:
- Size: 387.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bad0c1ccbe4b3e57dec4ba890fd7e24dfa0b5e7d059d9334073992f63413921a
|
|
| MD5 |
be66707e76d4c6b1c7030a28e63efd38
|
|
| BLAKE2b-256 |
021671a640f3e2fb0368166adfa0fbeb4a427c27fe4179a6dc2e2fd0e35ec1ef
|
File details
Details for the file pprose-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pprose-0.1.0-py3-none-any.whl
- Upload date:
- Size: 255.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
500f71ec31de6cf9944f5333c58fd53a00ac7adccb569d319b1e20eee9bef773
|
|
| MD5 |
73f8af9b293067120ab95afcc966a266
|
|
| BLAKE2b-256 |
c0ecf84e601a8d3fc9b1df77314dee264d6682faf8d1e1c0a723b1a06b9244b8
|