From 30d13a73c1b4df2de636fe982063461702aa4d98 Mon Sep 17 00:00:00 2001 From: Kyle Sexton <153232337+kyle-sexton@users.noreply.github.com> Date: Sat, 3 Oct 2026 02:26:10 -0400 Subject: [PATCH 1/2] docs(songwriting): settle object-writer's effort pin at medium after the eval Co-Authored-By: Claude Opus 5.5 --- .../claude-dev-spending-your-effort-blog.md | 2 +- plugins/songwriting/.claude-plugin/plugin.json | 2 +- plugins/songwriting/CHANGELOG.md | 9 +++++++++ plugins/songwriting/agents/object-writer.md | 13 ++++++++----- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/docs/upstream/claude-dev-spending-your-effort-blog.md b/docs/upstream/claude-dev-spending-your-effort-blog.md index 0ea4ead68b..8c9183ab1b 100644 --- a/docs/upstream/claude-dev-spending-your-effort-blog.md +++ b/docs/upstream/claude-dev-spending-your-effort-blog.md @@ -72,7 +72,7 @@ correlate note. Shared for every row: | E1 Lane effort | Every lane launches with an explicit level chosen per lane: verdict lanes at the level the table gives work where verification matters, the coordinating merge lane at its model's default passed explicitly, code and verify work never below medium. The launcher refuses a lane whose config names no `effort` and warns when the effort environment variable can override lanes and agent pins. [loop-lane-prompts.md](../../prompts/loops/loop-lane-prompts.md) (Models), [config.md](../../plugins/harness-ops/skills/lanes/context/config.md), [lane-launcher.sh](../../plugins/harness-ops/skills/lanes/scripts/lane-launcher.sh). Supersedes the lanes half of [B1](claude-dev-sonnet-5-5-blog.md#decisions) | [Choose an effort level](https://code.claude.com/docs/en/model-config#choose-an-effort-level); correlate [When to use different effort levels in Claude Code](https://claude.dev/blog/spending-your-effort#when-to-use-different-effort-levels-in-claude-code) | | E2 Lane records the level that ran | The work-loop and babysit-loop state blocks record the effort each cycle ran at, or `unset`, since a passed level can be clamped or overridden. [work-loop SKILL.md](../../plugins/work-items/skills/work-loop/SKILL.md), [babysit-loop SKILL.md](../../plugins/source-control/skills/babysit-loop/SKILL.md) | [Common input fields](https://code.claude.com/docs/en/hooks#common-input-fields); correlate [the post](https://claude.dev/blog/spending-your-effort) | | E3 Implementation agent pins | The phase verifier stays at high and the implementer at medium, as [#5885](https://github.com/melodic-software/claude-code-plugins/pull/5885) set them; that pull request superseded this interview's answer to keep the implementer at high. Both agents' upward-only binding now covers a shipped Workflow script's `effort` and `model`. [phase-verifier.md](../../plugins/implementation/agents/phase-verifier.md), [implementer.md](../../plugins/implementation/agents/implementer.md) | [Choose an effort level](https://code.claude.com/docs/en/model-config#choose-an-effort-level); correlate [Higher effort levels help when there are many edge cases](https://claude.dev/blog/spending-your-effort#higher-effort-levels-help-when-there-are-many-edge-cases) | -| E4 Object-writer pin | Pinned at medium, provisional until an eval compares levels. [object-writer.md](../../plugins/songwriting/agents/object-writer.md) | [Choose an effort level](https://code.claude.com/docs/en/model-config#choose-an-effort-level); correlate [Building with effort](https://claude.dev/blog/spending-your-effort#building-with-effort) | +| E4 Object-writer pin | Pinned at medium, settled by the 2026-10-03 eval: medium matched high, low failed the long and character cases. [object-writer.md](../../plugins/songwriting/agents/object-writer.md) | [Choose an effort level](https://code.claude.com/docs/en/model-config#choose-an-effort-level); correlate [Building with effort](https://claude.dev/blog/spending-your-effort#building-with-effort) | | E5 Review and other agent pins | Confirmed unchanged: the security reviewer and architecture guardian stay at high with no max pin. [security-reviewer.md](../../plugins/review/agents/security-reviewer.md), [architecture-guardian.md](../../plugins/review/agents/architecture-guardian.md) | [Choose an effort level](https://code.claude.com/docs/en/model-config#choose-an-effort-level); correlate [Problem areas where effort helps](https://claude.dev/blog/spending-your-effort#problem-areas-where-effort-helps) | | E6 Pin drift check | A tested script hashes the docs' effort sections against a committed baseline and flags, never edits, any pin, lane level or Workflow literal that rests on a changed table or default. It runs from the audit's `effort-pins` scope and checklist row and on each Claude Code release through the changelog skill. [check-effort-pins.sh](../../plugins/harness-config/skills/audit/scripts/check-effort-pins.sh), [audit-checklist.md](../../plugins/harness-config/skills/audit/reference/audit-checklist.md), [changelog SKILL.md](../../plugins/harness-ops/skills/changelog/SKILL.md) | [Adjust effort level](https://code.claude.com/docs/en/model-config#adjust-effort-level), [Choose an effort level](https://code.claude.com/docs/en/model-config#choose-an-effort-level); correlate [the post](https://claude.dev/blog/spending-your-effort) | | E7 Per-phase effort advice | Skills advise a level per phase by having the model read the live table and name the row it matched; no level is written into skill text, code and verify phases are never advised below medium, and an unreadable page means no advice. The interview's handoff advises implement and verify levels separately; continue-in-background passes the matched level for resumed verify or unattended work. [steps.md](../../plugins/session-flow/skills/workflow/context/steps.md), [continue-in-background SKILL.md](../../plugins/session-flow/skills/continue-in-background/SKILL.md), [session-config.md](../../plugins/planning/skills/interview/context/session-config.md) | [Choose an effort level](https://code.claude.com/docs/en/model-config#choose-an-effort-level), [Set the effort level](https://code.claude.com/docs/en/model-config#set-the-effort-level); correlate [Takeaways](https://claude.dev/blog/spending-your-effort#takeaways) | diff --git a/plugins/songwriting/.claude-plugin/plugin.json b/plugins/songwriting/.claude-plugin/plugin.json index deab463f83..48895946e3 100644 --- a/plugins/songwriting/.claude-plugin/plugin.json +++ b/plugins/songwriting/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "songwriting", - "version": "1.5.2", + "version": "1.5.3", "description": "Songwriting craft companion: nine concern-scoped lyric-craft skills (workflow router, rhyme, object-writing, metaphor, meter-prosody, song-form, co-write, diagnose, practice) applying Pat Pattison's methods, with an object-writing agent that performs the sensory exercise itself and per-skill emission boundaries that route generation to the skill that owns it, plus Suno v5.5 prompt engineering (style prompts, tagged lyrics, genre templates, troubleshooting).", "author": { "name": "Melodic Software", diff --git a/plugins/songwriting/CHANGELOG.md b/plugins/songwriting/CHANGELOG.md index 2760cd5e77..b2c1fc46f0 100644 --- a/plugins/songwriting/CHANGELOG.md +++ b/plugins/songwriting/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to the `songwriting` plugin are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this plugin uses semantic versioning. +## [1.5.3] - 2026-10-03 + +### Changed + +- **The `object-writer` agent's `medium` effort pin is settled.** An eval of the object-writing + cases at `low`, `medium` and `high` found `medium` level with `high` on pass rate and blind-graded + write quality, while `low` failed the 10-minute case (drift back to the seed) and the character + case (first-person voice). The agent's effort note records the reason and a new recheck trigger. + ## [1.5.2] - 2026-10-03 ### Added diff --git a/plugins/songwriting/agents/object-writer.md b/plugins/songwriting/agents/object-writer.md index 7d35a94297..81302b885d 100644 --- a/plugins/songwriting/agents/object-writer.md +++ b/plugins/songwriting/agents/object-writer.md @@ -145,13 +145,16 @@ Any one of these means you did not run the exercise. Fix it before writing the f ## Effort pin -The effort pin in this file's frontmatter is our choice for one timed, sense-bound write. It is -provisional: an eval comparing this agent's writes under `medium` and `high` decides it. +The effort pin in this file's frontmatter is `medium`, settled by an eval on 2026-10-03 that ran +the object-writing suite's cases at `low`, `medium` and `high`. `medium` matched `high` on pass rate +and on blind-graded write quality, while `low` failed the long (10-minute) case, drifting back to +the seed, and the character case, slipping out of first-person voice, where `medium` and `high` +held every run. - **Pointer**: for choosing a level, see [Choose an effort level](https://code.claude.com/docs/en/model-config#choose-an-effort-level); for what the `opus` alias resolves to, see [Model aliases](https://code.claude.com/docs/en/model-config#model-aliases). -- **As of**: 2026-10-02 -- **Recheck trigger**: the `opus` alias resolves to another model, the `medium` row changes, or the - eval reports. +- **As of**: 2026-10-03 +- **Recheck trigger**: the next model release, a change to the object-writing eval suite, or the + model-config table's `medium` or `high` rows changing. From 347415bbc4425e200b57b68b0ad7bcbe7f70131d Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 3 Oct 2026 07:41:42 +0000 Subject: [PATCH 2/2] docs(songwriting): settle the object-writer status wording The changelog sentence matches object-writer.md, and the provenance record no longer lists the finished effort eval as held work. Co-authored-by: ksextonmelodic --- docs/upstream/claude-dev-spending-your-effort-blog.md | 3 +-- plugins/songwriting/CHANGELOG.md | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/upstream/claude-dev-spending-your-effort-blog.md b/docs/upstream/claude-dev-spending-your-effort-blog.md index 8c9183ab1b..40d6e300d0 100644 --- a/docs/upstream/claude-dev-spending-your-effort-blog.md +++ b/docs/upstream/claude-dev-spending-your-effort-blog.md @@ -33,8 +33,7 @@ Dropped or held, each needing the user's go-ahead before it runs: - Dating the agent pin count in [claudedevs-cost-performance.md](claudedevs-cost-performance.md) was dropped: [#5767](https://github.com/melodic-software/claude-code-plugins/pull/5767) replaced the count with a pointer. -- Held for the user: an eval of the object-writer agent across effort levels (it settles - [E4](#decisions)); a correction round on the digest slice; graduating the slice to the knowledge +- Held for the user: a correction round on the digest slice; graduating the slice to the knowledge corpus in its own draft pull request; comments on [#4253](https://github.com/melodic-software/claude-code-plugins/issues/4253) and [#4346](https://github.com/melodic-software/claude-code-plugins/issues/4346). The replay sweep diff --git a/plugins/songwriting/CHANGELOG.md b/plugins/songwriting/CHANGELOG.md index e6d98d7ccf..0405b30bd3 100644 --- a/plugins/songwriting/CHANGELOG.md +++ b/plugins/songwriting/CHANGELOG.md @@ -8,7 +8,7 @@ All notable changes to the `songwriting` plugin are documented here. Format foll ### Changed - **The `object-writer` agent's `medium` effort pin is settled.** An eval of the object-writing - cases at `low`, `medium` and `high` found `medium` level with `high` on pass rate and blind-graded + cases at `low`, `medium` and `high` found `medium` matched `high` on pass rate and blind-graded write quality, while `low` failed the 10-minute case (drift back to the seed) and the character case (first-person voice). The agent's effort note records the reason and a new recheck trigger.