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 6c93988fc728d1f8["πŸ“ requirements/Functional/Core/Verifications"] subgraph 622a654342e7abad["πŸ“„ AttachmentsVerifications.md"] 1c80039ebf669864["Attach Command Verification"]; class 1c80039ebf669864 verification; click 1c80039ebf669864 "../../Functional/Core/Verifications/AttachmentsVerifications.html#attach-command-verification"; 29ee19ee5dd27edc["Attachment Search Filters Verification"]; class 29ee19ee5dd27edc verification; click 29ee19ee5dd27edc "../../Functional/Core/Verifications/AttachmentsVerifications.html#attachment-search-filters-verification"; 285be0a87e4eada0["Detach Command Verification"]; class 285be0a87e4eada0 verification; click 285be0a87e4eada0 "../../Functional/Core/Verifications/AttachmentsVerifications.html#detach-command-verification"; 2f4e61e9544880a6["Move Asset Command Verification"]; class 2f4e61e9544880a6 verification; click 2f4e61e9544880a6 "../../Functional/Core/Verifications/AttachmentsVerifications.html#move-asset-command-verification"; 9ae645d347d4b31a["Remove Asset Command Verification"]; class 9ae645d347d4b31a verification; click 9ae645d347d4b31a "../../Functional/Core/Verifications/AttachmentsVerifications.html#remove-asset-command-verification"; end subgraph 46a9d0ceb9db210e["πŸ“„ ValidationVerifications.md"] ad323c8d4c0751e["Invalid Relations Test"]; class ad323c8d4c0751e verification; click ad323c8d4c0751e "../../Functional/Core/Verifications/ValidationVerifications.html#invalid-relations-test"; c40e17e0f8f2b5ec["Subdirectory Processing Verification"]; class c40e17e0f8f2b5ec verification; click c40e17e0f8f2b5ec "../../Functional/Core/Verifications/ValidationVerifications.html#subdirectory-processing-verification"; end end subgraph 75874bcc96c01d2f["πŸ“ requirements/Functional/Operations/Verifications"] subgraph 264302f069db5bdb["πŸ“„ ElementManipulationVerifications.md"] 9ce04315a8dd0d88["Add Command Duplicate Detection Test"]; class 9ce04315a8dd0d88 verification; click 9ce04315a8dd0d88 "../../Functional/Operations/Verifications/ElementManipulationVerifications.html#add-command-duplicate-detection-test"; f7d422af274a64cf["Add Command Error Messages Test"]; class f7d422af274a64cf verification; click f7d422af274a64cf "../../Functional/Operations/Verifications/ElementManipulationVerifications.html#add-command-error-messages-test"; 868e15205b620ba2["CLI Add Element Test
πŸ“Ž requirements/Functional/Operations/Behaviors.md#element-ordering-behavior"]; class 868e15205b620ba2 verification; click 868e15205b620ba2 "../../Functional/Operations/Verifications/ElementManipulationVerifications.html#cli-add-element-test"; d4a6f578d691e888["CLI Move Element Test
πŸ“Ž requirements/Functional/Operations/Behaviors.md#element-ordering-behavior"]; class d4a6f578d691e888 verification; click d4a6f578d691e888 "../../Functional/Operations/Verifications/ElementManipulationVerifications.html#cli-move-element-test"; 7d317f5d862a0785["CLI Move File Test"]; class 7d317f5d862a0785 verification; click 7d317f5d862a0785 "../../Functional/Operations/Verifications/ElementManipulationVerifications.html#cli-move-file-test"; c5f295328df58029["CLI Remove Element Test"]; class c5f295328df58029 verification; click c5f295328df58029 "../../Functional/Operations/Verifications/ElementManipulationVerifications.html#cli-remove-element-test"; 7701c4bcfa966fe6["CLI Rename Element Test"]; class 7701c4bcfa966fe6 verification; click 7701c4bcfa966fe6 "../../Functional/Operations/Verifications/ElementManipulationVerifications.html#cli-rename-element-test"; 410dbe84dc2c3481["Link Command Cross-Section Detection Test"]; class 410dbe84dc2c3481 verification; click 410dbe84dc2c3481 "../../Functional/Operations/Verifications/ElementManipulationVerifications.html#link-command-cross-section-detection-test"; ea3a2bf2fbe74057["Link Command Verification"]; class ea3a2bf2fbe74057 verification; click ea3a2bf2fbe74057 "../../Functional/Operations/Verifications/ElementManipulationVerifications.html#link-command-verification"; 9f8ff23aca853fa0["Unlink Command Verification"]; class 9f8ff23aca853fa0 verification; click 9f8ff23aca853fa0 "../../Functional/Operations/Verifications/ElementManipulationVerifications.html#unlink-command-verification"; end subgraph cae715fe712bf6a2["πŸ“„ FormattingVerifications.md"] c89bd750e0ad5b9d["Element Ordering Verification
πŸ“Ž requirements/Functional/Operations/Behaviors.md#element-ordering-behavior"]; class c89bd750e0ad5b9d verification; click c89bd750e0ad5b9d "../../Functional/Operations/Verifications/FormattingVerifications.html#element-ordering-verification"; ccbfdf0d74ac48bf["Format Command Requirements Verification"]; class ccbfdf0d74ac48bf verification; click ccbfdf0d74ac48bf "../../Functional/Operations/Verifications/FormattingVerifications.html#format-command-requirements-verification"; 5df244b54d1b239c["Full Relations Insertion Verification"]; class 5df244b54d1b239c verification; click 5df244b54d1b239c "../../Functional/Operations/Verifications/FormattingVerifications.html#full-relations-insertion-verification"; end end subgraph 6ac6c5ebccc78d5e["πŸ“ requirements/Functional/Output/Verifications"] subgraph d02aea5a4453b115["πŸ“„ ReportingVerifications.md"] ccc548a455bf2b45["CLI Collect Command Test"]; class ccc548a455bf2b45 verification; click ccc548a455bf2b45 "../../Functional/Output/Verifications/ReportingVerifications.html#cli-collect-command-test"; 3c9f85ce80e7b0c["Resources Report Verification"]; class 3c9f85ce80e7b0c verification; click 3c9f85ce80e7b0c "../../Functional/Output/Verifications/ReportingVerifications.html#resources-report-verification"; 246afbd94e01647b["Search Command Tests"]; class 246afbd94e01647b verification; click 246afbd94e01647b "../../Functional/Output/Verifications/ReportingVerifications.html#search-command-tests"; 75ff73f91ee1b985["Verification Coverage Report Test"]; class 75ff73f91ee1b985 verification; click 75ff73f91ee1b985 "../../Functional/Output/Verifications/ReportingVerifications.html#verification-coverage-report-test"; e13ea8567a46f8fd["Verification Traces Filter Options Test"]; class e13ea8567a46f8fd verification; click e13ea8567a46f8fd "../../Functional/Output/Verifications/ReportingVerifications.html#verification-traces-filter-options-test"; fb056d10eb059222["Verification Traces From-Folder Test"]; class fb056d10eb059222 verification; click fb056d10eb059222 "../../Functional/Output/Verifications/ReportingVerifications.html#verification-traces-from-folder-test"; end end subgraph 11bcfbac66c238f6["πŸ“ requirements/Functional/Processing/Verifications"] subgraph de803263fbe70715["πŸ“„ ChangeImpactVerifications.md"] b4cebcb9f2649a4f["Change Impact Analysis Verification"]; class b4cebcb9f2649a4f verification; click b4cebcb9f2649a4f "../../Functional/Processing/Verifications/ChangeImpactVerifications.html#change-impact-analysis-verification"; dc9eb3da0c5e0ed0["Change Impact Detection Test"]; class dc9eb3da0c5e0ed0 verification; click dc9eb3da0c5e0ed0 "../../Functional/Processing/Verifications/ChangeImpactVerifications.html#change-impact-detection-test"; b5f861c2be8eddab["Change Impact Relations Test"]; class b5f861c2be8eddab verification; click b5f861c2be8eddab "../../Functional/Processing/Verifications/ChangeImpactVerifications.html#change-impact-relations-test"; end end subgraph cfe1eea0278796bc["πŸ“ requirements/Interfaces/CLI"] subgraph 43307c569ff89429["πŸ“„ Commands.md"] 457ab64992d42aa4["Attachment Commands
πŸ“Ž requirements/Functional/Operations/Behaviors.md#file-persistence-behavior
πŸ“Ž requirements/Functional/Operations/Behaviors.md#dry-run-mode-behavior
πŸ“Ž requirements/Functional/Output/Specifications.md#diff-output-format-specification
πŸ“Ž requirements/Functional/Core/Behaviors.md#attachment-input-auto-detection-behavior"]; class 457ab64992d42aa4 systemRequirement; click 457ab64992d42aa4 "Commands.html#attachment-commands"; 104c59d25b737d22["CLI Add Element Command
πŸ“Ž requirements/Functional/Core/Specifications.md#git-repository-scope-specification
πŸ“Ž requirements/Functional/Operations/Behaviors.md#file-persistence-behavior
πŸ“Ž requirements/Functional/Operations/Constraints.md#target-location-constraint
πŸ“Ž requirements/Functional/Operations/Behaviors.md#dry-run-mode-behavior
πŸ“Ž requirements/Functional/Operations/Behaviors.md#create-element-override-behavior
πŸ“Ž requirements/Functional/Output/Specifications.md#diff-output-format-specification
πŸ“Ž requirements/Functional/Output/Specifications.md#json-output-structure
πŸ“Ž requirements/Functional/Operations/Specifications.md#create-element-workflow-specification"]; class 104c59d25b737d22 systemRequirement; click 104c59d25b737d22 "Commands.html#cli-add-element-command"; 68e30181f97f6f71["CLI Change Impact Report Command
πŸ“Ž requirements/Functional/Output/Specifications.md#json-output-structure
πŸ“Ž requirements/Functional/Output/Specifications.md#text-output-formatting
πŸ“Ž requirements/Functional/Processing/Behaviors.md#change-propagation-behavior
πŸ“Ž requirements/Functional/Output/Specifications.md#mermaid-diagram-style-specification"]; class 68e30181f97f6f71 systemRequirement; click 68e30181f97f6f71 "Commands.html#cli-change-impact-report-command"; 9a2adde3721af9df["CLI Collect Command
πŸ“Ž requirements/Functional/Output/Specifications.md#collect-content-specification
πŸ“Ž requirements/Functional/Output/Specifications.md#collect-output-format-specification"]; class 9a2adde3721af9df systemRequirement; click 9a2adde3721af9df "Commands.html#cli-collect-command"; 218fa75a3081be32["CLI Containment Command
πŸ“Ž requirements/Functional/Output/Specifications.md#json-output-structure
πŸ“Ž requirements/Functional/Output/Behaviors.md#short-mode-behavior
πŸ“Ž requirements/Functional/Output/Specifications.md#mermaid-diagram-style-specification
πŸ“Ž ContainmentView.md
πŸ“Ž requirements/Interfaces/WebInterface/Specifications.md#d3js-containment-tree-specification"]; class 218fa75a3081be32 systemRequirement; click 218fa75a3081be32 "Commands.html#cli-containment-command"; 43efd1fafe961f2e["CLI Coverage Command
πŸ“Ž requirements/Functional/Core/Specifications.md#verification-type-selection-guidelines
πŸ“Ž requirements/Functional/Output/Specifications.md#json-output-structure
πŸ“Ž requirements/Functional/Output/Specifications.md#text-output-formatting"]; class 43efd1fafe961f2e systemRequirement; click 43efd1fafe961f2e "Commands.html#cli-coverage-command"; d6147550e948449e["CLI Interface Structure"]; class d6147550e948449e systemRequirement; click d6147550e948449e "Commands.html#cli-interface-structure"; ec02481a0771dca["CLI Lint Command
πŸ“Ž requirements/Functional/Operations/Behaviors.md#dry-run-mode-behavior
πŸ“Ž requirements/Functional/Output/Specifications.md#json-output-structure
πŸ“Ž requirements/Functional/Operations/Specifications.md#lint-output-specification
πŸ“Ž requirements/Functional/Output/Specifications.md#text-output-formatting
πŸ“Ž requirements/Functional/Operations/Specifications.md#multi-branch-convergence-detection-specification"]; class ec02481a0771dca systemRequirement; click ec02481a0771dca "Commands.html#cli-lint-command"; 51a6083e0a55197c["CLI Merge Element Command
πŸ“Ž requirements/Functional/Operations/Behaviors.md#merge-content-transformation-behavior
πŸ“Ž requirements/Functional/Operations/Constraints.md#merge-type-compatibility-constraint
πŸ“Ž requirements/Functional/Output/Specifications.md#json-output-structure
πŸ“Ž requirements/Functional/Operations/Specifications.md#merge-element-workflow-specification"]; class 51a6083e0a55197c systemRequirement; click 51a6083e0a55197c "Commands.html#cli-merge-element-command"; 151987ac330b33f0["CLI Model Diagram Command
πŸ“Ž requirements/Functional/Output/Specifications.md#json-output-structure
πŸ“Ž requirements/Functional/Output/Specifications.md#mermaid-diagram-style-specification
πŸ“Ž requirements/Functional/Output/Behaviors.md#reverse-relation-traversal-behavior
πŸ“Ž requirements/Functional/Output/Behaviors.md#start-element-type-filter-behavior
πŸ“Ž requirements/Functional/Core/Behaviors.md#type-validation-error-behavior"]; class 151987ac330b33f0 systemRequirement; click 151987ac330b33f0 "Commands.html#cli-model-diagram-command"; a68fbec67469256b["CLI Move Asset Command
πŸ“Ž requirements/Functional/Operations/Behaviors.md#file-persistence-behavior
πŸ“Ž requirements/Functional/Operations/Behaviors.md#dry-run-mode-behavior
πŸ“Ž requirements/Functional/Output/Specifications.md#diff-output-format-specification"]; class a68fbec67469256b systemRequirement; click a68fbec67469256b "Commands.html#cli-move-asset-command"; 7ef6cb0e4258e1bc["CLI Move Element Command
πŸ“Ž requirements/Functional/Core/Specifications.md#git-repository-scope-specification
πŸ“Ž requirements/Functional/Operations/Behaviors.md#file-persistence-behavior
πŸ“Ž requirements/Functional/Operations/Constraints.md#target-location-constraint
πŸ“Ž requirements/Functional/Operations/Behaviors.md#dry-run-mode-behavior
πŸ“Ž requirements/Functional/Output/Specifications.md#diff-output-format-specification
πŸ“Ž requirements/Functional/Output/Specifications.md#json-output-structure
πŸ“Ž requirements/Functional/Operations/Specifications.md#move-element-workflow-specification"]; class 7ef6cb0e4258e1bc systemRequirement; click 7ef6cb0e4258e1bc "Commands.html#cli-move-element-command"; d9c57dd799158af9["CLI Move File Command
πŸ“Ž requirements/Functional/Operations/Behaviors.md#file-persistence-behavior
πŸ“Ž requirements/Functional/Operations/Constraints.md#target-location-constraint
πŸ“Ž requirements/Functional/Operations/Behaviors.md#dry-run-mode-behavior
πŸ“Ž requirements/Functional/Output/Specifications.md#diff-output-format-specification
πŸ“Ž requirements/Functional/Output/Specifications.md#json-output-structure"]; class d9c57dd799158af9 systemRequirement; click d9c57dd799158af9 "Commands.html#cli-move-file-command"; 91025cd88b1df4f0["CLI Remove Asset Command
πŸ“Ž requirements/Functional/Operations/Behaviors.md#file-persistence-behavior
πŸ“Ž requirements/Functional/Operations/Behaviors.md#dry-run-mode-behavior
πŸ“Ž requirements/Functional/Output/Specifications.md#diff-output-format-specification"]; class 91025cd88b1df4f0 systemRequirement; click 91025cd88b1df4f0 "Commands.html#cli-remove-asset-command"; 1f8022dac203e679["CLI Remove Element Command
πŸ“Ž requirements/Functional/Operations/Behaviors.md#file-persistence-behavior
πŸ“Ž requirements/Functional/Operations/Behaviors.md#dry-run-mode-behavior
πŸ“Ž requirements/Functional/Output/Specifications.md#diff-output-format-specification
πŸ“Ž requirements/Functional/Output/Specifications.md#json-output-structure
πŸ“Ž requirements/Functional/Operations/Specifications.md#delete-element-workflow-specification"]; class 1f8022dac203e679 systemRequirement; click 1f8022dac203e679 "Commands.html#cli-remove-element-command"; 2f51b946a8587225["CLI Rename Element Command
πŸ“Ž requirements/Functional/Operations/Behaviors.md#file-persistence-behavior
πŸ“Ž requirements/Functional/Operations/Behaviors.md#dry-run-mode-behavior
πŸ“Ž requirements/Functional/Output/Specifications.md#diff-output-format-specification
πŸ“Ž requirements/Functional/Output/Specifications.md#json-output-structure"]; class 2f51b946a8587225 systemRequirement; click 2f51b946a8587225 "Commands.html#cli-rename-element-command"; ee7ad64abb668237["CLI Resources Command
πŸ“Ž requirements/Functional/Output/Specifications.md#text-output-formatting"]; class ee7ad64abb668237 systemRequirement; click ee7ad64abb668237 "Commands.html#cli-resources-command"; d2fc543d82f61bbb["CLI Search Command
πŸ“Ž requirements/Refinements.md#supported-element-types-specification
πŸ“Ž requirements/Functional/Output/Specifications.md#json-output-structure
πŸ“Ž requirements/Functional/Output/Behaviors.md#short-mode-behavior
πŸ“Ž requirements/Functional/Output/Specifications.md#text-output-formatting
πŸ“Ž requirements/Functional/Core/Behaviors.md#type-validation-error-behavior"]; class d2fc543d82f61bbb systemRequirement; click d2fc543d82f61bbb "Commands.html#cli-search-command"; 9578836eb8e0fc6["CLI Traces Command
πŸ“Ž requirements/Functional/Output/Specifications.md#json-output-structure
πŸ“Ž requirements/Functional/Processing/Specifications.md#verification-trace-tree-construction
πŸ“Ž requirements/Functional/Output/Specifications.md#mermaid-diagram-style-specification
πŸ“Ž requirements/Functional/Core/Behaviors.md#type-validation-error-behavior"]; class 9578836eb8e0fc6 systemRequirement; click 9578836eb8e0fc6 "Commands.html#cli-traces-command"; 62f24ccbcd1f428a["Detailed Error Handling and Logging
πŸ“Ž requirements/Functional/Core/Behaviors.md#validation-error-reporting-behavior"]; class 62f24ccbcd1f428a systemRequirement; click 62f24ccbcd1f428a "Commands.html#detailed-error-handling-and-logging"; 8d334537008d94ba["Format Command
πŸ“Ž requirements/Functional/Operations/Behaviors.md#dry-run-mode-behavior
πŸ“Ž requirements/Functional/Output/Specifications.md#diff-output-format-specification
πŸ“Ž requirements/Functional/Output/Specifications.md#json-output-structure"]; class 8d334537008d94ba systemRequirement; click 8d334537008d94ba "Commands.html#format-command"; c04221154b7fc90d["Relation Commands
πŸ“Ž requirements/Functional/Operations/Specifications.md#relation-operations-specification
πŸ“Ž RelationTypes.md
πŸ“Ž requirements/Functional/Operations/Behaviors.md#dry-run-mode-behavior
πŸ“Ž requirements/Functional/Output/Specifications.md#diff-output-format-specification"]; class c04221154b7fc90d systemRequirement; click c04221154b7fc90d "Commands.html#relation-commands"; a8750da2c3580220["Validate Command
πŸ“Ž requirements/Functional/Core/Behaviors.md#two-pass-validation-behavior
πŸ“Ž requirements/Functional/Core/Behaviors.md#validation-error-reporting-behavior
πŸ“Ž requirements/Functional/Output/Specifications.md#json-output-structure
πŸ“Ž requirements/Functional/Output/Specifications.md#error-message-format-specification"]; class a8750da2c3580220 systemRequirement; click a8750da2c3580220 "Commands.html#validate-command"; 43f4a4bb333138eb["Verification Traces Element Navigation"]; class 43f4a4bb333138eb systemRequirement; click 43f4a4bb333138eb "Commands.html#verification-traces-element-navigation"; end end subgraph e258363212a98952["πŸ“ requirements/Interfaces/CLI/Verifications"] subgraph 81d836bf8ae49ad4["πŸ“„ CLIVerifications.md"] 349d095f92fc1135["CLI Git Commit Hash Flag Test"]; class 349d095f92fc1135 verification; click 349d095f92fc1135 "Verifications/CLIVerifications.html#cli-git-commit-hash-flag-test"; bd0b4833b30da28["CLI Help Structure Verification"]; class bd0b4833b30da28 verification; click bd0b4833b30da28 "Verifications/CLIVerifications.html#cli-help-structure-verification"; e2664857a303b33e["Verification Traces Element Navigation Test"]; class e2664857a303b33e verification; click e2664857a303b33e "Verifications/CLIVerifications.html#verification-traces-element-navigation-test"; end end 457ab64992d42aa4 -.->|verifiedBy| 1c80039ebf669864; 457ab64992d42aa4 -.->|verifiedBy| 285be0a87e4eada0; 25bf5cc42f41e395["cli.rs"]; class 25bf5cc42f41e395 default; click 25bf5cc42f41e395 "../../../cli/src/cli.rs"; 104c59d25b737d22 -->|satisfiedBy| 25bf5cc42f41e395; 104c59d25b737d22 -.->|verifiedBy| 9ce04315a8dd0d88; 104c59d25b737d22 -.->|verifiedBy| f7d422af274a64cf; 104c59d25b737d22 -.->|verifiedBy| 868e15205b620ba2; 68e30181f97f6f71 -->|satisfiedBy| 25bf5cc42f41e395; 68e30181f97f6f71 -.->|verifiedBy| b4cebcb9f2649a4f; 68e30181f97f6f71 -.->|verifiedBy| dc9eb3da0c5e0ed0; 68e30181f97f6f71 -.->|verifiedBy| b5f861c2be8eddab; 68e30181f97f6f71 -.->|verifiedBy| 349d095f92fc1135; 68e30181f97f6f71 -.->|verifiedBy| bd0b4833b30da28; 9a2adde3721af9df -->|satisfiedBy| 25bf5cc42f41e395; 9a2adde3721af9df -.->|verifiedBy| ccc548a455bf2b45; 218fa75a3081be32 -->|satisfiedBy| 25bf5cc42f41e395; 4a8772cb0c75593a["containment.rs"]; class 4a8772cb0c75593a default; click 4a8772cb0c75593a "../../../core/src/containment.rs"; 218fa75a3081be32 -->|satisfiedBy| 4a8772cb0c75593a; d4166762363eb31d["diagrams.rs"]; class d4166762363eb31d default; click d4166762363eb31d "../../../core/src/diagrams.rs"; 218fa75a3081be32 -->|satisfiedBy| d4166762363eb31d; 43efd1fafe961f2e -->|satisfiedBy| 25bf5cc42f41e395; 43efd1fafe961f2e -.->|verifiedBy| 75ff73f91ee1b985; 43efd1fafe961f2e -.->|verifiedBy| bd0b4833b30da28; d6147550e948449e -.->|deriveReqT| 104c59d25b737d22; d6147550e948449e -.->|deriveReqT| 68e30181f97f6f71; d6147550e948449e -.->|deriveReqT| 9a2adde3721af9df; d6147550e948449e -.->|deriveReqT| 218fa75a3081be32; d6147550e948449e -.->|deriveReqT| 43efd1fafe961f2e; d6147550e948449e -.->|deriveReqT| ec02481a0771dca; d6147550e948449e -.->|deriveReqT| 51a6083e0a55197c; d6147550e948449e -.->|deriveReqT| 151987ac330b33f0; d6147550e948449e -.->|deriveReqT| a68fbec67469256b; d6147550e948449e -.->|deriveReqT| 7ef6cb0e4258e1bc; d6147550e948449e -.->|deriveReqT| d9c57dd799158af9; d6147550e948449e -.->|deriveReqT| 91025cd88b1df4f0; d6147550e948449e -.->|deriveReqT| 1f8022dac203e679; d6147550e948449e -.->|deriveReqT| 2f51b946a8587225; d6147550e948449e -.->|deriveReqT| ee7ad64abb668237; d6147550e948449e -.->|deriveReqT| d2fc543d82f61bbb; d6147550e948449e -.->|deriveReqT| 9578836eb8e0fc6; d6147550e948449e -.->|deriveReqT| 62f24ccbcd1f428a; d6147550e948449e -.->|deriveReqT| 8d334537008d94ba; d6147550e948449e -.->|deriveReqT| c04221154b7fc90d; d6147550e948449e -.->|deriveReqT| a8750da2c3580220; d6147550e948449e -->|satisfiedBy| 25bf5cc42f41e395; ec02481a0771dca -->|satisfiedBy| 25bf5cc42f41e395; 51a6083e0a55197c -->|satisfiedBy| 25bf5cc42f41e395; 151987ac330b33f0 -->|satisfiedBy| 25bf5cc42f41e395; 151987ac330b33f0 -->|satisfiedBy| d4166762363eb31d; a68fbec67469256b -->|satisfiedBy| 25bf5cc42f41e395; a68fbec67469256b -.->|verifiedBy| 2f4e61e9544880a6; 7ef6cb0e4258e1bc -->|satisfiedBy| 25bf5cc42f41e395; 7ef6cb0e4258e1bc -.->|verifiedBy| c40e17e0f8f2b5ec; 7ef6cb0e4258e1bc -.->|verifiedBy| d4a6f578d691e888; d9c57dd799158af9 -->|satisfiedBy| 25bf5cc42f41e395; d9c57dd799158af9 -.->|verifiedBy| c40e17e0f8f2b5ec; d9c57dd799158af9 -.->|verifiedBy| 7d317f5d862a0785; 91025cd88b1df4f0 -->|satisfiedBy| 25bf5cc42f41e395; 91025cd88b1df4f0 -.->|verifiedBy| 9ae645d347d4b31a; 1f8022dac203e679 -->|satisfiedBy| 25bf5cc42f41e395; 1f8022dac203e679 -.->|verifiedBy| c5f295328df58029; 2f51b946a8587225 -->|satisfiedBy| 25bf5cc42f41e395; 2f51b946a8587225 -.->|verifiedBy| 7701c4bcfa966fe6; ee7ad64abb668237 -->|satisfiedBy| 25bf5cc42f41e395; ee7ad64abb668237 -.->|verifiedBy| 3c9f85ce80e7b0c; d2fc543d82f61bbb -->|satisfiedBy| 25bf5cc42f41e395; d2fc543d82f61bbb -.->|verifiedBy| 29ee19ee5dd27edc; d2fc543d82f61bbb -.->|verifiedBy| 246afbd94e01647b; d2fc543d82f61bbb -.->|verifiedBy| bd0b4833b30da28; 9578836eb8e0fc6 -.->|deriveReqT| 43f4a4bb333138eb; 9578836eb8e0fc6 -->|satisfiedBy| 25bf5cc42f41e395; 9578836eb8e0fc6 -.->|verifiedBy| e13ea8567a46f8fd; 9578836eb8e0fc6 -.->|verifiedBy| fb056d10eb059222; 9578836eb8e0fc6 -.->|verifiedBy| bd0b4833b30da28; 637652e86464c11b["error.rs"]; class 637652e86464c11b default; click 637652e86464c11b "../../../core/src/error.rs"; 62f24ccbcd1f428a -->|satisfiedBy| 637652e86464c11b; 62f24ccbcd1f428a -.->|verifiedBy| f7d422af274a64cf; 8d334537008d94ba -->|satisfiedBy| 25bf5cc42f41e395; 8d334537008d94ba -.->|verifiedBy| c89bd750e0ad5b9d; 8d334537008d94ba -.->|verifiedBy| ccbfdf0d74ac48bf; 8d334537008d94ba -.->|verifiedBy| 5df244b54d1b239c; 8d334537008d94ba -.->|verifiedBy| bd0b4833b30da28; c04221154b7fc90d -->|satisfiedBy| 25bf5cc42f41e395; c04221154b7fc90d -.->|verifiedBy| 410dbe84dc2c3481; c04221154b7fc90d -.->|verifiedBy| ea3a2bf2fbe74057; c04221154b7fc90d -.->|verifiedBy| 9f8ff23aca853fa0; a8750da2c3580220 -->|satisfiedBy| 25bf5cc42f41e395; a8750da2c3580220 -.->|verifiedBy| ad323c8d4c0751e; a8750da2c3580220 -.->|verifiedBy| bd0b4833b30da28; 7c4732996c9a3ae7["verification_trace.rs"]; class 7c4732996c9a3ae7 default; click 7c4732996c9a3ae7 "../../../core/src/verification_trace.rs"; 43f4a4bb333138eb -->|satisfiedBy| 7c4732996c9a3ae7; 43f4a4bb333138eb -.->|verifiedBy| e2664857a303b33e; d882e7ff8e1ffe95["test.sh"]; class d882e7ff8e1ffe95 default; click d882e7ff8e1ffe95 "../../../tests/test-assets/test.sh"; 1c80039ebf669864 -->|satisfiedBy| d882e7ff8e1ffe95; 285be0a87e4eada0 -->|satisfiedBy| d882e7ff8e1ffe95; 4179509ffe0be04b["test.sh"]; class 4179509ffe0be04b default; click 4179509ffe0be04b "../../../tests/test-duplicate-detection/test.sh"; 9ce04315a8dd0d88 -->|satisfiedBy| 4179509ffe0be04b; fe0a74a2cd2af425["test.sh"]; class fe0a74a2cd2af425 default; click fe0a74a2cd2af425 "../../../tests/test-add-command-error-messages/test.sh"; f7d422af274a64cf -->|satisfiedBy| fe0a74a2cd2af425; 7f91546dcec3d680["test.sh"]; class 7f91546dcec3d680 default; click 7f91546dcec3d680 "../../../tests/test-crud-manipulation/test.sh"; 868e15205b620ba2 -->|satisfiedBy| 7f91546dcec3d680; c2377a15dab54ba5["test.sh"]; class c2377a15dab54ba5 default; click c2377a15dab54ba5 "../../../tests/test-change-impact-detection/test.sh"; b4cebcb9f2649a4f -->|satisfiedBy| c2377a15dab54ba5; dc9eb3da0c5e0ed0 -->|satisfiedBy| c2377a15dab54ba5; 4e0ed6253b039034["test.sh"]; class 4e0ed6253b039034 default; click 4e0ed6253b039034 "../../../tests/test-change-impact-element-relocation/test.sh"; dc9eb3da0c5e0ed0 -->|satisfiedBy| 4e0ed6253b039034; b5f861c2be8eddab -->|satisfiedBy| c2377a15dab54ba5; 349d095f92fc1135 -->|satisfiedBy| c2377a15dab54ba5; 7478201b4d47e866["test.sh"]; class 7478201b4d47e866 default; click 7478201b4d47e866 "../../../tests/test-cli-help-structure/test.sh"; bd0b4833b30da28 -->|satisfiedBy| 7478201b4d47e866; ebb4611bba8f814b["test.sh"]; class ebb4611bba8f814b default; click ebb4611bba8f814b "../../../tests/test-collect-command/test.sh"; ccc548a455bf2b45 -->|satisfiedBy| ebb4611bba8f814b; 9862b6a220f5be7c["test.sh"]; class 9862b6a220f5be7c default; click 9862b6a220f5be7c "../../../tests/test-coverage-report/test.sh"; 75ff73f91ee1b985 -->|satisfiedBy| 9862b6a220f5be7c; 2f4e61e9544880a6 -->|satisfiedBy| d882e7ff8e1ffe95; 661275cf7a337c0e["test.sh"]; class 661275cf7a337c0e default; click 661275cf7a337c0e "../../../tests/test-subdirectory-functionality/test.sh"; c40e17e0f8f2b5ec -->|satisfiedBy| 661275cf7a337c0e; d4a6f578d691e888 -->|satisfiedBy| 7f91546dcec3d680; 7d317f5d862a0785 -->|satisfiedBy| 7f91546dcec3d680; 7d317f5d862a0785 -->|satisfiedBy| 661275cf7a337c0e; 9ae645d347d4b31a -->|satisfiedBy| d882e7ff8e1ffe95; c5f295328df58029 -->|satisfiedBy| 7f91546dcec3d680; 7701c4bcfa966fe6 -->|satisfiedBy| 7f91546dcec3d680; c326a5f02f65c781["test.sh"]; class c326a5f02f65c781 default; click c326a5f02f65c781 "../../../tests/test-resources-report/test.sh"; 3c9f85ce80e7b0c -->|satisfiedBy| c326a5f02f65c781; 29ee19ee5dd27edc -->|satisfiedBy| d882e7ff8e1ffe95; ea6a90c3d551dae4["test.sh"]; class ea6a90c3d551dae4 default; click ea6a90c3d551dae4 "../../../tests/test-search-all-features/test.sh"; 246afbd94e01647b -->|satisfiedBy| ea6a90c3d551dae4; 4c7c54f9c1995852["test.sh"]; class 4c7c54f9c1995852 default; click 4c7c54f9c1995852 "../../../tests/test-verification-traces/test.sh"; e13ea8567a46f8fd -->|satisfiedBy| 4c7c54f9c1995852; fb056d10eb059222 -->|satisfiedBy| 4c7c54f9c1995852; 81623fde4ecde03d["test.sh"]; class 81623fde4ecde03d default; click 81623fde4ecde03d "../../../tests/test-element-ordering/test.sh"; c89bd750e0ad5b9d -->|satisfiedBy| 81623fde4ecde03d; aaf45a054cfa1d47["test.sh"]; class aaf45a054cfa1d47 default; click aaf45a054cfa1d47 "../../../tests/test-advanced-format/test.sh"; ccbfdf0d74ac48bf -->|satisfiedBy| aaf45a054cfa1d47; 2a806c95f3f078e4["test.sh"]; class 2a806c95f3f078e4 default; click 2a806c95f3f078e4 "../../../tests/test-format-full-relations/test.sh"; 5df244b54d1b239c -->|satisfiedBy| 2a806c95f3f078e4; 410dbe84dc2c3481 -->|satisfiedBy| 4179509ffe0be04b; e2ae1addbaec6335["test.sh"]; class e2ae1addbaec6335 default; click e2ae1addbaec6335 "../../../tests/test-link-unlink/test.sh"; ea3a2bf2fbe74057 -->|satisfiedBy| e2ae1addbaec6335; 9f8ff23aca853fa0 -->|satisfiedBy| e2ae1addbaec6335; 5150ae05d0a88a84["test.sh"]; class 5150ae05d0a88a84 default; click 5150ae05d0a88a84 "../../../tests/test-invalid-relations/test.sh"; ad323c8d4c0751e -->|satisfiedBy| 5150ae05d0a88a84; e2664857a303b33e -->|satisfiedBy| 4c7c54f9c1995852;

Attachment Commands

DEPRECATED: Attachment functionality has been unified into the link and unlink commands. Use reqvire link <element> attaching <target> and reqvire unlink <element> <target> instead.

The system shall provide attachment management through the unified link/unlink commands using the β€˜attaching’ keyword.

Details

Attachment management has been consolidated into the Relation Commands. The attach/detach commands are superseded by:

Attach (via link):

  • Syntax: reqvire link <element-name> attaching <target> [--dry-run]
  • Target: internal file path OR Refinement element name (auto-detected)
  • Create Attachments subsection if doesn’t exist
  • Add link to subsection with format * [display-name](path)
  • Skip if already attached (idempotent)
  • Support many-to-many (same attachment to multiple elements)
  • Support dry-run mode for preview

Detach (via unlink):

  • Syntax: reqvire unlink <element-name> <target> [--dry-run]
  • Auto-detects whether target is relation or attachment
  • Remove link from Attachments subsection
  • Remove subsection if no attachments remain
  • Trigger change impact on element
  • Support dry-run mode for preview

Metadata

  • type: requirement

Attachments

Relations


CLI Interface Structure

The CLI interface shall implement the clear [OPTIONS] <COMMAND> [COMMAND OPTIONS] structure.

Details

The CLI must display all commands and options and command’s options flattened in the main help output which must also be a default command:

Reqvire requirements & traceability management tool

Usage: reqvire [OPTIONS] <COMMAND> [COMMAND OPTIONS]

Commands:
  export            Export model to browsable HTML documentation
  serve             Serve model as browsable HTML documentation via HTTP server
  format            Format and normalize requirements files
  validate          Validate model
  search            Search and filter model elements
  change-impact     Analyze change impact and provide report
  traces            Generate verification traces
  coverage          Generate verification coverage report
  model             Generate model-centric structure diagram
  lint              Analyze model quality and detect issues
  add               Add new element to model
  rm                Remove element from model
  mv                Move element to different location
  rename            Rename element
  merge             Merge multiple elements into target element
  mv-file           Move entire specification file
  link              Add relation or attachment between elements
  unlink            Remove relation or attachment (auto-detects)
  mv-asset          Move/rename asset file and update references
  rm-asset          Remove asset file and remove references
  containment       Generate containment view
  resources         Generate resources report
  help              Print help for commands

Options:
  -h, --help               Print help
  -V, --version            Print version

<COMMAND OPTIONS>:
  Each command has its own options displayed in a flattened section
  (e.g., FORMAT OPTIONS, VALIDATE OPTIONS, etc.)

Metadata

  • type: requirement

Relations


CLI Add Element Command

The system shall provide an add command to create new model elements by accepting element definition in Markdown format from stdin, validating the structure, and inserting it into the target file.

Details

The add command shall:

  • Accept element definition input from standard input (stdin)
  • Accept target file path as required positional argument (resolved relative to Git repository root)
  • Support command syntax: reqvire add <file>
  • Validate element structure before insertion
  • Insert element into file following Element Ordering Behavior
  • Apply changes immediately by default
  • Support --dry-run flag to preview changes without applying
  • Support --override flag to replace existing element with same name
  • Output git-style diff showing file changes by default
  • Support --json flag for structured output format
  • Report validation errors if element structure is invalid
  • Exit with code 0 on success, non-zero on error

Metadata

  • type: requirement

Attachments

Relations


CLI Change Impact Report Command

The system shall provide a command-line interface for initiating change impact analysis and controlling output formats.

Details

Command invocation: reqvire change-impact [OPTIONS]

Analysis Options:

  • --git-commit <hash>: Specify git commit hash for comparing changes
  • Support analyzing changes between git commits
  • Enable specifying elements to analyze by ID or pattern
  • Allow limiting analysis to specific relation types
  • Support depth limitations for large models

Output Options:

  • --json: Output structured JSON impact data
  • Default to formatted text reports
  • Support Mermaid diagrams of impact trees
  • Integrate with HTML report generation

Integration Support:

  • Support integration with CI/CD pipelines
  • Enable calling from external systems via API
  • Support webhook triggers for automated analysis
  • Allow scripting of analysis operations

Metadata

  • type: requirement

Attachments

Relations


CLI Collect Command

The system shall provide a collect command that performs content collection as specified in the attached specifications.

Details

Command syntax: reqvire collect <element-name> [--json]

Arguments:

  • <element-name> - Required. Name of the requirement element to collect from.

Options:

  • --json - Output in JSON format instead of text

Exit codes:

  • 0 on success
  • Non-zero on error (element not found, invalid type, etc.)

Metadata

  • type: requirement

Attachments

Relations


CLI Containment Command

The system shall provide a containment command to generate markdown output with the containment view diagram showing the folder/file/element hierarchy.

Details

The containment command shall:

  • Output markdown format with header and embedded Mermaid flowchart diagram
  • Support --json flag for structured JSON output
  • Support --short flag to show only root elements (those without hierarchical parents in same file)
  • Default behavior (without –short): show ALL elements in each file
  • Exit with code 0 on success, non-zero on error
  • Command syntax: reqvire containment [--json] [--short]

The markdown output shall include:

  • # Containment View header
  • Mermaid code block with flowchart diagram (using graph TD direction)
  • Description indicating whether all elements or only root elements are displayed

Metadata

  • type: requirement

Attachments

Relations


CLI Coverage Command

The system shall provide a coverage command that generates verification coverage reports focusing on leaf requirements, test-verification satisfaction status, and orphaned verifications.

Details

The command shall:

  • Be invoked as reqvire coverage
  • Support --json flag for JSON output format
  • Default to human-readable text output when JSON flag is not present
  • Generate reports focusing on leaf requirements (requirements without forward relations to other requirements)
  • Show the percentage and details of verified and unverified leaf requirements
  • Include breakdowns by file, section, and verification type
  • Show satisfaction status of test-verification elements (those with satisfiedBy relations)
  • Show orphaned verifications (verification elements without any verify relations to requirements)
  • Follow Verification Roll-up Strategy
  • Test-verification elements require satisfiedBy relations to be considered satisfied
  • Analysis, inspection, and demonstration verification elements are considered satisfied by default
  • Exit with status code 0 on success
  • Exit with non-zero status code on errors

Command output shall be written to stdout for easy redirection to files.

Metadata

  • type: requirement

Attachments

Relations


CLI Lint Command

The system shall implement a lint command that analyzes model quality and detects issues in requirements relations, providing categorized output that distinguishes between auto-fixable issues and those requiring manual review.

Details

The command shall:

  • Be invoked as reqvire lint
  • Default to dry-run mode (report issues without applying fixes)
  • Support --fixable flag to show only auto-fixable issues
  • Support --auditable flag to show only issues requiring manual review
  • Support --fix flag to automatically apply fixes for auto-fixable issues
  • Support --json flag for structured JSON output
  • Default to showing ALL issues when no filter flags are provided
  • Categorize output into two sections:
    • Auto-fixable Issues: Issues that can be automatically corrected by the system
    • Needs Manual Review: Issues that require human judgment to resolve
  • Exit with status code 0 when no issues are found or when fixes are successfully applied
  • Exit with non-zero status code on errors

Command output shall be written to stdout for easy redirection to files.

Metadata

  • type: requirement

Attachments

Relations


CLI Merge Element Command

The system shall provide a merge command to combine multiple elements into a target element.

Details

The merge command shall:

  • Accept target element name as first required positional argument
  • Accept one or more source element names as subsequent required arguments
  • Support command syntax: reqvire merge <target> <source1> [source2...]
  • Apply changes immediately by default
  • Support --dry-run flag to preview changes without applying
  • Output git-style diff showing all affected files by default
  • Support --json flag for structured output
  • Exit with code 0 on success, non-zero on error

Metadata

  • type: requirement

Attachments

Relations


CLI Model Diagram Command

System shall provide CLI command to generate model diagrams with optional filtering and output format selection.

Details

  • Command shall be named model
  • Shall support --from=<name> flag for filtering from specific element by name
  • Element names are globally unique, allowing lookup by name alone
  • Shall support --json flag for JSON output format
  • Shall support --reverse flag for leaf-to-root traversal
  • Shall support --filter-type=<types> flag with comma-separated element types to filter starting points (consistent with search command)
  • Default output shall be markdown with embedded Mermaid diagram
  • Shall integrate with existing model diagram generation functionality

Metadata

  • type: requirement

Attachments

Relations


CLI Move Asset Command

The system shall provide a mv-asset command to move or rename InternalPath files and automatically update all references across the model.

Details

The mv-asset command shall:

  • Accept old file path as required positional argument
  • Accept new file path as required positional argument
  • Find all elements referencing the file as InternalPath
  • Update all InternalPath references:
    • In Attachments subsection (update both display text and href)
    • In Relations (satisfiedBy, satisfy, trace targets)
  • Physically move/rename the file on filesystem
  • Apply changes immediately by default
  • Support --dry-run flag to preview changes without applying
  • Output git-style diff showing all affected files
  • Report all affected elements and relation updates
  • Exit with code 0 on success, non-zero on error

Metadata

  • type: requirement

Attachments

Relations


CLI Move Element Command

The system shall provide a mv command to move existing model elements to different file locations while automatically updating all relations that reference the moved element.

Details

The mv command shall:

  • Accept element name as required positional argument
  • Accept target file path as required positional argument (resolved relative to Git repository root)
  • Support command syntax: reqvire mv <element-name> <file>
  • Move element to target file following Element Ordering Behavior
  • Update all incoming relations system-wide with new identifier
  • Preserve element content, metadata, and outgoing relations
  • Apply changes immediately by default
  • Support --dry-run flag to preview changes without applying
  • Output git-style diff showing all affected files by default
  • Support --json flag for structured output with relation updates and identifier change
  • Report identifier change (old β†’ new)
  • Report error if element does not exist or target location is invalid
  • Exit with code 0 on success, non-zero on error

Metadata

  • type: requirement

Attachments

Relations


CLI Move File Command

The system shall provide a mv-file command to move entire specification files with all their elements to a new location.

Details

The mv-file command shall:

  • Accept source file path (required, relative to current working directory)
  • Accept target file path (required, relative to current working directory)
  • Support --dry-run flag to preview changes without applying
  • Support --json flag for structured output
  • Exit with code 0 on success, non-zero on error
  • Command syntax: reqvire mv-file <source-file> <target-file>

Metadata

  • type: requirement

Attachments

Relations


CLI Remove Asset Command

The system shall provide an rm-asset command to remove InternalPath files and automatically remove all references from the model.

Details

The rm-asset command shall:

  • Accept file path as required positional argument
  • Find all elements referencing the file as InternalPath
  • Remove all InternalPath references:
    • From Attachments subsection (remove link entry, remove subsection if empty)
    • From Relations (remove entire relation line for satisfiedBy, satisfy, trace)
  • Delete physical file from filesystem
  • Apply changes immediately by default
  • Support --dry-run flag to preview changes without applying
  • Output git-style diff showing all affected files
  • Report all affected elements and removed relations
  • Exit with code 0 on success, non-zero on error

Metadata

  • type: requirement

Attachments

Relations


CLI Remove Element Command

The system shall provide an rm command to delete existing model elements and automatically remove all relations referencing the deleted element.

Details

The rm command shall:

  • Accept element name as required positional argument
  • Support command syntax: reqvire rm <element-name>
  • Delete the specified element from its file
  • Remove all incoming relations from other elements
  • Apply changes immediately by default
  • Support --dry-run flag to preview changes without applying
  • Output git-style diff showing file changes by default
  • Support --json flag for structured output with affected relations
  • Report error if element does not exist
  • Exit with code 0 on success, non-zero on error

Metadata

  • type: requirement

Attachments

Relations


CLI Rename Element Command

The system shall provide a rename command to rename existing model elements while automatically updating all relations that reference the renamed element.

Details

The rename command shall:

  • Accept current element name (required)
  • Accept new element name (required)
  • Update all incoming relations system-wide with new identifier
  • Apply changes immediately by default
  • Support --dry-run flag to preview changes without applying
  • Output git-style diff showing all affected files by default
  • Support --json flag for structured output with relation updates and identifier change
  • Report identifier change (old β†’ new)
  • Report error if element does not exist or new name conflicts with existing element
  • Exit with code 0 on success, non-zero on error

Metadata

  • type: requirement

Attachments

Relations


CLI Resources Command

The system shall provide a resources command that generates a report showing all files referenced by the model through relations and attachments.

Details

The command shall:

  • Be invoked as reqvire resources
  • Support --json flag for JSON output format
  • Default to human-readable text output when JSON flag is not present
  • Generate two sections: Relations and Attachments
  • Show files from InternalPath relation targets (satisfiedBy, trace, etc.)
  • Show files from FilePath attachment targets
  • List files alphabetically by path
  • For each file, show referencing elements with links
  • Sort references by relation type (for relations section), then by element identifier
  • Exit with status code 0 on success
  • Exit with non-zero status code on errors

Command output shall be written to stdout for easy redirection to files.

Metadata

  • type: requirement

Attachments

Relations


CLI Search Command

The system shall provide a unified search function, activated by the search root command, which shall search and report on model elements with comprehensive filtering capabilities.

Details

Search command features:

  • search: Search model elements and output results to stdout
  • Support --json flag for structured JSON output
  • Support --short flag for abbreviated output (both text and JSON)
  • Support comprehensive filter options (all combinable):
    • By file path glob: --filter-file="src/**/*Reqs.md"
    • By element name regex: --filter-name=".*safety.*"
    • By element type: --filter-type="system-requirement" (exact match)
    • By element content regex: --filter-content="MUST"
    • By page content regex: --filter-page-content="architecture"
    • By having relations: --have-relations=verifiedBy,satisfiedBy (comma-separated, must have ALL)
    • By not having relations: --not-have-relations=verifiedBy (comma-separated, must NOT have ALL)
    • By having attachments: --has-attachments (filter elements with Attachments subsection)
    • By attachment path pattern: --filter-attachment <glob> (supports glob patterns like *.pdf, docs/*)

Short mode behavior:

  • Text output: Display abbreviated one-line format per element
  • JSON output: Omit fields: content, page_content, verified_relations_count, satisfied_relations_count, element_count, total_elements, global_counters

Error handling:

  • Invalid regex patterns shall return clear error message showing the faulty pattern and exit
  • Invalid relation type names shall return error with list of valid relation types

Default output:

  • Human-readable text format when neither --json nor --short is specified
  • Full detail mode showing all element metadata and relations

Metadata

  • type: requirement

Attachments

Relations


CLI Traces Command

The system shall provide a traces command that generates and outputs upward trace trees for verification elements, showing the complete requirement hierarchy from verifications to root requirements.

Details

The command shall:

  • Be invoked as reqvire traces
  • Generate output in Markdown format with embedded Mermaid diagrams by default
  • Support --json flag for structured JSON output without diagrams
  • Show verification elements as roots with arrows following relation semantics
  • Include clickable links on all nodes (verifications and requirements) in Mermaid diagrams
  • Highlight directly verified requirements using CSS classes in diagrams
  • Traverse all upward parent relations to reach root requirements
  • Merge multiple verification paths into a single tree per verification
  • Exit with status code 0 on success
  • Exit with non-zero status code on errors

The Mermaid diagrams generated for verification traces shall include clickable links on diagram nodes that navigate to the referenced element using relative paths (the traces command always uses relative paths and does not support the --links-with-blobs flag).

Command output shall be written to stdout for easy redirection to files.

Filter Options: The system shall support filtering verification traces by verification ID, name pattern, and verification type to allow users to generate traces for specific subsets of verifications.

The following filter options shall be supported:

  • --filter-id=<id>: Generate trace for a specific verification element by its full identifier
  • --filter-name=<regex>: Filter verifications by name using regular expression matching
  • --filter-type=<type>: Filter by verification type (test-verification, analysis-verification, inspection-verification, demonstration-verification)

Filters shall be combinable, and when multiple filters are specified, only verifications matching ALL filter criteria shall be included in the output.

From-Folder Option: The system shall support a --from-folder option for the traces command that specifies the relative path from where Reqvire runs to the folder where generated output files will be saved, enabling generation of relative links in Mermaid diagrams and other outputs that are portable when the output is saved in different locations.

The --from-folder option shall:

  • Accept a relative path string as parameter (e.g., --from-folder=docs/verification-reports)
  • Default to empty/current directory when not specified (maintaining existing behavior)
  • Support special case / to indicate the reqvire root (git root), keeping identifiers as git-root-relative paths
  • Adjust all clickable links in Mermaid diagrams to be relative to the specified folder path
  • Adjust all file path references in output to be relative to the specified folder path
  • Work with both Markdown output (with Mermaid diagrams) and JSON output
  • Ensure generated links work correctly when the output file is saved in the specified folder
  • Use the standard path resolution logic to calculate relative paths from the from-folder to git root

Example usage:

# Generate traces with links relative to docs/reports/ folder
reqvire traces --from-folder=docs/reports > docs/reports/traces.md

# Links in the output will be relative to docs/reports/ (e.g., ../../specifications/file.md)

Metadata

  • type: requirement

Attachments

Relations


Verification Traces Element Navigation

The system shall make verification element names in the traces report clickable links that navigate to the element’s definition in its source file.

Details

  • Verification element names displayed as headers shall be hyperlinks
  • Links shall point to the verification’s source file with fragment identifier
  • Format: [Verification Name](file_path#element-fragment)
  • Enables direct navigation from traces report to verification definition

Metadata

  • type: requirement

Relations


Detailed Error Handling and Logging

The system shall implement detailed error handling and logging throughout the application to facilitate troubleshooting and provide meaningful feedback.

Metadata

  • type: requirement

Attachments

Relations


Format Command

The system shall provide a formatting function, activated by the (format command), which shall execute the formatting process upon user request.

Details

format command shall:

  • Default to dry-run mode (show suggested changes without applying them)
  • Require –fix flag to actually apply formatting changes to files
  • Display a diff-style summary of changes that would be or have been made
  • Support –json flag for structured output of formatting results
  • Show git diff style output with line numbers and colors for both preview and actual formatting
  • Support –with-full-relations flag to include all registered relations (user-created and auto-generated)

Additional behavior:

  • By default (no –fix flag), preview changes without applying them
  • –fix flag applies the formatting changes to files
  • –json flag outputs formatting results in JSON format including file changes and diff information
  • When formatting is applied, show a summary of changed files with diff details
  • –with-full-relations flag inserts all relations from the model registry into elements, including auto-generated inverse relations (e.g., satisfiedBy from satisfy, derive from derivedFrom)

Metadata

  • type: requirement

Attachments

Relations


Relation Commands

The system shall provide unified CLI commands for relation and attachment management: link and unlink.

Details

The link command shall:

  • Accept syntax: reqvire link <source> <relation-type-or-attaching> <target>
  • Source: existing element name
  • Relation-type: one of derivedFrom, derive, satisfiedBy, satisfy, verifiedBy, verify, trace, OR β€˜attaching’
  • Target types for relations: element name, internal file path, or external URL (http/https)
  • Target types for attaching: internal file path or Refinement element name (external URLs NOT allowed)
  • When β€˜attaching’ is used with an external URL, reject with error suggesting to use β€˜trace’ relation instead
  • When relation or attachment already exists, return error with clear message
  • Support --dry-run flag for preview

The unlink command shall:

  • Accept syntax: reqvire unlink <source> <target>
  • Auto-detect: searches relations first, then attachments
  • Only one relation per source-target pair is allowed
  • Source: existing element name
  • Target: element name or file path
  • Support --dry-run flag for preview

Metadata

  • type: requirement

Attachments

Relations


Validate Command

The system shall provide a validation command that executes model validation and reports any issues found.

Details

validate command shall:

  • Execute two-pass validation strategy:
    • Pass 1: Element Collection and Local Validation
      • Parse all markdown files
      • Extract elements with metadata
      • Perform local validation (element uniqueness, identifier format, metadata syntax)
      • Report errors if found
    • Pass 2: Graph Construction and Relation Validation
      • Build GraphRegistry from collected elements
      • Validate all relations (target existence, type compatibility)
      • Perform cross-component validation
      • Report errors if found
  • Print all validation issues found in the model
  • Output a success message β€œNo validation issues found” when the model is valid
  • Support –json flag to output validation results in JSON format

Metadata

  • type: requirement

Attachments

Relations