Skip to content

fix(planning,playbooks,session-flow): bound /interview to decisions and scope verification to what ships - #1899

Merged
kyle-sexton merged 4 commits into
mainfrom
fix/interview-execution-container
Aug 4, 2026
Merged

fix(planning,playbooks,session-flow): bound /interview to decisions and scope verification to what ships#1899
kyle-sexton merged 4 commits into
mainfrom
fix/interview-execution-container

Conversation

@kyle-sexton

Copy link
Copy Markdown
Contributor

Summary

Fixes two of the root causes behind the doc-corpus campaign drift (owner diagnosis, 2026-08-03), in the plugins that caused them:

  • planning:interview (0.27.2) — bulk corpus-application work is no longer expressible as a decision set. The interview now yields exactly two outputs for such work: the small contested-decision set plus an execution contract naming the per-unit close-out loop. A tripwire catches the failure signature — candidate question count scaling with source units instead of genuine forks — and states its remedy as distinct from the pre-existing ballooning-frontier signal (ballooning routes to /planning:wayfind; unit-scaling collapses into the execution contract). Gotchas entry added.
  • playbooks fable-5 orchestration (0.6.8) — the fresh-context verification trigger gains the scope it lacked: the independent-verifier gate ranges over shipped artifacts (what a consumer receives); memory-tier process records take the in-context floor; a verifier is never spawned to verify a record OF a verification.
  • session-flow orchestrate (0.17.22) — imperative 3 carries the same scope rule as a terse self-contained clause, because the imperatives also export as a model- and tool-agnostic paste-ready brief where a pointer is not expressible.

Test plan

  • Docs-only change (skill prose + changelogs + version bumps); no executable surface touched.
  • Independently verified by a fresh-context Fable verifier with rationale withheld against 7 binary criteria (rule content, tripwire distinctness, cross-home consistency, changelog/version accuracy, no unrelated changes, no factual errors) — all 7 PASS.
  • CI markdown lint gates the prose.

Related

  • No linked issue.
  • Sibling branch fix/handoff-goal-preservation (handoff goal-preservation — mandatory immutable Original-goal section + resume goal-check) addresses the remaining two root causes and lands after this PR (session-flow 0.17.23 serialized behind this PR's 0.17.22).

🤖 Generated with Claude Code

https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X

kyle-sexton and others added 3 commits August 3, 2026 21:25
/interview had no boundary against being used as the execution container
for bulk application work. A corpus task ("apply the docs across every
document") could enter the interview and come out as a 90-row decision
ledger, because each per-document application step was admissible as a
decision row and every row then earned its own adoption ceremony. The
skill's only anti-marathon signal was the ballooning frontier, whose
remedy — route to /planning:wayfind — is wrong here: the decisions were
not foggy, they were settled and merely numerous.

SKILL.md now states the boundary as a sibling to that paragraph, so the
discrimination between the two signals is visible at the point of use:
for a corpus application the output is the small contested-decision set
plus an execution contract — one Brief `### Acceptance criteria` line
naming the per-unit close-out loop — and never one decision row per
source unit. Naming the destination section is load-bearing: the loop
having nowhere to live is why the decision ledger absorbed it. The
tripwire is a runnable count: candidate questions scaling with source
units rather than genuine forks is execution masquerading as decisions.

context/gotchas.md records the pattern and points at the SKILL.md
section rather than restating the rule.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
The fresh-context verification trigger — "after any multi-file edit
batch, and before declaring any multi-part task complete" — had no
scope, so a batch of ledger, checklist, and status-row edits satisfied
it as fully as a batch of source files. Applied that way it spawns
verifiers on the bookkeeping about the work, and then on the records
those verifications produce, so the process feeds itself and the
ceremony outgrows the work.

fable-5's orchestration chapter is the authoritative home, because it
owns the trigger that misfires; the rule lands as a scope qualifier on
that trigger rather than a new section. Ceremony scales with blast
radius: what a consumer receives takes the full independent-verifier
gate, memory-tier bookkeeping takes the in-context floor and stops
there however many files a batch touched, and a verifier is never
spawned to verify a record OF a verification. context/verification.md
is untouched — its adversarial-self-review section already scales with
blast radius and already points here as the owner of the gate.

The orchestrate skill's imperative 3 carries a terse self-contained
clause saying the same thing, because that skill also exports its
imperatives as a paste-ready brief that is model- and tool-agnostic by
construction — nothing in it may depend on a repo file, so a pointer is
not an expressible form there. It sits in the sub-clause body, leaving
the compact headline-only export unchanged.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
The tripwire led its own bolded paragraph, and in this skill body every
bolded lead-in is a distinct standing rule — so the discriminator read
as a second rule with its own scope rather than as the test for the one
above it. It now sits inline at the tail of that rule, one bolded lead
per rule as the surrounding paragraphs are shaped.

Wording and force are unchanged, so the 0.27.2 changelog entry still
describes it and no further version bump is due.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
@cursor

cursor Bot commented Aug 4, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@claude

claude Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Claude finished @kyle-sexton's task in 2m 57s —— View job


Review complete

  • Gather context (PR diff, CLAUDE.md, REVIEW.md)
  • Understand the request (code review for correctness/alignment)
  • Review planning/interview changes
  • Review playbooks fable-5 orchestration changes
  • Review session-flow orchestrate changes
  • Check changelog/version bump consistency
  • Post final review

This is a docs-only change (skill prose + changelogs + version bumps), scoped to three plugins. Verified: all three version bumps match their changelog entries (planning 0.27.1→0.27.2, playbooks 0.6.7→0.6.8, session-flow 0.17.21→0.17.22); all new bold-markers/backticks pair correctly; cross-references check out (the ### Acceptance criteria Brief section referenced at SKILL.md#L82 genuinely exists in context/loop.md's Brief template; the playbooks changelog's claim that context/verification.md already points at orchestration.md's "Fresh-context verification" section as gate-owner is accurate, so leaving it untouched is correct); the session-flow changelog's claim that the new sub-clause sits below the compact headline cutoff is accurate per the skill's own compact = headlines-only rule. The three prose additions (planning's bulk-application tripwire, playbooks' verification-scope clause, session-flow's imperative-3 scope) are mutually consistent in the rule they state. Per CLAUDE.md's fresh-docs mandate, none of this PR's changes touch a contract surface (frontmatter, manifest schema, hook contract) — only prose bodies and version numbers — so that mandate doesn't apply here, and the PR correctly doesn't invoke it.

Finding (Suggestion — test coverage):

  • Both plugins/planning/skills/interview/ and plugins/session-flow/skills/orchestrate/ carry evals/evals.json files with one eval per behavioral rule stated in SKILL.md (10 evals for interview, 7 for orchestrate — e.g. dependent-questions-split-across-rounds, sizes-small-ask-single-agent). This PR adds two new named, testable rules — the bulk-application tripwire in interview/SKILL.md#L82 (with a concrete tripwire condition: candidate-question count scaling with source units vs. genuine forks) and the process-record verification scope in orchestrate/SKILL.md#L57-L59 — but neither evals.json gained a corresponding entry. Both rules are exactly the kind of thing this repo's eval format is built to check (a specific prompt shape → an expected discrimination), and both were motivated by an observed real-world failure, which is usually the strongest source for an eval prompt. Not blocking for a docs-only fix, but leaves the new rule unverified by the mechanism the rest of the skill relies on. Add evals →

No correctness, architecture, or error-handling issues found in the reviewed diff.

@claude

claude Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Claude finished @kyle-sexton's task in 45s —— View job


Security review complete

  • Fetch PR diff and read changed files
  • Review for logic flaws, auth gaps, injection surfaces, secret handling, dangerous Actions patterns
  • Post findings

Scope reviewed: all 10 files changed in this PR (git diff origin/main...HEAD), confirmed against the PR's own file list — 3 plugin.json version bumps, 3 CHANGELOG.md additions, and prose edits to interview/SKILL.md, interview/context/gotchas.md, fable-5/context/orchestration.md, and orchestrate/SKILL.md.

Findings: none.

This PR is exactly what it claims to be — a docs/prose-only change:

  • No executable surface touched: no .github/workflows/*, no hooks/*.sh, no .mcp.json, no scripts, no code.
  • plugin.json diffs are single-line version bumps only — no permissions, userConfig, or other schema fields changed.
  • No new URLs, external references, or trust-boundary changes introduced (the only URLs present — json.schemastore.org, keepachangelog.com, howborisusesclaudecode.com — are pre-existing and unmodified by this diff).
  • No secrets, tokens, or credential-shaped strings anywhere in the diff.
  • Checked the diff for non-ASCII/hidden-character tricks (zero-width chars, bidi overrides, homoglyphs often used for prompt-injection smuggling in doc-based agent instructions) — the only non-ASCII characters present are ordinary em dashes and curly quotes, consistent with the surrounding unmodified prose style.
  • The new prose itself (interview scoping, verification-scope rules, orchestration imperative wording) is agent-doctrine content that constrains when verification/ceremony applies — it narrows behavior rather than granting new capability, egress, or trust delegation, so it doesn't raise the plugin-acceptance security review concerns (code execution, remote MCP servers, config secrets, cache isolation, data egress, third-party trust) called out in docs/MIGRATION-PLAYBOOK.md.

No CRITICAL, IMPORTANT, or SUGGESTION findings to report.

@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: 51735bd987

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

Comment thread plugins/planning/skills/interview/SKILL.md Outdated
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

Claude has reviewed this PR 2 times. The lane skips further automatic reviews after 5; deleting this comment resets the count.

…dd evals

Review findings on #1899, both verified against the skill body:

- Codex P2 (confirmed): the bulk-application rule demanded a Brief
  "### Acceptance criteria" line unconditionally, but the skill's domain
  routing bars general sessions from ever creating a Brief — incompatible
  instructions for a non-engineering corpus task. The execution contract
  now lands as one line in the session's output artifact routed by
  domain: the Brief's acceptance-criteria line in an engineering session,
  the shared-understanding summary in a general one. Changelog wording
  updated to match.

- claude[bot] suggestion (confirmed against repo convention of one eval
  per behavioral rule): both new rules gain evals — interview id 11
  exercises the corpus-collapse (two outputs, tripwire, no wayfind
  routing), orchestrate id 8 exercises imperative 3's shipped-vs-process
  scope and the never-verify-a-verification-record loop guard.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@claude

claude Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Claude finished @kyle-sexton's task in 1m 10s —— View job


Code review complete

  • Gather context (PR diff, CLAUDE.md, REVIEW.md)
  • Understand the request
  • Review planning/interview changes
  • Review playbooks fable-5 orchestration changes
  • Review session-flow orchestrate changes
  • Review new eval entries (added since last Claude review)
  • Consider Codex's P2 finding about non-engineering domain scope
  • Post final review

This PR has moved since the last automated review: commit b2ab92b landed after the earlier reviews and directly addresses both open findings.

Codex's P2 finding is resolved. The earlier wording unconditionally demanded a Brief ### Acceptance criteria line for bulk-application work, which conflicts with the skill's own domain routing (a general/non-engineering session never creates a Brief — SKILL.md#L33: "a PLAN.md Brief for an engineering task, a shared-understanding summary otherwise"). The fixup now reads "one line in the session's output artifact, routed by domain like every other output: the Brief's ### Acceptance criteria in an engineering session, the shared-understanding summary in a general one" (SKILL.md#L82), which is consistent with the pre-existing domain-routing rule stated at line 33 and reiterated throughout the file (lines 68, 73, 128, 152, 189, 203). Verified this is a genuine fix, not just wording — the rule now composes correctly for both engineering and general sessions.

The prior test-coverage suggestion is also addressed. Both evals.json files gained a new entry (interview id 11, orchestrate id 8) that exercises exactly the two new rules, following the existing entry shape (id/name/prompt/expected_output/files/expectations) and matching the repo's one-eval-per-behavioral-rule convention already in place.

Other things verified in this pass:

  • Version bumps match changelog entries: planning 0.27.1→0.27.2, playbooks 0.6.7→0.6.8, session-flow 0.17.21→0.17.22 (plugin.json diffs).
  • The session-flow changelog's claim that the new sub-clause sits below the compact-export cutoff is accurate: compact emits only the seven numbered headlines (SKILL.md#L192), and the new text is a sub-clause under imperative 3, not a headline itself.
  • The playbooks changelog's claim that context/verification.md's "Adversarial self-review" section already points at orchestration.md's "Fresh-context verification" as gate-owner checks out (verification.md#L84), so leaving that file untouched is correct rather than an oversight.
  • gotchas.md's new entry correctly points back to the SKILL.md rule it summarizes.
  • Per CLAUDE.md's fresh-docs mandate: none of this PR's changes touch a contract surface (frontmatter, manifest schema, hook contract) — only prose bodies, an eval fixture, and version numbers — so the mandate doesn't apply, and the PR correctly doesn't invoke it.

No correctness, architecture, or maintainability issues found in the current diff. Security review is out of scope for this lane per REVIEW.md's split (dedicated security lane already ran and found nothing).

@claude

claude Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Claude finished @kyle-sexton's task in 55s —— View job


Security review complete

  • Fetch PR diff (origin/main...HEAD at b2ab92b) and read all 12 changed files
  • Review for logic flaws, auth gaps, injection surfaces, secret handling, dangerous Actions patterns
  • Post findings

Scope reviewed: all 12 files changed in this PR (confirmed via git diff origin/main...HEAD --stat against the listed file set) — 3 .claude-plugin/plugin.json version bumps, 3 CHANGELOG.md additions, 2 evals/evals.json additions (added in the latest commit, b2ab92b, in response to the Codex/self-review fix), and prose edits to interview/SKILL.md, interview/context/gotchas.md, fable-5/context/orchestration.md, and orchestrate/SKILL.md.

Findings: none.

This PR remains exactly what it claims — a docs/prose-only change, and the latest commit (b2ab92b) only adds two new evals/evals.json fixtures plus a wording fix in interview/SKILL.md to route the execution-contract line by session domain. None of that changes the security posture:

  • No executable surface touched: no .github/workflows/*, no hooks/*.sh, no .mcp.json, no scripts, no code.
  • plugin.json diffs are single-line version bumps only (planning, playbooks, session-flow) — no permissions, userConfig, or other schema fields changed.
  • The two evals/evals.json additions (interview eval 11, orchestrate eval 8) are static JSON test fixtures (prompt/expected-output/expectations strings) — no executable eval-runner code, no new URLs, no interpolation into a shell or template context.
  • No new URLs, external references, or trust-boundary changes introduced (the only URLs present — json.schemastore.org, keepachangelog.com, howborisusesclaudecode.com — are pre-existing and unmodified by this diff).
  • No secrets, tokens, or credential-shaped strings anywhere in the diff.
  • Checked the diff for non-ASCII/hidden-character tricks (zero-width chars, bidi overrides, homoglyphs used for prompt-injection smuggling in doc-based agent instructions) — the only non-ASCII characters present are ordinary em dashes and curly quotes, consistent with the surrounding unmodified prose style.
  • The new prose itself (interview scoping, verification-scope rules, orchestration imperative wording) is agent-doctrine content that constrains when verification/ceremony applies — it narrows behavior rather than granting new capability, egress, or trust delegation, so it doesn't raise the plugin-acceptance security review concerns (code execution, remote MCP servers, config secrets, cache isolation, data egress, third-party trust) called out in docs/MIGRATION-PLAYBOOK.md.

No CRITICAL, IMPORTANT, or SUGGESTION findings to report.

@kyle-sexton

Copy link
Copy Markdown
Contributor Author

Review findings addressed in b2ab92b:

Finding Source Classification Action
Brief acceptance-criteria line contradicts general-session domain routing Codex P2 (inline) VALID (fix now) Execution contract domain-routed (Brief line for engineering, shared-understanding summary for general); changelog updated
New rules lack evals claude[bot] suggestion VALID (fix now) interview eval id 11 (corpus-collapse + tripwire), orchestrate eval id 8 (shipped-vs-process scope + verification-record loop guard)

Both verified against the skill bodies before fixing; independent adjudication pass runs before thread resolution.

@kyle-sexton
kyle-sexton merged commit 3005a49 into main Aug 4, 2026
32 checks passed
@kyle-sexton
kyle-sexton deleted the fix/interview-execution-container branch August 4, 2026 02:16
kyle-sexton added a commit that referenced this pull request Aug 4, 2026
…chain (#1906)

## Summary

Fixes the remaining two root causes behind the doc-corpus campaign drift
(owner diagnosis, 2026-08-03): handoff chains preserved state perfectly
and intent not at all, and no resume path re-anchored on the goal.

- **Handoff document schema** (`reference/structure.md`) — new mandatory
section 1, **Original goal**: the user's goal quoted verbatim with its
date (never paraphrased; `RECONSTRUCTED` marker when the user never
wrote one sentence), an **Amended** field that changes only on the
goal-setter's explicit statement with prior goals retained, and a
one-sentence tie from the first remaining action to the goal. Body
renumbered to 14 sections; every numeric reference swept.
- **Immutability across the chain** (`skills/handoff/SKILL.md`) —
successor handoffs copy the goal from the prior file on disk, unchanged,
never rebuilt from conversation; the post-write checklist enforces it,
and the prompt-only path carries the verbatim goal line between the
rails.
- **Goal-alignment on resume, three complementary homes** — the
resume-prompt directive (`reference/save-point.md`) checks it on every
resume; `keep-going` makes it the FIRST reconciliation check on the
interrupted path; `reanchor` treats it as a premise, performing the
cross-link quote comparison only it can do (a re-derived quote reports
as drift — the paraphrase IS the drift), disclaims sole ownership, and
hands misalignment to keep-going. None of the three licenses amending
the goal on the session's own authority.
- Gotchas entry records the mechanism; six new evals across the three
skills exercise the rules; session-flow `0.17.23`.

## Test plan

- Docs-only change (skill prose + evals JSON + changelog + version
bump); no executable surface touched.
- Independently verified by a fresh-context Fable verifier with
rationale withheld against 10 binary criteria (schema completeness,
renumbering sweep via bash grep, immutability instructions, all three
homes' consistency, eval shape/accuracy, changelog/version accuracy,
scope) — 10/10 PASS; its one wording defect (stale pre-fix rationale in
reanchor's check 5) is fixed in `24c4db56`.
- CI markdown lint + skill-quality gates.

## Related

- No linked issue.
- Companion to #1899 (merged): together they close all four
owner-diagnosed drift root causes — #1899 bounded `/interview` to
decisions and scoped verification ceremony; this PR makes the goal
durable across handoff chains and re-anchored on every resume.
session-flow `0.17.23` is serialized directly atop #1899's `0.17.22`.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
kyle-sexton added a commit that referenced this pull request Aug 4, 2026
…tion audit with the live prompting guide (#1908)

## Summary

Doc-alignment roster row 1: align repo doctrine and the instruction
audit with the live **Prompting Claude Fable 5** page
(platform.claude.com). The live page was re-fetched and is
byte-identical to the repo's 2026-07-29 capture, so this ships what the
page implies and the repo lacked — nothing in the repo misstated it.

**playbooks 0.6.9** (fable-5 doctrine):

- `context-economy.md` — the late-session decay ladder gains a fourth
bullet naming a remaining-context number as a NON-signal (the page's
"Rare cases of context-budget concern"). Scoped to the model's own
initiative; an instructed stop outranks it under meta-rule 1, so sibling
plugins that deliberately gate on the window keep working.
- `communication.md` — new assessment-versus-change gate ("Assessment is
a deliverable; a fix is a different one"): report-and-stop on
problem/question framings, evidence bar before state-changing actions.
Repairs `opus-4-8.md`'s pre-existing pointer to a section that did not
exist.
- `orchestration.md` — non-blocking dispatch: keep working while
independent workers run; continue an oriented worker rather than
respawn.
- `execution.md` — bound on defensive over-building: boundary-only
validation, no cleanup around a bug fix, no abstraction before the
second real caller, no shim where changing the code is available.
- `SKILL.md` — core-doctrine lines for all four (they fire before their
chapters' load triggers plausibly would).

**claude-config 0.21.1** (criteria 1.9.0, IA-2 model-delta cluster):

- New row **I8-d** (short-turn assumptions, Model scope fable-5) with
three fences keeping it off output-length instructions, surface-owned
latency requirements, and documents about the pattern.
- I8 base row gains the delegation throttle as a named worked instance,
fenced for caps with non-model rationale.
- SKILL.md discloses both as lane-only (not scanner-seeded).

Deliberately NOT shipped, with verified reasoning: the IA-2(d)
context-budget audit row — it fires on nine deliberate in-repo
context-gating surfaces (context-guard exists on purpose), and its
config half (`totalTokensReminder` /
`CLAUDE_CODE_TOTAL_TOKENS_REMINDER`) appears on no official
settings/env-var/model-config/context-window page. The finding shipped
as the context-economy doctrine bullet instead.

## Test plan

- Docs-only (skill prose, criteria, changelogs, version bumps).
- Producer verification: both audit-instructions test suites pass (46 +
41 checks), skill-quality gate zero errors with warning counts identical
to base, markdownlint clean, zero new I6 bare-prohibition candidates,
all cross-references resolve.
- Independent fresh-context Fable verifier, rationale withheld, 7 binary
criteria — including its own live-page fetch and byte-diff,
verbatim-quote checks on criteria sources, independent reproduction of
every producer verification claim, both IA-2(d) non-ship legs verified
(in-repo deliberate instances enumerated; env vars absent from live
official docs), eval-convention check (does not extend to these surfaces
— verified against the last five doctrine commits and
#1881/#1882/#1884), and merge-readiness vs current main — **7/7 PASS,
empty defect list**.

## Related

- No linked issue.
- Doc-alignment per-document loop, roster row 1 (memory-tier roster;
rows 2+ follow). Companion context: #1899, #1906 (drift root-cause fixes
that preceded the loop).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
kyle-sexton added a commit that referenced this pull request Aug 4, 2026
…ims (#1909)

## Summary

Doc-alignment roster row 2: **Introducing Claude Fable 5 and Claude
Mythos 5** (the canonical platform page; the anthropic.com launch post
is a separate roster row, read as corroborating voice only).

**playbooks 0.6.10** — the fable-5 calibration chapter's Mythos 5 worked
instance gains its custody record. It carried two true observations
(Mythos row in the thinking per-model matrix; known-but-unselectable
registry entry in Claude Code) with no account of why they differ. The
introducing page states the reason — "Claude Mythos 5 is not generally
available: it is offered in limited availability to approved customers
in Project Glasswing" (fetched 2026-08-03) — added as one pointer + one
quoted sentence + one date, per the section's own no-pasted-matrix rule.
The negative the instance rests on was verified rather than assumed: the
matrix page carries the row and no access-availability signal (its only
availability language, a zero-data-retention note, covers both models
identically).

**claude-config 0.21.2 / criteria 1.10.0** — audit-instructions row
I10's Model-scope ground moves from an omission reading to the
introducing page's positive statement ("Claude Mythos 5 does not include
these classifiers"), cited as a deliberate two-step chain — the
introducing page owns the classifier-set exclusion for Mythos 5; the
refusals-and-fallback page owns `reasoning_extraction`'s membership in
that set — because collapsing them would rebuild the near-miss scope
inheritance the catalog's own model-scoping block forbids. Scope
conclusion unchanged (`fable-5`).

Deliberately not done: no docpage-digest slice produced (queue entry
retained); no duplicate Fable/Mythos criterion (the worked instance is
that rule); boris vendor surfaces untouched; row 11's IA-4 evidence left
to its own row.

## Test plan

- Docs-only (skill prose, criteria, changelogs, version bumps);
markdownlint clean; both plugin.json parse.
- Producer ran a fresh-context reviewer (rationale withheld) that
fact-checked both quotes against live pages and audited against
criteria.md's own binds-on-touch rules.
- Independent fresh-context Fable verifier, 7 binary criteria — its own
live fetches of all three pages, verbatim-quote checks (both quotes
character-exact), verified-negative adjudication, two-step chain
integrity, version/changelog accuracy, hygiene — **7/7 PASS**; its one
minor wording defect ("no availability signal of any kind" overclaimed
vs the page's ZDR note) fixed in `e6ffa40fb2`.
- Rebased onto main after #1908; version stack asserted: playbooks
0.6.10 > 0.6.9, claude-config 0.21.2 > 0.21.1, criteria 1.10.0 > 1.9.0.

## Related

- No linked issue.
- Doc-alignment per-document loop, roster row 2. Predecessors: #1908
(row 1), #1899/#1906 (drift root-cause fixes).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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