ãã©ã°ã€ã³ãªãã¡ã¬ã³ã¹
Claude Code ãã©ã°ã€ã³ã·ã¹ãã ã®å®å šãªæè¡ãªãã¡ã¬ã³ã¹ãã¹ããŒããCLI ã³ãã³ããã³ã³ããŒãã³ã仿§ãå«ã¿ãŸãã
ãã©ã°ã€ã³ãã€ã³ã¹ããŒã«ãããã§ããïŒãã©ã°ã€ã³ã®æ€åºãšã€ã³ã¹ããŒã«ãåç §ããŠãã ããããã©ã°ã€ã³ã®äœæã«ã€ããŠã¯ããã©ã°ã€ã³ãåç §ããŠãã ããããã©ã°ã€ã³ã®é åžã«ã€ããŠã¯ããã©ã°ã€ã³ããŒã±ãããã¬ã€ã¹ãåç §ããŠãã ããã
ãã®ãªãã¡ã¬ã³ã¹ã¯ãClaude Code ãã©ã°ã€ã³ã·ã¹ãã ã®å®å šãªæè¡ä»æ§ãæäŸããŸããã³ã³ããŒãã³ãã¹ããŒããCLI ã³ãã³ããéçºããŒã«ãå«ã¿ãŸãã
ãã©ã°ã€ã³ã¯ãClaude Code ãã«ã¹ã¿ã æ©èœã§æ¡åŒµããèªå·±å®çµåã®ã³ã³ããŒãã³ããã£ã¬ã¯ããªã§ãããã©ã°ã€ã³ã³ã³ããŒãã³ãã«ã¯ãskillsãagentsãhooksãMCP serversãLSP serversãmonitors ãå«ãŸããŸãã
ãã©ã°ã€ã³ã³ã³ããŒãã³ããªãã¡ã¬ã³ã¹
Skills
ãã©ã°ã€ã³ã¯ Claude Code ã« skills ã远å ãã/name ã·ã§ãŒãã«ãããäœæããŸãããããã¯ãããªããŸã㯠Claude ãåŒã³åºãããšãã§ããŸãã
å Žæ: ãã©ã°ã€ã³ã«ãŒãã® skills/ ãŸã㯠commands/ ãã£ã¬ã¯ããª
ãã¡ã€ã«åœ¢åŒ: Skills ã¯ãã£ã¬ã¯ããªã§ SKILL.md ãå«ã¿ãŸããcommands ã¯ã·ã³ãã«ãªããŒã¯ããŠã³ãã¡ã€ã«ã§ãã
Skill æ§é :
skills/
âââ pdf-processor/
â âââ SKILL.md
â âââ reference.md (optional)
â âââ scripts/ (optional)
âââ code-reviewer/
âââ SKILL.md
çµ±ååäœ:
- Skills ãš commands ã¯ãã©ã°ã€ã³ãã€ã³ã¹ããŒã«ããããšèªåçã«æ€åºãããŸã
- Claude ã¯ã¿ã¹ã¯ã³ã³ããã¹ãã«åºã¥ããŠèªåçã«ããããåŒã³åºãããšãã§ããŸã
- Skills 㯠SKILL.md ã®æšªã«ãµããŒããã¡ã€ã«ãå«ããããšãã§ããŸã
詳现ã«ã€ããŠã¯ãSkillsãåç §ããŠãã ããã
Agents
ãã©ã°ã€ã³ã¯ãç¹å®ã®ã¿ã¹ã¯çšã®ç¹åãã subagents ãæäŸã§ããŸããClaude ã¯å¿ èŠã«å¿ããŠèªåçã«ããããåŒã³åºãããšãã§ããŸãã
å Žæ: ãã©ã°ã€ã³ã«ãŒãã® agents/ ãã£ã¬ã¯ããª
ãã¡ã€ã«åœ¢åŒ: ãšãŒãžã§ã³ãæ©èœã説æããããŒã¯ããŠã³ãã¡ã€ã«
Agent æ§é :
---
name: agent-name
description: ãã®ãšãŒãžã§ã³ããå°éãšããå
容ãšãClaude ããããåŒã³åºãã¹ãææ
model: sonnet
effort: medium
maxTurns: 20
disallowedTools: Write, Edit
---
ãšãŒãžã§ã³ãã®åœ¹å²ãå°éç¥èãåäœã説æãã詳现ãªã·ã¹ãã ããã³ããã
ãã©ã°ã€ã³ãšãŒãžã§ã³ã㯠nameãdescriptionãmodelãeffortãmaxTurnsãtoolsãdisallowedToolsãskillsãmemoryãbackgroundãisolation frontmatter ãã£ãŒã«ãããµããŒãããŠããŸããå¯äžã®æå¹ãª isolation å€ã¯ "worktree" ã§ããã»ãã¥ãªãã£äžã®çç±ãããhooksãmcpServersãpermissionMode ã¯ãã©ã°ã€ã³æäŸã®ãšãŒãžã§ã³ãã§ã¯ãµããŒããããŠããŸããã
çµ±åãã€ã³ã:
- Agents ã¯
/agentsã€ã³ã¿ãŒãã§ã€ã¹ã«è¡šç€ºãããŸã - Claude ã¯ã¿ã¹ã¯ã³ã³ããã¹ãã«åºã¥ããŠèªåçã«ãšãŒãžã§ã³ããåŒã³åºãããšãã§ããŸã
- Agents ã¯ãŠãŒã¶ãŒãæåã§åŒã³åºãããšãã§ããŸã
- ãã©ã°ã€ã³ãšãŒãžã§ã³ãã¯çµã¿èŸŒã¿ã® Claude ãšãŒãžã§ã³ããšäžç·ã«åäœããŸã
詳现ã«ã€ããŠã¯ãSubagentsãåç §ããŠãã ããã
Hooks
ãã©ã°ã€ã³ã¯ Claude Code ã€ãã³ãã«èªåçã«å¿çããã€ãã³ããã³ãã©ãŒãæäŸã§ããŸãã
å Žæ: ãã©ã°ã€ã³ã«ãŒãã® hooks/hooks.jsonããŸã㯠plugin.json å
ã®ã€ã³ã©ã€ã³
圢åŒ: ã€ãã³ããããã£ãŒãšã¢ã¯ã·ã§ã³ãå«ã JSON èšå®
Hook èšå®:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/scripts/format-code.sh"
}
]
}
]
}
}
ãã©ã°ã€ã³ hooks ã¯ãŠãŒã¶ãŒå®çŸ© hooksãšåãã©ã€ããµã€ã¯ã«ã€ãã³ãã«å¿çããŸã:
| Event | When it fires |
|---|---|
SessionStart |
When a session begins or resumes |
Setup |
When you start Claude Code with --init-only, or with --init or --maintenance in -p mode. For one-time preparation in CI or scripts |
UserPromptSubmit |
When you submit a prompt, before Claude processes it |
UserPromptExpansion |
When a user-typed command expands into a prompt, before it reaches Claude. Can block the expansion |
PreToolUse |
Before a tool call executes. Can block it |
PermissionRequest |
When a permission dialog appears |
PermissionDenied |
When a tool call is denied by the auto mode classifier. Return {retry: true} to tell the model it may retry the denied tool call |
PostToolUse |
After a tool call succeeds |
PostToolUseFailure |
After a tool call fails |
PostToolBatch |
After a full batch of parallel tool calls resolves, before the next model call |
Notification |
When Claude Code sends a notification |
SubagentStart |
When a subagent is spawned |
SubagentStop |
When a subagent finishes |
TaskCreated |
When a task is being created via TaskCreate |
TaskCompleted |
When a task is being marked as completed |
Stop |
When Claude finishes responding |
StopFailure |
When the turn ends due to an API error. Output and exit code are ignored |
TeammateIdle |
When an agent team teammate is about to go idle |
InstructionsLoaded |
When a CLAUDE.md or .claude/rules/*.md file is loaded into context. Fires at session start and when files are lazily loaded during a session |
ConfigChange |
When a configuration file changes during a session |
CwdChanged |
When the working directory changes, for example when Claude executes a cd command. Useful for reactive environment management with tools like direnv |
FileChanged |
When a watched file changes on disk. The matcher field specifies which filenames to watch |
WorktreeCreate |
When a worktree is being created via --worktree or isolation: "worktree". Replaces default git behavior |
WorktreeRemove |
When a worktree is being removed, either at session exit or when a subagent finishes |
PreCompact |
Before context compaction |
PostCompact |
After context compaction completes |
Elicitation |
When an MCP server requests user input during a tool call |
ElicitationResult |
After a user responds to an MCP elicitation, before the response is sent back to the server |
SessionEnd |
When a session terminates |
Hook ã¿ã€ã:
command: ã·ã§ã«ã³ãã³ããŸãã¯ã¹ã¯ãªãããå®è¡http: ã€ãã³ã JSON ã URL ãžã® POST ãªã¯ãšã¹ããšããŠéä¿¡mcp_tool: èšå®ãããMCP serveräžã®ããŒã«ãåŒã³åºãprompt: LLM ã§ããã³ãããè©äŸ¡ïŒã³ã³ããã¹ãã®$ARGUMENTSãã¬ãŒã¹ãã«ããŒã䜿çšïŒagent: è€éãªæ€èšŒã¿ã¹ã¯çšã®ããŒã«ä»ã agentic verifier ãå®è¡
MCP servers
ãã©ã°ã€ã³ã¯ Model Context ProtocolïŒMCPïŒservers ããã³ãã«ããŠãClaude Code ãå€éšããŒã«ããã³ãµãŒãã¹ã«æ¥ç¶ã§ããŸãã
å Žæ: ãã©ã°ã€ã³ã«ãŒãã® .mcp.jsonããŸã㯠plugin.json å
ã®ã€ã³ã©ã€ã³
圢åŒ: æšæº MCP ãµãŒããŒèšå®
MCP ãµãŒããŒèšå®:
{
"mcpServers": {
"plugin-database": {
"command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",
"args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"],
"env": {
"DB_PATH": "${CLAUDE_PLUGIN_ROOT}/data"
}
},
"plugin-api-client": {
"command": "npx",
"args": ["@company/mcp-server", "--plugin-mode"],
"cwd": "${CLAUDE_PLUGIN_ROOT}"
}
}
}
çµ±ååäœ:
- ãã©ã°ã€ã³ MCP servers ã¯ãã©ã°ã€ã³ãæå¹ã«ãªããšèªåçã«éå§ãããŸã
- Servers 㯠Claude ã®ããŒã«ãããã«æšæº MCP ããŒã«ãšããŠè¡šç€ºãããŸã
- ãµãŒããŒæ©èœã¯ Claude ã®æ¢åããŒã«ãšã·ãŒã ã¬ã¹ã«çµ±åãããŸã
- ãã©ã°ã€ã³ãµãŒããŒã¯ãŠãŒã¶ãŒ MCP servers ãšã¯ç¬ç«ããŠèšå®ã§ããŸã
LSP servers
LSP ãã©ã°ã€ã³ã䜿çšãããã§ããïŒå
¬åŒããŒã±ãããã¬ã€ã¹ããã€ã³ã¹ããŒã«ããŠãã ããã/plugin Discover ã¿ãã§ãlspããæ€çŽ¢ããŠãã ããããã®ã»ã¯ã·ã§ã³ã§ã¯ãå
¬åŒããŒã±ãããã¬ã€ã¹ã§ã«ããŒãããŠããªãèšèªçšã® LSP ãã©ã°ã€ã³ãäœæããæ¹æ³ã説æããŠããŸãã
ãã©ã°ã€ã³ã¯ Language Server ProtocolïŒLSPïŒservers ãæäŸããŠãClaude ãã³ãŒãããŒã¹ã§äœæ¥ããéã«ãªã¢ã«ã¿ã€ã ã³ãŒã ã€ã³ããªãžã§ã³ã¹ãåŸãããšãã§ããŸãã
LSP çµ±åã¯ä»¥äžãæäŸããŸã:
- å³åº§ã®èšºæ: Claude ã¯åç·šéåŸããã«ãšã©ãŒãšèŠåã確èªã§ããŸã
- ã³ãŒãããã²ãŒã·ã§ã³: å®çŸ©ãžã®ãžã£ã³ããåç §ã®æ€çŽ¢ããããŒæ å ±
- èšèªèªè: ã³ãŒãã·ã³ãã«ã®åæ å ±ãšããã¥ã¡ã³ã
å Žæ: ãã©ã°ã€ã³ã«ãŒãã® .lsp.jsonããŸã㯠plugin.json å
ã®ã€ã³ã©ã€ã³
圢åŒ: èšèªãµãŒããŒåããã®èšå®ã«ããããã JSON èšå®
.lsp.json ãã¡ã€ã«åœ¢åŒ:
{
"go": {
"command": "gopls",
"args": ["serve"],
"extensionToLanguage": {
".go": "go"
}
}
}
plugin.json å
ã®ã€ã³ã©ã€ã³:
{
"name": "my-plugin",
"lspServers": {
"go": {
"command": "gopls",
"args": ["serve"],
"extensionToLanguage": {
".go": "go"
}
}
}
}
å¿ é ãã£ãŒã«ã:
| ãã£ãŒã«ã | 説æ |
|---|---|
command |
å®è¡ãã LSP ãã€ããªïŒPATH ã«å«ãŸããŠããå¿ èŠããããŸãïŒ |
extensionToLanguage |
ãã¡ã€ã«æ¡åŒµåãèšèªèå¥åã«ããã |
ãªãã·ã§ã³ãã£ãŒã«ã:
| ãã£ãŒã«ã | 説æ |
|---|---|
args |
LSP ãµãŒããŒã®ã³ãã³ãã©ã€ã³åŒæ° |
transport |
éä¿¡ãã©ã³ã¹ããŒã: stdioïŒããã©ã«ãïŒãŸã㯠socket |
env |
ãµãŒããŒèµ·åæã«èšå®ããç°å¢å€æ° |
initializationOptions |
åæåäžã«ãµãŒããŒã«æž¡ããããªãã·ã§ã³ |
settings |
workspace/didChangeConfiguration çµç±ã§æž¡ãããèšå® |
workspaceFolder |
ãµãŒããŒã®ã¯ãŒã¯ã¹ããŒã¹ãã©ã«ããŒãã¹ |
startupTimeout |
ãµãŒããŒèµ·åãåŸ ã€æå€§æéïŒããªç§ïŒ |
shutdownTimeout |
ã°ã¬ãŒã¹ãã«ã·ã£ããããŠã³ãåŸ ã€æå€§æéïŒããªç§ïŒ |
restartOnCrash |
ãµãŒããŒãã¯ã©ãã·ã¥ããå Žåã«èªåçã«åèµ·åãããã©ãã |
maxRestarts |
諊ããåã®æå€§åèµ·å詊è¡åæ° |
èšèªãµãŒããŒãã€ããªãå¥éã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã LSP ãã©ã°ã€ã³ã¯ Claude Code ãèšèªãµãŒããŒã«æ¥ç¶ããæ¹æ³ãèšå®ããŸããããµãŒããŒèªäœã¯å«ãŸããŠããŸããã/plugin Errors ã¿ãã« Executable not found in $PATH ã衚瀺ãããå Žåã¯ãèšèªã«å¿
èŠãªãã€ããªãã€ã³ã¹ããŒã«ããŠãã ããã
å©çšå¯èœãª LSP ãã©ã°ã€ã³:
| ãã©ã°ã€ã³ | èšèªãµãŒã㌠| ã€ã³ã¹ããŒã«ã³ãã³ã |
|---|---|---|
pyright-lsp |
PyrightïŒPythonïŒ | pip install pyright ãŸã㯠npm install -g pyright |
typescript-lsp |
TypeScript Language Server | npm install -g typescript-language-server typescript |
rust-analyzer-lsp |
rust-analyzer | rust-analyzer ã€ã³ã¹ããŒã«ãåç § |
èšèªãµãŒããŒããŸãã€ã³ã¹ããŒã«ããŠãããããŒã±ãããã¬ã€ã¹ãããã©ã°ã€ã³ãã€ã³ã¹ããŒã«ããŠãã ããã
Monitors
ãã©ã°ã€ã³ã¯ããã©ã°ã€ã³ãã¢ã¯ãã£ããªå Žåã« Claude Code ãèªåçã«éå§ããããã¯ã°ã©ãŠã³ã monitors ã宣èšã§ããŸããå monitor ã¯ã»ãã·ã§ã³ã®æéäžã·ã§ã«ã³ãã³ããå®è¡ãããã¹ãŠã® stdout è¡ã Claude ã«éç¥ãšããŠé ä¿¡ãããããClaude ã¯èªåèªèº«ã«éå§ããããæ±ããããããšãªãããã°ãšã³ããªãã¹ããŒã¿ã¹å€æŽããŸãã¯ããŒãªã³ã°ãããã€ãã³ãã«åå¿ã§ããŸãã
ãã©ã°ã€ã³ monitors ã¯Monitor toolãšåãã¡ã«ããºã ã䜿çšãããã®å¯çšæ§å¶çŽãå ±æããŸãããããã¯ã€ã³ã¿ã©ã¯ãã£ã CLI ã»ãã·ã§ã³ã§ã®ã¿å®è¡ãããhooksãšåãä¿¡é Œã¬ãã«ã§ãµã³ãããã¯ã¹åãããã«å®è¡ãããMonitor tool ãå©çšã§ããªããã¹ãã§ã¯ã¹ããããããŸãã
ãã©ã°ã€ã³ monitors ã«ã¯ Claude Code v2.1.105 以éãå¿ èŠã§ãã
å Žæ: ãã©ã°ã€ã³ã«ãŒãã® monitors/monitors.jsonããŸã㯠plugin.json å
ã®ã€ã³ã©ã€ã³
圢åŒ: monitor ãšã³ããªã® JSON é å
次㮠monitors/monitors.json ã¯ãããã€ã¡ã³ãã¹ããŒã¿ã¹ãšã³ããã€ã³ããšããŒã«ã«ãšã©ãŒãã°ãç£èŠããŸã:
[
{
"name": "deploy-status",
"command": "${CLAUDE_PLUGIN_ROOT}/scripts/poll-deploy.sh ${user_config.api_endpoint}",
"description": "Deployment status changes"
},
{
"name": "error-log",
"command": "tail -F ./logs/error.log",
"description": "Application error log",
"when": "on-skill-invoke:debug"
}
]
monitors ãã€ã³ã©ã€ã³ã§å®£èšããã«ã¯ãplugin.json ã® experimental.monitors ãåãé
åã«èšå®ããŸããããã©ã«ã以å€ã®ãã¹ããèªã¿èŸŒãã«ã¯ãexperimental.monitors ã "./config/monitors.json" ãªã©ã®çžå¯Ÿãã¹æååã«èšå®ããŸããMonitors ã¯å®éšçã³ã³ããŒãã³ãã§ãã
å¿ é ãã£ãŒã«ã:
| ãã£ãŒã«ã | 説æ |
|---|---|
name |
ãã©ã°ã€ã³å ã§äžæã®èå¥åããã©ã°ã€ã³ãåèªã¿èŸŒã¿ãããã skill ãå床åŒã³åºããããšãã«éè€ããã»ã¹ãé²ããŸã |
command |
ã»ãã·ã§ã³äœæ¥ãã£ã¬ã¯ããªã§æ°žç¶çãªããã¯ã°ã©ãŠã³ãããã»ã¹ãšããŠå®è¡ãããã·ã§ã«ã³ãã³ã |
description |
ç£èŠå¯Ÿè±¡ã®ç°¡æœãªæŠèŠãã¿ã¹ã¯ããã«ãšéç¥ãµããªãŒã«è¡šç€ºãããŸã |
ãªãã·ã§ã³ãã£ãŒã«ã:
| ãã£ãŒã«ã | 説æ |
|---|---|
when |
monitor ããã€éå§ããããå¶åŸ¡ããŸãã"always" ã¯ã»ãã·ã§ã³éå§æãšãã©ã°ã€ã³åèªã¿èŸŒã¿æã«éå§ããããã©ã«ãã§ãã"on-skill-invoke:<skill-name>" ã¯ãã®ãã©ã°ã€ã³å
ã®ååä»ã skill ãæåã«ãã£ã¹ãããããããšãã«éå§ããŸã |
command å€ã¯ MCP ããã³ LSP ãµãŒããŒèšå®ãšåã倿°çœ®æããµããŒãããŸã: ${CLAUDE_PLUGIN_ROOT}ã${CLAUDE_PLUGIN_DATA}ã${user_config.*}ãããã³ç°å¢ããã®ä»»æã® ${ENV_VAR}ãã¹ã¯ãªããããã©ã°ã€ã³èªäœã®ãã£ã¬ã¯ããªããå®è¡ãããå¿
èŠãããå Žåã¯ãã³ãã³ãã®åã« cd "${CLAUDE_PLUGIN_ROOT}" && ãä»ããŸãã
ã»ãã·ã§ã³äžã«ãã©ã°ã€ã³ãç¡å¹ã«ããŠããæ¢ã«å®è¡äžã® monitors ã¯åæ¢ããŸãããã»ãã·ã§ã³ãçµäºãããšãã«åæ¢ããŸãã
Themes
ãã©ã°ã€ã³ã¯ã/theme ã«çµã¿èŸŒã¿ããªã»ããããã³ãŠãŒã¶ãŒã®ããŒã«ã«ããŒããšäžç·ã«è¡šç€ºãããè²ããŒããé
åžã§ããŸããããŒã㯠themes/ å
ã® JSON ãã¡ã€ã«ã§ãbase ããªã»ãããšè²ããŒã¯ã³ã®ã¹ããŒã¹ overrides ããããæã¡ãŸããThemes ã¯å®éšçã³ã³ããŒãã³ãã§ãã
{
"name": "Dracula",
"base": "dark",
"overrides": {
"claude": "#bd93f9",
"error": "#ff5555",
"success": "#50fa7b"
}
}
ãã©ã°ã€ã³ããŒããéžæãããšãcustom:<plugin-name>:<slug> ããŠãŒã¶ãŒã®èšå®ã«ä¿æãããŸãããã©ã°ã€ã³ããŒãã¯èªã¿åãå°çšã§ãã/theme ã§ Ctrl+E ãæŒããšãããã ~/.claude/themes/ ã«ã³ããŒãããããããŠãŒã¶ãŒã¯ã³ããŒãç·šéã§ããŸãã
ãã©ã°ã€ã³ã€ã³ã¹ããŒã«ã¹ã³ãŒã
ãã©ã°ã€ã³ãã€ã³ã¹ããŒã«ãããšãã¯ããã©ã°ã€ã³ãå©çšå¯èœãªå Žæãšä»ã®ãŠãŒã¶ãŒã䜿çšã§ãããã©ãããæ±ºå®ããã¹ã³ãŒããéžæããŸãã
| ã¹ã³ãŒã | èšå®ãã¡ã€ã« | ãŠãŒã¹ã±ãŒã¹ |
|---|---|---|
user |
~/.claude/settings.json |
ãã¹ãŠã®ãããžã§ã¯ãå šäœã§å©çšå¯èœãªå人ãã©ã°ã€ã³ïŒããã©ã«ãïŒ |
project |
.claude/settings.json |
ããŒãžã§ã³ç®¡ççµç±ã§å ±æãããããŒã ãã©ã°ã€ã³ |
local |
.claude/settings.local.json |
ãããžã§ã¯ãåºæã®ãã©ã°ã€ã³ãgitignored |
managed |
管çèšå® | 管çãã©ã°ã€ã³ïŒèªã¿åãå°çšãæŽæ°ã®ã¿ïŒ |
ãã©ã°ã€ã³ã¯ä»ã® Claude Code èšå®ãšåãã¹ã³ãŒãã·ã¹ãã ã䜿çšããŸããã€ã³ã¹ããŒã«æé ãšã¹ã³ãŒããã©ã°ã«ã€ããŠã¯ããã©ã°ã€ã³ã®ã€ã³ã¹ããŒã«ãåç §ããŠãã ãããã¹ã³ãŒãã®å®å šãªèª¬æã«ã€ããŠã¯ãèšå®ã¹ã³ãŒããåç §ããŠãã ããã
ãã©ã°ã€ã³ãããã§ã¹ãã¹ããŒã
.claude-plugin/plugin.json ãã¡ã€ã«ã¯ãã©ã°ã€ã³ã®ã¡ã¿ããŒã¿ãšèšå®ãå®çŸ©ããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ããµããŒããããŠãããã¹ãŠã®ãã£ãŒã«ããšãªãã·ã§ã³ã説æããŠããŸãã
ãããã§ã¹ãã¯ãªãã·ã§ã³ã§ããçç¥ãããå ŽåãClaude Code ã¯ããã©ã«ãå Žæã®ã³ã³ããŒãã³ããèªåæ€åºãããã£ã¬ã¯ããªåãããã©ã°ã€ã³åãå°åºããŸããã¡ã¿ããŒã¿ãæäŸããããã«ã¹ã¿ã ã³ã³ããŒãã³ããã¹ãå¿ èŠãªå Žåã¯ãããã§ã¹ãã䜿çšããŠãã ããã
å®å šãªã¹ããŒã
{
"name": "plugin-name",
"version": "1.2.0",
"description": "Brief plugin description",
"author": {
"name": "Author Name",
"email": "author@example.com",
"url": "https://github.com/author"
},
"homepage": "https://docs.example.com/plugin",
"repository": "https://github.com/author/plugin",
"license": "MIT",
"keywords": ["keyword1", "keyword2"],
"skills": "./custom/skills/",
"commands": ["./custom/commands/special.md"],
"agents": ["./custom/agents/reviewer.md"],
"hooks": "./config/hooks.json",
"mcpServers": "./mcp-config.json",
"outputStyles": "./styles/",
"lspServers": "./.lsp.json",
"experimental": {
"themes": "./themes/",
"monitors": "./monitors.json"
},
"dependencies": [
"helper-lib",
{ "name": "secrets-vault", "version": "~2.1.0" }
]
}
å¿ é ãã£ãŒã«ã
ãããã§ã¹ããå«ããå Žåãname ã¯å¯äžã®å¿
é ãã£ãŒã«ãã§ãã
| ãã£ãŒã«ã | å | 説æ | äŸ |
|---|---|---|---|
name |
string | äžæã®èå¥åïŒkebab-caseãã¹ããŒã¹ãªãïŒ | "deployment-tools" |
ãã®ååã¯ã³ã³ããŒãã³ãã®åå空éã«äœ¿çšãããŸããããšãã°ãUI ã§ã¯ãååã plugin-dev ã®ãã©ã°ã€ã³ã®ãšãŒãžã§ã³ã agent-creator 㯠plugin-dev:agent-creator ãšããŠè¡šç€ºãããŸãã
ã¡ã¿ããŒã¿ãã£ãŒã«ã
| ãã£ãŒã«ã | å | 説æ | äŸ |
|---|---|---|---|
$schema |
string | ãšãã£ã¿ã®ãªãŒãã³ã³ããªãŒããšæ€èšŒçšã® JSON Schema URLãClaude Code ã¯ããŒãæã«ãã®ãã£ãŒã«ããç¡èŠããŸãã | "https://json.schemastore.org/claude-code-plugin-manifest.json" |
version |
string | ãªãã·ã§ã³ãã»ãã³ãã£ãã¯ããŒãžã§ã³ããããèšå®ãããšãã©ã°ã€ã³ããã®ããŒãžã§ã³æååã«ãã³çãããããããŠãŒã¶ãŒã¯ããŒãžã§ã³ããã³ããããšãã®ã¿æŽæ°ãåãåããŸããçç¥ãããå ŽåãClaude Code 㯠git ã³ããã SHA ã«ãã©ãŒã«ããã¯ããããããã¹ãŠã®ã³ããããæ°ããããŒãžã§ã³ãšããŠæ±ãããŸããããŒã±ãããã¬ã€ã¹ãšã³ããªã«ãèšå®ãããŠããå Žåãplugin.json ãåªå
ãããŸããããŒãžã§ã³ç®¡çãåç
§ããŠãã ããã |
"2.1.0" |
description |
string | ãã©ã°ã€ã³ã®ç®çã®ç°¡æœãªèª¬æ | "Deployment automation tools" |
author |
object | èè æ å ± | {"name": "Dev Team", "email": "dev@company.com"} |
homepage |
string | ããã¥ã¡ã³ã URL | "https://docs.example.com" |
repository |
string | ãœãŒã¹ã³ãŒã URL | "https://github.com/user/plugin" |
license |
string | ã©ã€ã»ã³ã¹èå¥å | "MIT"ã"Apache-2.0" |
keywords |
array | æ€åºã¿ã° | ["deployment", "ci-cd"] |
ã³ã³ããŒãã³ããã¹ãã£ãŒã«ã
| ãã£ãŒã«ã | å | 説æ | äŸ |
|---|---|---|---|
skills |
string|array | <name>/SKILL.md ãå«ãã«ã¹ã¿ã skill ãã£ã¬ã¯ããªïŒããã©ã«ã skills/ ã眮ãæãïŒ |
"./custom/skills/" |
commands |
string|array | ã«ã¹ã¿ã ãã©ãã .md skill ãã¡ã€ã«ãŸãã¯ãã£ã¬ã¯ããªïŒããã©ã«ã commands/ ã眮ãæãïŒ |
"./custom/cmd.md" ãŸã㯠["./cmd1.md"] |
agents |
string|array | ã«ã¹ã¿ã ãšãŒãžã§ã³ããã¡ã€ã«ïŒããã©ã«ã agents/ ã眮ãæãïŒ |
"./custom/agents/reviewer.md" |
hooks |
string|array|object | Hook èšå®ãã¹ãŸãã¯ã€ã³ã©ã€ã³èšå® | "./my-extra-hooks.json" |
mcpServers |
string|array|object | MCP èšå®ãã¹ãŸãã¯ã€ã³ã©ã€ã³èšå® | "./my-extra-mcp-config.json" |
outputStyles |
string|array | ã«ã¹ã¿ã åºåã¹ã¿ã€ã«ãã¡ã€ã«/ãã£ã¬ã¯ããªïŒããã©ã«ã output-styles/ ã眮ãæãïŒ |
"./styles/" |
lspServers |
string|array|object | Language Server Protocolã³ãŒã ã€ã³ããªãžã§ã³ã¹çšã®èšå®ïŒå®çŸ©ãžã®ãžã£ã³ããåç §ã®æ€çŽ¢ãªã©ïŒ | "./.lsp.json" |
experimental.themes |
string|array | ã«ã©ãŒããŒããã¡ã€ã«/ãã£ã¬ã¯ããªïŒããã©ã«ã themes/ ã眮ãæãïŒãããŒããåç
§ããŠãã ãã |
"./themes/" |
experimental.monitors |
string|array | ãã©ã°ã€ã³ãã¢ã¯ãã£ããªå Žåã«èªåçã«éå§ãããããã¯ã°ã©ãŠã³ãMonitorèšå®ãMonitorsãåç §ããŠãã ãã | "./monitors.json" |
userConfig |
object | ãŠãŒã¶ãŒèšå®å¯èœãªå€ã¯æå¹åæã«ããã³ãããããŸãããŠãŒã¶ãŒèšå®ãåç §ããŠãã ãã | äžèšãåç § |
channels |
array | ã¡ãã»ãŒãžæ³šå ¥çšã®ãã£ãã«å®£èšïŒTelegramãSlackãDiscord ã¹ã¿ã€ã«ïŒããã£ãã«ãåç §ããŠãã ãã | äžèšãåç § |
dependencies |
array | ãã®ãã©ã°ã€ã³ãå¿ èŠãšããä»ã®ãã©ã°ã€ã³ããªãã·ã§ã³ã§ semver ããŒãžã§ã³å¶çŽä»ãããã©ã°ã€ã³äŸåé¢ä¿ããŒãžã§ã³ãå¶çŽãåç §ããŠãã ãã | [{ "name": "secrets-vault", "version": "~2.1.0" }] |
å®éšçã³ã³ããŒãã³ã
experimental ããŒã®äžã®ã³ã³ããŒãã³ããthemes ãš monitors ã¯ãå®å®åããéã«ãªãªãŒã¹éã§ãããã§ã¹ãã¹ããŒãã倿Žãããå¯èœæ§ããããŸãããããã宣èšããå Žæã¯å¥ã®ç§»è¡ã§ãããããã¬ãã«ã¯ãŸã æ©èœããclaude plugin validate ã¯èŠåã衚瀺ããå°æ¥ã®ãªãªãŒã¹ã§ã¯ experimental.* ãå¿
èŠã«ãªããŸãã
ãŠãŒã¶ãŒèšå®
userConfig ãã£ãŒã«ãã¯ããã©ã°ã€ã³ãæå¹ã«ãªã£ããšãã« Claude Code ããŠãŒã¶ãŒã«ããã³ããããå€ã宣èšããŸãããŠãŒã¶ãŒã« settings.json ãæåã§ç·šéããã代ããã«ããã䜿çšããŠãã ããã
{
"userConfig": {
"api_endpoint": {
"type": "string",
"title": "API endpoint",
"description": "Your team's API endpoint"
},
"api_token": {
"type": "string",
"title": "API token",
"description": "API authentication token",
"sensitive": true
}
}
}
ããŒã¯æå¹ãªèå¥åã§ããå¿ èŠããããŸããåãªãã·ã§ã³ã¯ãããã®ãã£ãŒã«ãããµããŒãããŸã:
| ãã£ãŒã«ã | å¿ é | 説æ |
|---|---|---|
type |
ã¯ã | stringãnumberãbooleanãdirectoryããŸã㯠file ã®ãããã |
title |
ã¯ã | èšå®ãã€ã¢ãã°ã«è¡šç€ºãããã©ãã« |
description |
ã¯ã | ãã£ãŒã«ãã®äžã«è¡šç€ºããããã«ãããã¹ã |
sensitive |
ããã | true ã®å Žåãå
¥åããã¹ã¯ããå€ã settings.json ã§ã¯ãªãã»ãã¥ã¢ã¹ãã¬ãŒãžã«ä¿å |
required |
ããã | true ã®å Žåããã£ãŒã«ãã空ã®ãšãã«æ€èšŒã倱æ |
default |
ããã | ãŠãŒã¶ãŒãäœãæäŸããªãå Žåã«äœ¿çšãããå€ |
multiple |
ããã | string ã¿ã€ãã®å Žåãæååã®é
åãèš±å¯ |
min / max |
ããã | number ã¿ã€ãã®å¢ç |
åå€ã¯ MCP ããã³ LSP ãµãŒããŒèšå®ãhook ã³ãã³ããmonitor ã³ãã³ããããã³ skill ãšãšãŒãžã§ã³ãã³ã³ãã³ãïŒæ©å¯ã§ãªãå€ã®ã¿ïŒã§ ${user_config.KEY} ãšããŠçœ®æå¯èœã§ãããã¹ãŠã®å€ã¯ãã©ã°ã€ã³ãµãããã»ã¹ã« CLAUDE_PLUGIN_OPTION_<KEY> ç°å¢å€æ°ãšããŠãšã¯ã¹ããŒããããŸãã
æ©å¯ã§ãªãå€ã¯ settings.json ã® pluginConfigs[<plugin-id>].options ã«ä¿åãããŸããæ©å¯å€ã¯ã·ã¹ãã ããŒãã§ãŒã³ïŒãŸãã¯ããŒãã§ãŒã³ãå©çšã§ããªãå Žå㯠~/.claude/.credentials.jsonïŒã«ç§»åããŸããããŒãã§ãŒã³ã¹ãã¬ãŒãžã¯ OAuth ããŒã¯ã³ãšå
±æãããçŽ 2 KB ã®åèšå¶éããããããæ©å¯å€ã¯å°ããä¿ã£ãŠãã ããã
ãã£ãã«
channels ãã£ãŒã«ãã䜿çšãããšããã©ã°ã€ã³ã¯ 1 ã€ä»¥äžã®ã¡ãã»ãŒãžãã£ãã«ã宣èšããŠãäŒè©±ã«ã³ã³ãã³ããæ³šå
¥ã§ããŸããåãã£ãã«ã¯ãã©ã°ã€ã³ãæäŸãã MCP ãµãŒããŒã«ãã€ã³ããããŸãã
{
"channels": [
{
"server": "telegram",
"userConfig": {
"bot_token": {
"type": "string",
"title": "Bot token",
"description": "Telegram bot token",
"sensitive": true
},
"owner_id": {
"type": "string",
"title": "Owner ID",
"description": "Your Telegram user ID"
}
}
}
]
}
server ãã£ãŒã«ãã¯å¿
é ã§ããã©ã°ã€ã³ã® mcpServers ã®ããŒãšäžèŽããå¿
èŠããããŸãããªãã·ã§ã³ã®ãã£ãã«ããšã® userConfig ã¯ãããã¬ãã«ãã£ãŒã«ããšåãã¹ããŒãã䜿çšãããã©ã°ã€ã³ããã©ã°ã€ã³æå¹åæã«ãããããŒã¯ã³ãŸãã¯ãªãŒã㌠ID ãããã³ããã§ããããã«ããŸãã
ãã¹åäœã«ãŒã«
skillsãcommandsãagentsãoutputStylesãexperimental.themesãexperimental.monitors ã®å Žåãã«ã¹ã¿ã ãã¹ã¯ããã©ã«ãã眮ãæããŸãããããã§ã¹ãã skills ãæå®ããå Žåãããã©ã«ã skills/ ãã£ã¬ã¯ããªã¯ã¹ãã£ã³ãããŸãããexperimental.monitors ãæå®ããå Žåãããã©ã«ã monitors/monitors.json ã¯èªã¿èŸŒãŸããŸãããHooksãMCP serversãLSP serversã¯è€æ°ã®ãœãŒã¹ãåŠçããããã®ç°ãªãã»ãã³ãã£ã¯ã¹ãæã¡ãŸãã
- ãã¹ãŠã®ãã¹ã¯ãã©ã°ã€ã³ã«ãŒãã«çžå¯Ÿçã§ã
./ã§å§ãŸãå¿ èŠããããŸã - ã«ã¹ã¿ã ãã¹ããã®ã³ã³ããŒãã³ãã¯åãåœåãšåå空éã«ãŒã«ã䜿çšããŸã
- è€æ°ã®ãã¹ãé åãšããŠæå®ã§ããŸã
- skillsãcommandsãagentsãoutput styles ã®ããã©ã«ããã£ã¬ã¯ããªãä¿æããŠããã«ãã¹ã远å ããã«ã¯ãé
åã«ããã©ã«ããå«ããŸã:
"skills": ["./skills/", "./extras/"] - skill ãã¹ã
SKILL.mdãçŽæ¥å«ããã£ã¬ã¯ããªãæãå ŽåïŒäŸ:"skills": ["./"]ããã©ã°ã€ã³ã«ãŒããæãïŒãSKILL.mdã® frontmatternameãã£ãŒã«ãã skill ã®åŒã³åºãåãæ±ºå®ããŸããããã¯ã€ã³ã¹ããŒã«ãã£ã¬ã¯ããªã«é¢ä¿ãªãå®å®ããååãæäŸããŸããfrontmatter ã«nameãèšå®ãããŠããªãå Žåããã£ã¬ã¯ã㪠basename ããã©ãŒã«ããã¯ãšããŠäœ¿çšãããŸãã
ãã¹ã®äŸ:
{
"commands": [
"./specialized/deploy.md",
"./utilities/batch-process.md"
],
"agents": [
"./custom-agents/reviewer.md",
"./custom-agents/tester.md"
]
}
ç°å¢å€æ°
Claude Code ã¯ããã©ã°ã€ã³ãã¹ãåç §ããããã® 2 ã€ã®å€æ°ãæäŸããŸããã©ã¡ãã skill ã³ã³ãã³ãããšãŒãžã§ã³ãã³ã³ãã³ããhook ã³ãã³ããmonitor ã³ãã³ããMCP ãŸã㯠LSP ãµãŒããŒèšå®ã«è¡šç€ºãããå Žæã«ã€ã³ã©ã€ã³ã§çœ®æãããŸããã©ã¡ãã hook ããã»ã¹ããã³ MCP ãŸã㯠LSP ãµãŒããŒãµãããã»ã¹ã«ç°å¢å€æ°ãšããŠãšã¯ã¹ããŒããããŸãã
${CLAUDE_PLUGIN_ROOT}: ãã©ã°ã€ã³ã®ã€ã³ã¹ããŒã«ãã£ã¬ã¯ããªãžã®çµ¶å¯Ÿãã¹ããã©ã°ã€ã³ã«ãã³ãã«ãããã¹ã¯ãªããããã€ããªãèšå®ãã¡ã€ã«ãåç
§ããããã«äœ¿çšããŸãããã®ãã¹ã¯ãã©ã°ã€ã³ãæŽæ°ããããšå€æŽãããŸããåã®ããŒãžã§ã³ã®ãã£ã¬ã¯ããªã¯æŽæ°åŸçŽ 7 æ¥éãã£ã¹ã¯äžã«æ®ããŸããããããäžæçãªãã®ãšããŠæ±ããããã«ç¶æ
ãæžã蟌ãŸãªãã§ãã ããã
ãã©ã°ã€ã³ãã»ãã·ã§ã³äžã«æŽæ°ããããšãhook ã³ãã³ããmonitorsãMCP ãµãŒããŒãLSP ãµãŒããŒã¯åã®ããŒãžã§ã³ã®ãã¹ã䜿çšãç¶ããŸãã/reload-plugins ãå®è¡ããŠãhookãMCP ãµãŒããŒãLSP ãµãŒããŒãæ°ãããã¹ã«åãæ¿ããŸããmonitors ã¯ã»ãã·ã§ã³åèµ·åãå¿
èŠã§ãã
${CLAUDE_PLUGIN_DATA}: æŽæ°åŸãä¿æãããæ°žç¶ãã£ã¬ã¯ããªãnode_modules ãŸã㯠Python ä»®æ³ç°å¢ãªã©ã®ã€ã³ã¹ããŒã«æžã¿äŸåé¢ä¿ãçæãããã³ãŒãããã£ãã·ã¥ãããã³ãã©ã°ã€ã³ããŒãžã§ã³å
šäœã§ä¿æããå¿
èŠããããã®ä»ã®ãã¡ã€ã«ã«äœ¿çšããŸãããã®ãã£ã¬ã¯ããªã¯ããã®å€æ°ãæåã«åç
§ããããšãã«èªåçã«äœæãããŸãã
{
"hooks": {
"PostToolUse": [
{
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/scripts/process.sh"
}
]
}
]
}
}
æ°žç¶ããŒã¿ãã£ã¬ã¯ããª
${CLAUDE_PLUGIN_DATA} ãã£ã¬ã¯ããªã¯ ~/.claude/plugins/data/{id}/ ã«è§£æ±ºãããŸããããã§ {id} ã¯ãã©ã°ã€ã³èå¥åã§ãa-zãA-Zã0-9ã_ã- 以å€ã®æåã - ã«çœ®ãæããããŸããformatter@my-marketplace ãšããŠã€ã³ã¹ããŒã«ããããã©ã°ã€ã³ã®å Žåããã£ã¬ã¯ããªã¯ ~/.claude/plugins/data/formatter-my-marketplace/ ã§ãã
äžè¬çãªäœ¿çšæ³ã¯ãèšèªäŸåé¢ä¿ã 1 åã€ã³ã¹ããŒã«ããŠã»ãã·ã§ã³ãšãã©ã°ã€ã³æŽæ°å šäœã§åå©çšããããšã§ããããŒã¿ãã£ã¬ã¯ããªã¯åäžã®ãã©ã°ã€ã³ããŒãžã§ã³ããé·ãååšããããããã£ã¬ã¯ããªååšãã§ãã¯ã ãã§ã¯ãæŽæ°ããã©ã°ã€ã³ã®äŸåé¢ä¿ãããã§ã¹ãã倿Žãããšããæ€åºã§ããŸãããæšå¥šãã¿ãŒã³ã¯ãã³ãã«ããããããã§ã¹ããããŒã¿ãã£ã¬ã¯ããªã®ã³ããŒãšæ¯èŒããç°ãªãå Žåã¯åã€ã³ã¹ããŒã«ããŸãã
ãã® SessionStart hook ã¯æåã®å®è¡æã« node_modules ãã€ã³ã¹ããŒã«ãããã©ã°ã€ã³æŽæ°ã«å€æŽããã package.json ãå«ãŸãããã³ã«å床ã€ã³ã¹ããŒã«ããŸã:
{
"hooks": {
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "diff -q \"${CLAUDE_PLUGIN_ROOT}/package.json\" \"${CLAUDE_PLUGIN_DATA}/package.json\" >/dev/null 2>&1 || (cd \"${CLAUDE_PLUGIN_DATA}\" && cp \"${CLAUDE_PLUGIN_ROOT}/package.json\" . && npm install) || rm -f \"${CLAUDE_PLUGIN_DATA}/package.json\""
}
]
}
]
}
}
diff ã¯ä¿åãããã³ããŒãäžè¶³ããŠãããããã³ãã«ãããã³ããŒãšç°ãªãå Žåã«ãŒã以å€ã§çµäºããæåã®å®è¡ãšäŸåé¢ä¿å€æŽæŽæ°ã®äž¡æ¹ãã«ããŒããŸããnpm install ã倱æããå Žåãæ«å°Ÿã® rm ã¯ã³ããŒããããããã§ã¹ããåé€ããŠã次ã®ã»ãã·ã§ã³ãå詊è¡ããŸãã
${CLAUDE_PLUGIN_ROOT} ã«ãã³ãã«ãããã¹ã¯ãªããã¯ãæ°žç¶åããã node_modules ã«å¯ŸããŠå®è¡ã§ããŸã:
{
"mcpServers": {
"routines": {
"command": "node",
"args": ["${CLAUDE_PLUGIN_ROOT}/server.js"],
"env": {
"NODE_PATH": "${CLAUDE_PLUGIN_DATA}/node_modules"
}
}
}
}
ããŒã¿ãã£ã¬ã¯ããªã¯ãã€ã³ã¹ããŒã«ãããŠããæåŸã®ã¹ã³ãŒããããã©ã°ã€ã³ãã¢ã³ã€ã³ã¹ããŒã«ãããšãã«èªåçã«åé€ãããŸãã/plugin ã€ã³ã¿ãŒãã§ã€ã¹ã¯ãã£ã¬ã¯ããªãµã€ãºã衚瀺ããåé€åã«ããã³ããããŸããCLI ã¯ããã©ã«ãã§åé€ããŸãã--keep-dataãæž¡ããŠä¿æããŸãã
ãã©ã°ã€ã³ãã£ãã·ã³ã°ãšãã¡ã€ã«è§£æ±º
ãã©ã°ã€ã³ã¯ 2 ã€ã®æ¹æ³ã§æå®ãããŸã:
claude --plugin-dirãŸãã¯claude --plugin-urlãéããŠãã»ãã·ã§ã³ã®æéã- ããŒã±ãããã¬ã€ã¹ãéããŠãå°æ¥ã®ã»ãã·ã§ã³çšã«ã€ã³ã¹ããŒã«ã
ã»ãã¥ãªãã£ãšæ€èšŒã®ç®çã§ãClaude Code ã¯_ããŒã±ãããã¬ã€ã¹_ãã©ã°ã€ã³ããŠãŒã¶ãŒã®ããŒã«ã«ãã©ã°ã€ã³ãã£ãã·ã¥ïŒ~/.claude/plugins/cacheïŒã«ã³ããŒããŸããããããæå®ã®å Žæã§äœ¿çšããã®ã§ã¯ãªãããã®åäœãçè§£ããããšã¯ãå€éšãã¡ã€ã«ãåç
§ãããã©ã°ã€ã³ãéçºããéã«éèŠã§ãã
åã€ã³ã¹ããŒã«æžã¿ããŒãžã§ã³ã¯ãã£ãã·ã¥å ã®å¥ã®ãã£ã¬ã¯ããªã§ãããã©ã°ã€ã³ãæŽæ°ãŸãã¯ã¢ã³ã€ã³ã¹ããŒã«ãããšãåã®ããŒãžã§ã³ãã£ã¬ã¯ããªã¯å€ç«ãããã®ãšããŠããŒã¯ããã7 æ¥åŸã«èªåçã«åé€ãããŸããç¶äºæéã«ãããæ¢ã«å€ãããŒãžã§ã³ãèªã¿èŸŒãã åæå®è¡ Claude Code ã»ãã·ã§ã³ããšã©ãŒãªãå®è¡ãç¶ããããšãã§ããŸãã
Claude ã® Glob ããã³ Grep ããŒã«ã¯æ€çŽ¢äžã«å€ç«ããããŒãžã§ã³ãã£ã¬ã¯ããªãã¹ãããããããããã¡ã€ã«çµæã«ã¯å€ããã©ã°ã€ã³ã³ãŒããå«ãŸããŸããã
ãã¹ãã©ããŒãµã«å¶é
ã€ã³ã¹ããŒã«ããããã©ã°ã€ã³ã¯ãã£ã¬ã¯ããªã®å€åŽã®ãã¡ã€ã«ãåç
§ã§ããŸããããã©ã°ã€ã³ã«ãŒãã®å€åŽããã©ããŒã¹ãããã¹ïŒ../shared-utils ãªã©ïŒã¯ããããã®å€éšãã¡ã€ã«ããã£ãã·ã¥ã«ã³ããŒãããªããããã€ã³ã¹ããŒã«åŸã¯æ©èœããŸããã
å€éšäŸåé¢ä¿ã®æäœ
ãã©ã°ã€ã³ããã£ã¬ã¯ããªã®å€åŽã®ãã¡ã€ã«ã«ã¢ã¯ã»ã¹ããå¿ èŠãããå Žåããã©ã°ã€ã³ãã£ã¬ã¯ããªå ã®å€éšãã¡ã€ã«ãžã®ã·ã³ããªãã¯ãªã³ã¯ãäœæã§ããŸããã·ã³ããªãã¯ãªã³ã¯ã¯ãã£ãã·ã¥ã«ä¿æãããã®ã§ã¯ãªãéåç §ãããå®è¡æã«ãã®ã¿ãŒã²ããã«è§£æ±ºãããŸããæ¬¡ã®ã³ãã³ãã¯ãã©ã°ã€ã³ãã£ã¬ã¯ããªå ããå ±æãŠãŒãã£ãªãã£ã®å Žæãžã®ãªã³ã¯ãäœæããŸã:
ln -s /path/to/shared-utils ./shared-utils
ããã¯ãã£ãã·ã³ã°ã·ã¹ãã ã®ã»ãã¥ãªãã£äžã®å©ç¹ãç¶æããªããæè»æ§ãæäŸããŸãã
ãã©ã°ã€ã³ãã£ã¬ã¯ããªæ§é
æšæºãã©ã°ã€ã³ã¬ã€ã¢ãŠã
å®å šãªãã©ã°ã€ã³ã¯æ¬¡ã®æ§é ã«åŸããŸã:
enterprise-plugin/
âââ .claude-plugin/ # ã¡ã¿ããŒã¿ãã£ã¬ã¯ããªïŒãªãã·ã§ã³ïŒ
â âââ plugin.json # ãã©ã°ã€ã³ãããã§ã¹ã
âââ skills/ # Skills
â âââ code-reviewer/
â â âââ SKILL.md
â âââ pdf-processor/
â âââ SKILL.md
â âââ scripts/
âââ commands/ # ãã©ãã .md ãã¡ã€ã«ãšããŠã® Skills
â âââ status.md
â âââ logs.md
âââ agents/ # Subagent å®çŸ©
â âââ security-reviewer.md
â âââ performance-tester.md
â âââ compliance-checker.md
âââ output-styles/ # åºåã¹ã¿ã€ã«å®çŸ©
â âââ terse.md
âââ themes/ # ã«ã©ãŒããŒãå®çŸ©
â âââ dracula.json
âââ monitors/ # ããã¯ã°ã©ãŠã³ã monitor èšå®
â âââ monitors.json
âââ hooks/ # Hook èšå®
â âââ hooks.json # ã¡ã€ã³ hook èšå®
â âââ security-hooks.json # 远å hooks
âââ bin/ # PATH ã«è¿œå ããããã©ã°ã€ã³å®è¡å¯èœãã¡ã€ã«
â âââ my-tool # Bash tool ã§è£žã®ã³ãã³ããšããŠåŒã³åºãå¯èœ
âââ settings.json # ãã©ã°ã€ã³ã®ããã©ã«ãèšå®
âââ .mcp.json # MCP ãµãŒããŒå®çŸ©
âââ .lsp.json # LSP ãµãŒããŒèšå®
âââ scripts/ # Hook ãšãŠãŒãã£ãªãã£ã¹ã¯ãªãã
â âââ security-scan.sh
â âââ format-code.py
â âââ deploy.js
âââ LICENSE # ã©ã€ã»ã³ã¹ãã¡ã€ã«
âââ CHANGELOG.md # ããŒãžã§ã³å±¥æŽ
.claude-plugin/ ãã£ã¬ã¯ããªã¯ plugin.json ãã¡ã€ã«ãå«ã¿ãŸããä»ã®ãã¹ãŠã®ãã£ã¬ã¯ããªïŒcommands/ãagents/ãskills/ãoutput-styles/ãthemes/ãmonitors/ãhooks/ïŒã¯ .claude-plugin/ å
ã§ã¯ãªãããã©ã°ã€ã³ã«ãŒãã«ããå¿
èŠããããŸãã
ãã©ã°ã€ã³ã«ãŒãã® CLAUDE.md ãã¡ã€ã«ã¯ãããžã§ã¯ãã³ã³ããã¹ããšããŠèªã¿èŸŒãŸããŸããããã©ã°ã€ã³ã¯ CLAUDE.md ã§ã¯ãªããskillsãagentsãhooks ãéããŠã³ã³ããã¹ããæäŸããŸããClaude ã®ã³ã³ããã¹ãã«èªã¿èŸŒãŸããåœä»€ãé
åžããã«ã¯ãskill ã«é
眮ããŠãã ããã
ãã¡ã€ã«å Žæãªãã¡ã¬ã³ã¹
| ã³ã³ããŒãã³ã | ããã©ã«ãå Žæ | ç®ç |
|---|---|---|
| ãããã§ã¹ã | .claude-plugin/plugin.json |
ãã©ã°ã€ã³ã¡ã¿ããŒã¿ãšèšå®ïŒãªãã·ã§ã³ïŒ |
| Skills | skills/ |
<name>/SKILL.md æ§é ã® Skills |
| ã³ãã³ã | commands/ |
ãã©ãã Markdown ãã¡ã€ã«ãšããŠã® Skillsãæ°ãããã©ã°ã€ã³ã«ã¯ skills/ ãäœ¿çš |
| Agents | agents/ |
Subagent Markdown ãã¡ã€ã« |
| åºåã¹ã¿ã€ã« | output-styles/ |
åºåã¹ã¿ã€ã«å®çŸ© |
| ããŒã | themes/ |
ã«ã©ãŒããŒãå®çŸ© |
| Hooks | hooks/hooks.json |
Hook èšå® |
| MCP servers | .mcp.json |
MCP ãµãŒããŒå®çŸ© |
| LSP servers | .lsp.json |
èšèªãµãŒããŒèšå® |
| Monitors | monitors/monitors.json |
ããã¯ã°ã©ãŠã³ã monitor èšå® |
| å®è¡å¯èœãã¡ã€ã« | bin/ |
Bash tool ã® PATH ã«è¿œå ãããå®è¡å¯èœãã¡ã€ã«ãããã®ãã¡ã€ã«ã¯ãã©ã°ã€ã³ãæå¹ãªå Žåãä»»æã® Bash tool åŒã³åºãã§è£žã®ã³ãã³ããšããŠåŒã³åºãå¯èœ |
| èšå® | settings.json |
ãã©ã°ã€ã³ãæå¹ã«ãªã£ããšãã«é©çšãããããã©ã«ãèšå®ãçŸåšãagentããã³subagentStatusLineããŒã®ã¿ããµããŒããããŠããŸã |
CLI ã³ãã³ããªãã¡ã¬ã³ã¹
Claude Code ã¯é察話çãªãã©ã°ã€ã³ç®¡ççšã® CLI ã³ãã³ããæäŸããŸããã¹ã¯ãªãããšèªååã«åœ¹ç«ã¡ãŸãã
plugin install
å©çšå¯èœãªããŒã±ãããã¬ã€ã¹ãããã©ã°ã€ã³ãã€ã³ã¹ããŒã«ããŸãã
claude plugin install <plugin> [options]
åŒæ°:
<plugin>: ãã©ã°ã€ã³åãŸãã¯ç¹å®ã®ããŒã±ãããã¬ã€ã¹çšã®plugin-name@marketplace-name
ãªãã·ã§ã³:
| ãªãã·ã§ã³ | 説æ | ããã©ã«ã |
|---|---|---|
-s, --scope <scope> |
ã€ã³ã¹ããŒã«ã¹ã³ãŒã: userãprojectããŸã㯠local |
user |
-h, --help |
ã³ãã³ãã®ãã«ãã衚瀺 |
ã¹ã³ãŒãã¯ã€ã³ã¹ããŒã«ããããã©ã°ã€ã³ã远å ãããèšå®ãã¡ã€ã«ã決å®ããŸããããšãã°ã--scope project 㯠.claude/settings.json ã® enabledPlugins ã«æžã蟌ã¿ããããžã§ã¯ããªããžããªãã¯ããŒã³ããå
šå¡ããã©ã°ã€ã³ãå©çšã§ããããã«ããŸãã
äŸ:
# ãŠãŒã¶ãŒã¹ã³ãŒãã«ã€ã³ã¹ããŒã«ïŒããã©ã«ãïŒ
claude plugin install formatter@my-marketplace
# ãããžã§ã¯ãã¹ã³ãŒãã«ã€ã³ã¹ããŒã«ïŒããŒã ãšå
±æïŒ
claude plugin install formatter@my-marketplace --scope project
# ããŒã«ã«ã¹ã³ãŒãã«ã€ã³ã¹ããŒã«ïŒgitignoredïŒ
claude plugin install formatter@my-marketplace --scope local
plugin uninstall
ã€ã³ã¹ããŒã«æžã¿ãã©ã°ã€ã³ãåé€ããŸãã
claude plugin uninstall <plugin> [options]
åŒæ°:
<plugin>: ãã©ã°ã€ã³åãŸãã¯plugin-name@marketplace-name
ãªãã·ã§ã³:
| ãªãã·ã§ã³ | 説æ | ããã©ã«ã |
|---|---|---|
-s, --scope <scope> |
ã¹ã³ãŒãããã¢ã³ã€ã³ã¹ããŒã«: userãprojectããŸã㯠local |
user |
--keep-data |
ãã©ã°ã€ã³ã®æ°žç¶ããŒã¿ãã£ã¬ã¯ããªãä¿æ | |
--prune |
ä»ã®ãã©ã°ã€ã³ãå¿ èŠãšããªãèªåã€ã³ã¹ããŒã«äŸåé¢ä¿ãåé€ããŸããplugin prune ãåç §ããŠãã ãã | |
-y, --yes |
--prune 確èªããã³ãããã¹ãããããŸããstdin ã TTY ã§ãªãå Žåã¯å¿
é ã§ã |
|
-h, --help |
ã³ãã³ãã®ãã«ãã衚瀺 |
ãšã€ãªã¢ã¹: removeãrm
ããã©ã«ãã§ã¯ãæåŸã«æ®ã£ãŠããã¹ã³ãŒãããã¢ã³ã€ã³ã¹ããŒã«ãããšããã©ã°ã€ã³ã® ${CLAUDE_PLUGIN_DATA} ãã£ã¬ã¯ããªãåé€ãããŸããããšãã°ãæ°ããããŒãžã§ã³ããã¹ãããåŸã«åã€ã³ã¹ããŒã«ããå Žåã¯ã--keep-data ã䜿çšããŠä¿æããŸãã
plugin prune
ã€ã³ã¹ããŒã«æžã¿ãã©ã°ã€ã³ã«ãã£ãŠäžèŠã«ãªã£ãèªåã€ã³ã¹ããŒã« ãã©ã°ã€ã³äŸåé¢ä¿ãåé€ããŸããClaude Code ãå¥ã®ãã©ã°ã€ã³ã® dependencies ãã£ãŒã«ããæºããããã«ååŸããäŸåé¢ä¿ã¯åé€ãããŸããçŽæ¥ã€ã³ã¹ããŒã«ãããã©ã°ã€ã³ã¯æ±ºããŠåé€ãããŸããã
claude plugin prune [options]
ãªãã·ã§ã³:
| ãªãã·ã§ã³ | 説æ | ããã©ã«ã |
|---|---|---|
-s, --scope <scope> |
ã¹ã³ãŒãã§ãã«ãŒã³: userãprojectããŸã㯠local |
user |
--dry-run |
åé€ããããã®ããªã¹ãã¢ããããŸããå®éã«ã¯åé€ããŸãã | |
-y, --yes |
確èªããã³ãããã¹ãããããŸããstdin ã TTY ã§ãªãå Žåã¯å¿ é ã§ã | |
-h, --help |
ã³ãã³ãã®ãã«ãã衚瀺 |
ãšã€ãªã¢ã¹: autoremove
ãã®ã³ãã³ãã¯å€ç«ããäŸåé¢ä¿ããªã¹ãã¢ããããåé€ããåã«ç¢ºèªãæ±ããŸãããã©ã°ã€ã³ãåé€ãããã®äŸåé¢ä¿ãã¯ãªãŒã³ã¢ããããå Žåã¯ã1 ã¹ãããã§ claude plugin uninstall <plugin> --prune ãå®è¡ããŸãã
claude plugin prune ã«ã¯ Claude Code v2.1.121 以éãå¿
èŠã§ãã
plugin enable
ç¡å¹ãªãã©ã°ã€ã³ãæå¹ã«ããŸãã
claude plugin enable <plugin> [options]
åŒæ°:
<plugin>: ãã©ã°ã€ã³åãŸãã¯plugin-name@marketplace-name
ãªãã·ã§ã³:
| ãªãã·ã§ã³ | 説æ | ããã©ã«ã |
|---|---|---|
-s, --scope <scope> |
æå¹ã«ããã¹ã³ãŒã: userãprojectããŸã㯠local |
user |
-h, --help |
ã³ãã³ãã®ãã«ãã衚瀺 |
plugin disable
ãã©ã°ã€ã³ãã¢ã³ã€ã³ã¹ããŒã«ããã«ç¡å¹ã«ããŸãã
claude plugin disable <plugin> [options]
åŒæ°:
<plugin>: ãã©ã°ã€ã³åãŸãã¯plugin-name@marketplace-name
ãªãã·ã§ã³:
| ãªãã·ã§ã³ | 説æ | ããã©ã«ã |
|---|---|---|
-s, --scope <scope> |
ç¡å¹ã«ããã¹ã³ãŒã: userãprojectããŸã㯠local |
user |
-h, --help |
ã³ãã³ãã®ãã«ãã衚瀺 |
plugin update
ãã©ã°ã€ã³ãææ°ããŒãžã§ã³ã«æŽæ°ããŸãã
claude plugin update <plugin> [options]
åŒæ°:
<plugin>: ãã©ã°ã€ã³åãŸãã¯plugin-name@marketplace-name
ãªãã·ã§ã³:
| ãªãã·ã§ã³ | 説æ | ããã©ã«ã |
|---|---|---|
-s, --scope <scope> |
æŽæ°ããã¹ã³ãŒã: userãprojectãlocalããŸã㯠managed |
user |
-h, --help |
ã³ãã³ãã®ãã«ãã衚瀺 |
plugin list
ã€ã³ã¹ããŒã«æžã¿ãã©ã°ã€ã³ãããŒãžã§ã³ããœãŒã¹ããŒã±ãããã¬ã€ã¹ãæå¹ç¶æ ãšãšãã«ãªã¹ãããŸãã
claude plugin list [options]
ãªãã·ã§ã³:
| ãªãã·ã§ã³ | 説æ | ããã©ã«ã |
|---|---|---|
--json |
JSON ãšããŠåºå | |
--available |
ããŒã±ãããã¬ã€ã¹ããå©çšå¯èœãªãã©ã°ã€ã³ãå«ããŸãã--json ãå¿
èŠã§ã |
|
-h, --help |
ã³ãã³ãã®ãã«ãã衚瀺 |
plugin tag
çŸåšã®ãã£ã¬ã¯ããªå ã®ãã©ã°ã€ã³ã®ãªãªãŒã¹ git ã¿ã°ãäœæããŸãããã©ã°ã€ã³ã®ãã©ã«ãå ããå®è¡ããŠãã ããããã©ã°ã€ã³ãªãªãŒã¹ã«ã¿ã°ãä»ãããåç §ããŠãã ããã
claude plugin tag [options]
ãªãã·ã§ã³:
| ãªãã·ã§ã³ | 説æ | ããã©ã«ã |
|---|---|---|
--push |
ã¿ã°ãäœæããåŸããªã¢ãŒãã«ããã·ã¥ããŸã | |
--dry-run |
ã¿ã°ãäœæããã«ãã¿ã°ä»ããããå 容ãåºåããŸã | |
-f, --force |
ã¯ãŒãã³ã°ããªãŒãããŒãã£ã§ããããã¿ã°ãæ¢ã«ååšããå Žåã§ãã¿ã°ãäœæããŸã | |
-h, --help |
ã³ãã³ãã®ãã«ãã衚瀺 |
ãããã°ãšéçºããŒã«
ãããã°ã³ãã³ã
claude --debug ã䜿çšããŠãã©ã°ã€ã³èªã¿èŸŒã¿ã®è©³çްã確èªããŸã:
ããã¯ä»¥äžã衚瀺ããŸã:
- ã©ã®ãã©ã°ã€ã³ãèªã¿èŸŒãŸããŠããã
- ãã©ã°ã€ã³ãããã§ã¹ãã®ãšã©ãŒ
- Skillãagentãhook ç»é²
- MCP ãµãŒããŒåæå
äžè¬çãªåé¡
| åé¡ | åå | 解決ç |
|---|---|---|
| ãã©ã°ã€ã³ãèªã¿èŸŒãŸããªã | ç¡å¹ãª plugin.json |
claude plugin validate ãŸã㯠/plugin validate ã§ plugin.jsonãskill/agent/command frontmatterãhooks/hooks.json ã®æ§æãšã¹ããŒããç¢ºèª |
| Skills ã衚瀺ãããªã | ãã£ã¬ã¯ããªæ§é ãééã£ãŠãã | skills/ ãŸã㯠commands/ ããã©ã°ã€ã³ã«ãŒãã«ããããšã確èªã.claude-plugin/ å
ã§ã¯ãªã |
| Hooks ãçºç«ããªã | ã¹ã¯ãªãããå®è¡å¯èœã§ãªã | chmod +x script.sh ãå®è¡ |
| MCP ãµãŒããŒã倱æ | ${CLAUDE_PLUGIN_ROOT} ãäžè¶³ |
ãã¹ãŠã®ãã©ã°ã€ã³ãã¹ã«å€æ°ãäœ¿çš |
| ãã¹ãšã©ãŒ | 絶察ãã¹ã䜿çšãããŠãã | ãã¹ãŠã®ãã¹ã¯çžå¯Ÿçã§ ./ ã§å§ãŸãå¿
èŠããããŸã |
LSP Executable not found in $PATH |
èšèªãµãŒããŒãã€ã³ã¹ããŒã«ãããŠããªã | ãã€ããªãã€ã³ã¹ããŒã«ïŒäŸ: npm install -g typescript-language-server typescriptïŒ |
ãšã©ãŒã¡ãã»ãŒãžã®äŸ
ãããã§ã¹ãæ€èšŒãšã©ãŒ:
Invalid JSON syntax: Unexpected token } in JSON at position 142: ã³ã³ãã®æ¬ èœãäœåãªã³ã³ãããŸãã¯ã¯ã©ãŒããããŠããªãæååã確èªPlugin has an invalid manifest file at .claude-plugin/plugin.json. Validation errors: name: Required: å¿ é ãã£ãŒã«ããäžè¶³Plugin has a corrupt manifest file at .claude-plugin/plugin.json. JSON parse error: ...: JSON æ§æãšã©ãŒ
ãã©ã°ã€ã³èªã¿èŸŒã¿ãšã©ãŒ:
Warning: No commands found in plugin my-plugin custom directory: ./cmds. Expected .md files or SKILL.md in subdirectories.: ã³ãã³ããã¹ãååšãããæå¹ãªã³ãã³ããã¡ã€ã«ãå«ãŸããŠããªãPlugin directory not found at path: ./plugins/my-plugin. Check that the marketplace entry has the correct path.: marketplace.json ã®sourceãã¹ãååšããªããã£ã¬ã¯ããªãæããŠããPlugin my-plugin has conflicting manifests: both plugin.json and marketplace entry specify components.: éè€ããã³ã³ããŒãã³ãå®çŸ©ãåé€ããããmarketplace ãšã³ããªããstrict: falseãåé€
Hook ãã©ãã«ã·ã¥ãŒãã£ã³ã°
Hook ã¹ã¯ãªãããå®è¡ãããªã:
- ã¹ã¯ãªãããå®è¡å¯èœã§ããããšã確èª:
chmod +x ./scripts/your-script.sh - shebang è¡ã確èª: æåã®è¡ã¯
#!/bin/bashãŸãã¯#!/usr/bin/env bashã§ããå¿ èŠããããŸã - ãã¹ã
${CLAUDE_PLUGIN_ROOT}ã䜿çšããŠããããšã確èª:"command": "${CLAUDE_PLUGIN_ROOT}/scripts/your-script.sh" - ã¹ã¯ãªãããæåã§ãã¹ã:
./scripts/your-script.sh
Hook ãäºæãããã€ãã³ãã§ããªã¬ãŒãããªã:
- ã€ãã³ãåãæ£ããããšã確èªïŒå€§æåå°æåãåºå¥ïŒ:
PostToolUseãpostToolUseã§ã¯ãªã - ãããã£ãŒãã¿ãŒã³ãããŒã«ãšäžèŽããããšã確èª: ãã¡ã€ã«æäœã®å Žå
"matcher": "Write|Edit" - hook ã¿ã€ããæå¹ã§ããããšã確èª:
commandãhttpãmcp_toolãpromptããŸãã¯agent
MCP ãµãŒããŒãã©ãã«ã·ã¥ãŒãã£ã³ã°
ãµãŒããŒãèµ·åããªã:
- ã³ãã³ããååšããå®è¡å¯èœã§ããããšã確èª
- ãã¹ãŠã®ãã¹ã
${CLAUDE_PLUGIN_ROOT}倿°ã䜿çšããŠããããšãç¢ºèª - MCP ãµãŒããŒãã°ã確èª:
claude --debugã¯åæåãšã©ãŒã衚瀺 - Claude Code ã®å€éšã§ãµãŒããŒãæåã§ãã¹ã
ãµãŒããŒããŒã«ã衚瀺ãããªã:
- ãµãŒããŒã
.mcp.jsonãŸãã¯plugin.jsonã§æ£ããèšå®ãããŠããããšãç¢ºèª - ãµãŒããŒã MCP ãããã³ã«ãæ£ããå®è£ ããŠããããšã確èª
- ãããã°åºåã§æ¥ç¶ã¿ã€ã ã¢ãŠãã確èª
ãã£ã¬ã¯ããªæ§é ã®ééã
çç¶: ãã©ã°ã€ã³ã¯èªã¿èŸŒãŸãããã³ã³ããŒãã³ãïŒskillsãagentsãhooksïŒãäžè¶³ããŠããã
æ£ããæ§é : ã³ã³ããŒãã³ãã¯ãã©ã°ã€ã³ã«ãŒãã«ããå¿
èŠãããã.claude-plugin/ å
ã§ã¯ãããŸããã.claude-plugin/ ã«ã¯ plugin.json ã®ã¿ãå±ããŸãã
my-plugin/
âââ .claude-plugin/
â âââ plugin.json â ãããã§ã¹ãã®ã¿ãã
âââ commands/ â ã«ãŒãã¬ãã«
âââ agents/ â ã«ãŒãã¬ãã«
âââ hooks/ â ã«ãŒãã¬ãã«
ã³ã³ããŒãã³ãã .claude-plugin/ å
ã«ããå Žåã¯ããã©ã°ã€ã³ã«ãŒãã«ç§»åããŠãã ããã
ãããã°ãã§ãã¯ãªã¹ã:
claude --debugãå®è¡ãããloading pluginãã¡ãã»ãŒãžãæ¢ã- åã³ã³ããŒãã³ããã£ã¬ã¯ããªããããã°åºåã«ãªã¹ããããŠããããšã確èª
- ãã©ã°ã€ã³ãã¡ã€ã«ãèªã¿åãããšãã§ãããã¡ã€ã«ããŒããã·ã§ã³ã確èª
é åžãšããŒãžã§ã³ç®¡çãªãã¡ã¬ã³ã¹
ããŒãžã§ã³ç®¡ç
Claude Code ã¯ãã©ã°ã€ã³ã®ããŒãžã§ã³ããã£ãã·ã¥ããŒãšããŠäœ¿çšããæŽæ°ãå©çšå¯èœãã©ããã倿ããŸãã/plugin update ãå®è¡ãããèªåæŽæ°ãå®è¡ããããšãClaude Code ã¯çŸåšã®ããŒãžã§ã³ãèšç®ããæ¢ã«ã€ã³ã¹ããŒã«ãããŠãããã®ãšäžèŽããå Žåã¯æŽæ°ãã¹ãããããŸãã
ããŒãžã§ã³ã¯ãèšå®ãããŠããæåã®ãã®ãã解決ãããŸãïŒ
- ãã©ã°ã€ã³ã®
plugin.jsonã®versionãã£ãŒã«ã marketplace.jsonã®ãã©ã°ã€ã³ã®ããŒã±ãããã¬ã€ã¹ãšã³ããªã®versionãã£ãŒã«ã- git ã§ãã¹ããããŠããããŒã±ãããã¬ã€ã¹ã®
githubãurlãgit-subdirãããã³çžå¯Ÿãã¹ãœãŒã¹ã®ãã©ã°ã€ã³ãœãŒã¹ã® git ã³ããã SHA - npm ãœãŒã¹ãŸã㯠git ãªããžããªå
ã«ãªãããŒã«ã«ãã£ã¬ã¯ããªã®å Žåã¯
unknown
ããã«ããããã©ã°ã€ã³ãããŒãžã§ã³ç®¡çãã 2 ã€ã®æ¹æ³ãæäŸãããŸãïŒ
| ã¢ãããŒã | æ¹æ³ | æŽæ°åäœ | æé©ãªçšé |
|---|---|---|---|
| æç€ºçããŒãžã§ã³ | plugin.json ã§ "version": "2.1.0" ãèšå® |
ãŠãŒã¶ãŒã¯ãã®ãã£ãŒã«ãããã³ãããå Žåã®ã¿æŽæ°ãååŸããŸããæ°ããã³ããããããã·ã¥ããŠããã³ãããªãå Žåã¯å¹æããªãã/plugin update ã¯ãæ¢ã«ææ°ããŒãžã§ã³ã§ãããšå ±åããŸãã |
å®å®ãããªãªãŒã¹ãµã€ã¯ã«ãæã€å ¬éãã©ã°ã€ã³ |
| ã³ããã SHA ããŒãžã§ã³ | plugin.json ãšããŒã±ãããã¬ã€ã¹ãšã³ããªã®äž¡æ¹ãã version ãçç¥ |
ãŠãŒã¶ãŒã¯ãã©ã°ã€ã³ã® git ãœãŒã¹ãžã®æ°ããã³ãããã®ãã³ã«æŽæ°ãååŸããŸã | ç©æ¥µçã«éçºäžã®å éšãŸãã¯ããŒã ãã©ã°ã€ã³ |
plugin.json ã§ version ãèšå®ããå ŽåããŠãŒã¶ãŒã倿Žãåãåããã³ã«ãã³ãããå¿
èŠããããŸããæ°ããã³ããããããã·ã¥ããã ãã§ã¯äžååã§ããClaude Code ã¯åãããŒãžã§ã³æååãèªèãããã£ãã·ã¥ãããã³ããŒãä¿æããããã§ããè¿
éã«å埩ããŠããå Žåã¯ãversion ãèšå®ããªããŸãŸã«ããŠã代ããã« git ã³ããã SHA ã䜿çšãããããã«ããŠãã ããã
æç€ºçãªããŒãžã§ã³ã䜿çšããå Žåã¯ãsemantic versioningïŒMAJOR.MINOR.PATCHïŒã«åŸã£ãŠãã ããïŒç Žå£ç倿Žã®å Žå㯠MAJOR ããã³ãããæ°æ©èœã®å Žå㯠MINOR ããã³ããããã°ä¿®æ£ã®å Žå㯠PATCH ããã³ãããŠãã ãããCHANGELOG.md ã§å€æŽãææžåããŠãã ããã
é¢é£é ç®
- ãã©ã°ã€ã³ - ãã¥ãŒããªã¢ã«ãšå®è·µçãªäœ¿çšæ³
- ãã©ã°ã€ã³ããŒã±ãããã¬ã€ã¹ - ããŒã±ãããã¬ã€ã¹ã®äœæãšç®¡ç
- Skills - Skill éçºã®è©³çް
- Subagents - ãšãŒãžã§ã³ãèšå®ãšæ©èœ
- Hooks - ã€ãã³ãåŠçãšèªåå
- MCP - å€éšããŒã«çµ±å
- èšå® - ãã©ã°ã€ã³ã®èšå®ãªãã·ã§ã³