Repo intent verification and spec drift checks for markdown specs, handoffs, and codebases.
Project description
intent-verify: repo intent verification and spec drift checks
Find spec drift fast when your repo has an INTENT.md, SPEC.md, or handoff doc but nobody knows if the code still matches it.
intent-verify checks a markdown spec against a repo and returns verified, partial, or missing so you can catch repo intent drift before review, release, or handoff.
- "My repo has an
INTENT.mdbut nobody knows if the code still matches it." - "Reviews catch scope drift too late."
- "A handoff doc says one thing and the implementation says another."
- "I want a cheap CI check for spec drift before merge."
- "We need repo intent verification without inventing another full compliance system."
Fastest install:
pip install intent-verify
Fastest real usage:
intent-verify check --spec INTENT.md --repo .
Exact outcome:
intent-verify: INTENT.md vs . (12 files)
[OK 100%] uploads PDF invoices
[PART 50%] retries provider timeout
[LOW 20%] writes audit log for rejected invoices
intent-verify: MISSING — 1/3 items below 30% (avg 57%)
This is a guardrail, not proof of correctness. It answers “does the implementation visibly cover the stated scope?” not “is the software correct?”
Install
pip install intent-verify
For local development:
pip install -e ".[dev]"
Common search-intent use cases
- repo intent verification
- spec drift check
- handoff verification
- acceptance criteria drift detection
- CI check for markdown spec vs code
Usage
intent-verify check --spec INTENT.md --repo .
intent-verify check --spec SPEC.md --repo . --json
intent-verify check --spec docs/handoff.md --repo src --min-verified 0.75 --min-item 0.35
What it parses
By default it extracts items from:
- inline lines such as
Accepts: upload PDF invoices, retry on timeout - markdown sections such as
## Acceptswith bullet items
It also supports custom headings:
intent-verify check --spec SPEC.md --section "Requirements"
Output
intent-verify: INTENT.md vs . (12 files)
[OK 100%] uploads PDF invoices
[PART 50%] retries provider timeout
[LOW 20%] writes audit log for rejected invoices
intent-verify: MISSING — 1/3 items below 35% (avg 57%)
JSON mode:
intent-verify check --spec INTENT.md --repo . --json
Limitations
- Lexical, not semantic.
- Can over-credit token overlap.
- Can under-credit implementations expressed with different vocabulary.
- Best used as a CI guardrail or review hint, not as a substitute for tests and code review.
When To Use It
- You keep project intent in markdown.
- You want a lightweight repo intent verification step in CI.
- You need a handoff verification check before merging or releasing.
When Not To Use It
- You need semantic verification of behavior.
- You do not have any human-readable spec, intent, or requirements file.
- You want proof of correctness instead of a fast drift signal.
More From Hermes Labs
- csv-quality-gate: CSV preflight validation and batch CSV quality checks
Development
ruff check .
python3 -m pytest -q
python3 -m py_compile src/intent_verify/*.py
Repository layout
src/intent_verify/
tests/
examples/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file intent_verify-0.1.0.tar.gz.
File metadata
- Download URL: intent_verify-0.1.0.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ccf33e61f75ae010bbcf6f0b6faf26ba2827af30699ff93ec3c8ea5c539b68b8
|
|
| MD5 |
086900721b204bff2f640fee944083a4
|
|
| BLAKE2b-256 |
cd9f750b734a20a4f898ac4fe56daf724f38ae04236932d24a481387e34c78d8
|
File details
Details for the file intent_verify-0.1.0-py3-none-any.whl.
File metadata
- Download URL: intent_verify-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5360710ddb1d7194a1ade7ac7baed1e831af08f316c0117ec9fe5da2c63c65bc
|
|
| MD5 |
53dc1659291c98dd43d0082ca3786645
|
|
| BLAKE2b-256 |
d5eac100e0c713faddc9b4596e11e319bfd20f5be505050dc0e2421ca6a8489b
|