moicle 2.2.3 → 2.3.0
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 +10 -2
- package/assets/commands/marketing.md +7 -7
- package/assets/skills/docs/sync/SKILL.md +7 -7
- package/assets/skills/docs/write/SKILL.md +8 -8
- package/assets/skills/feature/api/SKILL.md +9 -9
- package/assets/skills/feature/deprecate/SKILL.md +3 -3
- package/assets/skills/feature/new/SKILL.md +10 -10
- package/assets/skills/feature/refactor/SKILL.md +8 -8
- package/assets/skills/fix/hotfix/SKILL.md +12 -12
- package/assets/skills/fix/incident/SKILL.md +6 -6
- package/assets/skills/fix/pr-comment/SKILL.md +11 -11
- package/assets/skills/fix/root-cause/SKILL.md +6 -6
- package/assets/skills/marketing/content/SKILL.md +5 -5
- package/assets/skills/marketing/logo/SKILL.md +4 -4
- package/assets/skills/marketing/seo-blog/SKILL.md +5 -5
- package/assets/skills/marketing/video/SKILL.md +3 -3
- package/assets/skills/research/onboarding/SKILL.md +7 -7
- package/assets/skills/research/spike/SKILL.md +10 -10
- package/assets/skills/research/web/SKILL.md +8 -8
- package/assets/skills/review/architect/SKILL.md +12 -12
- package/assets/skills/review/branch/SKILL.md +6 -6
- package/assets/skills/review/pr/SKILL.md +8 -8
- package/assets/skills/review/tdd/SKILL.md +5 -5
- package/bin/cli.js +4 -2
- package/dist/commands/disable.d.ts.map +1 -1
- package/dist/commands/disable.js +44 -59
- package/dist/commands/disable.js.map +1 -1
- package/dist/commands/enable.d.ts.map +1 -1
- package/dist/commands/enable.js +45 -61
- package/dist/commands/enable.js.map +1 -1
- package/dist/commands/install/cursor-editor.d.ts +3 -0
- package/dist/commands/install/cursor-editor.d.ts.map +1 -0
- package/dist/commands/install/cursor-editor.js +114 -0
- package/dist/commands/install/cursor-editor.js.map +1 -0
- package/dist/commands/install/cursor-transform.d.ts +3 -0
- package/dist/commands/install/cursor-transform.d.ts.map +1 -0
- package/dist/commands/install/cursor-transform.js +25 -0
- package/dist/commands/install/cursor-transform.js.map +1 -0
- package/dist/commands/install/index.d.ts.map +1 -1
- package/dist/commands/install/index.js +5 -1
- package/dist/commands/install/index.js.map +1 -1
- package/dist/commands/install/prompts.d.ts +1 -1
- package/dist/commands/install/prompts.d.ts.map +1 -1
- package/dist/commands/install/prompts.js +1 -0
- package/dist/commands/install/prompts.js.map +1 -1
- package/dist/commands/install/skill-editor.d.ts.map +1 -1
- package/dist/commands/install/skill-editor.js +1 -12
- package/dist/commands/install/skill-editor.js.map +1 -1
- package/dist/commands/install/transform.d.ts +1 -0
- package/dist/commands/install/transform.d.ts.map +1 -1
- package/dist/commands/install/transform.js +6 -0
- package/dist/commands/install/transform.js.map +1 -1
- package/dist/commands/install/usage.d.ts.map +1 -1
- package/dist/commands/install/usage.js +20 -8
- package/dist/commands/install/usage.js.map +1 -1
- package/dist/commands/install/write-if-changed.d.ts +4 -0
- package/dist/commands/install/write-if-changed.d.ts.map +1 -0
- package/dist/commands/install/write-if-changed.js +14 -0
- package/dist/commands/install/write-if-changed.js.map +1 -0
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +41 -3
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/postinstall.d.ts.map +1 -1
- package/dist/commands/postinstall.js +2 -1
- package/dist/commands/postinstall.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +53 -4
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/uninstall.d.ts.map +1 -1
- package/dist/commands/uninstall.js +91 -4
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/utils/editor-constants.d.ts +5 -0
- package/dist/utils/editor-constants.d.ts.map +1 -0
- package/dist/utils/editor-constants.js +5 -0
- package/dist/utils/editor-constants.js.map +1 -0
- package/dist/utils/editor-items.d.ts +11 -0
- package/dist/utils/editor-items.d.ts.map +1 -0
- package/dist/utils/editor-items.js +57 -0
- package/dist/utils/editor-items.js.map +1 -0
- package/dist/utils/symlink.d.ts +1 -0
- package/dist/utils/symlink.d.ts.map +1 -1
- package/dist/utils/symlink.js +7 -5
- package/dist/utils/symlink.js.map +1 -1
- package/package.json +1 -1
|
@@ -12,9 +12,9 @@ Time-boxed exploration to de-risk a decision by **building** (not just reading).
|
|
|
12
12
|
- ✅ Need to validate a technical assumption by building
|
|
13
13
|
- ✅ Picking between 2+ options and need real comparison
|
|
14
14
|
- ✅ De-risking a critical path before committing
|
|
15
|
-
- ❌ Want to compare options via docs only → use `/research
|
|
16
|
-
- ❌ Already decided on the approach → use `/feature
|
|
17
|
-
- ❌ Stuck on a known bug → use `/fix
|
|
15
|
+
- ❌ Want to compare options via docs only → use `/research-web`
|
|
16
|
+
- ❌ Already decided on the approach → use `/feature-new`
|
|
17
|
+
- ❌ Stuck on a known bug → use `/fix-root-cause`
|
|
18
18
|
|
|
19
19
|
## Read Architecture First
|
|
20
20
|
|
|
@@ -80,7 +80,7 @@ DEFINE → RESEARCH → PROTOTYPE → EVALUATE
|
|
|
80
80
|
|
|
81
81
|
**Goal:** know enough to prototype intelligently, don't over-read.
|
|
82
82
|
|
|
83
|
-
Run `/research
|
|
83
|
+
Run `/research-web` for the topic if you haven't already. Capture:
|
|
84
84
|
|
|
85
85
|
- Official docs URLs (read, don't just bookmark)
|
|
86
86
|
- Known gotchas / GitHub issues for each option
|
|
@@ -161,7 +161,7 @@ Accepted / Superseded / Deprecated
|
|
|
161
161
|
|
|
162
162
|
### Cleanup
|
|
163
163
|
- [ ] Spike branch tagged (`spike/{name}-{date}`) so it can be referenced
|
|
164
|
-
- [ ] Spike code NOT merged — production should re-implement properly via `/feature
|
|
164
|
+
- [ ] Spike code NOT merged — production should re-implement properly via `/feature-new`
|
|
165
165
|
- [ ] ADR committed to `docs/adr/` (or equivalent)
|
|
166
166
|
|
|
167
167
|
### Gate
|
|
@@ -187,7 +187,7 @@ Accepted / Superseded / Deprecated
|
|
|
187
187
|
{Benchmark numbers, screenshots, error logs — link to spike branch}
|
|
188
188
|
|
|
189
189
|
### Next step
|
|
190
|
-
- If accepted: `/feature
|
|
190
|
+
- If accepted: `/feature-new` to build it properly
|
|
191
191
|
- If rejected: document why + close the question
|
|
192
192
|
|
|
193
193
|
### Time spent
|
|
@@ -210,10 +210,10 @@ Accepted / Superseded / Deprecated
|
|
|
210
210
|
|
|
211
211
|
| When | Use |
|
|
212
212
|
|------|-----|
|
|
213
|
-
| Compare options via docs only (no code) | `/research
|
|
214
|
-
| Spike done, ready to implement properly | `/feature
|
|
215
|
-
| Spike revealed a bug to investigate | `/fix
|
|
216
|
-
| Document the ADR as a doc page | `/docs
|
|
213
|
+
| Compare options via docs only (no code) | `/research-web` |
|
|
214
|
+
| Spike done, ready to implement properly | `/feature-new` |
|
|
215
|
+
| Spike revealed a bug to investigate | `/fix-root-cause` |
|
|
216
|
+
| Document the ADR as a doc page | `/docs-write` |
|
|
217
217
|
|
|
218
218
|
## Recommended Agents
|
|
219
219
|
|
|
@@ -6,7 +6,7 @@ args: "[TOPIC]"
|
|
|
6
6
|
|
|
7
7
|
# Research Solutions
|
|
8
8
|
|
|
9
|
-
Research solutions on the web for a specific problem. Output: a written recommendation with sources. **Never implement** — wait for user approval, then hand off to `/feature
|
|
9
|
+
Research solutions on the web for a specific problem. Output: a written recommendation with sources. **Never implement** — wait for user approval, then hand off to `/feature-new` / `/research-spike`.
|
|
10
10
|
|
|
11
11
|
**ARGUMENTS:** (optional) topic to research. If omitted, infer from current conversation context.
|
|
12
12
|
|
|
@@ -15,9 +15,9 @@ Research solutions on the web for a specific problem. Output: a written recommen
|
|
|
15
15
|
- ✅ You don't know the right solution / library / pattern yet
|
|
16
16
|
- ✅ Need to compare multiple approaches before committing
|
|
17
17
|
- ✅ Stack / framework changed, best practices may have shifted
|
|
18
|
-
- ❌ You already know the approach → `/feature
|
|
19
|
-
- ❌ Want to validate by building → `/research
|
|
20
|
-
- ❌ Debugging a known bug → `/fix
|
|
18
|
+
- ❌ You already know the approach → `/feature-new` or `/fix-hotfix`
|
|
19
|
+
- ❌ Want to validate by building → `/research-spike`
|
|
20
|
+
- ❌ Debugging a known bug → `/fix-root-cause`
|
|
21
21
|
|
|
22
22
|
---
|
|
23
23
|
|
|
@@ -189,10 +189,10 @@ Trade-off: {what we give up by picking X over the runner-up}.
|
|
|
189
189
|
|
|
190
190
|
| When | Use |
|
|
191
191
|
|------|-----|
|
|
192
|
-
| Want to validate the chosen approach by prototyping | `/research
|
|
193
|
-
| Already know the approach, ready to build | `/feature
|
|
194
|
-
| Debugging a known bug | `/fix
|
|
195
|
-
| Write up the research as a design doc / ADR | `/docs
|
|
192
|
+
| Want to validate the chosen approach by prototyping | `/research-spike` |
|
|
193
|
+
| Already know the approach, ready to build | `/feature-new` / `/fix-hotfix` |
|
|
194
|
+
| Debugging a known bug | `/fix-root-cause` |
|
|
195
|
+
| Write up the research as a design doc / ADR | `/docs-write` |
|
|
196
196
|
|
|
197
197
|
## Recommended Agents
|
|
198
198
|
|
|
@@ -10,21 +10,21 @@ Audit a codebase (or a single domain) against DDD rules with automated checks, m
|
|
|
10
10
|
|
|
11
11
|
## When to use this skill
|
|
12
12
|
|
|
13
|
-
- ✅ Verify DDD compliance after `/feature
|
|
13
|
+
- ✅ Verify DDD compliance after `/feature-new` or `/feature-refactor`
|
|
14
14
|
- ✅ Periodic audit of an existing codebase
|
|
15
15
|
- ✅ Quality gate before merging architectural changes
|
|
16
|
-
- ❌ Full PR review (arch + code + security + tests) → use `/review
|
|
17
|
-
- ❌ Self-review own branch before push → use `/review
|
|
16
|
+
- ❌ Full PR review (arch + code + security + tests) → use `/review-pr`
|
|
17
|
+
- ❌ Self-review own branch before push → use `/review-branch`
|
|
18
18
|
- ❌ Security-only audit → use `@security-audit` agent
|
|
19
19
|
|
|
20
20
|
## Usage
|
|
21
21
|
|
|
22
22
|
```
|
|
23
|
-
/review
|
|
24
|
-
/review
|
|
23
|
+
/review-architect <architecture> [domain]
|
|
24
|
+
/review-architect # auto-detect stack
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
Examples: `/review
|
|
27
|
+
Examples: `/review-architect go-backend wallet`, `/review-architect react-frontend`.
|
|
28
28
|
|
|
29
29
|
## Supported architectures
|
|
30
30
|
|
|
@@ -237,7 +237,7 @@ Verify after each iteration: build passes, tests pass, domain purity holds.
|
|
|
237
237
|
|
|
238
238
|
## Calling from other skills
|
|
239
239
|
|
|
240
|
-
`/feature
|
|
240
|
+
`/feature-new` and `/feature-refactor` call this skill at the end of their workflows. When called from another skill:
|
|
241
241
|
- Skip Phase 0 (architecture already known)
|
|
242
242
|
- Skip user confirmation for fixes (auto-fix in loop)
|
|
243
243
|
- Report final score back to caller
|
|
@@ -258,11 +258,11 @@ Verify after each iteration: build passes, tests pass, domain purity holds.
|
|
|
258
258
|
|
|
259
259
|
| When | Use |
|
|
260
260
|
|------|-----|
|
|
261
|
-
| Full PR review (arch + code + security + tests) | `/review
|
|
262
|
-
| Self-review own branch before push | `/review
|
|
263
|
-
| Refactor to fix violations | `/feature
|
|
264
|
-
| Add tests if missing | `/review
|
|
265
|
-
| Called from `/feature
|
|
261
|
+
| Full PR review (arch + code + security + tests) | `/review-pr` |
|
|
262
|
+
| Self-review own branch before push | `/review-branch` |
|
|
263
|
+
| Refactor to fix violations | `/feature-refactor` |
|
|
264
|
+
| Add tests if missing | `/review-tdd` |
|
|
265
|
+
| Called from `/feature-new` / `/feature-refactor` | automatic |
|
|
266
266
|
|
|
267
267
|
## Recommended Agents
|
|
268
268
|
|
|
@@ -15,8 +15,8 @@ Self-review your branch vs a base branch before pushing or opening a PR. Checks
|
|
|
15
15
|
- ✅ Before pushing your branch / opening a PR
|
|
16
16
|
- ✅ Before asking a teammate to review (catch easy issues first)
|
|
17
17
|
- ✅ Quick sanity check on a feature you've been working on
|
|
18
|
-
- ❌ Reviewing someone else's PR → use `/review
|
|
19
|
-
- ❌ Only checking DDD architecture → use `/review
|
|
18
|
+
- ❌ Reviewing someone else's PR → use `/review-pr`
|
|
19
|
+
- ❌ Only checking DDD architecture → use `/review-architect`
|
|
20
20
|
- ❌ Security-only sweep → use `@security-audit` agent
|
|
21
21
|
|
|
22
22
|
## Read Architecture First
|
|
@@ -261,10 +261,10 @@ done
|
|
|
261
261
|
|
|
262
262
|
| When | Use |
|
|
263
263
|
|------|-----|
|
|
264
|
-
| Reviewing teammate's PR | `/review
|
|
265
|
-
| Deep DDD audit of a domain | `/review
|
|
266
|
-
| Fixing review comments on your PR | `/fix
|
|
267
|
-
| Fixing bugs surfaced here | `/fix
|
|
264
|
+
| Reviewing teammate's PR | `/review-pr` |
|
|
265
|
+
| Deep DDD audit of a domain | `/review-architect` |
|
|
266
|
+
| Fixing review comments on your PR | `/fix-pr-comment` |
|
|
267
|
+
| Fixing bugs surfaced here | `/fix-hotfix` |
|
|
268
268
|
|
|
269
269
|
## Recommended Agents
|
|
270
270
|
|
|
@@ -12,9 +12,9 @@ Review someone else's PR across 5 dimensions and post structured feedback to Git
|
|
|
12
12
|
- ✅ Reviewing someone else's open PR (`gh pr view <number>` accessible)
|
|
13
13
|
- ✅ Need to post structured feedback (APPROVE / REQUEST CHANGES / COMMENT)
|
|
14
14
|
- ✅ Want a multi-dimensional review (architecture + security + perf + tests)
|
|
15
|
-
- ❌ Self-review of own branch before push → use `/review
|
|
16
|
-
- ❌ Only checking DDD compliance → use `/review
|
|
17
|
-
- ❌ Addressing comments on your own PR → use `/fix
|
|
15
|
+
- ❌ Self-review of own branch before push → use `/review-branch`
|
|
16
|
+
- ❌ Only checking DDD compliance → use `/review-architect`
|
|
17
|
+
- ❌ Addressing comments on your own PR → use `/fix-pr-comment`
|
|
18
18
|
|
|
19
19
|
## Read Architecture First
|
|
20
20
|
|
|
@@ -79,7 +79,7 @@ For DDD-aware code, check against architecture doc:
|
|
|
79
79
|
- Entities raise events on state changes
|
|
80
80
|
- Listeners use background context, not request context
|
|
81
81
|
|
|
82
|
-
**For deep DDD audit:** call `/review
|
|
82
|
+
**For deep DDD audit:** call `/review-architect` instead and link result.
|
|
83
83
|
|
|
84
84
|
### 3.2 Security (CRITICAL / HIGH)
|
|
85
85
|
|
|
@@ -214,10 +214,10 @@ gh pr edit $PR --add-label "needs-changes"
|
|
|
214
214
|
|
|
215
215
|
| When | Use |
|
|
216
216
|
|------|-----|
|
|
217
|
-
| Reviewing own branch before push | `/review
|
|
218
|
-
| Only checking DDD architecture | `/review
|
|
219
|
-
| Fixing comments on your own PR | `/fix
|
|
220
|
-
| Bug surfaced by review | `/fix
|
|
217
|
+
| Reviewing own branch before push | `/review-branch` |
|
|
218
|
+
| Only checking DDD architecture | `/review-architect` |
|
|
219
|
+
| Fixing comments on your own PR | `/fix-pr-comment` |
|
|
220
|
+
| Bug surfaced by review | `/fix-hotfix` |
|
|
221
221
|
|
|
222
222
|
## Recommended Agents
|
|
223
223
|
|
|
@@ -13,7 +13,7 @@ Red-Green-Refactor cycle: write failing test → write minimal code to pass →
|
|
|
13
13
|
- ✅ Fixing a bug — failing test first, then fix (regression guard)
|
|
14
14
|
- ✅ Refactoring critical code where you need a safety net
|
|
15
15
|
- ❌ UI prototyping / visual tweaks → manual is faster
|
|
16
|
-
- ❌ Exploratory spike → use `/research
|
|
16
|
+
- ❌ Exploratory spike → use `/research-spike` (throwaway, no tests)
|
|
17
17
|
- ❌ One-line config change → just change it
|
|
18
18
|
|
|
19
19
|
## Read Architecture First
|
|
@@ -229,10 +229,10 @@ Use it for: serializers, parsers, math, sorting, encoding/decoding. Not for: bus
|
|
|
229
229
|
|
|
230
230
|
| When | Use |
|
|
231
231
|
|------|-----|
|
|
232
|
-
| Building feature from scratch (with TDD inside) | `/feature
|
|
233
|
-
| Adding regression test for a bug | `/fix
|
|
234
|
-
| Refactoring untested legacy code | `/feature
|
|
235
|
-
| Reviewing test quality on a PR | `/review
|
|
232
|
+
| Building feature from scratch (with TDD inside) | `/feature-new` + this skill |
|
|
233
|
+
| Adding regression test for a bug | `/fix-hotfix` or `/fix-root-cause` → then this skill |
|
|
234
|
+
| Refactoring untested legacy code | `/feature-refactor` (add tests first) |
|
|
235
|
+
| Reviewing test quality on a PR | `/review-pr` |
|
|
236
236
|
|
|
237
237
|
## Recommended Agents
|
|
238
238
|
|
package/bin/cli.js
CHANGED
|
@@ -46,7 +46,7 @@ program
|
|
|
46
46
|
.description('List installed agents, commands, and skills')
|
|
47
47
|
.option('-g, --global', 'List global installations')
|
|
48
48
|
.option('-p, --project', 'List project installations')
|
|
49
|
-
.option('-t, --target <editor>', 'Target editor (claude, codex, antigravity)')
|
|
49
|
+
.option('-t, --target <editor>', 'Target editor (claude, codex, cursor, antigravity)')
|
|
50
50
|
.action(listCommand);
|
|
51
51
|
|
|
52
52
|
program
|
|
@@ -60,6 +60,7 @@ program
|
|
|
60
60
|
.option('-g, --global', 'Enable in global ~/.claude/')
|
|
61
61
|
.option('-p, --project', 'Enable in current project ./.claude/')
|
|
62
62
|
.option('-a, --all', 'Enable all disabled items')
|
|
63
|
+
.option('-t, --target <editor>', 'Target editor (claude, codex, cursor, antigravity)')
|
|
63
64
|
.action(enableCommand);
|
|
64
65
|
|
|
65
66
|
program
|
|
@@ -68,6 +69,7 @@ program
|
|
|
68
69
|
.option('-g, --global', 'Disable in global ~/.claude/')
|
|
69
70
|
.option('-p, --project', 'Disable in current project ./.claude/')
|
|
70
71
|
.option('-a, --all', 'Disable all enabled items')
|
|
72
|
+
.option('-t, --target <editor>', 'Target editor (claude, codex, cursor, antigravity)')
|
|
71
73
|
.action(disableCommand);
|
|
72
74
|
|
|
73
75
|
program
|
|
@@ -75,7 +77,7 @@ program
|
|
|
75
77
|
.description('Show enabled/disabled status of all items')
|
|
76
78
|
.option('-g, --global', 'Show global status')
|
|
77
79
|
.option('-p, --project', 'Show project status')
|
|
78
|
-
.option('-t, --target <editor>', 'Target editor (claude, codex, antigravity)')
|
|
80
|
+
.option('-t, --target <editor>', 'Target editor (claude, codex, cursor, antigravity)')
|
|
79
81
|
.action(statusCommand);
|
|
80
82
|
|
|
81
83
|
program
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disable.d.ts","sourceRoot":"","sources":["../../src/commands/disable.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"disable.d.ts","sourceRoot":"","sources":["../../src/commands/disable.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAiD,MAAM,aAAa,CAAC;AA+HjG,eAAO,MAAM,cAAc,GACzB,UAAU,MAAM,GAAG,SAAS,EAC5B,SAAS,cAAc,KACtB,OAAO,CAAC,IAAI,CAqFd,CAAC"}
|
package/dist/commands/disable.js
CHANGED
|
@@ -3,7 +3,9 @@ import inquirer from 'inquirer';
|
|
|
3
3
|
import fs from 'fs';
|
|
4
4
|
import path from 'path';
|
|
5
5
|
import { disableItem, isDisabled } from '../utils/config.js';
|
|
6
|
-
import {
|
|
6
|
+
import { DISABLED_SUFFIX } from '../utils/editor-constants.js';
|
|
7
|
+
import { cleanItemDisplayName, getAgentEnabledPath, getCommandEnabledPath, getItemDir, inferItemType, listCursorRuleItems, resolveEditorTarget, } from '../utils/editor-items.js';
|
|
8
|
+
import { listItems } from '../utils/symlink.js';
|
|
7
9
|
const printHeader = () => {
|
|
8
10
|
console.log('');
|
|
9
11
|
console.log(chalk.cyan('════════════════════════════════════════'));
|
|
@@ -12,8 +14,8 @@ const printHeader = () => {
|
|
|
12
14
|
console.log('');
|
|
13
15
|
};
|
|
14
16
|
const renameToDisabled = (filePath) => {
|
|
15
|
-
if (!filePath.endsWith(
|
|
16
|
-
const newPath = filePath
|
|
17
|
+
if (!filePath.endsWith(DISABLED_SUFFIX)) {
|
|
18
|
+
const newPath = `${filePath}${DISABLED_SUFFIX}`;
|
|
17
19
|
try {
|
|
18
20
|
fs.renameSync(filePath, newPath);
|
|
19
21
|
return true;
|
|
@@ -24,61 +26,53 @@ const renameToDisabled = (filePath) => {
|
|
|
24
26
|
}
|
|
25
27
|
return true;
|
|
26
28
|
};
|
|
27
|
-
const disableItemByName = (type, name, scope
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
break;
|
|
36
|
-
case 'skills':
|
|
37
|
-
dir = getSkillsDir(scope);
|
|
38
|
-
break;
|
|
39
|
-
default:
|
|
40
|
-
return false;
|
|
41
|
-
}
|
|
42
|
-
const cleanName = name.replace('@', '').replace('.md', '').replace('.disabled', '');
|
|
43
|
-
const enabledPath = path.join(dir, `${cleanName}.md`);
|
|
44
|
-
const skillPath = path.join(dir, cleanName);
|
|
45
|
-
if (fs.existsSync(enabledPath)) {
|
|
46
|
-
renameToDisabled(enabledPath);
|
|
29
|
+
const disableItemByName = (type, name, scope, target) => {
|
|
30
|
+
const dir = getItemDir(type, target, scope);
|
|
31
|
+
const cleanName = cleanItemDisplayName(name.replace('@', '').replace('/', ''));
|
|
32
|
+
if (type === 'agents') {
|
|
33
|
+
const enabledPath = getAgentEnabledPath(target, dir, cleanName);
|
|
34
|
+
if (fs.existsSync(enabledPath)) {
|
|
35
|
+
renameToDisabled(enabledPath);
|
|
36
|
+
}
|
|
47
37
|
}
|
|
48
|
-
else if (
|
|
49
|
-
|
|
50
|
-
|
|
38
|
+
else if (type === 'commands') {
|
|
39
|
+
const enabledPath = getCommandEnabledPath(dir, cleanName);
|
|
40
|
+
if (fs.existsSync(enabledPath)) {
|
|
41
|
+
renameToDisabled(enabledPath);
|
|
51
42
|
}
|
|
52
|
-
|
|
53
|
-
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
const skillPath = path.join(dir, cleanName);
|
|
46
|
+
if (fs.existsSync(skillPath) && fs.statSync(skillPath).isDirectory()) {
|
|
47
|
+
try {
|
|
48
|
+
fs.renameSync(skillPath, `${skillPath}${DISABLED_SUFFIX}`);
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// ignore
|
|
52
|
+
}
|
|
54
53
|
}
|
|
55
54
|
}
|
|
56
55
|
disableItem(type, cleanName);
|
|
57
56
|
return true;
|
|
58
57
|
};
|
|
59
|
-
const getEnabledItemsByType = (type, scope) => {
|
|
58
|
+
const getEnabledItemsByType = (type, scope, target) => {
|
|
60
59
|
const items = [];
|
|
61
|
-
|
|
60
|
+
const dir = getItemDir(type, target, scope);
|
|
62
61
|
let prefix = '';
|
|
63
62
|
switch (type) {
|
|
64
63
|
case 'agents':
|
|
65
|
-
dir = getAgentsDir(scope);
|
|
66
64
|
prefix = '@';
|
|
67
65
|
break;
|
|
68
66
|
case 'commands':
|
|
69
|
-
dir = getCommandsDir(scope);
|
|
70
67
|
prefix = '/';
|
|
71
68
|
break;
|
|
72
69
|
case 'skills':
|
|
73
|
-
dir = getSkillsDir(scope);
|
|
74
70
|
break;
|
|
75
|
-
default:
|
|
76
|
-
return items;
|
|
77
71
|
}
|
|
78
|
-
const files = listItems(dir);
|
|
72
|
+
const files = type === 'agents' && target === 'cursor' ? listCursorRuleItems(dir) : listItems(dir);
|
|
79
73
|
for (const file of files) {
|
|
80
|
-
if (!file.name.endsWith(
|
|
81
|
-
const cleanName = file.name
|
|
74
|
+
if (!file.name.endsWith(DISABLED_SUFFIX)) {
|
|
75
|
+
const cleanName = cleanItemDisplayName(file.name);
|
|
82
76
|
if (!isDisabled(type, cleanName)) {
|
|
83
77
|
items.push({
|
|
84
78
|
type,
|
|
@@ -91,13 +85,13 @@ const getEnabledItemsByType = (type, scope) => {
|
|
|
91
85
|
}
|
|
92
86
|
return items;
|
|
93
87
|
};
|
|
94
|
-
const getAllEnabledItems = (scope) => {
|
|
88
|
+
const getAllEnabledItems = (scope, target) => {
|
|
95
89
|
const itemsByType = new Map();
|
|
96
|
-
itemsByType.set('agents', getEnabledItemsByType('agents', scope));
|
|
97
|
-
if (scope === 'global') {
|
|
98
|
-
itemsByType.set('commands', getEnabledItemsByType('commands', scope));
|
|
90
|
+
itemsByType.set('agents', getEnabledItemsByType('agents', scope, target));
|
|
91
|
+
if (scope === 'global' || target === 'cursor') {
|
|
92
|
+
itemsByType.set('commands', getEnabledItemsByType('commands', scope, target));
|
|
99
93
|
}
|
|
100
|
-
itemsByType.set('skills', getEnabledItemsByType('skills', scope));
|
|
94
|
+
itemsByType.set('skills', getEnabledItemsByType('skills', scope, target));
|
|
101
95
|
return itemsByType;
|
|
102
96
|
};
|
|
103
97
|
const formatTypeLabel = (type) => {
|
|
@@ -106,12 +100,13 @@ const formatTypeLabel = (type) => {
|
|
|
106
100
|
export const disableCommand = async (itemName, options) => {
|
|
107
101
|
printHeader();
|
|
108
102
|
const scope = options.project ? 'project' : 'global';
|
|
103
|
+
const target = resolveEditorTarget(options);
|
|
109
104
|
if (options.all) {
|
|
110
|
-
const itemsByType = getAllEnabledItems(scope);
|
|
105
|
+
const itemsByType = getAllEnabledItems(scope, target);
|
|
111
106
|
let totalDisabled = 0;
|
|
112
107
|
for (const [type, items] of itemsByType) {
|
|
113
108
|
for (const item of items) {
|
|
114
|
-
disableItemByName(type, item.name, scope);
|
|
109
|
+
disableItemByName(type, item.name, scope, target);
|
|
115
110
|
console.log(chalk.red(` ✗ Disabled ${item.display}`));
|
|
116
111
|
totalDisabled++;
|
|
117
112
|
}
|
|
@@ -126,22 +121,12 @@ export const disableCommand = async (itemName, options) => {
|
|
|
126
121
|
return;
|
|
127
122
|
}
|
|
128
123
|
if (itemName) {
|
|
129
|
-
const
|
|
130
|
-
|
|
131
|
-
if (itemName.startsWith('/')) {
|
|
132
|
-
type = 'commands';
|
|
133
|
-
}
|
|
134
|
-
else if (!itemName.startsWith('@')) {
|
|
135
|
-
const skillsDir = getSkillsDir(scope);
|
|
136
|
-
if (fs.existsSync(path.join(skillsDir, cleanName))) {
|
|
137
|
-
type = 'skills';
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
disableItemByName(type, cleanName, scope);
|
|
124
|
+
const type = inferItemType(itemName, target, scope);
|
|
125
|
+
disableItemByName(type, itemName, scope, target);
|
|
141
126
|
console.log(chalk.yellow(` ✗ Disabled ${itemName}`));
|
|
142
127
|
return;
|
|
143
128
|
}
|
|
144
|
-
const itemsByType = getAllEnabledItems(scope);
|
|
129
|
+
const itemsByType = getAllEnabledItems(scope, target);
|
|
145
130
|
const allItems = [];
|
|
146
131
|
for (const items of itemsByType.values()) {
|
|
147
132
|
allItems.push(...items);
|
|
@@ -179,7 +164,7 @@ export const disableCommand = async (itemName, options) => {
|
|
|
179
164
|
}
|
|
180
165
|
console.log('');
|
|
181
166
|
for (const item of selected) {
|
|
182
|
-
disableItemByName(item.type, item.name, scope);
|
|
167
|
+
disableItemByName(item.type, item.name, scope, target);
|
|
183
168
|
console.log(chalk.red(` ✗ Disabled ${item.display}`));
|
|
184
169
|
}
|
|
185
170
|
console.log('');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disable.js","sourceRoot":"","sources":["../../src/commands/disable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"disable.js","sourceRoot":"","sources":["../../src/commands/disable.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enable.d.ts","sourceRoot":"","sources":["../../src/commands/enable.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"enable.d.ts","sourceRoot":"","sources":["../../src/commands/enable.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAiD,MAAM,aAAa,CAAC;AAkIjG,eAAO,MAAM,aAAa,GACxB,UAAU,MAAM,GAAG,SAAS,EAC5B,SAAS,cAAc,KACtB,OAAO,CAAC,IAAI,CAqFd,CAAC"}
|