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 193cce1f294b91c8["📄 ModelManagement.md"]
15293612289d990c["Relation Types and behaviors
📎 RelationTypes.md
📎 requirements/Refinements.md#relation-semantics-specification"];
class 15293612289d990c systemRequirement;
click 15293612289d990c "ModelManagement.html#relation-types-and-behaviors";
1275026756e287b9["Verification Type Categories
📎 requirements/Refinements.md#supported-element-types-specification"];
class 1275026756e287b9 systemRequirement;
click 1275026756e287b9 "ModelManagement.html#verification-type-categories";
end
subgraph 525b4b735cf204bb["📄 Specifications.md"]
ad64383b5bdb4b7b["Element Type Metadata Specification"];
class ad64383b5bdb4b7b default;
click ad64383b5bdb4b7b "Specifications.html#element-type-metadata-specification";
end
subgraph b88b5e4ef23c0883["📄 StructureAndParsing.md"]
136749f37a361991["Element Identity Model
📎 ElementIdentity.md"];
class 136749f37a361991 systemRequirement;
click 136749f37a361991 "StructureAndParsing.html#element-identity-model";
7971fe15dab8f0b7["Identifiers and Relations
📎 IdentifiersAndRelations.md"];
class 7971fe15dab8f0b7 systemRequirement;
click 7971fe15dab8f0b7 "StructureAndParsing.html#identifiers-and-relations";
9e793aabc302d0d5["Reserved Subsections Support
📎 ReservedSubsections.md"];
class 9e793aabc302d0d5 systemRequirement;
click 9e793aabc302d0d5 "StructureAndParsing.html#reserved-subsections-support";
c1fde7d1c17c2acb["Specification File Identification"];
class c1fde7d1c17c2acb systemRequirement;
click c1fde7d1c17c2acb "StructureAndParsing.html#specification-file-identification";
625bdde09d955477["Structure and Addressing in Markdown Documents
📎 MarkdownStructure.md"];
class 625bdde09d955477 systemRequirement;
click 625bdde09d955477 "StructureAndParsing.html#structure-and-addressing-in-markdown-documents";
end
subgraph 98067cc5207d6b91["📄 Validation.md"]
fcfc76ba4d193d75["Attachment Target Validation
📎 ReservedSubsections.md"];
class fcfc76ba4d193d75 systemRequirement;
click fcfc76ba4d193d75 "Validation.html#attachment-target-validation";
fed54223697ea04e["Internal Consistency Validator"];
class fed54223697ea04e systemRequirement;
click fed54223697ea04e "Validation.html#internal-consistency-validator";
end
end
subgraph 6c93988fc728d1f8["📁 requirements/Functional/Core/Verifications"]
subgraph 622a654342e7abad["📄 AttachmentsVerifications.md"]
43a55500f0bebfda["Attachment Output Rendering Verification"];
class 43a55500f0bebfda verification;
click 43a55500f0bebfda "Verifications/AttachmentsVerifications.html#attachment-output-rendering-verification";
18307065fb353848["Attachments Subsection Parsing Verification"];
class 18307065fb353848 verification;
click 18307065fb353848 "Verifications/AttachmentsVerifications.html#attachments-subsection-parsing-verification";
ff62a0266193ee63["Attachments Validation Verification"];
class ff62a0266193ee63 verification;
click ff62a0266193ee63 "Verifications/AttachmentsVerifications.html#attachments-validation-verification";
end
subgraph 83363717080555bd["📄 ParsingVerifications.md"]
98ae4e1997fb1002["Element Subsection Parsing Test"];
class 98ae4e1997fb1002 verification;
click 98ae4e1997fb1002 "Verifications/ParsingVerifications.html#element-subsection-parsing-test";
49c372fbdf0ebe68["Fragment Normalization Test"];
class 49c372fbdf0ebe68 verification;
click 49c372fbdf0ebe68 "Verifications/ParsingVerifications.html#fragment-normalization-test";
55d54f4d3853a23b["Non-Reserved Subsections Content Test"];
class 55d54f4d3853a23b verification;
click 55d54f4d3853a23b "Verifications/ParsingVerifications.html#non-reserved-subsections-content-test";
6cf270efbdc5a78["Specification File Identification Test"];
class 6cf270efbdc5a78 verification;
click 6cf270efbdc5a78 "Verifications/ParsingVerifications.html#specification-file-identification-test";
end
subgraph 46a9d0ceb9db210e["📄 ValidationVerifications.md"]
83d989f6ea529f74["Invalid Header Structure Test"];
class 83d989f6ea529f74 verification;
click 83d989f6ea529f74 "Verifications/ValidationVerifications.html#invalid-header-structure-test";
end
end
subgraph 91eede421faaa553["📁 requirements/Functional/Operations"]
subgraph e1e686bef27807d6["📄 ElementManipulation.md"]
bf9a2f73b67492b9["Create Element Operation
📎 requirements/Functional/Operations/Constraints.md#target-location-constraint
📎 requirements/Functional/Operations/Behaviors.md#element-ordering-behavior"];
class bf9a2f73b67492b9 systemRequirement;
click bf9a2f73b67492b9 "../Operations/ElementManipulation.html#create-element-operation";
end
end
subgraph 75874bcc96c01d2f["📁 requirements/Functional/Operations/Verifications"]
subgraph cae715fe712bf6a2["📄 FormattingVerifications.md"]
ccbfdf0d74ac48bf["Format Command Requirements Verification"];
class ccbfdf0d74ac48bf verification;
click ccbfdf0d74ac48bf "../Operations/Verifications/FormattingVerifications.html#format-command-requirements-verification";
end
end
subgraph e57e8ed6cc4cc063["📁 requirements/Functional/Processing"]
subgraph 743a852fd07358e8["📄 ChangeImpact.md"]
a27cb4ff2637ed4a["Change Impact Detection"];
class a27cb4ff2637ed4a systemRequirement;
click a27cb4ff2637ed4a "../Processing/ChangeImpact.html#change-impact-detection";
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 "../../Interfaces/CLI/Commands.html#attachment-commands";
end
end
136749f37a361991 -.->|deriveReqT| 7971fe15dab8f0b7;
136749f37a361991 -.->|deriveReqT| fed54223697ea04e;
136749f37a361991 -.->|deriveReqT| a27cb4ff2637ed4a;
e068cb8b03a77b4d["element.rs"];
class e068cb8b03a77b4d default;
click e068cb8b03a77b4d "../../../core/src/element.rs";
136749f37a361991 -->|satisfiedBy| e068cb8b03a77b4d;
35bd98d101f36b62["parser.rs"];
class 35bd98d101f36b62 default;
click 35bd98d101f36b62 "../../../core/src/parser.rs";
136749f37a361991 -->|satisfiedBy| 35bd98d101f36b62;
136749f37a361991 -.->|verifiedBy| 49c372fbdf0ebe68;
7971fe15dab8f0b7 -.->|deriveReqT| 15293612289d990c;
1cfe88f8d3cc7aac["relation.rs"];
class 1cfe88f8d3cc7aac default;
click 1cfe88f8d3cc7aac "../../../core/src/relation.rs";
7971fe15dab8f0b7 -->|satisfiedBy| 1cfe88f8d3cc7aac;
9e793aabc302d0d5 -.->|deriveReqT| 1275026756e287b9;
9e793aabc302d0d5 -.->|deriveReqT| fcfc76ba4d193d75;
9e793aabc302d0d5 -.->|deriveReqT| bf9a2f73b67492b9;
9e793aabc302d0d5 -.->|deriveReqT| 457ab64992d42aa4;
9e793aabc302d0d5 -->|satisfiedBy| e068cb8b03a77b4d;
9e793aabc302d0d5 -->|satisfiedBy| 35bd98d101f36b62;
9e793aabc302d0d5 -->|satisfiedBy| ad64383b5bdb4b7b;
9e793aabc302d0d5 -.->|verifiedBy| 43a55500f0bebfda;
9e793aabc302d0d5 -.->|verifiedBy| 18307065fb353848;
9e793aabc302d0d5 -.->|verifiedBy| ff62a0266193ee63;
9e793aabc302d0d5 -.->|verifiedBy| 98ae4e1997fb1002;
9e793aabc302d0d5 -.->|verifiedBy| 55d54f4d3853a23b;
499d48218b73f571["model.rs"];
class 499d48218b73f571 default;
click 499d48218b73f571 "../../../core/src/model.rs";
c1fde7d1c17c2acb -->|satisfiedBy| 499d48218b73f571;
c1fde7d1c17c2acb -->|satisfiedBy| 35bd98d101f36b62;
c1fde7d1c17c2acb -.->|verifiedBy| 6cf270efbdc5a78;
625bdde09d955477 -.->|deriveReqT| 136749f37a361991;
625bdde09d955477 -.->|deriveReqT| 9e793aabc302d0d5;
625bdde09d955477 -->|satisfiedBy| e068cb8b03a77b4d;
625bdde09d955477 -->|satisfiedBy| 499d48218b73f571;
625bdde09d955477 -->|satisfiedBy| 35bd98d101f36b62;
625bdde09d955477 -->|satisfiedBy| 1cfe88f8d3cc7aac;
bfee2085e3bb9f2b["subsection.rs"];
class bfee2085e3bb9f2b default;
click bfee2085e3bb9f2b "../../../core/src/subsection.rs";
625bdde09d955477 -->|satisfiedBy| bfee2085e3bb9f2b;
625bdde09d955477 -.->|verifiedBy| 83d989f6ea529f74;
625bdde09d955477 -.->|verifiedBy| ccbfdf0d74ac48bf;
fed54223697ea04e -.->|deriveReqT| 14c74cc4fb33d735;
fed54223697ea04e -->|satisfiedBy| 499d48218b73f571;
fed54223697ea04e -->|satisfiedBy| 35bd98d101f36b62;
fed54223697ea04e -.->|verifiedBy| ad323c8d4c0751e;
a27cb4ff2637ed4a -.->|deriveReqT| 1868da177a2e8ffd;
a27cb4ff2637ed4a -.->|deriveReqT| 27ee21b54c142739;
4391424e97bc407a["change_impact.rs"];
class 4391424e97bc407a default;
click 4391424e97bc407a "../../../core/src/change_impact.rs";
a27cb4ff2637ed4a -->|satisfiedBy| 4391424e97bc407a;
a27cb4ff2637ed4a -.->|verifiedBy| 3758f5f1c504cd42;
5f9cbc6f907e8045["test.sh"];
class 5f9cbc6f907e8045 default;
click 5f9cbc6f907e8045 "../../../tests/test-parsing-functionality/test.sh";
49c372fbdf0ebe68 -->|satisfiedBy| 5f9cbc6f907e8045;
15293612289d990c -.->|deriveReqT| 3b924660b3d92e9d;
15293612289d990c -.->|deriveReqT| 7b8a81499865dbaa;
15293612289d990c -.->|deriveReqT| ac192cac778569d0;
15293612289d990c -.->|deriveReqT| 4a77e514d9e5539b;
15293612289d990c -.->|deriveReqT| 6a54472e974b0c63;
15293612289d990c -->|satisfiedBy| 1cfe88f8d3cc7aac;
15293612289d990c -.->|verifiedBy| 98ae4e1997fb1002;
1275026756e287b9 -->|satisfiedBy| 75dfb35477f838d5;
fcfc76ba4d193d75 -->|satisfiedBy| 499d48218b73f571;
fcfc76ba4d193d75 -->|satisfiedBy| 35bd98d101f36b62;
fcfc76ba4d193d75 -.->|verifiedBy| 18307065fb353848;
fcfc76ba4d193d75 -.->|verifiedBy| ff62a0266193ee63;
25bf5cc42f41e395["cli.rs"];
class 25bf5cc42f41e395 default;
click 25bf5cc42f41e395 "../../../cli/src/cli.rs";
bf9a2f73b67492b9 -->|satisfiedBy| 25bf5cc42f41e395;
993c12e82435a78e["crud.rs"];
class 993c12e82435a78e default;
click 993c12e82435a78e "../../../core/src/crud.rs";
bf9a2f73b67492b9 -->|satisfiedBy| 993c12e82435a78e;
d07e49b06be4058e["diff.rs"];
class d07e49b06be4058e default;
click d07e49b06be4058e "../../../core/src/diff.rs";
bf9a2f73b67492b9 -->|satisfiedBy| d07e49b06be4058e;
95cf526671ec752c["graph_registry.rs"];
class 95cf526671ec752c default;
click 95cf526671ec752c "../../../core/src/graph_registry.rs";
bf9a2f73b67492b9 -->|satisfiedBy| 95cf526671ec752c;
bf9a2f73b67492b9 -->|satisfiedBy| 35bd98d101f36b62;
bdf9762d399478a5["utils.rs"];
class bdf9762d399478a5 default;
click bdf9762d399478a5 "../../../core/src/utils.rs";
bf9a2f73b67492b9 -->|satisfiedBy| bdf9762d399478a5;
bf9a2f73b67492b9 -->|satisfiedBy| 40714cbda978a508;
bf9a2f73b67492b9 -->|satisfiedBy| 3c85593db589fd04;
bf9a2f73b67492b9 -->|satisfiedBy| 86e301b42cc16d0d;
bf9a2f73b67492b9 -.->|verifiedBy| 221f6c008823a4d0;
bf9a2f73b67492b9 -.->|verifiedBy| d5bf7d0addaf6d19;
457ab64992d42aa4 -.->|verifiedBy| 1c80039ebf669864;
457ab64992d42aa4 -.->|verifiedBy| 285be0a87e4eada0;
d882e7ff8e1ffe95["test.sh"];
class d882e7ff8e1ffe95 default;
click d882e7ff8e1ffe95 "../../../tests/test-assets/test.sh";
43a55500f0bebfda -->|satisfiedBy| d882e7ff8e1ffe95;
18307065fb353848 -->|satisfiedBy| d882e7ff8e1ffe95;
ff62a0266193ee63 -->|satisfiedBy| d882e7ff8e1ffe95;
98ae4e1997fb1002 -->|satisfiedBy| 5f9cbc6f907e8045;
ea6a90c3d551dae4["test.sh"];
class ea6a90c3d551dae4 default;
click ea6a90c3d551dae4 "../../../tests/test-search-all-features/test.sh";
55d54f4d3853a23b -->|satisfiedBy| ea6a90c3d551dae4;
94d34e73992ff9ac["test.sh"];
class 94d34e73992ff9ac default;
click 94d34e73992ff9ac "../../../tests/test-gitignore-integration/test.sh";
6cf270efbdc5a78 -->|satisfiedBy| 94d34e73992ff9ac;
5150ae05d0a88a84["test.sh"];
class 5150ae05d0a88a84 default;
click 5150ae05d0a88a84 "../../../tests/test-invalid-relations/test.sh";
83d989f6ea529f74 -->|satisfiedBy| 5150ae05d0a88a84;
aaf45a054cfa1d47["test.sh"];
class aaf45a054cfa1d47 default;
click aaf45a054cfa1d47 "../../../tests/test-advanced-format/test.sh";
ccbfdf0d74ac48bf -->|satisfiedBy| aaf45a054cfa1d47;
Specification File Identification
The system shall only parse markdown files that are identified as specification files. A markdown file is considered a specification file if and only if its first level-1 heading (#) is exactly # Elements. Files not meeting this criterion shall be ignored during model parsing, even if they have a .md extension.
Details
- The
# Elements heading must be the first H1 header in the file
- Leading whitespace, blank lines, or frontmatter before the heading are allowed
- Files without
# Elements as first H1 are silently skipped (no error)
- This rule applies in addition to
.gitignore and .reqvireignore exclusions
- The page title is not stored or tracked by the system
Metadata
Relations
Structure and Addressing in Markdown Documents
The system shall implement semi-structured markdown format specifications that defines the structure, rules, and usage of Elements, Subsections, Relations, and Identifiers in Markdown (.md) documents following clearly defined specifications.
Metadata
Attachments
Relations
Element Identity Model
The system shall distinguish between element identity (ID) and element addressing (identifier) to support stable element tracking independent of file location.
Metadata
Attachments
Relations
Identifiers and Relations
The system shall implement Identifiers and Relations following clearly defined specifications to ensure consistency, validity, and efficient querying and manipulation of these entities.
Metadata
Attachments
Relations
Reserved Subsections Support
The system shall support the following reserved subsections with predefined structure and behavior: Relations, Details, Metadata, and Attachments.
Details
The system shall support following reserved subsections:
- Relations: Define relationships between elements
- Details: Extend requirement text with additional information
- Metadata: Define element type and classification
- Attachments: Link external documents and Refinement elements
- Can contain file paths (markdown links where text equals href)
- Can contain element identifiers (markdown links to Refinement elements ONLY)
Each reserved subsection has specific parsing rules, validation requirements, and behaviors.
Metadata
Attachments
Relations