一键导入
forkpick
Spawn 2-4 parallel forks answering the same question, then judge and pick the best. User-invoked via /forkpick only.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Spawn 2-4 parallel forks answering the same question, then judge and pick the best. User-invoked via /forkpick only.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Send peer-to-peer message and control to Claude Code sessions. Use when coordinating multiple simultaneous Claude sessions, or user says "dm another claude", "list claude sessions", "peek peer claude", "spawn claude in tmux", "monitor remote claude", "notify peer in tmux", "send to peer", "handover to claude", "inspect peer transcript", "orchestrate claude sessions".
Lark/Feishu (飞书) CLI tool. Use when the user asks to do anything on Lark/Feishu — send or read chat messages (IM), read or edit docs/sheets/slides/wiki, work with multi-dimensional tables (Base/bitable), manage calendar/meetings/video-conference, mail, contacts, tasks, approvals, OKR, drive files, minutes, whiteboards, or attendance. Triggers: "lark", "feishu", "send a feishu message", "peek lark group messages", "conclude last lark meeting".
Extract clean, complete markdown from any web page — articles, docs, READMEs, blog/social posts, academic papers. Also use as a fallback when curl returns noisy HTML or WebFetch returns truncated, summarized, or refused results.
Claude has no native audio or video understanding — this skill delegates that to Google Gemini 3.1 Flash Lite (cheap multimodal) on the ofox gateway. Use when the user asks to analyze / transcribe / describe / understand a sound, song, voice memo, or video, or asks what is said, sung, shown, or played in a media file. Triggers: "analyze this audio", "transcribe the song/speech", "what does this voice say", "describe/understand this video/mp4/clip", "what's the music/story in this MV", "listen to", "watch this".
Run long-running tasks under babysit — supervised background runner with cgroup-enforced memory/CPU caps and observability-stall kill. Use BEFORE any long-running task (>2 min), compute-intensive jobs (e.g. builds/benchmarks/renders/training), background work, or when the user says "run in background", "use babysit". This skill defines guardrails and the mandatory workflow, not just a how-to.
Audit agent-facing documentation (CLAUDE.md, SKILL.md, AGENTS.md, prompt markdown, agent reference doc, memory pages) for over-description and propose trims. Use proactively after writing or editing any agent-facing doc, or when the user says "trim this doc", "audit doc bloat", "this is over-explained".
| name | forkpick |
| description | Spawn 2-4 parallel forks answering the same question, then judge and pick the best. User-invoked via /forkpick only. |
| compatibility | Claude Code |
| disable-model-invocation | true |
| user-invocable | true |
Generate-and-judge: spawn N parallel forks of yourself on the same prompt, then pick the best response.
Forks share the prompt cache (cheap) and inherit full context, so this is a low-cost way to draw N independent samples for tasks where divergence is the value.
![ "${CLAUDE_CODE_FORK_SUBAGENT:-0}" = "1" ] || echo "**⚠️ Prerequisite — STOP before dispatching:** CLAUDE_CODE_FORK_SUBAGENT is not set to 1. Agent forks (omitting subagent_type) won't inherit context — they spawn as fresh subagents, defeating /forkpick. Set CLAUDE_CODE_FORK_SUBAGENT=1 in your settings.json env block, then restart Claude Code (env block doesn't hot-reload) before dispatching."
/forkpick [N=3] [rubric:...] <question>
N — optional integer, clamp to [2, 4]. Default 3.rubric: — optional inline rubric, ends at first blank line. Used to score replies. Default rubric: correctness > specificity > brevity.<question> — the rest of the input, sent verbatim to every fork.If <question> is empty, ask the user for it instead of dispatching.
Refuse with one line and stop if the question is:
[verified: ...] from a single tool call.Refusal line: forkpick is for divergent answers — one direct answer suffices here.
Fork only when there's a real best-of-N judgment call: design choices, prose drafting, code style, naming, tradeoff analysis, open-ended planning.
If the request asks forks to edit files (create/fix/refactor/implement/edit/add), each fork must run in its own git worktree — otherwise concurrent Edit/Write calls clobber each other and reads see torn state.
Worktree base mode (live): !jq -r '"Mode: " + (.worktree.baseRef // "fresh (default)") + (if (.worktree.baseRef // "fresh") == "head" then " — Agent worktrees branch from local HEAD, so forks inherit unpushed commits on this branch (uncommitted/staged edits still invisible, commit first)." else " — worktrees branch from the local origin/<default> remote-tracking ref, which can be stale until you git fetch; forks see only commits already on that ref. Easiest fix: set worktree.baseRef to head in ~/.claude/settings.json so forks branch from your current HEAD." end)' ~/.claude/settings.json
isolation: "worktree" on every Agent call. Each fork gets its own path + branch (cwd inside the fork is the worktree path); the harness auto-cleans worktrees that produced no changes and returns path + branch for the rest. Auto-cleanup only applies to interactive runs — non-interactive (claude -p ...) leaves worktrees behind.git -C <path> diff <base> or git log <base>..<branch>) plus the summary, not just reply text./forkpick invocation is itself running inside a fork (e.g. nested via another skill), the inner forks will fail — flag and stop instead of dispatching.In a single message, emit N Agent tool calls. Forks (omit subagent_type) so they inherit context and share the prompt cache.
/fresh-arch, not forkpick.fork-1 … fork-N for traceable output files.After dispatch, end the turn or do unrelated work. Do NOT Read the output_file paths mid-flight — that pulls each fork's tool noise into your context and defeats the whole point. The runtime delivers a <task-notification> when each completes.
If asked about results before all forks land: report status, do not fabricate.
Once all N return, score against the rubric. One line per fork:
| Fork | Score | One-line rationale |
|---|---|---|
| 1 | 8/10 | concrete, cites file:line |
| 2 | 6/10 | hedges, no citations |
| 3 | 7/10 | tight but missed edge case |
Pick the winner. Mark verdict explicitly: Winner: fork-N [opinion].
If two are within 1 point, surface both with a one-line "either works, differ on X" note rather than forcing a pick.
Single response:
[opinion] marker.Do not paste full loser content unless the user asks.
output_file mid-flight to "check progress"./fresh-arch for deliberate diversity./forkpick on its own output to "best-of-best". Diminishing returns past N=4.isolation: "worktree" — concurrent Edit/Write calls clobber.Read-only (questions, design comparisons, prose):
Agent({ name: "fork-1", description: "forkpick sample", prompt: "<question>" })
Agent({ name: "fork-2", description: "forkpick sample", prompt: "<question>" })
Agent({ name: "fork-3", description: "forkpick sample", prompt: "<question>" })
Mutable (file edits — add isolation: "worktree" to every fork):
Agent({ name: "fork-1", description: "forkpick sample", prompt: "<question>", isolation: "worktree" })
Agent({ name: "fork-2", description: "forkpick sample", prompt: "<question>", isolation: "worktree" })
Agent({ name: "fork-3", description: "forkpick sample", prompt: "<question>", isolation: "worktree" })
All N in one message. Wait for notifications. Score. Pick. For mutable forks, cherry-pick or merge the winner's branch as a separate landing step.