Skip to content

feat(conformance): add required-choice outcome checks#337

Merged
pentaxis93 merged 5 commits into
mainfrom
issue-336/c-2-conformance-support-for-required-cho
May 31, 2026
Merged

feat(conformance): add required-choice outcome checks#337
pentaxis93 merged 5 commits into
mainfrom
issue-336/c-2-conformance-support-for-required-cho

Conversation

@pentaxis93
Copy link
Copy Markdown
Collaborator

Summary

  • Adds C-5 manifest conformance for required-choice outcome groups.
  • Registers outcome vocabulary through [[outcome_types]] and validates manifest choice members against it.
  • Checks C-2 outcome terminals against the manifest required-output-choice group without adding a third C-2 choice declaration.

Changes

  • Extends conformance discovery and dispatch so manifest.toml is checked as C-5 manifest.
  • Validates outcome type registration, required output choice member registration, and outcome successor routing through on_artifact.
  • Extends workflow-contract registry validation so terminals producing registered outcome types must match the corresponding manifest choice group.
  • Adds fixtures for conformant outcome terminals with a non-outcome terminal, shared-record rejection, manifest divergence, and disposition-agnostic routing.
  • Updates README and CHANGELOG for the new conformance surface.

GitHub Issue(s)

Closes #336

Test plan

  • python -m tooling.conformance
  • python -m unittest discover -s tests

Add C-5 manifest validation for registered outcome types, required output choice members, and outcome-trigger routing. Extend C-2 workflow contract validation so outcome terminals derive from registered outcome artifact types and must match the manifest required-choice group, without adding a third per-contract choice declaration.

Refs #336
Convert malformed directory-local manifest registry construction failures into aggregate C-2/C-3 conformance results instead of letting TypeError escape the runner.

Refs #336
Make manifest required_output_choices authoritative for every terminal artifact when a protocol declares a single choice group, and reject multiple groups as runtime-unsatisfiable for single-terminal C-2 runs.

Refs #336
Reject disposition-agnostic outputs from outcome-bearing protocols across simple trigger forms and composite triggers, while preserving re-review triggers on protocol inputs.\n\nRefs #336
@pentaxis93 pentaxis93 merged commit e8a9b23 into main May 31, 2026
1 check passed
@pentaxis93 pentaxis93 deleted the issue-336/c-2-conformance-support-for-required-cho branch May 31, 2026 22:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

C-2 + conformance support for required-choice outcome groups (disposition primitive substrate)

1 participant