diff --git a/README.md b/README.md index bb7afcb..9aadcf5 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,7 @@ > **Detect when your AI agent silently drifts.** indelible captures a signed behavioral fingerprint (refusal rate, latency, vocab entropy, tool-use distribution) and re-runs it on demand — your CI gate for model-update day. -[![PyPI](https://img.shields.io/pypi/v/indelible)](https://pypi.org/project/indelible/) -[![Python](https://img.shields.io/pypi/pyversions/indelible)](https://pypi.org/project/indelible/) +[![Python 3.9+](https://img.shields.io/badge/python-3.9%2B-blue.svg)](pyproject.toml) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![CI](https://github.com/MrPredic/indelible/actions/workflows/ci.yml/badge.svg)](https://github.com/MrPredic/indelible/actions) @@ -16,7 +15,7 @@ The output is a single signed JSON file (`indelible.fingerprint.json`) — diffa ## Quickstart ```bash -pip install indelible +pip install git+https://github.com/MrPredic/indelible.git # PyPI release pending indelible init # generate signing key + pinned indelible.pub + scaffold indelible.toml + prompts.json indelible attest # run test suite (temperature=0), save + sign indelible.fingerprint.json indelible verify # re-run + compare, check signature vs pinned indelible.pub → PASS / WARN / BREACH @@ -117,12 +116,14 @@ These are complements, not competitors. Use Promptfoo for quality, Phoenix for l ## Installation ```bash +# Not on PyPI yet -- install from source. + # Core — 4 deps, no ML stack (5 of 7 signals work) -pip install indelible +pip install git+https://github.com/MrPredic/indelible.git # With semantic-similarity signals (embedding_profile + anchor_drift) # Pulls sentence-transformers + numpy (~150 MB) -pip install "indelible[deep]" +pip install "indelible[deep] @ git+https://github.com/MrPredic/indelible.git" ``` ## Influences