prodc
Product management as code: roles, flows, and features, each traced to the evidence behind it and the test that proves it. The aim is to make product work something a whole team can share — kept in the repo, next to the code, read by the tools you already use — rather than a specialty locked in one person's head and one tracker.
prodc records that structure and checks it holds together; it does not call a model or ping a tracker. Two ideas carry it, both about not fooling yourself:
- A need with no evidence is an opinion. Write down who asked for something — an interview, a ticket, an email — or prodc flags it as an opinion, because that is what it is until someone outside the room has asked.
- "Done" is a claim your tests back. You attach a proof (a locator into your test suite), and
prodc statusreports each need as DELIVERED, PENDING, HOLE (an honest gap), or BROKEN. The status is read from the repo, not remembered from a standup.
Install
pip install prodc # or: uv add prodc
uv sync && make check # contributors: deps + lint + typecheck + test
Use
prodc status
prodc status — quickstart
gaps: 2 HOLE · 1 opinion coverage 1/3 (33%)
id GROUNDS need WARRANT
jordan (design partner) 1 DELIVERED · 2 HOLE
!! N-1 DELIVERED* 1/1 see which orders are past due at a glance primary:Jordan
N-2 HOLE export the day's delivery run sheet secondary
N-3 HOLE implement a settings page opinion
⚠ text may be a solution in disguise (starts with 'implement')
GROUNDS = does a test prove it. WARRANT = did a user ask for it. The gap between them is the point.
Use it with an agent
prodc ships a playbook that teaches a coding agent to run it as the project's product manager — read the board, capture evidence, record needs with honest provenance, find proofs, gate before a handoff. Drop it where your agent reads project guidance:
prodc agent >> AGENTS.md # or: prodc agent --write AGENTS.md
This is how an engineer vibe-codes their way into product work: the agent does the product management from inside the repo, with prodc keeping it honest.
Docs
- Quickstart — 60 seconds to a board
- Commands — every verb, one line each
- Model — the nouns (Need, Role, Goal, Release) and the Need fields
docs/issues/ holds follow-ups. AGENTS.md is for coding agents.
Metadata
Release files for prodc 0.3.64
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.64.tar.gz | 108.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| prodc-0.3.64-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 191.3 kB
Release files / prodc-0.3.64.tar.gz
| Download URL | prodc-0.3.64.tar.gz |
|---|---|
| Size | 108.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f6ff4ded25cbeca03ed7ffaae72d98618df3fbd31bf3517422454b12a5cc8b4c
|
|
BLAKE2b-256 checksum How to use checksums |
2de3a322fc1e4da9821cd158183c5225b6285c8922386d1b5f8e96a569b71563
|
| 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.64-py3-none-any.whl
| Download URL | prodc-0.3.64-py3-none-any.whl |
|---|---|
| Size | 82.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
987dd3b0f9810139f84b8f992fc6982aa4959687cc5cf9c49cdf9b219366d765
|
|
BLAKE2b-256 checksum How to use checksums |
4bb6888e8dc5be97350c7818104267ac7448bfc8322ce35b9bae7ddb0d14daf4
|
| 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}
|