chore(schemas): align score schema with Eclipse S-CORE comparison#320
Merged
Conversation
Update `schemas/score.yaml` to reflect the upstream Eclipse S-CORE metamodel as surfaced by an Eclipse-S-CORE comparison agent. +453 insertions, -14 deletions; widens the artifact-type vocabulary and field set so a real conversion from S-CORE's sphinx-needs RST sources round-trips through rivet validation against the right shape. Also adds `examples/score-conversion/` — a worked sketch converting the Eclipse S-CORE persistency::kvs slice into rivet's generic-YAML against the updated schema. README captures (a) what the conversion looks like end-to-end and (b) the residual schema deltas the agent flagged for follow-up work. The example is its own rivet project (own `rivet.yaml`), so it has no effect on the rivet repo's own validation. Verified: `rivet validate` on the rivet project PASSes with no new errors after the schema update (144 warnings unchanged from baseline).
📐 Rivet artifact deltaNo artifact changes in this PR. Code-only changes (renderer, CLI wiring, tests) don't touch the artifact graph. |
There was a problem hiding this comment.
⚠️ Performance Alert ⚠️
Possible performance regression was detected for benchmark 'Rivet Criterion Benchmarks'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.
| Benchmark suite | Current: c3fe631 | Previous: 6d72f03 | Ratio |
|---|---|---|---|
link_graph_build/10000 |
40405137 ns/iter (± 1952795) |
31434189 ns/iter (± 1705384) |
1.29 |
validate/10000 |
21994571 ns/iter (± 1803482) |
18173622 ns/iter (± 1432049) |
1.21 |
query/10000 |
144092 ns/iter (± 875) |
115094 ns/iter (± 1200) |
1.25 |
This comment was automatically generated by workflow using github-action-benchmark.
… corpus
Round-2 schema deltas surfaced by validating against the *complete*
eclipse-score corpus (4 upstream repos: score, process_description,
persistency, docs-as-code = 757 RST files, 2752 needs converted) rather
than the single hand-picked persistency::kvs slice that drove round 1.
Specific changes (all in schemas/score.yaml; +80/-31 lines):
Required-field relaxations (eclipse leaves these empty in real data):
- fmea-entry.failure-mode: required → optional. Eclipse encodes the
failure description via :failure_id: + :failure_effect: rather than
a single :failure_mode: option, so requiring it as a schema field
produced ~25 false-positive errors on real FMEAs.
- dfa-entry.analysis: required → optional. Eclipse DFAs carry
the narrative in the body, not in a dedicated field.
- decision-record.rationale: required → optional. Many eclipse
dec_rec entries put the rationale in the body or split it across
:context:/:decision: rather than calling it out explicitly.
Required-link relaxations (downgrade to lifecycle-warning):
- feat-req.satisfies → stkh-req: required: true / cardinality:
one-or-many → cardinality: zero-or-many.
- comp-req.satisfies → feat-req: same.
- comp.realizes → feat: same.
- mod.belongs-to → comp: same.
The traceability-rules feat-req-derives-from-stkh /
comp-req-derives-from-feat / comp-realizes-feat / mod-belongs-to-comp
keep flagging the gap (downgraded from severity:error to
severity:warning) so the chain is still visible, just not blocking.
Link target-type widenings (eclipse's real link graph is wider):
- uses link-type + comp.uses + mod.uses link-fields: now include
logic-arc-int / real-arc-int / tsf as legitimate target types.
Eclipse component artifacts `:uses:` logical and real interfaces,
not just other components.
- violates link-type + fmea-entry.violates link-field: target-types
widened from [comp-req, feat-req] to also include feat, comp, and
the eight arch-refinement types (feat-arc-sta/dyn, comp-arc-sta/dyn,
logic-arc-int, real-arc-int). Eclipse safety analyses `:violates:`
architecture elements (whose property the failure breaks), not just
requirements.
- tool-req.satisfies: target-types widened to include guidance —
eclipse tool requirements often `:satisfies:` a gd_req directly.
- workproduct.complies: target-types widened to also include std-req
(eclipse ASPICE work products frequently reference standard-req
clauses directly, not just std-wp).
Falsification result that drove these deltas: the corpus oracle dropped
from 1476 errors → 0 errors / 2289 warnings across 2752 artifacts. The
remaining warnings are all about lifecycle gaps in eclipse's own
artifact set (missing test-spec / dd-dyn links), not schema issues.
The fork workspace and converter that drove this discovery live at
/Users/r/git/pulseengine/eclipse-score-fork/ (intentionally outside the
rivet repo) and are governed by their own README. Per pulseengine
methodology, the corpus oracle is the falsification gate — a delta
landed here means the gate stayed green on a 2752-artifact slice of
real ASIL-rated safety work.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
…chema) The Eclipse-S-CORE-comparison score schema (this branch) carries `ISO 26262-6:7.4.3.2` in the `external-clause` artifact-type description — a stable standard-clause identifier the EmbeddedVersionLiterals invariant catches as a 3-part version. Same pattern the existing allowlist uses for ASPICE process IDs (`2.1.7`, `2.2.4`).
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
Carries forward an out-of-band update from an Eclipse S-CORE comparison
agent that aligned `schemas/score.yaml` with the upstream Eclipse
S-CORE metamodel (+453 lines, -14 lines — widens artifact-type
vocabulary and field set).
Also adds `examples/score-conversion/` — a worked sketch
converting the Eclipse S-CORE `persistency::kvs` slice into rivet's
generic-YAML against the updated schema. The README captures the
end-to-end conversion shape and the residual schema deltas flagged for
follow-up. It's its own rivet project (own `rivet.yaml`) so it does
not interact with the main repo's validation.
Test plan
errors after the schema update (144 warnings unchanged from
baseline).
🤖 Generated with Claude Code