Coverage and enforcement layer for AI agent infrastructure
Project description
IntentSpec
Coverage and enforcement layer for AI agent infrastructure.
Status (June 26 2026): Phase 2 complete · PyPI 0.3.0 (pre-1.0) · Phase 3 (beta) next — see STATUS.md
IntentSpec transforms agent development from ad-hoc documentation to versioned, testable, and enforceable intent. Document agent behavior as code, measure intent coverage, score intent debt, and enforce intent through CI/CD.
Works with any agent spec format — AGENTS.md, SKILL.md, agentskills, or CrewAI. Convert existing specs to a standardized intent.yaml, then validate, score, diff, lint, and enforce it in CI/CD.
Quickstart
pip install intentspec
# Create a new spec interactively
intentspec init --quickstart
# Or convert an existing AGENTS.md
intentspec init --from AGENTS.md ./AGENTS.md
# Validate and score
intentspec validate
intentspec score
# Run all checks for CI/CD
intentspec ci --min-coverage 80
Features
| Feature | Command | Description |
|---|---|---|
| Validate | validate |
Schema + semantic validation of intent.yaml |
| Score | score |
Intent Debt Score (IDS 0-100) with 7 weighted components |
| Coverage | coverage |
Structural coverage analysis against source text |
| Diff | diff |
Git-integrated intent change tracking between commits |
| Lint | lint |
Quality checks (goal length, tool rationale, duplicates, etc.) |
| CI | ci |
Unified hook: validate + lint + score + coverage in one pass |
| Audit | audit-report |
SOC 2 / EU AI Act compliance report with SHA-256 hash |
| Convert | init --from |
Import from AGENTS.md, SKILL.md, agentskills, CrewAI, LangGraph, AutoGen, OpenAI Agents |
| Templates | init --template |
5 built-in agent templates |
| Health | health |
Terminal dashboard — coverage, IDS, stale/orphaned specs |
| Drift | drift |
Detect stale intents (source file age vs last commit) |
| Dashboard | dashboard --serve |
Web dashboard for coverage trends and IDS scores |
New: Source Resolution
IntentSpec now resolves original agent source files (AGENTS.md, SKILL.md, framework configs) for any intent.yaml:
# Source:header provenance (written byintentspec init)- Sibling filename matching (AGENTS.md, SKILL.md, crewai.yaml, etc.)
- Orphaned spec detection (
healthanddriftreport specs with no source)
Installation
pip install intentspec # 0.3.0
Requires Python 3.11+.
Why IntentSpec?
AI agents are defined by scattered markdown files, README comments, and tribal knowledge. IntentSpec makes that explicit and measurable:
- Document — Define agent intent in a structured
intent.yaml - Convert — Import existing AGENTS.md / SKILL.md / CrewAI specs
- Validate — Schema + semantic checks catch misconfigurations
- Score — Intent Debt Score (0-100) measures spec quality
- Coverage — Compare intent against actual source text
- Enforce — CI/CD integration fails builds when intent is missing or broken
- Audit — Generate compliance reports for SOC 2 / EU AI Act
License
MIT
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 intentspec-0.3.0.tar.gz.
File metadata
- Download URL: intentspec-0.3.0.tar.gz
- Upload date:
- Size: 160.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de932b812617b0a0fe3ccbd0e1ab3d9a59bc9bd3fd9fa128b8e3c7c49b3fe121
|
|
| MD5 |
7d5441dabf5fece3b24397f015351d41
|
|
| BLAKE2b-256 |
ad36ff34dbd84f4bab3a0cacff0aed96a5a51143eda91b869a56e51b0050a345
|
Provenance
The following attestation bundles were made for intentspec-0.3.0.tar.gz:
Publisher:
publish.yml on onicarps/intentspec
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
intentspec-0.3.0.tar.gz -
Subject digest:
de932b812617b0a0fe3ccbd0e1ab3d9a59bc9bd3fd9fa128b8e3c7c49b3fe121 - Sigstore transparency entry: 1969103467
- Sigstore integration time:
-
Permalink:
onicarps/intentspec@5999f604342cd79c1dee18084d8a66c2d1b7df15 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/onicarps
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5999f604342cd79c1dee18084d8a66c2d1b7df15 -
Trigger Event:
push
-
Statement type:
File details
Details for the file intentspec-0.3.0-py3-none-any.whl.
File metadata
- Download URL: intentspec-0.3.0-py3-none-any.whl
- Upload date:
- Size: 120.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5774dae74548151ee758305c32b8f6d9e20f29093317fcec7d4d484d167a4a4a
|
|
| MD5 |
c0093bc7a4194ffbdebba283f37c6941
|
|
| BLAKE2b-256 |
dd711ddff089d2bfb2f7ef3e812678f8990fe08eea2f4ef7383e45e83dfd4510
|
Provenance
The following attestation bundles were made for intentspec-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on onicarps/intentspec
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
intentspec-0.3.0-py3-none-any.whl -
Subject digest:
5774dae74548151ee758305c32b8f6d9e20f29093317fcec7d4d484d167a4a4a - Sigstore transparency entry: 1969103526
- Sigstore integration time:
-
Permalink:
onicarps/intentspec@5999f604342cd79c1dee18084d8a66c2d1b7df15 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/onicarps
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5999f604342cd79c1dee18084d8a66c2d1b7df15 -
Trigger Event:
push
-
Statement type: