Uh oh!
There was an error while loading. Please reload this page.
Use 6-char lever ID prefix, positive framing, and exact-count instruction - #460
Closed
neoneye wants to merge 1 commit into
Closed
Use 6-char lever ID prefix, positive framing, and exact-count instruction#460neoneye wants to merge 1 commit into
neoneye wants to merge 1 commit into
Conversation
…tion
Replace full UUIDs with 6-char prefixes in lever_details_for_prompt to
prevent models from copying long UUIDs into synergy/conflict text. Map
prefixes back to full UUIDs when processing the response.
Add positive framing ("refer to levers by their name") instead of
negative prohibition which caused regression in llama3.1 (PR #458).
Add exact-count instruction to suppress haiku's fabricated extra entries.
Update OPTIMIZE_INSTRUCTIONS to document the negative-priming lesson.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>neoneye
commented
Mar 31, 2026
MemberAuthor
Self-improve iteration — analysis 62Verdict: CONDITIONAL UUID contamination: fully eliminated (32 → 0)
Haiku regression: 7 → 43 fabricated-ID errors (+514%)
Recommended fix: Use full UUIDs for function-calling models ( |
neoneye
commented
Mar 31, 2026
MemberAuthor
Closing — 6-char prefix causes haiku regression (7→43 fabricated-ID errors). Will implement model-type-aware identifier: full UUIDs for function-calling models, 6-char prefix for text-completion models. |
neoneye added a commit
that referenced
this pull request
Mar 31, 2026
Replace full UUIDs with integer indices (1, 2, 3...) in the per-batch prompt to prevent UUID contamination in free-text fields. Map indices back to full UUIDs when processing the response. Integer indices work universally for both text-completion and function-calling models, unlike 6-char hex prefixes which degraded haiku (PR #460) or negative prohibitions which backfired on llama3.1 (PR #458). Add positive framing ("refer to levers by their name") and exact-count instruction ("Return exactly N characterizations"). Update OPTIMIZE_INSTRUCTIONS with lessons from PRs #457-460. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This was referenced Mar 31, 2026
neoneye added a commit
that referenced
this pull request
Mar 31, 2026
…ences field Replace "Do NOT include 'Controls ... vs.', 'Weakness:'" with "Focus on cause-effect relationships and factual outcomes; save critical assessments for the review_lever field." in both Lever and LeverCleaned Pydantic models. The negative prohibition names exact banned phrases that small models (llama3.1) copy as templates — the same anti-pattern that caused regressions in the enrich step (PRs #458, #460). Positive framing guides the model toward the desired behavior without priming the unwanted pattern. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
4 tasks
neoneye added a commit
that referenced
this pull request
Apr 1, 2026
Document proven failure modes and fixes from 10 self_improve iterations: - Field-description template lock: expanded with evidence from PR #484 (the fix) and PR #479 (replacement phrase also locks). Strip to content-type + word count, let examples teach. - Negative prohibitions activate banned patterns: confirmed across PRs #458, #460, #475. Use positive framing instead. - Consequence parroting in later calls: llama3.1 copies consequences into review_lever. Anti-parrot needed in subsequent-call prompt. - Field descriptions vs system prompt consistency: haiku follows system prompt, text-completion models follow field descriptions. - Stripping field descriptions too far: weak models need "one sentence" and section pointer as structural anchors. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
lever_details_for_prompt(Lever ID: {uuid}→Lever {uuid[:6]}). Map prefixes back to full UUIDs when processing the response. Eliminates the source of UUID contamination without losing lever matching.Supersedes #458 (negative prohibition backfired).
Test plan
🤖 Generated with Claude Code