Metadata-Version: 2.5
Name: probative
Version: 0.1.1
Summary: Evidence-grounded product discovery: every claim cites its source or is labelled a hypothesis with a test attached.
Project-URL: Homepage, https://probative.wevit.ai
Project-URL: Repository, https://github.com/vedm1/probative
Project-URL: Issues, https://github.com/vedm1/probative/issues
Author-email: Ved Muthal <muthal.ved@gmail.com>
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: evidence,lean-product,product-discovery,product-management,requirements
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development
Classifier: Typing :: Typed
Requires-Python: >=3.12
Requires-Dist: beautifulsoup4>=4.12
Requires-Dist: litellm>=1.80
Requires-Dist: openpyxl>=3.1
Requires-Dist: pdfplumber>=0.11
Requires-Dist: pydantic-settings>=2.7
Requires-Dist: pydantic>=2.10
Requires-Dist: python-docx>=1.1
Requires-Dist: pyyaml>=6.0
Requires-Dist: typer>=0.15
Provides-Extra: mcp
Requires-Dist: mcp<3,>=2.3; extra == 'mcp'
Description-Content-Type: text/markdown

# Probative

Probative is an evidence-grounded, multi-agent product discovery toolkit. It
takes documents, research and delivery history and produces discovery
artifacts in which every claim either cites the source it came from or is
labelled a hypothesis with a test attached.

> **Status: in development.** Phases are tracked in [`PHASES.md`](PHASES.md).
> Nothing beyond the foundation (PB0) is built yet — see
> [`docs/GETTING-STARTED.md`](docs/GETTING-STARTED.md) for what v0.1 will do.

## Install

```bash
uv tool install probative      # or: pipx install probative
```

Or run it once with nothing to undo:

```bash
uvx probative --version
```

## Use it as a Claude plugin

In Claude Code (needs `uv` on the machine):

```
/plugin install probative --marketplace vedm1/probative
/probative:setup
```

`/probative:setup` runs `doctor`, shows what the server sees, and tells you the one thing
that is missing. The API key is entered with `/plugin configure probative@probative` (Claude Code's own prompt for a sensitive option) or exported as `ANTHROPIC_API_KEY` before you start Claude;
it is never typed into the chat. Then `/probative:critique path/to/prd.pdf`. `/probative:doctor`
re-checks the configuration at any time.

The plugin runs `uvx --from 'probative[mcp]' probative mcp` (verified against the published
0.1.0). Whether Cowork loads this plugin is unverified.

## Use it from Claude (MCP)

`probative mcp` serves `critique` and `doctor` (a read-only configuration check) to any MCP client over stdio. It needs the extra:

```bash
pip install 'probative[mcp]'
```

Claude Desktop / Claude Code server entry:

```json
{
  "mcpServers": {
    "probative": {
      "command": "probative",
      "args": ["mcp"],
      "env": {
        "ANTHROPIC_API_KEY": "<your key>",
        "PROBATIVE_MCP_ROOTS": "/path/to/your/specs"
      }
    }
  }
}
```

The tool reads only inside `PROBATIVE_MCP_ROOTS` (default: the server's working directory) and writes reports to `<first root>/probative-reports/`. A run takes 30 to 65 seconds; see OI28 in `PROBATIVE_BUILD_PLAN.md` for the client-timeout caveat.

## Develop

Requires [`uv`](https://docs.astral.sh/uv/) and Python 3.12+.

```bash
git clone https://github.com/vedm1/probative.git
cd probative
uv sync --all-groups
```

```bash
uv run probative --version
uv run pytest              # passes with no LLM credentials in the environment
uv run ruff check
uv run ruff format --check
uv run mypy src
```

Copy `.env.example` to `.env` and set a provider key if you want to exercise
the LLM adapter locally. The default test suite never needs one — see
`CLAUDE.md` § *Tests run without an API key*.

## Why "probative"

*Probative* is the legal standard for whether evidence actually tends to
prove a fact. That's the whole point of this project: every claim in every
artifact traces to a line in a document you gave it, or it's marked a
hypothesis with a test attached. No number is ever generated by a model —
every numeric field is computed by a registered, unit-tested function.

## Learn more

- [`docs/GETTING-STARTED.md`](docs/GETTING-STARTED.md) — what using it looks like
- [`docs/DESIGN.md`](docs/DESIGN.md) — the full design and the invariants it enforces
- [`docs/SCENARIOS.md`](docs/SCENARIOS.md) — the same journeys as acceptance tests
- [`PHASES.md`](PHASES.md) — what's built and what's coming
- [`CONTRIBUTING.md`](CONTRIBUTING.md) — adding a critic is a rubric file and one method

The method comes from Dan Olsen's *The Lean Product Playbook*. Probative
implements it; it doesn't replace understanding it.

## License

[Apache-2.0](LICENSE)
