Skip to content

v5.0.0 — ReqIF lifecycle retirement (breaking)

Latest

Choose a tag to compare

@transitrix transitrix released this 31 Aug 09:54
· 21 commits to main since this release
f35fdf7

[5.0.0] — 2026-08-31

Bump category: MAJOR — two breaking changes ride in this release: the ReqIF package's lifecycle commands/rules are removed, and the FGCA-008..014 rule codes (deprecated in favor of DGCA-REPO-008..011) are retired. Every additive change accumulated since 4.2.0 rides along. Migration recipe: migrations/4.2-to-5.0/.

Added

  • DGCA-REPO-008..011 — renamed repo-scope rules, formerly FGCA-008..011. The codes print DGCA-REPO-008 (GOAL's missing DRIVER), DGCA-REPO-009 (CHANGE's missing GOAL), DGCA-REPO-010 (ACTION's missing CHANGE), DGCA-REPO-011 (ACTION's missing GOAL) (notations/vocabulary.yaml, notations/views/diagrams/02-dgca.md § Cross-element validation rules).
  • Zone enumeration validation (CONTRACT §6.5) — every file is validated or reported. The validator now reports on zones as a whole, not only on files it can parse. Every file under canon/, field/, and codex/ (outside the sources/ archival subfolder) must be either a YAML artefact with a complete admission record, or formally reported as unenumerated. New validation rules: ZONE-001 (unenumerated file), ZONE-002 (non-YAML syntax error), ZONE-003 (contradictory admission+format), ADMIT-012 (admission record in sources/). Fixtures and worked examples demonstrating all cases: notations/examples/zone-enumeration/. (transitrix-hq#455)
  • Validator coverage and code publication contract (notations/CONTRACT.md §18) — documents which notations are validated and which are skipped (e.g., BPMN is skipped pending implementation, while DGCA and goal elements are validated). Establishes the rule that every validation code the validator may emit must appear in a published specification table (either CONTRACT.md for shared codes or the notation's own spec for notation-specific codes). Specifies that skipped notations must be explicitly reported in validator output (not silently omitted), with counts showing "files examined" ≥ "files validated" + "files skipped". Enables adopters to understand validator coverage gaps and prevents silent omission of unsupported notations. (transitrix-hq#448)
  • Products Catalogue projection formnotations/views/diagrams/09-products.md adds full support for projection-form authoring alongside the existing inline form. A products catalogue can now be authored with a view_config block that selects PRODUCT elements from canon/elements/02_business/products/, allowing filtering by type, domain, owner_role, and custom extensions (e.g., pricing models). The inline form remains valid; promotion to projection form is optional until cross-document sharing requires it. New validation rules PROD-001..010 and view_config defaults documented. Notation version bumped to 0.2, status to documented. Purely additive — a repository with products-catalogues in inline form validates as before. (transitrix-hq#436)
  • ORGANIZATION — a motivation-layer element type for the organisation's own statement of itself — its name, mission, vision, and background. Carries the organisation's stated intent (mission, vision) as canonical elements rather than product configuration. At most one valid ORGANIZATION may exist in a catalogue at any point in time (time-aware: a mission restatement is a new element with a new valid_from date). Placement: canon/elements/01_motivation/organizations/ORGANIZATION-<SLUG>-1.yaml. Schema: ELEMENT_PRIMITIVES.md §7.31. Validation: ORG-001 (at most one valid per date), ORG-002 (must have mission or vision). Purely additive — a repository without an ORGANIZATION element validates as before. (transitrix-hq#410, #444)
  • DGCA-021 — a new warning-severity validation rule (notations/views/diagrams/02-dgca.md § Validation rules). Emitted when an action carries both a direct goals[] link and a delivers_changes[] link where at least one goal is reachable via the changes — i.e., the direct link duplicates a goal the action reaches through the change layer. The direct link is reserved for cases where the change layer adds no new goals; when both paths exist to the same goal, the direct link is redundant. Does not fire in DGA mode (changes layer off) where direct goal links are required. Rule code reserved for future cross-element extension. Worked fixture: examples/dgca/goal-link-duplicate-warning.dgca.transitrix.yaml. Purely additive — an existing DGCA document without this pattern validates as before. (#451)
  • Goal-scoped DGCA projections — specification and caption contract (notations/views/diagrams/02-dgca.md §"Goal-scoped projections and reachability"). Goal-scoped projections with goals.filter: ids or goals.filter: tags are not required to close under action→goal references. An action is included because it serves at least one selected goal; other goals on that action remain in the catalogue and are omitted from this picture (not missing). The same reading applies to DGCA-008 / DGCA-009 in projection form: a driver or change outside the selected set is omitted, not an error. Validation rules DGCA-008, DGCA-009, and DGCA-011 now distinguish inline vs projection "defined" semantics. A derived caption renders above the diagram when the condition holds: "This diagram is shown for the selected goal scope. Actions on it may also serve goals outside that scope." The caption is render output, not authored text. New subsection answers the key adopter question "Why weren't all goals shown for this action?" with a sourced answer an agent can cite directly. Worked example: examples/dgca/goal-scoped-projection-omitted-goals.dgca.transitrix.yaml. Purely additive — an existing DGCA document with closed projections validates as before. (transitrix-hq#479)
  • guides/adoption-health-profile.md — a framework to measure how effectively a Transitrix adoption is working in practice. The profile defines five instrumental indicators (validity, coverage, freshness, assertion-queue age/drain, connectedness) calculated from two independent records each — the measure cannot be faked without doing the work. Denominator rule makes the blind spot explicit: every file is classified as read/out-of-scope/unread-marker/foreign, qualifying every coverage number that follows. Three properties: the adopter measures themselves and we do not collect; no norm from us beyond their declared scope; every result is a reconciliation of two independently produced records. Specification closes or defers each of four design questions (phase detection, survey questions, computation home, cross-adopter benchmarking). Purely additive — a repository without adoption-health measurement infrastructure validates as before. (#391)
  • transitrix/skills/health-profile/ — the Skill implementation of the adoption-health profile's instrumental layer (computation home: Skill / Claude Code agent procedure). Runs node scan.mjs to scan a repository's model files, computes five indicators with precision and diagnosis readings from two independent sources each, and produces a markdown report showing file classification (denominator), indicator values, and actionable findings. Proof-of-concept scan of transitrix/methodology shows 201 read files, zero unread-marker files (no actionable gaps), 40 foreign files, and 100% file freshness. Deferred items from the spec remain: phase detection (workflow-dependent), full queue/connectedness computation, survey instrument, cross-adopter benchmarking. Report does not fail the build; validator treats it as informational only.
  • DGCA chain-view action-scoped selector (notations/views/diagrams/02-dgca.md): view_config can now anchor the projection on actions (work-package subtrees) in addition to goals. Goal-scoped mode (default, top-down) selects goals and derives changes and drivers downward; action-scoped mode (new, bottom-up) selects actions and derives goals and drivers upward from the change links. Symmetrical interface: actions.filter / actions.ids / actions.tags parallel goals.filter / goals.ids / goals.tags; modes are mutually exclusive. Enables the "delivery chain of an initiative" view (what drives it, what it changes, what it contains) without goal approximation. Validation rules DGCA-019..020 enforce mode exclusivity. Worked example added. (transitrix-hq#456)

Removed

  • BREAKING: ReqIF package's workflow-state, revision-history, and suspect-link commands and validators are removed. The transitrix-reqif transition, revise, history, and suspect commands are deleted; validation rules REQIF-008 and REQIF-009 are removed from the rule table (§5). The package's own lifecycle surface is deprecated in favor of core's agreement axis (CONTRACT.md §6.3); a spec-object admitted into canon now carries its lifecycle state through core's agreement field, not through the package. Foreign workflow_state, revision, revisions, and recorded_target_revision fields arriving via ReqIF import are preserved as inert document metadata and round-trip unchanged; the package does not manage or validate them. notations/packages/reqif.md §2.9 is rewritten to clarify what remains. Migration: (1) remove any direct use of the four deleted commands; (2) for spec-object instances that will become core elements, use core's agreement axis (CONTRACT.md §6.3) to record lifecycle once admitted; (3) the recorded_target_revision field on spec-relation may be kept or removed — it is inert and round-trips either way. See migrations/4.2-to-5.0/.
  • BREAKING: FGCA-008..014 rule codes retired. FGCA-008..011 (superseded by DGCA-REPO-008..011, above) and FGCA-012..014 (unreferenced driver/goal/change warnings, removed without replacement — a future aggregate coverage observation supersedes the per-element findings, not yet implemented) are no longer recognized codes. Historical mapping recorded in notations/vocabulary.yaml deprecated_rule_codes. See migrations/4.2-to-5.0/.

Fixed

  • Feedback register restructured as a directory. method/06-team-operations.md §3.2 now specifies the feedback register as operations/feedback/ (a directory) containing the journal feedback.md and optional dated attachment folders for findings with images. Single-file journal remains the default for single-writer teams; multi-writer variants (per-author files or gitignored journals) are permitted with documented ID-allocation schemes. Scrub gate expanded to cover images: screenshots are model content and must be anonymised before attachment. Skills (onboard, feedback) updated to handle both old (operations/feedback.md) and new (operations/feedback/feedback.md) layouts without creating parallel registers. (transitrix-hq#461)
  • Products Catalogue ID grammar unified with registry. notations/views/diagrams/09-products.md now references the canonical TYPE PRODUCTS_CAT in the field table (matching IDS_AND_REFERENCES.md registry and the pattern used by Capability Map), and the worked example corrects the catalogue ID from PROD-CAT-001 (invalid leading zero on terminal integer) to PROD-CAT-ENTERPRISE-1. (transitrix-hq#458)
  • DGCA chain-view spec (notations/views/diagrams/02-dgca.md) now uses the correct field name action.delivers_changes (matching the ACTION element schema and Studio implementation) instead of the incorrect action.changes. Updated in the projection-form example, view_config defaults, view_config keys documentation, inline actions[] field table, and validation rule DGCA-010. Inline actions in DGCA documents using changes: remain valid but should migrate to delivers_changes:. (transitrix-hq#452)
  • tools/lint.py validates inline element field references (parent, goals, delivers_changes, predecessors, owner_role): a missing target or a non-string ID is an error, same grain as relation from/to.
  • notations/views/diagrams/04-goals.md — goal tree level 0 description clarified. §7.1 table no longer describes level 0 as the organisation's vision (which moved to ORGANIZATION element type); level 0 is now described as the top goal.
  • @transitrix/ingest-cli — PII-004 detector no longer matches ISO 8601 dates as phone numbers. The detector split into email-shape and phone-shape validators; phone-shaped matches with YYYY-MM-DD pattern are rejected, matching the Luhn-validation discipline of PII-005. ISO dates are reported as CLEAN; genuine phone tokens and emails still match.