# EM-STR-01 — Frozen Semantic Audit (final, no-tools, single pass) ## 1. Verdict on decision and artifacts **Decision: ACCEPTED as settled.** The four-root split with a non-authoritative Strategic Scenario is correct and survives both acceptance cases in the admitted evidence. Strategy (choice), Business Model (mechanism) and Value Stream (recipient value-state) have distinct masters, distinct change drivers and distinct review triggers; the channel-shift case changes mechanism and possibly stages while leaving the choice set standing, and the segment-exit case retires a mechanism and a stream while restating the choice set only if the market was a named choice. No merge of any pair reproduces that behaviour. Strategic Scenario's independent identity is justified by multi-strategy citation and branch-without-bump reuse; its non-authoritative profile is justified because a versionable hypothesis space that could master facts is a laundering channel. Strategic Theme and Value Proposition correctly have revisions but no authority, mandate or independent lifecycle, and are therefore contained, not roots. Reuse of WM-KNW-011, WM-ACT-030, WM-KNW-010, WM-ACT-024 and WM-REC-010 by reference is correct; Capability (WM-ACT-001) and Process/Workflow (WM-ACT-003) correctly remain legacy-only completion dependencies with declared, unenforceable edges; Outcome and Benefit Realization correctly remains a separate identifier-unassigned candidate. **Artifacts: ACCEPTED WITH MATERIAL DEFECTS — not conformant as submitted.** The four allocation candidates correctly hold `modelId: null`, `registryId: null`, `allocationState: "unassigned"`, `canonicalPublishable: false` and non-empty holds, and each meets its stated minima. However the artifact set **violates the audited boundary in a way the artifacts' own validation policies cannot detect**: five referent identifiers appear that are outside the admitted reuse set, one of them pre-empting the EM-STR-02 allocation; the three decision referents are collapsed into one field; the contained records have no identity or schema, so the containment invariants are unenforceable; the Scenario non-authoritative profile exists only as prose invariants with one textual loophole; and the prior fixture set is non-conformant to the required fixture shape. These are remediable deterministically without reopening the boundary. **No identifier is allocated. `boundary_decision` remains pending registry allocation. No crosswalk, mastership confirmation, installability or publication-readiness claim is made or implied by this audit.** **Adjudicated disagreement:** Grok's invariant 2 admits an "explicit none-considered rationale" as an alternative to an attached rejected alternative. The initial study (invariant 1), the local synthesis (invariant 1) and the settled boundary ("Strategy owns choices, rejected alternatives…") all require an actual rejected alternative. The study's stated reason is decisive on the admitted evidence: a choice with no excluded option is indistinguishable from a project list, which is exactly the negative case both Grok and the study reject. **Grok's escape hatch is rejected**; `excludedChoices` stays required and non-empty. All other Grok positions are consistent with the settled boundary and are admitted. --- ## 2. Material defects and exact deterministic remediation **D1 — Unadmitted referent identifiers in four artifacts.** `WM-ORG-001`, `WM-ECO-021`, `WM-ECO-002` (business-model), `WM-MAT-008` (value-stream, strategic-scenario) and `WM-KNW-007` (strategic-scenario) are outside the admitted reuse set `{WM-KNW-011, WM-ACT-030, WM-KNW-010, WM-ACT-024, WM-REC-010}` and the legacy-only set `{WM-ACT-001, WM-ACT-003}`. The study itself classes party, offer/product and metric as declared-unallocated. These are unverified identifiers asserted as reference targets. **Remediation:** in every `boundary.references` entry whose `target` is not in the admitted or legacy sets, replace the entry with exactly `{"target":null,"targetState":"declared-unallocated","purpose":"","enforceable":false}`. Do not substitute any other identifier. Applies to 5 entries: business-model (3), value-stream (1), strategic-scenario (2 — see also D8). **D2 — Strategy omits WM-ACT-024 and collapses three decision referents into one field.** `boundary.references` lists WM-KNW-011, WM-ACT-030, WM-KNW-010, WM-REC-010 but not WM-ACT-024, while `StrategyRelease.required` carries a single `decisionRef`. The settled boundary requires the approval occurrence, the rationale and the issued expression to be three distinct referents; one field cannot carry authority basis, rationale and finality without restating one inside another. **Remediation:** add `{"target":"WM-ACT-024","purpose":"Approval occurrence"}` to Strategy `boundary.references`. Replace `"decisionRef"` in `StrategyRelease.required` with exactly `"rationaleRef","approvalActivityRef","issuedRecordRef"`, bound respectively to WM-KNW-010, WM-ACT-024, WM-REC-010. **D3 — Business Model omits the rationale and approval-occurrence referents; Scenario reference purposes do not bar authority transfer.** Business Model references WM-REC-010 only ("Authorizing decision"), so a mechanism successor can be released with a fixed expression and no recorded rationale or approval occurrence. Strategic Scenario references WM-REC-010 as "Approval decision" with no statement that approval publishes a hypothesis space rather than authorizing its content. **Remediation:** add `{"target":"WM-KNW-010","purpose":"Decision rationale"}` and `{"target":"WM-ACT-024","purpose":"Approval occurrence"}` to Business Model `boundary.references`. In strategic-scenario, change the WM-REC-010 purpose string to exactly `"Publication of hypothesis space; confers no source-of-record status"` and add `"authorityTransfer":false` to that entry. **D4 — Profile candidate is mislabelled and unvalidated.** `profile-candidate.json` declares `"decision":"PROFILE"` over five bases while every listed constraint constrains the *new* candidates, not the bases. A profile with no base-level constraint is a reuse-by-reference, and mislabelling it asserts a restriction on bases that are themselves non-canonical drafts (WM-KNW-011/010/024 Claude-only under owner waiver, WM-ACT-030 Codex-only). The artifact also has no validation policy and no fixtures. **Remediation:** set `"decision":"REUSE_BY_REFERENCE"`, rename `"bases"` to `"referencedBases"`, add `"baseLevelConstraints":[]`, add `"baseSpecificationState":"non-canonical-draft"`. Add `candidate-allocation-offline-strategy/profile-validation-policy.json` with `{"format":"vercy-allocation-validation/v1","requirements":{"newRuntimeIdMustBeFalse":true,"referencedBasesMustBeAdmitted":true,"baseLevelConstraintsMustBeEmptyUnlessDecisionIsProfile":true,"requiresConstraintAttribution":true}}`. **D5 — Strategic Scenario non-authoritativeness is prose-only; lifecycle states can imply authority.** The non-authoritative profile is the single highest integrity risk in the contour (Grok's own blocker list says so) and is held only by invariants. `"approved"`, `"published"` and `"active"` are indistinguishable from authoritative-release states to any consumer. **Remediation:** add to the strategic-scenario `identityTest` object exactly `"authoritativeness":{"sourceOfRecord":false,"mayMasterActuals":false,"mayMasterBaselines":false,"mayMasterOutcomes":false,"mayMasterBenefits":false,"authorityTransferOnCitation":false}`. Append the invariant `"Lifecycle state never confers source-of-record status."` Add to `validation-policy.json` for this candidate `"requiresNonAuthoritativeBlock":true`. **D6 — "silently" loophole in a Scenario invariant.** `"Scenario output never becomes target baseline silently."` admits an explicit, documented promotion path. The settled boundary bans it absolutely: the scenario "never masters actuals, baselines, outcomes or benefits". **Remediation:** replace that invariant string with exactly `"Scenario output never becomes a target baseline under any promotion path, documented or otherwise."` **D7 — Value Stream claims ownership of an unenforceable binding and flags legacy-only references only in prose.** `owns` contains `"realization bindings"` and `references` lists WM-ACT-003 and WM-ACT-001 with no machine-readable state, while the boundary holds both as legacy-only completion dependencies. Ownership of an edge that cannot be enforced invites silent promotion. **Remediation:** change the `owns` entry `"realization bindings"` to exactly `"declared realization binding assertions (non-enforceable)"`. Add to both the WM-ACT-003 and WM-ACT-001 reference entries exactly `"specificationState":"legacy-only","enforceable":false,"boundaryReview":"migration-boundary-review"`. **D8 — Value Stream pre-empts the EM-STR-02 allocation.** `{"target":"WM-MAT-008","purpose":"Outcome observation"}` asserts an outcome-observation master while Outcome and Benefit Realization is a separate identifier-unassigned candidate. The same target appears in strategic-scenario as "Observation comparison". **Remediation:** replace both entries with exactly `{"target":null,"targetState":"identifier-unassigned","purpose":"Outcome and Benefit Realization (EM-STR-02)","enforceable":false}`. Add to both candidates the invariant `"The Outcome and Benefit Realization referent is unallocated and is never silently promoted."` **D9 — Contained records have no identity and no schema; containment invariants are unenforceable.** `StrategyRelease.themes`, `BusinessModelRelease.valuePropositions` and `ValueStreamVersion.stages` are bare fields. Nothing enforces "a theme without a containing Strategy is invalid", "a Value Proposition is contained by exactly one Business Model at a time", or the Value Stream invariant "entry and exit criteria are explicit". **Remediation:** add to strategy `objects` exactly `"StrategicTheme":{"identity":["strategyId","version","themeKey"],"containedBy":"StrategyRelease","required":["intent","choiceRefs"],"optional":["alignmentAnchor"],"independentLifecycle":false}`. Add to business-model `objects` exactly `"ValueProposition":{"identity":["businessModelId","version","propositionKey"],"containedBy":"BusinessModelRelease","required":["segmentRef","channelRef","benefitClaim"],"optional":["jobRef","painRef","gainRef","alternativeDisplaced"],"independentLifecycle":false,"maxContainers":1}`. Add to value-stream `objects` exactly `"Stage":{"identity":["valueStreamId","version","stageKey"],"containedBy":"ValueStreamVersion","required":["recipientValueState","entryCriteria","exitCriteria","sequenceIndex"],"optional":["declaredRealizationRefs"],"independentLifecycle":false}`. Move `themes` from `optional` to `required` in `StrategyRelease` only if at least one theme exists; otherwise leave optional and add the invariant `"A theme exists only within a Strategy release."` **D10 — Cross-boundary invariant misplacement and incomplete exclusion lists.** Strategy carries `"Forecast never becomes observed outcome by relabelling."` although Strategy owns neither forecasts nor outcomes (forecasts stay inside Scenario; Strategy excludes outcomes and benefits). Each `excludes` list is also under-specified against the settled boundary. **Remediation:** delete that string from the Strategy invariants (it is already present in strategic-scenario) and add to Strategy exactly `"Strategy never records a forecast, an observed outcome or a realized benefit."` Then append to `boundary.excludes`: strategy — `"benefit realization","forecast","scenario projection","value mechanism","recipient value-state stage"`; business-model — `"strategy choice set","recipient value-state stage sequence","strategic scenario","observed outcome","benefit realization"`; value-stream — `"value mechanism","strategy choice set","strategic scenario"`; strategic-scenario — `"value mechanism","recipient value-state stage","initiative","strategic theme","value proposition"`. **D11 — Alignment basis is asserted as an invariant with no field to carry it and no forbidden-basis set.** Strategy invariant `"Alignment requires attributable basis."` has no corresponding structure, so membership, tag or budget line satisfies it by default. **Remediation:** add to `StrategyRelease.optional` exactly `"alignmentAssertions"`, and add to strategy `objects` exactly `"AlignmentAssertion":{"identity":["strategyId","version","assertionKey"],"required":["targetRef","basis","basisKind"],"basisKindEnum":["rationale","evidence","decision"],"forbiddenBasis":["tag","budgetLine","portfolioMembership","reportingLine"]}`. **D12 — No version non-coupling rule between the roots.** Grok lists this as an open blocker. Without an explicit rule, a Business Model successor can be read as requiring a Strategy successor, which collapses the change drivers the split exists to separate. **Remediation:** add to all four candidates exactly `"versionCoupling":{"coupled":false,"linkedBy":["WM-ACT-024","WM-REC-010"],"sharedBaseline":false}` at the top level of `boundary`, and add the invariant `"A successor release of one root never compels a successor release of another; cross-root change is linked only by reference."` **D13 — Business Model makes revenue and cost logic optional while claiming to own the value mechanism.** `boundary.owns` includes "revenue and cost logic" and the mechanism is defined to include capture logic ("who pays, exchange logic, channel economics"), yet `revenueLogic` and `costLogic` are `optional`. A release can therefore claim mechanism mastership with no capture logic, which is exactly the organization/offer conflation the invariants forbid. **Remediation:** move `"revenueLogic"` and `"costLogic"` from `BusinessModelRelease.optional` to `BusinessModelRelease.required`. **D14 — Immutability is unenforceable: `contentDigest` has no algorithm, canonicalization or scope.** All four candidates assert immutable releases and require `contentDigest`, but no digest specification exists, so "released versions are immutable" cannot be checked. **Remediation:** add to each of the four candidates at the top level exactly `"digest":{"algorithm":"sha-256","canonicalization":"RFC 8785 JSON Canonicalization Scheme","scope":"the full release or version object with the contentDigest field removed"}`, and to each `validation-policy.json` `"requiresDigestSpecification":true,"requiresImmutabilityCheckOnReleasedStates":true`. **D15 — The 16 prior fixtures are non-conformant and not linked to invariants.** Every prior case carries only `id`, `kind`, `input`, `expect`. None carries `target`, `violates` or `closesDefect`, and no negative carries `expectedCode`, so no prior fixture can be mechanically attributed to an invariant or a failure code. **Remediation:** migrate all 16 in place to the shape `{id, target, kind, input, expect, violates, closesDefect, expectedCode?}` by the following deterministic rule — `target` = the file's `candidateName`; `violates` = for negatives, the verbatim invariant string from the same candidate that the case breaches, and for positives the literal `"none (exercises: )"`; `closesDefect` = `"D0-baseline"`; `expectedCode` for the eight negatives = `project-list` → `EMSTR01-CHO-002`, `forecast-as-fact` → `EMSTR01-AUTH-002`, `organization-collapse` → `EMSTR01-BND-003`, `proposition-offer` → `EMSTR01-BND-004`, `process-collapse` → `EMSTR01-BND-002`, `completion-benefit` → `EMSTR01-AUTH-002`, `actual-feed` → `EMSTR01-AUTH-002`, `baseline-mutation` → `EMSTR01-AUTH-002`. Add `"fixtureShapeVersion":"vercy-enterprise-allocation-fixtures/v2"` to each fixtures file. **D16 — The four validation policies are byte-identical and cannot detect D1, D5, D14 or D15.** They check identifier nullity and minima only. Nothing constrains reference targets to the admitted set, requires `canonicalPublishable: false`, requires non-empty holds, or requires error codes on negatives — which is why the five unadmitted identifiers passed. **Remediation:** add to all four `requirements` blocks exactly `"admittedReferenceTargets":["WM-KNW-011","WM-ACT-030","WM-KNW-010","WM-ACT-024","WM-REC-010","WM-ACT-001","WM-ACT-003"]`, `"unadmittedReferenceTargetsMustBeNull":true`, `"canonicalPublishableMustBeFalse":true`, `"requiresNonEmptyHolds":true`, `"negativeFixturesRequireExpectedCode":true`, `"minimumPositiveFixtures":4`, `"minimumNegativeFixtures":4`, `"forbidsPublicationReadinessClaim":true`, `"requiresContainedObjectIdentity":true`, `"requiresVersionCouplingStatement":true`. **D17 — Divergence on the rejected-alternative requirement left unresolved in the artifacts.** Grok's invariant 2 permits a "none-considered rationale" in place of a rejected alternative; the artifact requires `excludedChoices`. The artifacts record no adjudication, so a later reader may apply the weaker rule. **Remediation:** keep `"excludedChoices"` in `StrategyRelease.required` and add the invariant `"excludedChoices is non-empty; a none-considered rationale does not satisfy this invariant."` Add to the strategy artifact a top-level `"adjudications":[{"source":"grok","item":"none-considered rationale as alternative to rejected alternatives","disposition":"rejected","basis":"indistinguishable from the rejected project-list case"}]`. --- ## 3. Additional fixtures ```json [ {"id":"str-decision-referent-triple","target":"Strategy","kind":"positive","input":"A StrategyRelease cites rationaleRef to WM-KNW-010, approvalActivityRef to WM-ACT-024 and issuedRecordRef to WM-REC-010 as three distinct referents and restates none of them.","expect":"The release is accepted and all three referents resolve independently.","violates":"none (exercises: Horizon and authority are explicit.)","closesDefect":"D2"}, {"id":"str-exclusion-nonempty","target":"Strategy","kind":"positive","input":"A StrategyRelease selects segment X through a direct channel and records marketplace distribution as an explicitly rejected alternative with its exclusion reason.","expect":"The release is accepted with non-empty excludedChoices.","violates":"none (exercises: Each release explicitly rejects an alternative.)","closesDefect":"D17"}, {"id":"str-alignment-basis-rationale","target":"Strategy","kind":"positive","input":"An AlignmentAssertion links a WM-KNW-011 objective to a strategic theme with basisKind 'rationale' and a cited rationale reference.","expect":"The assertion is accepted and the basis is attributable.","violates":"none (exercises: Alignment requires attributable basis.)","closesDefect":"D11"}, {"id":"bm-mechanism-capture-complete","target":"Business Model","kind":"positive","input":"A BusinessModelRelease supplies segments, channels, valuePropositions, valueMechanism, revenueLogic and costLogic.","expect":"The release is accepted as a complete value mechanism.","violates":"none (exercises: Revenue logic is not observed revenue.)","closesDefect":"D13"}, {"id":"vp-single-containment","target":"Business Model","kind":"positive","input":"A second business model cites a pinned ValueProposition revision of another business model by reference without copying it.","expect":"The citation is accepted; the proposition retains exactly one container.","violates":"none (exercises: Value propositions are release-owned children.)","closesDefect":"D9"}, {"id":"vs-stage-identity-and-criteria","target":"Value Stream","kind":"positive","input":"A ValueStreamVersion contains three Stage records, each with stageKey, recipientValueState, entryCriteria, exitCriteria and sequenceIndex.","expect":"The version is accepted and each stage is individually addressable.","violates":"none (exercises: Entry and exit criteria are explicit.)","closesDefect":"D9"}, {"id":"vs-legacy-binding-declared-only","target":"Value Stream","kind":"positive","input":"A stage declares a realization reference to WM-ACT-003 carrying specificationState 'legacy-only' and enforceable false.","expect":"The declaration is accepted as non-enforceable and no process constraint is applied to the stage.","violates":"none (exercises: Blocked capability and process references remain non-enforceable.)","closesDefect":"D7"}, {"id":"sce-nonauthoritative-block-present","target":"Strategic Scenario","kind":"positive","input":"A scenario candidate declares authoritativeness with sourceOfRecord false and all mayMaster flags false, and reaches lifecycle state 'published'.","expect":"The candidate is accepted and the published state confers no source-of-record status.","violates":"none (exercises: Scenario output never becomes authoritative actual.)","closesDefect":"D5"}, {"id":"sce-branch-without-strategy-bump","target":"Strategic Scenario","kind":"positive","input":"A scenario version is branched and a later version is retired while two citing strategies remain unchanged.","expect":"Both strategies remain effective and unversioned; scenario history is preserved.","violates":"none (exercises: Invalidation preserves history.)","closesDefect":"D12"}, {"id":"cross-root-independent-versioning","target":"cross-root","kind":"positive","input":"A business model advances to a successor release on a channel-economics change while the strategy choice set and the value-stream stage sequence are unchanged.","expect":"Only the business model versions; the other roots stay at their current versions and are linked by a WM-ACT-024 and WM-REC-010 reference.","violates":"none (exercises: A successor release of one root never compels a successor release of another.)","closesDefect":"D12"}, {"id":"theme-reassignment-is-new-containment","target":"Strategy","kind":"positive","input":"A strategic theme is moved from one strategy to another and is recorded as a new containment under the receiving strategy release.","expect":"The move is accepted as a new containment; the theme acquires no root identity and no independent lifecycle.","violates":"none (exercises: Themes remain release-owned children.)","closesDefect":"D9"}, {"id":"profile-reuse-by-reference","target":"profile-candidate","kind":"positive","input":"The profile artifact declares decision REUSE_BY_REFERENCE, referencedBases limited to the admitted five, baseLevelConstraints empty and baseSpecificationState non-canonical-draft.","expect":"The artifact is accepted as reference-only reuse with no restriction asserted over any base.","violates":"none (exercises: Objectives, initiatives and decisions retain their own masters.)","closesDefect":"D4"}, {"id":"policy-allowlist-accepts-admitted","target":"validation-policy","kind":"positive","input":"A candidate whose every reference target is in the admitted or legacy set is evaluated against the extended policy.","expect":"The candidate passes the admittedReferenceTargets check.","violates":"none (exercises: Blocked referents are never silently promoted.)","closesDefect":"D16"}, {"id":"digest-specification-present","target":"all-candidates","kind":"positive","input":"Each candidate declares digest algorithm sha-256, RFC 8785 canonicalization and a scope excluding the contentDigest field, and a released version is re-digested unchanged.","expect":"The digest recomputes identically and the immutability check passes.","violates":"none (exercises: Released versions are immutable.)","closesDefect":"D14"}, {"id":"fixture-shape-v2-conformant","target":"fixtures.json","kind":"positive","input":"A migrated fixture file declares fixtureShapeVersion v2 and every case carries id, target, kind, input, expect, violates and closesDefect, with expectedCode on every negative.","expect":"The fixture file passes the shape check.","violates":"none (exercises: negativeFixturesRequireExpectedCode)","closesDefect":"D15"}, {"id":"str-unadmitted-reference-target","target":"Strategy","kind":"negative","input":"A strategy reference entry names a referent identifier that is not in the admitted reuse set or the legacy-only set.","expect":"The entry is rejected and must be rewritten with target null and targetState declared-unallocated.","violates":"Blocked referents are never silently promoted.","closesDefect":"D1","expectedCode":"EMSTR01-REF-001"}, {"id":"bm-unadmitted-reference-target","target":"Business Model","kind":"negative","input":"The business-model candidate references WM-ORG-001, WM-ECO-021 and WM-ECO-002 as party, offer and price referents.","expect":"All three entries are rejected; party, offer and price are declared-unallocated and carry target null.","violates":"Partner and resource identities remain external.","closesDefect":"D1","expectedCode":"EMSTR01-REF-001"}, {"id":"sce-unadmitted-hypothesis-base","target":"Strategic Scenario","kind":"negative","input":"The scenario candidate references WM-KNW-007 as a hypothesis and claim base.","expect":"The entry is rejected; the hypothesis base is declared-unallocated with target null.","violates":"Competing explanations remain explicit.","closesDefect":"D1","expectedCode":"EMSTR01-REF-001"}, {"id":"identifier-guessed-or-allocated","target":"all-candidates","kind":"negative","input":"A candidate is submitted with a non-null modelId or registryId, or with allocationState other than unassigned.","expect":"The candidate is rejected; no identifier may be allocated or guessed in this contour.","violates":"Registry allocation is pending and no identifier may be guessed.","closesDefect":"D1","expectedCode":"EMSTR01-ID-001"}, {"id":"str-missing-approval-occurrence","target":"Strategy","kind":"negative","input":"A StrategyRelease carries a single decisionRef intended to serve as rationale, approval occurrence and issued expression at once.","expect":"The release is rejected; three distinct referents to WM-KNW-010, WM-ACT-024 and WM-REC-010 are required.","violates":"Horizon and authority are explicit.","closesDefect":"D2","expectedCode":"EMSTR01-REF-002"}, {"id":"bm-release-without-rationale","target":"Business Model","kind":"negative","input":"A business-model successor release cites only an issued WM-REC-010 record with no rationale and no approval occurrence.","expect":"The release is rejected until WM-KNW-010 and WM-ACT-024 referents are cited.","violates":"Channel changes create successors.","closesDefect":"D3","expectedCode":"EMSTR01-REF-002"}, {"id":"vs-legacy-binding-enforced","target":"Value Stream","kind":"negative","input":"A stage-to-process binding to WM-ACT-003 is treated as an enforceable constraint and a stage is validated against the legacy process specification.","expect":"The enforcement is rejected; the binding remains declared and non-enforceable pending a current boundary-reviewed specification.","violates":"Blocked capability and process references remain non-enforceable.","closesDefect":"D7","expectedCode":"EMSTR01-REF-003"}, {"id":"vs-capability-binding-enforced","target":"Value Stream","kind":"negative","input":"A stage-to-capability binding to WM-ACT-001 is used to gate a value-stream version release.","expect":"The gate is rejected; capability remains a legacy-only completion dependency.","violates":"Blocked capability and process references remain non-enforceable.","closesDefect":"D7","expectedCode":"EMSTR01-REF-003"}, {"id":"vs-outcome-master-preempted","target":"Value Stream","kind":"negative","input":"The value stream references WM-MAT-008 as the master of outcome observation for its terminal recipient outcome.","expect":"The reference is rejected; the Outcome and Benefit Realization referent stays identifier-unassigned to EM-STR-02 with target null.","violates":"Output, outcome and benefit remain distinct.","closesDefect":"D8","expectedCode":"EMSTR01-REF-004"}, {"id":"sce-observation-master-preempted","target":"Strategic Scenario","kind":"negative","input":"The scenario references WM-MAT-008 as the comparison master for reconciling projections against observations.","expect":"The reference is rejected; the observing referent remains unallocated and the comparison is unenforceable.","violates":"Forecast remains forecast until qualified observation.","closesDefect":"D8","expectedCode":"EMSTR01-REF-004"}, {"id":"sce-treated-as-source-of-record","target":"Strategic Scenario","kind":"negative","input":"A published scenario version is cited as the source of record for a market-size figure used in reporting.","expect":"The citation is rejected; a scenario is never a source of record regardless of lifecycle state.","violates":"Scenario output never becomes authoritative actual.","closesDefect":"D5","expectedCode":"EMSTR01-AUTH-001"}, {"id":"sce-explicit-baseline-promotion","target":"Strategic Scenario","kind":"negative","input":"A documented, approved promotion path writes a scenario projected state into a target baseline with full provenance recorded.","expect":"The promotion is rejected; documentation and approval do not create a permitted path.","violates":"Scenario output never becomes a target baseline under any promotion path, documented or otherwise.","closesDefect":"D6","expectedCode":"EMSTR01-AUTH-002"}, {"id":"sce-projection-as-realized-benefit","target":"Strategic Scenario","kind":"negative","input":"A scenario projected state is recorded as a realized benefit in the realization window with no qualified observation.","expect":"The record is rejected; forecast, outcome and benefit realization remain distinct types.","violates":"Scenario output never becomes authoritative actual.","closesDefect":"D6","expectedCode":"EMSTR01-AUTH-002"}, {"id":"sce-authority-transfer-on-citation","target":"Strategic Scenario","kind":"negative","input":"A strategy citing a scenario version asserts that the scenario thereby inherits the strategy's decision authority, and the scenario is marked authoritative.","expect":"The assertion is rejected; citation transfers no authority in either direction.","violates":"Scenario authority never transfers to a citing strategy.","closesDefect":"D3","expectedCode":"EMSTR01-AUTH-003"}, {"id":"sce-retirement-retires-roots","target":"cross-root","kind":"negative","input":"Retirement of a scenario version is propagated to retire the strategy, business model and value stream that cited it.","expect":"The propagation is rejected; scenario retirement never retires another root.","violates":"A successor release of one root never compels a successor release of another.","closesDefect":"D12","expectedCode":"EMSTR01-VER-002"}, {"id":"theme-claimed-as-root","target":"Strategy","kind":"negative","input":"A strategic theme is submitted with its own identity, authority and lifecycle and no containing strategy.","expect":"The submission is rejected; a theme exists only within a Strategy release.","violates":"Themes remain release-owned children.","closesDefect":"D9","expectedCode":"EMSTR01-CNT-001"}, {"id":"vp-dual-containment","target":"Business Model","kind":"negative","input":"One value proposition is mastered simultaneously by two business models as a second master rather than a pinned citation.","expect":"The second mastership is rejected; a value proposition has exactly one container at a time.","violates":"Value propositions are release-owned children.","closesDefect":"D9","expectedCode":"EMSTR01-CNT-003"}, {"id":"stage-without-criteria","target":"Value Stream","kind":"negative","input":"A stage is recorded with a name and sequence only, with no recipientValueState, entryCriteria or exitCriteria.","expect":"The stage is rejected; stage identity and criteria are mandatory.","violates":"Entry and exit criteria are explicit.","closesDefect":"D9","expectedCode":"EMSTR01-CNT-002"}, {"id":"stage-defined-by-process","target":"Value Stream","kind":"negative","input":"A process step set is imported and used to define the stage boundaries, so that automating a step changes the stage sequence.","expect":"The definition is rejected; a process may realize a stage but never defines it.","violates":"A process is internal realization, not the stream.","closesDefect":"D7","expectedCode":"EMSTR01-BND-002"}, {"id":"bm-owns-stage-sequence","target":"Business Model","kind":"negative","input":"A business-model release records the recipient value-state stage sequence as one of its own mastered attributes.","expect":"The attribute is rejected; stage sequence is mastered by the Value Stream and referenced only.","violates":"Business Model remains distinct from organization.","closesDefect":"D10","expectedCode":"EMSTR01-BND-001"}, {"id":"str-owns-benefit-and-forecast","target":"Strategy","kind":"negative","input":"A strategy release records a forecast figure and a realized benefit among its own attributes.","expect":"Both attributes are rejected; Strategy never records a forecast, an observed outcome or a realized benefit.","violates":"Strategy never records a forecast, an observed outcome or a realized benefit.","closesDefect":"D10","expectedCode":"EMSTR01-BND-001"}, {"id":"vs-owns-value-mechanism","target":"Value Stream","kind":"negative","input":"A value-stream version records revenue and cost logic for the flow it describes.","expect":"The attributes are rejected; the value mechanism is mastered by the Business Model.","violates":"Output, outcome and benefit remain distinct.","closesDefect":"D10","expectedCode":"EMSTR01-BND-001"}, {"id":"bm-mechanism-without-capture","target":"Business Model","kind":"negative","input":"A business-model release omits revenueLogic and costLogic while claiming mechanism mastership.","expect":"The release is rejected; capture logic is required for a value mechanism.","violates":"Revenue logic is not observed revenue.","closesDefect":"D13","expectedCode":"EMSTR01-BND-005"}, {"id":"str-none-considered-escape","target":"Strategy","kind":"negative","input":"A strategy release leaves excludedChoices empty and supplies a none-considered rationale in its place.","expect":"The release is rejected; a none-considered rationale does not satisfy the rejected-alternative invariant.","violates":"excludedChoices is non-empty; a none-considered rationale does not satisfy this invariant.","closesDefect":"D17","expectedCode":"EMSTR01-CHO-001"}, {"id":"str-alignment-by-tag","target":"Strategy","kind":"negative","input":"An alignment assertion between an initiative and a strategic theme states its basis as a shared tag and a shared budget line.","expect":"The assertion is rejected; tag, budget line, portfolio membership and reporting line are forbidden bases.","violates":"Alignment requires attributable basis.","closesDefect":"D11","expectedCode":"EMSTR01-ALN-001"}, {"id":"initiative-substituted-for-choice","target":"Strategy","kind":"negative","input":"A WM-ACT-030 initiative record is registered as the strategy's choice set.","expect":"The registration is rejected; an initiative realizes a choice and is not the choice.","violates":"Initiatives and portfolios never substitute for strategy.","closesDefect":"D10","expectedCode":"EMSTR01-CHO-002"}, {"id":"forced-cross-root-version-coupling","target":"cross-root","kind":"negative","input":"A rule requires that every business-model successor release also force a strategy successor release and a shared baseline across both.","expect":"The rule is rejected; roots version on their own change drivers and share no baseline.","violates":"A successor release of one root never compels a successor release of another.","closesDefect":"D12","expectedCode":"EMSTR01-VER-002"}, {"id":"released-version-mutated-in-place","target":"all-candidates","kind":"negative","input":"An effective strategy release is edited in place to change an excluded choice, and contentDigest is recomputed over the new content.","expect":"The edit is rejected; change proceeds only by successor release with a supersession link.","violates":"Released versions are immutable.","closesDefect":"D14","expectedCode":"EMSTR01-VER-001"}, {"id":"digest-scope-includes-digest-field","target":"all-candidates","kind":"negative","input":"A contentDigest is computed over the release object including the contentDigest field itself, with no canonicalization declared.","expect":"The digest is rejected; the declared scope excludes the digest field and canonicalization is mandatory.","violates":"Released versions are immutable.","closesDefect":"D14","expectedCode":"EMSTR01-DIG-001"}, {"id":"fixture-missing-required-fields","target":"fixtures.json","kind":"negative","input":"A fixture case carries only id, kind, input and expect, and a negative case carries no expectedCode.","expect":"The fixture file is rejected until every case carries target, violates and closesDefect, and every negative carries expectedCode.","violates":"negativeFixturesRequireExpectedCode","closesDefect":"D15","expectedCode":"EMSTR01-FIX-001"}, {"id":"policy-without-reference-allowlist","target":"validation-policy","kind":"negative","input":"A validation policy omits admittedReferenceTargets and unadmittedReferenceTargetsMustBeNull, and a candidate carrying five unadmitted referents passes it.","expect":"The policy is rejected as insufficient; the allowlist and null rule are mandatory.","violates":"Blocked referents are never silently promoted.","closesDefect":"D16","expectedCode":"EMSTR01-POL-001"}, {"id":"policy-permits-canonical-flag","target":"validation-policy","kind":"negative","input":"A candidate is submitted with canonicalPublishable true and empty holds, and the policy accepts it.","expect":"Both the candidate and the policy are rejected; canonicalPublishable must be false and holds non-empty.","violates":"Registry allocation is pending and no identifier may be guessed.","closesDefect":"D16","expectedCode":"EMSTR01-POL-001"}, {"id":"profile-asserts-base-constraint","target":"profile-candidate","kind":"negative","input":"The artifact declares decision PROFILE over the five admitted bases while listing only constraints that bind the new candidates, and asserts a restriction on WM-ACT-030.","expect":"The artifact is rejected; without a stated base-level constraint the decision is reuse by reference, and no restriction may be asserted over a non-canonical draft base.","violates":"Objectives, initiatives and decisions retain their own masters.","closesDefect":"D4","expectedCode":"EMSTR01-POL-001"}, {"id":"publication-readiness-claimed","target":"all-candidates","kind":"negative","input":"An artifact or report asserts canonical completeness, installability or publication readiness for any EM-STR-01 candidate.","expect":"The assertion is rejected; no such claim is admissible while allocation, crosswalk, mastership confirmation and relationship contracts are outstanding.","violates":"Package conversion and live verification are pending.","closesDefect":"D16","expectedCode":"EMSTR01-PUB-001"} ] ``` --- ## 4. Exact final fixture counts | Set | Positive | Negative | Total | |---|---|---|---| | **Prior** (4 candidate fixture files × 4 cases) | 8 | 8 | 16 | | **Additional** (this audit, array above) | 15 | 34 | 49 | | **Total** | **23** | **42** | **65** | Counting basis: prior = `candidate-allocation-offline-strategy/fixtures.json` (2 positive, 2 negative), `…-business-model/fixtures.json` (2, 2), `…-value-stream/fixtures.json` (2, 2), `…-strategic-scenario/fixtures.json` (2, 2). The profile candidate contributed no prior fixtures. Prior cases are counted as submitted and remain non-conformant until the D15 migration is applied; the migration changes no count. Additional fixture `id` values are disjoint from all prior `id` values, so the union is 65 with no collision. --- ## 5. Freeze decision **FROZEN.** This is the single final audit of EM-STR-01. The settled boundary is closed as audited, including the rejection of the none-considered escape hatch. The 17 defects are artifact-level and each carries an exact deterministic remediation that may be applied without further semantic review and without reopening the boundary; applying them changes no verdict in section 1 and no count in section 4. No rerun, re-study, re-review or additional model consultation is requested or required, and none should be performed on this contour. Carried forward unchanged, as holds and not as findings: no runtime or model identifier is allocated; `boundary_decision` stays pending registry allocation and `target_model_ids` stays empty; Capability (WM-ACT-001) and Process/Workflow (WM-ACT-003) remain legacy-only completion dependencies with declared, unenforceable edges; Outcome and Benefit Realization, the external assessment referent, metric definition, policy/mission, offer/product, party and portfolio remain unallocated or out of contour; every reused base remains a non-canonical draft under its existing waiver; relationship contracts for the asserted references are absent or empty, so all boundary exclusions above are declared rather than enforced. **No canonical completeness, installability or publication-readiness claim is made.**