Elements

graph TD; %% REQVIRE-AUTOGENERATED-DIAGRAM %% Graph styling classDef userRequirement fill:#D1C4E9,stroke:#7E57C2,stroke-width:2px; classDef systemRequirement fill:#E1D8EE,stroke:#673AB7,stroke-width:1.5px; classDef verification fill:#DCEDC8,stroke:#4CAF50,stroke-width:2px; classDef folder fill:#FAFAFA,stroke:#9E9E9E,stroke-width:3px; classDef file fill:#FFF8E1,stroke:#FFCA28,stroke-width:2px; classDef default fill:#F5F5F5,stroke:#424242,stroke-width:1.5px; subgraph 8735c0a811307e57["📁 requirements/Functional/Core"] subgraph ce194c8f6727a221["📄 Configuration.md"] f02dac6e75313544["Coexistence of Structured and Unstructured Documents
📎 requirements/Refinements.md#refinement-specification"]; class f02dac6e75313544 userRequirement; click f02dac6e75313544 "Configuration.html#coexistence-of-structured-and-unstructured-documents"; 66f4b835345ddf91["Ignore Files Integration"]; class 66f4b835345ddf91 systemRequirement; click 66f4b835345ddf91 "Configuration.html#ignore-files-integration"; a1795409a371f481["Ignoring Unstructured Documents"]; class a1795409a371f481 systemRequirement; click a1795409a371f481 "Configuration.html#ignoring-unstructured-documents"; f225228c6f9046e1["Requirements Processing"]; class f225228c6f9046e1 systemRequirement; click f225228c6f9046e1 "Configuration.html#requirements-processing"; fdaf3aa93f19ec5["Reserved Repository Files Exclusion"]; class fdaf3aa93f19ec5 systemRequirement; click fdaf3aa93f19ec5 "Configuration.html#reserved-repository-files-exclusion"; 9577f209f3e80942["Structured Markdown Files Search and Detection"]; class 9577f209f3e80942 systemRequirement; click 9577f209f3e80942 "Configuration.html#structured-markdown-files-search-and-detection"; end subgraph 525b4b735cf204bb["📄 Specifications.md"] bce2fe8ffb765797["Ignore Files Specification"]; class bce2fe8ffb765797 default; click bce2fe8ffb765797 "Specifications.html#ignore-files-specification"; 973db75b41c8556d["Reserved Files Specification"]; class 973db75b41c8556d default; click 973db75b41c8556d "Specifications.html#reserved-files-specification"; end end subgraph 6c93988fc728d1f8["📁 requirements/Functional/Core/Verifications"] subgraph 46a9d0ceb9db210e["📄 ValidationVerifications.md"] f8b4586a036406cd["File Exclusion Test"]; class f8b4586a036406cd verification; click f8b4586a036406cd "Verifications/ValidationVerifications.html#file-exclusion-test"; cd31aec9ae0c3ed3["Requirements Files Search and Detection Test"]; class cd31aec9ae0c3ed3 verification; click cd31aec9ae0c3ed3 "Verifications/ValidationVerifications.html#requirements-files-search-and-detection-test"; 5352180257d54fb2["Same-File Fragment Relations Test"]; class 5352180257d54fb2 verification; click 5352180257d54fb2 "Verifications/ValidationVerifications.html#same-file-fragment-relations-test"; end end subgraph 91eede421faaa553["📁 requirements/Functional/Operations"] subgraph e1e686bef27807d6["📄 ElementManipulation.md"] 9cdb6297e49a3802["Target Location Validation and Auto-Creation
📎 requirements/Functional/Core/Specifications.md#git-repository-scope-specification"]; class 9cdb6297e49a3802 systemRequirement; click 9cdb6297e49a3802 "../Operations/ElementManipulation.html#target-location-validation-and-auto-creation"; end subgraph e87e3ee72f8fcc8a["📄 Formatting.md"] 3126a7da8d2fc941["File Pattern Exclusion for Format"]; class 3126a7da8d2fc941 systemRequirement; click 3126a7da8d2fc941 "../Operations/Formatting.html#file-pattern-exclusion-for-format"; end end subgraph 11bcfbac66c238f6["📁 requirements/Functional/Processing/Verifications"] subgraph de803263fbe70715["📄 ChangeImpactVerifications.md"] d7a45cebd272c16["Element Content Extraction Test"]; class d7a45cebd272c16 verification; click d7a45cebd272c16 "../Processing/Verifications/ChangeImpactVerifications.html#element-content-extraction-test"; end end f02dac6e75313544 -.->|deriveReqT| a1795409a371f481; 66f4b835345ddf91 -.->|deriveReqT| 9cdb6297e49a3802; ff93ce3d1f286d8a["config.rs"]; class ff93ce3d1f286d8a default; click ff93ce3d1f286d8a "../../../cli/src/config.rs"; 66f4b835345ddf91 -->|satisfiedBy| ff93ce3d1f286d8a; 66f4b835345ddf91 -->|satisfiedBy| bce2fe8ffb765797; 66f4b835345ddf91 -.->|verifiedBy| f8b4586a036406cd; a1795409a371f481 -.->|deriveReqT| 66f4b835345ddf91; a1795409a371f481 -.->|deriveReqT| f225228c6f9046e1; a1795409a371f481 -.->|deriveReqT| fdaf3aa93f19ec5; a1795409a371f481 -.->|deriveReqT| 3126a7da8d2fc941; a1795409a371f481 -->|satisfiedBy| ff93ce3d1f286d8a; f225228c6f9046e1 -.->|deriveReqT| 9577f209f3e80942; 499d48218b73f571["model.rs"]; class 499d48218b73f571 default; click 499d48218b73f571 "../../../core/src/model.rs"; f225228c6f9046e1 -->|satisfiedBy| 499d48218b73f571; 35bd98d101f36b62["parser.rs"]; class 35bd98d101f36b62 default; click 35bd98d101f36b62 "../../../core/src/parser.rs"; f225228c6f9046e1 -->|satisfiedBy| 35bd98d101f36b62; f225228c6f9046e1 -.->|verifiedBy| 5352180257d54fb2; f225228c6f9046e1 -.->|verifiedBy| d7a45cebd272c16; fdaf3aa93f19ec5 -->|satisfiedBy| ff93ce3d1f286d8a; fdaf3aa93f19ec5 -->|satisfiedBy| 973db75b41c8556d; fdaf3aa93f19ec5 -.->|verifiedBy| f8b4586a036406cd; 9577f209f3e80942 -->|satisfiedBy| 499d48218b73f571; 9577f209f3e80942 -.->|verifiedBy| cd31aec9ae0c3ed3; 95cf526671ec752c["graph_registry.rs"]; class 95cf526671ec752c default; click 95cf526671ec752c "../../../core/src/graph_registry.rs"; 9cdb6297e49a3802 -->|satisfiedBy| 95cf526671ec752c; bdf9762d399478a5["utils.rs"]; class bdf9762d399478a5 default; click bdf9762d399478a5 "../../../core/src/utils.rs"; 9cdb6297e49a3802 -->|satisfiedBy| bdf9762d399478a5; 9cdb6297e49a3802 -->|satisfiedBy| 1dc0e8b76789ffce; 9cdb6297e49a3802 -.->|verifiedBy| c0a8cdea5e5972df; 94d34e73992ff9ac["test.sh"]; class 94d34e73992ff9ac default; click 94d34e73992ff9ac "../../../tests/test-gitignore-integration/test.sh"; f8b4586a036406cd -->|satisfiedBy| 94d34e73992ff9ac; 3126a7da8d2fc941 -.->|deriveReqT| 327e10e1bebd5bde; 3126a7da8d2fc941 -->|satisfiedBy| bdf9762d399478a5; f0923d0189e77f4c["test.sh"]; class f0923d0189e77f4c default; click f0923d0189e77f4c "../../../tests/test-fragment-relations/test.sh"; 5352180257d54fb2 -->|satisfiedBy| f0923d0189e77f4c; dd7cc79a76771691["test.sh"]; class dd7cc79a76771691 default; click dd7cc79a76771691 "../../../tests/test-element-content-extraction/test.sh"; d7a45cebd272c16 -->|satisfiedBy| dd7cc79a76771691; b3573dfcbb8f5f40["test.sh"]; class b3573dfcbb8f5f40 default; click b3573dfcbb8f5f40 "../../../tests/test-excluded-patterns/test.sh"; cd31aec9ae0c3ed3 -->|satisfiedBy| b3573dfcbb8f5f40;

Coexistence of Structured and Unstructured Documents

The system shall allow structured markdown and unstructured. (eg., markdown, PDFs, DOCX, raw text) documents to coexist within the same System model.

Metadata

  • type: user-requirement

Attachments

Relations


Ignoring Unstructured Documents

The system shall support configurable glob patterns to exclude specific files from requirement processing.

Details

Exclusion patterns are defined in .reqvireignore file at the repository root, using the same format as .gitignore:

# Example patterns to exclude from structured documents processing
**/Logical*.md
**/Physical*.md
**/draft-*.md
examples/**

The .reqvireignore file provides Reqvire-specific exclusions for files that should remain in version control but not be processed as requirements.

Metadata

  • type: requirement

Relations


Ignore Files Integration

The system shall integrate with Git workflows by reading exclusion patterns from .gitignore and .reqvireignore files.

Details

  • The system shall read exclusion patterns from repository root .gitignore and .reqvireignore files
  • The system shall exclude files matching patterns from being parsed as structured markdown
  • The system shall differentiate between .gitignore exclusions (complete) and .reqvireignore exclusions (parsing only)
  • The system shall implement ignore file processing following clearly defined specifications

Metadata

  • type: requirement

Relations


Requirements Processing

The system shall parse the files in all folders and subfolders from the root of git repository which are not explicitly excluded using .gitignore and .reqvireignore files.

Details

File exclusion is handled through:

  • .gitignore patterns (files not in version control)
  • .reqvireignore patterns (files in version control but excluded from requirements processing)
  • Reserved repository files (README.md, LICENSE.md, etc.)

Metadata

  • type: requirement

Relations


Structured Markdown Files Search and Detection

The system shall identify all structured markdown documents available for processing in all directories and sub-directories of the git repository root based on predefined rules.

Details

Identification Process:

  1. File Selection: The process scans all files in the the git repository root and all sub folders.
  2. Excluded Patterns Check: If a file matches any excluded patterns, it is marked as not a structured document file.
  3. File Extension Check: If the file does not have a .md extension, it is marked as not a structured document file.

Metadata

  • type: requirement

Relations


Reserved Repository Files Exclusion

The system shall automatically exclude certain common repository documentation files from structured markdown processing.

Details

The system shall define which repository documentation filenames are reserved and excluded from parsing.

Reserved files serve general repository documentation purposes rather than structured requirements. This automatic exclusion prevents confusion and reduces the need for explicit .reqvireignore patterns.

Metadata

  • type: requirement

Relations