Community寫作與編輯github.com

abhishekkumar541/pre-ai-writing

確保任何將被他人閱讀的文字(如郵件、社群貼文、履歷、報告等)符合AI前寫作標準,在起草、改寫、審查或潤飾時自動套用,也作為其他技能產出後的最終把關。

pre-ai-writing 是什麼?

這是一個專門用於確保文字輸出呈現「人類書寫感」而非LLM生成痕跡的AI代理技能。其核心邏輯是針對結構性缺陷(如流水標籤、閱讀導引、過度表格化等)進行修正,讓文件讀起來像2022年11月前的寫作風格:目標優先、條理清晰、多為散文。技能支援多種平台(郵件、LinkedIn、報告、簡報等),並可區分高風險場景(如求職、客戶交付)啟用額外檢查。 工作流程從「框架設定」(指定讀者、閱讀情境、文件類型與層級)開始,依序經歷資料收集、結構塑形(搭配參考模板與字數預算)、草稿生成、Lint檢查、人話化(調用humanizer技能)、用戶主張溯源、讀者視角通讀,以及高風險層級的盲審與相似度檢測。最終產出會根據目標格式轉換為純文字、Markdown或PDF。 技能定義了一系列強制規則(如禁止使用長破折號、不靜默修改原稿、不將流程寫入頁面),並提供多個腳本(lint_doc.py、sameness_check.py等)與參考文件(rules.md、structures.md等)輔助執行。它被設計為最終把關技能,應在所有其他撰寫技能之後使用。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/abhishekkumar541/pre-ai-writing/tree/HEAD

Installed? Explore more 寫作與編輯 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Pre-AI 寫作標準

文件讀起來一直像LLM的輸出,原因是單詞層級的修改無法解決的結構性問題:

  • 開頭標籤(「一句話解答。」)
  • 閱讀導引
  • 每個事實旁的狀態標籤
  • 每個章節都要擺一個反對論點
  • 什麼都用表格
  • 每一段都塞網址

請用2022年11月之前人們寫作的方式:目標優先,假設其次,標題樸實,每個章節的第一句話就指出重點,多用散文,最後附上編號的來源列表。然後由 humanizer 技能(https://github.com/blader/humanizer)處理句子層級的問題。

references/rules.md 包含每一條規則及其前後對比範例。references/structures.md 為每種文件類型提供一個範本。以下路徑均相對於此技能資料夾。

工作流程

  1. 框架設定。 用一行對話寫出四項資訊:

    • 讀者
    • 閱讀情境(收件匣、面試小組、動態消息)
    • 類型:takehome、memo、email、cover、post、resume、deck、landing 或 doc
    • 風險層級

    高風險指的是求職申請或 takehome、客戶交付文件、任何給高層的文件,或使用者自己稱之為高風險的任何內容。完成標記:這一行寫好時。

  2. 撰寫前收集資料。 收集:

    • 簡報原文,包含任何長度或頁數限制。
    • 涵蓋表,將簡報要求的每一項對應到文件中負責回答的章節。這張表留在對話或筆記中,絕對不放入文件。
    • 第一手證據,每一項都要標明來源。
    • 使用者自己的文字,來自筆記和先前的對話。
    • 客戶文案,15到20句客戶自己的用語。

    對任何還沒有來源的計畫中宣稱,標記為「待確認」。完成標記:所有計畫中的宣稱都有來源或被標記為「待確認」。

  3. 塑形。 從 references/structures.md 選擇範本,並根據每章節的重要性分配字數預算。簡報中的限制優先於任何預設長度。完成標記:產生含有預算的大綱時。

  4. 撰寫草稿 到 <名稱>_draft.md,遵循 references/rules.md 和 references/evidence.md。狀態標籤、存取日期和數字表格放到 <名稱>_notes.md。

  5. Lint 檢查。 執行:

    python3 scripts/lint_doc.py --type <類型> <檔案>
    

    對簡報,請傳入投影片資料夾;<aside> 會被視為講者備註。修正每一個 FAIL。修正每一個 WARN,或在對話中說明為什麼保留。完成標記:退出碼為 0 時。

  6. 人話化。 使用 Skill 工具呼叫 humanizer 技能,即使是只有三行的郵件也要做。手動的「我自己檢查過了」不算數;在新的對話中跳過此步驟曾在測試中導致問題。以嵌入模式對散文部分執行。表格、引用文字、程式碼和來源列表保持不變。將結果存為新檔案並再次執行 lint。完成標記:新檔案通過 lint 檢查時。

  7. 關於使用者的宣稱。 列出所有描述使用者行為、習慣、成果、使用情況或感受的句子。每句都要追溯到他們的履歷、筆記或記憶,或在本對話中所說的內容。任何沒有來源的都要詢問或刪除。完成標記:對話中有一張表格(宣稱 | 來源 | 保留、刪除或待詢問)涵蓋該類所有句子時。

  8. 以指定讀者身分通讀。 對每個問題回答是或否,並修正每個錯誤答案:

    • 每個章節的第一句話是否傳達了重點?
    • 如果刪掉某段,讀者是否會遺漏重要資訊?
    • 有沒有任何句子在描述文件本身?
    • 各章節的長度是否與重要性相符?
    • 有哪些內容只能來自第一手工作?(請說出具體內容;如果沒有,代表草稿過於泛濫。)
    • 每個數字是否都能在筆記中找到來源?
    • 結尾是否包含下一步或請求?
    • 格式是否符合它將被閱讀的情境?(郵件和 LinkedIn 用純文字,不用 Markdown。)
  9. 僅限高風險層級。 只要步驟1標記為高風險(即便是短文),此步驟強制執行。遵循 references/high-stakes.md:

    • 由一個新的代理執行讀者視角審查
    • 對於 takehome 和提案,使用基準線加上 scripts/sameness_check.py 和透過 scripts/blind_pack.py 進行的盲審

    完成標記:通過其規則,或已回報所有失敗。

  10. 交接。 以目標格式輸出:

    • 郵件和貼文用純文字
    • 文件用 Markdown 或 doc
    • 簡報用投影片

    涵蓋表、宣稱表和狀態表留在對話或 <名稱>_notes.md 中。僅在使用者要求或交付物是 PDF 時才製作 PDF:

    python3 scripts/build_pdf.py in.md out.pdf --title "..." --footer-left "..."
    

    然後檢查頁面圖像,包含來源頁。執行時不加 -I,因為它會匯入 markdown。

覆蓋其他技能的規則

  • 破折號。 任何地方都不允許 U+2014 或 U+2013,包括引用和筆記。這是作者的個人規則;如果你允許使用破折號,請從 scripts/lint_doc.py 中刪除 dash 檢查。
  • 修訂版就是新版本。 絕不靜默地編輯原始交付物。
  • 流程不寫在頁面上。 方法、流程和AI的使用僅在來源投影片或備註中用一行提到,永遠不單獨成為一個章節或投影片。
  • 此技能是最終把關。 文案撰寫、郵件和履歷技能負責產出內容;此技能在它們之後執行,而非取代它們。

檔案

  • scripts/lint_doc.py:結構與措辭的 lint 檢查器。執行 --help 查看旗標;--fix-typography OUT 會寫出修正後的副本。
  • scripts/sameness_check.py、scripts/blind_pack.py:高風險工具包。
  • scripts/build_pdf.py:Markdown 轉 PDF,附帶檢查。
  • scripts/prompt_trigger.py:可選的 UserPromptSubmit 鉤子,提醒 Claude 使用此技能(詳見 README)。
  • references/:
    • structures.md
    • rules.md
    • evidence.md
    • voice.md
    • high-stakes.md
  • templates/blind_review_prompt.md
  • tests/test_lint_doc.py:修改任何規則後執行它。

相關技能