Conversation
When the combine of a PipeParallel's branch results refuses a list branch fed into a single field, or a single branch fed into a list field, the parallel now re-raises the refusal as a PipeRunError naming the branch, the result and the field and saying which multiplicity to change. The combine itself is unchanged: the diagnosis runs only after it has refused. The invalid-bundle verdict's own next step now tells the reader to follow each item, applying its suggested fix after confirming an unsafe one, instead of pointing at the validation_errors array. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… multiplicity The refusal names a branch by its bare code in the parallel's domain, as the docs show, and when the branch's multiplicity comes from its own nb_output, multiple_output or batch_over it says to change that setting rather than the pipe's declared output. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… other refusal The multiplicity next step is now given only when the branch's concept fits the field's item class, a dependency concept is spelled behind its package alias, and whatever else the combine refused stays in the message after the advice. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Review, round 2 at profile 4 (cubic, codex review, codex adversarial, code-review medium). Fixed in 01e23ca: the multiplicity advice is given only when the branch's concept fits the field's item class, whatever else the combine refused stays in the message, and a dependency concept is spelled behind its package alias. Round 1 at profile 2 (fixed in 849927e): the branch is named as written and a branch-level nb_output, multiple_output or batch_over is named instead of the pipe's output. Deferred, unverified: the diagnosis classifies fields and branches with rules of its own rather than those of the static check (trace on the ledger item). Rejected: making it a static check, which the sprint's fence rules out. round 3 — bar necessity — profile 4 (derived) — not run, per the sprint brief. |
…o crash A branch concept without a structure class (Anything) no longer makes the diagnosis raise out of validation; a field whose items are not concept contents (a primitive list, a Python-authored ListContent) gets no multiplicity advice, since changing a multiplicity would not make it fit; and a refusal of the whole output structure keeps the combine's own report beside the advice. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Review, round 3 at profile 4, bar necessity (cubic, codex review, codex adversarial, code-review medium; one verifier). Fixed in fa0a47b, each confirmed by the verifier: an Deferred, verified and low severity: the advice spells a dependency concept without its alias, or as a bare code when the host domain shares its name ( round 4 — bar freeze — profile 4 (derived) — not run, per the sprint. |
A PipeParallel feeding a list branch into a single field was refused by the combine with a Python validation error about
ListContentand no next step, and the verdict's own advice was to check the validation_errors array. The combine is unchanged; when it refuses, the parallel now names the branch, the result and the field and says whether to declare the field with the branch's multiplicity or to change the branch (its output, or its ownnb_output,multiple_outputorbatch_over), and the invalid-bundle verdict's next step now tells the reader to follow each item, confirming an unsafe suggested fix first.Closes L-260926-0b2e02
🤖 Generated with Claude Code
Summary by cubic
A
PipeParallelwhose branch result and its field disagree on multiplicity is now refused with a next step naming what to change, instead of a Python validation error aboutListContentwith no guidance. The invalid-bundle verdict's next step now points the reader at its items instead of thevalidation_errorsarray.nb_output,multiple_outputorbatch_overwhen set inbranches.ValidateBundleError's user action and the CLI hints derived from it now read "Edit the bundle as each validation error says: apply its suggested fix where it has one, after confirming an unsafe one".Closes L-260926-0b2e02
Written for commit fa0a47b. Summary will update on new commits.