skills/inbox/SKILL.md
TwinMind inbox engine — the safety net for half-formed thoughts. Use this skill whenever the user shares something vague, unstructured, or not yet ready to become a Card, Action, Task, or Project. Classic triggers: '突然想到...', '隨手記一下', '有個想法但還不確定', 'inbox', '升格', 'promote', 'dismiss', '清理 inbox', 'triage', '待處理'. Also use this when the user's input is ambiguous — if you can't tell whether it's knowledge, a task, or an action, it belongs in the Inbox. The key question: does the user know what this should become? If not → Inbox. Important: do NOT use this for inputs that are already clear — a fact goes to twinmind:capture, '買牛奶' goes to twinmind:task, a scoped action goes to twinmind:action.
npx skillsauth add VolderLu/TwinMind inboxInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Inbox 是所有模糊輸入的安全網。人的大腦會在隨機時刻冒出想法——有些已成形,有些只是碎片。Inbox 的存在讓使用者不需要在靈感出現的那一刻決定「這是知識還是任務」,只要先記下來,之後再分類。
一致性驗證由 PostToolUse hooks 自動處理。狀態變更操作完成後透過 Bash tool 執行 node .claude/twinmind/bin/tm-post-op.mjs 觸發 post-op pipeline。唯讀查詢不需要。
透過 Bash tool 執行:
node .claude/twinmind/bin/tm-post-op.mjs --layer <action|both> --event '{"event_type":"<INBOX_CREATED|INBOX_PROMOTED|INBOX_DISMISSED>","event_context":{"inbox_id":"<id>","inbox_text":"<text>","promoted_to":"<path 或 null>"}}'
升格為 Card 時用 --layer both,其餘用 --layer action。腳本同步執行,執行完成後再回應使用者。
這是本 skill 最重要的判斷。Inbox 只收「還不確定要變成什麼」的想法,已經明確的輸入應該直接到目的地(跳過 Inbox 減少摩擦):
twinmind:capturetwinmind:tasktwinmind:action判斷標準很簡單:使用者自己知道這該變成什麼嗎? 知道 → bypass。不知道 → Inbox。
分類依據:輸入是否有可辨識的主題或探索方向。有方向 = idea,無方向 = memo。
建立 vault/PARA/Inbox/<id>-<slug>.md(id 為 YYYYMMDDHHmmss,slug 為 kebab-case 英文)。
Frontmatter 包含 5 個必填欄位:id、type(memo/idea)、text(一行摘要)、created(YYYY-MM-DD)、status(初始為 pending)。選填 promoted_to(升格後填入目標路徑)。
Body 保留使用者的原始輸入,不要重寫或原子化——Inbox 的價值在於忠實記錄當下的想法,整理是升格時的事。
更新 vault-index.json:在 inbox 新增條目,stats.total_inbox += 1。執行 post-op(Bash tool,--layer action --event '{"event_type":"INBOX_CREATED",...}')。
升格是 Inbox 的核心價值——讓想法在成熟後流向正確的容器。7 條路徑:
| 從 → 到 | 怎麼做 | 何時適用 |
|---------|--------|---------|
| memo → idea | 更新 type,豐富 body,status 保持 pending | 想法開始有方向了,但還不夠具體 |
| → Card | 調用 twinmind:capture 建卡 | 想法已成熟為可獨立存在的知識 |
| → Action(獨立)| 調用 twinmind:action,action 的 source_inbox 填 inbox ID | 想法變成了具體可執行的行動 |
| → Action(專案內)| 調用 twinmind:project 追加 action | 想法屬於某個專案的行動 |
| → Task(獨立)| 調用 twinmind:task | 想法具體化為一個待辦事項 |
| → Task(專案內)| 調用 twinmind:project 追加 task | 想法屬於某個專案的任務 |
| → Project | 調用 twinmind:project 建專案 | 想法大到需要一個專案來承載 |
升格後更新 inbox 檔案(status: promoted,promoted_to 填目標路徑),更新 index(total_inbox -= 1)。執行 post-op(Bash tool,升格為 Card 用 --layer both,其餘用 --layer action,event_type: INBOX_PROMOTED)。
升格目標由使用者指示決定。若使用者沒有明確指定,根據內容推測最可能的目標並確認。
使用者決定不要這個想法了。更新 status 為 dismissed(不刪除檔案——保留歷史記錄),total_inbox -= 1。執行 post-op(Bash tool,--layer action --event '{"event_type":"INBOX_DISMISSED",...}')。
從 vault-index.json 的 inbox 讀取,按 status 分組顯示:
💡 idea 或 📝 memo + text + created 日期支援按 status 篩選。空態回報「Inbox 是空的」。列出是唯讀操作,不需 post-op。
testing
TwinMind task engine — manages standalone tasks (life chores, errands, quick todos). Use this skill when the user mentions a simple, concrete thing they need to do that doesn't belong to any project or action. Classic triggers: short imperative sentences like '買牛奶', '繳電費', '回覆 email', '預約牙醫', or explicit task operations like '加個待辦', 'add task', 'task done', '完成 task', '刪除 task', 'delete task', '列出 tasks', 'list tasks', '待辦清單'. The distinguishing feature of a standalone task is that it's too small for an Action and not tied to any project. If the user mentions a project name, route to twinmind:project. If it's a multi-step endeavor, consider twinmind:action instead.
tools
Initialize a new TwinMind vault in the current directory. Creates TwinMind.md configuration and vault directory structure from templates. Use when starting a fresh knowledge vault or setting up TwinMind in a new project.
development
Classifies user knowledge-base input into one of 9 intent categories (capture, inbox, query, project, action, task, area, review, connect) using signal words, priority rules, compound intent handling, and fuzzy fallback matching. Invoke BEFORE dispatching to any twinmind:* skill when the user provides knowledge-base input. Do NOT skip this step — the session startup skeleton only has a summary table; this skill has the complete rules needed for accurate classification.
development
TwinMind review and maintenance engine. Use for vault health checks, seed card review, index verification/rebuild, MOC management, and vault status summaries. Triggers on: 'vault status', '知識庫狀況', 'health report', '健康報告', 'verify index', '檢查索引', 'rebuild index', '重建索引', 'review seeds', '有哪些 seed', 'update MOC', or any request about knowledge base maintenance and overview.