diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index ed4a3008..10835e45 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -1,17 +1,27 @@ { "$schema": "https://anthropic.com/claude-code/marketplace.schema.json", "name": "psychquant-claude-plugins", - "description": "Che Cheng's Claude Code Plugin Marketplace - \u5b78\u8853\u7814\u7a76\u8207\u751f\u7522\u529b\u5de5\u5177", + "description": "Che Cheng's Claude Code Plugin Marketplace - 學術研究與生產力工具", "owner": { "name": "Che Cheng", "email": "che@example.com" }, "homepage": "https://github.com/PsychQuant/psychquant-claude-plugins", "plugins": [ + { + "name": "che-latex-mcp", + "version": "0.5.0", + "description": "讓 AI 完全清楚 LaTeX 修正的結果 — 改一行 source 立刻知道 PDF 第幾頁變了、變成什麼樣、有沒有副作用、有沒有新 bug、PDF review 紅圈對到哪個 source。通用 LaTeX 工具,任何專案可用。20 tools + 4 skills。v0.5.0 新增 Pillar 5 annotation workflow + 修 server.waitUntilCompleted() bug。", + "author": { + "name": "Che Cheng" + }, + "source": "./plugins/che-latex-mcp", + "category": "productivity" + }, { "name": "mcp-tools", - "version": "1.12.0", - "description": "MCP Server \u958b\u767c\u5de5\u5177\u96c6\uff1amcp-new-app\u3001mcp-deploy\u3001mcp-install\u3001mcp-upgrade\u3001mcp-clone\u3001mcp-publish\u3001mcp-sync\u3001mcp-diagnose\u3001mcp-debug\u3001mcp-test\u3001mcp-to-plugin\u3001mcp-issue", + "version": "1.16.0", + "description": "MCP Server 開發工具集:mcp-new-app、mcp-deploy、mcp-install、mcp-upgrade、mcp-sign-pipeline(macOS 26 簽章)、mcp-clone、mcp-publish、mcp-sync、mcp-diagnose、mcp-debug、mcp-test、mcp-to-plugin、mcp-issue", "author": { "name": "Che Cheng" }, @@ -20,8 +30,8 @@ }, { "name": "plugin-tools", - "version": "1.7.0", - "description": "Claude Code Plugin \u5b8c\u6574\u751f\u547d\u9031\u671f\u5de5\u5177\uff1aplugin-create\u3001plugin-deploy\u3001plugin-update\u3001plugin-health\u3001plugin-debug", + "version": "1.17.0", + "description": "Claude Code Plugin 完整生命週期工具:plugin-create、plugin-upgrade、plugin-deploy、plugin-update、plugin-health、plugin-debug. v1.17.0 (#66): plugin-update 新增 (a) Phase 0.3 Sync Intent Gate — pre-flight 偵測 binary-backed plugin、比對 marketplace.json drift + 30 天內 shell 改動 + binary repo `main` 是否超前 last release;nothing-to-sync 案例 abort early (no-op short-circuit),救 v1.16.0 之前「跑了 plugin-update 卻什麼都沒同步」的盲點;(b) Phase 1.5 Step 2 新增 Signal 2 (binary repo main vs last release drift) — git -C log v$BINARY_VERSION..main 偵測 [Unreleased] backlog,提示先 cd binary repo 跑 release.sh + bump binary_version。v1.16.0 (#60): plugin-update Phase 0.5 git-state preview + 5-case AskUserQuestion confirmation gate(clean+0/clean+N/dirty+0/dirty+N/diverged),idd-all unattended mode auto-abort,cross-plugin commits warn-only(Tier A;Tier C scope guard 留給 #65)。", "author": { "name": "Che Cheng" }, @@ -29,29 +39,40 @@ "category": "development" }, { - "name": "issue-driven-dev", - "version": "2.4.2", - "description": "Issue-driven development methodology: idd-issue \u2192 idd-diagnose \u2192 idd-implement \u2192 idd-verify \u2192 idd-close. Auto-complete friendly.", + "name": "doc-tools", + "version": "0.2.0", + "description": "v0.2.0: Renamed from changelog-tools to doc-tools — scope expanded from CHANGELOG-only to general documentation lifecycle (CHANGELOG.md / README.md / CLAUDE.md / changelog/ all in scope). NEW Stop hook (doc-update-guard.sh) absorbs the user-level changelog-update.sh hook from che-claude-config: blocks turn-end when HEAD commit changed ≥3 code files but updated none of CHANGELOG.md / README.md / CLAUDE.md / changelog/ — original design rationale preserved (per-commit not per-day because compact-aware; Stop+block intentional because doc updates are clearly actionable; 3-file threshold heuristic for 'significant change'; code-extension allowlist for user's primary languages R/sh/sql/py/ts/swift/go/rs/etc; stop_hook_active=true bypass for infinite-loop protection). Three-tier config injection (precedence high→low): /.claude/doc-tools.json (per-project) → ~/.cache/doc-tools/config.json (per-machine) → built-in defaults; plus ~/.cache/doc-tools/disabled flag for one-touch kill switch. Config schema: {enabled, min_changed_files, code_extensions[], doc_files[], skip_paths[]}. NEW references/doc-update-design.md captures full rationale including implicit decisions never previously documented (3-file threshold, code-extension list source, 4-doc-files acceptance set, Stop+block trade-off vs PostToolUse warn-only). Old user-level hook in ~/.claude/hooks/changelog-update.sh kept on disk as fallback but unregistered from settings.json to prevent double-fire. v0.1.1: Validator + normalize improvements after PsychQuant marketplace dogfood. Validator's 'description must start with vX.Y.Z:' rule relaxed to 'description must mention vX.Y.Z in first 400 chars' (PsychQuant convention leads with product tagline, not version prefix — 30 false-positive drifts disappear). Version header parser now accepts placeholder dates like '(date unknown — please fill in)' so init-output entries are still parsed; ISO-format check happens separately and reports placeholder as a violation user can fill in later. Normalize mode extended: now also remaps common non-KAC section names (### Changes → ### Changed, ### Migration → ### Changed, ### Bug Fixes → ### Fixed, etc.) and injects KAC preamble if missing. v0.1.0: Original changelog-tools — KAC 1.1.0 enforcement + 3-way sync (CHANGELOG.md / plugin.json / marketplace.json descriptions) + 35-plugin marketplace migration. Skills: changelog-validate (CI exit codes 0/1/2/3/4), changelog-init (bootstrap from plugin.json description with git-pickaxe date resolution), changelog-migrate (batch init across marketplace). Enforces Keep a Changelog (https://keepachangelog.com) format + three-way sync between CHANGELOG.md latest entry / plugin.json description / marketplace.json description. Skills: changelog-validate (KAC compliance + sync drift detection, exit-coded for CI), changelog-init (initialize CHANGELOG.md from plugin.json description by parsing existing vX.Y.Z: segments → KAC entries), changelog-migrate (batch one-shot mode that runs init across an entire marketplace — designed to backfill plugins that store release history in plugin.json description as a monster string). Phase 1 of two-phase rollout: Phase 2 will add changelog-add (interactive Unreleased entry creation, Composio changelog-generator integration as commit-parsing engine) + changelog-release (Unreleased → vX.Y.Z + DATE promotion with semver auto-bump from Added/Breaking/Fixed sections + 3-way description sync) + hooks integration into plugin-deploy / mcp-deploy / cli-deploy freshness check. Closes the discoverability gap where 35 of 36 PsychQuant plugins had no CHANGELOG.md and stuffed all release history into plugin.json description as run-on prose, making release history unreadable in the marketplace UI and triggering plugin-deploy's CHANGELOG-based README freshness check to silently no-op.", "author": { "name": "Che Cheng" }, - "source": "./plugins/issue-driven-dev", + "source": "./plugins/doc-tools", "category": "development" }, { "name": "che-apple-mail-mcp", - "version": "1.1.0", - "description": "Apple Mail MCP Server + \u90f5\u4ef6\u5de5\u4f5c\u6d41\uff08\u6b78\u6a94\u3001\u641c\u5c0b\u3001\u7ba1\u7406\uff09", + "version": "2.20.1", + "description": "Apple Mail MCP server — 48 tools, reply-as-draft + IDD task enforcement + NSQL confirmation + .claude/.mail/ namespace + Layer 2 post-fetch corpus refinement (shell v2.20.1, binary v2.10.0)。Shell v2.20.1 ships binary v2.10.0 — 11-issue marathon closes #126, #128, #129, #130, #131, #133, #134, #135, #137, #138, #139: new feature `from_address` for compose_email/create_draft multi-account sender (#131); `redirect_email` boundary recipient validation (#133, #41 consistency); reply/forward + mailbox-CRUD actor wiring regression-lock (#134 + #139, closes #104 PR-A/B/C/D verify DA gaps); RedirectEmailScriptBuilder escape coverage + byte-identity golden (#135); resolveMailboxRef/mailboxRefByAccountId compose resolveAccountRef (#137, #110 sibling DRY); RFC 2047/2231 attachment-filename hardening sweep across CJK + Yahoo/Outlook 16 + path-traversal vectors (#115/#122/#124/#125/#126); cross-account move/copy README limitation (#129); positional UUID/verb-anchor assertion hardening (#128/#130); Codex layer migration deferred (#138, not recurrent); test suite 475 → 482+;full 6-AI ensemble verify every PR。Shell v2.20.0 adds six opt-in corpus-refinement config fields to `/archive-mail` (`sender_includes` / `sender_excludes` / `recipient_includes` / `recipient_excludes` / `subject_includes` / `subject_excludes`) — Layer 2 post-fetch thread-coherent refinement distinct from Layer 1 search-time `filters`; case-insensitive substring with bare-value normalization; excludes-precedence on same axis; per-thread coherence; new spec `archive-mail-corpus-refinement`; closes #76 + #84。Shell v2.19.7 ships binary v2.9.0 (#99 RFC 2047 nested decode for list_attachments — Outlook 16 Chinese filenames; #101 save_attachment account_id disambiguation for multi-account-same-display_name; #104 PR-A: 5 mutation tools mark_read/flag_email/set_flag_color/set_background_color/mark_as_junk gain account_id; #106 EnvelopeIndexReader reverse-lookup cache + accountUUIDs primitive)。疊加 Shell v2.19.6 (#73): hooks/session-start.sh compare 改 prefer `.binary_version` (post-#77 schema),fallback `.version`,杜絕每次 session start spurious SIGTERM(runtime tag vs shell version 永遠 mismatch trap)。疊加 Shell v2.19.5 ships binary v2.8.5 (#16 nested markdown lists with depth-aware