Skip to content

[Phase 1] Document the Model selection standard in agent-standards.md #1209

Closed

Description

@don-petry

Story

As a standards maintainer,
I want add a canonical "Model selection" section to standards/agent-standards.md capturing the family-not-version rule, its exceptions and the operator-override note, and cross-link it from ci-standards.md,
so that there is one authoritative rule the reusable-workflow, docs and lint stories can all reference instead of each restating it.

Acceptance Criteria

  1. standards/agent-standards.md gains a new "## Model selection" section stating the rule: a caller may suggest a model family (opus, sonnet, haiku) suited to the task, but must not hard-code a version id such as claude-opus-4-6; one resolver/CLI maps family -> current model id and changes roll out through normal release channels.
  2. The section lists the four allowed exceptions, each requiring an inline # model-pin-ok: <reason> comment: (a) the resolver itself, (b) price data keyed by real ids, (c) recorded data (fixtures, eval sets, baselines), (d) a fixed eval judge that must stay pinned so A/B results stay comparable.
  3. The section states the operator-override rule: an operator-supplied full model id (a workflow input or an Actions variable) is an operator choice and stays allowed; only defaults in code must name a family.
  4. standards/ci-standards.md cross-links the new agent-standards.md "Model selection" section, and the existing stale "Opus 4.6 model selection" phrasing in agent-standards.md's "BMAD Method Workflows" section is updated to reference the family rule (e.g. "Opus-family model selection").
  5. The rule is stated once in agent-standards.md (single source of truth); ci-standards.md references it rather than duplicating the full text.

Tasks / Subtasks

Dev Notes

  • Target file standards/agent-standards.md is ~128 lines. Its "## BMAD Method Workflows" section (~L118-127) currently says "...critical configuration gotchas (Opus 4.6 model selection, GitHub token override, log-secret hygiene)" - that is the stale mention to reword to the family rule.
  • This is the FOUNDATIONAL story: Stories 2-4 reference this section, so land it first. Keep the full rule text here only; ci-standards.md section 9 (Story 3) links back to it.
  • Cross-link target lives in standards/ci-standards.md section 9 (Feature Ideation). Use a stable anchor.
  • Testing standard: markdown is linted by the Lint Markdown step (DavidAnson/markdownlint-cli2-action) in .github/workflows/ci.yml. No code/tests here - doc-only.
  • Do NOT restate the exceptions list in multiple files; one canonical copy avoids drift when the standard evolves.

Project Structure Notes

standards/agent-standards.md and standards/ci-standards.md are org-wide standards docs in the target repo petry-projects/.github. Adding a new H2 aligns with the file's existing heading structure; no structural conflict.

References

Likely target surface

  • petry-projects/.github: standards/agent-standards.md (new 'Model selection' H2; reword stale mention ~L127)
  • petry-projects/.github: standards/ci-standards.md (cross-link to the new section)

Story prepared by the BMAD Scrum Master (Bob) for epic #1208. Status: ready-for-dev.

Activity

  1. don-petry commented on Oct 1, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead Implementation Plan

    Issue: #1209 — [Phase 1] Document the Model selection standard in agent-standards.md

    Scope

    Add a canonical "## Model selection" section to standards/agent-standards.md (the family-not-version rule, its four pinning exceptions, and the operator-override note), reword the stale "Opus 4.6 model selection" mention to the family rule, and cross-link the new section from standards/ci-standards.md §9 — keeping the full rule text in one place.

    Implementation Checklist

    Tests to Write

    • None — doc-only change (Phase 2 TDD exception). Verification is markdownlint-cli2 (the Lint Markdown CI step) plus the repo lint script.

    Test Command

    npx markdownlint-cli2 "standards/agent-standards.md" "standards/ci-standards.md" and bash .dev-lead/scripts/dev-lead-lint.sh

  2. don-petry commented on Oct 1, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead: Progress (in progress — not yet durable)

    Provisional. Nothing is pushed yet; the automation posts the authoritative
    completion record (with PR number + head SHA) after the push. Treat the notes
    below as intent, not delivered results.

    Plan Execution (intended)

    • Added a canonical ## Model selection H2 to standards/agent-standards.md: the family-not-version rule (opus/sonnet/haiku, no hard-coded ids like claude-opus-4-6, one resolver maps family → id), the four # model-pin-ok: <reason> exceptions (resolver, price data, recorded data, fixed eval judge), and the operator-override note.
    • Reworded the stale "Opus 4.6 model selection" mention in the BMAD Method Workflows section to "Opus-family model selection".
    • Added a cross-link from standards/ci-standards.md §9 (Feature Ideation, gotcha Add multi-agent isolation strategy using git worktrees #2) back to agent-standards.md#model-selection, keeping ci-standards.md a reference rather than a second copy of the rule.
    • Doc-only change: Phase 2 (TDD) skipped per the pure-documentation exception.

    Local check output (provisional — not the pushed run)

    markdownlint-cli2 (standards/*.md, then repo-wide **/*.md): Summary: 0 issues
    .dev-lead/scripts/dev-lead-lint.sh: all checks passed
    

    Files touched (this workspace, not yet pushed)

    • standards/agent-standards.md: new ## Model selection section; reworded stale BMAD mention.
    • standards/ci-standards.md: §9 cross-link to the new section.

    Notes

    Single source of truth kept in agent-standards.md; ci-standards.md only references it. The reusable's own claude-opus-4-6 env config is left unchanged — out of scope for this doc-only story (later stories cover code/lint).

  3. don-petry commented on Oct 1, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead: Implementation Complete — PR #1216

    The implementation for issue #1209 is durable: commits are pushed and a pull request is open. This record is backed by verifiable artifacts you can confirm in one click.

    Review happens on the PR. Acceptance criteria and test results are evidenced by the PR's diff and CI checks — not asserted here. If a later stage fails, this claim is retracted in place.

  4. added a commit that references this issue on Oct 3, 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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions