Communityライティング&編集github.com

潔癖.skill

潔癖.skill:讓 AI Agent 留下的痕跡有意義、有範圍、並在需要時可清除。

潔癖.skill とは?

潔癖.skill 是一個專為 AI Agent(如 Claude Code、Cursor、Codex 等)設計的環境衛生治理工具。它的核心目標是阻止 Agent 在專案根目錄或工作區中隨意產生無用檔案(如 plan.md、todo.md、summary.md)和快取,確保每個產物都具有明確的意圖、所有者、讀者、生命週期和復原路徑。該技能支援跨平台(Linux、macOS、Windows,包括 WSL2 和 Docker)的環境掃描,並提供基於 Python 和 PowerShell 的腳本進行倉庫衛生評分、工作區審計和本地機器審計(包括磁碟增長、WSL2/Docker 佔用、模型快取等)。使用時遵循三層模型(倉庫、工作區、本地機器)和五類文件分類(正式文件、使用者要求交付物、臨時工作文件、自我慶賀文件、工具狀態文件),並強制執行「產生意圖檢查」,在建立任何檔案前必須明確回答其意圖。所有自動化操作預設為乾執行(DryRun),禁止自動刪除工具狀態目錄、Git 追蹤檔案、正式文件和使用者筆記,對於高風險操作(如 WSL2/Docker VHDX 壓縮、資料遷移)僅提供手動指引。

対応✓Claude Code✓Codex CLI✓Cursor
npx skills add Phoenix0531-sudo/tidy-skill

Installed? Explore more ライティング&編集 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

潔癖.skill は何をしますか?

阻止 AI Agent 在你的倉庫中亂丟 plan.md、todo.md、summary.md 和一次性產物。 別讓 AI Agent 把你的專案根目錄變成 Markdown 垃圾場。

這不是一個 Markdown 刪除器。 這個 Skill 管理的是 Agent 工作的本地環境:倉庫產物、工作區快取、WSL2/Docker 儲存、套件管理員快取、模型快取,以及 Agent/IDE 狀態。

一個檔案或快取並不只是因為它很大就是垃圾。當它沒有意圖、沒有所有者、沒有讀者、沒有生命週期、沒有復原路徑時,它才成為衛生風險。目標不是激進地刪除,而是要確保每個產物、快取和本地環境足跡都有其目的、位置和安全的下一步動作。


1. 衛生模型

使用三層模型:

層級範圍範例預設動作
倉庫Agent 建立的產物plan.md、todo.md、.agent_tmp/、.agent_reports/分類、報告、乾執行清理
工作區跨專案的開發快取node_modules、.venv、target、建置快取審計、評分、建議
本地機器工具鏈與虛擬化環境WSL2、Docker Desktop、套件快取、模型快取、Agent/IDE 狀態唯讀對映、風險分類、手動指引

報告應區分:

  1. 發現 — 本地觀察到的事實。
  2. 安全建議 — 低風險的下一步,例如執行乾執行或將未來的報告移至 .agent_reports/。
  3. 手動 / 高風險操作 — 遷移、VHDX 壓縮、Docker 資料搬遷、模型快取搬遷或組態編輯。絕不自動執行這些操作。

2. 何時使用此 Skill

當使用者詢問以下內容時,請呼叫此 Skill:

觸發條件範例
整理 / 組織"整理專案目錄"、"clean up this repo"、"organize my project"
產生產物"寫計劃"、"生成報告"、"create a plan/todo/summary/report/audit"
審計"審計專案檔案"、"scan for agent artifacts"、"列出可疑檔案"
清理"清理 Agent 檔案"、"clean agent temp files"、"刪除暫存檔案"
決定"這個檔案該不該生成?"、"should I create this file or keep it in chat?"
評分"給我的倉庫打潔癖分"、"repo hygiene score"、"how clean is my repo?"
工作區審計"掃描工作區"、"audit my workspace"、"找出多個倉庫的 Agent 產物"
本地環境審計"審計我的本地環境"、"inspect local agent environment"、"where are my dev caches"
建立規則"建立 AGENTS.md / CLAUDE.md / Cursor Rules"
任務完成結束前的包裹衛生檢查
污染"多個 Agent 亂寫檔案"、"project root is a mess of markdown"
抱怨"不要產生垃圾文件"、"清理 plan.md / todo.md"
環境檢查"inspect my coding environment"、"where is node/python/go installed?"
磁碟增長"why is my C drive growing?"、"find package/model caches"
WSL2 / Docker"WSL2 佔用太大"、"Docker Desktop disk is huge"、"where is ext4.vhdx"
模型快取"Ollama/Hugging Face models on C drive"、"AI model cache audit"
Agent 狀態"Claude/Codex/Cursor state locations"、"agent config/cache footprint"

3. 何時不用此 Skill(絕不執行)

請停下來詢問使用者,或嚴格避免以下請求:

  • 刪除正式專案文件
  • 修改使用者筆記
  • 清理原始碼 (src/、lib/、app/)
  • 觸碰工具狀態目錄 (.codex/、.claude/、.cursor/、.vscode/、*.sqlite、state.json、session.json、workspaceStorage、globalStorage、auth-token)
  • 未經確認的大量 Markdown 刪除
  • 強制刪除 Git 追蹤的檔案
  • 清理個人/使用者資料夾中未知的 Markdown
  • 修改系統設定或登錄檔
  • 註冊排程任務
  • 上傳日誌、報告、憑證或環境資料
  • 未經使用者明確指定根範圍而掃描整台電腦
  • 讀取認證 token、session 檔案、sqlite 資料庫或私人日誌
  • 僅因大型就刪除工具或模型快取
  • 在沒有單獨明確的遷移請求下移動工具或重寫環境變數
  • 壓縮 WSL/Docker VHDX 檔案
  • 匯出/匯入 WSL 發行版
  • 編輯 .wslconfig、Docker 設定、shell profile 或套件管理員組態

4. 產物分類

Agent 建立的每個檔案都屬於五個類別之一。是類別——不是副檔名——決定了處理方式。

類別範例位置生命週期自動刪除?
A — 正式文件README.md、CHANGELOG.md、LICENSE、docs/**、CONTRIBUTING.md、使用者筆記docs/、專案根目錄永久從不
B — 使用者要求交付物審計報告、遷移計劃、研究報告(使用者明確要求).agent_reports/30 天保留期後
C — 暫存工作產物計劃、待辦事項、筆記、草稿、進度、任務清單.agent_tmp/7 天保留期後
D — 自我慶賀總結、最終報告、工作總結、經驗教訓、變更總結不要建立不適用不適用
E — 工具狀態(超出範圍).codex/、.claude/、.cursor/、*.sqlite、狀態檔案工具目錄不適用從不

關鍵規則:

  • 類別 A → 從不自動刪除,從不自動重寫
  • 類別 B → 特定檔案名稱 <task>_<date>.md,絕不在專案根目錄
  • 類別 C → 僅限 .agent_tmp/,絕不提交,任務結束時清理
  • 類別 D → 不要建立。聊天視窗就是總結。
  • 類別 E → 完全忽略,從不標記為可疑

5. 產生意圖檢查(強制執行)

在建立任何新檔案之前,請填寫此檢查清單。如果你無法回答每個欄位,請不要建立檔案。

產生意圖檢查
─────────────────────
1. 使用者要求建立檔案?          是 / 否
2. 目的:
3. 讀者:
4. 預期生命週期:               工作階段 / 天 / 持續 / 正式文件
5. 目標路徑:
6. 為什麼聊天回應不夠:
7. 類別:                        暫存 / 持續 / 正式文件
8. 是否應加入 .gitignore?       是 / 否

決定規則:

情境動作
#1 = 否,類別 ≠ A不要建立。 在聊天中回答。
目的 = 計劃/待辦事項/總結/進度,讀者 = 這位使用者僅限聊天。 不建立檔案。
必須建立,類別 = C.agent_tmp/<specific-name>.md
必須建立,類別 = B.agent_reports/<task>_<YYYY-MM-DD>.md
類別 = A(正式文件)docs/ 路徑,使用者明確要求
檔案重述此聊天內容不要建立
無明確讀者不要建立
無明確生命週期不要建立
無後續用途不要建立

6. 檔案生成的硬性規則

  1. 預設:不要寫入檔案。
  2. 計劃、待辦事項、總結、進度 → 在聊天中回答。
  3. 禁止將通用流程 Markdown 放在專案根目錄,除非使用者明確命名了一個檔案。
  4. 禁止放在專案根目錄(除非使用者明確要求該確切檔案):
    todo.md, plan.md, notes.md, lessons.md, summary.md, report.md,
    final_report.md, implementation_plan.md, migration_plan.md,
    audit_report.md, cleanup_report.md, task_list.md, progress.md,
    work_summary.md, changes_summary.md, *_summary.md, *_report.md, *_plan.md
    
  5. 暫存檔案 → .agent_tmp/
  6. 持續報告 → .agent_reports/
  7. 正式文件 → docs/(僅在明確要求時)
  8. 不要為了「看起來專業」而產生報告。
  9. 不要自動建立任務結束的總結檔案。
  10. 不要將聊天內容複製到檔案中。
  11. 使用具體的檔案名稱:<task>_<context>_<date>.md
  12. 如果使用者要求檔案,先提議路徑 + 檔案名稱。
  13. 如果使用者說「告訴我」/「總結」/「規劃一下」→ 在聊天中回答。

7. 允許和禁止的位置

允許

內容允許的位置
暫存工作檔案.agent_tmp/
使用者要求報告.agent_reports/
正式文件docs/(需要明確請求)
使用者指定的路徑使用者明確命名的任何路徑

禁止

位置原因
專案根目錄(通用流程 Markdown)保留給正式的倉庫檔案
src/、lib/、app/原始碼目錄
.codex/、.claude/、.cursor/、.vscode/工具狀態 — 不要觸碰

8. 受保護的檔案(絕不自動刪除)

README.md, README.*.md
CHANGELOG.md
LICENSE, LICENSE.*
CONTRIBUTING.md
CODE_OF_CONDUCT.md
SECURITY.md
Everything under docs/
任何在 .agent_tmp/ 或 .agent_reports/ 之外的 Git 追蹤檔案
使用者手寫筆記

9. 生命週期

位置預設保留時間清理
.agent_tmp/7 天Agent 應在任務結束時自行清理
.agent_reports/30 天如需長期保存,移至 docs/
docs/永久無自動生命週期

10. 倉庫衛生評分

當被問及倉庫衛生評分時,如果 Python 可用,優先使用 ${CLAUDE_SKILL_DIR}/scripts/score_repo_hygiene.py。在僅限 Windows 的環境中,使用 ${CLAUDE_SKILL_DIR}/scripts/score-repo-hygiene.ps1。

分數評級 (en)評級 (zh)
90–100Clean很乾淨
70–89Mostly clean基本乾淨
50–69Needs tidy-up需要整理
0–49Artifact landfillAgent 產物垃圾場

評分維度: 根目錄整潔度、產物放置、受保護文件清晰度、Git 衛生、Agent 狀態隔離、清理準備。可選權重因子:--weights references/score-weights.example.json。

可選專案策略:將 .tidy-skill.json(或 tidy-skill.policy.json)放在倉庫根目錄,或傳入 --policy。模式範例:references/tidy-skill.policy.example.json。策略可以擴展禁止/受保護的根目錄模式、設定 min_score、要求 .agent_tmp/ + .agent_reports/,並透過 planning_root_globs 選擇性地允許規劃佈局根目錄名稱(請參閱 references/tidy-skill.policy.pwf.example.json 了解與檔案共存的規劃)。.planning/** 在沒有策略的情況下被識別為有意的類別 C 暫存工作記憶。

診斷、修復、分類、快照

需求腳本
一鍵安裝 + 衛生診斷 / CI 關卡${CLAUDE_SKILL_DIR}/scripts/tidy_doctor.py
先乾執行的安全修復(佈局目錄;可選根目錄移動)${CLAUDE_SKILL_DIR}/scripts/tidy_repair.py
乾執行主機鉤子組態發射器${CLAUDE_SKILL_DIR}/scripts/tidy-install-hooks.py
在寫入前分類路徑(類別 A–E);批次透過 --stdin --json${CLAUDE_SKILL_DIR}/scripts/classify_artifact.py
儲存/比較分數歷史;以 min_score 作為關卡${CLAUDE_SKILL_DIR}/scripts/hygiene_snapshot.py

安全動詞(意義始終相同):

  • dryrun — 僅預覽(修復、清理、安裝鉤子的預設值)
  • careful — 僅修改 Agent 工作檔案(tidy_repair.py --apply --move-root)
  • guard — 嚴厲拒絕主機組態、VHDX、Docker 資料、Git 追蹤檔案、類別 A 文件

tidy_repair.py 是診斷→下一步的伴侶工具。預設僅提供計劃。--apply 建立 .agent_tmp/ + .agent_reports/ 並附帶 .gitkeep。根目錄流程移動需要同時加上 --apply 和 --move-root,並且仍然拒絕 Git 追蹤/受保護的名稱。

hygiene_snapshot.py save 預設寫入 .agent_reports/hygiene-history/ 下(類別 B 交付物歷史,不是根目錄垃圾)。gate 和診斷在衛生/策略失敗時退出碼為 2。


11. 工作區衛生審計

當被要求掃描多個倉庫時,優先使用 ${CLAUDE_SKILL_DIR}/scripts/audit_workspace_hygiene.py 作為可攜式基準。在僅限 Windows 的工作流程中,${CLAUDE_SKILL_DIR}/scripts/audit-workspace-hygiene.ps1 也可以。使用者必須明確指定根目錄。絕不預設掃描整個磁碟機。

對於單一倉庫的 Agent 產物審計,如果 Python 可用,優先使用 ${CLAUDE_SKILL_DIR}/scripts/audit_agent_artifacts.py。當停留在 PowerShell 工作流程中時,使用 ${CLAUDE_SKILL_DIR}/scripts/audit-agent-artifacts.ps1。審計和評分都接受可選的 --policy。

可選的任務結束唯讀檢查:${CLAUDE_SKILL_DIR}/hooks/stop-hygiene-check.py(僅報告;絕不刪除)。觸發短語位於 commands/TRIGGERS.md。


12. 本地機器衛生審計

當被問及 C 槽增長、WSL2、Docker Desktop、模型快取、套件快取、Agent 狀態或本地開發環境擴散時,使用 ${CLAUDE_SKILL_DIR}/scripts/audit-dev-environment.ps1。

對於非 Windows 環境中的可攜式套件/模型快取對映,使用 ${CLAUDE_SKILL_DIR}/scripts/audit_dev_environment.py。對於 Windows 特定的 WSL2/Docker VHDX 檢查,使用 PowerShell 腳本。

規則:

  1. 當需要掃描專案/工作區時,請詢問明確的掃描根目錄。
  2. 僅在使用者希望包含預設使用者設定檔快取位置時,才使用 -IncludeUserProfile。
  3. 僅在使用者明確要求磁碟級提示時,才使用 -IncludeDrives。
  4. 將 WSL/Docker 遷移、VHDX 壓縮、Docker 資料搬遷、.wslconfig 編輯和模型快取搬遷視為手動 / 高風險操作。
  5. 絕不讀取 token、session 檔案、SQLite 資料庫、登錄機碼、私人日誌或憑證儲存。

有關 WSL2 和 Docker 的詳細資訊,請閱讀 references/wsl2-docker-hygiene.md。


13. 清理規則

允許的自動清理:

  1. .agent_tmp/ — 超過 7 天的檔案
  2. .agent_reports/ — 超過 30 天的檔案
  3. 使用者指定的 Agent 暫存目錄
  4. 指定的、已過期的、Agent 建立的流程檔案

禁止的自動清理:

  • 受保護的文件(類別 A)
  • 原始碼
  • 工具狀態(類別 E)
  • 使用者資料夾中未知的 Markdown
  • Git 追蹤的檔案
  • 根層級可疑檔案 → 僅報告,詢問使用者

14. 審計規則

  • 唯讀 — 從不修改檔案
  • 有深度限制,跳過 .git/、node_modules/、dist/、build/、target/、.venv/、venv/
  • 列出:.agent_tmp/、.agent_reports/、根層級可疑檔案、受保護文件
  • 建議動作,但不執行任何動作
  • 不進行上傳或網路呼叫

15. 任務結束檢查清單

在報告「完成」之前:

  1. 我建立了任何檔案嗎?每個檔案是否都有產生意圖檢查的理由?
  2. 是否

…

[截斷以利翻譯]

関連スキル