npx claudepluginhub psychquant/psychquant-claude-plugins --plugin plugin-toolsThis skill uses the workspace's default tool permissions.
---
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
建立新的 Claude Code Plugin,包含目錄結構、manifest、CLAUDE.md、marketplace 同步、GitHub Issue 追蹤。
| 模式 | 觸發 | 說明 |
|---|---|---|
| New | /plugin-tools:create-plugin my-plugin | 從零建立全新 plugin |
| Convert | /plugin-tools:create-plugin convert skill-name | 從現有 .claude/skills/ 轉換成 plugin |
$ARGUMENTS 格式:
- "my-plugin" → New mode
- "convert codex-review" → Convert mode(從 .claude/skills/codex-review 轉換)
- "convert codex-review issue" → Convert mode(合併多個 skill 成一個 plugin)
問以下問題(缺的才問):
PsychQuant/psychquant-claude-plugins)# 找到 marketplace repo 的本地路徑
# 預設:/Users/che/Developer/psychquant-claude-plugins
MARKETPLACE_ROOT=$(git -C "$PLUGIN_SOURCE" rev-parse --show-toplevel 2>/dev/null)
如果找不到,問使用者 marketplace repo 的路徑。
PLUGIN_DIR="$MARKETPLACE_ROOT/plugins/{plugin-name}"
mkdir -p "$PLUGIN_DIR/.claude-plugin"
mkdir -p "$PLUGIN_DIR/skills" # if skills selected
mkdir -p "$PLUGIN_DIR/commands" # if commands selected
mkdir -p "$PLUGIN_DIR/agents" # if agents selected
mkdir -p "$PLUGIN_DIR/hooks" # if hooks selected
{
"name": "{plugin-name}",
"description": "{description}",
"version": "1.0.0",
"author": {
"name": "Che Cheng"
}
}
對每個要轉換的 skill:
.claude/skills/{skill-name}/SKILL.md$PLUGIN_DIR/skills/{skill-name}/SKILL.mdreferences/ 子目錄,一併複製為每個 skill 建立骨架 SKILL.md:
---
name: {skill-name}
description: |
{skill description}
allowed-tools:
- Read
- Write
- Edit
- Bash
- AskUserQuestion
---
# {Skill Title}
## Purpose
{TODO: describe what this skill does}
## Execution Steps
### Step 1: {TODO}
{TODO}
自動在 plugin 根目錄產生 CLAUDE.md:
# {plugin-name} — CLAUDE.md
## Purpose
{description}
## Skills
| Skill | 用途 |
|-------|------|
| `/plugin-tools:{skill-1}` | {skill-1 description} |
| `/plugin-tools:{skill-2}` | {skill-2 description} |
## Development
- Plugin structure: see [official plugin-dev](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/plugin-dev)
- Update after changes: `/plugin-tools:plugin-update {plugin-name}`
- Health check: `/plugin-tools:plugin-health`
讀取現有 $MARKETPLACE_ROOT/.claude-plugin/marketplace.json,在 plugins 陣列末尾新增:
{
"name": "{plugin-name}",
"version": "1.0.0",
"description": "{description}",
"author": {
"name": "Che Cheng"
},
"source": "./plugins/{plugin-name}",
"category": "{category}"
}
注意:不要覆蓋整個檔案,用 Edit tool 在最後一個 plugin entry 後面插入。
cd "$MARKETPLACE_ROOT"
git add "plugins/{plugin-name}" ".claude-plugin/marketplace.json"
git commit -m "feat: Add {plugin-name} plugin — {description}"
git push origin main
gh issue create \
--repo {target-repo} \
--title "[PLUGIN] {plugin-name} — {description}" \
--body "## New Plugin
Plugin \`{plugin-name}\` created.
### Components
- Skills: {list of skills}
- Commands: {list or 'none'}
- Agents: {list or 'none'}
- Hooks: {list or 'none'}
### Status
- [x] Directory structure created
- [x] plugin.json manifest
- [x] CLAUDE.md generated
- [x] marketplace.json updated
- [x] Committed and pushed
- [ ] Skills content (TODO: fill in SKILL.md bodies)
- [ ] Testing with \`claude --plugin-dir\`
- [ ] Plugin update: \`/plugin-tools:plugin-update {plugin-name}\`
### Convert Source
{if convert mode: list source .claude/skills/ paths}
{if new mode: 'Created from scratch'}
"
# Sync marketplace
claude plugin marketplace update psychquant-claude-plugins
# Update installed plugins
claude plugin update {plugin-name}
提示使用者:
Plugin 已建立!接下來:
1. 填寫 skills/ 裡的 SKILL.md 內容
2. 用 `claude --plugin-dir ./plugins/{plugin-name}` 本地測試
3. 測試完成後執行 `/plugin-tools:plugin-update {plugin-name}` 同步
.claude/skills/ 裡的原始檔案 — 讓使用者自己決定何時移除/codex-review → /issue-driven-dev:codex-review(加 namespace)references/ 子目錄,整個複製/plugin-tools:create-plugin convert codex-review issue
這會把 .claude/skills/codex-review 和 .claude/skills/issue 合併到同一個 plugin。
Plugin 名稱由 Step 1 詢問使用者。