Skip to content

Assign Claude model tiers to skill wrappers#34

Merged
alexander-yevsyukov merged 9 commits into
masterfrom
claude/optimize-stills-model-usage-6ab197
Jul 17, 2026
Merged

Assign Claude model tiers to skill wrappers#34
alexander-yevsyukov merged 9 commits into
masterfrom
claude/optimize-stills-model-usage-6ab197

Conversation

@alexander-yevsyukov

@alexander-yevsyukov alexander-yevsyukov commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

What

Gives every Claude wrapper under claude/ an explicit, alias-based model tier so routine skills stop billing at the session model, and extends wrapper coverage so every skill has a deliberate model decision:

Tier Wrappers
haiku commands update-copyright, run-build, bump-version, version-bumped, api-discovery, check-links; agent check-links and dependency-audit
sonnet commands bump-gradle, dependency-update, move-files, review-docs, which-fixer; agents spine-code-review, review-docs, gradle-review
session model (unset / inherit) commands pre-pr, java-to-kotlin, raise-coverage, write-docs; agent kotlin-engineer

* newly created wrapper.

The tier convention — aliases only, cheapest tier that runs the skill reliably, and which skills stay inline by design (author-skill, co-author-docs, kotlin-jvm-tester, kotlin-engineer-as-a-skill) — is documented in a new "Claude wrappers and model tiers" section of docs/authoring-skills.md, with a matching pre-PR validation bullet.

Why

  • A wrapper without model: inherits the conversation model, so an Opus-session developer paid top tier for formulaic work such as a copyright-header refresh.
  • The dependency-audit agent was already on Haiku but pinned to the dated ID claude-haiku-4-5-20251001; since consumers float to master, a dated pin ages org-wide and breaks on model retirement. It now uses the floating haiku alias (same model today).
  • check-links is dispatched by pre-pr as a reviewer but had no agent definition, so it ran as an ad-hoc subagent at session price; it also was missing from the pre-pr command's dispatch list even though the pre-pr skill requires it. Both are fixed.
  • gradle-review was the only reviewer skill without an agent definition.

Notes for the reviewer

  • pre-pr is deliberately left without a model: a command's model applies to the turn that runs it, and subagents declaring inherit (the kotlin-engineer reviewer) inherit from that turn — pinning the orchestrator would silently downgrade the deep Kotlin review. This cascade is documented in the new docs section.
  • The kotlin-engineer agent keeps inherit on purpose: it hunts coroutine/Flow subtleties where capability pays; in Sonnet sessions it costs Sonnet anyway.
  • bump-version and version-bumped sit on haiku together by maintainer decision: both are tightly specified procedures, and the guard (version-bumped) embeds the action (bump-version) as its recovery path, so the pair must always share a tier — recorded in the docs section.
  • Model tiers live only in the Claude-specific claude/ layer; the agent-neutral skills/ files (also consumed by Codex and Junie) are untouched.
  • The new wrapper bodies were cross-checked against their skills/<name>/SKILL.md sources, and the review-docs agent reviewed the Markdown diff; its findings (a kotlin-engineer wrapper-status contradiction, a missing bump-gradle tier example, two line-wrap widows, one phrasing nit) are already applied.
  • Verified mechanically: alias-only sweep (grep for dated model IDs is clean), YAML frontmatter shape check across all wrappers, and the new commands/agents registered successfully in a live Claude Code session.

🤖 Generated with Claude Code

Give every Claude wrapper under `claude/` an explicit, alias-based
model tier so routine skills stop billing at the session model:

- `haiku` for script-driven pipelines (`update-copyright`, `run-build`,
  `api-discovery`, `check-links`) and the `dependency-audit` agent —
  replacing its dated `claude-haiku-4-5-20251001` pin, which would rot
  as consumers float to `master`.
- `sonnet` for procedural edits and checklist reviews (`bump-version`,
  `bump-gradle`, `version-bumped`, `dependency-update`, `move-files`,
  `which-fixer`, and the `spine-code-review`, `review-docs`, and
  `gradle-review` agents).
- Session model, deliberately, for deep-reasoning work (`pre-pr`,
  `java-to-kotlin`, `raise-coverage`, `write-docs`, and the
  `kotlin-engineer` agent).

New wrappers extend coverage: agents for `check-links` and
`gradle-review`, commands for `check-links`, `which-fixer`,
`version-bumped`, and `api-discovery`. The `pre-pr` command now lists
the `check-links` dispatch its skill already required. The tier
convention, the alias-only rule, and the inline-by-design skills are
documented in `docs/authoring-skills.md`.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 16, 2026 21:05
@alexander-yevsyukov alexander-yevsyukov self-assigned this Jul 16, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR standardizes Claude Code wrapper metadata by explicitly assigning model tiers (via aliases) for commands and agents under claude/, adds missing wrappers so all skills have an intentional model decision, and documents the tiering conventions in docs/authoring-skills.md (including a pre-PR validation check).

Changes:

  • Adds/updates model: frontmatter across Claude command and agent wrappers to enforce tier choices (haiku/sonnet/inherit).
  • Introduces new Claude wrappers for api-discovery, check-links, which-fixer, version-bumped, plus new reviewer agents check-links and gradle-review.
  • Updates documentation and the pre-pr wrapper to include the check-links dispatch rule and alias-only validation guidance.

Reviewed changes

Copilot reviewed 18 out of 18 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
docs/authoring-skills.md Documents Claude wrapper tiering conventions and adds a pre-PR validation bullet for alias-only models.
claude/commands/which-fixer.md New command wrapper with model: sonnet for the which-fixer skill.
claude/commands/version-bumped.md New command wrapper with model: sonnet for the version-bumped skill.
claude/commands/update-copyright.md Sets model: haiku to avoid inheriting the session model for routine work.
claude/commands/run-build.md Sets model: haiku for deterministic build routing.
claude/commands/review-docs.md Sets model: sonnet for procedural documentation review.
claude/commands/pre-pr.md Extends wrapper dispatch rules to include check-links with sentinel short-circuit behavior.
claude/commands/move-files.md Sets model: sonnet for procedural refactoring/rename work.
claude/commands/dependency-update.md Sets model: sonnet for dependency refresh workflow.
claude/commands/check-links.md New command wrapper with model: haiku for Hugo/Lychee link checking.
claude/commands/bump-version.md Sets model: sonnet for version bump workflow.
claude/commands/bump-gradle.md Sets model: sonnet for Gradle wrapper upgrade workflow.
claude/commands/api-discovery.md New command wrapper with model: haiku for deterministic artifact source resolution.
claude/agents/spine-code-review.md Sets agent wrapper model: sonnet instead of inheriting.
claude/agents/review-docs.md Sets agent wrapper model: sonnet instead of inheriting.
claude/agents/gradle-review.md New reviewer agent wrapper with model: sonnet.
claude/agents/dependency-audit.md Replaces dated pinned model ID with alias haiku.
claude/agents/check-links.md New reviewer agent wrapper with model: haiku.
Comments suppressed due to low confidence (1)

claude/commands/check-links.md:20

  • The wrapper’s not-applicable and sentinel instructions don’t match the check-links skill: the skill returns a specific APPROVE — ... line and exits early without writing check-links.ok when no Hugo site exists (skills/check-links/SKILL.md:58-60). Also, the sentinel is written only after running the build/serve/check pipeline (step 8), not for the not-applicable early exit.
- If no Hugo config exists under `docs/` or `site/`, report the check as
  not applicable and stop — do not write a `FAIL` sentinel for that case.
- Always tear the Hugo server down (step 8), even when Lychee fails, and
  write the `check-links.ok` sentinel to the repository's git directory.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread claude/agents/check-links.md Outdated
Comment thread claude/agents/gradle-review.md Outdated
Comment thread claude/agents/gradle-review.md Outdated
Comment thread claude/commands/api-discovery.md Outdated
Comment thread claude/commands/which-fixer.md Outdated
Comment thread claude/commands/version-bumped.md Outdated
@alexander-yevsyukov alexander-yevsyukov moved this to 🏗 In progress in v2.0 Jul 16, 2026
- Fold the new agents' description lines into `>` YAML scalars and
  tighten the three new command descriptions, so every added line fits
  the 100-char `max-line-length` from the coding guideline.
- Reword the `gradle-review` wrapper to reference the skill's search
  recipes instead of naming ripgrep directly.
- Clarify that the `check-links` command writes its sentinel only when
  the pipeline actually runs (not on the not-applicable early exit).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 16, 2026 21:14

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c5591d4827

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread claude/agents/gradle-review.md Outdated
Comment thread claude/commands/version-bumped.md Outdated
Comment thread claude/commands/pre-pr.md
Both commands follow tightly specified procedures — the bump policy and
its deterministic guard script. They move together deliberately:
`version-bumped` runs `bump-version` as its recovery path, so the guard
must never sit on a lower tier than the action it embeds. The pairing
rule is now recorded in docs/authoring-skills.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 18 out of 18 changed files in this pull request and generated 4 comments.

Comment thread claude/commands/check-links.md Outdated
Comment thread claude/commands/api-discovery.md Outdated
Comment thread claude/commands/version-bumped.md Outdated
Comment thread claude/commands/which-fixer.md Outdated
Copilot AI review requested due to automatic review settings July 16, 2026 21:17

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 18 out of 18 changed files in this pull request and generated 5 comments.

Comment thread claude/commands/check-links.md Outdated
Comment thread docs/authoring-skills.md Outdated
Comment thread claude/commands/which-fixer.md Outdated
Comment thread claude/commands/version-bumped.md Outdated
Comment thread claude/commands/api-discovery.md Outdated
- Let /version-bumped complete its advertised auto-recovery: drop the
  wrapper-level pre-commit stop and defer to the bump-version skill's
  documented commit policy (the git-commit permission gate still applies).
- Make the check-links agent end with the reviewers' one-line verdict
  (APPROVE / REQUEST CHANGES) so pre-pr aggregates it uniformly.
- Use the skill's exact not-applicable response line in the check-links
  command instead of paraphrasing it.
- Fold the three overlong allowed-tools lines into `>-` block scalars
  (parsed value unchanged) to fit the 100-char limit.

All wrapper frontmatters now pass a strict YAML parse; the pre-fold
single-line gradle-review description genuinely did not (`Scope:` began
a nested mapping), confirming the folded form fixed a latent bug.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 16, 2026 21:23
The pre-PR validation bullet read as if `inherit` were valid on any
wrapper; commands inherit the conversation model by omitting the field.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@alexander-yevsyukov alexander-yevsyukov moved this from 🏗 In progress to In Review in v2.0 Jul 16, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 18 out of 18 changed files in this pull request and generated 5 comments.

Comment thread claude/commands/bump-version.md
Comment thread docs/authoring-skills.md Outdated
Comment thread claude/agents/spine-code-review.md Outdated
Comment thread claude/agents/review-docs.md Outdated
Comment thread claude/agents/dependency-audit.md Outdated
Copilot AI review requested due to automatic review settings July 16, 2026 21:28

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 18 out of 18 changed files in this pull request and generated no new comments.

- Fold every over-limit description and allowed-tools line in the
  wrappers this PR touches into `>` / `>-` block scalars, wording and
  parsed values unchanged.
- Pre-approve `git fetch` and `git merge-base` for /bump-version — the
  skill's idempotency gate runs them routinely. `git commit` stays out
  of the allowlist deliberately: allowed-tools only pre-approves, and
  commits are intentionally routed through the repo's ask-gated
  permission prompt plus the wrapper's stop-and-ask step.

Body prose over the limit that predates this PR is left to the separate
frontmatter-folding follow-up, as is the untouched kotlin-engineer
wrapper.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 16, 2026 21:32

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 18 out of 18 changed files in this pull request and generated 1 comment.

Comment thread claude/commands/which-fixer.md Outdated
Spell out the per-entry fields (file, line, before -> after / reason)
instead of the bare list names, matching the skill's Report section.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 16, 2026 21:36

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 18 out of 18 changed files in this pull request and generated 1 comment.

Comment thread claude/agents/check-links.md Outdated
The not-applicable early exit writes no sentinel, matching the skill's
sequencing; the previous wording read as an unconditional final step.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 16, 2026 21:41

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 18 out of 18 changed files in this pull request and generated no new comments.

Master's line-wrapping (PR #35) and this branch's model tiers crossed;
the merge keeps master's wrapping style everywhere both sides only
differed in wrap points, plus this branch's semantic changes.

Doc reconciliation: both new sections are kept — "Claude wrappers and
model tiers" (this branch) and "Claude wrapper frontmatter" (master).
Master's allowed-tools bullet said folding was unverified and must be
avoided; this branch has since verified equivalence (strict YAML parse
over every wrapper plus live registration of folded commands), so the
bullet now sanctions both the single-line and folded forms. The four
new commands' short descriptions are folded per master's convention.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 17, 2026 11:21

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 18 out of 18 changed files in this pull request and generated no new comments.

@alexander-yevsyukov
alexander-yevsyukov merged commit 028ed84 into master Jul 17, 2026
1 check passed
@alexander-yevsyukov
alexander-yevsyukov deleted the claude/optimize-stills-model-usage-6ab197 branch July 17, 2026 12:09
@github-project-automation github-project-automation Bot moved this from In Review to ✅ Done in v2.0 Jul 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

3 participants