From fa449e29b8801fb90b81d33492a3a9ea445f5ab5 Mon Sep 17 00:00:00 2001 From: Evan Senter Date: Sat, 17 Oct 2026 18:39:15 +0100 Subject: [PATCH 1/2] chore: update model references for Claude Opus 5.5 - Global CLAUDE.md: describe the default as the `opus` alias rather than pinning "Claude Opus 5"; rename "Working with Opus 5" to "Working Style" and drop the Opus 5-specific claim that lowering effort doesn't shorten output (the Opus 5.5 guidance is the reverse: lower effort before prompting for brevity). Widen the verification rule to cover verify-with-a-subagent phases in commands and agents. - CI review workflow: the fallback prompt said "REQUEST_CHANGES for any issues found", contradicting the central prompt's convergence policy; align it. Drop pinned model versions from workflow comments. - Model IDs: hermes default claude-opus-4-8 -> claude-opus-5-5; summarize and mcp-builder eval defaults claude-sonnet-5 -> claude-sonnet-5-5; statusline example comment. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01LBftoc1JCMLow9LDFZMADs --- .github/workflows/claude-code-review.yml | 8 ++++---- .github/workflows/claude.yml | 2 +- home/.claude/CLAUDE.md | 10 ++++------ .../.claude/skills/mcp-builder/reference/evaluation.md | 4 ++-- home/.claude/skills/mcp-builder/scripts/evaluation.py | 6 +++--- home/.claude/skills/summarize/SKILL.md | 10 +++++----- home/.claude/statusline-command.sh | 2 +- home/.hermes/config.yaml | 2 +- 8 files changed, 21 insertions(+), 23 deletions(-) diff --git a/.github/workflows/claude-code-review.yml b/.github/workflows/claude-code-review.yml index 814aa94..ecc195e 100644 --- a/.github/workflows/claude-code-review.yml +++ b/.github/workflows/claude-code-review.yml @@ -61,11 +61,11 @@ jobs: REPO: ${{ github.repository }} PR_NUMBER: ${{ github.event.pull_request.number }} - ${{ steps.prompt.outputs.use_file == 'true' && 'First, read the review instructions from /tmp/review-prompt.md using your Read tool. Then follow those instructions to review this PR.' || 'Review this PR for code quality, bugs, security issues, and adherence to project conventions (check CLAUDE.md). Check for previous "Feedback Addressed" comments to avoid re-raising resolved issues. Be strict: REQUEST_CHANGES for any issues found, only APPROVE if genuinely ready to merge. Submit your review using gh api repos/$REPO/pulls/$PR_NUMBER/reviews with inline comments on specific files/lines and event set to APPROVE or REQUEST_CHANGES. Start the review body with: > **Prompt:** Fallback (centralized prompt fetch failed)' }} + ${{ steps.prompt.outputs.use_file == 'true' && 'First, read the review instructions from /tmp/review-prompt.md using your Read tool. Then follow those instructions to review this PR.' || 'Review this PR for code quality, bugs, security issues, and adherence to project conventions (check CLAUDE.md). Check for previous "Feedback Addressed" comments to avoid re-raising resolved issues. REQUEST_CHANGES only for Critical issues or for Important issues that name a concrete failure scenario (inputs or state leading to a wrong result); otherwise APPROVE and post the rest as inline Suggestions. Submit your review using gh api repos/$REPO/pulls/$PR_NUMBER/reviews with inline comments on specific files/lines and event set to APPROVE or REQUEST_CHANGES. Start the review body with: > **Prompt:** Fallback (centralized prompt fetch failed)' }} Use the REPO and PR_NUMBER variables provided above. # Tools required by the centralized prompt (see contrib/prompts/claude-review.md). - # Model: opus (Claude Opus 5) — matches the interactive Claude Code default in - # home/.claude/settings.json, at roughly half Fable's price. Bump to --model - # fable if review depth on a given repo turns out to need it. + # Model: the opus alias — matches the interactive Claude Code default in + # home/.claude/settings.json, at well under half Fable's per-token price. + # Bump to --model fable if review depth on a given repo turns out to need it. claude_args: '--model opus --allowed-tools "Read,Bash(gh pr view:*),Bash(gh pr diff:*),Bash(gh pr comment:*),Bash(gh pr review:*),Bash(gh issue view:*),Bash(gh issue comment:*),Bash(gh api:*)"' diff --git a/.github/workflows/claude.yml b/.github/workflows/claude.yml index daf36f3..e632b77 100644 --- a/.github/workflows/claude.yml +++ b/.github/workflows/claude.yml @@ -46,7 +46,7 @@ jobs: additional_permissions: | actions: read # Deliberately unpinned: @claude responses track the claude-code-action - # default model (Sonnet 5 as of v2.1.197), matching every other repo. + # default model, matching every other repo. # Only claude-code-review.yml pins a model, because review depth is the # thing worth paying for. Ask for a model by name in the @claude comment # when a specific task needs one. diff --git a/home/.claude/CLAUDE.md b/home/.claude/CLAUDE.md index cb0c38a..3be1246 100644 --- a/home/.claude/CLAUDE.md +++ b/home/.claude/CLAUDE.md @@ -38,16 +38,14 @@ Non-obvious autonomy: ## Model Policy -Default is opus (Claude Opus 5) — `settings.json` for interactive sessions, `--model opus` in `claude-code-review.yml` for the CI reviewer. Agents pin a tier in their frontmatter: opus for `audit-*` / `rfc-*` / `improve-workflow` (judgment-heavy sweeps), sonnet for `summarize-work`, haiku for `status-report`. Fable is ~2x opus per token; use it only when asked for by name. The `@claude` mention workflow is deliberately unpinned and tracks the action default. +Default is the `opus` alias (the current Opus) — `settings.json` for interactive sessions, `--model opus` in `claude-code-review.yml` for the CI reviewer. Agents pin a tier alias in their frontmatter: opus for `audit-*` / `rfc-*` / `improve-workflow` (judgment-heavy sweeps), sonnet for `summarize-work`, haiku for `status-report`. Fable costs well over twice Opus per token; use it only when asked for by name. The `@claude` mention workflow is deliberately unpinned and tracks the action default. -### Working with Opus 5 +### Working Style -Behaviors worth counteracting — see the migration guide in the `claude-api` skill for the full list: - -- **Length.** Keep responses focused and brief; put most of the response on the main answer rather than caveats. Match written deliverables (especially Markdown files) to what the task needs — no filler sections or redundant summaries. Lowering effort does not reliably shorten visible output; say so in the prompt instead. +- **Length.** Keep responses focused and brief; put most of the response on the main answer rather than caveats. Match written deliverables (especially Markdown files) to what the task needs — no filler sections or redundant summaries. - **Scope.** Deliver what was asked at the scope intended. Make routine judgment calls; check in only when readings diverge materially. If the ask looks mistaken, say so in a sentence and keep going rather than quietly widening or narrowing it. Finish the whole task and report completion only when it's actually done. - **Delegation.** Subagents multiply cost and latency — each re-establishes context and reports back. Delegate genuinely independent, sizeable tracks; do the rest inline. Never fan out more than 20 agents unless explicitly asked. Verification belongs in the main loop, not in a subagent. -- **Verification.** Don't add "double-check your answer" instructions — Opus 5 verifies its own work, and telling it to causes over-verification. +- **Verification.** Don't write "double-check your answer" steps or verify-with-a-subagent phases into prompts, commands, or agents — the model verifies its own work, and telling it to causes over-verification. - **Corrections.** Only correct an earlier statement when the error changes the user's code or decisions. State it plainly and move on; don't ruminate or tally past mistakes. A follow-up question is not by itself a signal that something was wrong. ## Quality Gates diff --git a/home/.claude/skills/mcp-builder/reference/evaluation.md b/home/.claude/skills/mcp-builder/reference/evaluation.md index ef31090..05fd027 100644 --- a/home/.claude/skills/mcp-builder/reference/evaluation.md +++ b/home/.claude/skills/mcp-builder/reference/evaluation.md @@ -485,7 +485,7 @@ positional arguments: optional arguments: -h, --help Show help message -t, --transport Transport type: stdio, sse, or http (default: stdio) - -m, --model Claude model to use (default: claude-sonnet-5) + -m, --model Claude model to use (default: claude-sonnet-5-5) -o, --output Output file for report (default: print to stdout) stdio options: @@ -596,7 +596,7 @@ If many evaluations fail: ### Timeout Issues If tasks are timing out: -- Use a more capable model (e.g., `claude-sonnet-5`) +- Use a more capable model (e.g., `claude-opus-5-5`) - Check if tools are returning too much data - Verify pagination is working correctly - Consider simplifying complex questions \ No newline at end of file diff --git a/home/.claude/skills/mcp-builder/scripts/evaluation.py b/home/.claude/skills/mcp-builder/scripts/evaluation.py index b757002..0f1d4dd 100644 --- a/home/.claude/skills/mcp-builder/scripts/evaluation.py +++ b/home/.claude/skills/mcp-builder/scripts/evaluation.py @@ -220,7 +220,7 @@ async def evaluate_single_task( async def run_evaluation( eval_path: Path, connection: Any, - model: str = "claude-sonnet-5", + model: str = "claude-sonnet-5-5", ) -> str: """Run evaluation with MCP server tools.""" print("🚀 Starting Evaluation") @@ -315,13 +315,13 @@ async def main(): python evaluation.py -t sse -u https://example.com/mcp -H "Authorization: Bearer token" eval.xml # Evaluate an HTTP MCP server with custom model - python evaluation.py -t http -u https://example.com/mcp -m claude-sonnet-5 eval.xml + python evaluation.py -t http -u https://example.com/mcp -m claude-sonnet-5-5 eval.xml """, ) parser.add_argument("eval_file", type=Path, help="Path to evaluation XML file") parser.add_argument("-t", "--transport", choices=["stdio", "sse", "http"], default="stdio", help="Transport type (default: stdio)") - parser.add_argument("-m", "--model", default="claude-sonnet-5", help="Claude model to use (default: claude-sonnet-5)") + parser.add_argument("-m", "--model", default="claude-sonnet-5-5", help="Claude model to use (default: claude-sonnet-5-5)") stdio_group = parser.add_argument_group("stdio options") stdio_group.add_argument("-c", "--command", help="Command to run MCP server (stdio only)") diff --git a/home/.claude/skills/summarize/SKILL.md b/home/.claude/skills/summarize/SKILL.md index 7053bc2..a613e32 100644 --- a/home/.claude/skills/summarize/SKILL.md +++ b/home/.claude/skills/summarize/SKILL.md @@ -15,11 +15,11 @@ If the `summarize` CLI is installed, use it for URLs, YouTube, PDFs, and audio: # Install brew install steipete/tap/summarize -# Summarize a URL (recommended model: anthropic/claude-sonnet-5) -summarize "https://example.com/article" --model anthropic/claude-sonnet-5 +# Summarize a URL (recommended model: anthropic/claude-sonnet-5-5) +summarize "https://example.com/article" --model anthropic/claude-sonnet-5-5 # Summarize a PDF -summarize "/path/to/file.pdf" --model anthropic/claude-sonnet-5 +summarize "/path/to/file.pdf" --model anthropic/claude-sonnet-5-5 # Summarize a YouTube video summarize "https://youtu.be/dQw4w9WgXcQ" --youtube auto @@ -37,11 +37,11 @@ summarize "https://example.com" --json **Configuration:** `~/.summarize/config.json` for default model/preferences. -**Recommended model:** `anthropic/claude-sonnet-5` (requires ANTHROPIC_API_KEY). Also supports GEMINI_API_KEY, OPENAI_API_KEY, or XAI_API_KEY. +**Recommended model:** `anthropic/claude-sonnet-5-5` (requires ANTHROPIC_API_KEY). Also supports GEMINI_API_KEY, OPENAI_API_KEY, or XAI_API_KEY. **Set default model:** Add to `~/.summarize/config.json`: ```json -{"model": "anthropic/claude-sonnet-5"} +{"model": "anthropic/claude-sonnet-5-5"} ``` ## Built-in Summarization (No CLI Needed) diff --git a/home/.claude/statusline-command.sh b/home/.claude/statusline-command.sh index db556d0..6d41718 100755 --- a/home/.claude/statusline-command.sh +++ b/home/.claude/statusline-command.sh @@ -313,7 +313,7 @@ fi # Final hyperlink reset to ensure no unclosed hyperlinks leak LINK_RESET=$'\e]8;;\e\\' -# Model name — prefer the friendly display_name (e.g. "Opus 4.8") over the raw id +# Model name — prefer the friendly display_name (e.g. "Opus 5.5") over the raw id model_display="${model_name:-$model_id}" # Context window usage percentage diff --git a/home/.hermes/config.yaml b/home/.hermes/config.yaml index 634ed8b..4aad69f 100644 --- a/home/.hermes/config.yaml +++ b/home/.hermes/config.yaml @@ -1,6 +1,6 @@ model: provider: anthropic - default: claude-opus-4-8 + default: claude-opus-5-5 providers: {} fallback_providers: [] credential_pool_strategies: {} From c882a3fce0850c16dd0a2921a129f12022302002 Mon Sep 17 00:00:00 2001 From: Evan Senter Date: Sat, 17 Oct 2026 18:41:05 +0100 Subject: [PATCH 2/2] chore: move workflow edits to their own PR claude-code-action skips review on PRs that modify its workflow file, and main requires an approving review. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01LBftoc1JCMLow9LDFZMADs --- .github/workflows/claude-code-review.yml | 8 ++++---- .github/workflows/claude.yml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/claude-code-review.yml b/.github/workflows/claude-code-review.yml index ecc195e..814aa94 100644 --- a/.github/workflows/claude-code-review.yml +++ b/.github/workflows/claude-code-review.yml @@ -61,11 +61,11 @@ jobs: REPO: ${{ github.repository }} PR_NUMBER: ${{ github.event.pull_request.number }} - ${{ steps.prompt.outputs.use_file == 'true' && 'First, read the review instructions from /tmp/review-prompt.md using your Read tool. Then follow those instructions to review this PR.' || 'Review this PR for code quality, bugs, security issues, and adherence to project conventions (check CLAUDE.md). Check for previous "Feedback Addressed" comments to avoid re-raising resolved issues. REQUEST_CHANGES only for Critical issues or for Important issues that name a concrete failure scenario (inputs or state leading to a wrong result); otherwise APPROVE and post the rest as inline Suggestions. Submit your review using gh api repos/$REPO/pulls/$PR_NUMBER/reviews with inline comments on specific files/lines and event set to APPROVE or REQUEST_CHANGES. Start the review body with: > **Prompt:** Fallback (centralized prompt fetch failed)' }} + ${{ steps.prompt.outputs.use_file == 'true' && 'First, read the review instructions from /tmp/review-prompt.md using your Read tool. Then follow those instructions to review this PR.' || 'Review this PR for code quality, bugs, security issues, and adherence to project conventions (check CLAUDE.md). Check for previous "Feedback Addressed" comments to avoid re-raising resolved issues. Be strict: REQUEST_CHANGES for any issues found, only APPROVE if genuinely ready to merge. Submit your review using gh api repos/$REPO/pulls/$PR_NUMBER/reviews with inline comments on specific files/lines and event set to APPROVE or REQUEST_CHANGES. Start the review body with: > **Prompt:** Fallback (centralized prompt fetch failed)' }} Use the REPO and PR_NUMBER variables provided above. # Tools required by the centralized prompt (see contrib/prompts/claude-review.md). - # Model: the opus alias — matches the interactive Claude Code default in - # home/.claude/settings.json, at well under half Fable's per-token price. - # Bump to --model fable if review depth on a given repo turns out to need it. + # Model: opus (Claude Opus 5) — matches the interactive Claude Code default in + # home/.claude/settings.json, at roughly half Fable's price. Bump to --model + # fable if review depth on a given repo turns out to need it. claude_args: '--model opus --allowed-tools "Read,Bash(gh pr view:*),Bash(gh pr diff:*),Bash(gh pr comment:*),Bash(gh pr review:*),Bash(gh issue view:*),Bash(gh issue comment:*),Bash(gh api:*)"' diff --git a/.github/workflows/claude.yml b/.github/workflows/claude.yml index e632b77..daf36f3 100644 --- a/.github/workflows/claude.yml +++ b/.github/workflows/claude.yml @@ -46,7 +46,7 @@ jobs: additional_permissions: | actions: read # Deliberately unpinned: @claude responses track the claude-code-action - # default model, matching every other repo. + # default model (Sonnet 5 as of v2.1.197), matching every other repo. # Only claude-code-review.yml pins a model, because review depth is the # thing worth paying for. Ask for a model by name in the @claude comment # when a specific task needs one.