Human defines the problem, AI solves it.
TDD 寫測試。SDD 寫規格。IDD 解 bug。 前兩個是手段,IDD 是目的。 完整論述見
MANIFESTO.md。
A Claude Code plugin that enforces issue-driven development as a complete methodology:
- Every change starts with an issue — the single source of truth
- Every issue is diagnosed before implementation — no guessing
- Every implementation is scope-controlled — no creep
- Every completion is independently verified — no "looks good enough"
- Every closure is documented — knowledge preserved
Each skill guards against a specific failure mode:
| Failure | Without this plugin | With this plugin |
|---|---|---|
| No documentation | Changes with no recorded reason | Every change traces to an issue |
| Surface-level fixes | Patch symptoms, root cause returns | Diagnosis required before implementation |
| Scope creep | Fix #42, refactor 3 unrelated files | Scope guardian flags unrelated changes |
| False confidence | "Should work" → ship broken code | Independent AI verification (Codex) |
| Lost knowledge | "What did we do?" 3 months later | Mandatory closing comment |
idd-issue → idd-diagnose → idd-implement → idd-verify → idd-close
① ② ③ ④ ⑤
| Skill | Purpose |
|---|---|
idd-issue |
Create well-documented GitHub Issue with original quotes and images |
idd-diagnose |
Find root cause (bug) or analyze requirements (feature/refactor) |
idd-plan |
Plan tier approval gate using EnterPlanMode — presents Implementation Plan for user approval before TDD execution; sits between Simple direct-implement and Spectra spec-contract path (v2.36.0+) |
idd-implement |
Scope-disciplined implementation with TDD |
idd-verify |
Independent verification using Codex CLI (gpt-5.5) |
idd-close |
Closing comment documenting problem, root cause, solution, verification |
idd-comment / idd-edit |
Add or amend issue comments with template guidance (decision / note / question) |
idd-list / idd-update / idd-report |
List open issues by phase, sync issue body, generate progress reports |
idd-config |
Manage .claude/issue-driven-dev.local.json lifecycle: show / init / validate / which (v2.31.0) |
idd-all |
Orchestrator that drives the full pipeline (issue → close) end-to-end (v2.26.0; v2.28.0 unattended SDD chain) |
idd-all-chain |
Chain-solve mode (v2.55.0+) — root issue + auto-emergent spawned issues (sister bug / verify follow-up / mid-plan tangential / sister concern) through ONE cluster branch + ONE review PR. Thin recursive shell over idd-all using new --in-chain flag (4th mode tuple (direct-commit, unattended)). Hard caps: depth=2, max-issues=5. Eligibility: same-file OR same-skill OR sister-bug. STOPs at verified — never auto-close |
Not sure which skill / flag to use for your situation? See references/usecase-routing.md — a 24-row reference mapping common scenarios (single / batch / cluster-PR / external-agent / Plan / Spectra) to the exact skill chain + flags + contract docs.
When implement is delegated to an external agent (Codex, Copilot Workspace, remote claw on a sibling machine), idd-verify supports three input sources beyond the default local-diff:
idd-verify #98 --pr 123— verify a PR opened by the external agent. PR is the master comment location; ref'd issues get pointer comments. Issue↔PR correspondence is gate-checked (PR body mustRefs #Nmatching scope, else abort).idd-verify #98 --commits 3— when the external agent commits to your current working treeidd-verify #98 --branch <name>— when changes live on a branch but no PR yetidd-verify --pr 123(no issue) — auto-discover ref'd issues from PR body
Auto-detect: invoking idd-verify #98 with no input flag counts unpushed commits ref'ing #98 and queries open PRs ref'ing #98, then AskUserQuestion to pick between local diff vs PR. Catches the common forgotten-flag case. Full contract: references/external-agent-delegation.md.
Seven skills accept multiple #NNN arguments and dispatch to one of two modes:
- Batch mode (
idd-diagnose/idd-update/idd-comment/idd-edit) — independent per-issue ops looped sequentially. Each issue gets its own comment, its own auto-update phase, its own audit trail. Failure on one doesn't roll back the rest. - Cluster-PR mode (
idd-implement/idd-verify/idd-close) — multi-issue work sharing one feature branch + one PR. Branchidd/cluster-{slug}, commits tagRefs #N(multiple OK), verify report partitions per issue, close writes per-issue summary. Designed around the "7 issues → 2 themed PRs" workflow pattern.
Selector syntax in v1: explicit list (#34 #36 #38). idd-issue / idd-list / idd-report / idd-config / idd-all are out of scope. Single-issue invocation is unchanged. Full contract: references/batch-and-cluster.md.
Any IDD skill that posts @xxx to GitHub follows a mandatory 5-step protocol so the wrong person never gets pinged:
- Detect intent —
--mention <login>[,<login>...]flag (onidd-issue/idd-comment) or natural-language ("tag X" / "ping X" / "通知 X") - Fetch real list —
gh api repos/$REPO/collaborators(+ org members for org repos); training-data / chat-history / git-log handles are forbidden - Resolve — fuzzy match against
login+namefield; unique match → use, otherwise fallback - AskUserQuestion fallback — 0 or 2+ matches → menu populated from the real collaborator list, never guessed
- Verify pre-post — grep
@\w+from body, every token must be in the verified set, otherwise abort
GitHub mentions are an irreversible side effect; the rule is mandatory not advisory. See rules/tagging-collaborators.md (in-plugin) for the full protocol with examples.
When spectra-discuss is interrupted mid-flow to invoke an IDD skill (e.g. "let me capture this finding to the issue"), the bridge protocol preserves and resumes context:
- Step 0.7 Detect —
--resume-spectra="<topic>"flag,--sourcecontainsspectra-discuss,spectra list --jsonshows in-flight changes, or.claude/state/idd-bridge.jsonexists →SPECTRA_BRIDGE_ACTIVE=1 - Step N-1 Bookmark —
.claude/state/idd-bridge.jsonwritten with verbatimspectra_topic+issue_url+open_questions[]+idd_action_url+next_step_hint - Step N Resume Prompt — final output prints a clearly-delimited
↩ Resume spectra-discussblock with a copy-pasteable/spectra-discuss <topic>...prompt
Hard rules: never auto-invoke /spectra-discuss (user controls pacing); never paraphrase spectra_topic; resume prompt is the actual recovery — bookmark file is convenience.
idd-comment is the first skill with full implementation. idd-issue and idd-edit will gain it next; the rule defines the contract for all skills. See rules/spectra-bridge.md (in-plugin) for the full schema.
idd-implement accepts two flags that turn it from a single-purpose TDD loop into a dispatcher for other skills:
--with-skill <name>— GREEN phase callsSkill(skill=<name>)instead of directEdit(e.g.,--with-skill perspective-writerfor prose deliverables,--with-skill spectra-applyfor SDD-warranted)--extra '<text>'— free-text additional constraint, written into Implementation Plan's### Extra Requirementssection so checklist semantic gate can verify it
Auto-detection: idd-implement Step 1.5 also scans the diagnosis Strategy for 透過 X / via X patterns and resolves the with_skill target without requiring explicit flags. Compose order: explicit flag > diagnosis hint > none.
idd-implement now explicitly resolves whether work flows through a PR path (feature branch + push + gh pr create) or a direct-commit path (current branch, no PR), instead of implicitly following whatever branch the user happens to be on.
Resolution priority (highest first):
--pr/--no-prflag (per-invocation)- Fork detection (
gh repo view --json isFork) → forced PR path (forks have no upstream push permission) pr_policyconfig field:"always"/"never"/"ask"(default"ask")
idd-close adds a Step 1.5 PR Gate Check that refuses to close an issue when its PR is unmerged. idd-all (orchestrator) explicitly enforces --pr.
Full contract in references/pr-flow.md (in-plugin).
For monorepos and coordinated cross-repo issues, every IDD skill accepts --target owner/repo (or --target group:<label>) so a single workspace can drive issues across multiple GitHub repos:
- Fork-aware (v2.21.0) —
idd-issueresolves the upstream repo from the fork'sorigin - JSON config (v2.22.0, breaking) — per-repo settings move from
.local.mdto.local.json - Six-mechanism resolution (v2.25.0) — flag →
ask_each_timemenu → predicates → cascading walk-up → git remote fallback → orthogonal groups; supportscandidates[]withwhenpredicates andgroups[]for primary + tracking issue pairs
See references/config-protocol.md (in-plugin) for the full algorithm.
| Version | Date | Changes |
|---|---|---|
| v2.55.0 | 2026-05-10 | /idd-all-chain skill — chain-solve mode (#44, add-idd-all-chain-skill Spectra change). NEW thin recursive shell over /idd-all that drives root issue + auto-emergent spawn (sub-skill sister sweep / verify follow-up / mid-plan tangential / sister concern) through ONE cluster branch (idd/chain-<N>-<slug>) + ONE review PR (title prefix chain:, collapsed <details> per issue). NEW --in-chain flag on /idd-all derives 4th mode tuple (direct-commit, unattended) — sub-/idd-all skips Phase 0.5 PR-mode branch + Phase 5.5 PR open + sub-skill UNATTENDED MODE; mutex with --pr/--no-pr. NEW spawn manifest cross-skill contract at .claude/.idd/state/chain-spawned-issues.json (schema_version=1, atomic temp-file rename); 4 sub-skills (idd-implement / idd-verify / idd-plan / idd-diagnose) all conformantly write entries with spawn_kind + same_file_as_root + same_skill_as_root. Helper scripts/manifest-append.sh. Hard caps: depth=2, max-issues=5; over-cap spawns still file as follow-up issues but NOT enqueued. Chain-eligible heuristic: same_file OR same_skill OR sister-bug; ineligible spawns stay filed-only. Failure mode: chained verify FAIL halts queue + preserves partial commits (no rebase / revert) + abort report cites 4 recovery paths. Stops at verified — never auto-close, never auto-merge (per IDD discipline). MODIFIED capability idd-orchestrator-modes adds 4th tuple (direct-commit, unattended) for chain context; existing 3 tuples unchanged. NEW reference docs: references/spawn-manifest.md (schema canonical contract) + references/chain-flow.md (chain shell algorithm canonical contract). Backward compat: /idd-all #N (no flag) is byte-equivalent to v2.53.0 baseline. |
| v2.53.0 | 2026-05-07 | ralph-loop dependency declaration + runtime detect (#28, add-ralph-loop-dependency Spectra change). README ### Required for specific modes matrix declares ralph-loop optional dependency for idd-verify --loop. NEW scripts/check-ralph-loop.sh detector (version-glob path lookup with HOME-spaces tolerance via nullglob array; escape hatch: IDD_SKIP_RALPH_LOOP_CHECK=1). NEW idd-verify --loop Step 0a fail-fast gate (abort if ralph-loop missing, point user to install). NEW idd-all Phase 0.6 graceful-degrade gate (when --loop style is requested but ralph-loop missing, unwind feature branch + fall back to single-shot verify with audit trail; Trace 4 example added). Forward-compat plugins[].dependencies field experimentally added then removed per F1 verify finding (schema validate-fail). Address F1-F5 verify findings before merge. |
| v2.52.0 | 2026-05-05 | idd-issue ordered/unordered bundle flags (#21). NEW --parent <N> flag PATCHes parent body task list with new child entry, idempotent via #N reference scan + fallback ## Children anchor when no list exists. NEW --blocked-by <M>[,<M2>...] flag applies three-layer fallback chain: Layer 1 GraphQL addBlockedByDependency mutation attempt (graceful failure → warning + continue, no abort) + Layer 2 unconditional body blockquote > Blocked by #M (always readable in any markdown viewer) + Layer 3 parent task list annotation (blocked by #M) when --parent co-used. NEW --bundle-mode <ordered|unordered> flag orchestrates bundle creation in single invocation: builds 1 epic parent + N children with auto-applied --parent <epic>, ordered mode adds strict child[i] blocked by child[i-1] chain, unordered keeps task list only. Pre-flight gates: cross-repo refuse (parent in different repo → abort + redirect to groups), bundle-mode and group-mode mutual exclusion. Step 3.B inserted between 3.A (single repo) and 3.G (group), reusing 3.A flow. Orthogonal with Step 4.5 milestone, Step 4.7 sister sweep. NEW canonical reference doc references/bundle-flags.md. NEW ## Ordered Bundle Pattern section after Step 5 in idd-issue SKILL.md (3-mode comparison + 3 usage scenarios + design rationale for not creating separate /idd-bundle skill). NEW capability spec idd-issue-bundle (4 Requirements, frozen). Spectra change add-bundle-flags-to-idd-issue archived. No breaking changes — all flags additive. |
| v2.51.0 | 2026-05-04 | idd-list shows open PR info per issue + cluster detection (#13). NEW Step 2.5 batch fetches all open PRs once (gh pr list --state open --limit 100); NEW Step 3.5 client-side regex #(\d+)\b scans PR bodies and builds reverse issue→PR index plus cluster map (PRs ref'ing 2+ issues). Step 4 Format Output adds └─ PR #N (status, mergeable) sub-line per issue with PR ref; cluster leaders (lowest issue number) show — cluster: #X #Y #Z listing all members; cluster members show → see PR #N (cluster member) redirect. Direct-commit issues (no PR refs) display unchanged from v2.50 — fully backward compatible. Footer adds second line summarizing N issues bundled in M cluster(s); P solo PR(s); Q direct-commit. Step 5 Suggest Next extended to phase × PR state matrix (10+ rows): implemented + draft → gh pr ready N → /idd-verify --pr N; implemented + ready MERGEABLE → /idd-verify --pr N; verified + ready MERGEABLE → gh pr review N → gh pr merge N → /idd-close #N; verified + merged catch-up → /idd-close #N; CONFLICTING → gh pr checkout N → resolve; cluster member → see leader's next action. Sister concerns filed as P3 follow-ups: #14 (markdown-aware PR body parser) + #15 (cluster_leader config option). |
| v2.50.0 | 2026-05-04 | Layer V Vagueness Pre-check for complexity routing (#12). NEW Step 3.4 in idd-diagnose between Layer 1 disqualifier and Layer 2 Spectra evaluation. AI scores V1 (vague WHAT) + V4 (vague ACCEPTANCE) on Likert 6-point scale (no neutral midpoint), trigger threshold per-axis ≥ 4. Triggered cases fire Hybrid 3-option AskUserQuestion (clarify now / proceed anyway / escalate to Plan) with default option score-driven (V=4 → proceed, V=5 → clarify, V=6 → escalate). escalate force-sets verdict = Plan via Layer V and skips Layer 2/3/P. Routing parsers in idd-implement Step 2.5 + idd-all Phase 3 strip via X suffix to extract canonical tier (backward compat: bare verdicts unchanged). NEW project rule .claude/rules/attribute-assessment.md codifies meta-principle "attribute scoring SHALL use Likert scale, not keyword matching" — applies session-wide via root CLAUDE.md @import, scope beyond Layer V. MANIFESTO.md 5-axis bug-fix model expanded to 6-axis adding "Alignment quality" (TDD ❌ / SDD ❌ / IDD ✅), evidence = Layer V. idd-all unattended mode auto-applies proceed anyway + audit trail (same pattern as Plan tier under unattended). Backward compat: pre-v2.50 diagnoses NOT retroactively re-evaluated; existing Simple / Plan / Spectra / SDD-warranted verdicts remain valid. No --ignore-vagueness flag (option B proceed anyway covers it). Spectra change add-vagueness-layer-routing archived. New main spec openspec/specs/routing-vagueness-layer/spec.md (9 normative requirements with scenarios + example tables). |
| v2.36.0 – v2.49.0 | 2026-04-30 – 2026-05-03 | Spectra rename + Plan tier + cross-skill IC_R011 alignment. v2.36.0: 3-tier Complexity routing (Simple / Plan / Spectra; SDD-warranted alias preserved); NEW idd-plan skill with EnterPlanMode approval gate. v2.37.0: External-agent / PR mode for idd-verify (--pr <N> / --commits N / --branch <name> flags + auto-detect); references/external-agent-delegation.md + references/usecase-routing.md. v2.38.0: idd-route integration (data-driven agent routing recommendation; binary at PsychQuant/idd-route-swift); marketplace migration to PsychQuant/issue-driven-development. v2.39.0 / v2.40.0: --cwd flag for cross-repo orchestration (sub-skills inherit). v2.41.0: idd-close Step 0 supersession (Implementation Complete > Checklist treated as canonical when all [x]). v2.42.0 – v2.48.0: IC_R011 systematic alignment — canonical references/ic-r011-checkpoint.md + 5 sub-issues across idd-plan / idd-implement / idd-close / idd-diagnose / idd-issue (each gets a 3-option AskUserQuestion + audit trail at its deliberation moment). v2.49.0: IC_R011 Third-Party Skill Alignment for /spectra-discuss + /spectra-propose. |
| v2.34.0 | 2026-04-29 | Multi-issue invocation across 7 skills via two distinct modes. Batch mode (idd-diagnose / idd-update / idd-comment / idd-edit) — sequential per-issue ops, each issue gets its own comment / auto-update phase / audit trail; failure on one doesn't stop the rest; pure idempotent. Cluster-PR mode (idd-implement / idd-verify / idd-close) — multi-issue work shares one feature branch + one PR; commits tag Refs #N (multiple OK); branch named idd/cluster-{slug}; verify report partitions per-issue; close enforces per-issue checklist gate + writes per-issue summary (no batched fake summary). Designed around the "7 issues → 2 themed PRs" workflow pattern (e.g., 04/27 Docs+Sanitizer split). Selector syntax in v1: explicit list (#34 #36 #38) only; --label / --milestone selectors deferred. Out of scope: idd-issue (input phase), idd-list / idd-report (already multi by design), idd-config (N/A), idd-all (single-issue orchestrator). Single-issue invocation unchanged — backward compatible. New canonical contract: references/batch-and-cluster.md. |
| v2.33.0 | 2026-04-28 | NEW MANIFESTO.md — formalizes the methodology thesis. Decomposes "bug-solving capability" into 5 sub-capabilities (TDD covers 1.5/5, SDD 0/5, IDD 5/5). Adds two formal claims: (1) IDD opens a second axis orthogonal to TDD/SDD's verification axis (closure / DONE definition); (2) IDD ⊋ TDD ∪ SDD on falsifiability surface. Empirical case study: che-word-mcp #56 cluster — 30 findings, 5 sub-stack rounds, 6 patch releases, zero zombies. README + CLAUDE.md link to MANIFESTO. No code change. |
| v2.32.0 | 2026-04-28 | TWO new rules closing real-world workflow gaps observed in PsychQuant/contact-book#96. (1) NEW rules/tagging-collaborators.md — mandatory 5-step protocol when any IDD skill posts @-mention to GitHub: detect intent (--mention <login> flag or natural-language) → fetch real list (gh api repos/$REPO/collaborators + org members; training-memory / chat-history / git-log handles forbidden) → fuzzy match → AskUserQuestion fallback for 0/2+ matches → grep + verify pre-post (abort on unverified token). idd-issue + idd-comment gain --mention <login>[,<login>...] flag; idd-diagnose / idd-implement / idd-verify / idd-close enforce via prose detection. (2) NEW rules/spectra-bridge.md — bridge contract for IDD skills called mid-spectra-discuss: detection signals trigger SPECTRA_BRIDGE_ACTIVE, bookmark schema preserves verbatim spectra_topic + issue_url + open_questions[] + next_step_hint, final ↩ Resume spectra-discuss prompt block printed at skill exit. idd-comment is first skill with full implementation (Step 0.7 detect, Step 7 bookmark + resume); idd-issue / idd-edit will gain it next. No breaking changes — new flags opt-in. |
| v2.31.0 | 2026-04-27 | NEW idd-config skill — independent entry for .claude/issue-driven-dev.local.json lifecycle. Four subcommands: show (default; resolved target + cwd-aware predicate trace), init (interactive first-time setup, equivalent to idd-issue Step 0.5.E fork-aware detection without forcing an issue creation), validate (JSON schema + repo existence + predicate-key sanity), which (dry-run resolution at cwd, optional --title / --label to evaluate content predicates). Closes the gap where setup / inspection / monorepo predicate debugging was only available as a side effect of idd-issue. |
| v2.30.0 | 2026-04-26 | (1) idd-issue 資料保留鐵律 — all source attachments uploaded to attachments release by default without asking. New Source Type Adapter table covers .docx / .pdf / Telegram / Apple Mail / Notes / pasted text + Telegram fallback flow. Step 4 renamed 附加圖片(如果有) → 附加所有原始素材(鐵律:預設全保留) with violation checklist. (2) idd-implement --with-skill <name> + --extra '<text>' flags + new Step 1.5 Resolve Extra Requirements; GREEN phase calls Skill(skill=…) instead of Edit when with_skill set. First-class formalization of idd-implement × perspective-writer integration. |
| v2.29.0 | 2026-04-26 | Two-tier checklist gate in idd-close — Step 0 structural gate (existing) refuses close on unticked - [ ]; new Step 1.6 semantic gate does keyword extraction on each - [x] and verifies test/spec/file mentions correspond to real artifacts. Warn-only with three-way AskUserQuestion (proceed / investigate / edit). |
| v2.28.0 | 2026-04-26 | idd-all SDD path is now an unattended chain — spectra-discuss → spectra-propose → spectra-apply with explicit unattended hints in args. Orchestrator overrides sub-skill attended-by-default contracts via args, not by modifying sub-skills. |
| v2.27.0 | 2026-04-26 | PR vs direct-commit path routing in idd-implement (--pr / --no-pr flag, fork-aware default, new pr_policy config field). idd-close Step 1.5 PR Gate Check refuses close on unmerged PR. idd-all explicitly enforces PR path. New references/pr-flow.md as canonical contract. |
| v2.26.0 | 2026-04-26 | Add idd-all orchestrator skill that drives the full pipeline (issue → diagnose → implement → verify → close) end-to-end. |
| v2.25.0 | 2026-04-26 | Monorepo + multi-repo support via config-protocol — six-mechanism resolution. New candidates[] (path/git predicates), groups[] (primary + tracking with bidirectional cross-link comments), ask_each_time. |
| v2.22.x | 2026-04-22 | JSON config (breaking — .local.md → .local.json); fork-aware target repo selection; codex pinning. |
| v2.18.0 – v2.20.0 | 2026-04-14 – 2026-04-16 | Mandatory Step 0 Bootstrap Stage Task List for every IDD stage skill; idd-verify auto-triages follow-up findings into new issues. |
| v2.12.0 – v2.17.x | 2026-04-07 – 2026-04-14 | SDD as special case of IDD; checklist gate on close; idd-list / idd-comment / idd-edit skills; ban Closes/Fixes/Resolves trailers (they bypass idd-close gate). |
# Install (v2.38.0+ marketplace)
/plugin marketplace add https://github.com/PsychQuant/issue-driven-development
/plugin install issue-driven-dev@issue-driven-development
# Use (auto-completion: type "idd-" to see all skills)
/idd-issue "upload button doesn't work on mobile"
/idd-diagnose #42
/idd-implement #42
/idd-verify #42
/idd-close #42On first use, creates .claude/issue-driven-dev.local.md:
---
github_repo: "owner/repo"
github_owner: "owner"
attachments_release: "attachments"
---ghCLI authenticated with GitHub- OpenAI Codex CLI installed (for
idd-verify) - ChatGPT Pro account (for Codex gpt-5.5)
/idd-issue 支援多種來源類型。文字直接貼進 prompt 不需要任何 plugin;若要從以下來源讀取,需另裝對應 MCP plugin:
| Source type | MCP plugin | Why | Install |
|---|---|---|---|
.docx / .doc |
che-word-mcp |
idd-issue Step 1 用 mcp__che-word-mcp__get_document_text / list_images / export_image 讀文字 + 抽圖 |
claude plugin install che-word-mcp@<your-marketplace> |
| Telegram chat range | che-telegram-mcp (telegram-all server) |
讀 chat history (get_chat_history) |
claude plugin install che-telegram-mcp@<your-marketplace> |
| Apple Mail message | che-apple-mail-mcp |
get_email + list_attachments + save_attachment |
claude plugin install che-apple-mail-mcp@<your-marketplace> |
| Apple Notes | che-apple-notes-mcp |
get_note + 抽 inline 圖 |
claude plugin install che-apple-notes-mcp@<your-marketplace> |
替換 <your-marketplace> 為實際的 marketplace 名稱。沒裝對應 plugin 不會壞 IDD 核心流程,但該 source type 會被迫 fallback 到「使用者手動處理」模式 (#27 追蹤改為明確 fail-fast 報錯)。
不知道
<your-marketplace>該填什麼?
查已加的 marketplaces:
claude plugin marketplace list加新 marketplace:
claude plugin marketplace add <owner>/<repo>常見對照(以 PsychQuant 維護的 plugins 為例,如有變動以
claude plugin marketplace list為準):
Plugin pattern Marketplace Add command che-*(incl.che-word-mcp/che-telegram-mcp/che-apple-mail-mcp/che-apple-notes-mcp)psychquant-claude-pluginsclaude plugin marketplace add PsychQuant/psychquant-claude-pluginsidd-*(本 plugin /idd-route)issue-driven-developmentclaude plugin marketplace add PsychQuant/issue-driven-developmentralph-loop(Anthropic 官方)claude-plugins-officialclaude plugin marketplace add anthropics/claude-plugins-official
某些 mode / flag 需要額外 plugin。未裝對應 plugin 時的行為見最右欄:
| Mode | Required plugin | Marketplace | Why | Behavior if missing |
|---|---|---|---|---|
idd-verify --loop |
ralph-loop |
claude-plugins-official |
outer driver for verify-fix loop | fail-fast abort + install hint |
idd-all (PR, unattended) (default) |
ralph-loop |
同上 | unattended 在 verify findings 後需 driver 觸發下一輪 | graceful degrade to (direct-commit, attended) + warning(保護 v2.40.0 caller backward compat) |
idd-all --no-pr (direct-commit, attended) |
(none) | n/a | user 在 keyboard 自然推進 | n/a |
Single-skill calls (no --loop) |
(none) | n/a | atomic skill 自完成 | n/a |
Install:claude plugin marketplace add anthropics/claude-plugins-official 然後 claude plugin install ralph-loop@claude-plugins-official。
idd-route— Data-driven agent routing (Codex / Claude Opus / Sonnet / Haiku) per IDD issue。idd-diagnoseStep 3.7 偵測到idd-route已裝就會自動呼叫做 enrichment;沒裝則 silently skip。非必要,純粹增強 routing 建議品質。Install:claude plugin install idd-route@issue-driven-development
scripts/check-plugin-presence.sh (#34) 用「filesystem 存在」作為 plugin 安裝判準 — 檢查 ~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/.claude-plugin/plugin.json 即視為 installed,無 signature / hash / integrity 驗證。
| Environment | Trust model fit |
|---|---|
| Single-user macOS / Linux local dev | ✅ 設計預設場景,trust model 適用 |
Shared dev container / CI runner with shared $HOME |
plugin.json 騙過 detect → IDD 跑 --loop / source-type adapter as if plugin present。Caller 自負其責 |
| Multi-user shared workstation |
Hardening path (若部署到 untrusted 環境):
- Pre-validate plugin install via
claude plugin list(source-of-truth from Claude Code itself, not filesystem) - 設
IDD_SKIP_PLUGIN_CHECK=1env var 跳過 detect,接受 bypass cost (--loop跑了但無真實 driver = silent fail) - 部署時 lock
~/.claude/plugins/cache/permissions (chmod 700) 防 hostile write
Future hardening (#41 reopen criteria): 若 multi-user / CI deployment 真實成本上升,evaluate hash verification step against marketplace-published plugin manifest。