Skip to content

feat: add NPR7123, the NASA NPR 7123.1D systems-engineering library - #20

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

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

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

Summary

Adds libraries/NPR7123.sysml, a NON-NORMATIVE vocabulary for NASA NPR 7123.1D (NODIS, revision D, effective 2023-07-05), shaped like MOSA/OOSEM: every artefact is a definition specialising its native SysML type, an abstract base usage subsetting the native base usage, and a SemanticMetadata keyword applying both (#stakeholderExpectationsDefinition action elicit;, #lifeCycleReview action pdr { :>> kind = ReviewKind::PDR; }). The NPR's own words, names and numbering are kept throughout.

What it models:

  • Ch. 3: TechnicalProcess :> Action with group : TechnicalProcessGroup (systemDesign, productRealization, technicalManagement), requirementId, section, tailoring, and one definition + base usage + keyword per common technical process (17, SE-07…SE-23), each doc carrying the NPR's "is used to…" text.
  • Ch. 5: TechnicalReview :> Action (entrance/success criteria as requirement usages, reviewedProducts, RFA/RID/action items), LifeCycleReview (kind : ReviewKind, phase, keyDecisionPoint), PeerReview, KeyDecisionPoint, a thin LifeCyclePhase (the doc says NPR 7120.5 owns the life cycles), ReviewKind with every Appendix G review by acronym, and ReviewCriteria: the 411 entrance/success criteria of Tables G-1…G-21 as requirement defs (EntranceCriterion/SuccessCriterion, number as in the table), with the G.1.2 tailoring expectation written into the docs.
  • §5.2.2.2 / Table 5-1 / Appendix F: WorkProduct :> Item with maturity : WorkProductMaturity (Initial, Final, Update; Preliminary, Baseline, Approve; plus approach, the one Table 5-1 cell Appendix F does not define), one item definition per Table 5-1 product, each carrying one @MaturityExpectation { review; maturity; required; requirementId } per table cell. Table 5-1 is an image in the PDF; it was transcribed by hand from the rendered page 39 (21 products × 10 reviews; the 24 ** cells are exactly the §5.2.2.2 minimum products SE-35…SE-48, SE-51…SE-56, SE-66…SE-69).
  • Appendix E: TechnologyReadinessLevel 1–9 with the definition and success criteria text, and a @TechnologyReadiness annotation.
  • Ch. 6: SEMP :> Document, WorkProduct (a project nests one usage per process under it; SE-58).
  • Ch. 2: TechnicalAuthority (+ TechnicalAuthorityKind), @Waiver, @Deviation.
  • Appendix H: SERequirements holds the 62 active [SE-nn] as requirement def <'SE-nn'> SEnn :> SERequirement (doc = statement; id, section, rationale from Table H-1). SE-01…05, SE-49, SE-50 are not modelled; the package doc cites Appendix J. Table H-1 prints SE-59…SE-64 in one row, so each of those gets its statement from §6.2.5–6.2.9 and the part of the shared rationale that speaks to it. ComplyKind (FC/T/NA codes), @Compliance { comply; justification }, ComplianceEntries/ComplianceRegister queries and ComplianceMatrix :> Document generate Table H-1 with its six columns from a project model; LifeCycleReviewRegister, ComplianceMatrixView, LifeCycleReviewView round it out.
  • MOEs/TPMs/leading indicators reuse ParametersOfInterestMetadata (re-exported, as MOSA does; the standard library has #moe/#mop, no tpm); ModelingMetadata is re-exported for StatusKind.

DocumentQueries.sysml: the Column doc gains one clause — a member-path segment naming no member reads the element-valued metaclass feature of that name, so type.documentation reads a usage's definition documentation. ComplianceRegister relies on it for the Requirement Statement column (OpenSysML implements it in its NPR7123 PR; no declaration changes).

What OpenSysML will bind to (engine-contract.json, 14 entries, sorted)

NPR7123::Compliance (metadata: comply, justification), NPR7123::ComplianceMatrix, NPR7123::ComplyKind, NPR7123::EntranceCriterion, NPR7123::LifeCycleReview, NPR7123::MaturityExpectation (metadata: review, maturity, required, requirementId), NPR7123::ReviewKind, NPR7123::SEMP, NPR7123::SERequirement, NPR7123::SERequirements (package), NPR7123::SuccessCriterion, NPR7123::TechnicalProcess, NPR7123::WorkProduct, NPR7123::WorkProductMaturity — consumer internal/check/passes/npr7123.go, the NPR7123Pass (review without entrance/success criteria; §5.2.2.2 minimum product absent or below maturity; tailored/NA compliance without justification; compliance matrix missing an active SE requirement; SEMP not addressing all 17 processes).

Semver

MINOR: a new library; no existing library or contract entry changes (DocumentQueries changes documentation only).

Gates

  • ./scripts/validate-libraries.sh (pilot 2026-08, 0.62.0): 0 errors, 0 warnings; nothing added to validation/allowed-warnings.txt.
  • ./scripts/check-readme-table.sh: README row added, portability "Any SysML v2 tool".
  • ./scripts/write-project-meta.py: .meta.json regenerated (17 units); .project.json unchanged (no new OMG archive).
  • ./scripts/check-engine-contract.sh --base origin/main: pass.
  • OpenSysML against a local copy: go test ./internal/workspace/libs -run 'TestStdlibConformance|TestExtensionsProject' ok; sysml -validate -strict -warnings-as-errors clean over the library and the examples/npr7123-demo model; the demo's ComplianceMatrix renders 61 rows (one SE left out on purpose).

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

Processes, life-cycle reviews with the Appendix G criteria, work-product maturity (Table 5-1, Appendix F), TRLs, the 62 active SE requirements and the Appendix H compliance matrix. Document Column paths resolve a metaclass-feature segment (type.documentation) so the matrix reads each requirement's statement from its definition.

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 4, 2026 16:09

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 potential issue.

⚠️ 1 issue in files not directly in the diff

⚠️ Public keyword definitions lack documentation

The 49 public keyword definitions, starting with TechnicalProcessMetadata, have no doc blocks. The repository requires documentation for every public definition.

Devin Review

Co-Authored-By: jason.han <hanhuijun@gmail.com>
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