Skip to content

feat: SysMD concepts as data, project views, assurance-thread profile - #31

Merged
elasticdotventures merged 2 commits into
mainfrom
feat/sysmd-concepts
Oct 3, 2026
Merged

elasticdotventures merged 2 commits into
mainfrom
feat/sysmd-concepts

Conversation

@elasticdotventures

Copy link
Copy Markdown
Member

What

Transfers concepts (not code) from tukcps/SysMD (Apache-2.0) and adds the types kr0ki needs for project views and an assurance thread. All additive.

  • quantity: Dimension/Unit/finite Interval/Quantity/ExchangeRate. Currencies are distinct units and never implicitly convertible (SysMD 4.3.0 canonicalises every currency to EUR, so 100 USD + 100 EUR = 200 EUR; confirmed by running it). Cross-currency needs an explicit ExchangeRate with caller-supplied as_of + source. °C/°F convert but refuse arithmetic.
  • verdict: RangeVerdict (Entailed/Narrowed/Inconsistent) and Satisfies<QuantityBound> for Quantity. Narrowed maps to Unknown, not Satisfied; Disposition is unchanged.
  • view_definition: ViewDefinition/ViewUsage/Expose/ViewFilter/RenderingChoice + ModelIndex::select. OMG vocabulary (D6); the four standard RenderingUsages come from the normative Views library.
  • model_edit: hasA/isA qualified-name-addressed edits (parse/print only).
  • mbse::assurance: typed profile over RequirementGraph (nine required requirement fields, evidence record, CurrentRevisions with a per-case configuration digest, analyze -> Assurance state + GapKinds). Keeps a satisfaction assertion apart from revision-specific verification evidence.

Verification

cargo test --all-features 345 pass; cargo clippy --all-targets --all-features -- -D warnings and cargo fmt --check clean. CHANGELOG [Unreleased] and AGENTS.md module map updated; Cargo.toml version not bumped (maintainer cuts the release).

Notes for review

  • Currency reuses iso::Currency; only the 16 variants it has are recognised as units.
  • quantity::Interval is finite-only on purpose (inf-inf is NaN).
  • kr0ki's assurance work (PromptExecution/kr0ki, branch feat/assurance-thread) depends on this; it will bump its ufo-types rev after merge.

🤖 Generated with Claude Code

https://claude.ai/code/session_01GgXQRGsprSZc2oXGNj9n8X

elasticdotventures and others added 2 commits October 2, 2026 15:00
… data, plus project views

Transfers four concepts from tukcps/SysMD (Apache-2.0; ideas only, no code):

- quantity: Dimension/Unit/Interval/Quantity/ExchangeRate. Currencies are
  distinct units, never implicitly convertible (SysMD 4.3.0 canonicalizes all
  currencies to EUR: 100 USD + 100 EUR = 200 EUR). Cross-currency needs an
  explicit ExchangeRate with caller-supplied as_of + source. Offset units
  (degC/degF) convert but refuse arithmetic.
- verdict: RangeVerdict (Entailed/Narrowed/Inconsistent) and
  Satisfies<QuantityBound> for Quantity. Narrowed maps to Unknown, not Satisfied.
- view_definition: ViewDefinition/ViewUsage/Expose/ViewFilter/RenderingChoice
  and ModelIndex::select, for kr0ki project views. OMG vocabulary verbatim;
  the four standard RenderingUsages come from the Views library.
- model_edit: hasA/isA qualified-name-addressed edits (parse/print only).

CHANGELOG [Unreleased] and AGENTS.md module map updated. cargo test
--all-features: 328 pass; clippy --all-targets --all-features -D warnings and
fmt --check clean.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GgXQRGsprSZc2oXGNj9n8X
…ness, gap analysis)

Typed profile over RequirementGraph: NodeKind, SourceKind, ProfileRequirement,
statement lint, EvidenceRecord, CurrentRevisions (global model+implementation
revision, per-case configuration digest), Freshness and analyze() -> ThreadReport
with Assurance states and GapKinds. Keeps a satisfaction assertion apart from a
revision-specific verification result.

cargo test --all-features: 345 pass; clippy -D warnings and fmt clean.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GgXQRGsprSZc2oXGNj9n8X
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.

1 participant