Skip to main content

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

Samples

  • samples/ec-site: compact end-to-end sample
  • samples/clinic-ops: larger model with APIs, events, and access constraints
  • samples/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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rdra_ish-0.1.7.tar.gz (219.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

rdra_ish-0.1.7-py3-none-win_amd64.whl (1.6 MB view details)

Uploaded Python 3Windows x86-64

rdra_ish-0.1.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

rdra_ish-0.1.7-py3-none-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

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

Hashes for rdra_ish-0.1.7.tar.gz
Algorithm Hash digest
SHA256 8c9d4afb722c475809784435ccca432b9a48bad2e173cf813a8a0c0709deb768
MD5 d8357a95a7ffb140a51df2f98abe39eb
BLAKE2b-256 12b5250955c2de53d5bf9228b972af927e2023a9aaa44a43b5ff6054535d8d6f

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for rdra_ish-0.1.7-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 f9e4f1035cc80f5fd33b502bd98ccf104cd86fdf77a50acf8f0dfd44232c4fca
MD5 bc42bdd204a76fd0bc4e025291fea0f5
BLAKE2b-256 439bb2fbf1f9a219a7ad25c32d0f6ef970289c58491efc7d4087d79dd965b592

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rdra_ish-0.1.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rdra_ish-0.1.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 62207407128a4f27b0e9f61a20438ade06b82cfd8eb5a0afdfe3a8344e8a749c
MD5 078ecb634b5cd0c5da40cbc4658ffa97
BLAKE2b-256 9a0c0774ac90af6002dd59960c77a13b57ca68975985567a068b62ecf42bb514

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rdra_ish-0.1.7-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rdra_ish-0.1.7-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 87acc354aa7d639b430092d2b7b84eb23050a1b17ed172d0960f0918f6ab0c52
MD5 51e651838ee2e6138489a0809ce32413
BLAKE2b-256 0f92c2fd204b546b98fa3e3061af4c1f39793d089de98cbdf9a41f6df9c53b34

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page