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.6.tar.gz (209.4 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.6-py3-none-win_amd64.whl (1.6 MB view details)

Uploaded Python 3Windows x86-64

rdra_ish-0.1.6-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.6-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.6.tar.gz.

File metadata

  • Download URL: rdra_ish-0.1.6.tar.gz
  • Upload date:
  • Size: 209.4 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.6.tar.gz
Algorithm Hash digest
SHA256 4de51fb91bc4cc853484e95e744927febc8e6e928644e7cab2f4886f3bf5df6f
MD5 8de8f9c6e86d182916c7b5108513fcbb
BLAKE2b-256 ac5b47a790a8bfe723382125b7d48ea287c2d7e6ee06e6defdfbd8466e7c4e1f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: rdra_ish-0.1.6-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.6-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 93ebbb43ffc54fbf4ee991f685921b73c8a9e07dc29319c0be9216c376eb9585
MD5 beb2395ef76c273f25616395c1ed6d5e
BLAKE2b-256 b2f5c8c785b57392717de0bcd3635c99c9d2363efa05104e68a5563c38db59c8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rdra_ish-0.1.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6dbb8b64188d98c04be0593672b5c266f5ffea1cf18fdef8160405b34ef981a0
MD5 afd79d73263098ef0e22c103a0d47e00
BLAKE2b-256 faccadbfc714f55e62c26f27cb206ac99b8d77919439ae9beec6607cb925b1eb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rdra_ish-0.1.6-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1fde98997259c3506a48873fd2ed6abdc6895b4dad8e7ea55dec129a8afb3629
MD5 104f5c1d325e5fdd9a26379f2f1de553
BLAKE2b-256 54c95242db0b405354135d6a9d6d32474198ea6df7822e9995200d19e46aa31d

See more details on using hashes here.

Provenance

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