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 91eede421faaa553["πŸ“ requirements/Functional/Operations"] subgraph 61ca07ef5d124066["πŸ“„ Linting.md"] 176bc8c4eb6608de["Lint Auto-fix Capability
πŸ“Ž requirements/Functional/Output/Specifications.md#diff-output-format-specification"]; class 176bc8c4eb6608de systemRequirement; click 176bc8c4eb6608de "Linting.html#lint-auto-fix-capability"; 20f690d9cd389f10["Model Linting"]; class 20f690d9cd389f10 userRequirement; click 20f690d9cd389f10 "Linting.html#model-linting"; 8ab6eb6e6ddc46cc["Multi-Branch Convergence Detection
πŸ“Ž requirements/Functional/Processing/Specifications.md#verification-trace-tree-construction"]; class 8ab6eb6e6ddc46cc systemRequirement; click 8ab6eb6e6ddc46cc "Linting.html#multi-branch-convergence-detection"; 5f8fafa1901435c["Redundant Hierarchical Relations Detection and Auto-Removal
πŸ“Ž requirements/Functional/Processing/Specifications.md#verification-trace-tree-construction"]; class 5f8fafa1901435c systemRequirement; click 5f8fafa1901435c "Linting.html#redundant-hierarchical-relations-detection-and-auto-removal"; 500be52cc121e6f2["Redundant Verify Relations Detection
πŸ“Ž requirements/Functional/Processing/Specifications.md#verification-trace-tree-construction"]; class 500be52cc121e6f2 systemRequirement; click 500be52cc121e6f2 "Linting.html#redundant-verify-relations-detection"; end subgraph 7c2e7eef0051f760["πŸ“„ Specifications.md"] b8a5e3adb9b5d82d["Lint Output Specification"]; class b8a5e3adb9b5d82d default; click b8a5e3adb9b5d82d "Specifications.html#lint-output-specification"; c5d346cc41243982["Multi-Branch Convergence Detection Specification"]; class c5d346cc41243982 default; click c5d346cc41243982 "Specifications.html#multi-branch-convergence-detection-specification"; 6a995b12e8da977a["Redundant Hierarchical Relations Specification"]; class 6a995b12e8da977a default; click 6a995b12e8da977a "Specifications.html#redundant-hierarchical-relations-specification"; end end subgraph 75874bcc96c01d2f["πŸ“ requirements/Functional/Operations/Verifications"] subgraph 584acc9e5dd3c2cd["πŸ“„ LintingVerifications.md"] a967e55b50b57d2["Lint Command Verification"]; class a967e55b50b57d2 verification; click a967e55b50b57d2 "Verifications/LintingVerifications.html#lint-command-verification"; end end 176bc8c4eb6608de -.->|verifiedBy| a967e55b50b57d2; 20f690d9cd389f10 -.->|deriveReqT| 176bc8c4eb6608de; 20f690d9cd389f10 -.->|deriveReqT| 8ab6eb6e6ddc46cc; 20f690d9cd389f10 -.->|deriveReqT| 5f8fafa1901435c; 20f690d9cd389f10 -.->|deriveReqT| 500be52cc121e6f2; 20f690d9cd389f10 -->|satisfiedBy| b8a5e3adb9b5d82d; 20f690d9cd389f10 -.->|verifiedBy| a967e55b50b57d2; bff128c40d23f061["lint.rs"]; class bff128c40d23f061 default; click bff128c40d23f061 "../../../core/src/lint.rs"; 8ab6eb6e6ddc46cc -->|satisfiedBy| bff128c40d23f061; 8ab6eb6e6ddc46cc -->|satisfiedBy| c5d346cc41243982; 8ab6eb6e6ddc46cc -.->|verifiedBy| a967e55b50b57d2; 5f8fafa1901435c -->|satisfiedBy| bff128c40d23f061; 5f8fafa1901435c -->|satisfiedBy| 6a995b12e8da977a; 5f8fafa1901435c -.->|verifiedBy| a967e55b50b57d2; 500be52cc121e6f2 -.->|verifiedBy| a967e55b50b57d2; 627c92e05bc78e3b["test.sh"]; class 627c92e05bc78e3b default; click 627c92e05bc78e3b "../../../tests/test-lint-command/test.sh"; a967e55b50b57d2 -->|satisfiedBy| 627c92e05bc78e3b;

Model Linting

The system shall provide model linting capabilities to analyze model quality and detect issues in requirements relations.

Details

When linting the model, the system shall identify issues with model relations that may need attention.

When categorizing lint issues, the system shall distinguish between issues that can be automatically fixed and those requiring human judgment.

When reporting lint findings, the system shall provide clear categorization to help users understand what actions are needed.

When running the lint command, the system shall support both reporting mode and automatic fixing mode.

When filtering lint results, the system shall allow focusing on specific categories of issues.

Metadata

  • type: user-requirement

Relations


Lint Auto-fix Capability

The system shall provide automatic fixing capability for auto-fixable lint issues, applying changes directly to model files when the --fix flag is used.

Details

Auto-fix shall:

  • Only apply fixes for issues categorized as auto-fixable
  • Modify the affected markdown files directly
  • Remove redundant verify relations from verification elements
  • Preserve all other content and formatting in the files
  • Report all changes made (files modified, relations removed)
  • Skip issues categorized as needing manual review

Metadata

  • type: requirement

Attachments

Relations


Multi-Branch Convergence Detection

The system shall detect when an element reaches a common ancestor through multiple distinct branch paths without a direct relation, reporting these cases as needing manual review to determine if both branches are semantically necessary or if one represents a modeling error.

Metadata

  • type: requirement

Attachments

Relations


Redundant Hierarchical Relations Detection and Auto-Removal

The system shall detect and auto-remove redundant derivedFrom relations where an element has direct derivedFrom relations to both a requirement and its ancestor in the requirement hierarchy.

Metadata

  • type: requirement

Attachments

Relations


Redundant Verify Relations Detection

The system shall detect redundant verify relations where a verification directly verifies both a child requirement and its ancestor, leveraging the existing verification trace tree logic from the Verification Trace Builder.

Details

A verify relation is redundant when:

  • A verification directly verifies both a leaf requirement AND its parent/ancestor in the hierarchy
  • The verification trace tree shows that an ancestor requirement is also directly verified
  • Since verification traces roll up automatically through derivedFrom relations, verifying the leaf is sufficient

Detection shall:

  • Reuse the trace tree building logic from Verification Trace Builder
  • Identify ancestor requirements in each verification’s trace tree that are also directly verified
  • Report these as redundant relations that add noise to the model
  • Categorize as auto-fixable since removing them is safe and mechanical

Metadata

  • type: requirement

Attachments

Relations