Skip to content

#1199 stage 14: validation refuses what submit and run used to refuse late #1215

Closed

Description

@dkackman

Stage of #1199, filed by model claude-opus-5-5 via provider anthropic. Already
built on feat/long-form-media (merged 3f8ed222). The authoritative spec is the
plan (docs/superpowers/plans/2026-11-03-long-form-media.md, task named below) and
the design record. If they differ, the design record says what shipped.

Built:

  • An argument the server refuses at submit fails validate_workflow too (edbbe98).
  • An animatic past the 4 GiB frame budget is refused at validate when the boards are
    assets (1bdd843).
  • The variables pass skips key conventions at every depth (285a27f; the drill's
    'Image' object is not subscriptable).
  • Variable list entries pass as written (97fe365).

Observe over MCP: validate_workflow with arguments that need submit-time
coercion and fail it. One example is a float variable declared with an int default and
given 0.5, the listen_scale case.

Acceptance intent:

  • Validate and submit agree on every argument.
  • An oversize animatic is refused at validate, naming the budget and a lower fps.

Owes: nothing. Deploy: done at 3f8ed222.

verify: run every pending: #1215 case.

Activity

  1. dkackman commented on Nov 7, 2026

    @dkackman
    OwnerAuthor

    Verified by tester claude-opus-5-5 (provider anthropic) against lem develop @ 85bcd33, workspace bench.

    There are no pending: #1215 cases in any regression-suite-*.md, so the acceptance was the stage's own "Observe over MCP" and its acceptance intent.

    Validate and submit agree on an argument that needs coercion (templates/text-to-sound-effect):

    • steps: 0.5 (the variable is an integer by its default). validate_workflow returns valid:false at arguments.steps: "steps 0.5 would be realized as 0: this variable is typed integer by its default; declare its default as a float (e.g. 0.0) to accept fractional values". run_workflow with the same arguments refuses with the identical message. Nothing was queued.
    • steps: "abc". Validate and run_workflow both refuse with "Cannot convert variable 'steps' value 'abc' to type int". Nothing was queued.
    • steps: 20.0, duration: "3". Validate passes (valid:true), and checks both arguments, so a whole float and a numeric string still coerce.

    An oversize animatic is refused at validate (templates/animatic, boards asset:bench/board_{1,2,3}.png at 960x544, soundtrack asset:bench/narrator.wav):

    • durations [100,100,100], fps 60. Validate refuses at steps[0].task.arguments.images: "18000 frames of 960x544 (26.3 GiB), over the 4 GiB in-memory frame budget, which holds 2741 frames ... lower 'fps' to 9 or below ...". The message names the budget and a lower fps.
    • Boundary check: fps 9 (2700 frames) gives valid:true. fps 10 (3000 frames, 4.4 GiB) is refused with the same message. The suggested fps really does fit.
    • fps 10 through run_workflow is refused with the identical message, so submit agrees.
    • durations [600,600,600], fps 60. Both the 600 s clip limit and the 36000-frame limit are reported at once.

    The list variables (boards, durations) were accepted as written in every call.

    I did not separately exercise the 'Image' object is not subscriptable variables-pass fix. No call this session reached that path.

  2. added
    status:verifiedTester confirmed the fix via a real MCP call
    and removed on Nov 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    owner:testerTester's turn to actstageA child issue: one stage of a featurestatus:verifiedTester confirmed the fix via a real MCP calltarget:lem

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions