clavix 6.2.0 → 7.1.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 CHANGED
@@ -1,170 +1,83 @@
1
1
  # Clavix
2
2
 
3
- > Agentic-first prompt workflows. Markdown templates that teach AI agents how to optimize prompts, create PRDs, and manage implementation. Works with Claude Code, Cursor, Windsurf, GitHub Copilot, and many AI coding tools.
3
+ > Agentic prompt workflows as skills. Works with any [agentskills.io](https://agentskills.io) compatible AI tool.
4
4
 
5
- ## Quick Links
6
-
7
- | I want to... | Go to |
8
- |--------------|-------|
9
- | Get started | [Quickstart](#quickstart) |
10
- | See all commands | [docs/commands.md](docs/commands.md) |
11
- | Understand the architecture | [docs/architecture.md](docs/architecture.md) |
12
- | Check integrations | [docs/integrations.md](docs/integrations.md) |
13
- | Contribute | [CONTRIBUTING.md](CONTRIBUTING.md) |
14
-
15
- ## Command Format
16
-
17
- **Your command format depends on your AI tool:**
18
-
19
- | Tool Type | Format | Example |
20
- |-----------|--------|---------|
21
- | **CLI tools** (Claude Code, Gemini, Qwen) | Colon (`:`) | `/clavix:improve` |
22
- | **IDEs & extensions** (Cursor, Windsurf, Cline, GitHub Copilot) | Hyphen (`-`) | `/clavix-improve` |
23
-
24
- **Rule of thumb:** CLI tools use colon, IDE extensions use hyphen.
25
-
26
- ## Quickstart
27
-
28
- ### 1. Install and Initialize
5
+ ## Install
29
6
 
30
7
  ```bash
31
8
  npm install -g clavix
32
9
  clavix init
33
10
  ```
34
11
 
35
- During `clavix init`, pick your AI tools (Cursor, Claude Code, GitHub Copilot, etc.). Clavix installs slash command templates into those integrations.
36
-
37
- ### 2. Use Slash Commands
12
+ Select **Agent Skills** during setup. Choose global (`~/.config/agents/skills/`) or project (`.skills/`) scope.
38
13
 
39
- ```text
40
- # CLI-style tools (Claude Code, Gemini, Qwen)
41
- /clavix:improve "Create a secure login page with JWT"
42
-
43
- # IDE-style tools (Cursor, Windsurf, GitHub Copilot, etc.)
44
- /clavix-improve "Create a secure login page with JWT"
45
- ```
46
-
47
- The AI agent reads the Clavix template and optimizes your prompt.
48
-
49
- ### 3. Choose Your Workflow
50
-
51
- ```mermaid
52
- graph TD
53
- A["/clavix:improve"] --> B["/clavix:implement"]
54
- C["/clavix:prd"] --> D["/clavix:plan"]
55
- D --> E["/clavix:implement"]
56
- E --> F["/clavix:verify"]
57
- F --> G["/clavix:archive"]
58
- H["/clavix:start"] --> I["/clavix:summarize"]
59
- I --> D
60
- J["/clavix:refine"] --> D
61
- J --> B
62
- ```
63
-
64
- #### Quick Path (Simple Tasks)
65
- ```
66
- /clavix:improve → /clavix:implement
67
- ```
68
- Optimize a prompt and implement it directly.
14
+ ## Skills
69
15
 
70
- #### Full Planning (Complex Features)
71
- ```
72
- /clavix:prd /clavix:plan /clavix:implement /clavix:verify /clavix:archive
73
- ```
74
- Structured planning with PRD, task breakdown, implementation, verification, and archival.
16
+ | Skill | Purpose |
17
+ |-------|---------|
18
+ | `clavix-improve` | Optimize prompts with 6-dimension quality assessment |
19
+ | `clavix-prd` | Generate PRD through strategic questions |
20
+ | `clavix-plan` | Create task breakdown from PRD |
21
+ | `clavix-implement` | Execute tasks with progress tracking |
22
+ | `clavix-start` | Begin conversational exploration |
23
+ | `clavix-summarize` | Extract requirements from conversation |
24
+ | `clavix-refine` | Update existing PRD or prompt |
25
+ | `clavix-verify` | Verify implementation against requirements |
26
+ | `clavix-review` | Review PRs with criteria presets |
27
+ | `clavix-archive` | Archive completed projects |
75
28
 
76
- #### Exploratory (Discovery Mode)
77
- ```
78
- /clavix:start → [conversation] → /clavix:summarize → /clavix:plan
79
- ```
80
- Have a conversation to explore requirements, then extract and plan.
29
+ ## Workflows
81
30
 
82
- #### Refinement (Iteration)
83
31
  ```
84
- /clavix:refine(updated PRD or prompt) → continue workflow
32
+ Quick: clavix-improveclavix-implement
33
+ Full: clavix-prd → clavix-plan → clavix-implement → clavix-verify
34
+ Exploratory: clavix-start → clavix-summarize → clavix-plan
85
35
  ```
86
- Refine existing PRDs or prompts based on feedback.
87
-
88
- ### All 10 Slash Commands
89
-
90
- | Command | Purpose |
91
- |---------|---------|
92
- | `/clavix:improve` | Optimize prompts (auto-selects depth) |
93
- | `/clavix:prd` | Generate PRD through guided questions |
94
- | `/clavix:plan` | Create task breakdown from PRD |
95
- | `/clavix:implement` | Execute tasks or prompts |
96
- | `/clavix:start` | Begin conversational session |
97
- | `/clavix:summarize` | Extract requirements from conversation |
98
- | `/clavix:refine` | Refine existing PRD or prompt |
99
- | `/clavix:verify` | Verify implementation against requirements |
100
- | `/clavix:review` | Review teammate PRs using criteria presets |
101
- | `/clavix:archive` | Archive completed projects |
102
-
103
- `/clavix:review` is for reviewing teammates' PRs (criteria-driven, severity levels, saved reports), while `/clavix:verify` checks your implementation against your own PRD.
104
-
105
- For a full walkthrough, see [Getting Started](docs/getting-started.md).
106
36
 
107
37
  ## How It Works
108
38
 
109
- Clavix is **agentic-first**:
39
+ 1. **You run `clavix init`** – Skills are installed as directories with `SKILL.md` files
40
+ 2. **You invoke a skill** – Your AI tool loads the skill instructions
41
+ 3. **The agent follows the workflow** – Using its native tools
42
+ 4. **Outputs saved locally** – Under `.clavix/outputs/`
110
43
 
111
- 1. **You run `clavix init`** – Select integrations (Cursor, Claude Code, GitHub Copilot, etc.). Clavix installs markdown templates into each tool (e.g. `.cursor/commands/`, `.github/prompts/clavix-*.prompt.md`).
112
- 2. **You invoke a slash command** – Like `/clavix:improve`, `/clavix:plan`, or `/clavix:review` in your AI tool.
113
- 3. **The AI agent reads the template** – Structured markdown instructions with frontmatter.
114
- 4. **The agent follows the instructions** – Using its native tools (edit files, run tests, summarize, review PRs, etc.).
115
- 5. **Outputs are saved locally** – Under `.clavix/outputs/` (including `.clavix/outputs/reviews/` for PR review reports).
44
+ No code executes during skill invocation. The markdown templates ARE the product.
116
45
 
117
- **No TypeScript executes during slash commands.** The markdown templates ARE the product; Clavix only installs and updates them.
46
+ ## Other Integrations
118
47
 
119
- See [Architecture](docs/architecture.md) for details.
120
-
121
- ## Supported AI Tools
48
+ Clavix also supports tool-specific integrations for tools that don't yet support Agent Skills:
122
49
 
123
50
  | Category | Tools |
124
51
  |----------|-------|
125
- | IDEs & extensions | Cursor, Windsurf, Kilocode, Roocode, Cline, GitHub Copilot (VS Code) |
126
- | CLI agents | Claude Code, Gemini CLI, Qwen Code, Droid CLI, CodeBuddy, OpenCode, LLXPRT, Amp, Crush CLI, Codex CLI, Augment CLI, Vibe CLI |
127
- | Universal formats | AGENTS.md, OCTO.md, WARP.md |
128
-
129
- In GitHub Copilot Chat, Clavix commands appear as `/clavix-improve`, `/clavix-prd`, `/clavix-review`, etc.
52
+ | IDEs | Cursor, Windsurf, Kilocode, Roocode, Cline, GitHub Copilot |
53
+ | CLI agents | Claude Code, Gemini CLI, Qwen, Droid, CodeBuddy, OpenCode, LLXPRT, Amp, Crush, Codex, Augment, Vibe |
54
+ | Universal | AGENTS.md, OCTO.md, WARP.md |
130
55
 
131
- Full list: [docs/integrations.md](docs/integrations.md)
56
+ Run `clavix init` and select your tools. Command format varies by tool:
57
+ - **CLI tools** (Claude Code, Gemini): `/clavix:improve`
58
+ - **IDE extensions** (Cursor, Copilot): `/clavix-improve`
132
59
 
133
60
  ## CLI Commands
134
61
 
135
62
  | Command | Purpose |
136
63
  |---------|---------|
137
- | `clavix init` | Initialize or reconfigure Clavix integrations in a project |
138
- | `clavix update` | Regenerate templates for selected integrations |
139
- | `clavix diagnose` | Check installation and integration health |
64
+ | `clavix init` | Initialize or reconfigure integrations |
65
+ | `clavix update` | Regenerate templates |
66
+ | `clavix diagnose` | Check installation health |
140
67
  | `clavix version` | Show version |
141
68
 
142
- All workflows (`/clavix:improve`, `/clavix:plan`, `/clavix:review`, etc.) are **slash commands** that your AI tools execute using Clavix templates.
69
+ ## Docs
143
70
 
144
- ## Documentation
145
-
146
- - [Getting Started](docs/getting-started.md) - Installation and first workflow
147
- - [Commands Reference](docs/commands.md) - All commands in one place
148
- - [Architecture](docs/architecture.md) - How Clavix works
149
- - [Integrations](docs/integrations.md) - Full tool matrix
150
- - [CONTRIBUTING.md](CONTRIBUTING.md) - Contribute to Clavix
71
+ - [Commands Reference](docs/commands.md)
72
+ - [Integrations](docs/integrations.md)
73
+ - [Architecture](docs/architecture.md)
74
+ - [Getting Started](docs/getting-started.md)
151
75
 
152
76
  ## Requirements
153
77
 
154
- - **Node.js >= 18.0.0**
155
- - npm or yarn
156
- - An AI coding tool (Claude Code, Cursor, GitHub Copilot, etc.)
78
+ - Node.js >= 18.0.0
79
+ - An AI coding tool
157
80
 
158
81
  ## License
159
82
 
160
83
  Apache-2.0
161
-
162
- ## Star History
163
-
164
- <a href="https://www.star-history.com/#ClavixDev/Clavix&type=date&legend=top-left">
165
- <picture>
166
- <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=ClavixDev/Clavix&type=date&theme=dark&legend=top-left" />
167
- <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=ClavixDev/Clavix&type=date&legend=top-left" />
168
- <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=ClavixDev/Clavix&type=date&legend=top-left" />
169
- </picture>
170
- </a>
@@ -261,12 +261,71 @@ export default class Init extends Command {
261
261
  }
262
262
  }
263
263
  }
264
+ // Prompt for custom Agent Skills path if selected
265
+ if (selectedIntegrations.includes('agent-skills-custom')) {
266
+ this.log(chalk.cyan('\n🔧 Agent Skills Custom Path Configuration'));
267
+ const { pathType } = await inquirer.prompt([
268
+ {
269
+ type: 'list',
270
+ name: 'pathType',
271
+ message: 'What type of path do you want to use?',
272
+ choices: [
273
+ {
274
+ name: 'Relative - resolved from current folder (e.g., .aider-desk/skills)',
275
+ value: 'relative',
276
+ },
277
+ {
278
+ name: 'Absolute - starts from root or home (e.g., ~/.config/my-skills or /opt/skills)',
279
+ value: 'absolute',
280
+ },
281
+ ],
282
+ },
283
+ ]);
284
+ const existingCustomPath = existingConfig?.experimental?.integrationPaths?.['agent-skills-custom'];
285
+ const { customSkillsPath } = await inquirer.prompt([
286
+ {
287
+ type: 'input',
288
+ name: 'customSkillsPath',
289
+ message: 'Enter path to skills directory:',
290
+ default: existingCustomPath ||
291
+ (pathType === 'relative' ? '.skills' : '~/.config/agents/skills'),
292
+ validate: (input) => {
293
+ const trimmed = input.trim();
294
+ if (!trimmed) {
295
+ return 'Path cannot be empty';
296
+ }
297
+ if (pathType === 'relative') {
298
+ if (path.isAbsolute(trimmed) || trimmed.startsWith('~/')) {
299
+ return 'Relative path should not start with / or ~/. Example: .aider-desk/skills';
300
+ }
301
+ }
302
+ else {
303
+ if (!path.isAbsolute(trimmed) && !trimmed.startsWith('~/')) {
304
+ return 'Absolute path should start with / or ~/. Example: ~/.config/my-skills';
305
+ }
306
+ }
307
+ return true;
308
+ },
309
+ },
310
+ ]);
311
+ integrationPaths['agent-skills-custom'] = customSkillsPath.trim();
312
+ this.log(chalk.gray(` ✓ Using custom skills path: ${customSkillsPath.trim()}`));
313
+ }
264
314
  // Create .clavix directory structure
265
315
  this.log(chalk.cyan('\n📁 Creating directory structure...'));
266
316
  await this.createDirectoryStructure();
267
317
  // Generate config
268
318
  this.log(chalk.cyan('⚙️ Generating configuration...'));
269
319
  await this.generateConfig(selectedIntegrations, integrationPaths);
320
+ // Re-create AgentManager with updated config (includes custom integration paths)
321
+ const updatedConfig = {
322
+ ...DEFAULT_CONFIG,
323
+ integrations: selectedIntegrations,
324
+ ...(Object.keys(integrationPaths).length > 0 && {
325
+ experimental: { integrationPaths },
326
+ }),
327
+ };
328
+ const updatedAgentManager = new AgentManager(updatedConfig);
270
329
  // Generate INSTRUCTIONS.md and QUICKSTART.md
271
330
  await this.generateInstructions();
272
331
  await this.generateQuickstart();
@@ -292,9 +351,17 @@ export default class Init extends Command {
292
351
  }
293
352
  // Handle Agent Skills integrations
294
353
  if (isAgentSkillsIntegration(integrationName)) {
295
- const adapter = agentManager.requireAdapter(integrationName);
296
- const scope = integrationName === 'agent-skills-global' ? 'global' : 'project';
297
- const location = scope === 'global' ? '~/.config/agents/skills/' : '.skills/';
354
+ const adapter = updatedAgentManager.requireAdapter(integrationName);
355
+ let location;
356
+ if (integrationName === 'agent-skills-global') {
357
+ location = '~/.config/agents/skills/';
358
+ }
359
+ else if (integrationName === 'agent-skills-project') {
360
+ location = '.skills/';
361
+ }
362
+ else {
363
+ location = integrationPaths['agent-skills-custom'] || 'custom path';
364
+ }
298
365
  this.log(chalk.gray(` ✓ Generating ${adapter.displayName}...`));
299
366
  // Validate before generating
300
367
  if (adapter.validate) {
@@ -27,8 +27,13 @@ export declare class AgentSkillsAdapter extends BaseAdapter {
27
27
  get installScope(): SkillScope;
28
28
  /**
29
29
  * Get the directory path based on scope
30
+ * For custom scope without a configured path, returns a placeholder
30
31
  */
31
32
  get directory(): string;
33
+ /**
34
+ * Check if the adapter is properly configured
35
+ */
36
+ isConfigured(): boolean;
32
37
  /**
33
38
  * Expand tilde in path to home directory
34
39
  */
@@ -31,12 +31,21 @@ export class AgentSkillsAdapter extends BaseAdapter {
31
31
  this.scope = scope;
32
32
  this.userConfig = userConfig;
33
33
  // Set name and displayName based on scope
34
- this.name = scope === 'global' ? 'agent-skills-global' : 'agent-skills-project';
35
- this.displayName = scope === 'global' ? 'Agent Skills (Global)' : 'Agent Skills (Project)';
34
+ if (scope === 'global') {
35
+ this.name = 'agent-skills-global';
36
+ this.displayName = 'Agent Skills (Global)';
37
+ }
38
+ else if (scope === 'project') {
39
+ this.name = 'agent-skills-project';
40
+ this.displayName = 'Agent Skills (Project)';
41
+ }
42
+ else {
43
+ this.name = 'agent-skills-custom';
44
+ this.displayName = 'Agent Skills (Custom Path)';
45
+ }
36
46
  // Check for custom path in user config
37
- const configKey = scope === 'global' ? 'agent-skills-global' : 'agent-skills-project';
38
- if (userConfig?.experimental?.integrationPaths?.[configKey]) {
39
- this.customPath = userConfig.experimental.integrationPaths[configKey];
47
+ if (userConfig?.experimental?.integrationPaths?.[this.name]) {
48
+ this.customPath = userConfig.experimental.integrationPaths[this.name];
40
49
  }
41
50
  }
42
51
  /**
@@ -47,13 +56,26 @@ export class AgentSkillsAdapter extends BaseAdapter {
47
56
  }
48
57
  /**
49
58
  * Get the directory path based on scope
59
+ * For custom scope without a configured path, returns a placeholder
50
60
  */
51
61
  get directory() {
52
62
  if (this.customPath) {
53
63
  return this.customPath;
54
64
  }
65
+ if (this.scope === 'custom') {
66
+ return '<custom-path-not-configured>';
67
+ }
55
68
  return this.scope === 'global' ? SKILL_PATHS.global : SKILL_PATHS.project;
56
69
  }
70
+ /**
71
+ * Check if the adapter is properly configured
72
+ */
73
+ isConfigured() {
74
+ if (this.scope === 'custom') {
75
+ return !!this.customPath;
76
+ }
77
+ return true;
78
+ }
57
79
  /**
58
80
  * Expand tilde in path to home directory
59
81
  */
@@ -68,9 +90,15 @@ export class AgentSkillsAdapter extends BaseAdapter {
68
90
  */
69
91
  getCommandPath() {
70
92
  const dir = this.directory;
71
- if (dir.startsWith('~/') || this.scope === 'global') {
93
+ // Expand ~ paths
94
+ if (dir.startsWith('~/')) {
72
95
  return this.expandPath(dir);
73
96
  }
97
+ // Absolute paths (global scope default or user-provided absolute)
98
+ if (this.scope === 'global' || path.isAbsolute(dir)) {
99
+ return dir;
100
+ }
101
+ // Relative paths (project scope or custom relative)
74
102
  return path.join(process.cwd(), dir);
75
103
  }
76
104
  /**
@@ -99,6 +127,9 @@ export class AgentSkillsAdapter extends BaseAdapter {
99
127
  * └── <reference-files>.md
100
128
  */
101
129
  async generateCommands(templates) {
130
+ if (!this.isConfigured()) {
131
+ throw new IntegrationError('Custom scope requires a custom path to be set', 'Ensure agent-skills-custom has a path configured in experimental.integrationPaths');
132
+ }
102
133
  const skillsPath = this.getCommandPath();
103
134
  try {
104
135
  // Ensure base directory exists
@@ -28,9 +28,10 @@ export class AgentManager {
28
28
  this.registerAdapter(new QwenAdapter(userConfig)); // TOML format
29
29
  this.registerAdapter(new LlxprtAdapter(userConfig)); // TOML format
30
30
  this.registerAdapter(new VibeAdapter(userConfig)); // Vibe CLI skills
31
- // Register Agent Skills adapters (both global and project scope)
31
+ // Register Agent Skills adapters (global, project, and custom scope)
32
32
  this.registerAdapter(new AgentSkillsAdapter('global', userConfig));
33
33
  this.registerAdapter(new AgentSkillsAdapter('project', userConfig));
34
+ this.registerAdapter(new AgentSkillsAdapter('custom', userConfig));
34
35
  // Register simple adapters from config (using UniversalAdapter factory)
35
36
  for (const config of getSimpleAdapters()) {
36
37
  // Skip adapters that have special handlers registered above
@@ -274,7 +274,7 @@ Result: Project permanently deleted
274
274
 
275
275
  ---
276
276
 
277
- ## Agent Transparency (v6.2.0)
277
+ ## Agent Transparency (v7.1.0)
278
278
 
279
279
  ### Agent Manual (Universal Protocols)
280
280
  {{INCLUDE:agent-protocols/AGENT_MANUAL.md}}
@@ -615,7 +615,7 @@ I'll explain what's wrong and what you might need to do:
615
615
 
616
616
  ---
617
617
 
618
- ## Agent Transparency (v6.2.0)
618
+ ## Agent Transparency (v7.1.0)
619
619
 
620
620
  ### Agent Manual (Universal Protocols)
621
621
  {{INCLUDE:agent-protocols/AGENT_MANUAL.md}}
@@ -524,7 +524,7 @@ Wait for the user to decide what to do next.
524
524
 
525
525
  ---
526
526
 
527
- ## Agent Transparency (v6.2.0)
527
+ ## Agent Transparency (v7.1.0)
528
528
 
529
529
  ### Agent Manual (Universal Protocols)
530
530
  {{INCLUDE:agent-protocols/AGENT_MANUAL.md}}
@@ -229,7 +229,7 @@ Present the plan and ask:
229
229
 
230
230
  ---
231
231
 
232
- ## Agent Transparency (v6.2.0)
232
+ ## Agent Transparency (v7.1.0)
233
233
 
234
234
  ### Agent Manual (Universal Protocols)
235
235
  {{INCLUDE:agent-protocols/AGENT_MANUAL.md}}
@@ -354,7 +354,7 @@ The validation ensures generated PRDs are immediately usable for AI consumption
354
354
 
355
355
  ---
356
356
 
357
- ## Agent Transparency (v6.2.0)
357
+ ## Agent Transparency (v7.1.0)
358
358
 
359
359
  ### Agent Manual (Universal Protocols)
360
360
  {{INCLUDE:agent-protocols/AGENT_MANUAL.md}}
@@ -415,7 +415,7 @@ I'll update the PRD and add this to the refinement history. Confirm?
415
415
 
416
416
  ---
417
417
 
418
- ## Agent Transparency (v6.2.0)
418
+ ## Agent Transparency (v7.1.0)
419
419
 
420
420
  ### Agent Manual (Universal Protocols)
421
421
  {{INCLUDE:agent-protocols/AGENT_MANUAL.md}}
@@ -447,7 +447,7 @@ consistent with the project's conventions.
447
447
 
448
448
  ---
449
449
 
450
- ## Agent Transparency (v6.2.0)
450
+ ## Agent Transparency (v7.1.0)
451
451
 
452
452
  ### Agent Manual (Universal Protocols)
453
453
  {{INCLUDE:agent-protocols/AGENT_MANUAL.md}}
@@ -230,7 +230,7 @@ The goal is natural exploration of requirements, not a rigid questionnaire. Foll
230
230
 
231
231
  ---
232
232
 
233
- ## Agent Transparency (v6.2.0)
233
+ ## Agent Transparency (v7.1.0)
234
234
 
235
235
  ### Agent Manual (Universal Protocols)
236
236
  {{INCLUDE:agent-protocols/AGENT_MANUAL.md}}
@@ -409,7 +409,7 @@ The `/clavix:summarize` command extracts requirements from exploratory conversat
409
409
 
410
410
  ---
411
411
 
412
- ## Agent Transparency (v6.2.0)
412
+ ## Agent Transparency (v7.1.0)
413
413
 
414
414
  ### Agent Manual (Universal Protocols)
415
415
  {{INCLUDE:agent-protocols/AGENT_MANUAL.md}}
@@ -123,7 +123,7 @@ Implementation: BLOCKED - I'll analyze and report, not modify or fix
123
123
 
124
124
  ----
125
125
 
126
- ## Agent Transparency (v6.2.0)
126
+ ## Agent Transparency (v7.1.0)
127
127
 
128
128
  ### Agent Manual (Universal Protocols)
129
129
  {{INCLUDE:agent-protocols/AGENT_MANUAL.md}}
@@ -9,7 +9,7 @@
9
9
  /**
10
10
  * Skill installation scope
11
11
  */
12
- export type SkillScope = 'global' | 'project';
12
+ export type SkillScope = 'global' | 'project' | 'custom';
13
13
  /**
14
14
  * Skill template with optional references
15
15
  * Used during skill generation
@@ -71,7 +71,7 @@ export interface SkillDirectory {
71
71
  * Skills configuration options
72
72
  */
73
73
  export interface SkillsConfig {
74
- /** Installation scope: 'global' or 'project' */
74
+ /** Installation scope: 'global', 'project', or 'custom' */
75
75
  scope: SkillScope;
76
76
  /** Custom directory path (overrides default based on scope) */
77
77
  customPath?: string;
@@ -21,6 +21,7 @@ export async function selectIntegrations(agentManager, preSelected = []) {
21
21
  new inquirer.Separator('=== Agent Skills (agentskills.io) ==='),
22
22
  { name: 'Agent Skills - Global (~/.config/agents/skills/)', value: 'agent-skills-global' },
23
23
  { name: 'Agent Skills - Project (.skills/)', value: 'agent-skills-project' },
24
+ { name: 'Agent Skills - Custom Path', value: 'agent-skills-custom' },
24
25
  new inquirer.Separator(),
25
26
  new inquirer.Separator('=== CLI Tools ==='),
26
27
  { name: 'Amp (.agents/commands/)', value: 'amp' },
@@ -83,7 +84,9 @@ export function ensureMandatoryIntegrations(integrations) {
83
84
  * Check if agent skills integration is selected
84
85
  */
85
86
  export function hasAgentSkillsSelected(integrations) {
86
- return integrations.includes('agent-skills-global') || integrations.includes('agent-skills-project');
87
+ return (integrations.includes('agent-skills-global') ||
88
+ integrations.includes('agent-skills-project') ||
89
+ integrations.includes('agent-skills-custom'));
87
90
  }
88
91
  /**
89
92
  * Get the skill scope from integration name
@@ -93,12 +96,16 @@ export function getSkillScope(integrationName) {
93
96
  return 'global';
94
97
  if (integrationName === 'agent-skills-project')
95
98
  return 'project';
99
+ if (integrationName === 'agent-skills-custom')
100
+ return 'custom';
96
101
  return null;
97
102
  }
98
103
  /**
99
104
  * Check if integration name is an agent skills integration
100
105
  */
101
106
  export function isAgentSkillsIntegration(name) {
102
- return name === 'agent-skills-global' || name === 'agent-skills-project';
107
+ return (name === 'agent-skills-global' ||
108
+ name === 'agent-skills-project' ||
109
+ name === 'agent-skills-custom');
103
110
  }
104
111
  //# sourceMappingURL=integration-selector.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clavix",
3
- "version": "6.2.0",
3
+ "version": "7.1.0",
4
4
  "description": "Agentic-first prompt workflows. Markdown templates that teach AI agents how to optimize prompts, create PRDs, and manage implementation.\n\nSLASH COMMANDS (in your AI assistant):\n /clavix:improve Optimize prompts with auto-depth\n /clavix:prd Generate PRD through questions\n /clavix:plan Create task breakdown from PRD\n /clavix:implement Execute tasks with progress tracking\n /clavix:start Begin conversational session\n /clavix:summarize Extract requirements from conversation\n /clavix:refine Refine existing PRD or prompt\n /clavix:verify Verify implementation against requirements\n /clavix:review Review teammate PRs with criteria\n /clavix:archive Archive completed projects\n\nWorks with Claude Code, Cursor, Windsurf, and 20 AI coding tools.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",