clavix 1.5.3 → 1.6.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 +3 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +5 -0
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/core/adapters/base-adapter.d.ts.map +1 -1
- package/dist/core/adapters/base-adapter.js +15 -5
- package/dist/core/adapters/base-adapter.js.map +1 -1
- package/dist/core/adapters/crush-adapter.d.ts +35 -0
- package/dist/core/adapters/crush-adapter.d.ts.map +1 -0
- package/dist/core/adapters/crush-adapter.js +49 -0
- package/dist/core/adapters/crush-adapter.js.map +1 -0
- package/dist/core/agent-manager.d.ts.map +1 -1
- package/dist/core/agent-manager.js +2 -0
- package/dist/core/agent-manager.js.map +1 -1
- package/dist/templates/agents/agents.md +8 -169
- package/dist/templates/slash-commands/crush/archive.md +164 -0
- package/dist/templates/slash-commands/crush/deep.md +147 -0
- package/dist/templates/slash-commands/crush/fast.md +136 -0
- package/dist/templates/slash-commands/crush/implement.md +116 -0
- package/dist/templates/slash-commands/crush/plan.md +69 -0
- package/dist/templates/slash-commands/crush/prd.md +80 -0
- package/dist/templates/slash-commands/crush/start.md +66 -0
- package/dist/templates/slash-commands/crush/summarize.md +99 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -72,11 +72,14 @@ Lo, L. S. (2023). "The CLEAR Path: A Framework for Enhancing Information Literac
|
|
|
72
72
|
| **Droid CLI** | ✅ | `.factory/commands/` | Fully Supported |
|
|
73
73
|
| **OpenCode** | ✅ | `.opencode/command/` | Fully Supported |
|
|
74
74
|
| **Amp** | ✅ | `.agents/commands/` | Fully Supported |
|
|
75
|
+
| **Crush CLI** | ✅ | `.crush/commands/clavix/` | Fully Supported |
|
|
75
76
|
| **Universal (agents.md)** | ⚡ No slash commands | `AGENTS.md` | Fully Supported |
|
|
76
77
|
|
|
77
78
|
**Features:**
|
|
78
79
|
- **Multi-Select Support** - Choose multiple tools during `clavix init` (Space to select, Enter to confirm)
|
|
79
80
|
- **Provider-Specific Formatting** - Automatically generates commands in each tool's native format
|
|
81
|
+
- Crush CLI uses `$PROMPT` placeholder (vs generic `{{ARGS}}`)
|
|
82
|
+
- Commands accessible via Ctrl+P or `/` in Crush terminal
|
|
80
83
|
- **Universal Fallback** - `agents.md` provides workflow instructions for tools without slash command support
|
|
81
84
|
- **Slash Commands** - `/clavix:fast`, `/clavix:deep`, `/clavix:prd`, `/clavix:plan`, `/clavix:implement`, `/clavix:archive`, `/clavix:start`, `/clavix:summarize` available in all supported tools
|
|
82
85
|
- **Managed Documentation** - Auto-inject and update instructions in `AGENTS.md` and `CLAUDE.md` with safe managed blocks
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAatC,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO;IACvC,MAAM,CAAC,WAAW,SAA8C;IAEhE,MAAM,CAAC,QAAQ,WAEb;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAatC,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO;IACvC,MAAM,CAAC,WAAW,SAA8C;IAEhE,MAAM,CAAC,QAAQ,WAEb;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAqLZ,wBAAwB;YAaxB,cAAc;YAWd,oBAAoB;YAqDpB,qBAAqB;YAoBrB,mBAAmB;YAYnB,kBAAkB;IAoChC,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,kBAAkB;CAI3B"}
|
|
@@ -97,6 +97,10 @@ class Init extends core_1.Command {
|
|
|
97
97
|
name: 'Amp (.agents/commands/)',
|
|
98
98
|
value: 'amp',
|
|
99
99
|
},
|
|
100
|
+
{
|
|
101
|
+
name: 'Crush CLI (.crush/commands/clavix/)',
|
|
102
|
+
value: 'crush',
|
|
103
|
+
},
|
|
100
104
|
new inquirer_1.default.Separator(),
|
|
101
105
|
{
|
|
102
106
|
name: 'agents.md (Universal - for tools without slash commands)',
|
|
@@ -107,6 +111,7 @@ class Init extends core_1.Command {
|
|
|
107
111
|
name: 'Octofriend (OCTO.md - optimized for Octofriend)',
|
|
108
112
|
value: 'octo-md',
|
|
109
113
|
},
|
|
114
|
+
new inquirer_1.default.Separator(),
|
|
110
115
|
],
|
|
111
116
|
validate: (answer) => {
|
|
112
117
|
if (answer.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,wDAAgC;AAChC,kDAA0B;AAC1B,2CAA6B;AAC7B,kDAA0B;AAC1B,4DAAwD;AACxD,0DAAsD;AACtD,iFAA4E;AAC5E,6EAAwE;AACxE,yDAAqD;AACrD,+CAAkE;AAGlE,MAAqB,IAAK,SAAQ,cAAO;IAOvC,KAAK,CAAC,GAAG;QACP,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAE7D,IAAI,CAAC;YACH,+BAA+B;YAC/B,IAAI,MAAM,wBAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;oBACvC;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,8CAA8C;wBACvD,OAAO,EAAE,KAAK;qBACf;iBACF,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC;oBAC5D,OAAO;gBACT,CAAC;YACH,CAAC;YAED,kCAAkC;YAClC,MAAM,YAAY,GAAG,IAAI,4BAAY,EAAE,CAAC;YAExC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;YAEjE,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBAClD;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,+BAA+B;oBACxC,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,wCAAwC;4BAC9C,KAAK,EAAE,aAAa;4BACpB,OAAO,EAAE,IAAI;yBACd;wBACD;4BACE,IAAI,EAAE,4BAA4B;4BAClC,KAAK,EAAE,QAAQ;yBAChB;wBACD;4BACE,IAAI,EAAE,gCAAgC;4BACtC,KAAK,EAAE,OAAO;yBACf;wBACD;4BACE,IAAI,EAAE,+BAA+B;4BACrC,KAAK,EAAE,UAAU;yBAClB;wBACD;4BACE,IAAI,EAAE,yBAAyB;4BAC/B,KAAK,EAAE,KAAK;yBACb;wBACD,IAAI,kBAAQ,CAAC,SAAS,EAAE;wBACxB;4BACE,IAAI,EAAE,0DAA0D;4BAChE,KAAK,EAAE,WAAW;4BAClB,OAAO,EAAE,IAAI;yBACd;wBACD;4BACE,IAAI,EAAE,iDAAiD;4BACvD,KAAK,EAAE,SAAS;yBACjB;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-adapter.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/base-adapter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAI3B;;;GAGG;AACH,8BAAsB,WAAY,YAAW,YAAY;IACvD,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAErC,QAAQ,CAAC,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAC1C,QAAQ,CAAC,cAAc,IAAI,MAAM;IAEjC;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"base-adapter.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/base-adapter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAI3B;;;GAGG;AACH,8BAAsB,WAAY,YAAW,YAAY;IACvD,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAErC,QAAQ,CAAC,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAC1C,QAAQ,CAAC,cAAc,IAAI,MAAM;IAEjC;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAkD3C;;;OAGG;IACG,gBAAgB,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBnE;;;;OAIG;IACH,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM;IAI1D;;;OAGG;IACG,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjE;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;CAG3C"}
|
|
@@ -53,14 +53,24 @@ class BaseAdapter {
|
|
|
53
53
|
// Check if parent directory exists
|
|
54
54
|
const parentDir = path.dirname(commandPath);
|
|
55
55
|
if (!(await file_system_1.FileSystem.exists(parentDir))) {
|
|
56
|
-
// Check if we can create parent
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
// Check if we can create parent by finding first existing ancestor
|
|
57
|
+
let ancestorDir = parentDir;
|
|
58
|
+
let canCreate = false;
|
|
59
|
+
// Walk up the directory tree until we find an existing directory
|
|
60
|
+
while (ancestorDir !== '.' && ancestorDir !== '/' && ancestorDir.length > 0) {
|
|
61
|
+
ancestorDir = path.dirname(ancestorDir);
|
|
62
|
+
if (await file_system_1.FileSystem.exists(ancestorDir)) {
|
|
63
|
+
canCreate = true;
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
60
66
|
}
|
|
61
|
-
|
|
67
|
+
// If we reached '.' or '/', it means we can create the directory
|
|
68
|
+
if (ancestorDir === '.' || ancestorDir === '/' || canCreate) {
|
|
62
69
|
warnings.push(`Parent directory ${parentDir} will be created`);
|
|
63
70
|
}
|
|
71
|
+
else {
|
|
72
|
+
errors.push(`Parent directory ${parentDir} does not exist and cannot be created`);
|
|
73
|
+
}
|
|
64
74
|
}
|
|
65
75
|
// Try to ensure directory exists
|
|
66
76
|
if (errors.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-adapter.js","sourceRoot":"","sources":["../../../src/core/adapters/base-adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAQ7B,yDAAqD;AACrD,+CAAsD;AAEtD;;;GAGG;AACH,MAAsB,WAAW;IAU/B;;;OAGG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAE1C,mCAAmC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,CAAC,MAAM,wBAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAC1C,
|
|
1
|
+
{"version":3,"file":"base-adapter.js","sourceRoot":"","sources":["../../../src/core/adapters/base-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { BaseAdapter } from './base-adapter';
|
|
2
|
+
import { CommandTemplate } from '../../types/agent';
|
|
3
|
+
/**
|
|
4
|
+
* Crush CLI adapter
|
|
5
|
+
* Commands stored in .crush/commands/clavix/ (supports subdirectories)
|
|
6
|
+
* Uses $PROMPT placeholder for user input (Crush-specific syntax)
|
|
7
|
+
*
|
|
8
|
+
* Reference: https://github.com/charmbracelet/crush/blob/main/COMMANDS.md
|
|
9
|
+
*/
|
|
10
|
+
export declare class CrushAdapter extends BaseAdapter {
|
|
11
|
+
readonly name = "crush";
|
|
12
|
+
readonly displayName = "Crush CLI";
|
|
13
|
+
readonly directory = ".crush/commands/clavix";
|
|
14
|
+
readonly fileExtension = ".md";
|
|
15
|
+
readonly features: {
|
|
16
|
+
supportsSubdirectories: boolean;
|
|
17
|
+
supportsFrontmatter: boolean;
|
|
18
|
+
argumentPlaceholder: string;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Detect if Crush is available in the project
|
|
22
|
+
* Checks for .crush directory (project-level commands)
|
|
23
|
+
*/
|
|
24
|
+
detectProject(): Promise<boolean>;
|
|
25
|
+
/**
|
|
26
|
+
* Get command path for Crush
|
|
27
|
+
*/
|
|
28
|
+
getCommandPath(): string;
|
|
29
|
+
/**
|
|
30
|
+
* Format command content for Crush
|
|
31
|
+
* Replaces generic {{ARGS}} placeholder with Crush-specific $PROMPT
|
|
32
|
+
*/
|
|
33
|
+
protected formatCommand(template: CommandTemplate): string;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=crush-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crush-adapter.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/crush-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD;;;;;;GAMG;AACH,qBAAa,YAAa,SAAQ,WAAW;IAC3C,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,WAAW,eAAe;IACnC,QAAQ,CAAC,SAAS,4BAA4B;IAC9C,QAAQ,CAAC,aAAa,SAAS;IAC/B,QAAQ,CAAC,QAAQ;;;;MAIf;IAEF;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAIvC;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;;OAGG;IACH,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM;CAI3D"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CrushAdapter = void 0;
|
|
4
|
+
const base_adapter_1 = require("./base-adapter");
|
|
5
|
+
const file_system_1 = require("../../utils/file-system");
|
|
6
|
+
/**
|
|
7
|
+
* Crush CLI adapter
|
|
8
|
+
* Commands stored in .crush/commands/clavix/ (supports subdirectories)
|
|
9
|
+
* Uses $PROMPT placeholder for user input (Crush-specific syntax)
|
|
10
|
+
*
|
|
11
|
+
* Reference: https://github.com/charmbracelet/crush/blob/main/COMMANDS.md
|
|
12
|
+
*/
|
|
13
|
+
class CrushAdapter extends base_adapter_1.BaseAdapter {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this.name = 'crush';
|
|
17
|
+
this.displayName = 'Crush CLI';
|
|
18
|
+
this.directory = '.crush/commands/clavix';
|
|
19
|
+
this.fileExtension = '.md';
|
|
20
|
+
this.features = {
|
|
21
|
+
supportsSubdirectories: true,
|
|
22
|
+
supportsFrontmatter: false,
|
|
23
|
+
argumentPlaceholder: '$PROMPT',
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Detect if Crush is available in the project
|
|
28
|
+
* Checks for .crush directory (project-level commands)
|
|
29
|
+
*/
|
|
30
|
+
async detectProject() {
|
|
31
|
+
return await file_system_1.FileSystem.exists('.crush');
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get command path for Crush
|
|
35
|
+
*/
|
|
36
|
+
getCommandPath() {
|
|
37
|
+
return this.directory;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Format command content for Crush
|
|
41
|
+
* Replaces generic {{ARGS}} placeholder with Crush-specific $PROMPT
|
|
42
|
+
*/
|
|
43
|
+
formatCommand(template) {
|
|
44
|
+
// Replace Clavix generic placeholder with Crush placeholder
|
|
45
|
+
return template.content.replace(/\{\{ARGS\}\}/g, '$PROMPT');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.CrushAdapter = CrushAdapter;
|
|
49
|
+
//# sourceMappingURL=crush-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crush-adapter.js","sourceRoot":"","sources":["../../../src/core/adapters/crush-adapter.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAE7C,yDAAqD;AAErD;;;;;;GAMG;AACH,MAAa,YAAa,SAAQ,0BAAW;IAA7C;;QACW,SAAI,GAAG,OAAO,CAAC;QACf,gBAAW,GAAG,WAAW,CAAC;QAC1B,cAAS,GAAG,wBAAwB,CAAC;QACrC,kBAAa,GAAG,KAAK,CAAC;QACtB,aAAQ,GAAG;YAClB,sBAAsB,EAAE,IAAI;YAC5B,mBAAmB,EAAE,KAAK;YAC1B,mBAAmB,EAAE,SAAS;SAC/B,CAAC;IAyBJ,CAAC;IAvBC;;;OAGG;IACH,KAAK,CAAC,aAAa;QACjB,OAAO,MAAM,wBAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;OAGG;IACO,aAAa,CAAC,QAAyB;QAC/C,4DAA4D;QAC5D,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAC9D,CAAC;CACF;AAlCD,oCAkCC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-manager.d.ts","sourceRoot":"","sources":["../../src/core/agent-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-manager.d.ts","sourceRoot":"","sources":["../../src/core/agent-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAShE;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAwC;;IAYxD;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAI5C;;OAEG;IACH,WAAW,IAAI,YAAY,EAAE;IAI7B;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIlD;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAY7C;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;IAW1C;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI/B;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;;OAGG;IACG,gBAAgB,CACpB,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAgBzC;;;OAGG;IACH,iBAAiB,IAAI,KAAK,CAAC;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CAOH"}
|
|
@@ -6,6 +6,7 @@ const cursor_adapter_1 = require("./adapters/cursor-adapter");
|
|
|
6
6
|
const droid_adapter_1 = require("./adapters/droid-adapter");
|
|
7
7
|
const opencode_adapter_1 = require("./adapters/opencode-adapter");
|
|
8
8
|
const amp_adapter_1 = require("./adapters/amp-adapter");
|
|
9
|
+
const crush_adapter_1 = require("./adapters/crush-adapter");
|
|
9
10
|
const errors_1 = require("../types/errors");
|
|
10
11
|
/**
|
|
11
12
|
* Agent Manager - handles agent detection and registration
|
|
@@ -19,6 +20,7 @@ class AgentManager {
|
|
|
19
20
|
this.registerAdapter(new droid_adapter_1.DroidAdapter());
|
|
20
21
|
this.registerAdapter(new opencode_adapter_1.OpenCodeAdapter());
|
|
21
22
|
this.registerAdapter(new amp_adapter_1.AmpAdapter());
|
|
23
|
+
this.registerAdapter(new crush_adapter_1.CrushAdapter());
|
|
22
24
|
}
|
|
23
25
|
/**
|
|
24
26
|
* Register a new agent adapter
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-manager.js","sourceRoot":"","sources":["../../src/core/agent-manager.ts"],"names":[],"mappings":";;;AACA,wEAAmE;AACnE,8DAA0D;AAC1D,4DAAwD;AACxD,kEAA8D;AAC9D,wDAAoD;AACpD,4CAAmD;AAEnD;;GAEG;AACH,MAAa,YAAY;IAGvB;QAFQ,aAAQ,GAA8B,IAAI,GAAG,EAAE,CAAC;QAGtD,iCAAiC;QACjC,IAAI,CAAC,eAAe,CAAC,IAAI,uCAAiB,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,eAAe,CAAC,IAAI,8BAAa,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,eAAe,CAAC,IAAI,4BAAY,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,IAAI,kCAAe,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,eAAe,CAAC,IAAI,wBAAU,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-manager.js","sourceRoot":"","sources":["../../src/core/agent-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,173 +1,12 @@
|
|
|
1
|
-
# Clavix
|
|
1
|
+
# Clavix Workflows
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Quick workflow instructions for AI tools.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Fast Mode
|
|
6
|
+
Use for quick prompt improvements.
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
## Deep Mode
|
|
9
|
+
Use for comprehensive analysis.
|
|
8
10
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
**When to use:** User wants to create a Product Requirements Document through guided questions
|
|
13
|
-
|
|
14
|
-
**Process:**
|
|
15
|
-
1. Explain that you'll guide them through 7 strategic questions to create a comprehensive PRD
|
|
16
|
-
2. Ask questions one at a time (wait for answer before proceeding):
|
|
17
|
-
- **Q1**: What problem are you solving? Who experiences it?
|
|
18
|
-
- **Q2**: Who will use this? Key characteristics and needs?
|
|
19
|
-
- **Q3**: Must-have features (3-5 core features)?
|
|
20
|
-
- **Q4**: How will you measure success? Key metrics?
|
|
21
|
-
- **Q5**: Technical requirements, integrations, performance needs?
|
|
22
|
-
- **Q6**: What's explicitly NOT in scope for this version?
|
|
23
|
-
- **Q7**: Any deadlines or milestones?
|
|
24
|
-
|
|
25
|
-
3. After collecting all answers, generate TWO documents:
|
|
26
|
-
- **Full PRD** (comprehensive with all sections: Problem Statement, Target Users, Requirements, Success Metrics, Out of Scope, Timeline)
|
|
27
|
-
- **Quick PRD** (2-3 concise paragraphs optimized for AI consumption)
|
|
28
|
-
|
|
29
|
-
4. Save both to `.clavix/outputs/[project-name]/` if filesystem access available
|
|
30
|
-
5. Display file paths and suggest next steps
|
|
31
|
-
|
|
32
|
-
**Important:** Be conversational, ask follow-up questions if answers are vague, help users think through edge cases.
|
|
33
|
-
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
### Fast Prompt Improvement Workflow
|
|
37
|
-
**Trigger Keywords:** improve prompt, quick fix, make better, optimize prompt, fast improvement, CLEAR framework
|
|
38
|
-
|
|
39
|
-
**When to use:** User wants quick improvements to their prompt
|
|
40
|
-
|
|
41
|
-
**Process:**
|
|
42
|
-
1. Analyze the prompt using CLEAR Framework (C, L, E components):
|
|
43
|
-
- **[C] Conciseness**: Identify verbosity, pleasantries, unnecessary words
|
|
44
|
-
- **[L] Logic**: Check sequencing and coherent flow
|
|
45
|
-
- **[E] Explicitness**: Verify persona, format, tone, success criteria
|
|
46
|
-
|
|
47
|
-
2. Assess if deep analysis is needed:
|
|
48
|
-
- Prompt < 20 characters?
|
|
49
|
-
- Missing 3+ critical elements?
|
|
50
|
-
- Contains vague words ("app", "system") without context?
|
|
51
|
-
- Low CLEAR scores (C<60%, L<60%, E<50%)?
|
|
52
|
-
|
|
53
|
-
**If YES:** Recommend deep analysis instead and explain why
|
|
54
|
-
|
|
55
|
-
3. Generate CLEAR-optimized structured prompt with sections:
|
|
56
|
-
- **Objective**: Clear, specific goal
|
|
57
|
-
- **Requirements**: Detailed, actionable requirements
|
|
58
|
-
- **Technical Constraints**: Technologies, performance, integrations
|
|
59
|
-
- **Expected Output**: What result should look like
|
|
60
|
-
- **Success Criteria**: How to measure completion
|
|
61
|
-
|
|
62
|
-
4. List **CLEAR Changes Made** with component labels:
|
|
63
|
-
- [C] "Removed 15 unnecessary words"
|
|
64
|
-
- [L] "Restructured: context → requirements → output"
|
|
65
|
-
- [E] "Added explicit persona, format, tone"
|
|
66
|
-
|
|
67
|
-
5. Present optimized prompt in code block for easy copying
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
### Deep Prompt Analysis Workflow
|
|
72
|
-
**Trigger Keywords:** deep analysis, comprehensive review, thorough examination, full CLEAR analysis, deep dive
|
|
73
|
-
|
|
74
|
-
**When to use:** User wants comprehensive prompt analysis with all CLEAR components
|
|
75
|
-
|
|
76
|
-
**Process:**
|
|
77
|
-
1. Apply **Full CLEAR Framework** (C, L, E, A, R):
|
|
78
|
-
- **[C] Conciseness**: Detailed verbosity analysis
|
|
79
|
-
- **[L] Logic**: Comprehensive flow analysis
|
|
80
|
-
- **[E] Explicitness**: Complete specification check
|
|
81
|
-
- **[A] Adaptive**: Generate 3-5 alternative phrasings and structures
|
|
82
|
-
- **[R] Reflective**: Create validation checklist, identify edge cases
|
|
83
|
-
|
|
84
|
-
2. Provide **CLEAR Scoring** (0-100% for each component)
|
|
85
|
-
|
|
86
|
-
3. Generate multiple outputs:
|
|
87
|
-
- **Primary optimized prompt** (all CLEAR components applied)
|
|
88
|
-
- **Alternative variations** (3-5 different approaches with Adaptive component)
|
|
89
|
-
- **Validation checklist** (Reflective component - edge cases, quality criteria)
|
|
90
|
-
|
|
91
|
-
4. Explain **CLEAR Changes Made** for each component with examples
|
|
92
|
-
|
|
93
|
-
5. Identify potential issues and mitigation strategies
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
### Conversational Mode Workflow
|
|
98
|
-
**Trigger Keywords:** start conversational mode, let's discuss requirements, talk through this, iterative development
|
|
99
|
-
|
|
100
|
-
**When to use:** User wants natural discussion about requirements before formalizing them
|
|
101
|
-
|
|
102
|
-
**Process:**
|
|
103
|
-
1. Acknowledge entering conversational mode
|
|
104
|
-
2. Engage in natural discussion about requirements:
|
|
105
|
-
- Ask clarifying questions as needed
|
|
106
|
-
- Explore implications and alternatives
|
|
107
|
-
- Track key points throughout conversation
|
|
108
|
-
3. Remind user they can say "summarize" when ready to extract structured prompt
|
|
109
|
-
4. Stay in this mode until user triggers summarization
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
### Summarization Workflow
|
|
114
|
-
**Trigger Keywords:** summarize conversation, extract requirements, create prompt from discussion
|
|
115
|
-
|
|
116
|
-
**When to use:** User wants to extract structured prompt from conversational discussion
|
|
117
|
-
|
|
118
|
-
**Process:**
|
|
119
|
-
1. Analyze the entire conversation thread
|
|
120
|
-
2. Extract:
|
|
121
|
-
- Core problem/objective
|
|
122
|
-
- Key requirements and constraints
|
|
123
|
-
- Technical specifications mentioned
|
|
124
|
-
- Success criteria discussed
|
|
125
|
-
- Important context and assumptions
|
|
126
|
-
|
|
127
|
-
3. Generate two outputs:
|
|
128
|
-
- **Structured prompt** (2-3 well-formed paragraphs ready for AI)
|
|
129
|
-
- **Mini-PRD** (if discussion was substantial - include Problem, Solution, Requirements, Success Metrics)
|
|
130
|
-
|
|
131
|
-
4. Present in markdown with clear sections
|
|
132
|
-
|
|
133
|
-
---
|
|
134
|
-
|
|
135
|
-
## 📝 Workflow Selection Guide
|
|
136
|
-
|
|
137
|
-
**User mentions PRD, requirements doc, strategic planning:**
|
|
138
|
-
→ Use PRD Generation Workflow
|
|
139
|
-
|
|
140
|
-
**User has a prompt and wants quick improvement:**
|
|
141
|
-
→ Use Fast Prompt Improvement (CLEAR C, L, E)
|
|
142
|
-
|
|
143
|
-
**User wants thorough analysis or mentions alternatives/edge cases:**
|
|
144
|
-
→ Use Deep Analysis (Full CLEAR: C, L, E, A, R)
|
|
145
|
-
|
|
146
|
-
**User wants to discuss/explore before committing:**
|
|
147
|
-
→ Use Conversational Mode
|
|
148
|
-
|
|
149
|
-
**After conversation, user wants to formalize:**
|
|
150
|
-
→ Use Summarization Workflow
|
|
151
|
-
|
|
152
|
-
---
|
|
153
|
-
|
|
154
|
-
## 💡 Usage Tips
|
|
155
|
-
|
|
156
|
-
- **Always save outputs** to `.clavix/outputs/` when possible
|
|
157
|
-
- **Use markdown formatting** for all outputs
|
|
158
|
-
- **Be conversational and supportive** - this is a collaborative process
|
|
159
|
-
- **Ask follow-up questions** when requirements are vague or incomplete
|
|
160
|
-
- **Apply CLEAR Framework** systematically in prompt improvement workflows
|
|
161
|
-
- **Reference CLEAR components** ([C], [L], [E], [A], [R]) when explaining changes
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
|
|
165
|
-
## 🎯 Success Criteria
|
|
166
|
-
|
|
167
|
-
Your goal is to help users:
|
|
168
|
-
- Create clear, comprehensive PRDs through guided questioning
|
|
169
|
-
- Improve prompts using CLEAR Framework principles
|
|
170
|
-
- Think through requirements systematically
|
|
171
|
-
- Produce outputs that lead to better AI interactions
|
|
172
|
-
|
|
173
|
-
Always prioritize **clarity, completeness, and actionability** in all outputs.
|
|
11
|
+
## PRD Mode
|
|
12
|
+
Use for strategic planning.
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Clavix: Archive"
|
|
3
|
+
description: Archive completed PRD projects
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Clavix Archive - PRD Project Archival
|
|
7
|
+
|
|
8
|
+
You are helping the user archive completed PRD projects to keep their workspace organized.
|
|
9
|
+
|
|
10
|
+
## Instructions
|
|
11
|
+
|
|
12
|
+
1. **Understanding Archive**:
|
|
13
|
+
- Archives move completed PRD projects from `.clavix/outputs/` to `.clavix/outputs/archive/`
|
|
14
|
+
- Archived projects are no longer shown in active project lists
|
|
15
|
+
- Projects can be restored from archive if needed
|
|
16
|
+
- Only projects with all tasks completed should typically be archived
|
|
17
|
+
|
|
18
|
+
2. **Interactive Archive Mode**:
|
|
19
|
+
```bash
|
|
20
|
+
clavix archive
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
This will:
|
|
24
|
+
- List all PRD projects with 100% tasks completed
|
|
25
|
+
- Allow user to select which project to archive
|
|
26
|
+
- Confirm before archiving
|
|
27
|
+
- Move the project to archive directory
|
|
28
|
+
|
|
29
|
+
3. **Archive Specific Project**:
|
|
30
|
+
```bash
|
|
31
|
+
clavix archive [project-name]
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
This will:
|
|
35
|
+
- Check task completion status
|
|
36
|
+
- Warn if tasks are incomplete
|
|
37
|
+
- Ask for confirmation
|
|
38
|
+
- Archive the specific project
|
|
39
|
+
|
|
40
|
+
4. **Force Archive (Incomplete Tasks)**:
|
|
41
|
+
```bash
|
|
42
|
+
clavix archive [project-name] --force
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Use this when:
|
|
46
|
+
- Project scope changed and some tasks are no longer relevant
|
|
47
|
+
- User wants to archive work-in-progress
|
|
48
|
+
- Tasks are incomplete but project is done
|
|
49
|
+
|
|
50
|
+
5. **List Archived Projects**:
|
|
51
|
+
```bash
|
|
52
|
+
clavix archive --list
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Shows all projects currently in archive with their task completion status
|
|
56
|
+
|
|
57
|
+
6. **Restore from Archive**:
|
|
58
|
+
```bash
|
|
59
|
+
clavix archive --restore [project-name]
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Moves a project back from archive to active outputs
|
|
63
|
+
|
|
64
|
+
## When to Archive
|
|
65
|
+
|
|
66
|
+
✅ **Good times to archive**:
|
|
67
|
+
- All implementation tasks are completed (`tasks.md` shows 100%)
|
|
68
|
+
- Project has been deployed/shipped to production
|
|
69
|
+
- Feature is complete and no more work planned
|
|
70
|
+
- User explicitly requests archival
|
|
71
|
+
- Old/abandoned projects that won't be continued
|
|
72
|
+
|
|
73
|
+
❌ **Don't archive when**:
|
|
74
|
+
- Tasks are still in progress (unless using --force)
|
|
75
|
+
- Project is actively being worked on
|
|
76
|
+
- Future enhancements are planned in current tasks
|
|
77
|
+
|
|
78
|
+
## Archive Behavior
|
|
79
|
+
|
|
80
|
+
**What gets archived:**
|
|
81
|
+
- The entire PRD project folder
|
|
82
|
+
- All files: PRD.md, PRD-quick.md, tasks.md, .clavix-implement-config.json
|
|
83
|
+
- Complete directory structure preserved
|
|
84
|
+
|
|
85
|
+
**Where it goes:**
|
|
86
|
+
- From: `.clavix/outputs/[project-name]/`
|
|
87
|
+
- To: `.clavix/outputs/archive/[project-name]/`
|
|
88
|
+
|
|
89
|
+
**What changes:**
|
|
90
|
+
- Archived projects won't show in `/clavix:plan` searches
|
|
91
|
+
- Archived projects won't show in `/clavix:implement` searches
|
|
92
|
+
- They're still accessible in archive directory
|
|
93
|
+
- Can be restored at any time
|
|
94
|
+
|
|
95
|
+
## Example Workflows
|
|
96
|
+
|
|
97
|
+
### Workflow 1: Complete Project
|
|
98
|
+
```
|
|
99
|
+
User: "I've finished implementing the user authentication feature"
|
|
100
|
+
You: "Great! Let me help you archive it."
|
|
101
|
+
|
|
102
|
+
Run: clavix archive
|
|
103
|
+
|
|
104
|
+
User selects: user-authentication-system
|
|
105
|
+
System shows: All 15 tasks completed (100%)
|
|
106
|
+
User confirms: Yes, archive it
|
|
107
|
+
|
|
108
|
+
Result: Project moved to .clavix/outputs/archive/user-authentication-system/
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Workflow 2: Force Archive WIP
|
|
112
|
+
```
|
|
113
|
+
User: "We're pivoting, I want to archive the old API design even though tasks aren't done"
|
|
114
|
+
You: "I'll archive it with --force"
|
|
115
|
+
|
|
116
|
+
Run: clavix archive old-api-design --force
|
|
117
|
+
|
|
118
|
+
System shows: 8 incomplete tasks
|
|
119
|
+
User confirms: Yes, archive anyway
|
|
120
|
+
|
|
121
|
+
Result: Project archived despite incomplete tasks
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Workflow 3: Restore Archived Project
|
|
125
|
+
```
|
|
126
|
+
User: "Actually, we need to revisit that authentication feature"
|
|
127
|
+
You: "I'll restore it from the archive"
|
|
128
|
+
|
|
129
|
+
Run: clavix archive --restore user-authentication-system
|
|
130
|
+
|
|
131
|
+
Result: Project moved back to .clavix/outputs/user-authentication-system/
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## AI Agent Guidelines
|
|
135
|
+
|
|
136
|
+
When user mentions archiving or cleaning up projects:
|
|
137
|
+
|
|
138
|
+
1. **Check completion status first**:
|
|
139
|
+
- Run `clavix archive` to see archivable projects
|
|
140
|
+
- Review task completion percentages
|
|
141
|
+
- Suggest archiving only completed projects
|
|
142
|
+
|
|
143
|
+
2. **Confirm before archiving**:
|
|
144
|
+
- Always confirm which project to archive
|
|
145
|
+
- Mention the archive location
|
|
146
|
+
- Explain that it can be restored
|
|
147
|
+
|
|
148
|
+
3. **Use --force cautiously**:
|
|
149
|
+
- Only when user explicitly wants to archive incomplete work
|
|
150
|
+
- Explain which tasks will remain incomplete
|
|
151
|
+
- Confirm they won't lose data (just moving location)
|
|
152
|
+
|
|
153
|
+
4. **Suggest restoration**:
|
|
154
|
+
- If user mentions old work, check archive
|
|
155
|
+
- Use `clavix archive --list` to show what's archived
|
|
156
|
+
- Offer to restore if needed
|
|
157
|
+
|
|
158
|
+
## Tips
|
|
159
|
+
|
|
160
|
+
- Archive keeps your active projects list clean and focused
|
|
161
|
+
- Archived projects maintain all their data (nothing is deleted)
|
|
162
|
+
- Archive is searchable - you can still `grep` or find files in archive/
|
|
163
|
+
- Regular archiving improves `/clavix:plan` and `/clavix:implement` performance
|
|
164
|
+
- Use `--list` regularly to know what's been archived
|