v-model

v0.4.0

Enforces V-Model paired generation of development specs and test specs with full traceability.

V-Model Extension Pack Logo

V-Model Extension Pack for Spec Kit

Every specification paired with its test. Full traceability.

CI Evaluations GitHub stars License Latest Release


An extension for GitHub Spec Kit that enforces the V-Model methodology: every development specification has a simultaneously generated, paired testing specification with full traceability.

Features

  • /speckit.v-model.requirements — Generate traceable requirements (REQ-NNN) from user input or existing spec.md
  • /speckit.v-model.acceptance — Generate a three-tier Acceptance Test Plan (Test Cases + BDD Scenarios) with deterministic 100% coverage validation
  • /speckit.v-model.system-design — Decompose requirements into IEEE 1016-compliant system components (SYS-NNN)
  • /speckit.v-model.system-test — Generate ISO 29119-compliant system test plans (STP/STS)
  • /speckit.v-model.architecture-design — IEEE 42010/Kruchten 4+1 architecture decomposition (ARCH-NNN) with Logical, Process, Interface, and Data Flow views
  • /speckit.v-model.integration-test — ISO 29119-4 integration testing (ITP/ITS) with Interface Contract, Data Flow, Fault Injection, and Concurrency techniques
  • /speckit.v-model.module-design — Detailed module design (MOD-NNN) with pseudocode, state machines, data structures, and error handling views
  • /speckit.v-model.unit-test — Unit test plans (UTP/UTS) with Statement & Branch Coverage, Boundary Value Analysis, State Transition Testing, and strict isolation
  • /speckit.v-model.trace — Build a regulatory-grade Quadruple Traceability Matrix (Matrix A + B + C + D)

Installation

Prerequisites

  • Spec Kit v0.1.0 or higher
  • A spec-kit project (directory with .specify/ folder)

Method 1: Install from catalog (when available)

specify extension add v-model

Method 2: Install from GitHub release

specify extension add v-model --from https://github.com/leocamello/spec-kit-v-model/archive/refs/tags/v0.4.0.zip

Method 3: Install from local directory (development)

git clone https://github.com/leocamello/spec-kit-v-model.git
specify extension add --dev /path/to/spec-kit-v-model

Verify installation

specify extension list

Usage

Proactive Workflow (Recommended)

The V-Model extension integrates with Spec Kit's core workflow (/speckit.specify/speckit.plan/speckit.tasks/speckit.implement). Use these V-Model commands between the specify and plan steps:

Step 1: /speckit.v-model.requirements          →  Traceable REQ-NNN from spec.md
Step 2: /speckit.v-model.acceptance            →  Paired ATP + SCN with 100% coverage
Step 3: /speckit.v-model.trace                 →  Matrix A (requirements ↔ acceptance)
Step 4: /speckit.v-model.system-design         →  SYS-NNN components (IEEE 1016 views)
Step 5: /speckit.v-model.system-test           →  STP/STS procedures (ISO 29119-4)
Step 6: /speckit.v-model.trace                 →  Matrix A + B (+ system verification)
Step 7: /speckit.v-model.architecture-design   →  ARCH-NNN modules (IEEE 42010/4+1)
Step 8: /speckit.v-model.integration-test      →  ITP/ITS procedures (ISO 29119-4)
Step 9: /speckit.v-model.trace                 →  Matrix A + B + C (architecture traceability)
Step 10: /speckit.v-model.module-design        →  MOD-NNN modules (pseudocode + state machines)
Step 11: /speckit.v-model.unit-test            →  UTP/UTS procedures (white-box techniques)
Step 12: /speckit.v-model.trace                →  Matrix A + B + C + D (full traceability)

Progressive traceability: The /speckit.v-model.trace command is run four times — after each design↔test pair — so coverage gaps are caught at each V-level rather than discovered at the end.

Example — Feature 002: Custom ID Prefix Support

# Before: define the feature with spec-kit core
/speckit.specify Allow users to configure custom ID prefixes (e.g., SRS instead of REQ)

# 1. Generate traceable requirements from the spec
/speckit.v-model.requirements

# 2. Generate acceptance tests — validates 100% coverage automatically
/speckit.v-model.acceptance

# 3. Build traceability matrix (Matrix A: requirements ↔ acceptance)
/speckit.v-model.trace

# 4. Generate system design elements (IEEE 1016 views)
/speckit.v-model.system-design

# 5. Generate system test procedures (ISO 29119-4 techniques)
/speckit.v-model.system-test

# 6. Build traceability matrix (Matrix A + B: + system verification)
/speckit.v-model.trace

# 7. Generate architecture design (IEEE 42010/Kruchten 4+1 views)
/speckit.v-model.architecture-design

# 8. Generate integration tests (ISO 29119-4 integration techniques)
/speckit.v-model.integration-test

# 9. Build traceability matrix (Matrix A + B + C: architecture traceability)
/speckit.v-model.trace

# 10. Generate module design (pseudocode, state machines, data structures)
/speckit.v-model.module-design

# 11. Generate unit test plan (white-box techniques, strict isolation)
/speckit.v-model.unit-test

# 12. Build traceability matrix (Matrix A + B + C + D: full traceability)
/speckit.v-model.trace

# After: continue with spec-kit core
/speckit.plan
/speckit.tasks
/speckit.implement

Each step produces artifacts in specs/{feature}/v-model/:

specs/{feature}/v-model/
├── requirements.md              →  REQ-NNN requirements
├── acceptance-plan.md           →  ATP + SCN test cases
├── system-design.md             →  SYS-NNN components
├── system-test.md               →  STP/STS procedures
├── architecture-design.md       →  ARCH-NNN modules
├── integration-test.md          →  ITP/ITS procedures
├── module-design.md             →  MOD-NNN detailed modules
├── unit-test.md                 →  UTP/UTS unit test procedures
└── traceability-matrix.md       →  Matrix A + B + C + D

Key Principle: Scripts Verify, AI Generates

The V-Model commands use AI (GitHub Copilot) for creative translation — turning specs into requirements and test plans. But all compliance-critical calculations are performed by deterministic scripts:

ConcernHandled byWhy
Generate requirements & test plansAI (Copilot)Creative translation from natural language
Validate requirements ↔ acceptance coveragevalidate-requirement-coverage.shDeterministic — regex-based, mathematically correct
Validate system design ↔ system test coveragevalidate-system-coverage.shDeterministic — SYS→STP→STS cross-reference
Validate architecture ↔ integration coveragevalidate-architecture-coverage.shDeterministic — ARCH→ITP→ITS cross-reference
Validate module ↔ unit test coveragevalidate-module-coverage.shDeterministic — ARCH→MOD→UTP→UTS cross-reference
Build traceability matrixbuild-matrix.shDeterministic — audit-grade accuracy, 4 matrices
Detect requirement changesdiff-requirements.shDeterministic — git-based diff

Command Reference

1. Generate Requirements (Step 1)

/speckit.v-model.requirements Build a user authentication system with OAuth2 support

Outputs specs/{feature}/v-model/requirements.md with traceable REQ-NNN IDs.

2. Generate Acceptance Test Plan (Step 2)

/speckit.v-model.acceptance

Reads requirements.md and generates:

  • Test Cases (ATP-NNN-X) — logical validation conditions
  • User Scenarios (SCN-NNN-X#) — BDD Given/When/Then executable steps

Validates 100% coverage via deterministic script (not AI self-assessment).

3. Generate System Design (Step 4)

/speckit.v-model.system-design

Reads requirements.md and generates system-design.md with SYS-NNN components across four IEEE 1016 views (Decomposition, Dependency, Interface, Data Design).

4. Generate System Test Plan (Step 5)

/speckit.v-model.system-test

Reads system-design.md and generates system-test.md with STP-NNN-X test procedures and STS-NNN-X# test steps using ISO 29119-4 techniques.

5. Generate Architecture Design (Step 7)

/speckit.v-model.architecture-design

Reads system-design.md and generates architecture-design.md with ARCH-NNN modules across four IEEE 42010/Kruchten 4+1 views (Logical, Process, Interface, Data Flow).

6. Generate Integration Test Plan (Step 8)

/speckit.v-model.integration-test

Reads architecture-design.md and generates integration-test.md with ITP-NNN-X test procedures and ITS-NNN-X# test steps using four integration techniques (Interface Contract, Data Flow, Fault Injection, Concurrency).

7. Generate Module Design (Step 10)

/speckit.v-model.module-design

Reads architecture-design.md and generates module-design.md with MOD-NNN modules. Each module includes pseudocode (Algorithmic / Logic View), state machine diagrams, internal data structures, and error handling specifications. Modules tagged [EXTERNAL] or [CROSS-CUTTING] are handled with appropriate bypass rules.

8. Generate Unit Test Plan (Step 11)

/speckit.v-model.unit-test

Reads module-design.md and generates unit-test.md with UTP-NNN-X test procedures and UTS-NNN-X# scenarios. Uses white-box techniques (Statement & Branch Coverage, Boundary Value Analysis, State Transition Testing, Equivalence Partitioning) with strict isolation — every external dependency is mocked via Dependency & Mock Registries.

9. Build Traceability Matrix (Step 3/6/9/12)

/speckit.v-model.trace

Uses deterministic scripts (not AI) to build a regulatory-grade quadruple matrix. Run progressively — after acceptance for Matrix A, after system-test for A+B, after integration-test for A+B+C, after unit-test for A+B+C+D.

ID Schema

The ID scheme encodes traceability directly in the identifier:

LayerDesign IDTest Case IDTest Step IDMatrix
Requirements ↔ AcceptanceREQ-NNNATP-NNN-XSCN-NNN-X#A
System ↔ System TestSYS-NNNSTP-NNN-XSTS-NNN-X#B
Architecture ↔ IntegrationARCH-NNNITP-NNN-XITS-NNN-X#C
Module ↔ Unit TestMOD-NNNUTP-NNN-XUTS-NNN-X#D

Category prefixes: NF (Non-Functional), IF (Interface), CN (Constraint). Functional requirements have no prefix (e.g., REQ-NF-001, ATP-NF-001-A).

Each ID is self-documenting — reading SCN-001-A1 tells you: Scenario 1 → of Test Case A → validating Requirement 001. The same lineage applies at every level: ITS-003-A2ITP-003-AARCH-003, and UTS-001-A1UTP-001-AMOD-001.

For a comprehensive explanation of ID formats, lifecycle, cross-level linking mechanisms, and end-to-end traceability examples, see the Artifact ID Schema Guide.

Configuration

Optional configuration via v-model-config.yml:

output_dir: "v-model"
id_prefixes:
  requirements: "REQ"
  test_cases: "ATP"
  scenarios: "SCN"
  system_components: "SYS"
  system_test_procedures: "STP"
  system_test_steps: "STS"
  architecture_modules: "ARCH"
  integration_test_procedures: "ITP"
  integration_test_steps: "ITS"
  module_designs: "MOD"
  unit_test_procedures: "UTP"
  unit_test_scenarios: "UTS"
coverage_threshold: 100
batch_size: 5

Testing

# BATS tests (Bash scripts)
tests/bats/lib/bats-core/bin/bats tests/bats/*.bats

# Structural eval tests (Python, deterministic)
pip install -e ".[dev]"
pytest tests/evals/ -m structural -v

# LLM-as-judge evals (requires GOOGLE_API_KEY)
GOOGLE_API_KEY=... pytest tests/evals/ -m eval -v
LayerTestsWhat it validates
BATS91Bash script logic (setup, coverage, system coverage, architecture coverage, module coverage, matrix, diff)
Pester91PowerShell script parity
Structural evals51ID format, template conformance, section completeness across all V-levels
LLM-as-judge evals36Requirements quality, BDD quality, design quality, traceability (requires API key)

See CONTRIBUTING.md for full details.

Target Audience

  • Any engineering team wanting rigorous spec + test pairing
  • Regulated industries (medical devices, automotive, aerospace) needing audit-ready traceability artifacts

License

MIT

Stats

14 stars

Version

0.4.0release
Updated about 1 month ago

Install

Using the Specify CLI

specify extension add --from https://github.com/leocamello/spec-kit-v-model/archive/refs/tags/v0.4.0.zip

Categories

v-modeltraceabilitytestingcompliancesafety-critical

License

MIT