RDRA-inspired DSL compiler and diagram generator
Project description
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)
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
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.
Main Documents
- Changelog
- CLI Reference
- Language Reference
- Incremental Modeling Flow
- Diagram Sample Review Guide
- State Pattern Derivation
- RDRA-ish Interpretation
Samples
samples/ec-site: compact end-to-end samplesamples/clinic-ops: larger model with APIs, events, and access constraintssamples/personal-info: personal data management sample
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
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 rdra_ish-0.1.7.tar.gz.
File metadata
- Download URL: rdra_ish-0.1.7.tar.gz
- Upload date:
- Size: 219.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 |
8c9d4afb722c475809784435ccca432b9a48bad2e173cf813a8a0c0709deb768
|
|
| MD5 |
d8357a95a7ffb140a51df2f98abe39eb
|
|
| BLAKE2b-256 |
12b5250955c2de53d5bf9228b972af927e2023a9aaa44a43b5ff6054535d8d6f
|
Provenance
The following attestation bundles were made for rdra_ish-0.1.7.tar.gz:
Publisher:
publish-pypi.yml on manji-0/rdra-ish-dsl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rdra_ish-0.1.7.tar.gz -
Subject digest:
8c9d4afb722c475809784435ccca432b9a48bad2e173cf813a8a0c0709deb768 - Sigstore transparency entry: 1933614955
- Sigstore integration time:
-
Permalink:
manji-0/rdra-ish-dsl@641d83816bc341aa4ecd1852ed69f55f888d57a3 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/manji-0
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@641d83816bc341aa4ecd1852ed69f55f888d57a3 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rdra_ish-0.1.7-py3-none-win_amd64.whl.
File metadata
- Download URL: rdra_ish-0.1.7-py3-none-win_amd64.whl
- Upload date:
- Size: 1.6 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9e4f1035cc80f5fd33b502bd98ccf104cd86fdf77a50acf8f0dfd44232c4fca
|
|
| MD5 |
bc42bdd204a76fd0bc4e025291fea0f5
|
|
| BLAKE2b-256 |
439bb2fbf1f9a219a7ad25c32d0f6ef970289c58491efc7d4087d79dd965b592
|
Provenance
The following attestation bundles were made for rdra_ish-0.1.7-py3-none-win_amd64.whl:
Publisher:
publish-pypi.yml on manji-0/rdra-ish-dsl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rdra_ish-0.1.7-py3-none-win_amd64.whl -
Subject digest:
f9e4f1035cc80f5fd33b502bd98ccf104cd86fdf77a50acf8f0dfd44232c4fca - Sigstore transparency entry: 1933615367
- Sigstore integration time:
-
Permalink:
manji-0/rdra-ish-dsl@641d83816bc341aa4ecd1852ed69f55f888d57a3 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/manji-0
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@641d83816bc341aa4ecd1852ed69f55f888d57a3 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rdra_ish-0.1.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: rdra_ish-0.1.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.7 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62207407128a4f27b0e9f61a20438ade06b82cfd8eb5a0afdfe3a8344e8a749c
|
|
| MD5 |
078ecb634b5cd0c5da40cbc4658ffa97
|
|
| BLAKE2b-256 |
9a0c0774ac90af6002dd59960c77a13b57ca68975985567a068b62ecf42bb514
|
Provenance
The following attestation bundles were made for rdra_ish-0.1.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish-pypi.yml on manji-0/rdra-ish-dsl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rdra_ish-0.1.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
62207407128a4f27b0e9f61a20438ade06b82cfd8eb5a0afdfe3a8344e8a749c - Sigstore transparency entry: 1933615093
- Sigstore integration time:
-
Permalink:
manji-0/rdra-ish-dsl@641d83816bc341aa4ecd1852ed69f55f888d57a3 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/manji-0
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@641d83816bc341aa4ecd1852ed69f55f888d57a3 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rdra_ish-0.1.7-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: rdra_ish-0.1.7-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.6 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
87acc354aa7d639b430092d2b7b84eb23050a1b17ed172d0960f0918f6ab0c52
|
|
| MD5 |
51e651838ee2e6138489a0809ce32413
|
|
| BLAKE2b-256 |
0f92c2fd204b546b98fa3e3061af4c1f39793d089de98cbdf9a41f6df9c53b34
|
Provenance
The following attestation bundles were made for rdra_ish-0.1.7-py3-none-macosx_11_0_arm64.whl:
Publisher:
publish-pypi.yml on manji-0/rdra-ish-dsl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rdra_ish-0.1.7-py3-none-macosx_11_0_arm64.whl -
Subject digest:
87acc354aa7d639b430092d2b7b84eb23050a1b17ed172d0960f0918f6ab0c52 - Sigstore transparency entry: 1933615245
- Sigstore integration time:
-
Permalink:
manji-0/rdra-ish-dsl@641d83816bc341aa4ecd1852ed69f55f888d57a3 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/manji-0
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@641d83816bc341aa4ecd1852ed69f55f888d57a3 -
Trigger Event:
workflow_dispatch
-
Statement type: