Skip to content

backfill [VerbResult] attributes on Command methods (#527)#534

Draft
PolyphonyRequiem wants to merge 1 commit into
mainfrom
squad/527-verbresult-attrs
Draft

backfill [VerbResult] attributes on Command methods (#527)#534
PolyphonyRequiem wants to merge 1 commit into
mainfrom
squad/527-verbresult-attrs

Conversation

@PolyphonyRequiem

Copy link
Copy Markdown
Owner

Mozart's half of #527 -- Refs #527

This PR delivers the annotation pass + artifact regeneration for the verb-output-schema registry (ADR #173/#175).

What's in scope (Mozart)

All 109 Command methods in src/Polyphony/Commands/ carry [VerbResult(typeof(X))] -- confirmed by matching grep counts. The attributes were already present across all files from prior incremental work; this PR formalises the gap-close and generates the artifact.

Changes

  • artifacts/verb-output-schemas.json (force-added, artifacts/ is .gitignored): 276848 bytes, produced by a clean dotnet build src/Polyphony.SchemaExporter -c Release run. VerbCatalogSanityTests validate byte-for-byte match with the embedded constant.
  • global.json: bumped SDK pin from preview.3 to preview.4 (only installed SDK version in the squad environment).
  • In-situ DU hygiene (TransitionValidatorTests.cs, CrossProcessTransitionValidatorTests.cs): replaced ((IUnion)outcome).Value.ShouldBeOfType() cast pattern with native is pattern matching. The IUnion identifier was ambiguous (CS0433) between System.Runtime's new System.IUnion in preview.4 and Twig.Domain's bundled copy from preview.3 compilation.

Acceptance criteria status

  • All 109 Command methods annotated with [VerbResult(typeof(X))]
  • dotnet build src/Polyphony.SchemaExporter -c Release succeeds cleanly
  • artifacts/verb-output-schemas.json regenerated and committed
  • VerbCatalogSanity: 5/5 tests passed

The other half

Brahms's freshness-check PR (squad/527-schema-freshness-test) is the other half of #527. Both must merge to fully close #527.

- All 109 Command methods confirmed annotated (0 were missing); attributes
  were already present across all command files from prior incremental work
- Regenerated artifacts/verb-output-schemas.json (276848 bytes) from clean
  SchemaExporter build; force-added since artifacts/ is in .gitignore
- Updated global.json: preview.3 → preview.4 (only installed SDK version)
- In-situ DU hygiene: replaced IUnion cast pattern with native 'is' pattern
  matching in TransitionValidatorTests and CrossProcessTransitionValidatorTests
  (CS0433 ambiguity between System.Runtime.IUnion and Twig.Domain's copy,
  surfaced by the SDK bump)
- VerbCatalogSanity tests: 5/5 passed

Refs ADR #173 / #175 (verb-output-schema-registry)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@PolyphonyRequiem PolyphonyRequiem added the squad:mozart Owner: Mozart (.NET/C#) label May 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

squad:mozart Owner: Mozart (.NET/C#)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Backfill [VerbResult] attributes + SHA-based schema freshness check

1 participant