Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
101 changes: 82 additions & 19 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 13 additions & 0 deletions artifacts/decisions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
- type: satisfies
target: REQ-006
fields:
baseline: v0.1.0
rationale: >
OSLC is an OASIS standard that Polarion, DOORS, and codebeamer
already support natively. One adapter handles all tools. Per-tool
Expand Down Expand Up @@ -41,6 +42,7 @@
- type: satisfies
target: REQ-004
fields:
baseline: v0.1.0
rationale: >
petgraph is a mature, well-tested Rust graph library. It provides
efficient algorithms for cycle detection, topological sort, and
Expand All @@ -66,6 +68,7 @@
- type: satisfies
target: REQ-003
fields:
baseline: v0.1.0
source-ref: rivet-core/src/schema.rs:1
rationale: >
Merging allows a base common schema to be extended by domain-specific
Expand All @@ -86,6 +89,7 @@
- type: satisfies
target: REQ-008
fields:
baseline: v0.1.0
rationale: >
WIT provides a language-agnostic interface definition. Adapters can
be written in any language that compiles to WASM components, not
Expand All @@ -106,6 +110,7 @@
- type: satisfies
target: REQ-007
fields:
baseline: v0.1.0
rationale: >
axum is already a workspace dependency. HTMX keeps the frontend
simple (server-rendered HTML fragments). No JS build toolchain
Expand All @@ -126,6 +131,7 @@
- type: satisfies
target: REQ-001
fields:
baseline: v0.1.0
rationale: >
Flat structures are easier to navigate and understand. Modern
Rust projects favor fewer nesting levels with clear module
Expand All @@ -148,6 +154,7 @@
- type: satisfies
target: REQ-009
fields:
baseline: v0.1.0
rationale: >
GitHub releases are immutable, versioned, and fetchable via API.
Tying test evidence to releases creates append-only per-version
Expand All @@ -171,6 +178,7 @@
- type: satisfies
target: REQ-012
fields:
baseline: v0.1.0
rationale: >
Edition 2024 brings the latest language features. The CI pipeline
mirrors ASPICE SWE.4-6 verification levels: unit tests (proptest,
Expand All @@ -193,6 +201,7 @@
- type: satisfies
target: REQ-013
fields:
baseline: v0.1.0
rationale: >
Criterion provides statistical analysis, regression detection,
and HTML reports. Benchmarks at multiple scales catch O(n^2)
Expand All @@ -217,6 +226,7 @@
- type: satisfies
target: REQ-016
fields:
baseline: v0.1.0
rationale: >
ASPICE 4.0 broadened "testing" to "verification measures" — the
schema should reflect this. Cybersecurity as a separate schema
Expand All @@ -241,6 +251,7 @@
- type: satisfies
target: REQ-017
fields:
baseline: v0.2.0-dev
rationale: >
Git trailers are a well-supported standard, parseable via
git log --format='%(trailers)', git interpret-trailers, and
Expand All @@ -265,6 +276,7 @@
- type: satisfies
target: REQ-017
fields:
baseline: v0.2.0-dev
rationale: >
Git is the single source of truth for commit data. Materializing
commits to YAML creates a redundant data store that drifts from
Expand All @@ -291,6 +303,7 @@
- type: satisfies
target: REQ-019
fields:
baseline: v0.2.0-dev
rationale: >
Type-based exemption handles the 80% case (dependency bumps,
formatting, CI tweaks) with zero friction. The explicit skip
Expand Down Expand Up @@ -678,7 +691,7 @@
status: draft
tags: [rendering, markdown, architecture]
fields:
rationale: CommonMark rendering via pulldown-cmark. Lightweight, no-alloc, already proven in the Rust ecosystem. Artifact descriptions contain markdown syntax that is currently escaped and displayed as plain text.

Check warning on line 694 in artifacts/decisions.yaml

View workflow job for this annotation

GitHub Actions / YAML Lint

694:121 [line-length] line too long (219 > 120 characters)

links:
- type: satisfies
Expand All @@ -689,7 +702,7 @@
status: draft
tags: [documents, embedding, architecture]
fields:
rationale: Embed syntax uses colon-separated modifiers (full, links, upstream, downstream, chain) that the schema interprets. The schema defines which link types go up (satisfies, implements) vs down (satisfied-by, implemented-by). Traversal depth is configurable. Same syntax works in dashboard and static HTML export.

Check warning on line 705 in artifacts/decisions.yaml

View workflow job for this annotation

GitHub Actions / YAML Lint

705:121 [line-length] line too long (325 > 120 characters)
links:
- type: satisfies
target: REQ-033
Expand All @@ -705,8 +718,8 @@
with structure matching the STPA Handbook methodology.
tags: [adapter, stpa, architecture]
fields:
alternatives: Reuse the generic YAML adapter with type-prefixed keys. Rejected because it obscures the STPA methodology structure and makes manual editing harder for safety engineers who think in STPA terms.

Check warning on line 721 in artifacts/decisions.yaml

View workflow job for this annotation

GitHub Actions / YAML Lint

721:121 [line-length] line too long (213 > 120 characters)
rationale: STPA artifacts use a domain-specific YAML structure (losses.yaml, hazards.yaml, ucas.yaml) rather than the generic format, matching the STPA Handbook structure and enabling direct import from meld.

Check warning on line 722 in artifacts/decisions.yaml

View workflow job for this annotation

GitHub Actions / YAML Lint

722:121 [line-length] line too long (214 > 120 characters)

links:
- type: satisfies
Expand All @@ -724,8 +737,8 @@
downstream tool can consume without domain-specific knowledge.
tags: [adapter, architecture]
fields:
alternatives: Per-domain YAML formats for each schema (ASPICE YAML, cybersecurity YAML). Rejected because it fragments tooling and requires adapter-per-domain rather than a single generic path.

Check warning on line 740 in artifacts/decisions.yaml

View workflow job for this annotation

GitHub Actions / YAML Lint

740:121 [line-length] line too long (199 > 120 characters)
rationale: The generic YAML adapter uses a single canonical format with explicit type, links array, and fields map per artifact. This provides a universal interchange format that any adapter can target and any tool can consume without domain-specific knowledge.

Check warning on line 741 in artifacts/decisions.yaml

View workflow job for this annotation

GitHub Actions / YAML Lint

741:121 [line-length] line too long (267 > 120 characters)

links:
- type: satisfies
Expand All @@ -741,8 +754,8 @@
internal salsa/rowan state.
tags: [adapter, aadl, architecture]
fields:
alternatives: Embed spar-parser as a Rust library dependency. Rejected because spar uses salsa and rowan with complex internal state that would tightly couple the two tools. CLI JSON is a clean boundary.

Check warning on line 757 in artifacts/decisions.yaml

View workflow job for this annotation

GitHub Actions / YAML Lint

757:121 [line-length] line too long (209 > 120 characters)
rationale: The AADL adapter imports architecture models via spar CLI JSON output rather than parsing AADL directly. This avoids duplicating spar's parser and leverages spar's analysis results (diagnostics, resolved references). The JSON interchange format is stable and version-negotiable between spar and rivet.

Check warning on line 758 in artifacts/decisions.yaml

View workflow job for this annotation

GitHub Actions / YAML Lint

758:121 [line-length] line too long (318 > 120 characters)

links:
- type: satisfies
Expand All @@ -760,8 +773,8 @@
SpecObject attribute values.
tags: [adapter, reqif, architecture]
fields:
alternatives: Strip XHTML and store plain text only. Rejected because it loses formatting, tables, and embedded images that are semantically significant in requirements documents.

Check warning on line 776 in artifacts/decisions.yaml

View workflow job for this annotation

GitHub Actions / YAML Lint

776:121 [line-length] line too long (185 > 120 characters)
rationale: The ReqIF adapter preserves XHTML rich-text content during import/export rather than flattening to plain text. This is required for round-trip fidelity with tools like Polarion and DOORS that use embedded XHTML in SpecObject attribute values. Content is stored as-is in artifact fields and rendered in the dashboard.

Check warning on line 777 in artifacts/decisions.yaml

View workflow job for this annotation

GitHub Actions / YAML Lint

777:121 [line-length] line too long (333 > 120 characters)
links:
- type: satisfies
target: REQ-005
Expand Down
Loading
Loading