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 +43 -130
- package/dist/cli/commands/init.js +70 -3
- package/dist/core/adapters/agent-skills-adapter.d.ts +5 -0
- package/dist/core/adapters/agent-skills-adapter.js +37 -6
- package/dist/core/agent-manager.js +2 -1
- package/dist/templates/slash-commands/_canonical/archive.md +1 -1
- package/dist/templates/slash-commands/_canonical/implement.md +1 -1
- package/dist/templates/slash-commands/_canonical/improve.md +1 -1
- package/dist/templates/slash-commands/_canonical/plan.md +1 -1
- package/dist/templates/slash-commands/_canonical/prd.md +1 -1
- package/dist/templates/slash-commands/_canonical/refine.md +1 -1
- package/dist/templates/slash-commands/_canonical/review.md +1 -1
- package/dist/templates/slash-commands/_canonical/start.md +1 -1
- package/dist/templates/slash-commands/_canonical/summarize.md +1 -1
- package/dist/templates/slash-commands/_canonical/verify.md +1 -1
- package/dist/types/skill.d.ts +2 -2
- package/dist/utils/integration-selector.js +9 -2
- package/package.json +1 -1
- package/dist/templates/agents/agents 2.md +0 -200
- package/dist/templates/agents/agents 5.md +0 -200
- package/dist/templates/agents/octo 2.md +0 -237
- package/dist/templates/agents/octo 4.md +0 -237
package/README.md
CHANGED
|
@@ -1,170 +1,83 @@
|
|
|
1
1
|
# Clavix
|
|
2
2
|
|
|
3
|
-
> Agentic
|
|
3
|
+
> Agentic prompt workflows as skills. Works with any [agentskills.io](https://agentskills.io) compatible AI tool.
|
|
4
4
|
|
|
5
|
-
##
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
### 2. Use Slash Commands
|
|
12
|
+
Select **Agent Skills** during setup. Choose global (`~/.config/agents/skills/`) or project (`.skills/`) scope.
|
|
38
13
|
|
|
39
|
-
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|
-
|
|
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
|
-
|
|
32
|
+
Quick: clavix-improve → clavix-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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
46
|
+
## Other Integrations
|
|
118
47
|
|
|
119
|
-
|
|
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
|
|
126
|
-
| CLI agents | Claude Code, Gemini CLI, Qwen
|
|
127
|
-
| Universal
|
|
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
|
-
|
|
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
|
|
138
|
-
| `clavix update` | Regenerate templates
|
|
139
|
-
| `clavix diagnose` | Check installation
|
|
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
|
-
|
|
69
|
+
## Docs
|
|
143
70
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
- [
|
|
147
|
-
- [
|
|
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
|
-
-
|
|
155
|
-
-
|
|
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 =
|
|
296
|
-
|
|
297
|
-
|
|
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
|
-
|
|
35
|
-
|
|
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
|
-
|
|
38
|
-
|
|
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
|
-
|
|
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 (
|
|
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
|
|
@@ -354,7 +354,7 @@ The validation ensures generated PRDs are immediately usable for AI consumption
|
|
|
354
354
|
|
|
355
355
|
---
|
|
356
356
|
|
|
357
|
-
## Agent Transparency (
|
|
357
|
+
## Agent Transparency (v7.1.0)
|
|
358
358
|
|
|
359
359
|
### Agent Manual (Universal Protocols)
|
|
360
360
|
{{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 (
|
|
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 (
|
|
412
|
+
## Agent Transparency (v7.1.0)
|
|
413
413
|
|
|
414
414
|
### Agent Manual (Universal Protocols)
|
|
415
415
|
{{INCLUDE:agent-protocols/AGENT_MANUAL.md}}
|
package/dist/types/skill.d.ts
CHANGED
|
@@ -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 '
|
|
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') ||
|
|
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' ||
|
|
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": "
|
|
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",
|