Community寫作與編輯github.com

atokim4/自由接案提案審查工具

撰寫或檢查任何平台(Upwork、Fiverr、Freelancer.com、PeoplePerHour、Contra、Guru)上的自由接案提案、報價或首次客戶回覆,使其聽起來像真人、留在平台溝通,且只提及接案者能兌現的內容。使用 Node 腳本檢查 AI 常用語、破折號、佔位符、電子郵件與電話號碼、字數、結尾提問,以及用戶事實檔案中未提及的陳述。當用戶要求撰寫提案、縮短或檢查提案,或問「這聽起來像 AI 嗎」時使用。

自由接案提案審查工具 是什麼?

此技能為自由接案者提供一個 Node.js 腳本(Node 20+、零依賴、無需網路),用於檢查並修正提案中的常見 AI 痕跡、格式錯誤及未經事實支持的陳述。支援 Upwork、Fiverr、Freelancer.com、PeoplePerHour、Contra、Guru 等主流接案平台,能根據不同平台格式自動調整提案結構(如 Upwork 求職信、Fiverr 自訂報價、Freelancer.com 比較列表等)。腳本會掃描用戶提供的事實檔案(facts.md),確保提案中的每個宣稱都有對應證據,並禁止使用「I hope this finds you well」、「seamless」等模板語句。它還會檢查字數(預設 50-90 字)、是否包含電子郵件或電話號碼(多數平台禁止合約前提供聯絡方式)、以及結尾是否有一個能影響範圍或價格的提問。用戶可透過 `.cover-lint.json` 設定自訂規則,並在 Claude Code 或其他 AI 代理人中直接調用。技能特別強調「從不替用戶提交提案」,最終由用戶親自確認並發送。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/atokim4/cover-letter-lint/tree/HEAD/skills/freelance-proposal-lint

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

在你喜歡的 AI 中提問

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

說明文件

自由接案提案審查工具 是做什麼的?

目標:讓用戶在無論哪個接案平台上,都能寫出一段客戶願意讀完並回覆的短提案,且每個宣稱都有用戶自己的事實檔案支持。

審查腳本位於此技能資料夾的 scripts/lint-cover.mjs(Node 20+,無依賴,無需網路)。它與本倉庫中 cover-letter-lint 技能的腳本相同,但隨此技能一同提供以便獨立安裝。在 Claude Code 中可透過完整路徑執行:node ${CLAUDE_SKILL_DIR}/scripts/lint-cover.mjs,在其他 AI 代理人中則使用技能資料夾路徑,例如:node .claude/skills/freelance-proposal-lint/scripts/lint-cover.mjs。

1. 先找事實檔案

尋找 facts.md、me/facts.md 或包含 "facts" 路徑的 .cover-lint.json。所有宣稱只能來自這些檔案。 如果找不到:向用戶提供此技能資料夾中的 templates/facts.md 範本,請用戶填寫(技能、角色、與個人資料完全相符的經歷記錄、證明連結、永不使用的詞語)。不要自行編造任何內容。如果用戶拒絕填寫,則在不加 --facts 參數的情況下執行審查,並告知用戶宣稱未經檢查。

2. 根據平台調整格式

若用戶未說明,先詢問是哪個接案平台。然後:

  • Upwork:撰寫 50-90 字的求職信加上任何篩選問題的回答。直接依序回答每個篩選問題。
  • Freelancer.com、PeoplePerHour、Guru:提案會並列比較,包含價格與交付時間。在第一行說明具體做法,並確保文字中的價格與天數與用戶在提案表單中輸入的數字一致。
  • Fiverr 簡報或自訂報價:買家已選擇類別,因此以他們的確切交付項目開頭,接著說明報價包含的內容與修改次數。
  • Contra 或直接詢問:視為第一則訊息,使用 --mode message 進行審查。

模仿客戶的語氣:對方寫三行隨意句子,就用三行隨意句子回應;對方使用另一種語言,就用該語言回覆。

3. 撰寫

使用簡潔句子,無條列或標題:

  1. 以客戶風格的問候開頭,接著提及對方貼文中一個具體細節,以及可能的原因或你的處理方式。切勿重述貼文內容。
  2. 從事實檔案中選一條真正相關的證明。個人專案應如實稱為個人專案。若無合適證明,則省略證明部分。
  3. 用一到兩句說明計畫,如果用戶提供了費率,則包含時數與價格。
  4. 一個問題,其答案會影響範圍或價格。
  5. 用戶的名字獨佔一行。

4. 審查與修正

node ${CLAUDE_SKILL_DIR}/scripts/lint-cover.mjs --facts facts.md --job job.md bid.md

- 讀取標準輸入,--mode message 針對回覆模式調整字數範圍,--json 輸出機器可讀格式。修正每個錯誤並重新執行,直到腳本以代碼 0 退出。除非有充分理由,否則也修正警告,並說明原因。

導致提案失敗的項目(錯誤):模板用語(如「I hope this finds you well」、「seamless」、「I'm excited to」)、「not just X, but Y」類型的對比、破折號、[Your Name] 等佔位符、電子郵件、電話號碼或「message me on WhatsApp」(多數平台禁止在簽約前提供聯絡方式)、連結、事實檔案未支持的「N years」、以及「Never say」下列出的詞語。在封面模式(cover mode)下,字數不得超過 90 字。警告涵蓋:既不在事實檔案也不在貼文中的技術名詞、缺少或第二個提問、列表、「Dear Sir」、「!!」、表情符號以及過長的句子。每個專案的自訂調整可放在 .cover-lint.json 中: {"facts": "facts.md", "maxWords": 90, "minWords": 50, "extraPhrases": [], "allowPhrases": [], "disable": []}。

未經用戶確認為真,切勿編輯事實檔案以使某個宣稱通過檢查。

5. 交給用戶

顯示提案、提案中提到的價格與交付時間,以及審查腳本的最後一行。然後自己再對照事實檔案讀一遍:審查腳本檢查連結、年資和技術名稱,但並非每個句子。由用戶自行發送提案;永遠不要替他們提交任何內容。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相關技能