Skip to content

Implement cascade_rules.sole_stateful_step_exemption from runner-output-contract 2.1.0 #672

Description

@bokelley

Context

adcontextprotocol/adcp#4058 adds a new normative cascade_rules section to runner-output-contract.yaml (bumping it 2.0.0 → 2.1.0). The TS SDK already conforms (adcp-client#1146, #1545). This Python SDK runner needs to catch up.

What changed in the contract

A new MUST: when a phase contains a sole stateful step that grades not_applicable, missing_tool, or missing_test_controller, and no same-phase peer declares provides_state_for, downstream phases MUST evaluate independently (i.e., the cascade is suppressed).

default_cascade enumerates the trigger set (passed:false, prerequisite_failed, unsatisfied_contract, peer_branch_taken) and the non-trigger set (peer_substituted, plus the new exemption).

Why it matters

Until this Python runner implements the exemption, the same storyboard graded against the same adopter via TS vs Python produces different cascade outcomes for sole-stateful-step skips. Vendors running comply through both runners will see grade divergence on this edge case.

Acceptance criteria

  • Cascade engine consumes cascade_rules from the contract YAML
  • Sole-stateful-step exemption suppresses cascade for the three skip reasons listed
  • Cascade still fires for passed:false, prerequisite_failed, unsatisfied_contract, peer_branch_taken (no regression)
  • peer_substituted continues to not cascade (no regression)
  • Test fixtures cover both branches: sole-stateful-step skip → downstream graded; same step but with provides_state_for peer → cascade still fires
  • Contract version: 2.1.0 accepted by parser

References

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions