rdra-ish
rdra-ish is a CLI tool and DSL compiler for reviewing requirements models as code.
What is RDRA?
RDRA (Relationship-Driven Requirements Analysis) is a requirements modeling approach
that treats a system as a graph of typed elements (actors, businesses, BUCs, use cases,
screens, entities, and so on) linked by explicit predicates such as performs, contains,
and creates. The idea is to move from business-facing intent toward design review in one
model: each layer on the left explains why the layer on the right exists.
This tool implements RDRA-ISH (RDRA-inspired Implementation and System Heuristics).
It follows RDRA’s relationship-first style but is not a strict copy of the original method.
It adds vocabulary for system boundaries, APIs, access constraints, and entity lifecycle
so the same model can support check, diagrams, CSV reviews, and state derivation.
For how RDRA-ISH reads BUC, business flow, and use case, see RDRA-ish Interpretation.
It lets you model actors, use cases, APIs, screens, entities, and relationships, then:
- type-check the model (
check) - generate diagrams (
diagram) - export review CSVs (
csv) - derive reachable entity states (
states) - export / run TLA+ formal checks (
export --kind tla,verify --backend tlc)
Recommended Modeling Loop
Refine the model in small stages instead of filling every layer at once. After each
stage, run rdra-ish check on the current src/ tree and use diagrams or CSV output
to review only the concern you just added (scope, data touchpoints, boundaries,
structure, lifecycle, rules).
See Incremental Modeling Flow for stage goals, placement rules, and validation commands. For a worked example across seven steps, use samples/incremental-order.
Installation
uv tool install rdra-ish
rdra-ish --help
Quick Start
# 1) Validate model consistency
rdra-ish check samples/ec-site
# 2) Generate diagrams for review
rdra-ish diagram samples/ec-site --kind rdra --format mermaid --buc BucOrder
rdra-ish diagram samples/clinic-ops --kind sequence --format mermaid --buc BucAppointmentScheduling
# 3) Export coverage/access views
rdra-ish csv samples/clinic-ops --kind matrix
rdra-ish csv samples/clinic-ops --kind actor-permission-audit
# 4) Derive reachable states
rdra-ish states samples/clinic-ops --entity Appointment
# 5) Formal verification (requires `tlc` on PATH)
rdra-ish export samples/formal-verification/order.rdra --kind tla -o /tmp/rdra-tla
rdra-ish verify samples/formal-verification/order.rdra --backend tlc -o /tmp/rdra-tla
What You Can Review
- Structure consistency: type errors, unresolved references, duplicate definitions.
- Coverage: actor/use-case/API/entity links and CRUD matrix gaps.
- Access design: required permissions/media and actor-permission mismatches.
- State design: unreachable variants, missing creation paths, state rule violations.
- Boundary design: API/system/event-flow inconsistencies and orphaned nodes.
Learning Path
- Incremental Modeling Flow + samples/incremental-order
- Look up syntax in Language Reference only as needed
- Install agent skills from
skills/README.md(rdra-ish-write,rdra-ish-review)
Main Documents
- Incremental Modeling Flow — start here
- Language Reference
- CLI Reference
- RDRA-ish Interpretation
- State Pattern Derivation
- Formal Verification (TLA+/TLC)
- Diagram Sample Review Guide
- Changelog
- Agent skills:
skills/README.md
Samples
samples/incremental-order: seven-step refinement walkthroughsamples/ec-site: compact end-to-end samplesamples/clinic-ops: larger model with APIs, events, and access constraintssamples/personal-info: personal data management sampleskills/rdra-ish-verify/samples: TLA+/TLC examples (also linked fromsamples/formal-verification/; check files individually)
Publish (maintainers)
uv tool install maturin
uvx maturin build --sdist
uvx maturin publish
Project Layout
crates/
rdra-ish-syntax/ Lexer, parser, AST
rdra-ish-core/ Semantic model, type checks, state derivation
rdra-ish-emit/ PlantUML/Mermaid/CSV/state emitters
rdra-ish-render/ plantuml.jar wrapper
rdra-ish-cli/ rdra-ish command
samples/
clinic-ops/
ec-site/
personal-info/
License
MIT
Release files for rdra-ish 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rdra_ish-0.2.0.tar.gz | 2.0 MB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rdra_ish-0.2.0-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| rdra_ish-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| rdra_ish-0.2.0-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
Total release size: 7.7 MB
Release files / rdra_ish-0.2.0.tar.gz
| Download URL | rdra_ish-0.2.0.tar.gz |
|---|---|
| Size | 2.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0211b1c74c401118a6d6e7b47520a647547259d395accf95c560cac97f8d4f3f
|
|
BLAKE2b-256 checksum How to use checksums |
8e4d5654e0b5ac1e7c85d8457847f20d997bd896b8cde4d4317750e3bc993e55
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 19, 2026.
Transparency logRelease files / rdra_ish-0.2.0-py3-none-win_amd64.whl
| Download URL | rdra_ish-0.2.0-py3-none-win_amd64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
268c5d4a55c8d1c9db8a348bb8c3f09858a0e1c968f70d90009907cc93517661
|
|
BLAKE2b-256 checksum How to use checksums |
50e045a693be5ed2d075ba57c47f7c92c2ea4082d52a964fb5a5d2a9043ae340
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 19, 2026.
Transparency logRelease files / rdra_ish-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | rdra_ish-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
ee4d8399f0a70a8f3d29b77c64992fbf1540168cc0a4913c792cbd25d6004bb8
|
|
BLAKE2b-256 checksum How to use checksums |
501424894eb74aa6f49e421a4987b3580474f6c2e908788f844b2040c056a66d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 19, 2026.
Transparency logRelease files / rdra_ish-0.2.0-py3-none-macosx_11_0_arm64.whl
| Download URL | rdra_ish-0.2.0-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d6d51a7c1a29eacaf8f1f7dbe03671c9f0b53b7dfa309a347078f8de19b91680
|
|
BLAKE2b-256 checksum How to use checksums |
f3fac0def77837317b4f88d0f27c43c79415ee44ed65704327a9bfc889b92e3e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 19, 2026.
Transparency log