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 --model opus # LLM rubric scoring (Anthropic, OpenAI, or Google)
pprose compare a.eval.md b.eval.md # compare N eval reports
pprose render doc.eval.md # render an eval report as static HTML
pprose about # the project narrative (bundled README)
pprose skill # workflow skills overview + routing pointers
pprose list # every bundled guideline, shortcut, runbook, skill
pprose guidelines <name> # print one style guide (no name lists them)
pprose install --profile common-docs # common documentation policy only
pprose install --profile practical-prose # complete suite (also the default)
pprose install --skill pprose-de-slop # focused, runtime-free AI-tell cleanup
pprose install --skill pprose-review # exact selection; repeat --skill as needed
pprose install --global --profile common-docs # user-wide skills, no instruction files
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), a marker-bounded block in<repo>/AGENTS.md, and a minimal<repo>/CLAUDE.mdbridge or managed block so Claude Code sees the standing policy. - 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; there is no silent default.
$HOME is always refused under --project; use --global for a user-wide install.
Pass --profile=common-docs|practical-prose to select a public skill set, or repeat
--skill <name> for an exact custom set.
Pass --surfaces=portable,claude,agents-md,claude-md (or --surfaces=all, the default)
to select destinations within the chosen scope, or --pin <version> to override the
version baked into CLI-backed skill bootstrap lines.
Changing the selection removes deselected skill directories only when they carry a
pprose-generated format marker; unmarked user content and newer-format artifacts are
preserved.
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.
CLI-backed generated skills bake in a pinned, local-first invocation (pprose if on
PATH, else uvx pprose@<version>). pprose-common-edit and pprose-de-slop instead
bundle their complete guideline references and need no runtime.
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.
Upgrading: new releases can add guidelines, shortcuts, runbooks, and skills.
Because installed skills pin the version that installed them, a repo picks up additions
only after you upgrade pprose and re-run install in each installed scope
(uvx pprose@latest install, or uv tool upgrade pprose && pprose install); re-running
reconciles the scope: artifacts and baked pins refresh, skills new in the release are
added, and deselected generated skills are pruned safely.
Skills added via the skills CLI refresh by re-running
npx skills add jlevy/practical-prose[@skill]. See
installation.md for the full upgrade notes.
score requires the API key for the chosen provider (ANTHROPIC_API_KEY,
OPENAI_API_KEY, or GOOGLE_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.
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.3.0.tar.gz.
File metadata
- Download URL: pprose-0.3.0.tar.gz
- Upload date:
- Size: 428.8 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 |
e7b2f092c9613b003bb189ceb7d92392c4549b198a8c79403bcaae8dc1b11043
|
|
| MD5 |
1985956548913898e3488c2eb4457c52
|
|
| BLAKE2b-256 |
fc30c8a0c81effc45a5fa9196cb7d8ea92638e061c75051b7fb836c9c36a82ce
|
File details
Details for the file pprose-0.3.0-py3-none-any.whl.
File metadata
- Download URL: pprose-0.3.0-py3-none-any.whl
- Upload date:
- Size: 279.1 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 |
4e8ddfac9a4c26b317cecdf93cd7dd5b5a90dede0e9f160578815e69019fbcd5
|
|
| MD5 |
ec218bb9bc5b174664ae54271d1a96f0
|
|
| BLAKE2b-256 |
9a8f4b54e03791bd8d3ce70581e550a12cedee8b8f248d3d32c28e92fbe9f6d2
|