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.3.tar.gz (153.2 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.3-py3-none-win_amd64.whl (1.2 MB view details)

Uploaded Python 3Windows x86-64

rdra_ish-0.1.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

rdra_ish-0.1.3-py3-none-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file rdra_ish-0.1.3.tar.gz.

File metadata

  • Download URL: rdra_ish-0.1.3.tar.gz
  • Upload date:
  • Size: 153.2 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.3.tar.gz
Algorithm Hash digest
SHA256 0b3b4c028d7d0ab23e2815dbd41d84a076662060612dca11152f6da31ba02a4d
MD5 98070a331df3692a06544ab25e804e57
BLAKE2b-256 ef36c42c643547ccb01327a15ff4d78c964bf33b1a30901c9e8706069eab23cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for rdra_ish-0.1.3.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.3-py3-none-win_amd64.whl.

File metadata

  • Download URL: rdra_ish-0.1.3-py3-none-win_amd64.whl
  • Upload date:
  • Size: 1.2 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.3-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 8d73b3935d1c7b3982ed09eb828cbe7ad22c063b7e15ea608722d25ce2984683
MD5 c04552058f0878fd38d4a0ca5af4a7ce
BLAKE2b-256 557fdcdf2005d2126d0d1c5297a6fe812fe502fc5785adb7283b211e678227e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rdra_ish-0.1.3-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.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rdra_ish-0.1.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f37471d5f486ac9da7897e20acc001ca653ece9afcd973791fcf97d0009abd81
MD5 ac59f54559eb365a2b73fd2f931dc088
BLAKE2b-256 2fd8bf3eaa4ae8c8fad386a35c86858f759c8343f0bcb31f8a0d64bebc555969

See more details on using hashes here.

Provenance

The following attestation bundles were made for rdra_ish-0.1.3-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.3-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rdra_ish-0.1.3-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 52dd51af9f751d23e12be17f845cc8614ac8bfb5856e8721d83ced0dc3dbfdb8
MD5 200e39a76c0be93f5cfb81f4cd500433
BLAKE2b-256 8212e3da9a76f68db5bd8051039baf830f3b34e8d0e547ecc7d54e6a37f30b54

See more details on using hashes here.

Provenance

The following attestation bundles were made for rdra_ish-0.1.3-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