claude-setup 1.1.3 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +111 -46
- package/dist/builder.js +94 -29
- package/dist/commands/add.js +14 -3
- package/dist/commands/compare.d.ts +1 -0
- package/dist/commands/compare.js +84 -0
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.js +1 -1
- package/dist/commands/export.d.ts +25 -0
- package/dist/commands/export.js +289 -0
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.js +45 -9
- package/dist/commands/remove.js +14 -3
- package/dist/commands/restore.d.ts +1 -0
- package/dist/commands/restore.js +61 -0
- package/dist/commands/status.js +189 -16
- package/dist/commands/sync.d.ts +1 -0
- package/dist/commands/sync.js +71 -8
- package/dist/doctor.d.ts +1 -1
- package/dist/doctor.js +307 -59
- package/dist/index.js +28 -3
- package/dist/manifest.d.ts +12 -0
- package/dist/manifest.js +2 -0
- package/dist/marketplace.d.ts +21 -0
- package/dist/marketplace.js +159 -0
- package/dist/os.js +5 -0
- package/dist/snapshot.d.ts +71 -0
- package/dist/snapshot.js +195 -0
- package/dist/tokens.d.ts +58 -0
- package/dist/tokens.js +132 -0
- package/package.json +49 -49
- package/templates/add.md +122 -3
- package/templates/init-empty.md +58 -1
- package/templates/init.md +53 -16
- package/templates/remove.md +27 -2
- package/templates/sync.md +20 -1
package/package.json
CHANGED
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "claude-setup",
|
|
3
|
-
"version": "1.1.
|
|
4
|
-
"description": "Setup layer for Claude Code — reads your project, writes command files, Claude Code does the rest",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"bin": {
|
|
7
|
-
"claude-setup": "./dist/index.js"
|
|
8
|
-
},
|
|
9
|
-
"scripts": {
|
|
10
|
-
"build": "tsc",
|
|
11
|
-
"dev": "tsc --watch",
|
|
12
|
-
"prepublishOnly": "tsc"
|
|
13
|
-
},
|
|
14
|
-
"files": [
|
|
15
|
-
"dist",
|
|
16
|
-
"templates"
|
|
17
|
-
],
|
|
18
|
-
"keywords": [
|
|
19
|
-
"claude",
|
|
20
|
-
"claude-code",
|
|
21
|
-
"cli",
|
|
22
|
-
"developer-tools",
|
|
23
|
-
"ai",
|
|
24
|
-
"anthropic",
|
|
25
|
-
"automation",
|
|
26
|
-
"scaffolding",
|
|
27
|
-
"project-setup",
|
|
28
|
-
"mcp",
|
|
29
|
-
"npx"
|
|
30
|
-
],
|
|
31
|
-
"author": "AbdoKnbGit",
|
|
32
|
-
"license": "MIT",
|
|
33
|
-
"repository": {
|
|
34
|
-
"type": "git",
|
|
35
|
-
"url": "git+https://github.com/AbdoKnbGit/claude-setup.git"
|
|
36
|
-
},
|
|
37
|
-
"homepage": "https://github.com/AbdoKnbGit/claude-setup#readme",
|
|
38
|
-
"bugs": {
|
|
39
|
-
"url": "https://github.com/AbdoKnbGit/claude-setup/issues"
|
|
40
|
-
},
|
|
41
|
-
"dependencies": {
|
|
42
|
-
"commander": "^12.1.0",
|
|
43
|
-
"glob": "^11.0.0"
|
|
44
|
-
},
|
|
45
|
-
"devDependencies": {
|
|
46
|
-
"@types/node": "^22.0.0",
|
|
47
|
-
"typescript": "^5.6.0"
|
|
48
|
-
}
|
|
49
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "claude-setup",
|
|
3
|
+
"version": "1.1.4",
|
|
4
|
+
"description": "Setup layer for Claude Code — reads your project, writes command files, Claude Code does the rest",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"claude-setup": "./dist/index.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "tsc",
|
|
11
|
+
"dev": "tsc --watch",
|
|
12
|
+
"prepublishOnly": "tsc"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist",
|
|
16
|
+
"templates"
|
|
17
|
+
],
|
|
18
|
+
"keywords": [
|
|
19
|
+
"claude",
|
|
20
|
+
"claude-code",
|
|
21
|
+
"cli",
|
|
22
|
+
"developer-tools",
|
|
23
|
+
"ai",
|
|
24
|
+
"anthropic",
|
|
25
|
+
"automation",
|
|
26
|
+
"scaffolding",
|
|
27
|
+
"project-setup",
|
|
28
|
+
"mcp",
|
|
29
|
+
"npx"
|
|
30
|
+
],
|
|
31
|
+
"author": "AbdoKnbGit",
|
|
32
|
+
"license": "MIT",
|
|
33
|
+
"repository": {
|
|
34
|
+
"type": "git",
|
|
35
|
+
"url": "git+https://github.com/AbdoKnbGit/claude-setup.git"
|
|
36
|
+
},
|
|
37
|
+
"homepage": "https://github.com/AbdoKnbGit/claude-setup#readme",
|
|
38
|
+
"bugs": {
|
|
39
|
+
"url": "https://github.com/AbdoKnbGit/claude-setup/issues"
|
|
40
|
+
},
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"commander": "^12.1.0",
|
|
43
|
+
"glob": "^11.0.0"
|
|
44
|
+
},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"@types/node": "^22.0.0",
|
|
47
|
+
"typescript": "^5.6.0"
|
|
48
|
+
}
|
|
49
|
+
}
|
package/templates/add.md
CHANGED
|
@@ -24,14 +24,133 @@ Add to Claude Code setup: "{{USER_INPUT}}"
|
|
|
24
24
|
|
|
25
25
|
Skills: {{SKILLS_LIST}} | Commands: {{COMMANDS_LIST}}
|
|
26
26
|
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
{{MARKETPLACE_INSTRUCTIONS}}
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## What you must actually do
|
|
34
|
+
|
|
35
|
+
Parse the user's request and take ALL applicable actions:
|
|
36
|
+
|
|
37
|
+
### 1. MCP servers
|
|
38
|
+
If the request mentions an external service (database, API, browser, etc.):
|
|
39
|
+
- Check the verified MCP package list below
|
|
40
|
+
- If found: add to `.mcp.json` with OS-correct format (detected: {{DETECTED_OS}})
|
|
41
|
+
- Use `${VARNAME}` syntax for all credentials — NEVER hardcode
|
|
42
|
+
- Document new env vars in `.env.example`
|
|
43
|
+
|
|
44
|
+
Verified MCP packages — ONLY use these for MCP servers:
|
|
45
|
+
```
|
|
46
|
+
playwright → @playwright/mcp@latest
|
|
47
|
+
postgres → @modelcontextprotocol/server-postgres
|
|
48
|
+
filesystem → @modelcontextprotocol/server-filesystem
|
|
49
|
+
memory → @modelcontextprotocol/server-memory
|
|
50
|
+
github → @modelcontextprotocol/server-github
|
|
51
|
+
brave → @modelcontextprotocol/server-brave-search
|
|
52
|
+
puppeteer → @modelcontextprotocol/server-puppeteer
|
|
53
|
+
slack → @modelcontextprotocol/server-slack
|
|
54
|
+
sqlite → @modelcontextprotocol/server-sqlite
|
|
55
|
+
stripe → @stripe/mcp@latest
|
|
56
|
+
redis → @modelcontextprotocol/server-redis
|
|
57
|
+
mysql → @benborla29/mcp-server-mysql
|
|
58
|
+
mongodb → mcp-mongo-server
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
{{#if HAS_MCP_JSON}}
|
|
62
|
+
MCP format — merge into existing .mcp.json:
|
|
63
|
+
{{else}}
|
|
64
|
+
MCP format — create new .mcp.json:
|
|
65
|
+
{{/if}}
|
|
66
|
+
{{#if IS_WINDOWS}}
|
|
67
|
+
```json
|
|
68
|
+
{
|
|
69
|
+
"mcpServers": {
|
|
70
|
+
"server-name": {
|
|
71
|
+
"command": "cmd",
|
|
72
|
+
"args": ["/c", "npx", "-y", "<package>"],
|
|
73
|
+
"env": {
|
|
74
|
+
"API_KEY": "${API_KEY}"
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
{{else}}
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"mcpServers": {
|
|
84
|
+
"server-name": {
|
|
85
|
+
"command": "npx",
|
|
86
|
+
"args": ["-y", "<package>"],
|
|
87
|
+
"env": {
|
|
88
|
+
"API_KEY": "${API_KEY}"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
{{/if}}
|
|
95
|
+
|
|
96
|
+
### 2. Skills
|
|
97
|
+
If the request mentions skills or capabilities:
|
|
98
|
+
- Create `.claude/skills/<name>/SKILL.md` with proper frontmatter
|
|
99
|
+
- Use `description:` so Claude knows when to load the skill
|
|
100
|
+
- Search the marketplace for matching pre-built skills (see above)
|
|
101
|
+
|
|
102
|
+
Skill format:
|
|
103
|
+
```yaml
|
|
104
|
+
---
|
|
105
|
+
name: skill-name
|
|
106
|
+
description: What this skill does
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
Instructions...
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### 3. Hooks
|
|
113
|
+
If the request implies automated actions (formatting, building, notifications):
|
|
114
|
+
- Add to `.claude/settings.json` using the CORRECT hooks format
|
|
115
|
+
- Verify the tool exists before adding a hook for it
|
|
116
|
+
|
|
117
|
+
Correct hooks format:
|
|
118
|
+
```json
|
|
119
|
+
{
|
|
120
|
+
"hooks": {
|
|
121
|
+
"PostToolUse": [
|
|
122
|
+
{
|
|
123
|
+
"matcher": "Edit|Write",
|
|
124
|
+
"hooks": [
|
|
125
|
+
{
|
|
126
|
+
"type": "command",
|
|
127
|
+
"command": "<shell command>"
|
|
128
|
+
}
|
|
129
|
+
]
|
|
130
|
+
}
|
|
131
|
+
]
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### 4. Plugins
|
|
137
|
+
If the request matches a marketplace category or SaaS platform:
|
|
138
|
+
- Suggest the relevant plugin with install commands
|
|
139
|
+
- Show the user exactly how to install it
|
|
140
|
+
|
|
141
|
+
### 5. CLAUDE.md
|
|
142
|
+
Document any new capabilities, services, or patterns added.
|
|
143
|
+
|
|
27
144
|
## Rules
|
|
28
145
|
- Read current content above before writing. Merge/append only.
|
|
29
146
|
- If request mentions something not evidenced in project files: ask first.
|
|
30
|
-
- OS detected: {{DETECTED_OS}}. Use correct command format for MCP/hooks
|
|
31
|
-
- Windows: `{ "command": "cmd", "args": ["/c", "npx", "<pkg>"] }`
|
|
32
|
-
- macOS/Linux: `{ "command": "npx", "args": ["<pkg>"] }`
|
|
147
|
+
- OS detected: {{DETECTED_OS}}. Use correct command format for MCP/hooks.
|
|
33
148
|
- All env var refs use `${VARNAME}` syntax. Document new vars in .env.example.
|
|
149
|
+
- **NEVER write a "model" key into settings.json**
|
|
150
|
+
- Produce valid JSON only.
|
|
34
151
|
|
|
35
152
|
## Output — one line per file
|
|
36
153
|
Updated: ✅ [path] — [what and why]
|
|
154
|
+
Created: ✅ [path] — [what and why]
|
|
37
155
|
Skipped: ⏭ [path] — [why not needed for this request]
|
|
156
|
+
Suggested: 📦 [plugin name] — install with: /plugin install [name]@[marketplace]
|
package/templates/init-empty.md
CHANGED
|
@@ -24,12 +24,69 @@ If they gave no language: write a language-agnostic CLAUDE.md about the product
|
|
|
24
24
|
**.mcp.json**
|
|
25
25
|
Only for services they explicitly mentioned or obviously required for their product type.
|
|
26
26
|
If they said "not sure": do not create this file.
|
|
27
|
+
If they mentioned a database, payment system, or external API, create .mcp.json.
|
|
28
|
+
|
|
29
|
+
Use OS-correct format (detected: {{DETECTED_OS}}):
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"mcpServers": {
|
|
33
|
+
"server-name": {
|
|
34
|
+
"command": "npx",
|
|
35
|
+
"args": ["-y", "@package/name"],
|
|
36
|
+
"env": {
|
|
37
|
+
"API_KEY": "${API_KEY}"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
Windows format: use `"command": "cmd", "args": ["/c", "npx", "-y", "@package/name"]`
|
|
44
|
+
|
|
45
|
+
Verified MCP packages:
|
|
46
|
+
- postgres → @modelcontextprotocol/server-postgres
|
|
47
|
+
- mysql → @benborla29/mcp-server-mysql
|
|
48
|
+
- mongodb → mcp-mongo-server
|
|
49
|
+
- redis → @modelcontextprotocol/server-redis
|
|
50
|
+
- stripe → @stripe/mcp@latest
|
|
51
|
+
- github → @modelcontextprotocol/server-github
|
|
52
|
+
- filesystem → @modelcontextprotocol/server-filesystem
|
|
53
|
+
- memory → @modelcontextprotocol/server-memory
|
|
54
|
+
- playwright → @playwright/mcp@latest
|
|
27
55
|
|
|
28
56
|
**.claude/settings.json**
|
|
29
57
|
Only if the product type they described has clear patterns that benefit from hooks.
|
|
58
|
+
Use the CORRECT hooks format:
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"hooks": {
|
|
62
|
+
"PostToolUse": [
|
|
63
|
+
{
|
|
64
|
+
"matcher": "Edit|Write",
|
|
65
|
+
"hooks": [
|
|
66
|
+
{
|
|
67
|
+
"type": "command",
|
|
68
|
+
"command": "<shell command>"
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
**NEVER write a "model" key** — it overrides the user's model selection.
|
|
77
|
+
**Before adding a build hook**, verify the tool is installed first.
|
|
30
78
|
|
|
31
79
|
**.claude/skills/**
|
|
32
|
-
Only if the product domain has patterns worth capturing.
|
|
80
|
+
Only if the product domain has patterns worth capturing. Each skill needs:
|
|
81
|
+
```
|
|
82
|
+
.claude/skills/<name>/SKILL.md
|
|
83
|
+
```
|
|
84
|
+
With frontmatter: `---\nname: ...\ndescription: ...\n---`
|
|
85
|
+
Empty is fine for a fresh start.
|
|
86
|
+
|
|
87
|
+
**.claude/commands/**
|
|
88
|
+
Create project-appropriate commands based on what the user described.
|
|
89
|
+
For example: /dev, /build, /test, /deploy — but only if the stack warrants them.
|
|
33
90
|
|
|
34
91
|
**.github/workflows/**
|
|
35
92
|
Only if they mentioned CI, deployment, or a specific hosting platform.
|
package/templates/init.md
CHANGED
|
@@ -32,20 +32,15 @@ CLAUDE.md → does not exist (create it)
|
|
|
32
32
|
{{MCP_JSON_CONTENT}}
|
|
33
33
|
|
|
34
34
|
OS detected: {{DETECTED_OS}}. Use correct MCP command format:
|
|
35
|
-
- Windows: `{ "command": "cmd", "args": ["/c", "npx", "<package>"] }`
|
|
36
|
-
- macOS/Linux: `{ "command": "npx", "args": ["<package>"] }`
|
|
35
|
+
- Windows: `{ "command": "cmd", "args": ["/c", "npx", "-y", "<package>"] }`
|
|
36
|
+
- macOS/Linux: `{ "command": "npx", "args": ["-y", "<package>"] }`
|
|
37
37
|
{{else}}
|
|
38
|
-
.mcp.json → does not exist (create
|
|
38
|
+
.mcp.json → does not exist (create if you find evidence of external services in deps, docker-compose, or env vars)
|
|
39
39
|
{{/if}}
|
|
40
40
|
|
|
41
41
|
{{#if HAS_SETTINGS}}
|
|
42
42
|
### .claude/settings.json — EXISTS — merge only, never remove existing hooks
|
|
43
43
|
{{SETTINGS_CONTENT}}
|
|
44
|
-
|
|
45
|
-
Hook shell format for {{DETECTED_OS}}:
|
|
46
|
-
- Windows: `{ "command": "cmd", "args": ["/c", "<command>"] }`
|
|
47
|
-
- macOS/Linux: `{ "command": "bash", "args": ["-c", "<command>"] }`
|
|
48
|
-
- Bash quoting rule: never use bare `"` inside `-c "..."` — use `\x22` instead
|
|
49
44
|
{{else}}
|
|
50
45
|
settings.json → does not exist (create only if hooks are warranted)
|
|
51
46
|
{{/if}}
|
|
@@ -70,21 +65,63 @@ actual conventions from the code. Generic advice belongs in docs, not here.
|
|
|
70
65
|
If it exists: read it above first. Add only what is genuinely missing. Never remove.
|
|
71
66
|
|
|
72
67
|
### .mcp.json
|
|
73
|
-
|
|
74
|
-
|
|
68
|
+
Create if you found evidence of external services in: dependencies, docker-compose services,
|
|
69
|
+
env vars (DATABASE_URL, REDIS_URL, STRIPE_KEY, etc.), or import statements (pg, mysql2, mongoose, redis, stripe).
|
|
75
70
|
If it exists: add to it. Never remove existing entries. Produce valid JSON.
|
|
76
|
-
Use OS-correct command format (see above).
|
|
71
|
+
Use OS-correct command format (see above). Always include `-y` in npx args.
|
|
72
|
+
All credentials use `${VARNAME}` syntax — NEVER hardcode connection strings.
|
|
77
73
|
|
|
78
|
-
### .claude/settings.json
|
|
74
|
+
### .claude/settings.json — CORRECT HOOKS FORMAT
|
|
79
75
|
Only if hooks genuinely earn their cost for this specific project.
|
|
80
76
|
Every hook adds overhead on every Claude Code action.
|
|
77
|
+
|
|
78
|
+
**Use this exact format:**
|
|
79
|
+
```json
|
|
80
|
+
{
|
|
81
|
+
"hooks": {
|
|
82
|
+
"PostToolUse": [
|
|
83
|
+
{
|
|
84
|
+
"matcher": "Edit|Write",
|
|
85
|
+
"hooks": [
|
|
86
|
+
{
|
|
87
|
+
"type": "command",
|
|
88
|
+
"command": "<shell command here>"
|
|
89
|
+
}
|
|
90
|
+
]
|
|
91
|
+
}
|
|
92
|
+
]
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Before adding a build hook**, verify the tool is installed:
|
|
98
|
+
- Wrap with existence check: `command -v mvn && mvn compile -q`
|
|
99
|
+
- If not installed: skip the hook and warn the user
|
|
100
|
+
- NEVER add a hook for a tool that doesn't exist
|
|
101
|
+
|
|
102
|
+
**NEVER write a `"model"` key** — it overrides the user's model selection.
|
|
103
|
+
|
|
81
104
|
If it exists: add to it. Never remove existing hooks.
|
|
82
|
-
Use OS-correct shell format
|
|
105
|
+
Use OS-correct shell format.
|
|
83
106
|
|
|
84
107
|
### .claude/skills/
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
108
|
+
Create skills for patterns that recur across this codebase and benefit from automatic loading.
|
|
109
|
+
Each skill must be a directory with SKILL.md:
|
|
110
|
+
```
|
|
111
|
+
.claude/skills/<name>/SKILL.md
|
|
112
|
+
```
|
|
113
|
+
With frontmatter:
|
|
114
|
+
```yaml
|
|
115
|
+
---
|
|
116
|
+
name: skill-name
|
|
117
|
+
description: When to use this skill
|
|
118
|
+
---
|
|
119
|
+
Instructions...
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### .claude/commands/
|
|
123
|
+
Create project-specific commands for multi-step workflows developers repeat.
|
|
124
|
+
Based on what you find in scripts, Makefile, README, docker-compose.
|
|
88
125
|
|
|
89
126
|
### .github/workflows/
|
|
90
127
|
Only if .github/ exists ({{HAS_GITHUB_DIR}}).
|
package/templates/remove.md
CHANGED
|
@@ -30,8 +30,32 @@ Before removing anything, scan these locations directly:
|
|
|
30
30
|
- Skills : `.claude/skills/*/SKILL.md`, `.claude/skills/*.md`, `.claude/skills/**/*.md`
|
|
31
31
|
- Commands : `.claude/commands/*.md` (exclude stack-*.md)
|
|
32
32
|
- MCP : read `.mcp.json` directly
|
|
33
|
-
- Hooks : read `.claude/settings.json`
|
|
33
|
+
- Hooks : read `.claude/settings.json` → look inside the `"hooks"` key
|
|
34
34
|
- CLAUDE.md: read the file directly
|
|
35
|
+
- Plugins : check `/plugin` installed list
|
|
36
|
+
|
|
37
|
+
## What to remove for each type
|
|
38
|
+
|
|
39
|
+
### MCP servers
|
|
40
|
+
- Remove the server entry from `.mcp.json` → `mcpServers.<name>`
|
|
41
|
+
- Remove corresponding env vars from `.env.example` (if no other server uses them)
|
|
42
|
+
- Remove references in CLAUDE.md
|
|
43
|
+
|
|
44
|
+
### Hooks
|
|
45
|
+
- Remove from `.claude/settings.json` → `hooks.<EventName>` entries
|
|
46
|
+
- Hooks use this structure: `{ "hooks": { "PostToolUse": [{ "matcher": "...", "hooks": [...] }] } }`
|
|
47
|
+
- Remove the entire matcher entry if removing all hooks for that matcher
|
|
48
|
+
|
|
49
|
+
### Skills
|
|
50
|
+
- Delete the skill directory: `.claude/skills/<name>/` (entire directory including SKILL.md)
|
|
51
|
+
- Or delete the flat skill file: `.claude/skills/<name>.md`
|
|
52
|
+
|
|
53
|
+
### Plugins
|
|
54
|
+
- Suggest: `/plugin uninstall <name>@<marketplace>`
|
|
55
|
+
- Print the exact uninstall command for the user
|
|
56
|
+
|
|
57
|
+
### Commands
|
|
58
|
+
- Delete the command file: `.claude/commands/<name>.md`
|
|
35
59
|
|
|
36
60
|
Before deleting, list every reference found and confirm scope:
|
|
37
61
|
```
|
|
@@ -45,7 +69,7 @@ Dangling references that will break:
|
|
|
45
69
|
## Rules
|
|
46
70
|
- Find everything related to the removal request across ALL files — scan the filesystem, not just the data shown above.
|
|
47
71
|
- Remove surgically — section by section, key by key.
|
|
48
|
-
- Never delete an entire file
|
|
72
|
+
- Never delete an entire file unless it contains ONLY the thing being removed.
|
|
49
73
|
- Never remove content unrelated to the request.
|
|
50
74
|
- After every edit, the file MUST remain valid (JSON stays valid JSON, etc.)
|
|
51
75
|
- If not found anywhere: say so and stop.
|
|
@@ -55,3 +79,4 @@ Dangling references that will break:
|
|
|
55
79
|
Removed: ✅ [path] — [what was removed]
|
|
56
80
|
Not found: ⏭ [path] — not referenced
|
|
57
81
|
Dangling: ⚠️ [path] — still references [removed thing]
|
|
82
|
+
Suggested: 📦 To uninstall plugin: /plugin uninstall [name]@[marketplace]
|
package/templates/sync.md
CHANGED
|
@@ -30,7 +30,7 @@ Project changed since last setup. Update ONLY what the changes demand.
|
|
|
30
30
|
{{SETTINGS_CONTENT}}
|
|
31
31
|
{{/if}}
|
|
32
32
|
|
|
33
|
-
Skills: {{SKILLS_LIST}} | Commands: {{COMMANDS_LIST}}
|
|
33
|
+
Skills: {{SKILLS_LIST}} | Commands: {{COMMANDS_LIST}} | Workflows: {{WORKFLOWS_LIST}}
|
|
34
34
|
|
|
35
35
|
## Your job
|
|
36
36
|
|
|
@@ -47,6 +47,25 @@ Do NOT update things that did not change.
|
|
|
47
47
|
Do NOT rewrite files — surgical edits only.
|
|
48
48
|
If unsure about a change's implication: flag it, don't guess.
|
|
49
49
|
|
|
50
|
+
### Correct hooks format (if adding/modifying hooks)
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"hooks": {
|
|
54
|
+
"PostToolUse": [
|
|
55
|
+
{
|
|
56
|
+
"matcher": "Edit|Write",
|
|
57
|
+
"hooks": [
|
|
58
|
+
{
|
|
59
|
+
"type": "command",
|
|
60
|
+
"command": "<shell command>"
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
50
69
|
## Output — one line per file, nothing else
|
|
51
70
|
|
|
52
71
|
Updated: ✅ [path] — triggered by: [which changed file and why]
|