Traditional Chinese Blog Writer繁中部落格寫作

Turn notes, a talk, or a bare topic into a Taiwan-Chinese blog post that reads like a real person wrote it把筆記、演講或一個題目,寫成有立場、有親身經歷、讀起來像真人的繁中部落格文

繁中User-invoked使用者叫用
Read SKILL.md on GitHub在 GitHub 看 SKILL.md

This skill turns a topic, an Obsidian note, a talk transcript, or a foreign-language source into a Taiwan-Chinese (zh-TW) blog post or newsletter that reads like a specific person wrote it — with a stance, lived experience, and a voice tuned to seven studied blogs — rather than a well-organized machine summary. Manual trigger only — invoke it by name rather than expecting it to fire automatically.

Install

npx skills add https://github.com/leoluyi/skills -g -a blog-writing-zh -y

Keep it current:

npx skills update blog-writing-zh

Source

What it does

Two modes.

  • compose — writes a full piece from a topic or loose material.
  • rewrite — turns an Obsidian note, a translation source, a talk, or a rough draft into a blog post. Before touching voice, it first picks a rewrite strategy: faithful translation with editor-voice framing around it, or a fuller narrative reconstruction.

Voice as four composable axes, not one fixed "style":

Axis Options Example
Opening strategy scene hook · motive-then-obstacle-then-promise · direct declaration of stance · reader's-own-objections-answered-up-front · series recap-then-three-questions a tense scene, or "I hit this wall three times before it clicked"
Persona intensity L1 collapsed (first person only at open/close, formal register) · L2 moderate (occasional judgment calls, light asides) · L3 high (constant direct address, jokes, parenthetical asides) L2: one or two casual asides per piece
Metaphor density none/minimal · one-line analogy · full narrative metaphor with a payoff line · system-wide invented vocabulary reused throughout "a linter is a tireless disciplinary committee"
Closing move manifesto line · summary + well-wishes · hand responsibility back to the reader with a concrete action · hook for the next piece "The tree won't sign that invoice for you."

These four combine with structural framework, terminology handling, and title formula into eight elements total. Rather than asking you to tune all eight, a two-layer menu picks article type first — tutorial, concept primer, deep-dive, hands-on note, opinion/advocacy, teardown/review, or analytical framework — which fixes the structural skeleton, then flavor — 2-3 recommended author voices for that type, plus "no particular flavor" — which fixes persona intensity, metaphor type, terminology handling, and title formula.

Length tiers:

Tier Length Typical use
短打 (short) 300-800 characters one point, one hook — a social post or quick note
標準 (standard) 800-2000 the default — a complete argument or tutorial, 3-5 sections
深文 (deep) 2000-5000 multi-angle, skimmable subsections — a deep-dive or full tutorial
工具書級 (reference-grade) 5000+ exhaustive coverage with tables — an upgrade guide or year-in-review

The skill recommends a tier from the article type and material and states its reasoning in one sentence for confirmation, rather than forcing a choice. If a draft outgrows its tier mid-write, it flags upgrading the tier or splitting into a series rather than padding or cutting to fit.

Dual-draft mode (optional; suggested automatically once a draft is estimated at over ~1500 characters, falls in an argument-dense type like opinion/analytical-framework/deep-dive, or the user says it matters): write two full drafts that deliberately diverge along one axis — structure (the default recommendation for argument-heavy pieces, since two structural skeletons like "objection rebuttal" vs. "modular breakdown" tend to produce genuinely complementary strengths), opening, or depth tier. Both drafts share the same flavor. Each draft's strengths get diagnosed across seven dimensions (opening, argument, metaphor, rhythm, concreteness, closing, actionability/conceptual-clarity), then the stronger elements are welded — not pasted — into one final draft in a single consistent voice, with a one-line note on which draft supplied the skeleton and what got grafted in from the other.

Automatic series-split check — after a draft is finished, the skill evaluates on its own whether the material has outgrown a single post: a clear length overrun, a section strong enough to stand alone, multiple independent claims, or a staged dependency between parts. Only when one of those signals is clear does it append a one-line verdict, a reason, and a series outline (per-piece claim, working title, dependency order, recipe, and cross-piece continuity mechanism). Most drafts stay single pieces, and this check doesn't surface on every output — that would be noise.

Every output ships the finished article plus 3-5 title/subtitle candidates, spanning at least two title formulas (how-to, decode/reveal, big-question, either/or, anxiety-defusing breakdown, imperative address, bait-and-reveal), each tagged with a suggested publishing context — SEO, social, or newsletter.

When to use

Reach for this when you need to write or rewrite a Taiwan-Chinese blog post or newsletter, or turn Obsidian notes, talks, or foreign-language articles into a long-form zh-TW piece with an actual authorial voice behind it.

When not to

  • Formal internal memos or 簽呈 — use formal-doc-structure.
  • RFPs or 需求規格書 — use rfp-writing.
  • Explaining a single term in plain language for a non-technical reader — use plain-speak.
  • Cleaning up an already-finished draft's AI-isms with no restructuring or voice work involved — use humanizer-zh directly.

How it works

Picking the voice preset. The skill doesn't ask you to specify eight parameters cold. When you haven't named a style, it infers two things from your material and request: what the reader should be able to do after reading (follow a recipe, understand a concept, be persuaded to change practice, decide whether to buy, absorb one useful finding fast), and the reader's relationship to the topic (scared of it, half-familiar and prone to mistakes, unfamiliar and needing a hook, an expert peer with no patience for preamble, or currently being marketed at). Those two answers pick a recommended article type plus flavor; three further variables calibrate it — technical level shifts terminology handling, closeness to the reader shifts persona intensity, and publishing context shifts title formula and length. The skill then proposes one primary recommendation plus at most one alternative, each with a one-line reason, rather than listing all seven article types for you to parse.

The pipeline handoff to humanizer-zh. Once a draft is finished, this skill doesn't just suggest a follow-up cleanup pass — in any environment that can load sibling skills, it actively invokes humanizer-zh itself as the de-AI finishing step, in three stages:

  1. Detect first. Hand the draft to humanizer-zh in detect mode: get back every flagged AI-ism plus the matched text, with nothing rewritten yet.
  2. This skill filters the hit list. Checked against the chosen flavor's style reference, hits that are actually this piece's positive features — an opinionated judgment call, first-person experience, an invented metaphor, deliberately uneven rhythm, visible thinking-in-progress ("I first assumed X, then realized..."), a flavor's signature sentence pattern — get marked exempt. Only the genuinely mechanical AI patterns (empty slogans, false-contrast filler, over-translated jargon, reflexive triads) and anything already flagged P0 downstream (leaked tool markers, sycophancy, unverified claims) stay on the list. A typical filtered list looks like:

hit: "老實說我一開始也搞不懂這段" → exempt (thinking-in-progress, this flavor's signature) hit: "這不僅是一個工具,更是一種哲學" → keep (false-contrast filler, mechanical) hit: "值得注意的是" → keep (explainer-voice hedge, mechanical) hit: single-sentence paragraph, three in a row → exempt (deliberate rhythm break)

  1. Only the non-exempt items go back for an actual rewrite, in rewrite or edit-in-place mode, with the exempt list passed along as a hard constraint the downstream pass must not touch.

This exists because a plain rewrite pass, run directly, flags a large share of intentional voice as if it were noise and can flatten it right alongside genuine AI-isms — the filtering has to happen on the side that actually knows what this piece's voice is supposed to sound like. The voice profile passed downstream keeps the register aligned — a 高見龍-flavored piece maps to --voice casual, a 保哥-flavored one to --voice professional/technical, a Simon Willison-flavored one to --voice technical — and a dual-draft merge always gets this pass, since the welded seams are where AI-isms most often survive. If the source material carried mainland-China (簡體/大陸) usage risk, avoid-china-writing runs immediately after in the same handoff. After either returns, this skill checks the diff for over-eager cuts to signature lines, single-sentence paragraphs, or emoticons before treating the result as final.

The whole shape, end to end.

                    topic / note / talk / draft comes in
                                   │
                                   ▼
╭──────────────────────────────────────────────────────────────╮
│ 1. Mode + preset                                               │
│ compose or rewrite; article type × flavor × length tier        │
├──────────────────────────────────────────────────────────────┤
│ rewrite mode picks a source strategy first                     │
│ (faithful translation + editor frame, or narrative reconstruct) │
│ preset comes from reader-outcome + reader-relationship,         │
│ calibrated by technical level, closeness, publishing context    │
╰──────────────────────────────────────────────────────────────╯
                                   │
                                   ▼
╭──────────────────────────────────────────────────────────────╮
│ 2. Draft (optionally dual)                                      │
├──────────────────────────────────────────────────────────────┤
│ single draft (default) ── or ──                                 │
│ two drafts diverging on one axis → diagnosed on 7 dimensions    │
│ → welded into one final draft, same voice throughout            │
╰──────────────────────────────────────────────────────────────╯
                                   │
                                   ▼
╭──────────────────────────────────────────────────────────────╮
│ 3. Titles                                                       │
│ 3-5 title/subtitle pairs, ≥2 formulas, tagged by publish context │
╰──────────────────────────────────────────────────────────────╯
                                   │
                                   ▼
╭──────────────────────────────────────────────────────────────╮
│ 4. Pipeline handoff (active, not a suggestion)                  │
├──────────────────────────────────────────────────────────────┤
│ humanizer-zh detect → this skill exempts intentional voice →    │
│ humanizer-zh rewrites only the rest                              │
│ + avoid-china-writing if PRC usage risk                         │
│ this skill re-checks the diff before accepting it as final       │
╰──────────────────────────────────────────────────────────────╯
                                   │
                                   ▼
╭──────────────────────────────────────────────────────────────╮
│ 5. Series-split check (automatic, silent unless triggered)      │
├──────────────────────────────────────────────────────────────┤
│ length overrun / standalone section / independent claims /      │
│ staged dependency → verdict + outline appended                  │
│ otherwise: ship the single piece, no prompt                      │
╰──────────────────────────────────────────────────────────────╯
                                   │
                                   ▼
                    output: article + titles + recipe log

Related skills

  • humanizer-zh — this skill invokes it automatically as the mandatory de-AI finishing pass once a draft is done; it only subtracts AI-isms and never supplies voice, which is this skill's job.
  • avoid-china-writing — invoked conditionally, right after humanizer-zh, when the source material risked leaking mainland-China (簡體/大陸) usage into the draft.
  • formal-doc-structure — use it instead for structured internal business documents (簽呈, meeting records, evaluation reports) where the goal is institutional clarity, not a personal voice.
  • rfp-writing — use it instead for issuer-side RFPs and 需求規格書, which follow formal structural rules this skill doesn't apply.
  • plain-speak — use it instead when the ask is lowering one term or passage for a non-technical reader, not producing a full article with structure and voice.

這個 skill 把一個題目、一篇 Obsidian 筆記、一段演講稿或一篇外文文章,寫成或改寫成有立場、有親身經歷、讀起來像一個真人寫的繁體中文部落格文或電子報——聲音配方取樣自七個研究過的部落格,不是一份組織良好的機器摘要。僅限手動叫用——需要指名啟動,不會自動觸發。

安裝

npx skills add https://github.com/leoluyi/skills -g -a blog-writing-zh -y

保持更新:

npx skills update blog-writing-zh

原始碼

它做什麼

兩種模式。

  • compose——從題目或鬆散素材從零寫一篇完整文章。
  • rewrite——把 Obsidian 筆記、翻譯來源、演講稿或草稿改寫成部落格文。動筆調聲音之前,先選一種改寫策略:忠實翻譯外加編者視角框架,或是更完整的敘事重構。

風格拆成四條可組合的軸線,不是單一固定「文風」:

軸線 選項 例子
開場策略 場景鉤子・契機→痛點→承諾・直球宣告立場・先接住讀者內心抗拒再論證・系列文回顧→問題化→三問 一幕有張力的場景,或「這裡我卡關三次才搞懂」
人設濃度 L1 收斂(第一人稱只在開頭結尾,正文專業中性)・L2 中等(穿插判斷句與低劑量口語)・L3 高濃度(全程喊話、吐槽、括號補刀) L2:一篇裡一到三處口語破格
比喻密度 無或極少・一句話類比・有情節有回收句的劇情式比喻・貫穿全文反覆呼叫的系統級自建詞彙 「linter 像從不疲憊的紀律委員」
收尾方式 宣言金句・觀念總結+祝福・把責任交還讀者並附具體行動・留鉤子預告下一篇 「樹不會替你簽下那張買單。」

這四軸加上結構框架、術語處理、標題公式,共八個元素。與其要你一次調八項,兩層選單先單選文章類型——教學實作、概念導讀、深度解讀、實測筆記、觀點倡議、拆解評測、分析框架之一——決定結構骨架,再單選風味——該類型建議的 2–3 位作者風味,或「無特定風味」——決定人設濃度、比喻型態、術語處理與標題公式。

長度分檔

檔位 字數 典型場景
短打 300–800 單一重點、一個鉤子——社群貼文或快訊
標準 800–2000 預設檔位——完整論證或教學,3–5 節
深文 2000–5000 多面向、可跳讀子章節——深度解讀或完整教學
工具書級 5000+ 窮盡選項並附表格——升級指南或年度回顧

skill 會依文章類型與素材推薦一個檔位,並附一句理由讓使用者確認,不強塞。若成品中途明顯撐破檔位上限,會提醒升檔或拆系列,不會為了塞進檔位而灌水或硬砍。

雙稿分化模式(可選;預估超過約 1500 字、屬於論證密集的類型如觀點倡議/分析框架/深度解讀、或使用者表明這篇重要時,會自動建議):讓兩稿沿一條軸線刻意分化——結構(論證類題目的預設推薦,因為兩種結構骨架如「藉口擊破」vs「零件化框架」最容易產出真正互補的強項)、開場、或深度檔位。兩稿一律同風味。各稿的強項依七個維度診斷(開場、論證、比喻、節奏、具體性、收尾、可操作性/概念釐清),再把較強的元素熔接——不是拼貼——進單一風味的終版,並附一句取捨說明:哪稿當骨架、從另一稿吸收了什麼。

自動系列文評估——交付單篇前,skill 會自行判斷這批素材是否已經撐破單篇:明確的長度超出、有段落強到可以獨立成篇、多個獨立子主張、或章節間有清楚的遞進依賴。只有訊號明確時才附上一句結論、理由、以及系列大綱(每篇主張、暫定篇名、遞進順序、配方、跨篇連貫機制)。多數文章仍是單篇交付,這項檢查不會每次都跳出來——那樣只是噪音。

成品一律附完整文章加 3–5 組標題/副標備選,橫跨至少兩種標題公式(如何型、解密型、大哉問型、二元對立問句型、反焦慮拆解型、祈使稱呼型、釣魚反轉型),並標注各自適合的發布場景——SEO、社群、或電子報。

何時使用

要寫或改寫繁體中文部落格文、電子報,或把 Obsidian 筆記、演講稿、外文文章變成一篇真的有作者聲音的中文長文時,用這個 skill。

何時不要

  • 正式簽呈或內部公文——用 formal-doc-structure
  • RFP、需求規格書——用 rfp-writing
  • 只是要把單一術語翻成白話給非技術讀者——用 plain-speak
  • 已經是完稿、只要去 AI 味、不涉及重新架構或聲音調整——直接用 humanizer-zh

運作方式

風味配方怎麼選。 skill 不會要你一次回答八個參數。使用者沒指定風格時,它從素材與敘述推斷兩件事:讀完這篇文章後讀者要能做什麼(照著做出來、搞懂一個概念、被說服改變作法、做出買不買的決定、快速吸收一個可用的小發現),以及讀者跟主題的關係(害怕它、用過但一知半解常踩坑、沒聽過需要被勾起興趣、沒耐性聽鋪陳的專家同儕、或正被行銷話術轟炸)。這兩個答案決定推薦的文章類型與風味;再依三個變因微調——技術程度調整術語處理、跟作者的關係調整人設濃度、發布場景調整標題公式與長度。最後只給一個主推薦加至多一個備案、各附一句理由,不會把七個文章類型全列出來讓你自己讀。

交棒到 humanizer-zh 的 pipeline。 完稿之後,這個 skill 不是提示使用者自己再跑一次清潔,而是在任何能載入其他 skill 的環境裡,主動調用 humanizer-zh 當去 AI 味的終稿關卡,分三步走:

  1. 先 detect。detect 模式把稿子交給 humanizer-zh:拿回每一個命中的 AI-ism 加所在文字,還沒改任何字。
  2. 本 skill 過濾命中清單。 對照選定風味的風格參考檔逐項判定,凡是屬於本文正向特徵者——有立場的判斷句、第一人稱經歷、自建比喻、刻意的不均質節奏、邊想邊寫的思考痕跡(「我一開始以為 X,後來才發現……」)、風味的簽名句式——標為豁免。只留下真正機械化的 AI 套路(空話口號、對比句式填充、過度翻譯的術語、慣性三元排比),以及下游本來就會標 P0 的項目(AI 工具殘留標記、諂媚語氣、未查證主張)。過濾後的清單通常長這樣:

命中:「老實說我一開始也搞不懂這段」 → 豁免(邊想邊寫的思考痕跡,本風味簽名句式) 命中:「這不僅是一個工具,更是一種哲學」 → 保留(對比句式填充,機械化) 命中:「值得注意的是」 → 保留(解說導引腔,機械化) 命中:連續三段單句成段 → 豁免(刻意的節奏破格)

  1. 只把未豁免的項目交回去真正改,用 rewriteedit-in-place 模式,並把豁免清單當硬約束一併傳給下游、明確要求不得更動。

這麼做的原因是:直接跑一次 rewrite,會把大量刻意的聲音跟真正的 AI-ism 一起標記、甚至一起改平——過濾這件事必須發生在懂這篇文章聲音該長什麼樣的一方。傳遞下去的 voice profile 讓語感對齊——高見龍風味對應 --voice casual,保哥風味對應 --voice professional/technical,Simon Willison 風味對應 --voice technical——而雙稿熔接後的終版一定會跑這關,因為接縫處最容易殘留 AI 味。若素材來源帶有簡體或大陸用語風險,同一次交棒會緊接著調用 avoid-china-writing。無論哪一個跑完,本 skill 都會檢查 diff 有沒有把金句、單句段、或顏文字改掉,才會把結果當終稿。

整體流程一次看完。

                    題目/筆記/演講/草稿 進來
                                   │
                                   ▼
╭──────────────────────────────────────────────────────────────╮
│ 1. 模式與配方                                                 │
│ compose 或 rewrite;文章類型 × 風味 × 長度檔位                 │
├──────────────────────────────────────────────────────────────┤
│ rewrite 模式先選改寫策略                                       │
│ (忠實翻譯+編者框架,或敘事重構)                             │
│ 配方由「讀完要做什麼」+「讀者跟主題的關係」推出,              │
│ 再依技術程度、關係親疏、發布場景微調                            │
╰──────────────────────────────────────────────────────────────╯
                                   │
                                   ▼
╭──────────────────────────────────────────────────────────────╮
│ 2. 寫稿(視情況雙稿)                                          │
├──────────────────────────────────────────────────────────────┤
│ 單稿(預設)── 或 ──                                          │
│ 兩稿沿一條軸分化 → 依七個維度診斷 → 熔接成單一風味的終版        │
╰──────────────────────────────────────────────────────────────╯
                                   │
                                   ▼
╭──────────────────────────────────────────────────────────────╮
│ 3. 標題                                                       │
│ 3–5 組標題/副標,橫跨至少兩種公式,標注發布場景                │
╰──────────────────────────────────────────────────────────────╯
                                   │
                                   ▼
╭──────────────────────────────────────────────────────────────╮
│ 4. 交棒 pipeline(主動調用,不是提示)                          │
├──────────────────────────────────────────────────────────────┤
│ humanizer-zh detect → 本 skill 過濾豁免項 →                    │
│ humanizer-zh 只改剩下的                                        │
│ + avoid-china-writing(若有簡中風險)                          │
│ 本 skill 定稿前再核一次 diff                                    │
╰──────────────────────────────────────────────────────────────╯
                                   │
                                   ▼
╭──────────────────────────────────────────────────────────────╮
│ 5. 系列文評估(自動,未觸發就不出現)                           │
├──────────────────────────────────────────────────────────────┤
│ 長度超出/段落可獨立成篇/多個獨立子主張/遞進依賴              │
│ → 附結論與大綱;否則單篇交付,不多問                            │
╰──────────────────────────────────────────────────────────────╯
                                   │
                                   ▼
                    出稿:文章 + 標題備選 + 配方紀錄

相關技能

  • humanizer-zh——完稿後本 skill 會主動調用它做去 AI 味終稿檢查;它只做減法,聲音是本 skill 的責任,不是它的。
  • avoid-china-writing——在 humanizer-zh 之後視情況調用,僅在素材來源帶有簡體或大陸用語風險時才接著跑。
  • formal-doc-structure——結構化的內部商業文件(簽呈、會議紀錄、評估報告)改用這個,目標是制度上的清楚,不是個人聲音。
  • rfp-writing——發包方視角的 RFP、需求規格書改用這個,它遵循本 skill 不套用的正式結構規則。
  • plain-speak——只需要把一個術語或段落降到非技術讀者能懂的程度、不需要一整篇有結構有聲音的文章時,改用這個。