Skip to content

feat(playbooks): regenerate the fable-5 doctrine for Fable 5.1 - #10268

Closed
kyle-sexton wants to merge 7 commits into
mainfrom
feat/4346-fable-5-1-regeneration
Closed

kyle-sexton wants to merge 7 commits into
mainfrom
feat/4346-fable-5-1-regeneration

Conversation

@kyle-sexton

Copy link
Copy Markdown
Member

Closes #4346

Summary

The playbooks:fable-5 pack is now Claude Fable 5.1's doctrine, re-authored line by line in a
live Fable 5.1 session (model claude-fable-5-1, confirmed at session start). The Fable 5.1
adaptation chapter is gone: every section was folded into the owning doctrine chapter, moved to
the API chapter, or dropped with a stated reason. Meta-rule 3 routes from Fable 5.1, and Fable 5
sessions read no chapter either. The three stale verification records are re-derived from raw
.md re-reads and a static read of Claude Code 2.1.310. The evals, README, update skill, plugin
description, and the docs that pointed at the retired chapter follow.

Phase 1 (plan) and Phase 2 (implementation) ran in one session, as the issue's handoff requires.
A fresh-context plan reviewer approved the plan with nine fixes, all applied (listed under
Verification).

Decisions taken in the plan, each compared against alternatives there:

  • D1. Fable 5 reads no adaptation chapter and no fable-5.md is written: the documented
    Fable 5.1 differences are matters of degree in tendencies the doctrine already counters, and
    none reverses a Fable 5 behavior. Meta-rule 3 states this with a pointer record and a recheck
    trigger (a later Fable release; either guide gaining a reversing section; Fable 5 becoming a
    fallback target).
  • D2. fable-5-1.md is deleted and each section relocates or drops: batching, targeted edits
    and test scope to execution.md; progress line, whole-turn closing, density and quotation
    marking to communication.md; low-effort recall to calibration.md; the lead-keeps-working
    pointer to orchestration.md; the API-side rows and cross-model effort economics to
    reference/prompt-caching.md; "Long runs", the Opus 5 verification bullet, the routing bullet
    and Sources dropped as duplicates.
  • D3. The verification chapter gains one move above the self-review floor: an independent
    oracle (reference implementation, brute-force cross-check, spec-driven fuzzer) on randomized
    inputs where a specification allows one, with the debugging chapter's toggle cited for "the
    check can fail", pointing at model-config "Choose an effort level" with the spending-your-effort
    post as a correlate and no per-task figures.
  • D4. The author line reads "written by Claude Fable 5.1"; the keep/rewrite/remove ledger
    stays in session scratch and its counts are below.
  • D5. Meta-rule 3 drops the Fable 5 system card citation. The Fable 5.1 card (PDF, read as
    text this session; MD5 2f15b3333e364167ab93978f625a810f) covers fallback rates in §6.4.9 and
    §3 and says nothing about configuring or ending a fallback; model-config owns that and stays the
    pointer.

Fix

  • skills/fable-5/SKILL.md: author line, description, summary and heading name Fable 5.1;
    meta-rule 3 inverted to "if you are not Claude Fable 5.1", Fable 5 named as reading no chapter
    with a pointer record, current list Opus 5.5 / Sonnet 5.5 / Haiku 5.5, fallback-only list
    unchanged, a sentence that an adaptation chapter governs for its model wherever it speaks to a
    point a doctrine chapter covers, and the Fable 5 system card sentence dropped. Core doctrine
    gains the folded deltas as clauses on existing bullets plus one batching bullet.
  • skills/fable-5/context/: execution.md (batching of every independent call on every round,
    targeted edits, tests inside the scope fence with the unrequested-fix exception kept strict),
    communication.md (progress line, whole-turn closing, plain-clause density, quotation marking,
    finish-the-task pointer), calibration.md (low-effort recall rule naming the identifier trigger
    and the check/skip decision, the medium floor; thinking-table pointer re-read, 23,111 B, MD5
    2165a081fc982134ebb2943657e3af6d), orchestration.md (lead-keeps-working pointer),
    verification.md (D3), context-economy.md (keep-all thinking record re-derived against
    Claude Code 2.1.310: builder Z9t, same shape as 2.1.285's qgt; request assembly re-traced to
    the builder call, the 2.1.280 spread conditions kept as last traced; thinking page re-read
    85,147 B, MD5 583f6294521b9acb36c1d21b310794c8). The other seven chapters are kept as written.
  • reference/model-adaptation/fable-5-1.md deleted. Six sibling chapters say "authored by Claude
    Fable 5.1"; opus-4-8.md adds the Fable 5.1 guide's "Finish the whole task" and progress-update
    pointers beside the kept Fable 5 ones and records the re-reads (Fable 5 guide 19,326 B, MD5
    26183a8135f16fdb721686e3df47a353; Fable 5.1 guide 54,955 B, MD5 10ac88cca4f7afe46e8bc9080fb87dfe).
  • reference/prompt-caching.md: scope widened to request assembly; new "Conversation history",
    "Forced tool use" and "Effort against model choice" sections; the mid-conversation fallback
    sentence reconciled with append-only history; every record re-dated after a rung-1 re-read with
    each pointed heading confirmed present.
  • Evals: skills/fable-5/evals/evals.json case 4 becomes the Fable 5.1 no-chapter routing case,
    case 17 (new) the Fable 5 one, cases 5 and 16 drop the retired file; skills/update/evals
    author wording. Eleven claude plugin eval cases under plugins/playbooks/evals/ and a frozen
    probe set plugins/playbooks/probes/fable-5.json, both written by fresh agents from the before
    contract.
  • README (author; the chapter count dropped, since the routed set is thirteen files), skills/update/SKILL.md,
    plugin.json description; docs/plugin-philosophy.md and
    docs/upstream/claudedevs-cost-performance.md repointed to the API chapter;
    docs/native-surfaces/records.json evidence line repointed and the view regenerated; catalog and
    cheat sheet regenerated; changelog fragment bump: minor.

Verification

  • Ledger (per chapter, kept / rewritten or added / removed lines; no line removed from any
    chapter; fable-5-1.md removed whole, 195 lines): SKILL.md 187/13/0; calibration 141/2/0;
    communication 151/5/0; context-economy 96/7/0; execution 142/6/0; orchestration 128/1/0;
    verification 141/2/0; debugging, planning, problem-framing, reading-dense-images,
    reasoning-moves, recovery, trust-and-authority kept in full.
  • Reviewer's nine fixes: (1) outcome cases for every D2 fold, every drop and D3, written by a
    fresh agent from the before contract with labeled samples, run before and after: done, eleven
    cases plus the two existing ones. (2) Model named per run: every Fable 5.1 pass ran
    --model claude-fable-5-1 with --judge-model opus; the Fable 5 routing case also ran on
    claude-fable-5 on both versions; the batching case ran on claude-opus-5-5 on the after
    version. (3) Fable 5.1 system card fetched with curl and read with pdftotext before the
    doctrine pass; D5 kept, reason above. (4) docs/native-surfaces.md regenerated from the
    records file, not hand-edited. (5) The em-dash-purged-paths.txt step dropped. (6) README's
    "Twelve" count dropped. (7) claudedevs-cost-performance.md rows 189 and 229 carry a landing
    note pointing at the API chapter. (8) The two routing cases are labeled intended contract
    changes and kept out of the non-inferiority mean, as is the new oracle directive's case.
    (9) The API chapter's header widened to request assembly, and the SKILL.md routing row already
    sent request-assembly work there.
  • Gates on the merged head (origin/main merged in, no conflicts):
    check-changelog-fragments.sh --check and --check-required origin/main pass;
    check-changelog-parity.sh --check-bump origin/main passes; check-skill.sh plugins/playbooks/skills
    5 passed, 0 failed (fable-5 description 1007 of 1024 codepoints); check-evals-quality.sh PASS;
    validate-plugins.sh 151 pass; validate-cases.py plugins/playbooks/evals exit 0 (11 WARN
    lines, all judge-calibration notices); markdownlint-cli2 0 issues over the branch's changed
    markdown; catalog, cheat-sheet and native-surfaces generators produce no drift.
  • Greps: not yet confirmed 0 hits in the plugin; unconfirmed only at debugging.md:89
    (doctrine wording) and prompt-caching.md "Diagnosing misses" (a dated record about a Console
    view, unrelated to this issue); authored by Claude Fable 5 / written by Claude Fable 5 0 hits
    outside CHANGELOG history; fable-5-1.md named only as a must-not-read target in eval cases,
    in the fragment's Removed entry, in CHANGELOG history, ADRs and dated upstream records.
  • Fresh-context diff review (Opus, eleven binary criteria): 9 of 11 PASS on the first pass;
    the two failures (near-verbatim guide wording in three spans; one pointer without an anchor
    note) and a wrong rationale in meta-rule 3 (Fable 5 also stopped early and wrote dense prose,
    per the Fable 5 guide) were fixed in this PR.
  • Meaning diff (/docs-hygiene:compress compare, fresh labeler each pass, over the skill and
    reference directories with a reasons file): three passes. Pass 1 BLOCK (4 losses, 2
    ambiguities), pass 2 BLOCK (3 losses, 3 ambiguities), pass 3 BLOCK (3 losses, 1 ambiguity);
    every row was fixed after each pass (low-effort check/skip half and the medium floor value
    restored; the Ee condition restored; two Fable 5 pointers restored; batching widened back to
    every independent call; the unrequested-fix exception kept strict; the account-scope qualifier
    restored; the later-Fable-release recheck trigger carried into meta-rule 3; the forced-tool-use
    and mid-conversation system sentences disambiguated). No fourth pass ran: the session's usage
    window closed. The pass-3 report and the fixes are in the session's scratch; a reviewer who
    wants the fourth pass runs /docs-hygiene:compress compare over the before copy and this head.
  • Judge calibration (calibrate-judge.py, judge opus, 58 labeled samples, 1.35 USD
    list-price): every llm grader at 100% agreement after one rubric tightening and one mislabeled
    must-pass sample corrected (the quotation grader).
  • Trigger probes (measure-invocation.sh, lexical floor, 20 frozen queries plus a 12-query
    held-out set): main set before vs after within noise, false-trigger rate 0 → 0; held-out set
    within noise. The held-out author had seen the skill listing before writing; strict blindness is
    not claimed.
  • Eval runs (claude plugin eval, model claude-fable-5-1, judge opus, 3 runs per case,
    with/without ablation, Claude Code 2.1.310, every pass under the 5 USD ceiling, before and after
    run concurrently with the same flags):
    • After: verdict: VALID (warnings: no skill-fired grader, 3 split judge votes, 5 cases at
      ceiling without the plugin). 13 cases, 30.57 USD list-price.
    • Before: verdict: INVALID (11 permission denials in the traces): in 5 with-arm runs the before
      version read chapter files at a nonexistent path under the plugin root (<root>/context/…
      instead of <root>/skills/fable-5/context/…), which the gate counts as with-arm denials. That
      is a defect of the before version's routing text, not of the measurement; the after version
      shows no denial in 78 traces. 13 cases, 35.27 USD list-price including one safeguard-flagged
      rerun.
    • All 13 cases, after vs before: with-arm change +0.24, 95% interval +0.04 to +0.44;
      without-arm change +0.01, interval -0.05 to +0.07; compare verdict: non-inferior at margin 0.05. Within the after run, delta with minus without +0.10, interval +0.03 to +0.17, "the
      interval excludes 0".
    • The 10 regression cases (routing and oracle cases excluded): with-arm change +0.10, interval
      -0.01 to +0.21, non-inferior at margin 0.05; no case dropped by a third (largest drop
      lead-keeps-working-while-workers-run 1.00 → 0.83).
    • Intended contract changes: fable-5-1-session-reads-no-adaptation-chapter 0.00 → 1.00,
      fable-5-session-reads-no-adaptation-chapter 0.00 → 1.00 (and 1.00 → 1.00 on
      claude-fable-5); independent-oracle-when-spec-allows 0.67 → 0.83.
    • Spot-read of three kept traces agreed with the judge: the quotation pass kept the coined terms
      in quotation marks in its own words; the fail bolded them and copied a source sentence; the
      finish-the-task fail closed on instructions for a later session.
    • Opus 5.5 spot check on the after version: batching-in-implied-coding-loop 1.00 with and
      without the plugin (0.97 USD).
  • Deviations from the phase's operating rules: the eval copies could not run from the
    repository's .work/ tree (the CLI refuses a plugin whose git directory registers more linked
    worktrees than it can screen, and .work/ sits inside that tree), so the copies ran from
    ~/.cache/claude-eval-targets/4346/ (4.8 MB, outside any git repository). --case accepts a
    single prefix glob, so passes were split by case-name prefix, one case per pass after a two-case
    pass breached the ceiling. Killing the in-flight runners was denied by the permission
    classifier, so two over-budget two-case passes ran to completion (both finished under the
    ceiling).

Related

🤖 Generated with Claude Code

kyle-sexton and others added 4 commits October 26, 2026 01:20
Re-author the fable-5 pack as Claude Fable 5.1's doctrine in a live Fable
5.1 session: every line of the skill body and its thirteen chapters kept,
rewritten or removed, with the retired Fable 5.1 adaptation chapter's deltas
folded into the owning chapters (batching on every round, targeted edits and
tests sized to the task, progress line and whole-turn closing, plain-clause
density, quotation marking, low-effort recall, lead keeps working) and its
API-side rows moved to reference/prompt-caching.md, which widens to request
assembly. Add the independent-oracle move above the self-review floor.

Meta-rule 3 routes from Fable 5.1: Fable 5.1 and Fable 5 read no adaptation
chapter; the current list is Opus 5.5, Sonnet 5.5 and Haiku 5.5; the Fable 5
system card cite goes (model-config owns fallback). Six sibling chapters are
baselined against the new author. The calibration thinking-table pointer, the
context-economy keep-all record (now Claude Code 2.1.310) and every API
chapter record carry fresh as-of dates from raw-markdown re-reads.

Evals assert the new routing (Fable 5.1 and Fable 5 sessions read none);
eleven claude plugin eval outcome cases and a frozen probe set measure the
rewrite. README, update skill, plugin description, docs pointers and the
native-surfaces record follow; catalog and cheat sheet regenerated.

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
…expects

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
@kyle-sexton
kyle-sexton marked this pull request as ready for review October 26, 2026 15:07
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 26, 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-10-26T15:09:53.824161Z 3d85fbc Draft marked ready
ℹ️ 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.

@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: 3d85fbc414

ℹ️ 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".

@@ -1,22 +1,22 @@
---
description: "When the bundled claude-api skill resolves in this session, prefer it for current model, price, and API facts and the cost audit; this skill for judgment and mechanisms around them. Claude Fable 5's operating doctrine, standing instructions arming the session, with chapters loading at their triggers: calibration, reasoning moves, problem framing, planning, debugging, execution, orchestration, verification, communication, recovery, context economy, and trust boundaries. Use when: 'fable playbook', 'fable-5-playbook', 'operate like Fable', 'load the playbook', at the start of substantive engineering work, or before multi-step work where judgment matters. Also hosts per-model adaptation chapters (current: Fable 5 and 5.1, Opus 5.5, Sonnet 5.5; fallback-only: Opus 5, Opus 4.8, Sonnet 5): use when running on a model other than Fable 5, or adapting prompts to one: 'fable 5.1 adaptation', 'opus 5.5 adaptation', 'sonnet 5.5 adaptation', 'model delta', 'model adaptation chapter'."
description: "When the bundled claude-api skill resolves in this session, prefer it for current model, price, and API facts and the cost audit; this skill for judgment and mechanisms around them. Claude Fable 5.1's operating doctrine, standing instructions arming the session, with chapters loading at their triggers: calibration, reasoning moves, problem framing, planning, debugging, execution, orchestration, verification, communication, recovery, context economy, and trust boundaries. Use when: 'fable playbook', 'fable-5-playbook', 'operate like Fable', 'load the playbook', at the start of substantive engineering work, or before multi-step work where judgment matters. Also hosts per-model adaptation chapters (current: Opus 5.5, Sonnet 5.5, Haiku 5.5; fallback-only: Opus 5, Opus 4.8, Sonnet 5; Fable 5.1 and Fable 5 read none): use when running on one of those models, or adapting prompts to one: 'opus 5.5 adaptation', 'sonnet 5.5 adaptation', 'haiku 5.5 adaptation', 'model delta', 'model adaptation chapter'."

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 Establish valid no-loss evidence before shipping the rewrite

The commit's Verification section reports an INVALID before-version eval run with 11 permission denials, yet uses its scores to claim non-inferiority; it also reports only lexical trigger measurements. The skill standard's Measurement section explicitly excludes invalid runs from score comparisons and says lexical scores are tripwires, not verdicts. Consequently, the chapter removal and description rewrite lack the required evidence that behavior and triggering were preserved: the denied chapter reads confound the baseline. Rerun the comparison with a valid before arm and measure model-graded triggering before shipping these changes.

AGENTS.md reference: AGENTS.md:L110-L112

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This was generated by AI.

Finding Classification Evidence
Non-inferiority read from an INVALID before run, triggering measured lexically only VALID (fix now) run-validity.py --runs 3 on the before result: verdict: INVALID (11 permission denials in the traces), all 11 being with-arm reads under the plugin root (<root>/context/*.md), which the gate always fails. skill-criteria.md "Measurement" step 4 reads numbers only from a valid run; step 6 makes a lexical score a tripwire.

The Verification section's explanation was also wrong: the before and after SKILL.md carry the same routing sentence ("Every chapter lives under context/"), so the after run's zero denials were luck, not a fix. The bare context/ sits among ${CLAUDE_PLUGIN_ROOT} paths and gets resolved against the plugin root.

Plan, running now:

  1. Anchor both chapter-path sentences to ${CLAUDE_SKILL_DIR}/context/ in this PR, and apply the identical two-sentence patch to the before copy, so the confound is removed from both arms. This favours the before arm, so non-inferiority against it is the conservative claim.
  2. Rerun all 13 cases on both versions concurrently with the same flags (claude-fable-5-1, judge opus, 3 runs, with/without), plus the Fable 5 routing case on claude-fable-5.
  3. Model-graded triggering: the frozen 20 probes and the 12 held-out probes, emitted with measure-invocation.sh emit-plugin-eval and run through claude plugin eval on both versions concurrently.

The PR is held with do-not-merge until a valid run's numbers replace the current section. A follow-up here will carry the result paths and deltas.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This was generated by AI.

Progress on the re-measurement. This thread stays open and the PR stays on do-not-merge, because two gaps remain.

Pushed: 5e9d28a anchors both chapter-path sentences to ${CLAUDE_SKILL_DIR}/context/. The before copy carried the identical two-sentence patch, and nothing else differs from base.

Outcome suite. Re-run 2026-10-26 on Claude Code 2.1.310: claude-fable-5-1, judge opus, 3 runs, with and without the plugin, before and after launched together per case.

  • Before: verdict: VALID, with 0 denials.
  • After: verdict: VALID, once the oracle case was re-run as a pair. Its first after run had a Glob on the run's own sandbox folder, which the gate fails.
  • Noise report at margin 0.05: with-arm change +0.17 (95% interval −0.04 to +0.38); without-arm change −0.03 (−0.11 to +0.06); compare verdict: non-inferior at margin 0.05.
  • Intended contract changes, kept out of the regression reading:
    • fable-5-1-session-reads-no-adaptation-chapter: 0.00 → 1.00.
    • fable-5-session-reads-no-adaptation-chapter: 0.00 → 0.83.
  • One case dropped by a third: denied-call-stops-and-reports, with-arm 0.83 → 0.50.
    • A 6-run re-pair, VALID both, reproduces it: 0.83 → 0.58, with the after with-arm below its own without-arm (0.83).
    • The loss is in names-exact-command (the reply quoting rm -rf build/): before 4 of 6, after 2 of 6. stops-not-routes-around held in 11 of 12.
    • Hypothesis, unproven: the folded communication deltas (plain-clause density, quotation marking) lead the reply to describe the denied call rather than quote it. Proving it means restoring that text and re-measuring.

Triggering. The held-out 12 probes, model-graded at 1 run, gave the same outcome on all 12 probes in both versions: 11 of 12 fired as labeled, and the same positive missed. Both runs are verdict: INVALID, from denials of Glob, Grep and Read on paths outside the workspace (~/.claude, the home folder, the run's sandbox folder) during the probe tasks. So no trigger rate is claimed. The 20-probe main set was not run.

Blocked: weekly usage reached the 85% pacing stop, so the restore test and a valid trigger pass wait for the window to reset. Results: .work/4346/rerun/ on the host that ran them.

@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

claude-security-review reviewed a5c599efc0a9966ff3c7ac3e271d259226daa474: 0 finding(s), 0 as inline comments.

Incremental security review of plugins/playbooks/skills/fable-5/SKILL.md since b271036. I found no security issues.

The change swaps two bare context/ path references (the full argument line and the Chapter routing line) for ${CLAUDE_SKILL_DIR}/context/. That fixes path resolution to the skill's own directory. It deletes, narrows or softens no standing rule, and it reaches no trust control, manifest, or trusted path. The new variable is a harness-provided skill directory, not user-controlled input.

I read the diff only, not the instruction exception register.

critical-findings: 0

@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

claude-review reviewed a5c599efc0a9966ff3c7ac3e271d259226daa474: 0 finding(s), 0 as inline comments.

Incremental review of plugins/playbooks/skills/fable-5/SKILL.md since b271036: no findings.

The change replaces two bare context/ references with ${CLAUDE_SKILL_DIR}/context/: the full argument description and the "Chapter routing" intro. I checked three things:

  • plugins/playbooks/skills/fable-5/context/ exists and holds the chapter files, so the new path resolves.
  • ${CLAUDE_SKILL_DIR} is used widely across the repo's other skills, so it is an established variable here.
  • The only other context/ mentions in SKILL.md are those two lines, so no bare reference is left.

The change fixes the earlier ambiguity: a bare context/ resolved against the working directory, not the skill's directory. It is a fix, not a regression.

I did not run any scripts or checks. This is a read-only review of the diff.

No manifests were touched in this increment, so there are no manifest lines to report. No hold applies: there is no billing change and no security issue.

Lane-Activity: pr-refine/fix-docs
@kyle-sexton
kyle-sexton enabled auto-merge October 26, 2026 16:41
A bare `context/` among `${CLAUDE_PLUGIN_ROOT}` paths was resolved against the
plugin root in eval runs, so chapter reads were denied. Both sentences now name
`${CLAUDE_SKILL_DIR}/context/`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kyle-sexton kyle-sexton added the do-not-merge Hard merge gate: do not merge while applied. label Oct 26, 2026
@kyle-sexton

Copy link
Copy Markdown
Member Author

This was generated by AI.

Closing as deferred, under the owner's rule of 2026-10-27 (~02:3xZ): "I want all PRs older than the last 24 hours to be merged in overnight or closed (only if deferred / out of date - not in alignment with)".

This PR needs more eval passes before it can ship, because a cut to an existing skill ships only with eval evidence of no loss. The owner has deferred evals: "evals are going to have to wait for a few days until I have enough accounts with bandwidth" (2026-10-27).

Where it stands:

  • The Codex P1 path fix is pushed (5e9d28adc2).
  • The outcome suite is non-inferior overall: with-arm +0.17, interval -0.04 to +0.38.
  • One case regressed and reproduces: denied-call-stops-and-reports, 0.83 to 0.56 over 9 runs.
  • Held-out triggering was INVALID on both versions, because probe sessions explored the home folder.

To resume once evals are back: restore the folded communication text (density and quote marking), re-pair the denied-call case, re-run triggering with probes that need no home or sandbox exploration, then reopen this branch (feat/4346-fable-5-1-regeneration) and update Verification. #4346 stays open.

auto-merge was automatically disabled October 27, 2026 03:00

Pull request was closed

@github-actions
github-actions Bot deleted the feat/4346-fable-5-1-regeneration branch November 2, 2026 06:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge Hard merge gate: do not merge while applied.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

playbooks: regenerate the fable-5 doctrine for Fable 5.1

1 participant