Orchestrates the full law interpretation pipeline: MvT research, machine_readable generation with validation/BDD testing, and reverse validation. Invokes /law-mvt-research, /law-generate, and /law-reverse-validate sequentially. Use this skill proactively when: user wants to make a law executable, add machine_readable sections, or mentions "interpret" in the context of a Dutch law YAML file. Activate automatically when user opens a corpus YAML file without machine_readable sections and wants t...
Scanned 9/24/2026
npx -y skills add MinBZK/regelrecht --skill law-interpret --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Law Interpret?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/minbzk-law-interpret)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
name: law-interpret
description: >
Orchestrates the full law interpretation pipeline: MvT research, machine_readable
generation with validation/BDD testing, and reverse validation. Invokes
/law-mvt-research, /law-generate, and /law-reverse-validate sequentially.
Use this skill proactively when: user wants to make a law executable, add
machine_readable sections, or mentions "interpret" in the context of a Dutch
law YAML file. Activate automatically when user opens a corpus YAML file
without machine_readable sections and wants to make it executable.
allowed-tools: Read, Bash, Grep, Glob, Skill
user-invocable: true
---
# Law Interpret — Orchestrator
Orchestrates the full pipeline for making a Dutch law YAML file executable.
Invokes three sub-skills sequentially, passing context between them.
## Step 1: Identify Target
1. Determine which law YAML file to interpret (from user input or context)
2. Read the target file to confirm it exists and extract key metadata:
- `name` (law title)
- `bwb_id` (BWB identifier for MvT search, top-level field)
- `valid_from` (effective date)
- Count of articles
3. Report to user: "Starting interpretation of {law_name} ({N} articles)"
## Step 2: MvT Research
Invoke `/law-mvt-research` on the target law file.
This searches for Memorie van Toelichting documents and generates Gherkin
test scenarios from legislature-intended examples.
**Context passing:** The MvT skill writes its output beside the law it tests, as
`{directory of the law YAML}/scenarios/{topic}.feature`. The `/law-generate`
skill in Step 3 picks this up automatically when running `just bdd`, which
collects every `*.feature` under a `scenarios/` directory in
`corpus/regulation/` plus the conformance suite in `bdd/conformance/`. No manual
context transfer is needed — the file system is the interface.
A scenario written anywhere else is never run, and `just bdd` stays green while
it sits there. If Step 2 reports a feature file outside a `scenarios/`
directory, that is a bug in the run and not something to work around.
After completion, note the results:
- How many MvT documents were found
- How many Gherkin scenarios were generated
- Which articles lack MvT examples
- Path to the generated feature file
**If no MvT documents are found:** This is common for many Dutch laws. Proceed
to Step 3 anyway — `/law-generate` will fall back to ad-hoc testing via the
evaluate binary. Not having MvT scenarios reduces confidence but does not block
the pipeline.
## Step 2.5: Schema Version Check
Before generating, verify the target file's `$schema` URL points to the current
version. Read it from the `schema/latest` symlink rather than from this page, which
goes stale on every bump:
```bash
readlink schema/latest # e.g. v0.5.8
```
If the file points to an older version (e.g. v0.3.2, v0.4.0, or v0.5.0), update it
to the tag form for that version:
```
https://raw.githubusercontent.com/MinBZK/regelrecht/refs/tags/schema-vX.Y.Z/schema/vX.Y.Z/schema.json
```
The tag form is required by RFC-013: a `refs/heads/main` URL points at a moving
target, so the schema a law validates against could change underneath it.
This prevents generating logic against an old schema declaration. Never lower a
file's version to match this page.
## Step 3: Generate Machine-Readable Logic
Invoke `/law-generate` on the target law file.
This creates `machine_readable` sections, validates against the schema,
runs BDD tests, and iterates until correct (up to 3 iterations).
After completion, note the results:
- How many articles were made executable
- Validation status
- BDD test results
- Any remaining issues
## Step 4: Reverse Validation
Invoke `/law-reverse-validate` on the target law file.
This checks every element in `machine_readable` traces back to the original
legal text, catching hallucinated logic.
**Important:** If reverse validation removes any elements from the YAML, re-run
`just validate <file>` to ensure the file still passes schema validation.
Element removal can break required field constraints or leave dangling references.
If validation fails after removal, re-invoke `/law-generate` to regenerate the
affected sections (this orchestrator does not have Edit access — delegate file
modifications to the sub-skills).
## Step 5: Dependency Check
Before the final report, scan the generated `machine_readable` sections for
`source.regulation` references. For each referenced regulation:
1. Check if it exists in `corpus/regulation/nl/` using Glob
2. If missing, add it to the TODOs list with a note to run `/law-download` for it
3. If present but lacking `machine_readable`, note it needs `/law-interpret`
Additionally:
- If the law declares `hooks`, verify that target laws with matching `produces.legal_character` exist in the corpus
- If the law declares `overrides`, verify the target law/article/output exists
- If `produces` has `procedure_id`, verify the corresponding procedure definition exists
This helps the user understand what additional work is needed for full execution.
## Step 6: Final Report
Combine results from all phases into a single report:
```
Interpreted {LAW_NAME}
MvT sources: {MvT_COUNT} documents found
- {doc_id}: {title}
Articles processed: {TOTAL}
Made executable: {EXECUTABLE_COUNT}
Validation: {PASSED/FAILED}
BDD scenarios: {PASS}/{TOTAL} passing
(from MvT feature file and/or ad-hoc evaluate tests)
Iterations needed: {N}
Reverse validation:
- Fully grounded: {N} articles
- Assumptions: {N} (see details above)
- Elements removed: {N}
Remaining issues:
- {description of any unresolved failures}
Dependencies:
- {regulation_id}: {status: present/missing/needs machine_readable}
→ Run `/law-download` then `/law-interpret` if missing
TODOs:
- {external laws that need to be downloaded/implemented}
Feature file: {law directory}/scenarios/{topic}.feature
The law is now executable via the engine!
```
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!