Skip to content

docs: x-FuSa spec v1.14.1 — clarify FUSA-STUB detection scope + tara impact/risk enums - #88

Merged
SoundMatt merged 1 commit into
mainfrom
spec-clarify-issue86-87
Jul 28, 2026
Merged

SoundMatt merged 1 commit into
mainfrom
spec-clarify-issue86-87

Conversation

@SoundMatt

Copy link
Copy Markdown
Owner

Summary

Closes #86 and #87 — two real ambiguities found by agents implementing v1.13.0/v1.14.0 conformance in java-FuSa and rust-FuSa respectively (not found in review, found by independent implementation, exactly what filing an issue rather than guessing is for).

#86 — §1.6.1 "who runs detection". The text said a Rule A/B finding "participates in check's exit code," which reads two ways: each artifact command gates itself using the same Finding/fingerprint/disposition mechanism check also uses, or check itself ingests sibling evidence artifacts (fmea.json, .fusa-hara.json, etc.) and folds their findings into its own output. FuSaOps' own reference implementation and java-FuSa independently converged on the former; this PR makes that the normative reading and clarifies check's only role here is optionally surfacing staleness (§1.6 rule 5), not re-running another command's scan.

#87 — §9.2 tara impact/risk closed enums. attackFeasibility/treatment had stated closed enums; impact's four SFOP axes and risk didn't — rust-FuSa's stopgap reused attackFeasibility's vocabulary rather than a value domain of its own, exactly the kind of divergence this section exists to prevent. New canonical values: impact.* = critical|major|moderate|negligible (the family's own vocabulary, informed by but not verbatim-matching ISO 21434 Clause 15.3's Severe/Major/Moderate/Negligible); risk = critical|high|medium|low. New SHOULD-level feasibility × impact → risk combination table (ISO 21434 leaves risk determination organization-defined, so this is the family's own convention) — matches FuSaOps' own already-shipped tara package exactly, so no FuSaOps code changes were needed here, just the spec catching up to what was already correct.

SpecVersion bumped 1.14.0 → 1.14.1.

Test plan

  • go build ./... / go vet ./... — clean
  • go test ./... — all packages pass (doc-only + version-constant change)
  • Verified FuSaOps' tara/tara.go Impact/RiskLevel enums and riskMatrix() already match the newly-formalized values/table exactly

…impact/risk enums

Two ambiguities found by agents implementing v1.13.0/v1.14.0
conformance in java-FuSa and rust-FuSa:

- Section 1.6.1 said a Rule A/B finding 'participates in check's exit
  code' without stating whether check itself must ingest sibling
  evidence artifacts, or each artifact command gates itself using the
  same Finding/fingerprint/disposition mechanism check also uses.
  FuSaOps' own implementation and java-FuSa both independently chose
  the latter; this makes it normative.
- Section 9.2 tara's impact/risk fields had no stated closed enum,
  unlike attackFeasibility/treatment -- rust-FuSa's stopgap reused
  attackFeasibility's vocabulary rather than a value domain of its
  own. Adds impact.* = critical|major|moderate|negligible, risk =
  critical|high|medium|low, and a feasibility x impact -> risk
  combination table matching FuSaOps' own already-shipped tara
  package exactly (no FuSaOps code changes needed).

Bumps SpecVersion 1.14.0 -> 1.14.1. Closes #86 and #87.

Signed-off-by: SoundMatt <SoundMatt@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

x-FuSa spec §1.6.1 ambiguity: does FUSA-STUB001/002 'participate in check's exit code' mean check itself must scan generated evidence artifacts?

1 participant