$npx -y skills add genli-ai/market-research-skills --skill verifyingUse when verifying information (fact, number, quote, event, statement) against authoritative primary sources, or cross-checking a number via one-level metric decomposition (Z = P × Q). Triggers: "verify X", "is this true", "find the original source", "where is this number from",
| 1 | # Information Verification Skill |
| 2 | |
| 3 | > Bilingual skill. Chinese version: `SKILL.zh.md`. English is the single source of truth; the `.zh.md` is a synchronized translation — always edit the English first, then mirror the change into `.zh.md` in the same change-set, never edit only the Chinese. |
| 4 | |
| 5 | ## Purpose |
| 6 | |
| 7 | The user provides a sentence or paragraph that needs verification. The AI must NOT "run a quick search, glance at a few web snippets, and improvise a conclusion." It must dig down to original trustworthy sources, or honestly admit it cannot. |
| 8 | |
| 9 | Five scenarios are covered: |
| 10 | |
| 11 | 1. **Basic truthfulness check**: whether the numbers / facts / quotes in the statement are accurate. |
| 12 | 2. **Completeness**: when the source is correct but the user's quotation is out of context — supply the missing context. |
| 13 | 3. **One-level reasoning verification**: when a direct number cannot be traced to a primary source, cross-check via metric decomposition (Z = P × Q). |
| 14 | 4. **Negative statements**: detect unfalsifiable claims like "X has never done Y" and switch to a "search for a counter-example" path. |
| 15 | 5. **Multi-source conflict**: when two authoritative sources disagree on the same figure, present them side-by-side with a difference attribution. |
| 16 | |
| 17 | ## Input |
| 18 | |
| 19 | The user supplies one statement (or paragraph) to verify. Optional attachments (PDFs, links, screenshots, notes) take priority as material to verify against. |
| 20 | |
| 21 | ## Scope exclusions (refused topics) |
| 22 | |
| 23 | Before any verification work begins, check whether the statement falls into a refused category. The following topics are out of scope regardless of how the request is phrased or how specific the question is: |
| 24 | |
| 25 | - **Political issues** — elections, parties, political figures' positions, geopolitical disputes, government legitimacy debates, etc. |
| 26 | - **Military issues** — military operations, force composition, equipment counts, conflict details, defense policy, etc. |
| 27 | - **Religious issues** — doctrines, denominational disputes, religious leaders' statements, inter-faith comparisons, etc. |
| 28 | - **Entertainment celebrity gossip** — personal lives, relationships, family affairs, paparazzi rumors, etc. |
| 29 | - **Other inherently controversial topics** — even attempting verification can be inflammatory regardless of what the answer turns out to be. |
| 30 | |
| 31 | When a request falls into any of these categories, reply with exactly one line and stop: |
| 32 | |
| 33 | > Out of scope. (超出能力范围) |
| 34 | |
| 35 | Do NOT attempt verification, partial verification, "let me try anyway," or step-by-step analysis. Do NOT explain why beyond this one line. Do NOT suggest workarounds, alternative phrasings, or related queries that might be acceptable. The line above is the entire response. |
| 36 | |
| 37 | This check happens **before** scenario routing — if it triggers, none of the rest of the skill runs. |
| 38 | |
| 39 | ## Scenario routing |
| 40 | |
| 41 | Internally classify the statement into one of the five scenarios to pick the right sub-flow (one-level reasoning / negative / multi-source conflict use their own emoji label). Do NOT print the scenario label as a separate line — it does not help the user. If a statement spans multiple scenarios, use the dominant path and address the others as supplements. |
| 42 | |
| 43 | ## Response language |
| 44 | |
| 45 | Always reply in the same language as the user's question (Chinese in → Chinese out; English in → English out; mixed → follow the dominant language of the question). |
| 46 | |
| 47 | Emoji labels (`✅ ⚠ ❌ 🔎 ⚖ 🔒`) are language-neutral and stay the same in both languages. Translate the prose that follows the emoji — e.g. `✅ Verified.` → `✅ 已核实。`. Metadata field names, when surfaced, translate too: `Time point / Definition / Unit / Coverage / Revision status / Data type` → `时点 / 口径 / 单位 / 范围 / 修订状态 / 数据类型`. |
| 48 | |
| 49 | Internal logic, whitelist, and rule structure are language-neutral — do not change them. |
| 50 | |
| 51 | ## Tool-call mapping (cross-LLM adaptation) |
| 52 | |
| 53 | When this skill runs on different LLM terminals, the actions below map to whichever local tools that terminal exposes. The table describes action s |