Skip to content

feat(skills): rewrite refine around the Fable 5.1 prompting guide - #2900

Merged
namastex888 merged 1 commit into
devfrom
feat/refine-fable-5-1
Sep 15, 2026
Merged

namastex888 merged 1 commit into
devfrom
feat/refine-fable-5-1

Conversation

@namastex888

Copy link
Copy Markdown
Contributor

Summary

The refine skill 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: updated refine row.

Verification

  • bun run check:fast passed 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.
  • Dogfood: the new optimizer was run as a subagent on a legacy reviewer prompt ("You are an expert code reviewer. ALWAYS be thorough. CRITICAL: you MUST review every file... Do not use markdown... Think step by step... Hold all your feedback..."). Output was the bare prompt body with the persona, ALL-CAPS rule, anti-formatting rule, thinking directive, and narration suppressor removed, and the progress line, investigate block, conditional formatting rule, mannered-prose rule, and a self-check line added. No autonomy blocks were added, which is correct for an input that never says the run is unattended.

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

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
@coderabbitai

coderabbitai Bot commented Sep 15, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: bbb38edf-16f8-43d7-866b-c2d55749f4ff

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 15, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-15T00:11:14.318355Z b69c6e2 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@namastex888
namastex888 merged commit 67a8d08 into dev Sep 15, 2026
18 checks passed
@namastex888
namastex888 deleted the feat/refine-fable-5-1 branch September 15, 2026 00:09

@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: 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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge 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 👍 / 👎.

Comment on lines +173 to +174
[web_search: Harbor Bridge closure Riverton Ledger]
[web_search: Harbor Bridge closure Coast Dispatch]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge 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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge 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?" |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge 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 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant