Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
d716d7b
build(libs): vendor the QVTS library from the extension libraries
devin-ai-integration[bot] Nov 10, 2026
fa2ab10
feat(query): write a query's answer as a QVTS::QueryResult view
devin-ai-integration[bot] Nov 10, 2026
23c39e9
build(libs): pin the extension libraries at the QVTS engine-contract …
devin-ai-integration[bot] Nov 10, 2026
b60ce34
feat(client): carry the QueryResult view in the Go, Python and Java c…
devin-ai-integration[bot] Nov 10, 2026
9cf641d
feat(mdk): write a query's answer as a QueryResult view and render do…
devin-ai-integration[bot] Nov 10, 2026
b64a428
docs(qvts): document the QueryResult view across the query, client an…
devin-ai-integration[bot] Nov 10, 2026
d41399d
test(differential): re-record both pilot baselines for the QVTS libra…
devin-ai-integration[bot] Nov 10, 2026
6893658
feat(mcp): query and run_document_query write their answer as a QVTS:…
devin-ai-integration[bot] Nov 10, 2026
510fbf9
fix(qvts): a result view exposes from the root a name its own scope w…
devin-ai-integration[bot] Nov 10, 2026
f219792
Merge origin/develop: re-record the API JSON and structure differentials
devin-ai-integration[bot] Nov 10, 2026
7c06127
fix(qvts): expose a result view's elements by their own names — a quo…
devin-ai-integration[bot] Nov 10, 2026
81dfea8
fix(mdk): give each query its own result-view file — a digest of the …
devin-ai-integration[bot] Nov 10, 2026
1db32a8
fix(qvts): expose the element a failed step stopped at, not another s…
devin-ai-integration[bot] Nov 10, 2026
d3fbdc9
style(mdk): keep the result-view file-name comment to one line
devin-ai-integration[bot] Nov 10, 2026
b36a0c5
Merge origin/develop into feat/qvts-query-result-view
devin-ai-integration[bot] Nov 11, 2026
003325b
chore(baselines): re-record the differential baselines over the merge…
devin-ai-integration[bot] Nov 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .agents/skills/testing-pilot-corpora-gate/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ gate's own helpers are package-private but reusable (`pilotCorporaGate.files(t)`

`actionlint`, `shellcheck`, `python3 scripts/check-doc-links.py`, `gofmt`, `go vet`,
`go run -C tools ./cmd/pilot-diff` (validators pre-downloaded; ~4min, prints e.g.
the headline the committed baseline holds — `924 file(s), 524 fully agreeing; 1102 agreed
the headline the committed baseline holds — `935 file(s), 535 fully agreeing; 1102 agreed
diagnostic(s), 122 only ours, 2462 only the pilot's` at the `2026-09` pin, so read it from
`docs/project/pilot-differential-baseline.json` rather than from this line)
and `make lint` (staticcheck+gosec, ~2min) all work. There is **no** `yamllint` and **no**
Expand Down
4 changes: 2 additions & 2 deletions .agents/skills/testing-pilot-differential/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ GNU-format diagnostics **relative to `--root`**. Consequences for testing:
(`passes/literal_infinity.sysml`: `*` bound to a Boolean, a String, a part and an enumeration is
our `binding-connector-type-conformance` error where the pilot warns, four severity-only pairs, and
its `Integer[2] = *` count error is one only-ours row), then the expose-only collisions round
(the `general-views-demo/vehicle.sysml:102` duplicate-imported-name warning retired): `924 file(s), 524 fully agreeing; 1102 agreed,
(the `general-views-demo/vehicle.sysml:102` duplicate-imported-name warning retired): `935 file(s), 535 fully agreeing; 1102 agreed,
122 only ours, 2462 only the pilot's`, JSON totals `openSysMLDiagnostics 1235 / pilotDiagnostics 3575 /
severityMismatch 11`; the two only-ours rows the multiplicity rule added are the expected `action-step-multiplicity-not-fixed`
warnings on `training/18. Action Performance/Action Performance Example.sysml:10` and
Expand Down Expand Up @@ -154,7 +154,7 @@ warning (the `[1]` `RocketEquation` inputs still produce the warning at
`takePicture[*]` in `Camera Example/Camera.sysml`, and the view concern framing round retired the
six view-body `frame` `syntax` rows on `examples`, and the unbounded-literal typing round added
`passes/literal_infinity.sysml` (four severity-only pairs, one only-ours count error), and the expose-only collisions round retired
the `general-views-demo/vehicle.sysml:102` warning; a live run gives `924 file(s), 524 fully
the `general-views-demo/vehicle.sysml:102` warning; a live run gives `935 file(s), 535 fully
agreeing; 1102 agreed, 122 only ours, 2462 only the pilot's`, byte-identical to the committed baseline, and
`docs/project/pilot-differential.md`'s "Results" table matches. The prior rebaseline, when the
Legend of the Red Dragon example left for its own repository, gave
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/testing-pilot-execution-referee/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ pilot answers the representation's own. See
`pilot-exec-diff: <file>:<line>: model no/such/model.sysml: stat <abs>: no
such file or directory`.
- **Additivity.** `go run -C tools ./cmd/pilot-diff` must still print the headline the
committed baseline holds (`924 file(s), 524 fully agreeing; 1102 agreed
committed baseline holds (`935 file(s), 535 fully agreeing; 1102 agreed
diagnostic(s), 122 only ours, 2462 only the pilot's` at the `2026-09` pin — read it from the baseline JSON, not from this line, since each
fix round moves it) and `jq -S` diff clean against
`docs/project/pilot-differential-baseline.json`; `git status --porcelain`
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/testing-pilot-xpect/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -425,7 +425,7 @@ census in `w5c_census_test.go` is live two ways: perturb one pinned triple (e.g.
## Regression neighbour

`go run -C tools ./cmd/pilot-diff` (~1m12s) must still print the headline the *committed* baseline holds —
at the `2026-09` pin that is `924 file(s), 524 fully agreeing; 1102 agreed diagnostic(s), 122
at the `2026-09` pin that is `935 file(s), 535 fully agreeing; 1102 agreed diagnostic(s), 122
only ours, 2462 only the pilot's`. Read the number out of
`docs/project/pilot-differential-baseline.json` rather than trusting this line, since a landing fix
round moves it. When the baseline is itself stale (it was at `19a3ce03`, holding 273 / 281 / 317), a
Expand Down
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,7 @@ Guidance on selecting a client, the coverage of the six clients, and the functio
## Goals

- **Performance:** sub-millisecond parsing, a single static binary, and no JVM or Eclipse runtime
- **Completeness:** SysML v2 textual notation support (110 of 110 standard library files parse cleanly: 94 vendored OMG files and 16 OpenSysML extensions)
- **Completeness:** SysML v2 textual notation support (111 of 111 standard library files parse cleanly: 94 vendored OMG files and 17 OpenSysML extensions)
- **Executable models:** instantiate, evaluate and simulate, turning specifications into running systems
- **Practical ergonomics:** multi-file workspaces, incremental analysis and detailed diagnostics

Expand All @@ -313,7 +313,7 @@ The project is under active development, with the core infrastructure operationa

| Component | Status |
|-----------|--------|
| Lexer/Parser (structural + behavioral grammar) | ✅ Operational (110/110 stdlib clean - see [conformance gate](internal/workspace/libs/stdlib_conformance_test.go)) |
| Lexer/Parser (structural + behavioral grammar) | ✅ Operational (111/111 stdlib clean - see [conformance gate](internal/workspace/libs/stdlib_conformance_test.go)) |
| Symbol resolution & type system | ✅ Complete |
| Semantic layer (operators, builtins, validation) | ✅ Complete |
| Feature chain resolution (member access) | ✅ Supported subset — Kernel Semantic Library members (`self`, `timeSlices`, `superoccurrence`, `localClock`, `predecessors`, …) stay out of an object's shape and are read-only, answered from what the runtime tracks, the library's declared value, the composition they invert or their multiplicity (see [spec compliance](docs/project/spec-compliance.md#instantiation-and-feature-values-sysml-v2-763-usages-kerml-7411-feature-values-83)) |
Expand Down Expand Up @@ -348,11 +348,11 @@ The project is under active development, with the core infrastructure operationa
<!-- doc-counts:begin refereed-figures -->
**Measured against the pinned reference** (`PILOT_TAG=2026-09`, artifact `0.63.0`). Every number below is generated by `make docs-counts` from the committed baselines and gated; none of them is typed in by hand.

- **Corpus agreement:** 524 of 924 files agree diagnostic-by-diagnostic; 122 diagnostics are ours alone and 2462 the reference's alone, and the first number must be read by root: the aggregate includes candidate conformance differences, intentional execution-scope warnings on reference corpora and diagnostics from our own examples ([differential](docs/project/pilot-differential.md), `go run -C tools ./cmd/pilot-diff`).
- **Corpus agreement:** 535 of 935 files agree diagnostic-by-diagnostic; 122 diagnostics are ours alone and 2462 the reference's alone, and the first number must be read by root: the aggregate includes candidate conformance differences, intentional execution-scope warnings on reference corpora and diagnostics from our own examples ([differential](docs/project/pilot-differential.md), `go run -C tools ./cmd/pilot-diff`).
- **Declared-diagnostic silence:** of the 514 declared `errors` rows in the reference's own Xpect suites, we report nothing for 0. 247 we report word-for-word; 248 wording-only and 7 location-only differences are agreement in substance and are not counted as gaps; 0 more we report as a warning and 2 elsewhere in the file ([Xpect oracle](docs/project/pilot-xpect.md), `go run -C tools ./cmd/pilot-xpect`).
- **Scope agreement:** 230 of 230 declared scope assertions match exactly (same source).
- **Permissiveness gaps:** of 349 invalid models we wrote ourselves, the reference rejects 5 that we accept by default, and 334 both reject; 5 further cases agree only when we are asked strictly. We authored every one of these cases ourselves, so the denominator measures the reach of our own corpus and not our conformance; agreement reached only under an opt-in strict mode is weaker evidence than agreement by default ([rejection oracle](docs/project/pilot-rejection.md), `go run -C tools ./cmd/pilot-reject`).
- **Declared errata:** the registry declares 13 defect(s) in the published reference material — 6 with a specification-derived correction, 7 documented without one, since no intended reading can be inferred ([OMG issues](docs/project/omg-issues.md), `tools/oracle/errata`). Every figure above is as published and stays the conformance statement; running the same oracles over the corrected text instead reports 525 of 924 files agreeing, 121 diagnostics ours alone and 2462 the reference's alone, 0 declared rows we are silent on, and 0 of 349 authored cases the reference alone rejects. The corrected figures are diagnostic only: an erratum never reclassifies a divergence category, and the published corpus is never edited.
- **Declared errata:** the registry declares 13 defect(s) in the published reference material — 6 with a specification-derived correction, 7 documented without one, since no intended reading can be inferred ([OMG issues](docs/project/omg-issues.md), `tools/oracle/errata`). Every figure above is as published and stays the conformance statement; running the same oracles over the corrected text instead reports 536 of 935 files agreeing, 121 diagnostics ours alone and 2462 the reference's alone, 0 declared rows we are silent on, and 0 of 349 authored cases the reference alone rejects. The corrected figures are diagnostic only: an erratum never reclassifies a divergence category, and the published corpus is never edited.
- **Self-assessed surface:** the action, state-machine and classifier-behavior rows have no external referee at all — the four refereed figures above cannot see them, because the pinned artifact evaluates expressions but executes neither actions nor state machines. [Spec compliance](docs/project/spec-compliance.md) counts them.

What these numbers cannot show: the OMG corpora are demonstrations rather than an official conformance suite; the differential is one-directional, comparing the diagnostics the two implementations report on the same files; the Xpect suites are the pilot authors' test intent rather than a certification oracle; and none of these is a percentage of the specification — no global compliance figure is claimed anywhere.
Expand All @@ -362,9 +362,9 @@ What these numbers cannot show: the OMG corpora are demonstrations rather than a

**Current commit:** All tests pass (`go test -race ./...`), builds clean (`go build ./...`).
**Test coverage:** top-level `Test` functions (counted from the `_test.go` files, as `go test ./...` runs them) covering parsers, semantics, runtime (actions, states, instances, operators, validation), behind golden ASTs, negatives, execution conformance cases, golden traces, runtime robustness cases and gRPC conformance and robustness cases. The figures are counted from the tree when the documentation site is built into the test inventory of [spec compliance](docs/project/spec-compliance.md), never committed, so a branch adding a test does not rewrite this page. A test skips only for want of something the run did not provide, and says what: the held-image round trip declines a conformance case that creates no instance, a few gate on a PDF or Mermaid toolchain, a pinned pilot artifact, the PSSM suite, a locale, a case-insensitive filesystem or a live Flexo stack, and the OMG corpus gates skip until the corpora are downloaded unless asked to fail.
**Parser coverage:** 110/110 bundled library files parse cleanly — the 94 official SysML v2 standard library files and the 16 non-normative OpenSysML extensions: `OpenSysML Libraries/AnalysisRecords.sysml`, `DiagramLayout.sysml`, `DocumentQueries.sysml`, `IdentityMetadata.sysml`, `MOSA.sysml`, `MigrationMetadata.sysml`, `OOSEM.sysml`, `OpenSysMLMathFunctions.kerml`, `OpenSysMLRenderings.sysml`, `RandomFunctions.kerml`, `Simulation.sysml`, `StateActivity.kerml`, `StateMachines.sysml`, `StateSpaceIntegration.sysml`, `Stochastic.sysml` and `SysMLValidation.sysml`. Conformance verified by [stdlib_conformance_test.go](internal/workspace/libs/stdlib_conformance_test.go). Grammar reference: [OMG Xtext grammar](https://github.com/Systems-Modeling/SysML-v2-Pilot-Implementation/tree/master/org.omg.kerml.xtext/src/org/omg/kerml/xtext).
**Parser coverage:** 111/111 bundled library files parse cleanly — the 94 official SysML v2 standard library files and the 17 non-normative OpenSysML extensions: `OpenSysML Libraries/AnalysisRecords.sysml`, `DiagramLayout.sysml`, `DocumentQueries.sysml`, `IdentityMetadata.sysml`, `MOSA.sysml`, `MigrationMetadata.sysml`, `OOSEM.sysml`, `OpenSysMLMathFunctions.kerml`, `OpenSysMLRenderings.sysml`, `QVTS.sysml`, `RandomFunctions.kerml`, `Simulation.sysml`, `StateActivity.kerml`, `StateMachines.sysml`, `StateSpaceIntegration.sysml`, `Stochastic.sysml` and `SysMLValidation.sysml`. Conformance verified by [stdlib_conformance_test.go](internal/workspace/libs/stdlib_conformance_test.go). Grammar reference: [OMG Xtext grammar](https://github.com/Systems-Modeling/SysML-v2-Pilot-Implementation/tree/master/org.omg.kerml.xtext/src/org/omg/kerml/xtext).
**Behavioral execution:** Calc/constraint/requirement/satisfy functional. Action/state executors handle nested invocation, control flow keywords, loop and conditional statements and the send statement (<!-- doc-counts:begin conformance-passing -->every conformance case passing<!-- doc-counts:end conformance-passing -->). Coverage is self-assessed against the specification text and the normative library: the pinned OMG pilot implementation evaluates expressions but does not execute actions or state machines headlessly, so no external implementation currently adjudicates these rows. See [spec compliance](docs/project/spec-compliance.md).
**Reference differential:** 924 files compared diagnostic-by-diagnostic against the pinned OMG pilot implementation (`2026-09`), 524 in full agreement; every divergence is enumerated and adjudicated in [the differential](docs/project/pilot-differential.md), reproducible with `go run -C tools ./cmd/pilot-diff`.
**Reference differential:** 935 files compared diagnostic-by-diagnostic against the pinned OMG pilot implementation (`2026-09`), 535 in full agreement; every divergence is enumerated and adjudicated in [the differential](docs/project/pilot-differential.md), reproducible with `go run -C tools ./cmd/pilot-diff`.
**Rejection oracle:** the reverse direction — do we reject what the reference rejects? 349 hand-written invalid models validated by both implementations, 339 rejected by both, 0 the pinned pilot rejects and we accept; the remainder only we reject — the control-node succession rules the pinned pilot leaves unimplemented and a non-Boolean succession guard it accepts once the standard library types it — and every permissiveness gap is enumerated with a reproducer and likely root cause in [the rejection oracle](docs/project/pilot-rejection.md), reproducible with `go run -C tools ./cmd/pilot-reject`. We wrote every case, so the count measures our coverage of the rejection surface, not our conformance — a sample, not a proof.
**Training examples:** 100/100 files report no semantic errors, gated by `tests/corpus/testdata/training_examples_expected.txt`; the gate does not count execution-scope warnings. Download with `./scripts/download-training-examples.sh` (from the [OMG training directory](https://github.com/Systems-Modeling/SysML-v2-Pilot-Implementation/tree/master/sysml/src/training)). See [training examples](docs/project/training-examples.md) for analysis.
**Semantic layer:** a complete implementation of runtime operators, feature chains and validation rules. See [examples/semantic-layer/](examples/semantic-layer/) for a full demonstration.
Expand Down Expand Up @@ -432,7 +432,7 @@ github.com/Open-MBEE/OpenSysML
- **Parser:** hand-written recursive descent (no framework overhead, full error recovery, sub-millisecond parses)
- **Grammar source:** OMG pilot Xtext grammars (`SysML.xtext` and `KerMLExpressions`)
- **Spec compliance:** [OMG SysML v2.1 Beta 1 / KerML 1.1](https://www.omg.org/spec/SysML/2.0) (2026-09 release)
- **Standard library:** 94 files from [SysML v2 Pilot Implementation 2026-09](https://github.com/Systems-Modeling/SysML-v2-Pilot-Implementation/releases/tag/2026-09), byte-identical, plus the sixteen non-normative `OpenSysML Libraries/` extensions (`OpenSysMLMathFunctions`, `DocumentQueries`, `IdentityMetadata`, `DiagramLayout`, [`OOSEM`](docs/project/oosem-library.md), [`MOSA`](docs/project/mosa-library.md), `StateSpaceIntegration`, `Stochastic`, `RandomFunctions`, `Simulation`, `MigrationMetadata`, `AnalysisRecords`, `OpenSysMLRenderings`, [`StateMachines`](docs/project/statemachines-library.md), [`SysMLValidation`](docs/project/validation-constraints.md) and `StateActivity`). The extensions are maintained upstream at [Open-MBEE/OpenSysML-Extensions-Library](https://github.com/Open-MBEE/OpenSysML-Extensions-Library) — for any SysML v2 tool — and vendored here pinned by `scripts/extension-libraries-pin.sh` ([pin, sync and contract](docs/project/extension-libraries.md))
- **Standard library:** 94 files from [SysML v2 Pilot Implementation 2026-09](https://github.com/Systems-Modeling/SysML-v2-Pilot-Implementation/releases/tag/2026-09), byte-identical, plus the seventeen non-normative `OpenSysML Libraries/` extensions (`OpenSysMLMathFunctions`, `DocumentQueries`, `IdentityMetadata`, `DiagramLayout`, [`OOSEM`](docs/project/oosem-library.md), [`MOSA`](docs/project/mosa-library.md), `StateSpaceIntegration`, `Stochastic`, `RandomFunctions`, `Simulation`, `MigrationMetadata`, `AnalysisRecords`, `OpenSysMLRenderings`, [`StateMachines`](docs/project/statemachines-library.md), [`SysMLValidation`](docs/project/validation-constraints.md), `StateActivity` and `QVTS`). The extensions are maintained upstream at [Open-MBEE/OpenSysML-Extensions-Library](https://github.com/Open-MBEE/OpenSysML-Extensions-Library) — for any SysML v2 tool — and vendored here pinned by `scripts/extension-libraries-pin.sh` ([pin, sync and contract](docs/project/extension-libraries.md))
- **CI/CD:** GitHub Actions checks pull requests; CircleCI builds and tests `main` and `develop` and publishes releases from tags

## Releases
Expand Down
Loading
Loading