asgard-ai-platform/med-political
Use when the user wants to write a political news piece — election coverage, legislative reporting, policy analysis, official-statement coverage, poll interpretation, or political profile — from supplied material (transcripts, press releases, poll data, vote records, leaked documents, interviews). Activates political-beat-specific workflow on top of the general news-reporter workflow: stance tagging, poll-reading discipline, defamation/election-law red lines, and frame-neutrality audit. Also triggers on phrases like 'write up this 質詢', 'turn into an election report', 'analyze this poll', '幫我寫成政策追蹤報導', '寫一篇選戰分析', '把這份立委發言整理成新聞', 'cover this candidate's policy platform'. Defers general news craft to med-news-reporter; do NOT use for press releases (use pr-press-release) or government PR (use pr-*).
npx skills add https://github.com/asgard-ai-platform/skills --skill med-political
> This skill specializes med-news-reporter for the political beat. Read med-news-reporter first for the general 6-step workflow (type selection, material audit, fact-check, balance, ethics, literacy). This file adds political-beat-specific discipline on top.
Distilled from political-journalism curricula at NCCU 政治系、NTU 政治系、Columbia Journalism School (Politics), Medill (Politics & Policy), Sciences Po École de journalisme. Covers the four main political-news sub-types: election / legislative / policy / official-statement reporting.
IRON LAW: No Stealth Bias
Political reporting carries stance through dozens of micro-choices that
each pass a literal fact-check but together push the reader toward a
conclusion: which adjective ("controversial" / "embattled" / "popular"),
whose quote leads, who gets the last word, where the contextualizing
data sits, which framing ("crackdown" vs "enforcement"), which timeline
("after the scandal" vs "during the second term"). Every such choice
must be either deliberately neutral or its slant disclosed. The reader
is owed a piece they can read without absorbing your verdict by osmosis.
Default LLM behavior is to pick the most "natural-sounding" word,
which in political contexts almost always carries the dominant-media
frame as bias. Override that default explicitly.
Why this is non-obvious: the literal-fact-check passes ("the bill failed 35-40, the polling shows 47%") while the cumulative effect of word-choice and ordering quietly endorses a side. This is the failure mode that gets political reporting accused of bias by every side — usually correctly.
Rationalization Table — these justifications DO NOT override the Iron Law:
| Claude might think... | Why it's still a violation |
|---|---|
| "'Controversial' is just a description, everyone uses it" | Adjective-level frames are the single most common channel for stealth bias. Use the specific dispute, not a labeled judgment. ("opposed by labor unions" not "controversial"). |
| "I'll lead with the strongest soundbite for narrative impact" | Whose soundbite leads = whose frame leads. Lead-quote selection is a stance choice; alternate sides or use a non-quote lead. |
| "The opposition response is just boilerplate denial, I can summarize" | "Summarizing" the rebuttal-side while quoting the accusing-side verbatim is the textbook one-sided structure. Quote both or summarize both. |
| "The poll headline is enough — adding methodology is in-the-weeds" | A headline poll number without sample / MOE / date / who paid is misleading by omission. Always include the four. |
| "This anonymous campaign source is well-placed, I'll just say 'a source close to the campaign'" | Anonymous negative claims about named politicians need (a) real risk to the source AND (b) editor sign-off AND (c) corroboration. "A source said" with no risk justification = professional malpractice in political reporting. |
| "The accused didn't respond by deadline, the story can run as-is" | Political accusation pieces require the response window be stated explicitly in the piece ("contacted X repeatedly between Y date and Z, no response"). Silent omission = imbalance. |
Trigger conditions:
Input signals:
When NOT to use:
pr-press-release.med-news-reporter with type=opinion (this skill is for news, not commentary; though Gotchas here still apply).med-international.Read or have already loaded med-news-reporter for: material audit, fact-checking, source-strength tagging, balance principle, media-ethics check, media-literacy self-check. Do not re-implement those steps here. This file specializes Steps 1, 2, 3, and adds a political-specific Step 7 (Frame Neutrality Audit).
| Sub-type | Signals | Sub-template focus |
|----------|---------|--------------------|
| Election coverage | Candidate, campaign, polling, primary, vote share | Candidate stance attribution; equal time / equal scrutiny across candidates; poll discipline |
| Legislative | Bill / 法案、立委質詢、committee, vote, amendment | Vote record citation; bill text vs summary; conflict-of-interest disclosure on sponsors |
| Policy | White paper, agency rule, regulation, budget line | Policy text + impact-affected parties + opposing experts + cost estimate source |
| Official statement / press conference | Speech, press conference, official communiqué | Verbatim quote + context (when, where, in response to what) + counter-position |
If the material spans sub-types (e.g. a candidate's policy speech), classify by the *primary news driver*, not the genre.
Every named political actor in the piece must carry a stance tag at first mention, and the tag must be specific enough to let readers calibrate the quote:
Source tier tagging (extends med-news-reporter's tiering with political-specific tiers):
| Tier | Examples | Treatment |
|------|----------|-----------|
| Public record | 立法院公報、政府公報、選舉公報、官方記者會逐字稿 | Direct citation; no further attribution needed |
| Named source on record | 政治人物本人、有職稱發言 | Direct quote with stance tag |
| Background source | 「不具名的黨內人士」 | Requires named editor sign-off + risk justification + corroboration |
| Adversarial source | 對手陣營、爆料者 | Doubled scrutiny; corroborate before publishing |
| Polling | Released polls | Always include sample/MOE/methodology/sponsor/dates — see references/poll_reading.md |
Beyond med-news-reporter's general ethics check, add:
Before output, sweep the draft for:
Use the med-news-reporter base format, with these political additions to the meta footer:
[Headline / sub-headline / body paragraphs per med-news-reporter]
---
**稿件類型**: 即時政治新聞 / 政策深度 / 選戰分析 / 質詢整理
**字數**: approx. XXX
**消息來源層級**: 公開記錄 N / 具名 N / 背景 N / 對手陣營 N / 民調 N
**政治平衡稽核**:
- Stance tag 完整性: ✅ / ⚠️ (列出未標的)
- 兩造機會: ✅ / ⚠️ (列出未取得回應的一方 + 已嘗試聯繫紀錄)
- 民調引用完備: ✅ / N/A / ⚠️ (列出缺項: 樣本 / MOE / 方法 / 委託方 / 日期)
- Frame neutrality: ✅ / ⚠️ (列出 audit 中替換或保留的字詞)
**選舉法 / 誹謗風險**:
- 選罷法時段限制: ✅ / N/A / ⚠️
- 對名譽指控之合理查證紀錄: ✅ / N/A / ⚠️
**待查證事項**: ...
**倫理 / 識讀檢核摘要**: 〔交給 med-news-reporter 的 Step 4-5 footer〕
Scenario: User supplies (a) 立法院公報節錄一段民進黨立委王大明對勞動部長林小華的口頭質詢逐字稿,內容批評最低工資調整幅度過低;(b) 勞動部隔日新聞稿回應;(c) 主計總處公布的物價指數;(d) 一份委託方為勞工團體、樣本 1,068、MOE ±3.0% 的民意調查,顯示 62% 民眾認為調幅不足。要求寫一篇 800 字政策追蹤報導。
Analysis:
Result: 同時讓批評方與政策方有充分發言空間;讀者可以自己判斷;沒有「正義立委挑戰拖延部長」式的 framing。
Scenario: Same input. Writer (a) leads with王大明 the strongest critical soundbite without reference to 林小華's response until paragraph 4, (b) describes the調幅 as "保守的", (c) cites the民調 as "民調顯示六成民眾認為調幅不足" without noting it was union-funded, (d) attributes anonymously: 「黨內人士透露,部長對工會壓力反應不足」without justification, (e) ends with 王大明's "勞動部該真正聽到勞工的聲音" line as last word.
What went wrong:
Net: every individual sentence is "true", but the cumulative effect is an editorial in the shape of a news piece. This is exactly the failure mode the Frame Neutrality Audit exists to catch.
[匿名: 待確認可否揭露 + 取得交叉佐證].| File | Purpose | When to read |
|------|---------|--------------|
| references/sources_and_beats.md | 政治線消息來源、機構、官方資料庫、政府公開資訊清單 | Step 2 source vetting |
| references/glossary.md | 政治、立法、選舉專業術語對照與定義 | When unfamiliar terminology appears |
| references/ethics_and_law.md | 選罷法、誹謗、洩密、偵查不公開、平等對待原則 | Step 3 risk check |
| references/poll_reading.md | 民意調查判讀:樣本、MOE、加權、委託方、發布時段 | Whenever a poll is cited |
| references/frames_and_neutrality.md | 常見框架陷阱、loaded language 對照表、平衡寫法範例 | Step 4 Frame Neutrality Audit |
Related skills:
med-news-reporter — general news workflow (this skill specializes it)med-international — for international/diplomatic political storieshum-rhetoric — deeper analysis of persuasion structures (useful for op-ed evaluation)hum-source-criticism — source vetting frameworksstat-hypothesis-testing / data-financial-analysis — for data-driven political piecesreferences/poll_reading.md, but for deep methodological critique use stat-hypothesis-testing and grad-survey-design.med-news-reporter with type=opinion and apply this file's Gotchas as a sanity check.Take asgard-ai-platform/med-political from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.