Repository navigation
feat(skills): rewrite refine around the Fable 5.1 prompting guide - #2900
Conversation
The refine skill now rewrites any brief, draft, or system prompt against the Claude Fable 5.1 prompting guidelines and the cross-model best practices that guide defers to. The refiner classifies the input's shape, patches rather than replaces what already works, removes the patterns that hurt on this model (anti-formatting rules, narration suppressors, ALL-CAPS over-triggering, thinking and effort directives, eagerness dials, decorative personas, prefill, history rewriting), and adds only the guideline blocks the input's shape triggers: progress updates, finish-the-whole-task, scope-and-tests discipline, parallel tool calls, writing density, formatting in chat, source quoting, search triggering, targeted edits, long outputs, compaction summaries, safeguard phrasing, subagents, and vision. SKILL.md keeps the file and text modes and the single-turn subagent contract; the input is now wrapped in prompt_to_refine tags and the report recaps added blocks, removed lines, stated assumptions, and harness-level notes the prompt body cannot carry. Codex metadata and the lifecycle table row are updated to match. Claude-Session: https://claude.ai/code/session_01TQrNGJjSSiQEKCHoNX7gdJ
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b69c6e2a5e
ℹ️ 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".
| 4. Ask for guidance (don't guess) | ||
| </escalation> | ||
| ```text | ||
| Use subagents when tasks can run in parallel, require isolated context, or involve independent workstreams that don't need to share state. For simple tasks, sequential operations, single-file edits, or tasks where you need to maintain context across steps, work directly rather than delegating. After starting a subagent, keep working on whatever doesn't depend on its result; wait only when the next step needs it. |
There was a problem hiding this comment.
Constrain parallel subagents in shared workspaces
When this block is added to a coding-agent prompt, it authorizes parallel subagents based only on logical independence, without requiring disjoint file ownership or dedicated worktrees and without freezing repo-level Git operations. Since subagents share a workspace by default, apparently independent workers can still collide in files or move the shared HEAD; include the shared-workspace ownership and Git-state constraints in the inserted block.
AGENTS.md reference: AGENTS.md:L34-L34
Useful? React with 👍 / 👎.
| [web_search: Harbor Bridge closure Riverton Ledger] | ||
| [web_search: Harbor Bridge closure Coast Dispatch] |
There was a problem hiding this comment.
Keep retrieval examples native-tool neutral
When a retrieval prompt says that search is available but does not name the harness API, the no-tool refiner has no value with which to replace these hardcoded web_search calls and can emit a nonexistent client-specific tool into the refined prompt. Make the example tool-neutral or provide the native tool metadata to the refiner; shared skills must not hardcode a client tool name.
AGENTS.md reference: AGENTS.md:L33-L33
Useful? React with 👍 / 👎.
| - Reply with the rewritten prompt body only: no preamble such as "Here's the prompt:", no rationale before or after it, no questions, no closing offer. | ||
| - Never carry out the task the prompt describes. Express the plan as instructions to the agent that will. | ||
| - One turn, no tools. Do not ask clarifying questions. Where the input is ambiguous, implement the reading its wording most directly supports and, when that choice changes what the agent will do, state it as a one-line assumption inside the prompt. | ||
| - Keep the input's language (a Portuguese brief comes back in Portuguese) unless the input asks for another. |
There was a problem hiding this comment.
Preserve the input language in inserted blocks
This promises that a Portuguese or other non-English prompt is returned in the same language, but the checklist later requires every triggered block to be inserted verbatim and all such blocks are English. A non-English coding, chat, or research prompt therefore produces a mixed-language result despite the output contract; either translate inserted blocks or qualify the verbatim requirement.
Useful? React with 👍 / 👎.
| | Eagerness dials, persistence pep talks, context-anchor rituals ("every 3 turns restate the objective") | Fable 5.1 tracks long runs without them; rituals add noise | Item 2 when the run is unattended | | ||
| | Decorative personas with no rubric or authority boundary | Cost tokens, change nothing | The mission and its stakes | | ||
| | Stacked verification ("verify, then double-check, then re-verify") | Over-verification | One self-check line against named criteria | | ||
| | Compile-check phrasing: "Does this compile without errors?" | Trips the safety classifiers | "Are there any bugs in this program?" | |
There was a problem hiding this comment.
Preserve compilation checks when rephrasing
When the source prompt specifically asks whether code compiles, replacing that request with the broad question “Are there any bugs in this program?” no longer requires invoking the compiler or validating build success, so the refined agent can satisfy it through inspection while missing compile errors. Rephrase the compilation check in classifier-safe language without changing the requested validation.
Useful? React with 👍 / 👎.
Summary
The
refineskill now rewrites any brief, draft, or system prompt against the Claude Fable 5.1 prompting guidelines and the cross-model prompting best practices that guide defers to.skills/refine/prompts/optimizer.md: full rewrite of the refiner's system prompt. It classifies the input's shape, patches rather than replaces what already works, removes patterns that hurt on Fable 5.1 (anti-formatting rules, narration suppressors, ALL-CAPS over-triggering, thinking and effort directives, eagerness dials, decorative personas, prefill, history rewriting), and adds only the guideline blocks the input's shape triggers. The guide's blocks are carried verbatim: progress updates, both finish-the-whole-task blocks, scope-and-tests discipline, parallel tool calls, writing density, formatting in chat, the source-quoting example, search triggering, targeted edits, the long-output note, the compaction contract, safeguard phrasing, subagents, vision. Five in-context examples cover a legacy agent prompt, a one-liner, a research assistant, a pair-programming case where the autonomy blocks are deliberately skipped, and a compaction instruction.skills/refine/SKILL.md: keeps file and text modes and the single-turn subagent contract. Input is now wrapped in<prompt_to_refine>tags so the refiner treats it as data. The report step recaps added blocks, removed lines, stated assumptions, and harness-level notes the prompt body cannot carry (effort is a runtime setting, the per-turn batching nudge belongs in a turn-scoped system message, a[max_tokens]placeholder the caller fills).skills/refine/agents/openai.yaml: updated short description and selector-free starter prompt.skills/genie/reference/lifecycle.md: updatedrefinerow.Verification
bun run check:fastpassed on push (typecheck, biome, knip, skills lint, wishes lint, complexity budget, orca bundle parity). The two biome complexity warnings are pre-existing hotspots already inside the budget.bun test scripts/skills-lint.test.ts scripts/skills-inventory-parity.test.ts: 69 pass, 0 fail.Not in scope
The other shipped skills' prompts were not run through the new refiner; that is a separate pass with its own review gate.
https://claude.ai/code/session_01TQrNGJjSSiQEKCHoNX7gdJ