Live

Design Artifacts

Design artifacts are documents and workbook snapshots that you upload to Live alongside the connected RTM workbook. They capture upstream requirements specifications (URS, SRS, SwRS, HRS, SysRD) and RTM snapshots that are not part of the live sync but whose requirement assertions belong in the same traceability graph.

Artifacts supplement the connected workbook. They do not replace it.

The Google Sheets or Excel Online workbook you connected during setup is the live source-of-truth. It is polled every 30 seconds and drives the sync cycle. Design artifacts are uploaded once or periodically. Live stores them, parses their requirement content, and adds those assertions to the graph. They do not override workbook data.

Why use design artifacts?

Your connected workbook is the operational source of truth. Design artifacts give that source of truth context.

In real programs, requirements do not live in one place. User needs may start in a URS, software requirements may be reviewed in a SwRS, hardware constraints may be defined in an HRS, and the RTM workbook may only reflect the subset that has been brought into the live traceability flow. If you only sync the workbook, you can miss the evidence that matters most during review: what the upstream document actually said, when it diverged, and whether the workbook still matches it.

Design artifacts solve that.

When you upload requirement documents and RTM snapshots into Live, RTMify parses their requirement assertions and places them into the same traceability graph as your connected workbook, tests, risks, code, BOMs, SOUP, and execution evidence. That gives you a second lens on the system: not just what the workbook says now, but what the controlled source documents also say.

Benefits

  • Catch requirement drift early. Live can show when the same requirement ID carries different text across the RTM, SRS, SysRD, URS, SwRS, or HRS.
  • Preserve upstream intent. Auditors and reviewers can see the original requirement wording from the source document, not just the current workbook row.
  • Close traceability blind spots. Requirements that exist in a design document but never made it into the workbook are surfaced instead of disappearing quietly.
  • Strengthen review readiness. Artifact-backed assertions make source provenance visible in MCP, reports, suspect review, and requirement trace views.
  • Support real document-controlled workflows. Teams can keep using their existing Word specifications and workbook exports without forcing everything into one authoring system on day one.
  • Reduce false confidence. A green workbook is less meaningful if the upstream controlled documents disagree with it. Artifacts make that disagreement visible.

In short

The workbook tells Live what is active. Design artifacts tell Live what else was specified, reviewed, or released around it. Together, they give you a more defensible traceability record than the workbook alone.

How artifacts get in

Dashboard upload

Drag and drop files in the Dashboard's Artifacts section. Live detects the artifact type from the file extension and content. Best for ad-hoc uploads during development.

Onboarding upload

The setup wizard prompts for an initial RTM workbook snapshot and any upstream requirements docs. These seed the graph before the first live sync completes.

Inbox file-drop

Drop files into ~/.rtmify/inbox/. Live polls every 5 seconds, detects the artifact type, and ingests automatically.

Supported artifact types

Live recognises two categories: workbook snapshots (.xlsx) and requirements documents (.docx).

Artifact type Format What Live extracts
RTM workbook snapshot .xlsx Requirement assertions parsed using the same tab schema as the connected workbook (User Needs, Requirements, Tests, Risks). Stored as a point-in-time snapshot and does not drive sync.
URS (User Requirements Specification) .docx User-level requirement assertions extracted from the document and linked to matching IDs in the connected workbook.
SRS (System Requirements Specification) .docx System-level requirement assertions extracted and cross-referenced against the active graph.
SwRS (Software Requirements Specification) .docx Software requirement assertions extracted and linked to matching IDs in the Requirements tab.
HRS (Hardware Requirements Specification) .docx Hardware requirement assertions extracted and linked to matching IDs in the Requirements tab.
SysRD / SRD (System Requirements Document) .docx System requirements extracted and treated identically to SRS assertions in the graph.

Requirement ID format

Live identifies requirement assertions by recognising structured IDs in document text. This is the only mechanism for requirement extraction: if a requirement statement in a source document does not include an ID in this format, it will not be extracted.

A structured ID must satisfy all of the following rules:

  • At least 3 characters total.
  • At least one hyphen.
  • No leading or trailing hyphen.
  • No consecutive hyphens (each hyphen must be preceded and followed by at least one character).
  • Every character is alphanumeric (A–Z, a–z, 0–9) or an underscore. Spaces, slashes, dots, and parentheses are not permitted.
ID Accepted Note
REQ-001 Yes
SRS-047 Yes
REQ-OQ-001 Yes Multiple hyphen-separated segments are allowed.
TST-IQ-003 Yes
ABC_DEF-01_A Yes Underscores are permitted within segments.
REQ001 No No hyphen.
REQ 001 No Space is not a valid segment character.
REQ--001 No Consecutive hyphens produce an empty segment.
REQ/001 No Slash is not a valid segment character.
-REQ-001 No Leading hyphen.

IDs are case-preserved but normalised (BOM stripped, smart quotes replaced, whitespace collapsed) before comparison. REQ-001 and req-001 are treated as distinct IDs.

What happens on upload

  1. Live stores the file and records the artifact type, source filename, and upload timestamp.
  2. The parser extracts requirement assertions, including requirement IDs, descriptions, and any declared trace references present in the file.
  3. Assertions are added to the graph as DesignArtifact nodes linked to the originating artifact record.
  4. Where an assertion ID matches a requirement already in the connected workbook, Live creates a cross-reference edge. Unmatched assertion IDs are retained as warnings rather than errors and become linkable when the workbook catches up.
  5. The artifact and its parse status appear in the Dashboard's Artifacts section.

Re-uploading replaces the previous artifact

Uploading a file with the same name and artifact type replaces the prior version. All assertion nodes from the old version are removed and rebuilt from the new file. Use distinct filenames (for example, append a date or revision) if you want to retain previous versions alongside the current one.

Parse status reference

Each extracted assertion carries a parse_status that appears in the artifact detail view. Statuses other than ok indicate that the extracted text may need attention before the assertion can be treated as reliable.

Status Meaning What to do
ok Requirement ID and text were extracted cleanly and the normalized text is non-empty. No action needed.
null_text The ID was recognized but no requirement text could be extracted from the adjacent content in the document. Check that the requirement statement immediately follows the ID in the source document and that the paragraph is not empty or hidden.
low_confidence_empty_after_trim Text was present in the source but reduced to nothing after stripping leading and trailing whitespace. Review the source document paragraph for non-printing characters or formatting-only content adjacent to the ID.
low_confidence_long_text Extracted text exceeds 300 characters. This usually indicates two requirements merged into a single paragraph, or a requirement followed immediately by rationale or commentary that was not separated. Split the paragraph in the source document so each requirement ID is followed by a single, concise statement.
low_confidence_nested_ids The extracted statement contains another structured ID. This typically indicates an inline trace reference that belongs in a dedicated column in the RTM rather than in the requirement text itself. Remove the inline reference from the requirement statement and express the trace relationship as a separate column value or cross-reference.
ambiguous_within_artifact The same requirement ID appears more than once in the document with different normalized text. The parser cannot determine which assertion is authoritative. Locate the duplicate occurrences in the source document, resolve to a single canonical statement, and re-upload.

Artifacts vs. the connected workbook

Connected workbook Design artifact
Update model Polled every 30 seconds. Changes are detected automatically. Uploaded manually or dropped into the inbox.
Authority Authoritative. Drives the sync cycle, writeback, and gap logic. Supplementary. Adds assertion nodes and does not override workbook data.
Format Google Sheets or Excel Online (live connection) .xlsx workbook snapshot or .docx requirements document
Versioning A change token tracks the latest workbook state. Each upload is a discrete snapshot. Rename files to keep multiple versions.
Inbox routing Configured at setup and not inbox-driven. The inbox detects the type by file extension and content.

Conflict resolution and authoritative source

When multiple sources assert the same requirement ID — the connected workbook, a snapshot, an SRS, a SwRS — Live resolves them into a single effective statement using a fixed priority rule and records the outcome as a text_status on the requirement.

Resolution rules

The workbook assertion always wins as the effective_statement when it is present. Artifact-only assertions are then compared against it. If no workbook assertion exists, artifact sources are compared against each other. The authoritative_source field identifies which artifact provided the winning text; it is null when multiple artifact sources conflict and there is no workbook to break the tie.

text_status When it occurs Effect
single_source Exactly one source asserts this requirement and it is not the workbook. Effective statement comes from that source. The requirement is not suspect, but is flagged with an informational diagnostic (REQ_SINGLE_SOURCE) because it has not been corroborated.
aligned Multiple sources assert the same requirement and all non-workbook normalized texts match. If a workbook assertion is present, it also agrees with the artifacts. Effective statement is the workbook text (if present) or the common artifact text. No suspect flag.
conflict Sources disagree on normalized text. Either the workbook and one or more artifacts differ, or two or more artifacts differ with no workbook to break the tie. The requirement is marked suspect with reason "Requirement text differs across design sources". CONFLICTS_WITH edges are created between the disagreeing RequirementText nodes. The conflict appears in the dashboard, suspect review, and MCP responses.
no_source The requirement ID exists in the graph but no source has asserted text for it. Effective statement is absent. The requirement is flagged with a warning diagnostic (REQ_NO_SOURCE).

Example

Your SRS document says REQ-047 is "System shall maintain temperature within ±0.5°C." Your connected RTM workbook says "System shall maintain temperature within ±1.0°C."

Live marks REQ-047 as suspect with text_status: conflict. The workbook text is used as the effective_statement and authoritative_source points to the workbook artifact. A CONFLICTS_WITH edge is created between the SRS RequirementText node and the workbook RequirementText node. Both assertions are visible in the requirement detail view with their sources.

To resolve: correct the discrepancy in either the workbook or the SRS, then re-sync or re-upload the updated document. The conflict edges are rebuilt automatically and the suspect flag is cleared if all sources then agree.

Inbox routing

When Live picks up a file from ~/.rtmify/inbox/, it determines the artifact type by extension first and then by content inspection.

Extension / content Routed as
.xlsx RTM workbook snapshot, parsed with the standard tab schema
.docx containing "user requirement" URS artifact
.docx containing "software requirement" SwRS artifact
.docx containing "hardware requirement" HRS artifact
.docx (other or ambiguous content) SRS artifact (default for requirements documents)
.json with bomFormat: CycloneDX or spdxVersion Routed to BOM ingest. See Design BOM.
.json with test_cases Routed to test results ingest. See Test Results API.
~/.rtmify/inbox/
  processed/ // successfully ingested files moved here
  rejected/ // unrecognised or unparseable files moved here

The inbox path can be changed with --inbox-dir <path> at startup. The current path is shown in the Dashboard's Guide → MCP & AI tab.