Metadata-Version: 2.5
Name: fidelity-ladder
Version: 0.9.0
Summary: The Fidelity Ladder — progressive-fidelity governance for agentic work (importable core). Rungs-as-data + one-ANCHOR policy + tighten-only cascade + calibration ledger + earned autonomy.
Project-URL: Homepage, https://github.com/nhunsaker/fidelity-ladder-system
Project-URL: Repository, https://github.com/nhunsaker/fidelity-ladder-system
License-Expression: MIT
Keywords: agents,ai,fidelity,governance,ladder,progressive-fidelity,spec-driven
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Requires-Python: >=3.11
Requires-Dist: pydantic>=2.9
Requires-Dist: pyyaml>=6.0
Provides-Extra: dev
Requires-Dist: pytest>=8.3; extra == 'dev'
Requires-Dist: ruff>=0.7; extra == 'dev'
Provides-Extra: harness
Requires-Dist: fastapi>=0.115; extra == 'harness'
Requires-Dist: httpx>=0.27; extra == 'harness'
Requires-Dist: uvicorn[standard]>=0.32; extra == 'harness'
Provides-Extra: mcp
Requires-Dist: fastmcp>=2.0; extra == 'mcp'
Description-Content-Type: text/markdown

# fidelity-ladder

> Code is the most expensive place to discover you built the wrong thing.
> Fidelity is a ratchet, not a throttle.

The importable core of the **Fidelity Ladder** — progressive-fidelity governance for agentic work.
An idea climbs rungs of increasing fidelity (spec → wireframe → demo → code), each gated by a
verifier and a per-rung autonomy dial; wrong *direction* is caught at the cheapest rung where it's
knowable, not after you've written the code. One **ANCHOR** file holds policy; a **calibration
ledger** is how autonomy is *earned*, not configured; everything **fails closed**.

```bash
pip install fidelity-ladder          # core only — pydantic + pyyaml, zero web/GitHub/MCP deps
```

```python
import fidelity_ladder as fl
# rungs are data you can print and swap:
for r in fl.WEB_LADDER_PROFILE.rungs:
    print(r.number, r.name, r.dial.value)
```

`import fidelity_ladder` pulls **zero** web dependencies (enforced in CI). The FastAPI harness, the
GitHub surface, and the MCP server are optional extras — `pip install fidelity-ladder[harness]` /
`[mcp]`. The five module slots (AUTH · IDEAS · SOURCES · WORKERS · LENSES) plus an environment slot
are the extension points; swap the `LadderProfile` to run a different ladder without touching the
engine.

- **Manifesto** — the thesis, named principles, and the honest scoreboard numbers.
- **Pattern** — written GoF-style, reimplementable in ~100 lines without this engine.
- **Quickstart** — a governed admission runs in ~0.1s, no keys, no spend.

See the [project repository](https://github.com/nhunsaker/fidelity-ladder-system) for the full
manifesto, the pattern doc, the worked expedition, and `docs/getting-started.md`.

MIT licensed.
