[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, formerlyFGCA-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/, andcodex/(outside thesources/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 insources/). 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 form —
notations/views/diagrams/09-products.mdadds full support for projection-form authoring alongside the existing inline form. A products catalogue can now be authored with aview_configblock that selects PRODUCT elements fromcanon/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 rulesPROD-001..010and 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 validORGANIZATIONmay exist in a catalogue at any point in time (time-aware: a mission restatement is a new element with a newvalid_fromdate). 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 anORGANIZATIONelement 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 directgoals[]link and adelivers_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 withgoals.filter: idsorgoals.filter: tagsare 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 toDGCA-008/DGCA-009in projection form: a driver or change outside the selected set is omitted, not an error. Validation rulesDGCA-008,DGCA-009, andDGCA-011now 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). Runsnode scan.mjsto 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 oftransitrix/methodologyshows 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_configcan 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.tagsparallelgoals.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 rulesDGCA-019..020enforce 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, andsuspectcommands are deleted; validation rulesREQIF-008andREQIF-009are 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); aspec-objectadmitted into canon now carries its lifecycle state through core'sagreementfield, not through the package. Foreignworkflow_state,revision,revisions, andrecorded_target_revisionfields 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) forspec-objectinstances that will become core elements, use core's agreement axis (CONTRACT.md§6.3) to record lifecycle once admitted; (3) therecorded_target_revisionfield onspec-relationmay be kept or removed — it is inert and round-trips either way. Seemigrations/4.2-to-5.0/. - BREAKING:
FGCA-008..014rule codes retired.FGCA-008..011(superseded byDGCA-REPO-008..011, above) andFGCA-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 innotations/vocabulary.yamldeprecated_rule_codes. Seemigrations/4.2-to-5.0/.
Fixed
- Feedback register restructured as a directory.
method/06-team-operations.md§3.2 now specifies the feedback register asoperations/feedback/(a directory) containing the journalfeedback.mdand 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.mdnow references the canonical TYPEPRODUCTS_CATin the field table (matchingIDS_AND_REFERENCES.mdregistry and the pattern used by Capability Map), and the worked example corrects the catalogue ID fromPROD-CAT-001(invalid leading zero on terminal integer) toPROD-CAT-ENTERPRISE-1. (transitrix-hq#458) - DGCA chain-view spec (
notations/views/diagrams/02-dgca.md) now uses the correct field nameaction.delivers_changes(matching the ACTION element schema and Studio implementation) instead of the incorrectaction.changes. Updated in the projection-form example, view_config defaults, view_config keys documentation, inlineactions[]field table, and validation ruleDGCA-010. Inline actions in DGCA documents usingchanges:remain valid but should migrate todelivers_changes:. (transitrix-hq#452) tools/lint.pyvalidates 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 relationfrom/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 toORGANIZATIONelement 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 withYYYY-MM-DDpattern are rejected, matching the Luhn-validation discipline of PII-005. ISO dates are reported as CLEAN; genuine phone tokens and emails still match.