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 d1a073c5dbdc4a00["πŸ“„ Behaviors.md"] c7a7113c11f9175d["Subdirectory Auto-Detection Behavior"]; class c7a7113c11f9175d default; click c7a7113c11f9175d "Behaviors.html#subdirectory-auto-detection-behavior"; end subgraph 793b6191caf1a62f["πŸ“„ Constraints.md"] c1660a11594249ca["Element Type Relation Compatibility Constraint"]; class c1660a11594249ca default; click c1660a11594249ca "Constraints.html#element-type-relation-compatibility-constraint"; end subgraph 193cce1f294b91c8["πŸ“„ ModelManagement.md"] 42398f2c82684691["Attachment Identifier Updates
πŸ“Ž requirements/Functional/Core/Behaviors.md#attachment-identifier-crud-update-behavior"]; class 42398f2c82684691 systemRequirement; click 42398f2c82684691 "ModelManagement.html#attachment-identifier-updates"; 659a813dd417bc5e["Default Requirement Type Assignment
πŸ“Ž requirements/Functional/Core/Specifications.md#element-type-metadata-specification"]; class 659a813dd417bc5e userRequirement; click 659a813dd417bc5e "ModelManagement.html#default-requirement-type-assignment"; d27e40511b457522["Efficient Processing"]; class d27e40511b457522 userRequirement; click d27e40511b457522 "ModelManagement.html#efficient-processing"; d7718b70035d8d84["Element Manipulation Operations
πŸ“Ž 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 d7718b70035d8d84 userRequirement; click d7718b70035d8d84 "ModelManagement.html#element-manipulation-operations"; 3b924660b3d92e9d["Element Type Relation Compatibility
πŸ“Ž requirements/Refinements.md#supported-element-types-specification"]; class 3b924660b3d92e9d systemRequirement; click 3b924660b3d92e9d "ModelManagement.html#element-type-relation-compatibility"; 43eafdd22a501023["Git Repository as Project Root
πŸ“Ž requirements/Refinements.md#containment-specification"]; class 43eafdd22a501023 userRequirement; click 43eafdd22a501023 "ModelManagement.html#git-repository-as-project-root"; 7b8a81499865dbaa["Refinement Element Structure Constraints
πŸ“Ž RelationTypes.md
πŸ“Ž requirements/Refinements.md#supported-element-types-specification"]; class 7b8a81499865dbaa systemRequirement; click 7b8a81499865dbaa "ModelManagement.html#refinement-element-structure-constraints"; ac192cac778569d0["Relation Management Operations"]; class ac192cac778569d0 systemRequirement; click ac192cac778569d0 "ModelManagement.html#relation-management-operations"; 15293612289d990c["Relation Types and behaviors
πŸ“Ž RelationTypes.md
πŸ“Ž requirements/Refinements.md#relation-semantics-specification"]; class 15293612289d990c systemRequirement; click 15293612289d990c "ModelManagement.html#relation-types-and-behaviors"; 5dea9fe53eee419e["Template-Based Model Bootstrapping"]; class 5dea9fe53eee419e userRequirement; click 5dea9fe53eee419e "ModelManagement.html#template-based-model-bootstrapping"; 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"] f95149e7369cd429["Git Repository Scope Specification"]; class f95149e7369cd429 default; click f95149e7369cd429 "Specifications.html#git-repository-scope-specification"; 75dfb35477f838d5["Verification Type Selection Guidelines"]; class 75dfb35477f838d5 default; click 75dfb35477f838d5 "Specifications.html#verification-type-selection-guidelines"; end subgraph 98067cc5207d6b91["πŸ“„ Validation.md"] 9f1021634cff7f57["Relation Element Type Validator"]; class 9f1021634cff7f57 systemRequirement; click 9f1021634cff7f57 "Validation.html#relation-element-type-validator"; 4a77e514d9e5539b["Validate Relation Types
πŸ“Ž requirements/Refinements.md#relation-semantics-specification"]; class 4a77e514d9e5539b userRequirement; click 4a77e514d9e5539b "Validation.html#validate-relation-types"; end end subgraph 6c93988fc728d1f8["πŸ“ requirements/Functional/Core/Verifications"] subgraph 622a654342e7abad["πŸ“„ AttachmentsVerifications.md"] 2b94b4f8deb0b47d["Attachment Identifier CRUD Verification"]; class 2b94b4f8deb0b47d verification; click 2b94b4f8deb0b47d "Verifications/AttachmentsVerifications.html#attachment-identifier-crud-verification"; end subgraph 83363717080555bd["πŸ“„ ParsingVerifications.md"] 98ae4e1997fb1002["Element Subsection Parsing Test"]; class 98ae4e1997fb1002 verification; click 98ae4e1997fb1002 "Verifications/ParsingVerifications.html#element-subsection-parsing-test"; 581d470f0ef1f431["Refinement Element Type Parsing Test"]; class 581d470f0ef1f431 verification; click 581d470f0ef1f431 "Verifications/ParsingVerifications.html#refinement-element-type-parsing-test"; 52b50094727794f3["Refinement Relations Rejection Test"]; class 52b50094727794f3 verification; click 52b50094727794f3 "Verifications/ParsingVerifications.html#refinement-relations-rejection-test"; end subgraph 46a9d0ceb9db210e["πŸ“„ ValidationVerifications.md"] 40f8f3dcc6a4e8bd["Default Element Type Assignment Test"]; class 40f8f3dcc6a4e8bd verification; click 40f8f3dcc6a4e8bd "Verifications/ValidationVerifications.html#default-element-type-assignment-test"; 4bbdeefb4231596e["Element Type Relation Compatibility Test"]; class 4bbdeefb4231596e verification; click 4bbdeefb4231596e "Verifications/ValidationVerifications.html#element-type-relation-compatibility-test"; c40e17e0f8f2b5ec["Subdirectory Processing Verification"]; class c40e17e0f8f2b5ec verification; click c40e17e0f8f2b5ec "Verifications/ValidationVerifications.html#subdirectory-processing-verification"; 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"; 591265fa14ecd72d["Delete Element Operation"]; class 591265fa14ecd72d systemRequirement; click 591265fa14ecd72d "../Operations/ElementManipulation.html#delete-element-operation"; cab861a199d11c3c["Element Manipulation File Persistence
πŸ“Ž requirements/Functional/Operations/Behaviors.md#element-ordering-behavior"]; class cab861a199d11c3c systemRequirement; click cab861a199d11c3c "../Operations/ElementManipulation.html#element-manipulation-file-persistence"; 451abcac00b45de4["Merge Element Operation"]; class 451abcac00b45de4 systemRequirement; click 451abcac00b45de4 "../Operations/ElementManipulation.html#merge-element-operation"; c68daf5bfafc5a05["Move Element Operation
πŸ“Ž requirements/Functional/Operations/Constraints.md#target-location-constraint
πŸ“Ž requirements/Functional/Operations/Behaviors.md#element-ordering-behavior"]; class c68daf5bfafc5a05 systemRequirement; click c68daf5bfafc5a05 "../Operations/ElementManipulation.html#move-element-operation"; b9c9829782477a6c["Move File Operation
πŸ“Ž requirements/Functional/Operations/Constraints.md#target-location-constraint"]; class b9c9829782477a6c systemRequirement; click b9c9829782477a6c "../Operations/ElementManipulation.html#move-file-operation"; f006550e707e055f["Relation Consistency Maintenance"]; class f006550e707e055f systemRequirement; click f006550e707e055f "../Operations/ElementManipulation.html#relation-consistency-maintenance"; 8f31bcc56d19f6e9["Rename Element Operation"]; class 8f31bcc56d19f6e9 systemRequirement; click 8f31bcc56d19f6e9 "../Operations/ElementManipulation.html#rename-element-operation"; 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 7c2e7eef0051f760["πŸ“„ Specifications.md"] 2a23f1dee6913aeb["Relation Operations Specification"]; class 2a23f1dee6913aeb default; click 2a23f1dee6913aeb "../Operations/Specifications.html#relation-operations-specification"; end end subgraph 75874bcc96c01d2f["πŸ“ requirements/Functional/Operations/Verifications"] subgraph 264302f069db5bdb["πŸ“„ ElementManipulationVerifications.md"] ea3a2bf2fbe74057["Link Command Verification"]; class ea3a2bf2fbe74057 verification; click ea3a2bf2fbe74057 "../Operations/Verifications/ElementManipulationVerifications.html#link-command-verification"; 9f8ff23aca853fa0["Unlink Command Verification"]; class 9f8ff23aca853fa0 verification; click 9f8ff23aca853fa0 "../Operations/Verifications/ElementManipulationVerifications.html#unlink-command-verification"; end end subgraph e6e9a42ade18cb0e["πŸ“ requirements/Functional/Output"] subgraph a1762b6e181c2fd0["πŸ“„ DiagramGeneration.md"] 6a54472e974b0c63["Trace Relation Non-Directional Behavior"]; class 6a54472e974b0c63 systemRequirement; click 6a54472e974b0c63 "../Output/DiagramGeneration.html#trace-relation-non-directional-behavior"; end end 993c12e82435a78e["crud.rs"]; class 993c12e82435a78e default; click 993c12e82435a78e "../../../core/src/crud.rs"; 42398f2c82684691 -->|satisfiedBy| 993c12e82435a78e; 42398f2c82684691 -.->|verifiedBy| 2b94b4f8deb0b47d; 659a813dd417bc5e -.->|verifiedBy| 98ae4e1997fb1002; 659a813dd417bc5e -.->|verifiedBy| 40f8f3dcc6a4e8bd; d7718b70035d8d84 -.->|deriveReqT| 42398f2c82684691; d7718b70035d8d84 -.->|deriveReqT| bf9a2f73b67492b9; d7718b70035d8d84 -.->|deriveReqT| 591265fa14ecd72d; d7718b70035d8d84 -.->|deriveReqT| cab861a199d11c3c; d7718b70035d8d84 -.->|deriveReqT| 451abcac00b45de4; d7718b70035d8d84 -.->|deriveReqT| c68daf5bfafc5a05; d7718b70035d8d84 -.->|deriveReqT| b9c9829782477a6c; d7718b70035d8d84 -.->|deriveReqT| f006550e707e055f; d7718b70035d8d84 -.->|deriveReqT| 8f31bcc56d19f6e9; d7718b70035d8d84 -.->|deriveReqT| 9cdb6297e49a3802; 3b924660b3d92e9d -.->|deriveReqT| 9f1021634cff7f57; 3b924660b3d92e9d -->|satisfiedBy| c1660a11594249ca; 3b924660b3d92e9d -.->|verifiedBy| 4bbdeefb4231596e; 43eafdd22a501023 -.->|deriveReqT| 9cdb6297e49a3802; 9893721bc67f82c9["git_commands.rs"]; class 9893721bc67f82c9 default; click 9893721bc67f82c9 "../../../core/src/git_commands.rs"; 43eafdd22a501023 -->|satisfiedBy| 9893721bc67f82c9; 43eafdd22a501023 -->|satisfiedBy| c7a7113c11f9175d; 43eafdd22a501023 -->|satisfiedBy| f95149e7369cd429; 43eafdd22a501023 -.->|verifiedBy| c40e17e0f8f2b5ec; 499d48218b73f571["model.rs"]; class 499d48218b73f571 default; click 499d48218b73f571 "../../../core/src/model.rs"; 7b8a81499865dbaa -->|satisfiedBy| 499d48218b73f571; 7b8a81499865dbaa -.->|verifiedBy| 581d470f0ef1f431; 7b8a81499865dbaa -.->|verifiedBy| 52b50094727794f3; ac192cac778569d0 -->|satisfiedBy| 993c12e82435a78e; 95cf526671ec752c["graph_registry.rs"]; class 95cf526671ec752c default; click 95cf526671ec752c "../../../core/src/graph_registry.rs"; ac192cac778569d0 -->|satisfiedBy| 95cf526671ec752c; ac192cac778569d0 -->|satisfiedBy| 2a23f1dee6913aeb; ac192cac778569d0 -.->|verifiedBy| ea3a2bf2fbe74057; ac192cac778569d0 -.->|verifiedBy| 9f8ff23aca853fa0; 15293612289d990c -.->|deriveReqT| 3b924660b3d92e9d; 15293612289d990c -.->|deriveReqT| 7b8a81499865dbaa; 15293612289d990c -.->|deriveReqT| ac192cac778569d0; 15293612289d990c -.->|deriveReqT| 4a77e514d9e5539b; 15293612289d990c -.->|deriveReqT| 6a54472e974b0c63; 1cfe88f8d3cc7aac["relation.rs"]; class 1cfe88f8d3cc7aac default; click 1cfe88f8d3cc7aac "../../../core/src/relation.rs"; 15293612289d990c -->|satisfiedBy| 1cfe88f8d3cc7aac; 15293612289d990c -.->|verifiedBy| 98ae4e1997fb1002; 1275026756e287b9 -->|satisfiedBy| 75dfb35477f838d5; 5f9cbc6f907e8045["test.sh"]; class 5f9cbc6f907e8045 default; click 5f9cbc6f907e8045 "../../../tests/test-parsing-functionality/test.sh"; 98ae4e1997fb1002 -->|satisfiedBy| 5f9cbc6f907e8045; f63a7acfc08bf665["test.sh"]; class f63a7acfc08bf665 default; click f63a7acfc08bf665 "../../../tests/test-default-type-assignment/test.sh"; 40f8f3dcc6a4e8bd -->|satisfiedBy| f63a7acfc08bf665; 25bf5cc42f41e395["cli.rs"]; class 25bf5cc42f41e395 default; click 25bf5cc42f41e395 "../../../cli/src/cli.rs"; bf9a2f73b67492b9 -->|satisfiedBy| 25bf5cc42f41e395; bf9a2f73b67492b9 -->|satisfiedBy| 993c12e82435a78e; d07e49b06be4058e["diff.rs"]; class d07e49b06be4058e default; click d07e49b06be4058e "../../../core/src/diff.rs"; bf9a2f73b67492b9 -->|satisfiedBy| d07e49b06be4058e; bf9a2f73b67492b9 -->|satisfiedBy| 95cf526671ec752c; 35bd98d101f36b62["parser.rs"]; class 35bd98d101f36b62 default; click 35bd98d101f36b62 "../../../core/src/parser.rs"; 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; 591265fa14ecd72d -->|satisfiedBy| 25bf5cc42f41e395; 591265fa14ecd72d -->|satisfiedBy| 993c12e82435a78e; 591265fa14ecd72d -->|satisfiedBy| d07e49b06be4058e; 591265fa14ecd72d -->|satisfiedBy| 95cf526671ec752c; 591265fa14ecd72d -->|satisfiedBy| bc1f889f5f12a980; 591265fa14ecd72d -->|satisfiedBy| 4366fe5150f6d7c2; 591265fa14ecd72d -.->|verifiedBy| bfd28e1e74918526; cab861a199d11c3c -->|satisfiedBy| 993c12e82435a78e; cab861a199d11c3c -->|satisfiedBy| 95cf526671ec752c; cab861a199d11c3c -.->|verifiedBy| 362774efb36e2279; cab861a199d11c3c -.->|verifiedBy| c89bd750e0ad5b9d; 451abcac00b45de4 -->|satisfiedBy| 993c12e82435a78e; 451abcac00b45de4 -->|satisfiedBy| d07e49b06be4058e; 451abcac00b45de4 -->|satisfiedBy| 95cf526671ec752c; 451abcac00b45de4 -->|satisfiedBy| 2a2729a903e6692f; 451abcac00b45de4 -->|satisfiedBy| 3e506d76554b3740; 451abcac00b45de4 -->|satisfiedBy| 9a6c593ffee9a214; 451abcac00b45de4 -.->|verifiedBy| c7b35d6963f1017; c68daf5bfafc5a05 -->|satisfiedBy| 25bf5cc42f41e395; c68daf5bfafc5a05 -->|satisfiedBy| 993c12e82435a78e; c68daf5bfafc5a05 -->|satisfiedBy| d07e49b06be4058e; c68daf5bfafc5a05 -->|satisfiedBy| 95cf526671ec752c; c68daf5bfafc5a05 -->|satisfiedBy| c75283445bce637a; c68daf5bfafc5a05 -.->|verifiedBy| 9ae2cd53e62b6a33; b9c9829782477a6c -.->|verifiedBy| af599fec38b8c0bf; f006550e707e055f -->|satisfiedBy| 95cf526671ec752c; f006550e707e055f -.->|verifiedBy| 81422a9a6525acd7; 8f31bcc56d19f6e9 -->|satisfiedBy| 993c12e82435a78e; 8f31bcc56d19f6e9 -->|satisfiedBy| d07e49b06be4058e; 8f31bcc56d19f6e9 -->|satisfiedBy| 95cf526671ec752c; 9cdb6297e49a3802 -->|satisfiedBy| 95cf526671ec752c; 9cdb6297e49a3802 -->|satisfiedBy| bdf9762d399478a5; 9cdb6297e49a3802 -->|satisfiedBy| 1dc0e8b76789ffce; 9cdb6297e49a3802 -.->|verifiedBy| c0a8cdea5e5972df; 9f1021634cff7f57 -->|satisfiedBy| 95cf526671ec752c; 9f1021634cff7f57 -->|satisfiedBy| 499d48218b73f571; 9f1021634cff7f57 -->|satisfiedBy| 35bd98d101f36b62; 9f1021634cff7f57 -.->|verifiedBy| 4bbdeefb4231596e; 9f1021634cff7f57 -.->|verifiedBy| ad323c8d4c0751e; 845fe9ccbc0f0550["test.sh"]; class 845fe9ccbc0f0550 default; click 845fe9ccbc0f0550 "../../../tests/test-element-type-relation-compatibility/test.sh"; 4bbdeefb4231596e -->|satisfiedBy| 845fe9ccbc0f0550; 661275cf7a337c0e["test.sh"]; class 661275cf7a337c0e default; click 661275cf7a337c0e "../../../tests/test-subdirectory-functionality/test.sh"; c40e17e0f8f2b5ec -->|satisfiedBy| 661275cf7a337c0e; e2ae1addbaec6335["test.sh"]; class e2ae1addbaec6335 default; click e2ae1addbaec6335 "../../../tests/test-link-unlink/test.sh"; ea3a2bf2fbe74057 -->|satisfiedBy| e2ae1addbaec6335; 9f8ff23aca853fa0 -->|satisfiedBy| e2ae1addbaec6335; 4a77e514d9e5539b -.->|deriveReqT| 9f1021634cff7f57; 6a54472e974b0c63 -.->|verifiedBy| ad323c8d4c0751e; 6a54472e974b0c63 -.->|verifiedBy| 881f005c754cdc5b;

Default Requirement Type Assignment

The system shall automatically assign the default type requirement to all elements if not explicitly specified in their metadata subsection.

Details

Type Assignment Rules

When an element does not have a #### Metadata subsection with a type property, the system assigns the default type requirement.

This behavior is location-independent: All elements default to type requirement regardless of their folder location within the Git repository.

To use other element types, users must explicitly specify the type in the element’s Metadata subsection:

#### Metadata
  * type: user-requirement

Supported element types:

  • requirement (default)
  • user-requirement
  • verification / test-verification
  • analysis-verification
  • inspection-verification
  • demonstration-verification
  • constraint (refinement type)
  • behavior (refinement type)
  • specification (refinement type)
  • other

Metadata

  • type: user-requirement

Attachments

Relations


Efficient Processing

The system shall process structured documents and relations to extract model-relevant information efficiently.

Metadata

  • type: user-requirement

Relations


Element Manipulation Operations

The system shall provide programmatic manipulation of model elements through operations including, but not limited to, creating new elements, deleting existing elements, moving elements between locations, and renaming elements while maintaining model integrity and traceability.

Details

All manipulation operations shall:

  • Maintain model integrity and consistency
  • Update or remove affected relations automatically
  • Preserve traceability where appropriate

Metadata

  • type: user-requirement

Attachments

Relations


Attachment Identifier Updates

When moving or renaming Refinement elements, the system shall update attachment identifiers in all referencing elements, using the same behavior as relation target updates.

Details

This requirement ensures consistency between relation updates and attachment identifier updates during CRUD operations:

  • When a Refinement element is moved to a different file, all attachments referencing that element shall be updated with the new identifier path
  • When a Refinement element is renamed, all attachments referencing that element shall be updated with the new element name in the identifier
  • The update behavior mirrors how relation targets are updated during move/rename operations
  • All files containing attachments that reference the affected element shall be modified

Metadata

  • type: requirement

Attachments

Relations


Git Repository as Project Root

The system shall use the Git repository root as the project base for path resolution and scope management.

Details

  • The system shall treat the root directory of the Git repository as the project’s base for all file and folder references
  • The system shall implement path resolution following clearly defined specifications
  • When run from git root, the system shall process all files with paths resolved relative to git root
  • When run from a subdirectory, the system shall automatically detect the subdirectory context and limit processing scope
  • When run from a subdirectory, the system shall validate that all references stay within scope boundaries following clearly defined specifications

Metadata

  • type: user-requirement

Attachments

Relations


Relation Types and behaviors

The system shall implement relations following clearly defined specifications for types and behaviors.

Metadata

  • type: requirement

Attachments

Relations


Element Type Relation Compatibility

The system shall enforce element type constraints for relation types, ensuring that only valid combinations of source and target element types are allowed for each relation type.

Details

The system shall define element type relation compatibility constraints.

Metadata

  • type: requirement

Attachments

Relations


Refinement Element Structure Constraints

The system shall restrict Refinement elements (constraint, behavior, specification) to only allow satisfy relations.

Details

Refinement elements serve as detailed documentation that can be attached to other elements. Their relation usage is restricted because:

  • They represent atomic pieces of information focused on documenting requirements
  • They are primarily referenced through the Attachments subsection of other elements
  • Their satisfy relation links back to the requirement they fulfill

When a Refinement element contains relations other than satisfy, the validator shall report an error indicating that only satisfy relations are allowed for refinement types.

Metadata

  • type: requirement

Attachments

Relations


Relation Management Operations

The system shall provide programmatic manipulation of element relations through link and unlink operations while maintaining model integrity.

Details

When linking, the system shall:

  • Add a relation entry to the element’s Relations subsection
  • Create the Relations subsection if it does not exist
  • Validate the relation type and element type compatibility
  • Skip if relation already exists (idempotent operation)

When unlinking, the system shall:

  • Remove the relation entry from the element’s Relations subsection
  • Remove the Relations subsection if no relations remain

Metadata

  • type: requirement

Relations


Template-Based Model Bootstrapping

The system shall enable systems engineers to quickly bootstrap new System models from predefined templates stored in Git repositories, accelerating project initialization and promoting best-practice model structures.

Details

Template Bootstrapping Capabilities

Users can initialize new models using the CLI with templates from Git repositories:

  • Discover available templates within a specified repository
  • Select and apply templates interactively
  • Bootstrap model structure with predefined files, folders, and requirements

Templates are consumed from Git repositories only, with support for repositories containing multiple templates alongside other content.

Example usage:

reqvire init --template <github-repo-url>

The system discovers all available templates in the repository and allows the user to select which template to apply.

Metadata

  • type: user-requirement

Relations


Verification Type Categories

The system shall support defined verification categories following clearly defined specifications.

Metadata

  • type: requirement

Attachments

Relations