feat(session-flow): orchestrate volume-based model tiering default - #879
Conversation
Sharpen orchestrate imperative 7 so per-worker tier scales with fan-out width: past a wide fan-out the cheaper tier becomes the DEFAULT the whole fleet inherits, with an explicitly-hard stage (verify, judge/adjudicate, judgment-heavy synthesis) as the standing exception that keeps the parent tier. This closes the residual enhancement left after PR #340 fixed the spawn-inherit bug: the pieces carried a per-worker tier, but the default never flipped on volume. Broaden "tier" beyond model to reasoning effort — the doc-confirmed per-worker `effort` lever means a cheaper tier can be a cheaper model, a lower effort, or both. Guidance stays model-/tool-agnostic in the imperatives and the export brief; the version-pinned platform specifics grounding it (the workflow fleet-model inherit mechanism, the platform's own wide-run threshold, and the `effort` enum) are recorded as verbatim citations in the skill's context/sources.md, not in the brief. Closes #863. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 2m 16s —— View job PR Review
SummaryThis is a clean, well-grounded documentation-only change. The logic flows correctly: the old imperative 7 gestured at a gradient ("the wider the fan-out, the cheaper") without making it a rule or naming effort as a lever — this PR makes both explicit. The fresh-docs mandate is satisfied: the new sources.md citations carry verbatim+verified marks with their backing URLs, and the design decision to keep version-pinned specifics (25-agent threshold, effort enum) in sources.md while keeping the imperative model-/tool-agnostic is exactly right. Findings1. Compound-case gap: wide fan-out of the standing exception categories (SKILL.md, line 71–72) The standing exception — verify / judge / adjudicate — unconditionally keeps the parent tier. This is correct for a handful of judgment-heavy workers, but the rule doesn't address what happens when the exception category itself fans wide. Parallel adversarial verification at scale (e.g., 50 independent verifiers in a loop-until-dry pattern) multiplies cost just as aggressively as any other wide fleet, yet the current wording implies all of them keep the top tier by default. The fix isn't complex: the exception could note that even hard stages revert to the volume default once they themselves constitute a wide fleet, or that the parent-tier carve-out applies per-stage, not per-agent-count-within-a-stage. As written, a reader implementing a large verify fleet has no signal to route it cheaper. This isn't introduced by this PR (the previous gradient didn't address it either), but because the PR is sharpening the rule into an explicit default+exception structure, it's the right moment to close the gap. 2. CHANGELOG date omission (CHANGELOG.md, lines 1–16) Both 3. sources.md header date ambiguity (sources.md, line 5) The header reads What's correct
Overall: Approve with the compound-case gap (finding 1) noted as a follow-up. The other two are minor housekeeping. |
|
Claude finished @kyle-sexton's task in 55s —— View job Security Review — PR #879
ScopeFour files changed:
FindingsNo security issues found. All four changed files are pure documentation and instructional text. Here's the surface-by-surface audit: Command/script injection — not applicable. None of the changed files contain shell scripts, template strings, or evaluated expressions. The skill file is a Markdown prompt loaded into agent context, not executed code. GitHub Actions patterns — not applicable. No Secrets / credentials / PII — not present. The sources file contains only publicly-accessible Anthropic documentation URLs ( Supply-chain / dependency risk — not applicable. No package manifests, action pins, or external dependencies were changed. The Authorization / access-control changes — none. The Injection via external URLs in Plugin-form isolation — the skill correctly scopes to SummaryThis is a content-only change to orchestration guidance text and supporting citations. There are no execution surfaces, no external trust delegation, no permission widening, and no secret handling anywhere in the diff. |
What
Sharpens the
orchestrateskill's per-worker tiering (imperative 7) into an explicit volume-based default, and broadens "tier" from model-only to model and reasoning effort.Why
Carried from the re-anchor round-2 ledger (task #3), observed in production: an
/orchestraterun fanned out ~100–200 agents, all on the top-tier model. PR #340 (0.9.1) fixed the root spawn-inherit bug — SPEC EVERY SPAWN + CALIBRATE now carry a per-worker tier — but the residual enhancement (making the tier default flip on volume) was never built. The prior text stated the direction as a gradient ("the wider the fan-out, the cheaper the default per-worker tier") without wiring the verify/judge carve-out as the standing exception, and never named reasoning effort as a tiering lever.Change
plugins/session-flow/skills/orchestrate/SKILL.md— imperative 7:context/sources.md— three new verbatim citations grounding the change in current official docs: the per-workereffortfrontmatter lever, the workflow fleet-model inherit mechanism, and the platform's own wide-run threshold (itsLarge workflowwarning +/configsize guideline). Per the skill's model-/tool-agnostic construction, these version-pinned specifics stay insources.md, never the imperatives or export brief.Grounding (fresh docs, this session)
modelprecedence +inheritdefault,effortfield, cost-routing guidance — https://code.claude.com/docs/en/sub-agentsLarge workflowthreshold + size guideline — https://code.claude.com/docs/en/workflowsGates
check-skill.sh orchestrate: PASS (7/7 trigger phrases preserved, 125/500 lines, markdownlint clean)check-changelog-parity.sh --checkand--check-bump origin/main: PASSvalidate-plugin-contracts.mjs,generate-catalog.mjs --check,claude plugin validate .: PASSRelated
Closes #863.