fix(skills): remove over-trigger backfire in 10 draft skills (codex) - #110
fix(skills): remove over-trigger backfire in 10 draft skills (codex)#110areliw wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
💡 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 ไม่ได้? → **ให้คำตอบที่ดีที่สุด + วิธีคิด/สูตร + จุดตรวจซ้ำก่อน** แล้วค่อยแนบโค้ดที่รันได้ + ติดป้าย "ตัวเลขยังไม่ยืนยันจนกว่าจะรัน" — อย่าส่งแต่โค้ดแล้วหยุด |
There was a problem hiding this comment.
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) ต้องคงไว้เสมอเมื่อเกี่ยวข้อง — ไม่ตัดออกเพื่อความสั้น |
There was a problem hiding this comment.
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>
3203df8 to
138f09e
Compare
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-trivialai-agent-team— opened with org-chart/routing ceremony → answer-first, route internallydigital-judgment— also fixes a real PDPA legal error (consent is one lawful basis, not the only one) + over-refusenever-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 absolutesClinical 🩸 (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-judgmentinfection-controlFork 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: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_slimupdated for the 3 measured;ab-coverage.jsonrebuilt.Local gates: validate ✓ · ab-gate ✓ (10) · maturity-gate ✓ (10) · pytest ✓ (26). All 10 stay
draft.🤖 Generated with Claude Code