Skip to content

storyboard: surface skip causes in always-on summary #1623

@bokelley

Description

@bokelley

Problem

The always-on storyboard summary tells you how many steps were skipped but not why, so launch-readiness tooling can't act on the result without grovelling through --json output.

── A2A ──
→ http://localhost:8123/
  Steps: 26 passed, 3 failed, 30 skipped
  Duration: 1.8s

Is that 30 skipped because the agent doesn't expose one tool, or because it's missing ten? Could be a one-day fix, could be a quarter of work — the summary doesn't tell you. Today the only way to find out is:

  1. Pipe the run to --json
  2. Walk the JSON tree
  3. Aggregate skip_reason + dig the missing tool/skill name out of warnings[]

I just wrote that script for our internal storyboard check. It belongs upstream.

Proposal

Add a Skip causes block to the always-on summary, grouped by reason and listing the affected scenarios:

── A2A ──
  Steps: 26 passed, 3 failed, 30 skipped
  Skip causes:
    [26] missing_test_controller — agent doesn't expose comply_test_controller
         Affected: capability_discovery, account_setup, governance_setup,
                   product_discovery, create_buy, creative_sync,
                   delivery_monitoring, delivery_reporting/*, create_media_buy_async/*
    [ 2] missing_tool: sync_accounts — agent doesn't advertise tool
         Affected: refine_products/setup
    [ 2] missing_tool: list_accounts — agent doesn't advertise tool
         Affected: refine_products/setup

The data is already in --json output (skip_reason per step, missing tool/skill named in warnings[]); this is purely a presentation change in the human-readable summary.

Why it matters

  • Teams reading CI output need this to triage: "we're 26 skips away from full coverage because of one missing tool" is actionable. "30 skipped" without cause isn't.
  • Disambiguates a one-line fix (advertise an existing tool) from a new feature build (implement comply_test_controller seeding).
  • The PR review path (STORYBOARD-FAIL → ❌ counts in markdown summary when $GITHUB_STEP_SUMMARY is set) would benefit from the same block.

Variant

Also worth considering: a --skip-cause-budget N flag that fails the run if more than N causes are unresolved. Lets teams ratchet down skip count over time without each fix being invisible until somebody runs --json.

Happy to send the PR if direction is agreed.

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