Repository navigation
docs(compliance): correct row texts and statuses from the clause-by-clause audit - #1531
Merged
Merged
Conversation
…lause audit Co-Authored-By: jason.han <hanhuijun@gmail.com>
Contributor
Author
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
…ce-audit-corrections Co-Authored-By: jason.han <hanhuijun@gmail.com> # Conflicts: # docs/project/spec-compliance.md
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.
What and why
docs/project/spec-compliance.mdwas audited clause by clause against the pinned SysML v2.1 Beta 2 / KerML 1.1 Beta 2 texts, the current tree and the pinned pilot. This change applies the documentation corrections that audit produced, as one commit ondevelop(the first pass, #1526, re-pointed paths and clause numbers; this one corrects what rows say). No implementation code changes; the rows that describe a gap now say so and the fixes are separate work.Rows changed, by category (173 edits, plus the structural edits below):
2026-08/0.62.0), stale counts, and internal work-item references rewritten as what the change did.performfrom the refused forms (a performed effect-free action runs; nothing tests the refusal the row claimed).importwithout a visibility indicator:import-visibilityis reported (non-gating error at the syntax tier) and the indicator is honoured for visibility filtering.Query: ✅ →Queryhas sevenPrimitiveConstraintoperators andorderBy;=,<,>are implemented,<=,>=,in,instanceOfare refused as malformed andorderByis absent.1..1(AssumedRange) where KerML §7.4.12 / §7.4.5.2 default to0..*; the SysML §7.6.3 implicit[1..1]conditions are stated.subrequirements/constraints, implicit subject not bound to the container's, verdict does not reach the container'sresult(SysML §7.21.2).x + null/x - null: refused by the operator evaluator while the function form'+'(x, null)answers (KerML §8.4.4.9.6 makes the operator the invocation;y: [0..1]).excludingAtwith an end past the end or an inverted range:ErrIndexOutOfRangewhere the vendored library body answers the sequence unchanged.QueryPrimitiveConstraintoperators:<=,>=,in,instanceOfunimplemented (API & Services §7.1.4).Query.orderBy: unimplemented; the known-limitations list now says so.first <node>;in a state body described constraint- and notation-tier diagnostics and citedCodeFirstNamesNoTarget/TestTransitionToFirstMarkerIsIllegal, neither of which exists. It now records the parser-levelerror[syntax]("a one-endedfirst <node>;is only admitted by an action body; elsewhere a succession names both ends") withtests/parser/negative_test.go:TestNegative(one_ended_first_in_state_body), verified withsysml -validate.Structural edits: six duplicate connector rows and one duplicate view-rendering row removed (the widest copies kept); the empty "Decisions to Reassess" table and its "issues disabled" sentence dropped (issues are enabled); the
Linescolumn of the three implementation-file tables removed (2–6× stale, no gate keeps it); the bounds table gainsOPENSYSML_MAX_INTEGER_BITS(eight bounds, not seven); the RPC table notes which RPCs are mapped elsewhere and which eight have no row yet.Report proposals corrected against the evidence
§8.4.4.9.2cites (that clause's note — a finite literal is aRational— is what they cite); only the nonexistent8.3.4.9 CastExpressionand8.4.4.2 ClassificationExpressioncites moved to §8.2.5.8.1 / §8.3.4.8.17 / §8.4.4.9.6.executeActiondoes not exist inruntime/state_executor.goand was dropped with the other stale names.InitialDesignbranch:OOSEM.sysmlis clean;DesertKite.sysmlreports ten'SysML Standard Diagrams'::gvreferences, oneendpoint-not-a-nodeand one cross-file reference — not the threegverrors proposed — and its qualifiedbindends and requirement-bodyconnection connectparse.stable/ 8whitespace-only/ 1unwritable/ 38refused:syntax/ 1graph-diff, not the proposed 830/7/1/38/0.Decisions pending (status left unchanged; stale text only corrected)
runCalcBody,errCalcNoReturn) vs no value — the specification is silent (KerML §7.4.8.2); the missing-return-expression row should carry the same answer.actionnever running (grounded partly on fUML): re-ground on KerML §7.4.11 / SysML §8.4.7, §8.4.13.11, or mark as extension/approximate.seq#(i)out of range: typed error here,nullby the library bodies ofhead/lastand the pilot.Realfinite-only: §9.3.2.2.9 defines the extended reals (±∞); the runtime's refusal of non-finite results is a tool decision the prose states as the specification's.constraint-manifest.jsonare keyed to the pilot's constraint names and the formal 1.0/2.0 editions, not Beta 2 (renamed constraints, three Beta 2-only constraints satisfied by construction).CompositeConstraint: accepted as a degenerate conjunction vs refused per[2..*].Overlap with other PRs and the develop merge
#1522, #1530, #1471 and #1484 landed in
developwhile this was open;origin/develop(11c4699) is merged in as a merge commit (no rebase). The one conflict was #1471's rewordedHappensBeforepartial-order row: develop's new row text is kept with this change's clause-number correction (§7.4.9→§9.2.4 Occurrences, §9.2.6 Performances) re-applied to it. #1484's Census line andvalidatePartUsagePartDefinitionrow and #1530'scheckConnectorTypeFeaturingrow merged clean and are kept as develop has them. #1529 (pilot pin prose) is still open; one row here now names2026-08/0.62.0, which agrees with it.How it was verified
Every replacement was checked against the tree (
grepfor each path, symbol and test name) and the rendered specifications (build/spec-docs/sysml.txt,build/spec-docs/kerml.txt). Gates, all passing on the pushed commit:Also checked by hand:
sysml -validateon a state body withfirst a;(thesyntaxerror above), the DesertKite models, and that every Status cell carries one marker and every|inside a code span in a table cell is escaped.Checklist
make testandmake lintpass locally (docs-only change; the seven documentation gates above)changes/unreleased/<slug>.<section>.md, not as an edit toCHANGELOG.mdmake docs-countsrun if a gate count moved (compliance rows need nothing: the census is counted at docs build)F4,K5) in the body, docs, or changelogLink to Devin session: https://nasa-jpl-demo.devinenterprise.com/sessions/0cadee59142045a995c05b473ed44534
Open in Devin Desktop: https://nasa-jpl-demo.devinenterprise.com/desktop/session/0cadee59142045a995c05b473ed44534?variant=devin
Requested by: @HuiJun