requirements-standards-assessment — declared by cat-harness — source held
Applies when. Evaluating how requirements authored or verified in the harness map to or from open industry standards, interchange formats, statement grammars, and quality models — and deciding which transformations belong in higher harness layers (cat-harness, and content instances above it) while keeping the bootstrap Requirement schema strictly self-contained and free of external dependencies. It answers how bootstrap requirements translate to ReqIF, OSLC-RM, EARS, ISO 29148, and ISO 25010, what each standard costs in serialization and semantic complexity, and where mapping adapters must live. It does NOT govern runtime execution logs (prov-o-provenance), decision table structures (dmn), software package bills of materials (spdx-3), or access policy enforcement (odrl-policies).
Origin. Survey and comparative assessment of formal and open requirements standards: OMG Requirements Interchange Format (ReqIF 1.2, formal/2013-10-01); OASIS Open Services for Lifecycle Collaboration Requirements Management (OSLC-RM 2.1 / OSLC Core 3.0); Easy Approach to Requirements Syntax (EARS: Mavin et al., IEEE RE 2009); ISO/IEC/IEEE 29148:2018 (Systems and software engineering — Life cycle processes — Requirements engineering); IEEE Std 830-1998 (Recommended Practice for Software Requirements Specifications, superseded by ISO/IEC/IEEE 29148); ISO/IEC 25010:2011/2023 (Systems and software engineering — Systems and software Quality Requirements and Evaluation — System and software quality models); INCOSE Guide for Writing Requirements (INCOSE-TP-2010-006-04, 4th Edition, 2023). Evaluated against the bootstrap Requirement schema (bootstrap/schemas/requirement.schema.json, Issue #1164).
Ingested sources:
library/rfc2119-key-words-requirement-levelslibrary/rfc8174-uppercase-vs-lowercase-2119-key-words
Node file: requirements-standards-assessment.md
Assessment of open standards for requirements and bootstrap mapping
Status: evaluated and recommended, NOT adopted into bootstrap. Issue #1164. Owner, 2026-09-23, choosing markdown front matter for requirement documents: “1 for now. need bean to assess open stds for requirements/methodologies that fit in”.
The bootstrap Requirement (bootstrap/schemas/requirement.schema.json) is
deliberately free of outside concepts. This methodology assesses open standards
across three categories — interchange formats, statement templates &
grammars, and quality models — evaluating their licensing, governance,
serialization overhead, and exact field-by-field fit to the bootstrap
Requirement. It concludes with concrete architectural recommendations on layer
placement and verifies the no-outside-concept boundary.
1. The bootstrap baseline: the six parts of a requirement
In the bootstrap and harness architecture, a requirement is defined by six
essential parts (formalized in Issue #2405, FR-007/FR-008, and documented in
skills/content/requirements-planning/requirement-definition.md):
- Identifier (
id): A globally unique URI/slug (req:<slug>), with each individual requirement statement addressable asreq:<slug>#<key>and each success criterion addressable asreq:<slug>#<key>/<criterion>. - Title & Label: A concise human-readable heading (
titlefor the document,labelfor each atomic statement). - Statement & Conformance (
requirement,conformance): Exactly one sentence that a reviewer or test can say yes or no to, qualified by an RFC 2119 conformance verb (SHALL,SHOULD,MAY,SHALL NOT). - Rationale / Benefit (
benefit,description): The justification explaining why the obligation exists and what value it delivers. - Parent & Lineage (
derivedFrom): Direct upstream references in the specialization/conformance lattice. - Acceptance & Verification (
successCriteria[]): At least one concrete success criterion (criterion) with an explicit verification method (verification∈{test, inspection, review, analysis}). A requirement without a success criterion can be filed and never judged.
A requirement document is authored in Markdown with YAML front matter or stored
as JSON, and grouped into a RequirementSet (reqset:<slug>) tracking stages
(draft → proposed → approved → planned → in-progress → delivered → accepted),
member decisions, work plans (beans), and recorded human sign-off attestations.
2. Survey of open standards
Category A: Interchange formats
1. ReqIF (OMG Requirements Interchange Format v1.2)
- Origin & Governance: Object Management Group (OMG formal/2013-10-01), originally standardized by ProSTEP iViP. Also ISO/IEC 17506:2022.
- Licence: Open specification, royalty-free (RF).
- Maturity: High. De facto interchange standard in automotive, aerospace, and defense systems engineering (supported by IBM DOORS / DOORS Next, PTC Integrity, Siemens Polarion, Dassault, Eclipse ProR).
- Serialization Overhead: Very high. XML-based schema with extensive
metamodel indirection:
REQ-IF→CORE-CONTENT→DATATYPES→SPEC-TYPES(SpecObjectType,SpecRelationType) →SPEC-OBJECTS→SPEC-RELATIONS→SPECIFICATIONS(SpecHierarchy). Attributes require multi-level XML wrappers (<ATTRIBUTE-VALUE-STRING>,<THE-VALUE>). Line-based Git diffs of raw ReqIF XML are unreadable. - Semantic Alignment to Bootstrap:
SpecObjectmaps to a bootstrapStatement(or an atomicRequirement).SpecObjectTypedefines attribute metadata.ReqIF.Namemaps totitle/label.ReqIF.Textmaps torequirement(statement text).SpecRelation(typederivesorparent) maps toderivedFrom.- Verification items can be modelled either as separate
SpecObjects linked viaSpecRelation(typeverifiedBy), or as structured attributes on theSpecObject(VerificationMethod,SuccessCriteria).
- Verdict: Excellent for enterprise import/export projection; totally unsuitable for native storage or authoring in Git.
2. OSLC-RM (OASIS OSLC Requirements Management v2.1 / OSLC Core 3.0)
- Origin & Governance: OASIS Open Standard.
- Licence: OASIS Royalty-Free (RF) on Limited Terms.
- Maturity: High in ALM/PLM linked-data ecosystems (IBM Engineering Lifecycle Management, Siemens, Eclipse Lyo).
- Serialization Overhead: Moderate to High. RDF graph representations (JSON-LD,
Turtle, RDF/XML). Relies on URI dereferencing, Linked Data Platform (LDP)
protocols, and ontology vocabularies (
oslc_rm:,dcterms:). - Semantic Alignment to Bootstrap:
oslc_rm:Requirementresource type.dcterms:identifiermaps toid/key.dcterms:titlemaps totitle/label.dcterms:descriptionmaps torequirementstatement text.oslc_rm:derivedFromandoslc_rm:elaboratedBymap toderivedFrom/dependsOn.oslc_rm:validatedBylinks to test artifacts or verification definitions.
- Verdict: Natural fit with knowledge-graph / JSON-LD export pipelines
(
ns.jsonld,kg-export), but introduces unnecessary REST/graph server assumptions if forced into the local authoring loop.
Category B: Statement templates and grammars
3. EARS (Easy Approach to Requirements Syntax)
- Origin & Governance: Alistair Mavin, Philip Wilkinson, Adrian Harwood, Mark Novak (Rolls-Royce plc / IEEE International Requirements Engineering Conference 2009).
- Licence: Unencumbered, open methodology.
- Maturity: High. Widely adopted across aerospace, automotive, medical device, and agile systems engineering.
- Serialization Overhead: Zero. Operates directly on the requirement statement natural language text.
- The Five EARS Patterns:
- Ubiquitous: “The
<system>shall<system response>.”- Example: “The harness SHALL validate every block against its declared schema.”
- Event-driven: “When
<trigger>, the<system>shall<system response>.”- Example: “When a plan is requested, the agent SHALL produce a requirements document and work plan.”
- State-driven: “While
<in a state>, the<system>shall<system response>.”- Example: “While the requirement set is in draft stage, the tool SHALL allow modification of statement keys.”
- Unwanted behavior: “If
<trigger/error>, then the<system>shall<system response>.”- Example: “If a statement lacks success criteria, then
check:requirementsSHALL emit a validation finding.”
- Example: “If a statement lacks success criteria, then
- Optional features: “Where
<feature is present>, the<system>shall<system response>.”- Example: “Where LaTeX tooling is installed, the adapter SHALL generate typeset math blocks.” (Complex requirements combine While, Where, When, and If clauses).
- Ubiquitous: “The
- Semantic Alignment to Bootstrap:
- Fits directly inside the
requirementstring in bootstrapStatement. - The
<system>noun maps toactors/ harness components. - Conformance verbs align 1:1 with RFC 2119 / bootstrap
SHALL,SHOULD, etc. - Can be validated deterministically by regular expressions or syntax AST
checkers in
check:requirementswithout altering the data schema.
- Fits directly inside the
- Verdict: The optimal statement syntax pattern for authoring requirements in the harness.
4. ISO/IEC/IEEE 29148:2018 (Systems and software engineering — Requirements engineering)
- Origin & Governance: Joint ISO/IEC/IEEE standard. Replaced and consolidated IEEE 830, IEEE 1220, and IEEE 1233.
- Licence: Formal international standard (copyright held by ISO/IEEE; concepts open for reference).
- Maturity: Definitive international benchmark for requirements engineering.
- Serialization Overhead: Zero (process and semantic standard, not a file format).
- Core Elements:
- Requirement Construct (Clause 5.2.4): Defines standard syntax comprising Conditions, Subject, Conformance Verb (“shall”, “should”, “may”), Action/Object, and Constraints.
- Verification Methods (Clause 6.4): Explicitly standardizes the four
fundamental verification methods:
- Test: Quantitative verification using automated or manual test cases with controlled inputs and measured outputs.
- Inspection: Visual or manual verification by examining the product, code, or documentation without executing it.
- Analysis: Verification using mathematical models, calculations, simulations, or formal logic proofs.
- Demonstration: Qualitative verification of observable operation under
specified scenarios (analogous to
review).
- Semantic Alignment to Bootstrap:
- Bootstrap’s verification method enum (
test,inspection,review,analysis) is an exact 1:1 realization of ISO 29148’s verification quartet (withreviewrepresenting demonstration/adjudication). - Traceability relations (
derivedFrom,dependsOn) align with Clause 5.2.7.
- Bootstrap’s verification method enum (
- Verdict: The conceptual foundation for the harness’s requirement definition.
5. IEEE Std 830-1998 (Software Requirements Specifications — SRS)
- Origin & Governance: IEEE Computer Society.
- Status: Officially withdrawn and superseded by ISO/IEC/IEEE 29148:2011/2018.
- Licence: Historical IEEE standard.
- Maturity: Historic benchmark, but obsolete in modern systems engineering.
- Fit to Bootstrap: Premised on large, monolithic, document-centric Software Requirements Specification (SRS) manuals (Section 1 Introduction, Section 2 General Description, Section 3 Specific Requirements). Bootstrap requirements are atomic, graph-linked statement nodes in Git rather than monolithic text chapters.
- Verdict: Superseded. Retained only for historical traceability; all modern harness mappings should cite ISO/IEC/IEEE 29148:2018.
Category C: Quality models
6. ISO/IEC 25010:2011 / 2023 (Systems and software Quality Requirements and Evaluation — SQRE)
- Origin & Governance: ISO/IEC JTC 1/SC 7.
- Licence: Formal international standard.
- Maturity: Universal international taxonomy for software quality characteristics and Non-Functional Requirements (NFRs).
- Structure: Defines 8 product quality characteristics (expanded to 9 in 2023):
- Functional Suitability (completeness, correctness, appropriateness).
- Performance Efficiency (time behaviour, resource utilization, capacity).
- Compatibility (co-existence, interoperability).
- Interaction Capability / Usability (recognisability, learnability, operability, aesthetics).
- Reliability (maturity, availability, fault tolerance, recoverability).
- Security (confidentiality, integrity, non-repudiation, accountability, authenticity).
- Maintainability (modularity, reusability, analysability, modifiability, testability).
- Portability (adaptability, installability, replaceability).
- Safety (2023 addition: operational risk, hazard mitigation).
- Semantic Alignment to Bootstrap:
- Bootstrap
Statementdifferentiateskind: "functional"andkind: "non-functional". - For
kind: "non-functional", bootstrap requires acategorystring. - ISO/IEC 25010 characteristics provide the canonical controlled vocabulary
for this
categoryfield (e.g.security,performance-efficiency,maintainability,reliability).
- Bootstrap
- Verdict: Strongly recommended as the controlled taxonomy for non-functional
requirement validation in
cat-harness.
7. INCOSE Guide for Writing Requirements (INCOSE-TP-2010-006-04, 2023)
- Origin & Governance: International Council on Systems Engineering (INCOSE).
- Licence: INCOSE copyright; educational / professional guidance.
- Maturity: Universal de facto standard for requirements authoring quality and automated linting rules.
- Structure: Defines 9 Requirement Characteristics (Necessary, Appropriate,
Conforming, Singular, Feasible, Verifiable, Correct, Conforming, Complete) and
40+ specific quality rules:
- Singularity: One requirement per statement; no compound sentences with “and/or”.
- Verifiability: Must state conditions that can be definitively verified.
- No ambiguous words: Avoid vague terms (“user-friendly”, “rapid”, “cost-effective”, “easy”, “robust”).
- No escape clauses: Avoid “where possible”, “as appropriate”, “to the extent practical”.
- Active voice: Clear subject acting upon an object.
- Semantic Alignment to Bootstrap:
- Directly justifies the bootstrap requirement rule: “one sentence a reviewer can say yes or no to” and “at least one success criterion with a verification method”.
- Provides the precise linting rules for automated QA criteria in
check:requirements.
- Verdict: Strongly recommended as the rule basis for requirements quality linters.
3. Field-by-field fit analysis
The table below maps each field of the bootstrap Requirement and Statement
to the surveyed standards:
| Bootstrap Field | ReqIF 1.2 XML | OSLC-RM 2.1 RDF/JSON-LD | EARS Syntax Pattern | ISO/IEC/IEEE 29148:2018 | ISO 25010 / INCOSE Rule | Fit Verdict |
|---|---|---|---|---|---|---|
id (req:<slug>#<key>) |
IDENTIFIER (UUID/NCName) + ReqIF.ForeignID |
dcterms:identifier / Subject URI |
N/A (statement syntax) | Requirement Identifier (§5.2.2) | INCOSE Identifiable | Exact |
title / label |
AttributeValueString (ReqIF.Name) |
dcterms:title |
N/A | Title / Short Name | Short description | Exact |
requirement (statement text) |
AttributeValueXHTML / String (ReqIF.Text) |
dcterms:description |
EARS Pattern Template | Requirement Construct (§5.2.4) | INCOSE Singular sentence | Exact |
conformance (SHALL, etc.) |
Attribute ConformanceLevel (Enum) |
Statement verb / custom predicate | Pattern modal verb (“shall”) | Obligation keyword (“shall”, “should”) | INCOSE Conformance verb (R4) | Exact (RFC 2119) |
kind (functional/non-functional) |
SpecObjectType / Attribute Kind |
rdf:type / dcterms:type |
Pattern type | Functional / Quality requirement | ISO 25010 Classification | Exact |
category (NFR taxonomy) |
Attribute Category |
dcterms:subject |
N/A | Quality characteristic | ISO 25010 Characteristic | Exact (canonical taxonomy) |
benefit / Rationale |
Attribute Rationale / Benefit |
oslc:rationale |
Optional rationale clause | Rationale (§5.2.6) | INCOSE Justification | Exact |
derivedFrom (parent lattice) |
SpecRelation (type: derives) |
oslc_rm:derivedFrom |
N/A | Traceability relation (§5.2.7) | INCOSE Traceability | Exact |
actors (roles) |
Attribute Stakeholder / Actor |
dcterms:creator / custom |
<system> / <actor> in pattern |
Stakeholder role (§5.2.3) | Subject actor | Exact |
successCriteria[].criterion |
SpecRelation to VerificationItem / Attribute |
oslc_rm:validatedBy target / criterion |
N/A | Verification condition (§6.4) | INCOSE Verifiability (R24) | Exact |
successCriteria[].verification |
Attribute VerificationMethod (Enum) |
Property oslc_rm:verificationMethod |
N/A | Methods: Test, Inspection, Analysis, Demonstration | INCOSE Verification method | Exact (1:1 with 29148) |
dependsOn |
SpecRelation (type: dependsOn) |
oslc_rm:elaboratedBy / dependsOn |
N/A | Dependency relationship | Traceability | Exact |
status |
Attribute Status (Enum) |
oslc:status |
N/A | Lifecycle state | State model | Exact |
4. Architectural assessment: complexity, cost, and layer placement
Why nothing is adopted into bootstrap (the no-outside-concept rule)
Bootstrap (bootstrap/) is the foundational, zero-dependency substrate of the
entire folio-assistant platform. It defines the core data contracts and schemas
that every tool, harness, and workspace inherits.
- No External Dependencies: Bootstrap cannot import or depend on heavy XML parsers (for ReqIF), RDF/triple-store engines (for OSLC), or specialized NLP libraries.
- Git Hygiene and Line-Oriented Diffs: Markdown front matter (
.md) and lean JSON files (.json) produce readable, clean Git diffs on PR reviews. ReqIF XML produces massive, unreadable multi-thousand-line diffs for minor attribute changes. - Speed and Portability: Validating bootstrap schemas via Zod is nearly instantaneous in Bun or Node. It introduces zero runtime overhead.
- Conclusion: Any standard mapping or projection must live in higher layers
(
cat-harness, or a content instance above it). Injecting outside formats into bootstrap would violate the repository’s foundational architecture.
Architectural layer placement
The diagram below illustrates the strict separation of concerns across layers:
┌────────────────────────────────────────────────────────────────────────┐
│ Layer 2: Projection & Integration Adapters (tools / folio-assistant) │
│ - ReqIF Exporter/Importer (.reqif XML for DOORS, Polarion, Cameo) │
│ - OSLC-RM Linked Data Provider (JSON-LD / RDF / LDP) │
└──────────────────────────────────┬─────────────────────────────────────┘
│ maps to/from
┌──────────────────────────────────▼─────────────────────────────────────┐
│ Layer 1: Harness Validation & Quality Linters (cat-harness) │
│ - EARS Pattern Validator (checks statement regex / grammar in CI) │
│ - INCOSE Requirements Linter (flags vague words, compound sentences) │
│ - ISO 25010 NFR Category Checker (validates non-functional categories)│
│ - check:requirements gate & requirement-set adjudication │
└──────────────────────────────────┬─────────────────────────────────────┘
│ validates
┌──────────────────────────────────▼─────────────────────────────────────┐
│ Layer 0: Bootstrap Substrate (bootstrap/) │
│ - Pure Markdown Front Matter + Zod Schema │
│ - Zero outside concepts, zero external dependencies │
│ - 6-part requirement structure: id, title, statement, conformance, │
│ derivedFrom, successCriteria (test, inspection, review, analysis) │
└────────────────────────────────────────────────────────────────────────┘
5. Concrete recommendations
- Maintain Markdown Front Matter + Zod as Native Format:
- The current Markdown front matter format for requirement documents (and JSON for programmatic requirement nodes) is optimal.
- It is human-readable, machine-checkable via strict Zod schemas, and perfectly suited for Git pull request workflows.
- Do not replace the front matter format with ReqIF XML or raw OSLC RDF.
- Implement EARS Grammar Verification in
cat-harness:- Add an EARS pattern checker into
check:requirements(or as a dedicated scriptscripts/check-ears-patterns.ts). - Every
requirementstatement should be checked against the 5 EARS patterns (Ubiquitous, Event-driven, State-driven, Unwanted behavior, Optional features). - This provides immediate authoring feedback and enforces rigorous syntax without changing the underlying data schema.
- Add an EARS pattern checker into
- Standardize NFR Categories on ISO/IEC 25010:
- In
cat-harnessvalidators, enforce that for statements withkind: "non-functional", thecategoryfield belongs to the ISO/IEC 25010 quality taxonomy (security,performance-efficiency,compatibility,interaction-capability,reliability,maintainability,portability,safety).
- In
- Build Projection Adapters in Higher Layers on Demand:
- When interoperability with enterprise requirements tools is required:
- Develop
tools/reqif-adapter: convertsRequirementSetandRequirementnodes into standard OMG ReqIF 1.2 XML packages and vice versa. - Develop
tools/oslc-rm-adapter: exposes requirement graphs via OSLC-RM JSON-LD contexts mapped throughns.jsonld.
- Develop
- Keep these tools isolated from the core bootstrap package.
- When interoperability with enterprise requirements tools is required:
6. What this methodology refuses
- Refuses adopting ReqIF XML or OSLC RDF into
bootstrap/. Bootstrap must remain free of external interchange baggage. - Refuses monolithic document SRS models (IEEE 830). Requirements in this
platform are atomic, graph-addressable statements (
req:<slug>#<key>). - Refuses requirements without success criteria. A requirement without an
explicit verification method (
test,inspection,review,analysis) and criterion is unauditable and refused by CI gates. - Refuses ad-hoc NFR categories. Non-functional categories must adhere to the established ISO/IEC 25010 quality model.