-
Notifications
You must be signed in to change notification settings - Fork 0
ADR 029 Engineering Lifecycle Stages as Scope Metadata
Status: Accepted (revised 2026-05-18 to honor the methodology-neutrality axiom) Date: 2026-05-17 (original), 2026-05-18 (revised scope: optional, methodology-neutral) Deciders: Michael Zargham Related: ADR-003 Topological Framework Documented as Future Work; ADR-007 Scope as First-Class RDF Resource; ADR-021 Three Attestation Subclasses Ship in v0.1; ADR-024 Identity by Thin Projection of External Sources; ADR-030 Polycentric ASOT Authority Model; ADR-031 Attestation Status Pass Fail Deferred Deprecated; Engineering Lifecycle Stages; Analysis Layer Scope Algebra; INCOSE V2 Review; Design Spec
Systems do not come into existence ex nihilo. They emerge from engineering work that progresses through phases — stakeholder framing and requirements specification, design and development, production, utilization, support, eventual retirement. flexo-rtm should be able to assign lifecycle stage metadata to scopes (named graphs) so programs can tag where each subgraph sits in their methodology and so audit reports can reflect those tags. This was research issue #6.
An earlier framing of this ADR (2026-05-17) made lifecycle stages first-class scope metadata with a v0.2 oracle mechanism (stage-aware gate relaxation, lifecycle state machine, fall-back triggers, auto-rerun handling). Subsequent review identified that framing as violating the methodology-neutrality axiom: making engineering lifecycle stages first-class metadata on every named graph privileges one specific lifecycle vocabulary (INCOSE / ISO/IEC/IEEE 15288) over alternatives that real-world adopters use — DO-178C DAL gates in airborne software, NASA Phase A–F, ISO 9001 process gates, Agile sprint cycles, MIL-STD-498 phasing, customer-program-specific milestones, or no formal lifecycle at all. The polycentric ASOT model (ADR-030 Polycentric ASOT Authority Model) is explicit that different organizations cooperate from different methodological starting points; mandating a privileged lifecycle vocabulary would translate that diversity through one framework's lens unnecessarily.
The regression-handling concern that the earlier ADR's state-machine mechanism addressed — "later-stage scopes fall back when changes invalidate prior certifications" — is now handled more directly at the attestation level by ADR-031 Attestation Status Pass Fail Deferred Deprecated: an attestation invalidated by upstream change is marked rtm:status/deprecated with prov:wasInvalidatedBy recording the cause. That mechanism is local to the attestation, methodology-neutral, and does not require a state machine on the scope.
This revised ADR locks lifecycle stages as optional organizational-convenience metadata, with INCOSE / ISO 15288 stages documented as one example of a lifecycle vocabulary.
flexo-rtm v0.1 ships optional lifecycle stage metadata on scopes, with no state machine in the core ruleset:
-
Optional vocabulary.
rtm:lifecycleStage(object property; not required by core SHACL) onrtm:Scopeand on named-graph metadata. Range:rtm:LifecycleStage(or anyskos:Concept). Adopters tag scopes if it helps their organization; the framework does not require it. -
INCOSE / ISO 15288 as one example. The six canonical INCOSE / ISO/IEC/IEEE 15288 stage IRIs (
rtm:stage/concept,rtm:stage/development,rtm:stage/production,rtm:stage/utilization,rtm:stage/support,rtm:stage/retirement) ship in the optionalontology/lifecycle/incose.ttlmodule. Adopters using other methodologies declare their own stage vocabularies as SKOS concept schemes; the propertyrtm:lifecycleStageaccepts anyskos:Concept. - No state machine in core. The earlier v0.2 work — stage-aware gate relaxation, fall-back triggers, lifecycle state machine — is removed from the core roadmap. Programs that want stage-gate relaxation can implement adopter-specific profiles on top of their own lifecycle vocabulary. The framework does not ship that mechanism.
-
No mandatory commit-metadata capture. The earlier F4-adjacent commitment to round-trip
rtm:lifecycleStagein commit metadata becomes optional. If an adopter uses lifecycle stages, the commit metadata captures them; if not, the field is absent. -
Provenance for transitions when used. When an adopter records a stage transition, the recommended vocabulary remains
rtm:lifecycleStageTransitionwithrtm:fromStage,rtm:toStage,rtm:approvedBy,prov:atTime,prov:wasGeneratedBy. Transitions are first-class attestable events under the optionallifecycle-stage-transition-attestedprofile.
Regression handling moves to attestation status (ADR-031 Attestation Status Pass Fail Deferred Deprecated). When upstream changes invalidate a downstream claim, the affected attestation is marked rtm:status/deprecated with prov:wasInvalidatedBy referencing the change. The cert artifact surfaces deprecated attestations as T9 gaps with provenance. This mechanism is local to the attestation, methodology-neutral, and does not require any scope-level lifecycle tracking.
Forward compatibility. Adopters using the INCOSE-aligned stage vocabulary in v0.1 retain stable IRIs; any future optional gate-relaxation profile (adopter-built or shipped as a community extension) operates against the same vocabulary. The data is portable.
- Methodology-neutral. Adopters from DO-178C, NASA Phase A–F, ISO 9001, Agile, MIL-STD-498, or custom program phasing participate on the same footing as INCOSE adopters. No translation required. Polycentric ASOT compositions (ADR-030 Polycentric ASOT Authority Model) work across orgs using different lifecycle vocabularies.
- Simpler core ruleset. No state machine on scopes in v0.1 or v0.2 core. The v0.2 work on lifecycle becomes "ship the deprecation cascade detection" (ADR-031 Attestation Status Pass Fail Deferred Deprecated) — a more local, more inspectable mechanism than scope-state-machine fall-back.
- Lifecycle tags retain organizational value. Programs that do use a lifecycle vocabulary can still tag scopes for audit-report rendering, organizational reporting, and (optionally) adopter-specific profiles. The capability is preserved; just not mandatory.
-
INCOSE / ISO 15288 alignment preserved for adopters who want it. The six-stage canonical set ships in the optional
ontology/lifecycle/incose.ttlmodule withskos:closeMatchalignment (INCOSE V2 Review). Programs already organized around INCOSE can adopt it directly. - Cleaner separation of concerns. Lifecycle stages = organizational metadata. Attestation status = certification state. The two were previously entangled; they are now orthogonal.
- Programs wanting scope-level gate relaxation must build it themselves (or rely on community extensions). The framework no longer ships "T1 informational at Concept; blocking at Development." Mitigated by the gap codes being profile-aware anyway — profiles can already gate T-code severity, and adopter-specific profiles can key off whatever stage vocabulary the adopter uses.
- Adopters relying on the earlier v0.2 roadmap must migrate to the deprecation-cascade mechanism. The user-facing semantics (recertification is prompted when prior work is invalidated) are preserved; the implementation is at the attestation level rather than the scope level. Migration involves moving from "scope falls back to development" framing to "affected attestation is marked deprecated" framing.
- Slightly more vocabulary to think about if an adopter wants both lifecycle stages and attestation status. Mitigated by the two being orthogonal: lifecycle stages are optional metadata; attestation status is core.
-
The vocabulary IRIs (
rtm:lifecycleStage, the six INCOSE-aligned stage IRIs, transition events) are stable. Earlier-tagged data is forward-compatible. The change is in what the framework requires (now: nothing) and what it ships as core mechanism (now: nothing on lifecycle; deprecation cascade is on attestations per ADR-031 Attestation Status Pass Fail Deferred Deprecated). - The INCOSE V2 review (INCOSE V2 Review) reframes lifecycle stages as one SE-content contribution among many; INCOSE remains an example, not the canonical thing.
- Keep lifecycle stages as first-class scope metadata with the v0.2 state machine. Rejected. Violates the methodology-neutrality axiom. Privileges INCOSE / ISO 15288 over equally legitimate alternatives. Adds significant core complexity for a regression-handling concern that is better solved locally at the attestation level.
- Ship multiple privileged lifecycle vocabularies in core (INCOSE + DO-178C + NASA + Agile + ...). Rejected. Still privileges some over others. Forces the framework to be opinionated about which methodologies "count." Adds vocabulary bloat without resolving the underlying coupling.
- Drop lifecycle vocabulary entirely. Rejected. Programs that want to tag scopes for organizational purposes lose a useful capability. The right level is optional: vocabulary present, requirement absent.
- Keep the v0.2 state machine but make the lifecycle vocabulary itself pluggable. Rejected as the worst of both worlds — preserves the complexity of the state machine while adding the complexity of vocabulary pluggability. The simpler resolution is to move regression handling to the attestation level (per ADR-031 Attestation Status Pass Fail Deferred Deprecated) and let lifecycle vocabularies be plain optional metadata.
-
Introduce parallel
flexo-rtm-specific sub-stages (e.g.,exploratorybefore Concept,requirements-specificationbetween Concept and Development). Rejected per research issue #8. The INCOSE handbook and ISO/IEC/IEEE 15288 define the canonical six stages; the Concept stage explicitly includes early framing and requirements-specification activities. Inventing parallel sub-stages would reinvent rather than reuse existing standards. With the v0.18 revision making lifecycle vocabulary optional, this rejection is even more emphatic — there is no privileged stage vocabulary to extend.
-
Vocabulary location:
ontology/lifecycle/incose.ttl(optional module; not imported by core). The six stage IRIs, thertm:LifecycleStageclass,rtm:lifecycleStageTransition,rtm:fromStage,rtm:toStage, etc. -
Core ontology (
ontology/core.ttl) definesrtm:lifecycleStageas a property withskos:Conceptrange so any adopter-defined vocabulary slots in. No required values; no state-machine SHACL shapes. -
Adopter-built profiles. A program that wants "T1 informational at Concept stage" can ship a custom SHACL profile that queries
rtm:lifecycleStageand conditionally relaxes T1 severity. The framework provides the substrate (thertm:lifecycleStageproperty, scope-as-first-class-RDF, the gap-code vocabulary); the policy is the adopter's. -
Regression handling. See ADR-031 Attestation Status Pass Fail Deferred Deprecated for the canonical mechanism (attestation deprecation cascade with
prov:wasInvalidatedByprovenance). The v0.2 work scope on lifecycle becomes: ship the deprecation cascade detection, support optional lifecycle tagging, retire the scope-state-machine concept from the roadmap. - Page updates. Engineering Lifecycle Stages is reframed to "optional pattern + INCOSE as one example"; INCOSE V2 Review reframes lifecycle stages as one SE contribution; Analysis Layer Scope Algebra downgrades the lifecycle subsection to optional; Storage Layer Flexo Conventions notes the commit-metadata capture as optional.
- Design Spec §5 (Three-Layer Architecture and scope semantics), §9.A.1 F4 (scope metadata round-trip; lifecycle stage is now optional)
- ADR-031 Attestation Status Pass Fail Deferred Deprecated — the mechanism that replaces the scope-level state machine for regression handling
- ADR-030 Polycentric ASOT Authority Model — the polycentric framing that motivates methodology-neutrality (different orgs use different methodologies; the framework cooperates across)
- Engineering Lifecycle Stages — canonical documentation of the optional lifecycle primitive
-
Analysis Layer Scope Algebra —
rtm:Scopeas a first-class RDF resource; the (optional) subject ofrtm:lifecycleStage -
INCOSE V2 Review — INCOSE handbook contribution to
flexo-rtm; lifecycle stages as one example among many - Storage Layer Flexo Conventions — optional commit-metadata round-trip for lifecycle stage
- Verifiable Self-Certification — the structural-locality property the attestation-deprecation cascade exercises
- Transcript Replay Semantics — the per-fact replay path the deprecation-cascade detection dispatches over
- Gap Taxonomy — extended with T9 (deprecated attestation) and T10 (deferred attestation) per ADR-031 Attestation Status Pass Fail Deferred Deprecated
- Federated Audit and Composition — composition-scale criteria can optionally reference lifecycle stages when both composing parties use them
- ADR-003 Topological Framework Documented as Future Work — the research-phase deferral this remains distinct from
- INCOSE Systems Engineering Handbook + ISO/IEC/IEEE 15288 — one example lifecycle vocabulary, not the canonical one
- Closes flexo-rtm-research issue #6 (Engineering Lifecycle as first class concept) — revised: stages are optional metadata, methodology-neutral
- Closes flexo-rtm-research issue #8 (Don't force exploratory stage) — INCOSE/ISO 15288 stages are the example when used; never forced
- Flexo Git Coexistence
- ADCS Prototype Lessons
- MVC Pattern from RIME TRL ANT
- Human-AI Accountability
- Multi-Agent Discourse Graph Precedent
- OSLC RM and QM Review
- INCOSE V2 Review
- OMG SysMLv2
- PROV EARL GSN P-PLAN
- Dragon Architecture and Mission Enterprise
- Traditional Forward and Backward Analysis
- Attestation Infrastructure in v0.1
- Identity Boundaries and Policy Projections
- External URI References
- Signed Envelopes and Established Standards
- Aspect Coverage with Adequacy and Sufficiency
- Federated Audit and Composition
- Certification Predicate
- Gap Taxonomy
- Quantitative Outcomes
- Engineering Lifecycle Stages (v0.2)
- Topological Framework Future Work (research phase)
- Vertices Edges Faces (research phase)
- Three-Layer Architecture
- Operational Layer UX Discipline
- Storage Layer Flexo Conventions
- Analysis Layer Scope Algebra
- OSLC Roundtrip Acceptance
- Identity Adapter Contract
- Flexo REST Binding
- SysMLv2 Ingestion Contract
- External URI Rules
- Signed Envelope Shapes
- Parsimony Manifest
- Lossless Roundtrip Definition
- Vendor Extension Carry-Through
- OSLC RM Adapter Contract
- OSLC QM Adapter Contract
- ADR Template
- ADR-001 Foundations First Approach
- ADR-002 SysMLv2 Anchoring
- ADR-003 Topological Framework Documented as Future Work
- ADR-003a v0.1 Ships Traditional Analysis Only
- ADR-004 Quantitative Certification Outcome
- ADR-005 Adequacy and Sufficiency as Guidance Subtypes
- ADR-006 Three-Layer Architecture
- ADR-007 Scope as First-Class RDF Resource
- ADR-008 Repo Name and Org Transfer Plan
- ADR-009 Two-Repo Strategy
- ADR-010 OSLC-RM and OSLC-QM in v0.1
- ADR-011 Lossless Criterion A plus C
- ADR-012 Direct RDF Properties over Reified Edges
- ADR-013 Simplicial Complex as Derived View When Built
- ADR-014 Parsimony Layer Build-Time Extraction
- ADR-015 GSN Adoption for Adequacy and Sufficiency
- ADR-016 Composable SHACL Profiles
- ADR-017 knowledgecomplex as Optional Extras
- ADR-018 V minus F Invariant Deferred with Topological Framework
- ADR-019 Derived Binary View from Quantitative Metrics
- ADR-020 Vocabulary Alignment with Zargham 2026
- ADR-021 Three Attestation Subclasses Ship in v0.1
- ADR-022 External URI References as Open-Source Foundation
- ADR-023 Cryptography by Composition of Battle-Tested Standards
- ADR-024 Identity by Thin Projection of External Sources
- ADR-025 Reproducibility is Structural and Local
- ADR-026 Cryptographic Agility via Algorithm Profiles
- ADR-027 Bit-Exactness vs Numerical Tolerances Are Both First-Class
- ADR-028 Scope-Level Adequacy and Sufficiency for Federated Audit
- ADR-029 Engineering Lifecycle Stages as Scope Metadata
- ADR-030 Polycentric ASOT Authority Model
- ADR-031 Attestation Status Pass Fail Deferred Deprecated
- ADR-032 Methodology Agnosticism as Foundational Axiom
- ADR-033 Generalized ASOT Principle for All Identified Things