prodc
Product management as code: personas, flows, and features traced to evidence, so a product's state is read from the repo instead of chased in meetings.
prodc treats product thinking the way requirements-as-code tools (Doorstop, StrictDoc) treat requirements — plain text, in git, with IDs that link to each other — but for the artifacts a product person actually works with: Persona → Flow → Feature → Assumption, each tied to evidence. Two rules give it teeth:
- No evidence link = flagged as opinion. Every "why" must trace to a user signal (feedback, ticket, interview), or it is marked unsupported.
- Status comes from the repo, not from a standup. "Flow UF-004: 3 of 5 scenarios passing", "Feature F-012: blocked, assumption A-003 has no data" — the report answers "where are we" and "what's blocking" without a meeting.
The lineage is Toulmin's argument model (claim + grounds + warrant): a feature is a claim, its evidence is the grounds, its assumptions are the warrant. The same shape safety engineering uses for a "safety case", pointed at product decisions.
Status: v0, early. The data model and the first cross-repo adapter are still being shaped (see
docs/issues/). Not yet on PyPI.
Install
uv sync # dependencies
make install-hooks
make check # lint + typecheck + test
Why not just Doorstop / StrictDoc?
Those track "the system shall…" requirements for auditors in regulated industries. prodc tracks personas, flows and features for product decisions, and derives live status from the project's own tests. It reads a repo it is pointed at — including existing Gherkin/BDD and whatever ID scheme already lives there — rather than asking you to re-author everything in a new grammar.
Layout
src/prodc/— the package (typed;py.typed).docs/issues/— follow-ups, as a plain-markdown issue register.Makefile—format/lint/typecheck/test/check/build/docs.AGENTS.md— build/test/style/gotchas for coding agents.
Metadata
Release files for prodc 0.3.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| prodc-0.3.6.tar.gz | 21.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| prodc-0.3.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 41.6 kB
Release files / prodc-0.3.6.tar.gz
| Download URL | prodc-0.3.6.tar.gz |
|---|---|
| Size | 21.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4189169257cdafd085e936f9cec8ecb0a02e6384f898a9ef109fbcf4bff6f32d
|
|
BLAKE2b-256 checksum How to use checksums |
beb8a9548070c8ddddd1faa6ae6ee33114699b52cfcf53a774122b1921f4e59d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / prodc-0.3.6-py3-none-any.whl
| Download URL | prodc-0.3.6-py3-none-any.whl |
|---|---|
| Size | 20.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6a2efcb398811018609dd3fe885f7da65bbc306de9a76f3839246f754e025569
|
|
BLAKE2b-256 checksum How to use checksums |
5680249fdda21c29e717537f5b94c51b4b381767c6dfb92dd82d333bab699637
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|