Metadata-Version: 2.5
Name: prodc
Version: 0.3.61
Summary: Product management as code: roles, flows, and features traced to evidence.
Project-URL: Homepage, https://gitlab.com/jorgeecardona/prodc
Project-URL: Repository, https://gitlab.com/jorgeecardona/prodc
Project-URL: Changelog, https://gitlab.com/jorgeecardona/prodc/-/blob/main/CHANGELOG.md
Author-email: Jorge Cardona <jorgeecardona@gmail.com>
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Testing
Classifier: Typing :: Typed
Requires-Python: >=3.12
Requires-Dist: pyyaml>=6
Provides-Extra: docs
Requires-Dist: mkdocs-material>=9.5; extra == 'docs'
Requires-Dist: mkdocs>=1.6; extra == 'docs'
Requires-Dist: mkdocstrings[python]>=0.27; extra == 'docs'
Description-Content-Type: text/markdown

# 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:

1. **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.
2. **"Done" is a claim your tests back.** You attach a proof (a locator into your test suite), and `prodc status` reports each need as DELIVERED, PENDING, HOLE (an honest gap), or BROKEN. The status is read from the repo, not remembered from a standup.

## Install

```bash
pip install prodc          # or: uv add prodc
uv sync && make check      # contributors: deps + lint + typecheck + test
```

## Use

```bash
prodc status
```

```text
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:

```bash
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](docs/quickstart.md) — 60 seconds to a board
- [Commands](docs/commands.md) — every verb, one line each
- [Model](docs/model.md) — the nouns (Need, Role, Goal, Release) and the Need fields

`docs/issues/` holds follow-ups. `AGENTS.md` is for coding agents.
