Skip to content

fix(session-flow): carry the user's original goal across the handoff chain - #1906

Merged
kyle-sexton merged 5 commits into
mainfrom
fix/handoff-goal-preservation
Aug 4, 2026
Merged

fix(session-flow): carry the user's original goal across the handoff chain#1906
kyle-sexton merged 5 commits into
mainfrom
fix/handoff-goal-preservation

Conversation

@kyle-sexton

Copy link
Copy Markdown
Contributor

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

🤖 Generated with Claude Code

https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X

kyle-sexton and others added 2 commits August 3, 2026 22:19
…chain

A handoff chain preserved state perfectly and intent not at all. The goal
appeared in exactly one place — a line inside the six-line Resumption brief, a
section whose own contract is to restate facts owned below — so every hop
re-derived it from a conversation that had already lost it, and what survived
was the phase, the bundle, and the checklist in front of the writer. Each
resumed session then optimized the wrong objective faithfully, with nothing on
any resume path testing the work against what it was for.

reference/structure.md now opens with body section 1, Original goal: the user's
statement quoted verbatim with its date, an Amended: line changeable only on an
explicit dated statement from whoever set the goal, and a drift-check line tying
the first remaining action back to the goal. Immutability is enforced as a step
rather than an adjective — whenever previous_handoff is emitted, the write
procedure opens that file from disk THIS turn and reproduces its quote and
amendments unchanged. Completion criteria now require both halves, the goal-state
a criterion establishes and the command or diff that settles it, with process
milestones demoted to a subordinate sub-heading. Sections renumbered 1-14.

The alignment check on resume lives in three complementary homes, none of them
sufficient alone. The resume-prompt directive carries it on every resume,
including the dominant bare paste that invokes no skill at all. keep-going owns
the interrupted path, running goal alignment before it restates position.
reanchor covers the deliberate "is this still current" pass as a fifth premise
check, and because it reads a chain it is the only one that can compare the
quotes across links and report a re-derived goal as drift; it reports and hands
to keep-going, never amending a goal or re-deriving the next action.

handoff's post-write checklist, its gotchas index, and eval cases across all
three skills carry the same rules, so a writer is checked against them.

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

Verifier finding: "nothing else on any resume path ever tests it" was
pre-fix rationale that survived into post-fix text — false by this same
change's design, and contradicted by the file's own "Does not solely own
the goal check" item. Rescoped to the one test only reanchor performs:
the cross-link quote comparison.

Co-authored-by: Claude Fable 5 <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 4m 21s —— View job


Reviewing PR #1906

  • Gather context (diff, changed files, CLAUDE.md)
  • Understand the request (code review of correctness, architecture, error handling, test coverage, maintainability)
  • Review reference/structure.md schema changes
  • Review skills/handoff/SKILL.md + gotchas + evals
  • Review skills/keep-going/SKILL.md + evals
  • Review skills/reanchor/SKILL.md + evals
  • Review reference/save-point.md
  • Review CHANGELOG.md and plugin.json version bump
  • Post final review

Summary

This is a docs-only change (skill prose, evals JSON, changelog, version bump — no executable surface, so this stays out of the fresh-docs mandate's contract-surface scope). The renumbering sweep (§1 → §14) is thorough and internally consistent — I checked every section N / §N cross-reference in reference/structure.md against the new table and they all land correctly, including the ones several sections away from the actual edits (e.g. the "waiting on a blocker" example now correctly cites §13). The six new evals match the "six new evals" claim in the PR body, IDs are sequential with no gaps/dupes in all three files, and the 24c4db5 follow-up commit is a legitimate self-correction (removes a stale "nothing else tests it" claim that the same diff's own "Does not solely own the goal check" bullet already contradicted).

Finding

The new mandatory prompt-only "goal line" isn't reconciled with the pre-existing /goal first-line rule, in the one place written specifically to reconcile overlapping rail content.

  • reference/save-point.md#L101 adds: prompt-only "carries the verbatim goal line inline between the rails, above its remaining-work bullets."
  • reference/save-point.md#L137-141 (pre-existing, unchanged) requires: when a /goal is active, "the FIRST line between the rails starts with literal /goal <condition>."
  • Both are now mandatory content that can appear between the rails simultaneously on the prompt-only path, and neither text says which comes first relative to the other.
  • reference/save-point.md#L220-226 — "Combining both:" — is the paragraph this file already maintains specifically to resolve exactly this kind of overlap (it settles /goal vs. /loop ordering explicitly: "/goal keeps its place as the first line... the /loop re-arm follows as the separate message"). It was not updated to mention the new goal-quote line at all.
  • skills/handoff/SKILL.md#L161-163 (the enforcement checklist) repeats the same gap — it asserts the goal line's position relative to the remaining-work bullets but says nothing about its position relative to an active /goal.

The eval suite bakes in an implicit resolution — skills/handoff/evals/evals.json eval 8 expects "An active /goal still occupies the FIRST line between the rails — the goal line does not displace it" — but that resolution exists only in the eval, not in any instruction a session executing the skill would actually read. Since this PR's whole thesis is that unstated/implicit rules are exactly what causes silent drift, this is a gap worth closing: either fold the goal-quote line into the "Combining both" paragraph's explicit ordering (/goal line, then goal quote, then remaining-work bullets), or state the ordering directly where the goal-quote rule is introduced.

Everything else — the immutability/disk-read mechanism, the three-homes goal-alignment coverage (resume directive, keep-going, reanchor), the completion-criteria goal-framing rule, and the changelog/version bump — is well-reasoned and consistent with the stated design.

@claude

claude Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

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


Security review — PR #1906

  • Gather context (PR diff, changed files)
  • Review each changed file for security issues
  • Check for injection surfaces, auth gaps, secret handling, dangerous workflow patterns
  • Post findings

Scope reviewed: all 11 files in the diff (3005a49...24c4db5), confirmed to match the PR's stated file list exactly:
plugin.json, CHANGELOG.md, reference/save-point.md, reference/structure.md, skills/handoff/SKILL.md, skills/handoff/context/gotchas.md, skills/handoff/evals/evals.json, skills/keep-going/SKILL.md, skills/keep-going/evals/evals.json, skills/reanchor/SKILL.md, skills/reanchor/evals/evals.json.

Findings

None. This PR is a docs/skill-prose change only:

  • No executable code, scripts, hooks, or GitHub Actions workflows are touched — everything modified is markdown skill instructions, a JSON eval fixture, a changelog, and a version/description bump in plugin.json.
  • No new file I/O, network calls, subprocess invocation, or template-expansion logic is introduced. The "read the prior handoff file off disk and copy its Original goal verbatim" instruction (reference/structure.md) is a prompt-engineering directive for the agent's own read of a file it already owns and already reads on every handoff — it doesn't add a new trust boundary crossing or an ingestion path for content the agent wasn't already consuming.
  • No secrets, tokens, or credentials appear in any of the changed text; the existing "Claim provenance" / redaction-pass rules referenced elsewhere are untouched by this PR.
  • plugin.json's only change is version (0.17.220.17.23) and the description string — no permissions, hooks, MCP server entries, or manifest capability fields changed.
  • No pull_request_target/workflow_run usage, no permissions: blocks, no action pins — this PR touches zero .github/workflows files.

One observation, not raised as a finding: the new rule mandates quoting the user's goal verbatim and forbids paraphrasing it across handoff hops. Verbatim, unsummarized propagation of user-authored text through files that get re-read into a fresh agent context on every resume is, in the abstract, the kind of pattern that can carry an embedded instruction forward if the "user" turns out to be untrusted (e.g., goal text sourced from an external, attacker-influenced channel). This isn't a new vector introduced by this PR, though — the handoff engine already reads these files as directive content on resume regardless of this change, and the "goal" is explicitly scoped to what the interactive user themselves typed. Flagging only for awareness, not as an actionable defect in this diff.

@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: 24c4db56ab

ℹ️ 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/session-flow/skills/keep-going/SKILL.md Outdated
Comment thread plugins/session-flow/reference/save-point.md Outdated
Comment thread plugins/session-flow/skills/handoff/evals/evals.json
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

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

plugin-gate remediation: the catalog block in docs/CATALOG.md is
generated from plugin manifests and went stale with the version bump.

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 2m 23s —— View job


Reviewing PR #1906 (re-review after synchronize)

  • Gather context (diff since last review, new commits)
  • Identify what changed since the last code-review pass (commit 24c4db5f0b672d)
  • Review new/changed content against CLAUDE.md guidelines
  • Post final review

Summary

The only change since the prior review pass is f0b672d — a mechanical docs/CATALOG.md regeneration (plugin-gate remediation) touching one line to reflect session-flow 0.17.23's updated reanchor description. Verified it's scoped correctly: the added clause ("and the goal a handoff records, compared across the chain so a re-derived goal reports as drift") accurately reflects plugins/session-flow/skills/reanchor/SKILL.md's frontmatter description change in this same PR, and nothing else in the catalog block moved. No architecture, error-handling, or test-coverage surface touched by this commit — nothing new to flag there.

Open findings carried forward (unresolved as of HEAD f0b672d)

Since this commit doesn't touch any of the files involved, the findings raised on the prior pass still stand at HEAD:

  1. Goal-line vs. /goal ordering is still unstatedreference/save-point.md's "Combining both" paragraph (L220-226) is this file's designated place for resolving overlapping rail content, and it was not updated to mention the new goal-quote line's position relative to an active /goal's first line. skills/handoff/SKILL.md's prompt-only checklist (L161, L168) has the same gap — two separate bullets, no stated relative order. The eval suite encodes an implicit answer (skills/handoff/evals/evals.json eval 8) that no instruction actually states.
  2. Codex's three P2 comments (goal-check ordering in keep-going/SKILL.md:77 relative to off-thread recovery steps 1-3; amendment-history loss on prompt-only handoffs in save-point.md:113; missing goal-context setup in the prompt-only eval at evals.json:104) are all still open — none require a code change to dismiss, they're substantive.

None of these are blocking-severity for a docs-only skill-prose PR, but since the PR's own thesis is that unstated/implicit rules are the drift mechanism it's trying to close, closing the "Combining both" gap before merge would make the fix internally consistent with itself.

@claude

claude Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

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


Security review — PR #1906

Scope reviewed: all 12 files in the diff — docs/CATALOG.md, plugins/session-flow/.claude-plugin/plugin.json, plugins/session-flow/CHANGELOG.md, plugins/session-flow/reference/save-point.md, plugins/session-flow/reference/structure.md, plugins/session-flow/skills/handoff/SKILL.md, plugins/session-flow/skills/handoff/context/gotchas.md, plugins/session-flow/skills/handoff/evals/evals.json, plugins/session-flow/skills/keep-going/SKILL.md, plugins/session-flow/skills/keep-going/evals/evals.json, plugins/session-flow/skills/reanchor/SKILL.md, plugins/session-flow/skills/reanchor/evals/evals.json.

Findings

None.

  • No executable code, scripts, hooks, or GitHub Actions workflows are touched — every changed file is markdown skill prose, JSON eval fixtures, a changelog, a catalog description string, or a version/description bump in plugin.json.
  • plugin.json's only change is version (0.17.220.17.23) plus the description string — no permissions, hooks, MCP server entries, or manifest capability fields changed.
  • The new "read the prior handoff file off disk and copy its Original goal verbatim" instruction (structure.md#L428-L436) is a prompt-engineering directive over a file the agent already owns and already reads on every handoff — it introduces no new trust-boundary crossing, no new file I/O primitive, and no template-expansion or command-construction logic. The goal text is scoped to what the interactive user themselves typed, not an externally-sourced or attacker-reachable channel.
  • No secrets, tokens, or credentials appear in any changed text; the pre-existing "Claim provenance" / redaction-pass rules (save-point.md) are referenced but not altered by this PR.
  • The eval JSON additions (skills/*/evals/evals.json) are static fixture data — prompts and expected-output strings for a model-graded eval harness, not executable code or shell input.
  • Zero .github/workflows files touched — no pull_request_target/workflow_run usage, no permissions: blocks, no action pins, no CI-relevant changes to review under the supply-chain/trigger lane (that lane is zizmor's remit anyway per this review's scope, and it has nothing to statically flag here since no workflow file changed).

One observation, carried forward from the first pass on this PR and still applicable, not raised as an actionable finding: mandating verbatim (never paraphrased) propagation of user-authored goal text across handoff files that get re-read into a fresh agent context on every resume is, in the abstract, the shape of pattern that can carry embedded instructions forward if that text's source were ever untrusted. This PR doesn't introduce a new vector — the handoff engine already reads these files as directive content on every resume regardless of this change, and the "goal" is explicitly scoped to text the interactive user themselves typed, not an external or attacker-reachable input.

kyle-sexton and others added 2 commits August 3, 2026 22:43
F1 (claude[bot]): the /goal-vs-goal-quote ordering on prompt-only was
stated only in eval 8's expectation. save-point.md now states it where
the prompt-only goal rule is introduced ("Original goal — mandatory on
BOTH paths") and in the "Combining both" paragraph: an active /goal
keeps the first line, the verbatim goal quote comes next, then the
remaining-work bullets. The handoff checklist's prompt-only line carries
the same clause.

F2 (Codex): keep-going ran its goal-alignment check in step 4, after
step 3 had already resumed/restarted off-thread work — so it could
restart work serving a drifted goal and discover the misalignment after.
Goal alignment is now its own step 3, after the read-only
inventory/inspection (steps 1-2) and before any recovery action
(step 4); reconcile and report renumber to 5-6. The nothing-off-thread
case, save-point.md's cross-reference, and eval 7 track the new
structure.

F3 (Codex): the prompt-only path required a singular verbatim goal line,
discarding the amendment history structure.md's Amended field preserves.
save-point.md now defines the inline form: with recorded amendments the
prompt carries the original dated quote plus every dated amendment
("amended <date>:" lines), verbatim and copied unchanged on later hops;
a bare single line is valid only when no amendment exists. The handoff
checklist asserts the same.

F4 (Codex): handoff eval 8's prompt supplied neither a quotable user
goal nor an active /goal, so its expectations could not be exercised.
The prompt now states the goal verbatim and an armed /goal, and the
expectations match the F1 ordering rule.

CHANGELOG [0.17.23] extended to cover the ordering rule, amendment
carriage, and keep-going's dedicated goal-alignment step (no version
bump; unreleased).

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ow summaries

Verifier observation: keep-going's one-line flow summary and the README
command index elided the new stage without contradicting it; folded in
so neither reads as inventory-then-straight-to-recovery.

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 21s —— View job


Reviewing PR #1906 (re-review after synchronize)

  • Identify what changed since the last code-review pass (f0b672d4b7beb9)
  • Verify 232caff actually resolves the 4 previously-open findings (F1: goal-line//goal ordering, F2: keep-going check ordering, F3: amendment-history carriage, F4: eval 8 setup)
  • Verify 4b7beb9's flow-summary edits are consistent with the reordered steps
  • Sweep for any new cross-reference breaks introduced by the renumbering
  • Post final review

Summary

Two commits landed since the last pass, 232caff (resolves my prior finding plus Codex's three P2s) and 4b7beb9 (a small follow-up folding the reordered step into two flow summaries). I verified both against the actual diff and the current file state rather than taking the commit messages at their word. All four findings are substantively closed:

F1 — goal-line vs. /goal ordering (save-point.md#L111-113, #L230-240) — the "Original goal" rule and the "Combining both" paragraph now both state the order explicitly and consistently: active /goal keeps the first line, the verbatim goal quote comes next, remaining-work bullets last. skills/handoff/SKILL.md#L161-165 (the enforcement checklist) carries the same clause. This is no longer implicit-only in eval 8 — it's stated where a session would actually read it.

F2 — keep-going goal-check ordering (keep-going/SKILL.md#L63-82) — goal alignment is now its own step 3, explicitly positioned after the read-only inventory/inspect steps (1-2) and before recovery actions (step 4, resume/restart/kill). The rationale line ("steps 1-2 only read, but step 4 resumes and restarts work... restarting work that serves a drifted goal re-arms the drift before anything has tested it") directly answers Codex's concern. Eval 7 asserts the same ordering.

F3 — amendment-history carriage on prompt-only (save-point.md#L117-123) — a bare single goal line is now valid only when no amendment is recorded; once one exists, the prompt-only form must carry the original dated quote plus every dated amended <date>: line, verbatim, on later hops. The handoff checklist (SKILL.md#L161-165) states the same.

F4 — handoff eval 8 setup (evals.json#L100-111) — the prompt now states the goal verbatim and an armed /goal, so the expectations (goal-quote position relative to the /goal line) are actually exercisable rather than requiring the model to invent context.

4b7beb9 is a clean, narrowly-scoped follow-up: it updates keep-going's one-line flow summary (inventory → inspect → align on the recorded goal → act on evidence → continue) and the README command-index line (inventory → inspect → goal-align → recover → reconcile → report) so neither elides the new step. Verified against the reordered steps in keep-going/SKILL.md — both summaries now match the actual step sequence.

Cross-reference sweep: confirmed nothing else in this PR's changed files references keep-going's step numbers by number (reanchor/SKILL.md refers to it only by name, "hand to /session-flow:keep-going", never by step index), so the renumbering doesn't strand any pointer.

Verdict

No new findings. All four previously-open items are resolved with the actual instruction text, not just in eval expectations, which was the core of the original concern (this PR's own thesis is that unstated rules are the drift mechanism — the fix now practices what it's fixing). Nothing outstanding from this review.

@claude

claude Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

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


Security review — PR #1906 (re-review after synchronize, HEAD 4b7beb9)

  • Gather context (diff since last-reviewed SHA f0b672d, new commits)
  • Identify what changed since the last security review pass
  • Review new/changed content for security issues
  • Post findings

Summary

Two new commits landed since the last security-review pass: 232caff (fixes the three review findings — Codex's two P2s plus my own goal-vs-/goal ordering gap) and 4b7beb9 (folds the new goal-alignment step into the coarse flow summaries in README.md and save-point.md). Both are prose-only edits to CHANGELOG.md, README.md, reference/save-point.md, skills/handoff/SKILL.md, skills/handoff/evals/evals.json, skills/keep-going/SKILL.md, and skills/keep-going/evals/evals.json.

Full PR scope confirmed: 13 files, +367/-52, matching the PR's stated diffstat exactly — docs/CATALOG.md, plugins/session-flow/.claude-plugin/plugin.json, CHANGELOG.md, README.md, reference/save-point.md, reference/structure.md, skills/handoff/SKILL.md, skills/handoff/context/gotchas.md, skills/handoff/evals/evals.json, skills/keep-going/SKILL.md, skills/keep-going/evals/evals.json, skills/reanchor/SKILL.md, skills/reanchor/evals/evals.json.

Findings

None.

  • No executable code, scripts, hooks, or GitHub Actions workflows are touched in the new commits or across the PR as a whole — every changed file remains markdown skill prose, JSON eval fixtures, a changelog, a catalog description string, a README usage line, or the plugin.json version/description bump (0.17.220.17.23, no permissions/hooks/MCP entries).
  • The 232caff fixes (amendment-history preservation on prompt-only handoffs, goal-check ordering ahead of recovery actions in keep-going, and the reconciled /goal-line-vs-goal-quote ordering) are all prompt-engineering / documentation-ordering changes — they don't introduce new file I/O, network calls, subprocess invocation, or template-expansion logic beyond what was already reviewed.
  • Zero .github/workflows files touched at any point in this PR — no pull_request_target/workflow_run usage, no permissions: blocks, no action pins to loosen.
  • No secrets, tokens, or credentials appear in any changed text, including the new eval fixture content (skills/handoff/evals/evals.json eval 8, skills/keep-going/evals/evals.json eval 7) — these are static prompt/expected-output strings for a model-graded harness, not executable or interpreted input.

Carried forward from earlier passes, not a new finding: verbatim (never paraphrased, now also never-collapsed-across-amendments per 232caff) propagation of user-authored goal text through files re-read into a fresh agent context on every resume is, in the abstract, the shape of pattern that could carry embedded instructions forward if that text's source were ever untrusted. This PR doesn't introduce a new vector — the handoff engine already reads these files as directive content on every resume regardless of this change, and the "goal" is explicitly scoped to text the interactive user themselves typed, not an external or attacker-reachable input.

@kyle-sexton

Copy link
Copy Markdown
Contributor Author

Review findings addressed:

Finding Source Classification Fix
Goal-quote vs /goal ordering stated only in eval 8, not in instructions claude[bot] VALID (fix now) 232caff — ordering now in the goal-line rule, the "Combining both" paragraph, and the handoff checklist: /goal keeps the first line, quote directly below, bullets after
Recovery actions ran before goal alignment in keep-going Codex P2 VALID (fix now) 232caff — goal alignment is its own step 3, gating all recovery actions
Prompt-only hop discarded amendment history Codex P2 VALID (fix now) 232caff — "Amendments travel too": original dated quote + every dated amendment, verbatim, on every hop
Eval 8 scenario unexercisable Codex P2 VALID (fix now) 232caff — prompt now carries a verbatim goal + armed /goal; expectations exercise the ordering

Also: plugin-gate catalog drift fixed in f0b672d (regenerated docs/CATALOG.md); verifier-observed summary elision folded in 4b7beb9. Fix batch independently verified (fresh-context Fable, 6 criteria, rationale withheld): 6/6 PASS, empty defect list.

@kyle-sexton
kyle-sexton merged commit 63f48dd into main Aug 4, 2026
32 checks passed
@kyle-sexton
kyle-sexton deleted the fix/handoff-goal-preservation branch August 4, 2026 02:54
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