V&V-grade specifications for engineered systems — AI, optimization, simulation, and physics.
Project description
vnvspec
V&V-grade specifications for engineered systems — AI, optimization, simulation, and physics.
Overview
vnvspec lets you write machine-readable V&V specifications for any engineered system and automatically assess models against them. It produces traceable evidence reports that map to international standards (ISO/PAS 8800, ISO 21448, UL 4600, EU AI Act, and more).
Key features
- Typed spec language — Pydantic-based
Spec,Requirement,IOContract,ODD,Hazard,Evidencemodels - INCOSE GtWR quality checker — catch vague, ambiguous, or unverifiable requirements early, with configurable profiles (formal, web-app, embedded)
- Traceability graphs — link requirements ↔ hazards ↔ evidence ↔ standards clauses, plus auto-trace scanning
- Standards registries — built-in clause databases for ISO/PAS 8800, ISO 21448, UL 4600, EU AI Act, NIST AI RMF
- Compliance matrix — auditor-grade XLSX/CSV/HTML exports with gap analysis against any standard
- Best-practices catalogs — pre-written requirements for PyTorch, HuggingFace, FastAPI, SQLAlchemy, Pyomo; composable via
Spec.extend() - Pluggable adapters — wrap any model (PyTorch, HuggingFace, scikit-learn, ONNX, Pyomo, FMI)
- EvidenceCollector — ergonomic context manager for building evidence from assertions and JUnit XML
- pytest plugin —
pytest-vnvspeccaptures evidence directly from test results - Multi-format specs — define specs in Python, YAML, or TOML; lossless round-trips
- CI integrations — GitHub Actions composite action, V&V badge SVG, report diff for regression detection
- Rich exports — HTML reports, Markdown, GSN assurance cases (Mermaid), EU AI Act Annex IV tech docs
Installation
pip install vnvspec
With PyTorch adapter:
pip install vnvspec[torch]
Quick start
from vnvspec import Requirement, Spec
req = Requirement(
id="REQ-001",
statement="The classifier shall produce probabilities in [0, 1].",
rationale="Probability outputs must be valid for downstream calibration.",
verification_method="test",
acceptance_criteria=["All output probabilities are between 0.0 and 1.0 inclusive."],
)
spec = Spec(name="image-classifier-v1", requirements=[req])
violations = req.check_quality()
print(f"Quality issues: {len(violations)}")
Development
# Install all dev dependencies
just install
# Run all checks (lint, typecheck, test with coverage)
just check
License
Apache-2.0. See LICENSE.
Project details
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 vnvspec-0.3.0.tar.gz.
File metadata
- Download URL: vnvspec-0.3.0.tar.gz
- Upload date:
- Size: 572.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
350f1cd7cb396fd183eccd9e19de080c8d7eb933004271e753b864d41a99d697
|
|
| MD5 |
46a7129cd5e781287f2052965b57f248
|
|
| BLAKE2b-256 |
47476e8ceb2c7a4b6a86b1364b4231bb1994a66b0c87e5f08d07b68cbb5b9bd7
|
Provenance
The following attestation bundles were made for vnvspec-0.3.0.tar.gz:
Publisher:
workflow.yml on ai-vnv/vnvspec
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vnvspec-0.3.0.tar.gz -
Subject digest:
350f1cd7cb396fd183eccd9e19de080c8d7eb933004271e753b864d41a99d697 - Sigstore transparency entry: 1330087411
- Sigstore integration time:
-
Permalink:
ai-vnv/vnvspec@77720018591e53c5c997bb85612b66b619f60d30 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/ai-vnv
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@77720018591e53c5c997bb85612b66b619f60d30 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vnvspec-0.3.0-py3-none-any.whl.
File metadata
- Download URL: vnvspec-0.3.0-py3-none-any.whl
- Upload date:
- Size: 131.5 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 |
57c55eab54ff4ce898e4883697ad7b59e9279afeea9acb51d719b1b74f296023
|
|
| MD5 |
aa105d026567d7e0a46676866b906b62
|
|
| BLAKE2b-256 |
c9367991231cc4db4c0a952f566810a65642c71e51f00ea09f02d443212bdfa7
|
Provenance
The following attestation bundles were made for vnvspec-0.3.0-py3-none-any.whl:
Publisher:
workflow.yml on ai-vnv/vnvspec
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vnvspec-0.3.0-py3-none-any.whl -
Subject digest:
57c55eab54ff4ce898e4883697ad7b59e9279afeea9acb51d719b1b74f296023 - Sigstore transparency entry: 1330087532
- Sigstore integration time:
-
Permalink:
ai-vnv/vnvspec@77720018591e53c5c997bb85612b66b619f60d30 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/ai-vnv
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@77720018591e53c5c997bb85612b66b619f60d30 -
Trigger Event:
push
-
Statement type: