Skip to content

feat(check): NPR 7123.1D library support — NPR7123Pass, demo and design page - #1928

Open
devin-ai-integration[bot] wants to merge 2 commits into
developfrom
feat/npr7123-library
Open

devin-ai-integration[bot] wants to merge 2 commits into
developfrom
feat/npr7123-library

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

What and why

Brings NASA NPR 7123.1D into OpenSysML on top of the NPR7123 extension library (Open-MBEE/OpenSysML-Extensions-Library#20): a pass that audits a model against what the NPR states of the elements it classifies, a demo project, and the design page.

  • internal/check/passes/npr7123.go — NPR7123Pass (constraint tier, source npr7123, warnings only, registered after MOSAPass). Library documents are skipped, a model that never uses the library gets no finding, and a workspace package merely named NPR7123 is not the vocabulary. Rules: npr7123-review-missing-entrance-or-success-criteria (§5.2.2.1, SE-34), npr7123-review-missing-minimum-product (§5.2.2.2 minimum products read from the library's @MaturityExpectation { required = true } cells, Appendix F order for "below maturity"), npr7123-compliance-missing-justification (Table H-1), npr7123-compliance-matrix-missing-requirement (every active id of NPR7123::SERequirements, one finding per matrix), npr7123-semp-missing-process (§6.2.3, SE-58; a SEMP a review lists under reviewedProducts is a stand-in and is not audited). Nothing the NPR does not state is checked.
  • internal/check/codes/table_lint.go + docs/reference/diagnostics.md (make diagnostics-catalogue) — the five codes with -explain text; docs/project/constraint-manifest.json lists the pass as an extension.
  • internal/doc/queryexec/memberpath.go — a member-path segment naming no declared member reads the element-valued metaclass feature of that name, so type.documentation reads a usage's definition documentation (what the library's ComplianceRegister needs for the Requirement Statement column; the DocumentQueries::Column doc upstream states it).
  • examples/npr7123-demo/ — the Dust Lidar Pathfinder: a SEMP tailoring all 17 processes, SRR/PDR/CDR with tailored Appendix G criteria and §5.2.2.2 products, a peer review, TRL 6, 61 compliance entries and a ComplianceMatrix; README shows -validate and the rendered Table H-1; five deliberate gaps, one per code, each marked doc /* Deliberate gap … */.
  • docs/project/npr7123-library.md (nav beside mosa-library.md, docs/project/README.md), 🧩 rows in docs/project/spec-compliance.md, changes/unreleased/npr7123-library.added.md.

Still to come (the PR stays a draft until then)

Re-pin to the upstream main merge commit once the library PR merges: scripts/extension-libraries-pin.sh, scripts/sync-extension-libraries.sh, go generate ./internal/workspace/libs (stdlib.snapshot), make extension-libraries-pin-check, both pilot-differential baselines re-recorded and every movement adjudicated here (expected: opensysml-libraries 16→17 files, examples 56→57 for the demo, plus whatever the new library itself adds), tests/hygiene TestEngineContractCoversEveryBoundName, then the full AGENTS.md §2 gate. Until the re-pin the vendored library is absent from this branch, so the head cannot be green.

Specification basis

NPR 7123.1D (NODIS, effective 2023-07-05): §3.2 (17 processes), §5.2.2.1–5.2.2.2 and Table 5-1 (reviews, minimum products, maturity), §6.2.3 (SEMP, SE-58), Appendix F, G, H. Not a SysML v2 conformance claim: the new spec-compliance.md rows carry the 🧩 Extension marker. The member-path change is an OpenSysML document-query extension (DocumentQueries::Column doc).

How it was verified

Against a local copy of the library (not committed; it enters through the re-pin):

  • go test ./internal/check/passes -run TestNPR7123 (6 tests: each rule's positive and negative cases, the no-library and namesake-package cases); go test ./internal/check/codes; go test ./internal/doc/queryexec -run TestExecuteMemberPath.
  • ./bin/sysml examples/npr7123-demo/npr7123-demo.sysml -validate: no errors, the five deliberate warnings (six findings); -validate -strict -warnings-as-errors clean over the library; -render-document of the compliance matrix renders Table H-1 with 61 rows.
  • go test ./internal/workspace/model -run TestExamplesAnalyseCleanly, go test ./internal/workspace/libs -run 'TestStdlibConformance|TestExtensionsProject'.
  • python3 scripts/check-doc-links.py (0 broken), python -m mkdocs build --strict, go test -C tools ./census/validation.
  • go build ./..., go vet ./..., gofmt -l . clean.

Checklist

  • make test and make lint pass locally (full gate runs after the re-pin)
  • Tests added or updated for the change
  • Documentation extended where it already covers the surface (see CONTRIBUTING.md)
  • Changelog entry added as changes/unreleased/<slug>.<section>.md, not as an edit to CHANGELOG.md
  • baselines regenerated and make docs-counts run if a gate count moved (after the re-pin)
  • No internal work-item labels (waves, slices, F4, K5) in the body, docs, or changelog

Link to Devin session: https://nasa-jpl-demo.devinenterprise.com/sessions/cba835148b3c456ebb09399c64e84240
Open in Devin Desktop: https://nasa-jpl-demo.devinenterprise.com/desktop/session/cba835148b3c456ebb09399c64e84240?variant=devin
Requested by: @HuiJun

devin-ai-integration Bot and others added 2 commits November 4, 2026 16:15
…hangelog

Co-Authored-By: jason.han <hanhuijun@gmail.com>
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@devin-ai-integration
devin-ai-integration Bot marked this pull request as ready for review November 9, 2026 15:28

This branch has not been deployed

No deployments
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