{
  "schemaVersion": 1,
  "generatedAt": "2026-08-19T10:59:37.120Z",
  "commands": [
    {
      "group": "Daily",
      "title": "START HERE",
      "command": "open \"./START-HERE.command\"",
      "description": "Finder 雙擊用；不知道該做什麼時先按這個，它會讀 Operator Pick 並打開目前推薦入口。",
      "outputs": [
        "START-HERE.command",
        "automation-entrypoints.html",
        "index.html"
      ],
      "npmScripts": [],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Schedule",
      "title": "剛剛 launchd 失敗後救援",
      "command": "npm --prefix \".\" run launchd:repair\nnpm --prefix \".\" run launchd:test",
      "description": "人在任何 Terminal 位置都可貼；處理 cp launchd/...、Bootstrap failed、Could not find service 後的重裝與完整驗收。",
      "outputs": [
        "automation-launchd-diagnose.html",
        "automation-launchd-test.html",
        "automation-live.html"
      ],
      "npmScripts": [
        "launchd:repair",
        "launchd:test"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Run",
      "title": "完整流程 + 驗收",
      "command": "npm --prefix \".\" run automation:run-and-verify",
      "description": "日常最推薦；跑 local pipeline、verification、health、links、視覺頁。",
      "outputs": [
        "automation-run-and-verify.html",
        "index.html"
      ],
      "npmScripts": [
        "automation:run-and-verify"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Run",
      "title": "快速健檢",
      "command": "npm --prefix \".\" run automation:check -- \"$(npm --prefix \".\" run -s status:path)\"",
      "description": "不重跑 paper pipeline；只驗收現有輸出、視覺頁、連結和下一步。",
      "outputs": [
        "automation-check.html",
        "automation-next.html"
      ],
      "npmScripts": [
        "automation:check",
        "status:path"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Run",
      "title": "只跑底層 local pipeline",
      "command": "npm --prefix \".\" run automation:local",
      "description": "排錯用；會輸出 automation-log.json 與 automation-local.html。",
      "outputs": [
        "automation-log.json",
        "automation-local.html"
      ],
      "npmScripts": [
        "automation:local"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Daily",
      "title": "雙擊 10:00 閱讀入口",
      "command": "open \"./open-daily-brief.command\"",
      "description": "Finder 雙擊用；刷新並打開 Daily Brief、workflow 和 OpenWiki。",
      "outputs": [
        "open-daily-brief.command",
        "daily-brief.html",
        "openwiki/quickstart.md"
      ],
      "npmScripts": [],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Daily",
      "title": "雙擊最近一次自動化收據",
      "command": "open \"./open-receipt.command\"",
      "description": "Finder 雙擊用；刷新並打開 Automation Receipt，確認最近一次 local/verify/outputs/launchd/UI smoke 是否全綠。",
      "outputs": [
        "open-receipt.command",
        "automation-receipt.html",
        "automation-receipt.json"
      ],
      "npmScripts": [],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Daily",
      "title": "雙擊執行操作台",
      "command": "open \"./open-cockpit.command\"",
      "description": "Finder 雙擊用；刷新並打開按鈕式操作台。",
      "outputs": [
        "open-cockpit.command",
        "automation-cockpit.html"
      ],
      "npmScripts": [],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Daily",
      "title": "雙擊 Live monitor",
      "command": "open \"./open-live-monitor.command\"",
      "description": "Finder 雙擊用；持續刷新 automation-live.html，看執行中的 step。",
      "outputs": [
        "open-live-monitor.command",
        "automation-live.html"
      ],
      "npmScripts": [],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Daily",
      "title": "雙擊一句話決策",
      "command": "open \"./open-decision.command\"",
      "description": "Finder 雙擊用；刷新並打開 Automation Decision，先判斷現在該做什麼。",
      "outputs": [
        "open-decision.command",
        "automation-decision.html"
      ],
      "npmScripts": [],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "Local pipeline 報告",
      "command": "npm --prefix \".\" run automation:local-html",
      "description": "把 automation-log.json 轉成人可讀的步驟、stdout/stderr 與 slow steps 報告。",
      "outputs": [
        "automation-local.html"
      ],
      "npmScripts": [
        "automation:local-html"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Run",
      "title": "雙擊完整流程",
      "command": "open \"./run-automation.command\"",
      "description": "Finder 雙擊用；完成完整 local pipeline 後會接著同步視覺報表，再打開控制台。",
      "outputs": [
        "run-automation.command",
        "automation-run-and-verify.html",
        "automation-visual-sync.html",
        "index.html"
      ],
      "npmScripts": [],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Run",
      "title": "雙擊快速健檢",
      "command": "open \"./check-automation.command\"",
      "description": "Finder 雙擊用；完成後打開 Next actions。",
      "outputs": [
        "check-automation.command",
        "automation-check.html"
      ],
      "npmScripts": [],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Daily",
      "title": "雙擊目前推薦入口",
      "command": "open \"./do-recommended.command\"",
      "description": "Finder 雙擊用；讀取 Operator Pick，直接打開目前最推薦的 command。",
      "outputs": [
        "do-recommended.command",
        "automation-entrypoints.html",
        "index.html"
      ],
      "npmScripts": [],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Daily",
      "title": "雙擊同步視覺報表",
      "command": "open \"./sync-visuals.command\"",
      "description": "Finder 雙擊用；畫面舊掉或 Freshness 有 stale 時使用，只刷新視覺報表與控制台。",
      "outputs": [
        "sync-visuals.command",
        "automation-visual-sync.html",
        "automation-freshness.html",
        "index.html"
      ],
      "npmScripts": [],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "雙擊排錯儀表板",
      "command": "open \"./open-debug-dashboard.command\"",
      "description": "Finder 雙擊用；刷新並打開 State、Local Pipeline、Run+Verify、Quick Check、Launchd 與診斷頁。",
      "outputs": [
        "open-debug-dashboard.command",
        "automation-state.html",
        "automation-local.html",
        "automation-launchd-diagnose.html"
      ],
      "npmScripts": [],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "控制台",
      "command": "npm --prefix \".\" run control:center -- \"$(npm --prefix \".\" run -s status:path)\"",
      "description": "重建總入口 index.html。",
      "outputs": [
        "index.html"
      ],
      "npmScripts": [
        "control:center",
        "status:path"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "同步視覺報表",
      "command": "npm --prefix \".\" run sync:visuals -- \"$(npm --prefix \".\" run -s status:path)\"",
      "description": "不跑 paper pipeline；只按依賴順序刷新 dashboard、manifest、operator pick、freshness 與 UI smoke，最後輸出 final convergence。",
      "outputs": [
        "automation-visual-sync.html",
        "automation-freshness.html",
        "index.html"
      ],
      "npmScripts": [
        "sync:visuals",
        "status:path"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "雙擊 Automation manifest",
      "command": "open \"./open-automation-manifest.command\"",
      "description": "Finder 雙擊用；刷新並打開自動化 source of truth。",
      "outputs": [
        "open-automation-manifest.command",
        "automation-manifest.html"
      ],
      "npmScripts": [],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "n8n-like 自動化地圖",
      "command": "npm --prefix \".\" run automation:map -- \"$(npm --prefix \".\" run -s status:path)\"",
      "description": "看節點、輸入、輸出、狀態。",
      "outputs": [
        "automation-map.html"
      ],
      "npmScripts": [
        "automation:map",
        "status:path"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Research",
      "title": "建立研究專案",
      "command": "npm --prefix \".\" run research:init -- ortho-literature-review",
      "description": "建立 local-only 研究專案骨架；不呼叫 API。",
      "outputs": [
        "research-projects/ortho-literature-review/project.json"
      ],
      "npmScripts": [
        "research:init"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Research",
      "title": "產生文獻矩陣",
      "command": "npm --prefix \".\" run research:matrix -- ortho-literature-review \"$(npm --prefix \".\" run -s status:path)\"",
      "description": "把 status.json / paper list 轉成文獻矩陣。",
      "outputs": [
        "research-projects/ortho-literature-review/matrix/literature-matrix.md"
      ],
      "npmScripts": [
        "research:matrix",
        "status:path"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Research",
      "title": "產生主題標籤",
      "command": "npm --prefix \".\" run research:themes -- ortho-literature-review",
      "description": "從矩陣整理 3-5 個主題標籤與文獻歸類。",
      "outputs": [
        "research-projects/ortho-literature-review/themes/theme-map.md"
      ],
      "npmScripts": [
        "research:themes"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Research",
      "title": "主題深入分析",
      "command": "npm --prefix \".\" run research:synthesize -- ortho-literature-review --theme clinical-outcomes",
      "description": "針對單一主題整理共同性、差異性、可能解釋與研究缺口。",
      "outputs": [
        "research-projects/ortho-literature-review/synthesis/clinical-outcomes.md"
      ],
      "npmScripts": [
        "research:synthesize"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Research",
      "title": "代表性文獻",
      "command": "npm --prefix \".\" run research:representatives -- ortho-literature-review",
      "description": "依 study type、近期性、臨床重要性排序代表性文獻。",
      "outputs": [
        "research-projects/ortho-literature-review/representative-papers.md"
      ],
      "npmScripts": [
        "research:representatives"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Research",
      "title": "文獻回顧草稿",
      "command": "npm --prefix \".\" run research:review-draft -- ortho-literature-review",
      "description": "依主題與論點產出草稿，並同步建立 manuscript-story.md。",
      "outputs": [
        "research-projects/ortho-literature-review/review-draft.md",
        "research-projects/ortho-literature-review/manuscript-story.md"
      ],
      "npmScripts": [
        "research:review-draft"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Research",
      "title": "投稿前自審",
      "command": "npm --prefix \".\" run research:self-review -- ortho-literature-review",
      "description": "用核心結論、缺口、圖表與寫作檢查題進行人工自審。",
      "outputs": [
        "research-projects/ortho-literature-review/self-review.md"
      ],
      "npmScripts": [
        "research:self-review"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Research",
      "title": "研究流程視覺頁",
      "command": "npm --prefix \".\" run research:map -- ortho-literature-review",
      "description": "產生 research-workflow.html 與 research-dashboard.html。",
      "outputs": [
        "research-workflow.html",
        "research-dashboard.html"
      ],
      "npmScripts": [
        "research:map"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "健康檢查頁",
      "command": "npm --prefix \".\" run health:html",
      "description": "把 automation-health.json 轉成可讀頁。",
      "outputs": [
        "automation-health.html"
      ],
      "npmScripts": [
        "health:html"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "Run + Verify 報告",
      "command": "npm --prefix \".\" run automation:run-and-verify",
      "description": "此指令會自動產生可讀報告。",
      "outputs": [
        "automation-run-and-verify.html"
      ],
      "npmScripts": [
        "automation:run-and-verify"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "Launchd log 頁",
      "command": "npm --prefix \".\" run launchd:html",
      "description": "查看排程 stdout/stderr，不觸發流程。",
      "outputs": [
        "automation-launchd.html"
      ],
      "npmScripts": [
        "launchd:html"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "Launchd 診斷頁",
      "command": "npm --prefix \".\" run launchd:diagnose",
      "description": "檢查 plist 是否存在、是否已安裝、是否同步、service 是否載入，並提供常見錯誤修復指令。",
      "outputs": [
        "automation-launchd-diagnose.html",
        "automation-launchd-diagnose.json"
      ],
      "npmScripts": [
        "launchd:diagnose"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "Safe terminal 指令頁",
      "command": "npm --prefix \".\" run safe:terminal",
      "description": "產生從任何 Terminal 位置都能貼的安全指令，避免從 home 目錄誤跑相對路徑。",
      "outputs": [
        "automation-safe-terminal.html",
        "automation-safe-terminal.json"
      ],
      "npmScripts": [
        "safe:terminal"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "Performance 頁",
      "command": "npm --prefix \".\" run performance:html",
      "description": "查看最近執行耗時與慢步驟。",
      "outputs": [
        "automation-performance.html"
      ],
      "npmScripts": [
        "performance:html"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "Links 報告",
      "command": "npm --prefix \".\" run links:html",
      "description": "把 local link check 結果轉成可讀頁。",
      "outputs": [
        "automation-links.html"
      ],
      "npmScripts": [
        "links:html"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "Readiness 判斷頁",
      "command": "npm --prefix \".\" run readiness:html -- <status.json>",
      "description": "收斂 run+verify、doctor、launchd、links、commands，判斷週四 06:00 是否可放心自動跑。",
      "outputs": [
        "automation-readiness.html"
      ],
      "npmScripts": [
        "readiness:html"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "Schedule 排程頁",
      "command": "npm --prefix \".\" run schedule:html",
      "description": "顯示下一次週四 06:00、倒數、最近歷史與 launchd 手動入口。",
      "outputs": [
        "automation-schedule.html"
      ],
      "npmScripts": [
        "schedule:html"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "Environment 環境頁",
      "command": "npm --prefix \".\" run environment:html",
      "description": "顯示 Node/npm 路徑、版本、雙擊 fallback 與 launchd runtime。",
      "outputs": [
        "automation-environment.html"
      ],
      "npmScripts": [
        "environment:html"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "Overview 總覽頁",
      "command": "npm --prefix \".\" run overview:html",
      "description": "合併 readiness、schedule、environment、actions、health、verify 與 links。",
      "outputs": [
        "automation-overview.html"
      ],
      "npmScripts": [
        "overview:html"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "State snapshot 總狀態快照",
      "command": "npm --prefix \".\" run state:html -- <status.json>",
      "description": "給人與腳本讀的一份總狀態：可否自動跑、哪個 gate 卡住、下一步是什麼。",
      "outputs": [
        "automation-state.html",
        "automation-state.json"
      ],
      "npmScripts": [
        "state:html"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "Next actions 下一步",
      "command": "npm --prefix \".\" run next:html -- <status.json>",
      "description": "把目前狀態收斂成 3 到 8 個可操作下一步。",
      "outputs": [
        "automation-next.html"
      ],
      "npmScripts": [
        "next:html"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "Automation decision 一句話判斷",
      "command": "npm --prefix \".\" run decision:html -- <status.json>",
      "description": "回答現在是可交給自動化、需先修、或有高優先人工項目。",
      "outputs": [
        "automation-decision.html",
        "automation-decision.json"
      ],
      "npmScripts": [
        "decision:html"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "Execution cockpit 操作台",
      "command": "npm --prefix \".\" run cockpit:html -- <status.json>",
      "description": "把所有雙擊入口整理成按鈕牆，標明只看、檢查、執行、修復。",
      "outputs": [
        "automation-cockpit.html",
        "automation-cockpit.json"
      ],
      "npmScripts": [
        "cockpit:html"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "Live monitor",
      "command": "npm --prefix \".\" run monitor:html",
      "description": "把目前 quick check / local pipeline / run+verify 的 running step 轉成自動刷新頁。",
      "outputs": [
        "automation-live.html",
        "automation-live.json"
      ],
      "npmScripts": [
        "monitor:html"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "Entry points 入口選擇",
      "command": "npm --prefix \".\" run entrypoints:html -- <status.json>",
      "description": "比較只看、快速健檢、完整重跑、安裝排程與 kickstart。",
      "outputs": [
        "automation-entrypoints.html"
      ],
      "npmScripts": [
        "entrypoints:html"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "Operator Pick 解析",
      "command": "npm --prefix \".\" run operator:pick",
      "description": "把 automation-entrypoints.json 的推薦入口解析成 operator-pick.json；START-HERE.command 也使用同一套邏輯。",
      "outputs": [
        "operator-pick.json",
        "automation-entrypoints.json"
      ],
      "npmScripts": [
        "operator:pick"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "目前 status.json 路徑",
      "command": "npm --prefix \".\" run status:path",
      "description": "解析目前應使用的 status.json：優先最新 run-and-verify / automation-log，最後才退回 fixture。",
      "outputs": [
        "automation-current-status.html",
        "automation-run-and-verify.json",
        "automation-log.json"
      ],
      "npmScripts": [
        "status:path"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "目前 status.json 視覺報告",
      "command": "npm --prefix \".\" run status:path:html",
      "description": "把 status.json 解析順序、候選來源與最後選中的檔案做成可讀頁。",
      "outputs": [
        "automation-current-status.html",
        "automation-current-status.json"
      ],
      "npmScripts": [
        "status:path:html"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "Capabilities 能力矩陣",
      "command": "npm --prefix \".\" run capabilities:html -- <status.json>",
      "description": "看目前已建立哪些自動化能力、入口與證據檔。",
      "outputs": [
        "automation-capabilities.html"
      ],
      "npmScripts": [
        "capabilities:html"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "Freshness 同步狀態",
      "command": "npm --prefix \".\" run freshness:html",
      "description": "確認各報告是否同步，避免 overview 或控制台讀到舊 JSON。",
      "outputs": [
        "automation-freshness.html"
      ],
      "npmScripts": [
        "freshness:html"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "Automation manifest",
      "command": "npm --prefix \".\" run manifest:html -- <status.json>",
      "description": "產生機器可讀與人可讀的正式入口總清單：報告、雙擊檔、npm scripts 與 local-only 邊界。",
      "outputs": [
        "automation-manifest.html",
        "automation-manifest.json"
      ],
      "npmScripts": [
        "manifest:html"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "Automation manifest check",
      "command": "npm --prefix \".\" run manifest:check",
      "description": "驗證 manifest 裡的報告、雙擊檔、npm scripts 與 local-only 邊界仍可信。",
      "outputs": [
        "automation-manifest-check.html",
        "automation-manifest-check.json"
      ],
      "npmScripts": [
        "manifest:check"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Inspect",
      "title": "UI smoke 頁",
      "command": "npm --prefix \".\" run ui:smoke",
      "description": "檢查 Copy 按鈕、 fallback、完整 cd 指令與雙擊入口。",
      "outputs": [
        "automation-ui-smoke.html"
      ],
      "npmScripts": [
        "ui:smoke"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Repair",
      "title": "執行前檢查",
      "command": "npm --prefix \".\" run automation:preflight",
      "description": "檢查 Node/npm、必要檔、權限、local-only 邊界。",
      "outputs": [
        "automation-preflight.json"
      ],
      "npmScripts": [
        "automation:preflight"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Repair",
      "title": "Doctor",
      "command": "npm --prefix \".\" run automation:doctor -- <status.json>",
      "description": "檢查檔案、launchd、schema、local-only 邊界。",
      "outputs": [
        "automation-health.json"
      ],
      "npmScripts": [
        "automation:doctor"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Repair",
      "title": "Local links",
      "command": "npm --prefix \".\" run links:check",
      "description": "檢查本地 HTML 連結是否存在。",
      "outputs": [
        "automation-links.json"
      ],
      "npmScripts": [
        "links:check"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Repair",
      "title": "Local verification",
      "command": "npm --prefix \".\" run verify:local -- <status.json>",
      "description": "語法、HTML、preflight、doctor、links、schema 一次驗收。",
      "outputs": [
        "automation-verification.html"
      ],
      "npmScripts": [
        "verify:local"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Schedule",
      "title": "安裝 launchd",
      "command": "npm --prefix \".\" run launchd:install",
      "description": "把 plist 安裝到 ~/Library/LaunchAgents 並重載。",
      "outputs": [
        "launchd/com.ferociyyy.ortho-paper-local-automation.plist"
      ],
      "npmScripts": [
        "launchd:install"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Schedule",
      "title": "雙擊安裝 launchd",
      "command": "open \"./install-launchd.command\"",
      "description": "Finder 雙擊用；安裝、健檢、刷新 readiness 與控制台。",
      "outputs": [
        "install-launchd.command"
      ],
      "npmScripts": [],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Schedule",
      "title": "Launchd 安裝並試跑驗收",
      "command": "npm --prefix \".\" run launchd:test",
      "description": "安裝 LaunchAgent、立即 kickstart、輪詢到結束，產出 launchd test report。",
      "outputs": [
        "automation-launchd-test.html",
        "automation-launchd-test.json"
      ],
      "npmScripts": [
        "launchd:test"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Schedule",
      "title": "雙擊安裝並試跑 launchd",
      "command": "open \"./install-and-test-launchd.command\"",
      "description": "Finder 雙擊用；執行 launchd:test，結束後打開驗收報告、live monitor 與 launchd log。",
      "outputs": [
        "install-and-test-launchd.command",
        "automation-launchd-test.html",
        "automation-live.html",
        "automation-launchd.html"
      ],
      "npmScripts": [],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Schedule",
      "title": "修復 launchd",
      "command": "npm --prefix \".\" run launchd:repair",
      "description": "移除舊服務、重裝 plist、bootstrap、enable 並驗證 service。",
      "outputs": [
        "repair-launchd.command",
        "automation-launchd.html"
      ],
      "npmScripts": [
        "launchd:repair"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Schedule",
      "title": "雙擊修復 launchd",
      "command": "open \"./repair-launchd.command\"",
      "description": "Finder 雙擊用；處理 cp/bootstrap/service not found 後的重裝同步。",
      "outputs": [
        "repair-launchd.command",
        "automation-health.html"
      ],
      "npmScripts": [],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Schedule",
      "title": "雙擊診斷 launchd",
      "command": "open \"./diagnose-launchd.command\"",
      "description": "Finder 雙擊用；不重跑 pipeline，只產生 launchd 診斷頁。",
      "outputs": [
        "diagnose-launchd.command",
        "automation-launchd-diagnose.html"
      ],
      "npmScripts": [],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Schedule",
      "title": "手動觸發 launchd",
      "command": "npm --prefix \".\" run launchd:kickstart",
      "description": "只送出 launchd 觸發，不等待完整流程結束；完整驗收請用 npm --prefix 的 launchd:test。",
      "outputs": [
        "automation-launchd.html"
      ],
      "npmScripts": [
        "launchd:kickstart"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Schedule",
      "title": "雙擊觸發 launchd",
      "command": "open \"./kickstart-launchd.command\"",
      "description": "Finder 雙擊用；正式走 launchd 觸發並打開 launchd report，但不輪詢到結束。",
      "outputs": [
        "kickstart-launchd.command",
        "automation-launchd.html"
      ],
      "npmScripts": [],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Schedule",
      "title": "檢查 launchd 狀態",
      "command": "npm --prefix \".\" run launchd:status",
      "description": "查看 service 是否 loaded、last exit code、下次排程。",
      "outputs": [
        "automation-launchd.html"
      ],
      "npmScripts": [
        "launchd:status"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Manual",
      "title": "人工待辦",
      "command": "npm --prefix \".\" run manual:actions -- <status.json>",
      "description": "整理 GPT Pro、wiki review、RAG 等人工缺口。",
      "outputs": [
        "manual-actions.html"
      ],
      "npmScripts": [
        "manual:actions"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "Manual",
      "title": "GPT handoff",
      "command": "npm --prefix \".\" run gpt:handoff -- <status.json>",
      "description": "產生要貼到 GPT Pro 的 handoff markdown。",
      "outputs": [
        "runs/YYYY-MM-DD/.../gpt-pro-handoff.md"
      ],
      "npmScripts": [
        "gpt:handoff"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "External-off",
      "title": "Notion dry run",
      "command": "npm --prefix \".\" run notion:dry-run",
      "description": "可選；主流程不自動寫 Notion。",
      "outputs": [],
      "npmScripts": [
        "notion:dry-run"
      ],
      "missingScripts": [],
      "available": true
    },
    {
      "group": "External-off",
      "title": "Notion live sync",
      "command": "npm --prefix \".\" run notion:sync",
      "description": "需明確確認；不屬於 10:00 前阻塞流程。",
      "outputs": [],
      "npmScripts": [
        "notion:sync"
      ],
      "missingScripts": [],
      "available": true
    }
  ],
  "summary": {
    "total": 71,
    "available": 71,
    "npmScripts": 60,
    "missingNpmScripts": 0,
    "Daily": 8,
    "Schedule": 11,
    "Run": 5,
    "Inspect": 31,
    "Research": 8,
    "Repair": 4,
    "Manual": 2,
    "External-off": 2
  }
}
