Skip to content

fix(multi-agent): source every role default from an upstream statement that states it #6265

Closed

Description

@kyle-sexton

Problem

The role defaults in plugins/multi-agent/reference/defaults.yaml cite an upstream pointer, but the cited page does not state the values. All four roles point at https://code.claude.com/docs/en/workflows#cost and the bundled /workflow-authoring skill: orchestrator: effort: high, worker: effort: medium, verifier: effort: high, retrieval: model: sonnet, effort: low. Fetched 2026-10-04, that section names no effort level for any role. It says a workflow agent's model follows the subagent model order and falls back to the session model, and it suggests a smaller model for stages that do not need the strongest.

Some values do have an upstream basis, on a page the file does not cite. The model-config effort table (https://code.claude.com/docs/en/model-config#choose-an-effort-level, fetched 2026-10-04) gives medium for "day-to-day engineering work with a clear scope, such as implementing a new feature" (the default on Opus 5.5 and Sonnet 5.5), high for "work where verification matters or edge cases are likely", and low for quick exchanges. The orchestrator's high and retrieval's sonnet/low have no stated source yet. So every value carries a pointer that reads like a source, and none of those pointers states the value.

/multi-agent:route presents these values as resolved routing, and callers pass them straight to workflows as args.roles. A reader cannot tell which values come from upstream and which are judgment.

Wanted

Every role default is set from an official upstream statement, as other plugins in this repo already do with dated pointer records:

  • Each model and effort value names the specific upstream statement it comes from (page, section, and the claim), not just a related page. Candidates: model-config's effort table (https://code.claude.com/docs/en/model-config#choose-an-effort-level), the cost-optimization guide's orchestrator strategy, and the records already in docs/upstream/ (claude-dev-spending-your-effort-blog.md, opus-5-5-usage-guide.md, claudedevs-cost-performance.md).
  • Where no upstream statement sets a value, the entry says so (basis: judgment) and gives its reason, so route output and audit-defaults can show it as judgment rather than as sourced.
  • /multi-agent:audit-defaults fails a default whose pointer does not support its value. A pointer that exists is not enough; it must state the value or the rule the value follows from.

Acceptance

  • Every role in defaults.yaml carries either a pointer whose cited section states its model and effort (or the rule they follow from), or basis: judgment with a reason.
  • route.sh output shows each value's basis (upstream or judgment).
  • audit-defaults reports a default whose pointer does not support its value.
  • Values that change as a result are listed in the CHANGELOG entry with their new source.

Related

Activity

  1. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 4, 2026
  2. github-actions commented on Oct 4, 2026

    @github-actions
    Contributor

    Thanks for the detailed writeup. As I understand it: plugins/multi-agent/reference/defaults.yaml cites workflows#cost and the bundled /workflow-authoring skill for every role's model/effort, but that page doesn't state effort levels at all, while the model-config effort table and the cost-optimization guide's orchestrator strategy do support some of the values on pages the file doesn't cite. The ask is to repoint each value at the specific upstream statement that actually sets it, mark any value with no such statement as basis: judgment plus a reason, and have route.sh and /multi-agent:audit-defaults surface that basis so a pointer that exists but doesn't support its value is caught.

    The acceptance checklist already spells out a concrete approach (per-value pointer or judgment basis, basis shown in route output, audit-defaults checking pointer support, CHANGELOG entry), so scope looks well-defined. I didn't find an existing duplicate issue for this.

    Automated triage. A maintainer reviews it.

  3. kyle-sexton commented on Oct 11, 2026

    @kyle-sexton
    ContributorAuthor

    Draft PR: #7105 (branch fix/6265-role-default-basis).

    • Each role's model and effort in defaults.yaml now records a basis: upstream (section plus the statement in it, read live on 2026-10-11) or judgment with a reason. No value changed. Four values are upstream-sourced: orchestrator model, worker and verifier effort, and retrieval model. The other four are judgment.
    • route prints the basis beside each value. audit-defaults reports unsupported for a pointer that does not state its value and lists judgment values with their reasons.
    • The resolver suite (60 cases) and the drift-audit suite (39) pass. The new workflow tests fail on main. list-scripts.test.sh has 5 failures, all in list-targets.sh cases; they come from this host's mawk and show up on main too.

    Left for a human: review, the merge order against #7105's overlap with #6904 in defaults.yaml, and whether the worker model should move off inherit, which this PR records as judgment.


    Generated by Claude Code

  4. kyle-sexton commented on Oct 11, 2026

    @kyle-sexton
    ContributorAuthor

    Handoff note for whoever picks this up next. The overnight Claude run has stopped, and Kyle is moving issue work to Cursor.

    Where a branch is listed it is pushed, so it can be taken over as is. A draft PR shows a red ci-status by design until it is marked ready.


    Generated by Claude Code

  5. added theissue type on Oct 12, 2026
  6. removed
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 12, 2026
  7. kyle-sexton commented on Oct 13, 2026

    @kyle-sexton
    ContributorAuthor

    Owner decision (2026-10-13): approved the recommendation.

    Next: #7105's owner session checks that the worker reason names workloads.mechanical sonnet, then merges it once ci-status is green. #7105 closes this issue.

    This was generated by AI.

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

    priority: mediumReal value, no hard deadline; normal backlog flow.

    Type

    Fields

    No fields configured for Bug.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions