Skip to content

Ecosystem-wide: ASIL-scaled rigor (MC/DC, independence enforcement, complexity, TCL) is missing across the x-FuSa family #105

Open

Description

@SoundMatt

Summary

Filed while scoping SoundMatt/c-FuSa#103 (an initiative to make c-FuSa scale its rigor by ISO 26262 ASIL, not just DO-178C DAL). Before filing that as a c-FuSa-only gap, I read the master spec (docs/x-fusa-spec.md) in full and FuSaOps' own Go implementation (vv/, mcdc/, comp/, trace/, qualify/) — the same gaps exist at the spec/orchestrator level, not just in one language port:

  • MC/DC-by-ASIL: the canonical coverage schema only carries dal?, no asil?. mcdc/mcdc.go:4-7 mentions ASIL-D in a doc comment but the actual gate (GateMCDC, cmd/fusaops/cmd_coverage.go) is DAL-only.
  • Independence-by-ASIL is computed but never enforced: vv.AchievableASIL(d Declaration) (vv/vv.go:62-79) correctly derives an ASIL ceiling from independent-reviewer/independent-test-executor declarations — genuinely good logic — but every call site (cmd/fusaops/cmd_vv.go:183, server/server.go, qualify/qualify.go) only displays it. Nothing in check/conform compares it against a project's declared ASIL and fails the gate on a mismatch.
  • Complexity-by-ASIL: comp/comp.go:78-98's DALThreshold() is DAL-only, no ASILThreshold equivalent.
  • TCL (Tool Confidence Level, ISO 26262-8 Tables 4-5): zero hits for "TCL"/"ToolConfidence" anywhere in the Go source. docs/qualification.md documents FuSaOps' own static, hand-written TCL classification (TI2×TD2⇒TCL2) as prose — there's no programmatic determination for a consumer project's tools/target ASIL.

The one good pattern that already exists: trace.SeverityForDecomposition(enforce, dal, asil) (trace/decomp.go:174-205) — an --enforce auto|error|warn|off flag where auto derives gate severity from declared DAL and ASIL, wired into check's HLR/LLR decomposition gate. This is the right shape; it just hasn't been applied anywhere else yet.

Why file this on FuSaOps specifically

Several of the gaps above are most efficiently fixed at the schema/spec level, since FuSaOps' canonical schemas are what every per-language tool (go-FuSa, c-FuSa, cpp-FuSa, rust-FuSa, py-FuSa, java-FuSa, ada-FuSa) is expected to converge on. If asil fields and the enforce auto convention only get added inside c-FuSa, every other language port re-invents its own incompatible flavor later. Doing this once at the spec/orchestrator level lets every language tool (including c-FuSa, tracked separately at SoundMatt/c-FuSa#103) adopt the same shape.

Sub-issues

  1. Extend canonical coverage/comp schemas with an optional asil field alongside dal #106 — extend canonical coverage/comp schemas with an optional asil field alongside the existing dal field; document ASIL-scaled MC/DC (ISO 26262-6 Table 12) and complexity guidance in the spec, same as the existing DAL guidance
  2. Enforce (not just display) vv.AchievableASIL() against a project's declared ASIL in check/conform #107 — FuSaOps: enforce (not just display) vv.AchievableASIL() against a project's declared ASIL in check/conform
  3. Document/promote the enforce=auto|error|warn|off DAL/ASIL severity pattern as canonical spec implementation guidance #108 — document/promote trace.SeverityForDecomposition's enforce auto|error|warn|off pattern as canonical spec implementation guidance, so per-language tools converge on one flag shape instead of inventing their own
  4. Track TCL (Tool Confidence Level, ISO 26262-8 Tables 4-5) determination as open ecosystem work #109 — track TCL (ISO 26262-8 Tables 4-5) determination as explicit open ecosystem work — currently absent from the spec and every implementation

Related

Activity

  1. added
    enhancementNew feature or request
    asil-scalingISO 26262 ASIL-level (QM/A/B/C/D) rigor-scaling work
    on Aug 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    asil-scalingISO 26262 ASIL-level (QM/A/B/C/D) rigor-scaling workenhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions