← ClaudeAtlas

goallisted

當使用者要「先定一條可測量完成條件、再讓 Claude Code 的 goal 引擎做到完成為止」時觸發。觸發詞:「/goal2:goal」、「幫我定完成條件再跑」、「propose goal」、「用 goal 引擎做到完成」、「做到完成為止」、「定好驗收條件自動跑」。不排程到 quota 之後(那是同 plugin 的 delaylocal skill);也不是替使用者手打內建 /goal——本 skill 幫使用者推導條件、確認(或逾時自動採納)後,用 goal.js 起一個 headless 子程序 `claude -p "/goal …"` 跑官方引擎到達成,最後在本對話回報(本機有裝 wtf plugin 就套 wtf 的重講紀律寫回報)。
abs1294/fulin-claude-plugins · ★ 2 · Testing & QA · score 65
Install: claude install-skill abs1294/fulin-claude-plugins
# goal — 定完成條件、讓官方 /goal 引擎做到完成 把「做到完成」的判定交給 Claude Code 的 `/goal` 引擎(本質是 session 級的 Stop hook:Claude 每次要停下時由檢查器驗證條件,未達成就被推回去繼續),但**條件由你(Claude)先推導、使用者過目**,不是直接把使用者的一句話丟給引擎。 | | 本 skill(`goal`) | 同 plugin 的 `delaylocal` | |---|---|---| | 何時跑 | propose 完直接起(預設);設定檔開確認 timer 則等你確認或逾時 | 5h quota 重置後 | | 引擎在哪跑 | 子程序 `claude -p`(headless session) | 同左,由 cron 到點後的本 session 啟動 | | 需要 cron | 預設不需要;只有開了確認 timer 才排一個 | 任務本體與逾時 timer 都要 | | LINE 收尾 | 無;最終回報在本對話(有 wtf 就套 wtf 格式) | 有(選用) | ## 為什麼是子程序(讀完再動手,別想走捷徑) - Claude 自己輸入不了斜線指令。 - **2.1.196 起,cron 排程 fire 的 prompt 不再解析 slash command**:開頭 `/goal` 只是純文字(官方 scheduled-tasks 文件、GitHub #75837)。跨 session 訊息、skill 內包 `/goal` 也一樣不執行。**禁���**再用 CronCreate 送 `/goal`。 - 唯一可由 Claude 啟動引擎的入口是 `claude -p "/goal …"`(官方 goal 文件;2.1.268 實測:Goal set → 第一回合故意做一半 → 引擎自動推第二回合 → 達成)。`goal.js --run` 就是在做這件事,並避開兩個坑:git-bash 會把開頭 `/goal` 轉成 Windows 路徑、巢狀 session 的 `CLAUDECODE` 環境變數。 ## 架構(薄 skill + 確定性工具) - `goal.js`:**準備**(建 run 目錄、落 `/goal` prompt、anchor、帳本模板)→ **執行**(`--run <run_dir>`:起子程序、收 stream、產 summary)→ 隨時 **`--status <run_dir>`**(看進度,不阻塞)/**`--stop <run_dir>`**(先核對 pid 身分——啟動時間+程式名——對得上才 `taskkill /T`;pid 已被別的程序重用就只把狀態收成 stopped、不殺任何東西)/**`--list`**(全機所有 run,含 `alive_state`:alive/dead/stale/unknown)/**`--prune [--dry-run] [--keep-hours N]`**(唯一允許的清理,四類且都要超過 N 小時(預設 24):已結束且程序不在、`running` 但 pid 已死或被重用、`prepared` 從未啟動、沒有 meta 的壞目錄;活著或探測不明的一律不碰;單一目錄刪不掉會記進 `failed[]` 繼續)。 - `../../lib/`:`goal-head.js`(4000 字元門檻)、`cron-time.js`、`config.js`(設定檔)、`e