Skip to content

VR-* Type Catalog

Every built-in verification type, and how to add custom VR-* types and per-language command overrides via massu.config.yaml


VR-* Type Catalog

Verification Requirements (VR-) are checks with a specific expected output. Every claim that work is complete must be backed by a VR- check returning the expected result. Massu AI ships a catalog of built-in types plus two extension points — custom VR-* types and per-language command overrides — both declared in massu.config.yaml.

Built-in Catalog

Every built-in VR-* type, its command, and the expected output. Commands marked with <language> use the per-language override (see below) when present, falling back to the defaults listed here.

TypeCommandExpected OutputUse When
VR-FILEls -la [path]File listed with permissionsClaiming a file was created
VR-GREPgrep "[pattern]" [file]Line number + matching contentClaiming code was added
VR-NEGATIVEgrep -rn "[old]" packages/core/src/No output / 0 matchesClaiming code was removed
VR-BUILDnpm run build (TS) / cargo build (RS) / go build ./... (GO) / etc.Exit 0Claiming production-ready
VR-TYPEnpx tsc --noEmit (TS) / cargo check (RS) / python3 -m mypy . (PY)0 errorsClaiming type safety
VR-TESTnpm test (TS) / python3 -m pytest -q (PY) / cargo test (RS)All tests pass, exit 0ALWAYS before claiming complete
VR-COUNTgrep -c "[pattern]" [file]Exact expected countVerifying all instances
VR-PATTERNbash scripts/massu-pattern-scanner.shExit 0Before every commit
VR-HOOK-BUILDcd packages/core && npm run build:hooksExit 0After modifying hooks
VR-CONFIGParse massu.config.yaml via yaml.parse()Valid objectAfter config changes
VR-TOOL-REGgrep tools.ts for definitions + handlerBoth wiredAfter adding MCP tools
VR-BLAST-RADIUSgrep codebase for every reference to changed value0 uncategorized refsChanging constants / config keys
VR-PLAN-COVERAGEItem-by-item verification table100% items PASSBefore claiming plan complete
VR-PROTOCOLVerify every protocol step was executedAll steps completed in orderAfter slash command
VR-SECURITYbash scripts/massu-security-scanner.shExit 0After security changes
VR-COVERAGEbash scripts/massu-test-coverage.shExit 0After adding / removing tests
VR-MIGRATIONbash scripts/massu-migration-validator.shExit 0After migration changes
VR-SCHEMA-SYNCWebsite Supabase schemas matchAll migrations appliedAfter schema changes
VR-GENERICbash scripts/massu-generalization-scanner.shExit 0After any file change
VR-PRODUCTData-flow trace + stub scan + user-journey walk0 stubs, real data flowsALWAYS before claiming any user-facing feature complete

Per-Language Command Override

Override the command that VR-TEST, VR-TYPE, VR-BUILD, VR-SYNTAX, or VR-LINT run for a specific language. Any key omitted falls back to the built-in default.

Declared under verification.<language> in massu.config.yaml:

yaml
verification:
  python:
    test: cd app && python3 -m pytest -q
    type: cd app && python3 -m mypy .
    syntax: cd app && python3 -m py_compile
    lint: cd app && python3 -m ruff check .
  typescript:
    test: npm run test:unit
    type: cd packages/core && npx tsc --noEmit
    build: npm run build:prod

Multi-Runtime Projects

When framework.type: multi, VR-* lookups are per-language. The "primary" language comes from framework.primary. Commands that are language-agnostic (VR-PATTERN, VR-SECURITY, VR-GENERIC) are unaffected.

yaml
framework:
  type: multi
  primary: python
  languages:
    python:
      framework: fastapi
    typescript:
      framework: next

verification:
  python:
    test: cd api && python3 -m pytest -q
  typescript:
    test: cd web && npm test

Custom VR-* Type Registration

Projects can register domain-specific verification types via verification_types in massu.config.yaml. The key is the type name (conventionally prefixed VR-); the value is a human-readable description. These surface in commands that enumerate the catalog.

yaml
verification_types:
  "VR-IBKR-CONTRACT": "Interactive Brokers contract object resolves to a real security via the IBKR API"
  "VR-POLICY": "All enforced policies in the UI are actually checked at runtime by policy-engine.ts"
  "VR-RLS": "Every Supabase table referenced by the feature has a passing RLS policy test"

Worked Example: VR-IBKR-CONTRACT

A trading-compliance project needs to verify that every IBKR contract object used in code resolves to a real security.

FieldValue
Type nameVR-IBKR-CONTRACT
DescriptionInteractive Brokers contract object resolves to a real security via the IBKR API
Commandcd trading && python3 -m ibkr_contract_check src/strategies/
Expected Output"All contracts resolved" / exit 0
Failure ModeContract not found / delisted symbol / ambiguous
Use WhenAfter adding or modifying any strategy that references an IBKR contract

Declared:

yaml
verification_types:
  "VR-IBKR-CONTRACT": "Interactive Brokers contract object resolves to a real security via the IBKR API"

Once registered, the custom type is recognized by /massu-verify enumeration and can be referenced in plan verification tables. The runner command is your responsibility — Massu does not execute custom VR-* types for you; it catalogs them so plans can cite them.

Where VR-* Runs

  • Pre-commit (/massu-commit) — VR-TYPE, VR-TEST, VR-PATTERN, VR-GENERIC, VR-SECURITY
  • Pre-push (/massu-push) — adds VR-BUILD, VR-HOOK-BUILD, VR-COVERAGE
  • Plan loop (/massu-loop) — VR-PLAN-COVERAGE, VR-PLAN-SPEC, VR-PROTOCOL
  • Verification sweep (/massu-verify) — runs all built-in types + every custom type declared in config

Canonical Rules and VR Mapping

Every Canonical Rule (CR-) maps to a VR- type. See CLAUDE.md for the full rule list.

Canonical RuleVR Type
CR-1: Never claim state without proofVR-* (any)
CR-2: Never assume file/module structureVR-FILE, VR-GREP
CR-4: Verify removals with negative grepVR-NEGATIVE
CR-7: ALL tests MUST pass before claiming completeVR-TEST
CR-10: Blast radius analysis for value changesVR-BLAST-RADIUS
CR-11: New MCP tools MUST be registeredVR-TOOL-REG
CR-12: Hooks MUST compile with esbuildVR-HOOK-BUILD
CR-38: All shipped files must pass generalization scannerVR-GENERIC
CR-39: "Complete" means product-ready for paying customersVR-PRODUCT
  • auto-detection — how verification.<language> commands are chosen by VRCommandMap
  • reference/config-reference — full YAML schema for verification and verification_types
  • migration/v1-to-v2 — how verification and verification_types move from v1 to v2