自我推薦信檢查工具(Cover letter lint)
目標:一封 50-90 字的自我推薦信,讓忙碌的客戶能讀到最後並回覆,且每一項宣稱都必須有使用者自己的事實檔案作為背書。
檢查工具是本技能資料夾中的 scripts/lint-cover.mjs(需要 Node 20+,無其他依賴)。在 Claude Code 中(外掛安裝也適用),請使用完整路徑呼叫:node ${CLAUDE_SKILL_DIR}/scripts/lint-cover.mjs。其他代理程式可能不支援該環境變數,因此請改用實際資料夾位置,例如專案安裝用 node .claude/skills/cover-letter-lint/scripts/lint-cover.mjs,全域安裝則用 node ~/.claude/skills/cover-letter-lint/scripts/lint-cover.mjs。
1. 尋找事實檔案
在當前專案中尋找 facts.md、me/facts.md 或 .cover-lint.json 中 "facts" 路徑指向的檔案。
- 找到:讀取它。所有宣稱只能來自此檔案。
- 找不到:提議從本技能資料夾的
templates/facts.md建立facts.md,並請使用者填入資料(技能、角色、過往紀錄、證明連結、絕對不能說的事)。不要憑空編造任何內容。如果使用者拒絕建立,則在執行 linter 時不要加上--facts參數,並告知使用者宣稱未經檢查。
2. 撰寫(如果使用者已有草稿則跳過)
如果使用者貼了一份工作貼文,請將其儲存成檔案(例如 job.md)。然後以純文字句子(不要使用條列式或標題)撰寫:
- 以客戶的語氣打招呼,然後針對他們貼文中的一個具體細節(錯誤、技術棧、截止日期),說明可能的原因或你會如何處理。切勿重複貼文內容。
- 從事實檔案中找出一條真正相關的證明(類似的工作、一個角色、一個展示連結)。個人專案請標明是個人專案。如果沒有誠實的匹配項,則省略證明。
- 以一兩句話說明計畫,如果使用者給了你費率,則加上時數和價格。
- 一個問題,一個答案會改變範圍或價格的問題。
- 使用者名字自成一行。
模仿貼文的風格:三行隨意的貼文就回三行隨意的內容,對方用另一種語言就用同樣語言回覆。
3. 檢查與修正
node ${CLAUDE_SKILL_DIR}/scripts/lint-cover.mjs --facts facts.md --job job.md proposal.md
(- 代表從標準輸入讀取;--mode message 用於客戶回覆,此模式無字數範圍限制;--json 則輸出機器可讀的格式。)
修正所有錯誤,並重新執行直到 exit code 為 0。對於警告:除非有理由保留,否則全部修正,並說明理由。對於 unlisted-skill,可以移除該宣稱,或詢問使用者是否要將該技能加入事實檔案。未經使用者確認,絕不為讓宣稱通過而編輯事實檔案。
| 規則 | 等級 | 偵測項目 |
|---|---|---|
| ai-phrase | error | 約 75 種模板用語:「I hope this finds you well」、「seamless」、「I'm excited to」、「the key is」… |
| not-x-but-y | error | 「This is not just X, but Y」這種對比句型 |
| dash | error | 長破折號及用來代替長破折號的連字號 |
| placeholder | error | [Your Name]、{{name}}、<client>、TODO、lorem ipsum |
| off-platform | error | 電子郵件、電話號碼、「在 WhatsApp 上聯絡我」、平台外付款 |
| unbacked-claim | error | 事實檔案中沒有的連結和「N 年經驗」 |
| never-say | error | 事實檔案中「Never say」底下所列的用語 |
| word-count | error / warn | 在 cover 模式下,超過 90 字(error)、低於 50 字(warning) |
| unlisted-skill | warn | 信件中提到的事實檔案和工作貼文都沒有的框架或服務 |
| question | warn | 沒有問題,或超過一個問題 |
| list, greeting, exclamation, emoji, long-sentence, i-start | warn | 條列、「Dear Sir」、「!!」、表情符號、超過 35 字的句子、太多以「I」開頭的句子 |
每個專案的自訂設定可放在 .cover-lint.json(所有鍵皆為選填):
{"facts": "facts.md", "maxWords": 90, "minWords": 50, "extraPhrases": [], "allowPhrases": [], "disable": []}。
4. 移交給使用者
顯示信件內容以及檢查工具的最後一行輸出。說出你選擇的價格和問題,讓使用者可以修改。然後自己對照事實檔案再讀一遍:檢查工具負責檢查連結、年資和技術名稱,但並非檢查每個句子。由使用者自行送出,絕不要代替他們送出任何東西。