safety: migrate sphinx-needs to rivet for SDLC traceability#151
Merged
Conversation
Adds system-theoretic process analysis for Kiln as a WebAssembly runtime for safety-critical systems. Covers 8 losses, 10 hazards (with 4 sub-hazards), 10 controllers, 12 controlled processes, and 28 unsafe control actions. Key areas: execution correctness, memory isolation, component model fidelity, CFI, WASI capability enforcement, safety-level allocation, and cross-toolchain canonical ABI consistency with Meld and Synth. Follows the same STPA schema as Meld (pulseengine/meld/safety/schema/stpa.schema.json). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
🔍 Build Diagnostics ReportSummary
🎯 Impact AnalysisIssues in Files You Modified
Cascading Issues (Your Changes Breaking Other Files)
✅ No Issues DetectedPerfect! Your changes don't introduce any new errors or warnings, and don't break any existing code. 📊 Full diagnostic data available in workflow artifacts 🔧 To reproduce locally: # Install cargo-kiln
cargo install --path cargo-kiln
# Analyze your changes
cargo-kiln build --output json --filter-severity error
cargo-kiln check --output json --filter-severity warning |
Migrate all safety engineering artifacts from sphinx-needs (RST-based) to rivet (YAML-based SDLC traceability). This completes the full traceability chain from STPA hazard analysis through requirements, design decisions, and architectural components. New rivet artifacts (262 total, 93% coverage): - safety-requirements.yaml: 38 requirements (24 STPA-derived + 14 migrated) - functional-requirements.yaml: 23 functional requirements - safety-mechanisms.yaml: 11 design decisions (memory, CFI, resource, etc.) - architecture-decisions.yaml: 7 design decisions (build, verification, etc.) - architecture-components.yaml: 16 features (runtime, decoder, tooling, etc.) - STPA extensions: controller-constraints, loss-scenarios, system-constraints Sphinx-needs removal: - Remove sphinx_needs from docs/source/conf.py extensions and all needs_* config - Remove sphinx-needs from docs/requirements.txt - Delete migrated tracking files (requirements, safety_manual, qualification) - Architecture docs with embedded directives remain for now (tech debt) Rivet commit hooks: - Install commit-msg hook calling rivet commit-msg-check - Configure trailers: Trace, Implements, Fixes, Verifies - Exempt types: chore, style, ci, docs, build - Traced paths: all core crates + safety/ Trace: skip Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Validation
rivet validate: PASS — 262 artifacts, 93.0% overall coverage, 0 errors, 16 warnings (expected: draft STPA requirements not yet satisfied)Known Tech Debt
Test plan
rivet validatepasses with 0 errorsTrace: SR-7,Implements: AC-RUNTIME, SR-1chore,docs, etc.) bypass hook🤖 Generated with Claude Code