Skip to content

fix: cruise hint skip condition — enumeration-recall test, not content-in-context - #32

Merged
zheng-weihao merged 1 commit into
orbcli:mainfrom
zheng-weihao:cruise-hint-recall
Aug 12, 2026
Merged

zheng-weihao merged 1 commit into
orbcli:mainfrom
zheng-weihao:cruise-hint-recall

Conversation

@zheng-weihao

Copy link
Copy Markdown
Member

Problem

The cruise hint's skip condition — "skip only if its content is already in your context" — is unreliable after a compaction. A compaction summarizes the head of the conversation, and the summary typically preserves paraphrases of the skill (goal / workflow / rules). Asked whether the skill content is "in context", the model sees those paraphrases and misjudges presence — so it skips the reload and keeps working without the actual rules. A presence check cannot distinguish content from a summary's paraphrase of content.

Change

The skip condition becomes an enumeration-recall test:

skip only if you can fully recall its "Safety rules" section, count included, from the loaded skill text — not from a summary; on any doubt, invoke

Design points:

  • Named section. "Safety rules" is a titled section of the skill, so "the full set, and how many" has a definite referent. A summary typically preserves at most a single-rule paraphrase, not the full enumeration with its count.
  • Source exclusion. "from the loaded skill text — not from a summary" names the remaining failure mode (a summarizer diligent enough to keep the full enumeration) as an explicit exclusion instead of leaving provenance implicit.
  • Doubt default. Uncertainty collapses toward one cheap tool call, never toward skipping.

To make the count a first-class anchor, the Safety rules in SKILL.md are now numbered 1–6 (content unchanged).

No interface or mechanism change — hint wording, docs, and tests only.

Surfaces

  • hooks/session-resume.sh — hint + header comment (shared by Claude / Qoder / Codex)
  • .opencode-plugin/plugin.ts — CRUISE_HINT
  • .opencode-plugin/plugin.test.ts — assertions pin the four design points (named section / count / source exclusion / doubt default), plus a negative assertion against the old condition
  • skills/orbit/evals/evals.json — cruise-tier expectation updated to the new semantics
  • docs/spec-hooks.md — hint contract section quotes the new hint verbatim; auto-approve section gains a boundary bullet (auto-approve cuts confirmation friction; it is not a security boundary — allow-only, never deny)
  • USAGE.md — same one-line boundary note
  • skills/orbit/SKILL.md — Safety rules numbered 1–6 (content unchanged)

Plugin tests: 16/16 green.

…t-in-context

A presence check cannot distinguish skill content from a summary's paraphrase of it after a compaction, so the old condition misjudged and skipped the reload. The cruise hint now asks for enumeration recall of the skill's "Safety rules" section (count included, source-excluded, doubt-default invoke); SKILL.md numbers the rules 1-6 as the count anchor. Wording + docs + tests only, no interface change.

Signed-off-by: zheng-weihao <zheng-weihao@outlook.com>
@zheng-weihao
zheng-weihao merged commit dbba0a0 into orbcli:main Aug 12, 2026
2 checks passed
@zheng-weihao
zheng-weihao deleted the cruise-hint-recall branch August 24, 2026 11:08
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