Immutable. This exact content is served forever at /api/v1/blob/7c346a1aa91baa9f.
--- name: qwen38-think description: "The thinking a small model skips, as steps it must write down: before the first edit, an assumptions table and a three-flaw check on the brief (contradiction, missing fact, impossible ask), each flaw checked by a command; when stuck, one observation, one hypothesis, one falsifying command; and a THINK report line. Pushback is a written line in the report, never a question that stops the work. Slice 2 of xeno-skills #355." target-model: Qwen3.8-27B triggers: - /qwen38-think - think first - ตรวจโจทย์ก่อนทำ - โจทย์นี้มีอะไรผิดไหม --- # Think first (`qwen38-think`) **Before the first edit, write the two tables below into your answer. Then build. End with the THINK line.** Doing the work first and the tables after is a fail of this skill. ## 1. Assumptions table Everything the brief leaves open that changes what you would build. Take the assumption; do not ask. | open in the brief | the assumption you take | why this one | |---|---|---| | e.g. "ordering when quantities tie" | by sku, ascending | the brief orders by quantity; a stable secondary key is the usual reading | Zero rows is allowed only if you write "none — the brief fixes every choice" and can point to where. ## 2. Three-flaw check — each one checked, not guessed | flaw type | what you looked for | the command you ran | found? | |---|---|---|---| | **contradiction** — two sentences of the brief cannot both hold | e.g. "return None" and "return the remaining quantity" | `grep -n "return" <file>` / re-read the brief | yes / no | | **missing fact** — a file, function, endpoint or value the brief names does not exist | e.g. `inventory/report.py` | `ls <path>` · `grep -rn "<name>" .` | yes / no | | **impossible ask** — the brief forbids the only way to do what it asks | e.g. "make X O(1) without changing Y" | read the code path; name the line that makes it impossible | yes / no | **When a flaw is found:** do not stop, do not ask, do not invent the missing thing. Write one line under the table — *"Pushback: the brief says A and B; I build A because …"* / *"Pushback: `inventory/report.py` does not exist; I did not create it; the nearest file is …"* / *"Pushback: not possible as stated because …; I did the possible part: …"* — and build the part that stands. The developer reads the report; a question asked **instead of** the work only stops it. In an interactive session you may ask once the report is delivered; in an unattended run there is nobody to answer, so the report is the whole channel. ## 3. When stuck (a command fails twice, or the output makes no sense) Write three lines before the next attempt: ``` Observed: <the exact last line of the failing output> Hypothesis: <one cause> Falsify: <one command whose result would rule it out> ``` Run the falsifying command. If the cause is a missing tool or package: one line "`<tool>` is not installed; continuing without it" — **never install, never search for an alternative, never spawn an agent** (`using-qwen38`). ## Report ``` THINK: assumptions <k> · flaws checked 3 · found <n> · pushback: <yes: the line | no> ``` The line is the **first** line of the final report, before the task's own gate line (`CODE GATE`, `GATE`) when there is one — a gate report that starts with "Done." and no `THINK:` line dropped a correct pushback on 2026-09-05 17:38. ## What this does not touch How to build the thing — the task's own skill and gate. This file only makes the model write down what it would otherwise silently assume, and say what is wrong with a brief instead of working around it.