Skip to main content

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.md bridge 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.md so 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

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

pprose-0.3.0.tar.gz (428.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pprose-0.3.0-py3-none-any.whl (279.1 kB view details)

Uploaded Python 3

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

Hashes for pprose-0.3.0.tar.gz
Algorithm Hash digest
SHA256 e7b2f092c9613b003bb189ceb7d92392c4549b198a8c79403bcaae8dc1b11043
MD5 1985956548913898e3488c2eb4457c52
BLAKE2b-256 fc30c8a0c81effc45a5fa9196cb7d8ea92638e061c75051b7fb836c9c36a82ce

See more details on using hashes here.

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

Hashes for pprose-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4e8ddfac9a4c26b317cecdf93cd7dd5b5a90dede0e9f160578815e69019fbcd5
MD5 ec218bb9bc5b174664ae54271d1a96f0
BLAKE2b-256 9a8f4b54e03791bd8d3ce70581e550a12cedee8b8f248d3d32c28e92fbe9f6d2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page