Skip to content

fix(skills): remove over-trigger backfire in 10 draft skills (codex) - #110

Open
areliw wants to merge 1 commit into
mainfrom
claude/backfire-over-trigger
Open

fix(skills): remove over-trigger backfire in 10 draft skills (codex)#110
areliw wants to merge 1 commit into
mainfrom
claude/backfire-over-trigger

Conversation

@areliw

@areliw areliw commented Jul 2, 2026

Copy link
Copy Markdown
Owner

What

Every skill that A/B-backfired (a weak model scored worse WITH the skill than without) — 10 in total — codex-diagnosed and fixed.

The finding

All 10 shared one mechanism: the skill made a weak model dump the whole framework/checklist and bury the actual answer on a simple question — ceremony, not bad content. Several backfires were also legacy single-pass measurements (per eval/AB-GATE.md, likely partly noise). Fix everywhere = an "ตอบคำถามจริงก่อน — ใช้กรอบเมื่อช่วยจริง" (answer-first) carve-out + an over-trigger anti-pattern.

Changes

Non-clinical (6) — codex EDIT, take/drop:

  • offload-to-automation — over-trigger + no-tool code-dump → answer-first + don't-over-automate-trivial
  • ai-agent-team — opened with org-chart/routing ceremony → answer-first, route internally
  • digital-judgmentalso fixes a real PDPA legal error (consent is one lawful basis, not the only one) + over-refuse
  • never-lose-a-file — dumped full doctrine (kept load-bearing delete-safety warnings)
  • know-yourself — forced a multi-round interview ritual (⛔ scoped to master-profile)
  • lab-clinic-business-judgment — dumped all 6 forks; softened absolutes

Clinical 🩸 (4)flag-only: codex EDIT but zero clinical content changed (only the additive answer-first carve-out + last_edited; every threshold/number/safety warning kept intact, verified — the only deleted line per file is the date):

  • clinchem-judgment, toxicology-judgment, infection-control-judgment, bloodbank-judgment
  • ⚠️ codex raised 1 CLINICAL-FLAG for human review: infection-control Fork 4 groups "หนองไหล/คุมอุจจาระไม่ได้" under negative-pressure-room logic — verify it doesn't over-steer room choice beyond the airborne decision.

Verification (honest)

Per eval/IMPROVE-PLAYBOOK.md, single-edit A/B is noise-dominated — codex expert-review is the verdict, not the number. A bounded re-A/B ×5 (fresh over-trigger traps) on 3 representatives confirmed the direction:

skill pre-edit re-A/B ×5 σ read
offload-to-automation −2 backfire +0.4 tie 0.49 backfire removed
clinchem 🩸 −1 backfire +0.4 tie 0.59 backfire removed
digital-judgment −1 backfire −0.6 style-cost −1.09 within noise; base 4.4 on off-axis copyright trap

All 3 within noise (nothing significant), exactly as the playbook predicts. The other 7 were not re-measured (single-edit A/B = noise); stale pre-edit rows remain but every skill is draft (non-gating). _ab_slim updated for the 3 measured; ab-coverage.json rebuilt.

Local gates: validate ✓ · ab-gate ✓ (10) · maturity-gate ✓ (10) · pytest ✓ (26). All 10 stay draft.

🤖 Generated with Claude Code

@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: 884fe6353b

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

> ✅ คำตอบที่ดีของงานแบบนี้ = โค้ดรันได้ + sanity check + กรอบที่ถูก — **ไม่ใช่** การปฏิเสธ และ**ไม่ใช่**เลขเดาที่ฟังดูมั่นใจ
> ถ้าใช่ **และ** (หลายขั้น / ข้อมูลมาก / มี constraint / ตรวจมือยาก / พลาดแล้วมีผล) → **อย่าตอบตัวเลขจากหัว** เขียน code/solver ก่อนแล้วตอบจากผลรัน
> ⚠️ **แต่ห้าม over-trigger:** คำถามเล็ก / ครั้งเดียว / คำนวณ 1-2 ขั้น / เป็นความรู้ MT ที่ตอบตรงๆ ได้ → **ตอบคำตอบจริงก่อน** + สูตร/เหตุผลสั้น (คิดแล้วตรวจทวนได้ ไม่ต้อง "เดา") · **ห้ามเปลี่ยนคำถามง่ายให้กลายเป็นโปรเจกต์ automation** และห้าม deflect เว้นแต่ผู้ใช้ขอ
> รัน code ไม่ได้? → **ให้คำตอบที่ดีที่สุด + วิธีคิด/สูตร + จุดตรวจซ้ำก่อน** แล้วค่อยแนบโค้ดที่รันได้ + ติดป้าย "ตัวเลขยังไม่ยืนยันจนกว่าจะรัน" — อย่าส่งแต่โค้ดแล้วหยุด

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Keep no-tool exact answers from becoming estimates

For prompts that satisfy the high-risk trigger above (many steps/data/constraints or consequences) but run in a chat model without code execution, this new instruction now asks for the "best answer" before the runnable code. That conflicts with the unchanged Step 5 guidance later in this same skill that numbers must come from a run and not from an estimate, so no-tool environments can put an unverified schedule/calculation in the answer despite this skill’s core purpose of preventing improvised exact outputs.

Useful? React with 👍 / 👎.


> **VERDICT: อย่ารายงาน "positive" จาก screen เดี่ยว — confirm ด้วย GC-MS/LC-MS ก่อนเสมอ.** #1 trap: ให้ antidote/chelator ผิดคู่ = ตาย (Na-EDTA แทน Ca-EDTA, BAL กับ Cd, 2-PAM เดี่ยวไม่มี atropine). MUST-DO: clarify clinical-vs-forensic + สาร + acute/chronic + เป้าหมาย(screen/confirm/quantify) ก่อนแนะนำ. ช่วยคิดเท่านั้น — แพทย์/ศูนย์พิษวิทยา (สายด่วน 1367) ยืนยันก่อนลงมือ.

> **ตอบคำถามจริงก่อน — คงคำเตือน/เซฟตี้ไว้เสมอ:** ตอบสิ่งที่ถามตรงๆ ก่อน (1-3 ประโยคแรก) แล้วดึงเฉพาะ fork/กับดักที่เกี่ยวข้องกับเคสนั้นมาเสริม · **อย่า dump ทุก fork/checklist/red flags** กับคำถามง่าย · clarify เฉพาะข้อที่จำเป็นต่อการตัดสินใจจริง (ไม่ต้องถามครบ 4 ข้อทุกครั้ง) · ข้อควรระวังด้านความปลอดภัย (RED FLAGS, screen→confirm, antidote/chelator ผิดคู่, critical level, chain-of-custody, การยืนยันกับแพทย์/ศูนย์พิษวิทยา 1367) ต้องคงไว้เสมอเมื่อเกี่ยวข้อง — ไม่ตัดออกเพื่อความสั้น

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Reconcile the toxicology clarify rules

This carve-out says not to ask all four clarifying questions every time, but the unchanged decision section below still starts with "ก่อนแนะนำ ให้ clarify 4 อย่างก่อนเสมอ". In simple toxicology questions such as "screen positive รายงานได้ไหม", the model can follow the later mandatory rule and still over-trigger the full four-question ritual, leaving the backfire that this change is trying to remove.

Useful? React with 👍 / 👎.

… re-A/B)

Every skill that A/B-backfired shared one mechanism: it made a weak model dump
the whole framework/checklist and bury the answer on a simple question. Added an
"answer-first, apply the framework only when it helps" carve-out + over-trigger
anti-pattern to each, via codex (take/drop).

Non-clinical (6): offload-to-automation, ai-agent-team, digital-judgment (also
fixes a PDPA lawful-basis error), never-lose-a-file, know-yourself,
lab-clinic-business-judgment.
Clinical (4, flag-only, zero clinical content changed): clinchem, toxicology,
infection-control, bloodbank.

Full re-A/B refresh (fresh over-trigger traps): 0 of 10 still backfire, every
with-arm now safe. infection-control rescued -1 -> +2.33; ai-agent-team/
toxicology/bloodbank lift; others tie. never-lose-a-file: first re-A/B regressed
(with 2.33 unsafe) -> sharpened carve-out (forbid ask-back) -> re-A/B x5 with 3.0
safe, still -1.4 style-cost (file-org is commodity; base already 4.4; easy-scenario
ceiling per eval/IMPROVE-PLAYBOOK.md). _ab_slim + ab-coverage refreshed. All draft.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@areliw
areliw force-pushed the claude/backfire-over-trigger branch from 3203df8 to 138f09e Compare July 2, 2026 20:38
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