| # | Almirah Software Requirements Specification | # | Repository | File Name | Comment |
| SRS-001 |
The software shall allow creating Controlled Items. |
SC-AAAA |
Almirah.Code |
controlled_paragraph.rb |
Implementa a controlled paragraph as a subclass of the DocItem |
| SRS-001 |
The software shall allow creating Controlled Items. |
SC-AAET |
Almirah.Spec |
paragraph_types_spec.rb |
The software shall allow creating Controlled Items |
| SRS-002 |
The software shall allow to create a reference from a Controlled Item to external Controlled Item. |
SC-AAEV |
Almirah.Spec |
paragraph_types_spec.rb |
The software shall allow to create a reference from a Controlled Item to external Controlled Item |
| SRS-003 |
The software shall indicate whether a Controlled Item is referenced in another specification via External Item ID |
SC-AAEW |
Almirah.Spec |
paragraph_types_spec.rb |
The software shall indicate whether a Controlled Item is referenced in another specification via External Item ID |
| SRS-004 |
The software shall allow to create a non-controlled items. |
SC-AAAB |
Almirah.Code |
paragraph.rb |
Implementa a non-controlled paragraph as a subclass of the DocItem |
| SRS-004 |
The software shall allow to create a non-controlled items. |
SC-AAEU |
Almirah.Spec |
paragraph_types_spec.rb |
The software shall allow to create a non-controlled items |
| SRS-005 |
The software shall provide the "Number of Controlled Items" for each specification |
SC-AAEX |
Almirah.Spec |
statistics_spec.rb |
The software shall provide the "Number of Controlled Items" for each specification ID |
| SRS-006 |
The software shall provide the "Number of Items w/ Up-links" for each specification |
SC-AAEY |
Almirah.Spec |
statistics_spec.rb |
The software shall provide the "Number of Items w/ Up-links" for each specification |
| SRS-007 |
The software shall provide the "Number of Items w/ Down-links" for each specification |
SC-AAEZ |
Almirah.Spec |
statistics_spec.rb |
The software shall provide the "Number of Items w/ Down-links" for each specification |
| SRS-008 |
The software shall provide the "Number of Items w/ Test Coverage" for each specification |
SC-AAFA |
Almirah.Spec |
statistics_spec.rb |
The software shall provide the "Number of Items w/ Test Coverage" for each specification |
| SRS-009 |
The software shall provide the "Duplicated Item Ids found" (just a number) for each specification |
|
|
|
|
| SRS-010 |
The software shall provide the "Last used Item ID" for each specification |
|
|
|
|
| SRS-011 |
The software shall allow using internal links in the text (links to any markdown files that are managed by this software) |
|
|
|
|
| SRS-012 |
The software shall allow to use the links to any headings in the text |
|
|
|
|
| SRS-013 |
The software shall allow using external links in the text (links to any public resources) |
|
|
|
|
| SRS-014 |
The software shall allow using italic font decoration |
|
|
|
|
| SRS-015 |
The software shall allow using bold font decoration |
|
|
|
|
| SRS-016 |
The software shall allow using bold and italic font decoration simultaneously |
|
|
|
|
| SRS-017 |
The software shall allow using unordered lists with either "*" or "-" as the item marker |
SC-AAAE |
Almirah.Spec |
doc_parser_spec.rb |
Unordered lists with "*" or "-" as the item marker. |
| SRS-017 |
The software shall allow using unordered lists with either "*" or "-" as the item marker |
SC-AAAF |
Almirah.Spec |
doc_parser_spec.rb |
Unordered lists with "*" or "-" as the item marker. |
| SRS-017 |
The software shall allow using unordered lists with either "*" or "-" as the item marker |
SC-AAAG |
Almirah.Spec |
doc_parser_spec.rb |
Unordered lists with "*" or "-" as the item marker. |
| SRS-017 |
The software shall allow using unordered lists with either "*" or "-" as the item marker |
SC-AAAH |
Almirah.Spec |
doc_parser_spec.rb |
Unordered lists with "*" or "-" as the item marker. |
| SRS-017 |
The software shall allow using unordered lists with either "*" or "-" as the item marker |
SC-AAAJ |
Almirah.Spec |
doc_parser_spec.rb |
Unordered lists with "*" or "-" as the item marker. |
| SRS-017 |
The software shall allow using unordered lists with either "*" or "-" as the item marker |
SC-AAAL |
Almirah.Spec |
doc_parser_spec.rb |
Unordered lists with "*" or "-" as the item marker. |
| SRS-018 |
The software shall allow using ordered lists |
|
|
|
|
| SRS-019 |
The software shall allow using nested levels of ordered and unordered lists |
SC-AAAI |
Almirah.Spec |
doc_parser_spec.rb |
Nested levels of ordered and unordered lists. |
| SRS-019 |
The software shall allow using nested levels of ordered and unordered lists |
SC-AAAK |
Almirah.Spec |
doc_parser_spec.rb |
Nested levels of ordered and unordered lists. |
| SRS-020 |
The software shall provide a traceability reports for all specifications that contains Controlled Items with the references to external controlled item. The level of traceability is item to item (paragraph to paragraph) |
|
|
|
|
| SRS-021 |
The software shall generate traceability reports in HTML format. |
|
|
|
|
| SRS-022 |
The software shall additionally provide the traceability report in CSV format if appropriate software configuration is enabled. |
|
|
|
|
| SRS-023 |
The software shall indicate if there is a link to the item that does not exist. (like the following one) |
|
|
|
|
| SRS-024 |
The software shall allow using unordered lists with bold, italic, and mixed formatting |
SC-AAAM |
Almirah.Spec |
doc_parser_spec.rb |
Unordered lists with bold, italic, and mixed formatting. |
| SRS-025 |
The software shall allow using ordered lists with bold, italic, and mixed formatting |
|
|
|
|
| SRS-026 |
The software shall allow using nested levels of ordered and unordered lists with bold, italic, and mixed formatting |
|
|
|
|
| SRS-027 |
The software shall allow using code blocks (see example below). |
|
|
|
|
| SRS-028 |
For each Controlled Item software shall show an External Controlled Item ID the Item refers to in form of clickable link (up-link). |
|
|
|
|
| SRS-029 |
For each Controlled Item software shall show an External Controlled Item ID the Item is referenced in form of clickable link (down-link). |
|
|
|
|
| SRS-030 |
For each Controlled Item software shall show a test case and test step IDs the Item is verified by in form of clickable link (coverage link). |
|
|
|
|
| SRS-031 |
If there is more than one up-link in the Controlled Item, the software shall show them in two steps: |
|
|
|
|
| SRS-032 |
If User clicks on the up-link, the software shall navigate to an External Controlled Item this up-link refers to. |
|
|
|
|
| SRS-033 |
If there is more than one down-link in the Controlled Item, the software shall show them in two steps: |
|
|
|
|
| SRS-034 |
If User clicks on the down-link, the software shall navigate to an External Controlled Item this item is referenced in. |
|
|
|
|
| SRS-035 |
If there is more than one coverage-link in the Controlled Item, the software shall show them in two steps: |
|
|
|
|
| SRS-036 |
If User clicks on the coverage link, the software shall navigate to a particular test case and test step this item is verified by. |
|
|
|
|
| SRS-037 |
The software shall allow to align the text in markdown table clolumns using the following options: |
|
|
|
|
| SRS-038 |
The software shall allow to create a reference from a Source Code File to external Controlled Item. |
|
|
|
|
| SRS-039 |
The software shall allow to create decision records as a markdown files (one file for each record) |
|
|
|
|
| SRS-040 |
The software shall derive the Decision Record ID as the filename prefix made up of letters, a dash, and digits. If the filename does not match this pattern, the full filename stem shall be used as the ID. |
SC-AABW |
Almirah.Spec |
decisions_spec.rb |
ID derived from filename letters-digits prefix; full stem when no match. |
| SRS-040 |
The software shall derive the Decision Record ID as the filename prefix made up of letters, a dash, and digits. If the filename does not match this pattern, the full filename stem shall be used as the ID. |
SC-AACP |
Almirah.Spec |
decisions_spec.rb |
ID derived from filename letters-digits prefix; full stem when no match. |
| SRS-040 |
The software shall derive the Decision Record ID as the filename prefix made up of letters, a dash, and digits. If the filename does not match this pattern, the full filename stem shall be used as the ID. |
SC-AACS |
Almirah.Spec |
decisions_spec.rb |
ID derived from filename letters-digits prefix; full stem when no match. |
| SRS-040 |
The software shall derive the Decision Record ID as the filename prefix made up of letters, a dash, and digits. If the filename does not match this pattern, the full filename stem shall be used as the ID. |
SC-AACX |
Almirah.Spec |
decisions_spec.rb |
ID derived from filename letters-digits prefix; full stem when no match. |
| SRS-041 |
The software shall provide a Decision Records Overview page listing every decision record with the following columns: Sequence Number, Type, Title. |
SC-AABV |
Almirah.Spec |
decisions_spec.rb |
Provide a Decision Records Overview page with Sequence Number, Type, Title columns. |
| SRS-041 |
The software shall provide a Decision Records Overview page listing every decision record with the following columns: Sequence Number, Type, Title. |
SC-AABX |
Almirah.Spec |
decisions_spec.rb |
Provide a Decision Records Overview page with Sequence Number, Type, Title columns. |
| SRS-042 |
When a User clicks on the Title in the Decision Records Overview, the software shall navigate to the rendered page of the selected decision record. |
SC-AACH |
Almirah.Spec |
decisions_spec.rb |
Title click in the overview navigates to the rendered decision page. |
| SRS-042 |
When a User clicks on the Title in the Decision Records Overview, the software shall navigate to the rendered page of the selected decision record. |
SC-AACN |
Almirah.Spec |
decisions_spec.rb |
Title click in the overview navigates to the rendered decision page. |
| SRS-043 |
The software shall accept decision records placed in the decisions/ folder at the project root, including nested subfolders. |
SC-AACI |
Almirah.Spec |
decisions_spec.rb |
Accept decision records placed in the decisions/ folder, including nested subfolders. |
| SRS-043 |
The software shall accept decision records placed in the decisions/ folder at the project root, including nested subfolders. |
SC-AACK |
Almirah.Spec |
decisions_spec.rb |
Accept decision records placed in the decisions/ folder, including nested subfolders. |
| SRS-043 |
The software shall accept decision records placed in the decisions/ folder at the project root, including nested subfolders. |
SC-AACO |
Almirah.Spec |
decisions_spec.rb |
Accept decision records placed in the decisions/ folder, including nested subfolders. |
| SRS-044 |
The software shall derive the Decision Record Sequence Number as the digits portion of the ID. |
SC-AABY |
Almirah.Spec |
decisions_spec.rb |
Sequence Number is the digits portion of the ID. |
| SRS-044 |
The software shall derive the Decision Record Sequence Number as the digits portion of the ID. |
SC-AACQ |
Almirah.Spec |
decisions_spec.rb |
Sequence Number is the digits portion of the ID. |
| SRS-044 |
The software shall derive the Decision Record Sequence Number as the digits portion of the ID. |
SC-AACT |
Almirah.Spec |
decisions_spec.rb |
Sequence Number is the digits portion of the ID. |
| SRS-045 |
The software shall derive the Decision Record Type as the letters portion of the ID, in upper case. |
SC-AABZ |
Almirah.Spec |
decisions_spec.rb |
Type is the letters portion of the ID, in upper case. |
| SRS-045 |
The software shall derive the Decision Record Type as the letters portion of the ID, in upper case. |
SC-AACR |
Almirah.Spec |
decisions_spec.rb |
Type is the letters portion of the ID, in upper case. |
| SRS-045 |
The software shall derive the Decision Record Type as the letters portion of the ID, in upper case. |
SC-AACU |
Almirah.Spec |
decisions_spec.rb |
Type is the letters portion of the ID, in upper case. |
| SRS-045 |
The software shall derive the Decision Record Type as the letters portion of the ID, in upper case. |
SC-AACY |
Almirah.Spec |
decisions_spec.rb |
Type is the letters portion of the ID, in upper case. |
| SRS-046 |
The software shall accept the Decision Record title from the YAML frontmatter title field of the source markdown file. |
SC-AACA |
Almirah.Spec |
decisions_spec.rb |
Title comes from the YAML frontmatter title field. |
| SRS-046 |
The software shall accept the Decision Record title from the YAML frontmatter title field of the source markdown file. |
SC-AACV |
Almirah.Spec |
decisions_spec.rb |
Title comes from the YAML frontmatter title field. |
| SRS-046 |
The software shall accept the Decision Record title from the YAML frontmatter title field of the source markdown file. |
SC-AACW |
Almirah.Spec |
decisions_spec.rb |
Title comes from the YAML frontmatter title field. |
| SRS-047 |
The software shall render each decision record to an individual HTML page whose filename matches the Decision Record ID. |
SC-AACE |
Almirah.Spec |
decisions_spec.rb |
Render each decision record to an HTML page named after the Decision Record ID. |
| SRS-047 |
The software shall render each decision record to an individual HTML page whose filename matches the Decision Record ID. |
SC-AACF |
Almirah.Spec |
decisions_spec.rb |
Render each decision record to an HTML page named after the Decision Record ID. |
| SRS-047 |
The software shall render each decision record to an individual HTML page whose filename matches the Decision Record ID. |
SC-AACJ |
Almirah.Spec |
decisions_spec.rb |
Render each decision record to an HTML page named after the Decision Record ID. |
| SRS-047 |
The software shall render each decision record to an individual HTML page whose filename matches the Decision Record ID. |
SC-AACL |
Almirah.Spec |
decisions_spec.rb |
Render each decision record to an HTML page named after the Decision Record ID. |
| SRS-048 |
The software shall provide a clickable "Decision Records" link in the top navigation bar of every rendered page, when at least one decision record exists in the project. The link shall lead to the Decision Records Overview page. |
SC-AACB |
Almirah.Spec |
decisions_spec.rb |
Top-nav Decision Records link on every rendered page, when at least one record exists. |
| SRS-048 |
The software shall provide a clickable "Decision Records" link in the top navigation bar of every rendered page, when at least one decision record exists in the project. The link shall lead to the Decision Records Overview page. |
SC-AACC |
Almirah.Spec |
decisions_spec.rb |
Top-nav Decision Records link on every rendered page, when at least one record exists. |
| SRS-048 |
The software shall provide a clickable "Decision Records" link in the top navigation bar of every rendered page, when at least one decision record exists in the project. The link shall lead to the Decision Records Overview page. |
SC-AACD |
Almirah.Spec |
decisions_spec.rb |
Top-nav Decision Records link on every rendered page, when at least one record exists. |
| SRS-048 |
The software shall provide a clickable "Decision Records" link in the top navigation bar of every rendered page, when at least one decision record exists in the project. The link shall lead to the Decision Records Overview page. |
SC-AACG |
Almirah.Spec |
decisions_spec.rb |
Top-nav Decision Records link on every rendered page, when at least one record exists. |
| SRS-048 |
The software shall provide a clickable "Decision Records" link in the top navigation bar of every rendered page, when at least one decision record exists in the project. The link shall lead to the Decision Records Overview page. |
SC-AACM |
Almirah.Spec |
decisions_spec.rb |
Top-nav Decision Records link on every rendered page, when at least one record exists. |
| SRS-048 |
The software shall provide a clickable "Decision Records" link in the top navigation bar of every rendered page, when at least one decision record exists in the project. The link shall lead to the Decision Records Overview page. |
SC-AACZ |
Almirah.Spec |
decisions_spec.rb |
Top-nav Decision Records link on every rendered page, when at least one record exists. |
| SRS-048 |
The software shall provide a clickable "Decision Records" link in the top navigation bar of every rendered page, when at least one decision record exists in the project. The link shall lead to the Decision Records Overview page. |
SC-AADA |
Almirah.Spec |
decisions_spec.rb |
Top-nav Decision Records link on every rendered page, when at least one record exists. |
| SRS-049 |
The software shall recognise a leading marker column in a Decision Record Status table and shall expose the status value of the row marked with "*" as the Decision Record's current status. When zero rows or more than one row carry the marker, the current status shall be undefined. |
SC-AADB |
Almirah.Spec |
decisions_spec.rb |
Decision Record current status comes from the "*"-marked row of the Status table. |
| SRS-049 |
The software shall recognise a leading marker column in a Decision Record Status table and shall expose the status value of the row marked with "*" as the Decision Record's current status. When zero rows or more than one row carry the marker, the current status shall be undefined. |
SC-AADG |
Almirah.Spec |
decisions_spec.rb |
Current status is undefined when zero rows carry the marker. |
| SRS-049 |
The software shall recognise a leading marker column in a Decision Record Status table and shall expose the status value of the row marked with "*" as the Decision Record's current status. When zero rows or more than one row carry the marker, the current status shall be undefined. |
SC-AADI |
Almirah.Spec |
decisions_spec.rb |
Current status is undefined when more than one row carries the marker. |
| SRS-050 |
The software shall render the "*" in the leading marker column of a Decision Record Status table as a solid right-pointing triangle ("▶") in the generated HTML, and shall visually highlight the entire marked row so that the current state is distinguishable from past and planned rows. Other tables and other columns shall be unaffected. |
SC-AADE |
Almirah.Spec |
decisions_spec.rb |
Render the "*" in the Status table marker column as "▶" in the rendered HTML. |
| SRS-050 |
The software shall render the "*" in the leading marker column of a Decision Record Status table as a solid right-pointing triangle ("▶") in the generated HTML, and shall visually highlight the entire marked row so that the current state is distinguishable from past and planned rows. Other tables and other columns shall be unaffected. |
SC-AADF |
Almirah.Spec |
decisions_spec.rb |
Highlight the current-status row in the Status table for visual emphasis. |
| SRS-050 |
The software shall render the "*" in the leading marker column of a Decision Record Status table as a solid right-pointing triangle ("▶") in the generated HTML, and shall visually highlight the entire marked row so that the current state is distinguishable from past and planned rows. Other tables and other columns shall be unaffected. |
SC-AADK |
Almirah.Spec |
decisions_spec.rb |
Triangle substitution applies only to the Status table. |
| SRS-051 |
The Decision Records Overview page shall include a "Status" column between the "Type" and "Title" columns, displaying each decision record's current status. The cell shall be empty when the current status is undefined. |
SC-AADC |
Almirah.Spec |
decisions_spec.rb |
Decision Records Overview page has a Status column between Type and Title. |
| SRS-051 |
The Decision Records Overview page shall include a "Status" column between the "Type" and "Title" columns, displaying each decision record's current status. The cell shall be empty when the current status is undefined. |
SC-AADD |
Almirah.Spec |
decisions_spec.rb |
Decision Records Overview page has a Status column between Type and Title. |
| SRS-051 |
The Decision Records Overview page shall include a "Status" column between the "Type" and "Title" columns, displaying each decision record's current status. The cell shall be empty when the current status is undefined. |
SC-AADH |
Almirah.Spec |
decisions_spec.rb |
Decision Records Overview Status cell is empty when current status is undefined. |
| SRS-051 |
The Decision Records Overview page shall include a "Status" column between the "Type" and "Title" columns, displaying each decision record's current status. The cell shall be empty when the current status is undefined. |
SC-AADJ |
Almirah.Spec |
decisions_spec.rb |
Decision Records Overview Status cell is empty when current status is undefined. |
| SRS-052 |
The software shall recognise the "Affected Documents" section in Decision Records that indicates the list of Controlled Items with their text updated or created in scope of the Decision Record. |
SC-AAAN |
Almirah.Spec |
affected_documents_spec.rb |
Recognises the Affected Documents section and parses its three-column table. |
| SRS-052 |
The software shall recognise the "Affected Documents" section in Decision Records that indicates the list of Controlled Items with their text updated or created in scope of the Decision Record. |
SC-AAAX |
Almirah.Spec |
affected_documents_spec.rb |
Only tables inside the Affected Documents section establish links. |
| SRS-052 |
The software shall recognise the "Affected Documents" section in Decision Records that indicates the list of Controlled Items with their text updated or created in scope of the Decision Record. |
SC-AAAY |
Almirah.Spec |
affected_documents_spec.rb |
A backslash-escaped pipe inside a cell is a literal "|", not a column separator. |
| SRS-053 |
The software shall recognise the "Affected Documents" section as a single markdown table with the following columns in order: "#", "Proposed Text", and "Req-ID". |
SC-AAAN |
Almirah.Spec |
affected_documents_spec.rb |
Recognises the Affected Documents section and parses its three-column table. |
| SRS-054 |
The software shall accept the External Controlled Item ID in the "Req-ID" column of the "Affected Documents" table in the form " |
SC-AAAO |
Almirah.Spec |
affected_documents_spec.rb |
Req-ID column accepts |
| SRS-055 |
When a Decision Record contains an "Affected Documents" section, the software shall establish a link from each row of the section to the referenced Controlled Item in the target Specification document. |
SC-AAAR |
Almirah.Spec |
affected_documents_spec.rb |
Establishes a link from each Affected Documents row to the referenced Item. |
| SRS-055 |
When a Decision Record contains an "Affected Documents" section, the software shall establish a link from each row of the section to the referenced Controlled Item in the target Specification document. |
SC-AAAX |
Almirah.Spec |
affected_documents_spec.rb |
Only tables inside the Affected Documents section establish links. |
| SRS-056 |
The software shall report a broken reference if the "Req-ID" column in an "Affected Documents" table refers to a Controlled Item ID that does not exist, naming the owning Decision Record in the report. |
SC-AAAW |
Almirah.Spec |
affected_documents_spec.rb |
Broken Req-ID does not crash the build and the decision page is still rendered. |
| SRS-057 |
The software shall render the "Req-ID" cell in the "Affected Documents" table of a Decision Record as a clickable link to the referenced Controlled Item in the Specification document. |
SC-AAAP |
Almirah.Spec |
affected_documents_spec.rb |
Render the Req-ID cell on the Decision page as a clickable link. |
| SRS-057 |
The software shall render the "Req-ID" cell in the "Affected Documents" table of a Decision Record as a clickable link to the referenced Controlled Item in the Specification document. |
SC-AAAZ |
Almirah.Spec |
affected_documents_spec.rb |
Nested-folder decision page resolves Req-ID hrefs with correct relative depth. |
| SRS-058 |
For each Controlled Item software shall show a Decision Record ID the Item is affected by in form of clickable link in uppercase (decision record link). |
SC-AAAQ |
Almirah.Spec |
affected_documents_spec.rb |
Controlled-paragraph table carries a DR column titled "Decision Record" after COV. |
| SRS-058 |
For each Controlled Item software shall show a Decision Record ID the Item is affected by in form of clickable link in uppercase (decision record link). |
SC-AAAS |
Almirah.Spec |
affected_documents_spec.rb |
For each Controlled Item show the affecting Decision Records as clickable links. |
| SRS-058 |
For each Controlled Item software shall show a Decision Record ID the Item is affected by in form of clickable link in uppercase (decision record link). |
SC-AAAV |
Almirah.Spec |
affected_documents_spec.rb |
DR column is empty when no decision record affects the Controlled Item. |
| SRS-059 |
If there is more than one decision record link in the Controlled Item, the software shall show them in two steps: |
SC-AAAU |
Almirah.Spec |
affected_documents_spec.rb |
Multi-link DR cell uses the collapse-to-count widget. |
| SRS-060 |
If User clicks on the decision record link, the software shall navigate to the Decision Record this item is affected by. |
SC-AAAT |
Almirah.Spec |
affected_documents_spec.rb |
Click on a decision record link navigates to the Decision Record page. |
| SRS-060 |
If User clicks on the decision record link, the software shall navigate to the Decision Record this item is affected by. |
SC-AABA |
Almirah.Spec |
affected_documents_spec.rb |
DR cell on the specification page resolves to a nested decision page. |
| SRS-061 |
The software shall expose a Start Date attribute on each Decision Record, computed as the earliest calendar date found in the Date column of the Decision Record's Status table and in the Start Date column of the Decision Record's Scope table. |
SC-AADL |
Almirah.Spec |
decisions_spec.rb |
Start Date is the earliest of Status Date and Scope Start Date columns. |
| SRS-061 |
The software shall expose a Start Date attribute on each Decision Record, computed as the earliest calendar date found in the Date column of the Decision Record's Status table and in the Start Date column of the Decision Record's Scope table. |
SC-AADN |
Almirah.Spec |
decisions_spec.rb |
Falls back to Status Date column when Scope is missing. |
| SRS-061 |
The software shall expose a Start Date attribute on each Decision Record, computed as the earliest calendar date found in the Date column of the Decision Record's Status table and in the Start Date column of the Decision Record's Scope table. |
SC-AADO |
Almirah.Spec |
decisions_spec.rb |
Falls back to Scope Start Date column when Status is missing. |
| SRS-062 |
The software shall recognise dates in the form "DD-MM-YYYY" when computing the Start Date attribute of a Decision Record. Cells whose contents do not match this form shall be skipped without raising an error. |
|
|
|
|
| SRS-063 |
The software shall identify the Date column of a Decision Record's Status table and the Start Date column of a Decision Record's Scope table by their header text, case-sensitive, and not by column position. |
SC-AADR |
Almirah.Spec |
decisions_spec.rb |
Columns are identified by header text, not by position. |
| SRS-064 |
When neither the Status table's Date column nor the Scope table's Start Date column of a Decision Record contains a date matching the recognised form, the Start Date attribute of that Decision Record shall be undefined. |
SC-AADP |
Almirah.Spec |
decisions_spec.rb |
Start Date is undefined when no date is parseable. |
| SRS-064 |
When neither the Status table's Date column nor the Scope table's Start Date column of a Decision Record contains a date matching the recognised form, the Start Date attribute of that Decision Record shall be undefined. |
SC-AADS |
Almirah.Spec |
decisions_spec.rb |
Start Date is undefined when neither table is present. |
| SRS-065 |
The Decision Records Overview page shall render the Start Date attribute of each Decision Record in the existing Start Date column, formatted as "DD-MM-YYYY". The cell shall be empty when the Start Date attribute is undefined. |
SC-AADM |
Almirah.Spec |
decisions_spec.rb |
Start Date is rendered in the existing Start Date column, DD-MM-YYYY. |
| SRS-065 |
The Decision Records Overview page shall render the Start Date attribute of each Decision Record in the existing Start Date column, formatted as "DD-MM-YYYY". The cell shall be empty when the Start Date attribute is undefined. |
SC-AADQ |
Almirah.Spec |
decisions_spec.rb |
Start Date cell is empty when the attribute is undefined. |
| SRS-066 |
The software shall expose a Target Release Version attribute on each Decision Record, computed by locating the Decision Record's Software Versions section, finding the row of its table whose Software Version Category cell equals "Target Release Version", and taking the value of that row's Software Version ID cell. |
SC-AADT |
Almirah.Spec |
decisions_spec.rb |
Expose Target Release Version attribute on each Decision Record. |
| SRS-066 |
The software shall expose a Target Release Version attribute on each Decision Record, computed by locating the Decision Record's Software Versions section, finding the row of its table whose Software Version Category cell equals "Target Release Version", and taking the value of that row's Software Version ID cell. |
SC-AAEC |
Almirah.Spec |
decisions_spec.rb |
Version value is passed through verbatim, no SemVer parsing. |
| SRS-067 |
The software shall identify the Software Version Category column and the Software Version ID column of a Decision Record's Software Versions table by their header text, case-sensitive, and not by column position. |
SC-AADX |
Almirah.Spec |
decisions_spec.rb |
Columns identified by header text, not by position. |
| SRS-068 |
The software shall identify the Target Release Version row of a Decision Record's Software Versions table by an exact, case-sensitive match against its Software Version Category cell after stripping surrounding whitespace. |
|
|
|
|
| SRS-069 |
When a Decision Record's Software Versions section, the table within it, the Software Version Category or Software Version ID column, the Target Release Version row, or the cell value is missing or empty, the Target Release Version attribute of that Decision Record shall be undefined. |
SC-AADY |
Almirah.Spec |
decisions_spec.rb |
Target Release Version is undefined when section is missing. |
| SRS-069 |
When a Decision Record's Software Versions section, the table within it, the Software Version Category or Software Version ID column, the Target Release Version row, or the cell value is missing or empty, the Target Release Version attribute of that Decision Record shall be undefined. |
SC-AAEA |
Almirah.Spec |
decisions_spec.rb |
Target Release Version is undefined when the row is missing. |
| SRS-069 |
When a Decision Record's Software Versions section, the table within it, the Software Version Category or Software Version ID column, the Target Release Version row, or the cell value is missing or empty, the Target Release Version attribute of that Decision Record shall be undefined. |
SC-AAEB |
Almirah.Spec |
decisions_spec.rb |
Target Release Version is undefined when the cell is empty. |
| SRS-070 |
The Decision Records Overview page shall include a "Release" column positioned between the "Target Date" and "Owner" columns, displaying each decision record's Target Release Version attribute as plain text. The column header shall carry an HTML title attribute with the value "Target Release Version". The cell shall be empty when the attribute is undefined. |
SC-AADU |
Almirah.Spec |
decisions_spec.rb |
Render the Target Release Version attribute in the Release column. |
| SRS-070 |
The Decision Records Overview page shall include a "Release" column positioned between the "Target Date" and "Owner" columns, displaying each decision record's Target Release Version attribute as plain text. The column header shall carry an HTML title attribute with the value "Target Release Version". The cell shall be empty when the attribute is undefined. |
SC-AADV |
Almirah.Spec |
decisions_spec.rb |
Release column header carries title="Target Release Version". |
| SRS-070 |
The Decision Records Overview page shall include a "Release" column positioned between the "Target Date" and "Owner" columns, displaying each decision record's Target Release Version attribute as plain text. The column header shall carry an HTML title attribute with the value "Target Release Version". The cell shall be empty when the attribute is undefined. |
SC-AADW |
Almirah.Spec |
decisions_spec.rb |
Release column is placed between Target Date and Owner. |
| SRS-070 |
The Decision Records Overview page shall include a "Release" column positioned between the "Target Date" and "Owner" columns, displaying each decision record's Target Release Version attribute as plain text. The column header shall carry an HTML title attribute with the value "Target Release Version". The cell shall be empty when the attribute is undefined. |
SC-AADZ |
Almirah.Spec |
decisions_spec.rb |
Release cell is empty when attribute is undefined. |
| SRS-070 |
The Decision Records Overview page shall include a "Release" column positioned between the "Target Date" and "Owner" columns, displaying each decision record's Target Release Version attribute as plain text. The column header shall carry an HTML title attribute with the value "Target Release Version". The cell shall be empty when the attribute is undefined. |
SC-AAEC |
Almirah.Spec |
decisions_spec.rb |
Version value is passed through verbatim, no SemVer parsing. |
| SRS-071 |
The Decision Records Overview page shall include a stacked bar chart visualising decision-record counts grouped by status across a trailing six-week window, placed in the second chart cell of the Decision Records Overview charts grid. |
SC-AAED |
Almirah.Spec |
decisions_spec.rb |
Velocity chart placed in the second chart cell. |
| SRS-072 |
The velocity chart shall display six bars, one per Friday, corresponding to the six most recent Fridays on or before the date the page is rendered, ordered left-to-right oldest-to-newest, with each X-axis label formatted as "DD-MM-YYYY". |
SC-AAEE |
Almirah.Spec |
decisions_spec.rb |
Six bars, Fridays ordered oldest-to-newest, DD-MM-YYYY labels. |
| SRS-073 |
The status of a Decision Record as of a given calendar date shall be computed as the Status table row whose parseable date is the latest one that is on or before that calendar date; when multiple rows share that latest date, the row appearing later in the table shall be selected. |
SC-AAEF |
Almirah.Spec |
decisions_spec.rb |
Status as of date = latest parseable date <= date. |
| SRS-073 |
The status of a Decision Record as of a given calendar date shall be computed as the Status table row whose parseable date is the latest one that is on or before that calendar date; when multiple rows share that latest date, the row appearing later in the table shall be selected. |
SC-AAEJ |
Almirah.Spec |
decisions_spec.rb |
Same-date tie broken by document order; later row wins. |
| SRS-073 |
The status of a Decision Record as of a given calendar date shall be computed as the Status table row whose parseable date is the latest one that is on or before that calendar date; when multiple rows share that latest date, the row appearing later in the table shall be selected. |
SC-AAEK |
Almirah.Spec |
decisions_spec.rb |
Future-dated rows are ignored for past Fridays. |
| SRS-074 |
When the earliest parseable Status table date of a Decision Record is later than the calendar date of a velocity chart bar, that Decision Record shall not contribute to that bar. |
SC-AAEG |
Almirah.Spec |
decisions_spec.rb |
Record not yet proposed contributes to no bar. |
| SRS-075 |
Decision Records that have no Status section, no table in their Status section, or no Status table row whose Date cell is parseable as "DD-MM-YYYY" shall not contribute to any bar of the velocity chart. |
SC-AAEH |
Almirah.Spec |
decisions_spec.rb |
Records with no Status table contribute to no velocity bar. |
| SRS-076 |
The set of stack segments in the velocity chart shall be the union of every distinct status text encountered across all Decision Records and all six bars, with status text compared by exact case-sensitive equality after stripping surrounding whitespace. |
SC-AAEI |
Almirah.Spec |
decisions_spec.rb |
Status segments = union of every distinct status text. |
| SRS-077 |
The software shall provide a full-text search on the Index page that, for a user-entered term, returns matching specification content showing the source document title, a link to the containing section, and a text snippet. |
SC-AAER |
Almirah.Spec |
orama_search_spec.rb |
Full-text search on the Index page returns matching specification content |
| SRS-078 |
When no indexed content matches the entered search term, the software shall indicate that there are no matches. |
SC-AAES |
Almirah.Spec |
orama_search_spec.rb |
Index page search indicates when there are no matches |
| SRS-079 |
While processing a project, the software shall emit a concise progress summary to standard output consisting of one line per processing phase, each line pairing a phase label with the number of items processed in that phase. |
SC-AABC |
Almirah.Spec |
console_output_spec.rb |
emits a per-phase progress summary line pairing a label with a count |
| SRS-080 |
The software shall print the path of the generated index page as the final line of the progress summary. |
SC-AABD |
Almirah.Spec |
console_output_spec.rb |
prints the generated index path as the final progress line |
| SRS-081 |
The software shall apply ANSI colour to its progress output only when standard output is an interactive terminal, and shall emit uncoloured text otherwise. |
SC-AABE |
Almirah.Spec |
console_output_spec.rb |
emits no ANSI escape codes when stdout is not an interactive terminal |
| SRS-082 |
When composing the generated index path for the progress summary, the software shall resolve the project directory argument to a normalised path free of duplicated or missing path separators, regardless of the form of the argument. The path shall be shown relative to the current directory as "./build/index.html" when the project directory resolves to the current working directory, and as an absolute path otherwise. |
SC-AABF |
Almirah.Spec |
console_output_spec.rb |
prints a separator-clean absolute index path for a non-current directory |
| SRS-082 |
When composing the generated index path for the progress summary, the software shall resolve the project directory argument to a normalised path free of duplicated or missing path separators, regardless of the form of the argument. The path shall be shown relative to the current directory as "./build/index.html" when the project directory resolves to the current working directory, and as an absolute path otherwise. |
SC-AABG |
Almirah.Spec |
console_output_spec.rb |
normalises a trailing-slash argument to a separator-clean absolute index path |
| SRS-082 |
When composing the generated index path for the progress summary, the software shall resolve the project directory argument to a normalised path free of duplicated or missing path separators, regardless of the form of the argument. The path shall be shown relative to the current directory as "./build/index.html" when the project directory resolves to the current working directory, and as an absolute path otherwise. |
SC-AABH |
Almirah.Spec |
console_output_spec.rb |
prints the index path relative to the current directory when run against it |
| SRS-083 |
The Decision Records Overview page shall include a horizontal bar chart visualising the number of Decision Records grouped by their current status, placed in the third chart cell of the Decision Records Overview charts grid. |
SC-AAEL |
Almirah.Spec |
decisions_spec.rb |
A horizontal bar chart of records by current status sits in the third chart cell. |
| SRS-084 |
The current-status distribution chart shall count each Decision Record under its current status — the status value of the row marked with "*" in the record's Status table — with status text compared by exact case-sensitive equality after stripping surrounding whitespace. |
SC-AAEM |
Almirah.Spec |
decisions_spec.rb |
Records counted under their *-marked current status, matched case-sensitively. |
| SRS-085 |
The current-status distribution chart shall group every Decision Record whose current status is undefined under a single "Undefined" category, so that records with a missing or ambiguous current-status marker are surfaced for correction. |
SC-AAEO |
Almirah.Spec |
decisions_spec.rb |
No "Undefined" category when every record has a defined current status. |
| SRS-085 |
The current-status distribution chart shall group every Decision Record whose current status is undefined under a single "Undefined" category, so that records with a missing or ambiguous current-status marker are surfaced for correction. |
SC-AAEP |
Almirah.Spec |
decisions_spec.rb |
Records with a missing or ambiguous marker are grouped under "Undefined". |
| SRS-086 |
The current-status distribution chart shall use a linear value scale and shall display each category's record count within its bar label, so that categories with small counts remain legible alongside categories with large counts. |
SC-AAEN |
Almirah.Spec |
decisions_spec.rb |
Linear scale with the count shown in each bar label. |
| SRS-087 |
The categories of the current-status distribution chart shall be ordered by their first appearance in Decision Record parse order, with the "Undefined" category, when present, placed last. |
SC-AAEQ |
Almirah.Spec |
decisions_spec.rb |
The "Undefined" category is ordered last, after all real statuses. |
| SRS-088 |
The software shall resolve a Markdown link whose target, after resolving the link's relative path against the linking document's source directory, is a managed document's source file, and shall render it in the HTML output as a relative link to that target document's generated page. |
SC-AABJ |
Almirah.Spec |
cross_document_links_spec.rb |
A Markdown spec-to-spec link resolves to the target's generated page. |
| SRS-088 |
The software shall resolve a Markdown link whose target, after resolving the link's relative path against the linking document's source directory, is a managed document's source file, and shall render it in the HTML output as a relative link to that target document's generated page. |
SC-AABK |
Almirah.Spec |
cross_document_links_spec.rb |
A Markdown spec-to-protocol link resolves to the target's generated page. |
| SRS-088 |
The software shall resolve a Markdown link whose target, after resolving the link's relative path against the linking document's source directory, is a managed document's source file, and shall render it in the HTML output as a relative link to that target document's generated page. |
SC-AABL |
Almirah.Spec |
cross_document_links_spec.rb |
A Markdown decision-to-spec link resolves to the target's generated page. |
| SRS-088 |
The software shall resolve a Markdown link whose target, after resolving the link's relative path against the linking document's source directory, is a managed document's source file, and shall render it in the HTML output as a relative link to that target document's generated page. |
SC-AABM |
Almirah.Spec |
cross_document_links_spec.rb |
A decision-to-decision Markdown link maps the source filename to the id-named page. |
| SRS-089 |
The software shall preserve the on-disk relative validity of a Markdown cross-document link, so that the link in the source Markdown navigates to the target Markdown file while the generated HTML link navigates to the corresponding generated page. |
SC-AABN |
Almirah.Spec |
cross_document_links_spec.rb |
The source Markdown link stays a valid relative path on disk. |
| SRS-090 |
The software shall support a double-bracket cross-document link of the form [[target]] that resolves the target to a managed document by its unique document identifier or filename, independent of the document's folder location. |
SC-AABO |
Almirah.Spec |
cross_document_links_spec.rb |
A double-bracket wiki link resolves by unique id, independent of folder. |
| SRS-091 |
The software shall support an alias in a double-bracket link of the form [[target|display text]], rendering the display text as the visible link text. |
SC-AABP |
Almirah.Spec |
cross_document_links_spec.rb |
A double-bracket link with an alias renders the alias as its visible text. |
| SRS-092 |
The software shall support an anchor fragment in a cross-document link, written as target#fragment in a Markdown link and as [[target#fragment]] in a double-bracket link, producing an HTML link to that fragment within the target document's generated page. |
SC-AABQ |
Almirah.Spec |
cross_document_links_spec.rb |
An anchor in a double-bracket wiki link links to the fragment. |
| SRS-092 |
The software shall support an anchor fragment in a cross-document link, written as target#fragment in a Markdown link and as [[target#fragment]] in a double-bracket link, producing an HTML link to that fragment within the target document's generated page. |
SC-AABR |
Almirah.Spec |
cross_document_links_spec.rb |
An anchor in a Markdown link path links to the fragment. |
| SRS-093 |
The software shall compute the relative URL of every internal link from the location of the generated page that contains the link to the location of the target's generated page, using forward-slash separators. |
SC-AABS |
Almirah.Spec |
cross_document_links_spec.rb |
The relative URL is computed from the linking page, with forward slashes. |
| SRS-094 |
The software shall report a cross-document link whose target cannot be resolved to a managed document as a broken reference, naming the linking document, and shall render it as a visibly broken link without aborting the build. |
SC-AABT |
Almirah.Spec |
cross_document_links_spec.rb |
An unresolved cross-document link is rendered broken and reported. |
| SRS-095 |
The software shall leave links with an external scheme (such as http, https, or mailto) unchanged and shall not treat them as cross-document targets. |
SC-AABU |
Almirah.Spec |
cross_document_links_spec.rb |
External links (http, mailto) are left unchanged. |