@orderful/droid 0.10.5 → 0.11.1
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/.claude/CLAUDE.md +13 -6
- package/CHANGELOG.md +19 -0
- package/README.md +23 -24
- package/dist/bin/droid.js +9 -9
- package/dist/bin/droid.js.map +1 -1
- package/dist/commands/install.d.ts +1 -1
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +24 -23
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/setup.d.ts +3 -3
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +32 -28
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/skills.d.ts.map +1 -1
- package/dist/commands/skills.js +60 -53
- package/dist/commands/skills.js.map +1 -1
- package/dist/commands/tui.d.ts.map +1 -1
- package/dist/commands/tui.js +213 -319
- package/dist/commands/tui.js.map +1 -1
- package/dist/commands/uninstall.d.ts +1 -1
- package/dist/commands/uninstall.d.ts.map +1 -1
- package/dist/commands/uninstall.js +15 -6
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.d.ts +2 -2
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +9 -9
- package/dist/commands/update.js.map +1 -1
- package/dist/lib/agents.d.ts +11 -10
- package/dist/lib/agents.d.ts.map +1 -1
- package/dist/lib/agents.js +52 -54
- package/dist/lib/agents.js.map +1 -1
- package/dist/lib/config.d.ts +1 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +42 -5
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/platforms.d.ts +41 -0
- package/dist/lib/platforms.d.ts.map +1 -0
- package/dist/lib/platforms.js +52 -0
- package/dist/lib/platforms.js.map +1 -0
- package/dist/lib/skills.d.ts +19 -11
- package/dist/lib/skills.d.ts.map +1 -1
- package/dist/lib/skills.js +125 -99
- package/dist/lib/skills.js.map +1 -1
- package/dist/lib/tools.d.ts +30 -0
- package/dist/lib/tools.d.ts.map +1 -0
- package/dist/lib/tools.js +116 -0
- package/dist/lib/tools.js.map +1 -0
- package/dist/lib/types.d.ts +45 -2
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js +24 -5
- package/dist/lib/types.js.map +1 -1
- package/dist/tools/brain/TOOL.yaml +27 -0
- package/dist/tools/coach/TOOL.yaml +21 -0
- package/dist/tools/code-review/TOOL.yaml +18 -0
- package/dist/tools/comments/TOOL.yaml +27 -0
- package/dist/{skills → tools/comments/skills}/comments/SKILL.md +12 -3
- package/dist/{skills → tools/comments/skills}/comments/SKILL.yaml +1 -1
- package/dist/tools/project/TOOL.yaml +26 -0
- package/package.json +2 -2
- package/src/bin/droid.ts +9 -9
- package/src/commands/install.ts +24 -23
- package/src/commands/setup.test.ts +2 -2
- package/src/commands/setup.ts +33 -29
- package/src/commands/skills.ts +63 -64
- package/src/commands/tui.tsx +432 -578
- package/src/commands/uninstall.ts +17 -6
- package/src/commands/update.ts +10 -10
- package/src/lib/agents.ts +58 -58
- package/src/lib/config.test.ts +0 -10
- package/src/lib/config.ts +47 -5
- package/src/lib/platforms.ts +59 -0
- package/src/lib/skills.test.ts +53 -28
- package/src/lib/skills.ts +134 -101
- package/src/lib/tools.ts +140 -0
- package/src/lib/types.test.ts +15 -7
- package/src/lib/types.ts +63 -2
- package/src/tools/brain/TOOL.yaml +27 -0
- package/src/tools/coach/TOOL.yaml +21 -0
- package/src/tools/code-review/TOOL.yaml +18 -0
- package/src/tools/comments/TOOL.yaml +27 -0
- package/src/{skills → tools/comments/skills}/comments/SKILL.md +12 -3
- package/src/{skills → tools/comments/skills}/comments/SKILL.yaml +1 -1
- package/src/tools/project/TOOL.yaml +26 -0
- package/dist/agents/README.md +0 -137
- package/src/agents/README.md +0 -137
- /package/dist/{skills → tools}/README.md +0 -0
- /package/dist/{skills → tools}/brain/commands/README.md +0 -0
- /package/dist/{skills → tools}/brain/commands/brain.md +0 -0
- /package/dist/{skills → tools}/brain/commands/scratchpad.md +0 -0
- /package/dist/{skills → tools/brain/skills}/brain/SKILL.md +0 -0
- /package/dist/{skills → tools/brain/skills}/brain/SKILL.yaml +0 -0
- /package/dist/{skills → tools/brain/skills}/brain/references/metadata.md +0 -0
- /package/dist/{skills → tools/brain/skills}/brain/references/naming.md +0 -0
- /package/dist/{skills → tools/brain/skills}/brain/references/templates.md +0 -0
- /package/dist/{skills → tools/brain/skills}/brain/references/workflows.md +0 -0
- /package/dist/{skills → tools/brain/skills}/brain-obsidian/SKILL.md +0 -0
- /package/dist/{skills → tools/brain/skills}/brain-obsidian/SKILL.yaml +0 -0
- /package/dist/{skills → tools/brain/skills}/brain-obsidian/references/templates.md +0 -0
- /package/dist/{skills → tools/brain/skills}/brain-obsidian/references/workflows.md +0 -0
- /package/dist/{skills → tools}/coach/commands/README.md +0 -0
- /package/dist/{skills → tools}/coach/commands/coach.md +0 -0
- /package/dist/{skills → tools/coach/skills}/coach/SKILL.md +0 -0
- /package/dist/{skills → tools/coach/skills}/coach/SKILL.yaml +0 -0
- /package/dist/{skills → tools}/code-review/agents/edi-standards-reviewer/AGENT.md +0 -0
- /package/dist/{skills → tools}/code-review/agents/edi-standards-reviewer/AGENT.yaml +0 -0
- /package/dist/{skills → tools}/code-review/agents/error-handling-reviewer/AGENT.md +0 -0
- /package/dist/{skills → tools}/code-review/agents/error-handling-reviewer/AGENT.yaml +0 -0
- /package/dist/{skills → tools}/code-review/agents/test-coverage-analyzer/AGENT.md +0 -0
- /package/dist/{skills → tools}/code-review/agents/test-coverage-analyzer/AGENT.yaml +0 -0
- /package/dist/{skills → tools}/code-review/agents/type-reviewer/AGENT.md +0 -0
- /package/dist/{skills → tools}/code-review/agents/type-reviewer/AGENT.yaml +0 -0
- /package/dist/{skills → tools}/code-review/commands/code-review.md +0 -0
- /package/dist/{skills → tools/code-review/skills}/code-review/SKILL.md +0 -0
- /package/dist/{skills → tools/code-review/skills}/code-review/SKILL.yaml +0 -0
- /package/dist/{skills → tools}/comments/commands/README.md +0 -0
- /package/dist/{skills → tools}/comments/commands/comments.md +0 -0
- /package/dist/{skills → tools}/project/commands/README.md +0 -0
- /package/dist/{skills → tools}/project/commands/project.md +0 -0
- /package/dist/{skills → tools/project/skills}/project/SKILL.md +0 -0
- /package/dist/{skills → tools/project/skills}/project/SKILL.yaml +0 -0
- /package/dist/{skills → tools/project/skills}/project/references/changelog.md +0 -0
- /package/dist/{skills → tools/project/skills}/project/references/creating.md +0 -0
- /package/dist/{skills → tools/project/skills}/project/references/loading.md +0 -0
- /package/dist/{skills → tools/project/skills}/project/references/templates.md +0 -0
- /package/dist/{skills → tools/project/skills}/project/references/updating.md +0 -0
- /package/dist/{skills → tools/project/skills}/project/references/versioning.md +0 -0
- /package/src/{skills → tools}/README.md +0 -0
- /package/src/{skills → tools}/brain/commands/README.md +0 -0
- /package/src/{skills → tools}/brain/commands/brain.md +0 -0
- /package/src/{skills → tools}/brain/commands/scratchpad.md +0 -0
- /package/src/{skills → tools/brain/skills}/brain/SKILL.md +0 -0
- /package/src/{skills → tools/brain/skills}/brain/SKILL.yaml +0 -0
- /package/src/{skills → tools/brain/skills}/brain/references/metadata.md +0 -0
- /package/src/{skills → tools/brain/skills}/brain/references/naming.md +0 -0
- /package/src/{skills → tools/brain/skills}/brain/references/templates.md +0 -0
- /package/src/{skills → tools/brain/skills}/brain/references/workflows.md +0 -0
- /package/src/{skills → tools/brain/skills}/brain-obsidian/SKILL.md +0 -0
- /package/src/{skills → tools/brain/skills}/brain-obsidian/SKILL.yaml +0 -0
- /package/src/{skills → tools/brain/skills}/brain-obsidian/references/templates.md +0 -0
- /package/src/{skills → tools/brain/skills}/brain-obsidian/references/workflows.md +0 -0
- /package/src/{skills → tools}/coach/commands/README.md +0 -0
- /package/src/{skills → tools}/coach/commands/coach.md +0 -0
- /package/src/{skills → tools/coach/skills}/coach/SKILL.md +0 -0
- /package/src/{skills → tools/coach/skills}/coach/SKILL.yaml +0 -0
- /package/src/{skills → tools}/code-review/agents/edi-standards-reviewer/AGENT.md +0 -0
- /package/src/{skills → tools}/code-review/agents/edi-standards-reviewer/AGENT.yaml +0 -0
- /package/src/{skills → tools}/code-review/agents/error-handling-reviewer/AGENT.md +0 -0
- /package/src/{skills → tools}/code-review/agents/error-handling-reviewer/AGENT.yaml +0 -0
- /package/src/{skills → tools}/code-review/agents/test-coverage-analyzer/AGENT.md +0 -0
- /package/src/{skills → tools}/code-review/agents/test-coverage-analyzer/AGENT.yaml +0 -0
- /package/src/{skills → tools}/code-review/agents/type-reviewer/AGENT.md +0 -0
- /package/src/{skills → tools}/code-review/agents/type-reviewer/AGENT.yaml +0 -0
- /package/src/{skills → tools}/code-review/commands/code-review.md +0 -0
- /package/src/{skills → tools/code-review/skills}/code-review/SKILL.md +0 -0
- /package/src/{skills → tools/code-review/skills}/code-review/SKILL.yaml +0 -0
- /package/src/{skills → tools}/comments/commands/README.md +0 -0
- /package/src/{skills → tools}/comments/commands/comments.md +0 -0
- /package/src/{skills → tools}/project/commands/README.md +0 -0
- /package/src/{skills → tools}/project/commands/project.md +0 -0
- /package/src/{skills → tools/project/skills}/project/SKILL.md +0 -0
- /package/src/{skills → tools/project/skills}/project/SKILL.yaml +0 -0
- /package/src/{skills → tools/project/skills}/project/references/changelog.md +0 -0
- /package/src/{skills → tools/project/skills}/project/references/creating.md +0 -0
- /package/src/{skills → tools/project/skills}/project/references/loading.md +0 -0
- /package/src/{skills → tools/project/skills}/project/references/templates.md +0 -0
- /package/src/{skills → tools/project/skills}/project/references/updating.md +0 -0
- /package/src/{skills → tools/project/skills}/project/references/versioning.md +0 -0
package/src/lib/types.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
export enum
|
|
1
|
+
export enum Platform {
|
|
2
2
|
ClaudeCode = 'claude-code',
|
|
3
3
|
OpenCode = 'opencode',
|
|
4
4
|
}
|
|
5
5
|
|
|
6
|
+
// Backwards compatibility alias - using different names to avoid redeclare error
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
8
|
+
const AIToolValue = Platform;
|
|
9
|
+
export { AIToolValue as AITool };
|
|
10
|
+
export type AITool = Platform;
|
|
11
|
+
|
|
6
12
|
/**
|
|
7
13
|
* Get the AI's mention tag
|
|
8
14
|
* Always @droid - consistent branding regardless of underlying AI tool
|
|
@@ -32,14 +38,44 @@ export enum ConfigOptionType {
|
|
|
32
38
|
Select = 'select',
|
|
33
39
|
}
|
|
34
40
|
|
|
41
|
+
export interface PlatformConfig {
|
|
42
|
+
tools: Record<string, InstalledSkill>;
|
|
43
|
+
}
|
|
44
|
+
|
|
35
45
|
export interface DroidConfig {
|
|
36
|
-
|
|
46
|
+
platform: Platform;
|
|
47
|
+
user_mention: string;
|
|
48
|
+
output_preference: OutputPreference;
|
|
49
|
+
git_username: string;
|
|
50
|
+
platforms: Record<string, PlatformConfig>;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Legacy config structure for migration
|
|
54
|
+
export interface LegacyDroidConfig {
|
|
55
|
+
ai_tool: Platform;
|
|
37
56
|
user_mention: string;
|
|
38
57
|
output_preference: OutputPreference;
|
|
39
58
|
git_username: string;
|
|
40
59
|
skills: Record<string, InstalledSkill>;
|
|
41
60
|
}
|
|
42
61
|
|
|
62
|
+
/**
|
|
63
|
+
* Get installed tools for the current platform
|
|
64
|
+
*/
|
|
65
|
+
export function getPlatformTools(config: DroidConfig): Record<string, InstalledSkill> {
|
|
66
|
+
return config.platforms[config.platform]?.tools ?? {};
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Set installed tools for the current platform
|
|
71
|
+
*/
|
|
72
|
+
export function setPlatformTools(config: DroidConfig, tools: Record<string, InstalledSkill>): void {
|
|
73
|
+
if (!config.platforms[config.platform]) {
|
|
74
|
+
config.platforms[config.platform] = { tools: {} };
|
|
75
|
+
}
|
|
76
|
+
config.platforms[config.platform].tools = tools;
|
|
77
|
+
}
|
|
78
|
+
|
|
43
79
|
export interface InstalledSkill {
|
|
44
80
|
version: string;
|
|
45
81
|
installed_at: string;
|
|
@@ -77,3 +113,28 @@ export interface ConfigOption {
|
|
|
77
113
|
export interface SkillOverrides {
|
|
78
114
|
[key: string]: string | boolean | number;
|
|
79
115
|
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Tool manifest structure (TOOL.yaml)
|
|
119
|
+
*/
|
|
120
|
+
export interface ToolSkillInclude {
|
|
121
|
+
name: string;
|
|
122
|
+
required: boolean;
|
|
123
|
+
description?: string;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export interface ToolIncludes {
|
|
127
|
+
skills: ToolSkillInclude[];
|
|
128
|
+
commands: string[];
|
|
129
|
+
agents: string[];
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export interface ToolManifest {
|
|
133
|
+
name: string;
|
|
134
|
+
description: string;
|
|
135
|
+
version: string;
|
|
136
|
+
status?: SkillStatus;
|
|
137
|
+
includes: ToolIncludes;
|
|
138
|
+
dependencies?: string[];
|
|
139
|
+
config_schema?: Record<string, ConfigOption>;
|
|
140
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: brain
|
|
2
|
+
description: "Collaborative scratchpad for planning and research. Create docs with /brain plan, /brain research, or /brain review. Use @mentions for async discussion. Docs persist across sessions."
|
|
3
|
+
version: 0.2.0
|
|
4
|
+
status: beta
|
|
5
|
+
|
|
6
|
+
includes:
|
|
7
|
+
skills:
|
|
8
|
+
- name: brain
|
|
9
|
+
required: true
|
|
10
|
+
- name: brain-obsidian
|
|
11
|
+
required: false
|
|
12
|
+
description: "Obsidian vault integration with YAML frontmatter and wikilinks"
|
|
13
|
+
commands:
|
|
14
|
+
- brain
|
|
15
|
+
- scratchpad
|
|
16
|
+
agents: []
|
|
17
|
+
|
|
18
|
+
dependencies: []
|
|
19
|
+
|
|
20
|
+
config_schema:
|
|
21
|
+
brain_dir:
|
|
22
|
+
type: string
|
|
23
|
+
description: Directory for brain docs (default varies by platform)
|
|
24
|
+
inbox_folder:
|
|
25
|
+
type: string
|
|
26
|
+
description: Subfolder for new docs (empty = flat structure)
|
|
27
|
+
default: ""
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
name: coach
|
|
2
|
+
description: "Learning-mode AI assistance - AI as coach, not crutch. Use /coach plan for co-authored planning, /coach scaffold for structure with hints, /coach review for Socratic questions."
|
|
3
|
+
version: 0.1.0
|
|
4
|
+
status: beta
|
|
5
|
+
|
|
6
|
+
includes:
|
|
7
|
+
skills:
|
|
8
|
+
- name: coach
|
|
9
|
+
required: true
|
|
10
|
+
commands:
|
|
11
|
+
- coach
|
|
12
|
+
agents: []
|
|
13
|
+
|
|
14
|
+
dependencies:
|
|
15
|
+
- comments
|
|
16
|
+
|
|
17
|
+
config_schema:
|
|
18
|
+
scaffold_verbosity:
|
|
19
|
+
type: string
|
|
20
|
+
description: "How detailed scaffold hints should be: minimal, medium, detailed"
|
|
21
|
+
default: "medium"
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
name: code-review
|
|
2
|
+
description: "Comprehensive code review using specialized agents. Reviews PRs, staged changes, branches, or specific files with confidence scoring."
|
|
3
|
+
version: 0.1.0
|
|
4
|
+
status: alpha
|
|
5
|
+
|
|
6
|
+
includes:
|
|
7
|
+
skills:
|
|
8
|
+
- name: code-review
|
|
9
|
+
required: true
|
|
10
|
+
commands:
|
|
11
|
+
- code-review
|
|
12
|
+
agents:
|
|
13
|
+
- edi-standards-reviewer
|
|
14
|
+
- error-handling-reviewer
|
|
15
|
+
- test-coverage-analyzer
|
|
16
|
+
- type-reviewer
|
|
17
|
+
|
|
18
|
+
dependencies: []
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: comments
|
|
2
|
+
description: "Enable inline conversations using @droid/@user markers. Tag @droid to ask the AI, AI responds with @{your-name}. Ideal for code review notes and async collaboration."
|
|
3
|
+
version: 0.2.3
|
|
4
|
+
status: beta
|
|
5
|
+
|
|
6
|
+
includes:
|
|
7
|
+
skills:
|
|
8
|
+
- name: comments
|
|
9
|
+
required: true
|
|
10
|
+
commands:
|
|
11
|
+
- comments
|
|
12
|
+
agents: []
|
|
13
|
+
|
|
14
|
+
dependencies: []
|
|
15
|
+
|
|
16
|
+
config_schema:
|
|
17
|
+
user_mention:
|
|
18
|
+
type: string
|
|
19
|
+
description: Override the global user mention for this skill
|
|
20
|
+
ai_mentions:
|
|
21
|
+
type: string
|
|
22
|
+
description: Additional AI mentions to recognize (comma-separated)
|
|
23
|
+
default: ""
|
|
24
|
+
preserve_comments:
|
|
25
|
+
type: boolean
|
|
26
|
+
description: Keep original comments after addressing (vs removing them)
|
|
27
|
+
default: true
|
|
@@ -79,13 +79,22 @@ When you find a `@droid` marker:
|
|
|
79
79
|
|
|
80
80
|
### On `/comments check`:
|
|
81
81
|
|
|
82
|
+
**Use a two-pass approach for coherent responses:**
|
|
83
|
+
|
|
84
|
+
#### Pass 1: Read & Analyse
|
|
82
85
|
1. **Read config first:** Check `~/.droid/skills/comments/overrides.yaml` for `preserve_comments` setting (default: `true`)
|
|
83
|
-
2. Search for `> @droid` (and any configured `ai_mentions`) in the specified scope
|
|
86
|
+
2. Search for ALL `> @droid` comments (and any configured `ai_mentions`) in the specified scope
|
|
84
87
|
3. If there's a `git diff`, check those files first for relevant context
|
|
85
|
-
4.
|
|
88
|
+
4. **Read all comments before responding** - understand the full picture
|
|
89
|
+
5. Look for connections between comments (one may inform another)
|
|
90
|
+
6. Note any contradictions or tensions to address
|
|
91
|
+
|
|
92
|
+
#### Pass 2: Respond & Write
|
|
93
|
+
1. For each comment, determine intent:
|
|
86
94
|
- **Action request** ("do X", "add Y", "fix Z") → Execute the action
|
|
87
95
|
- **Question** ("what do you think", "should we") → Respond with `> @{user_mention}`
|
|
88
|
-
|
|
96
|
+
2. Ensure responses are coherent across all comments (don't contradict yourself)
|
|
97
|
+
3. **Handle original comment based on `preserve_comments`:**
|
|
89
98
|
- If `preserve_comments: true` → Keep the original `@droid` comment (add response below it)
|
|
90
99
|
- If `preserve_comments: false` → Remove the original comment after addressing
|
|
91
100
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
name: comments
|
|
2
2
|
description: "Enable inline conversations using @droid/@user markers. Tag @droid to ask the AI, AI responds with @{your-name}. Use /comments check to address markers, /comments cleanup to remove resolved threads. Ideal for code review notes and async collaboration."
|
|
3
|
-
version: 0.2.
|
|
3
|
+
version: 0.2.3
|
|
4
4
|
status: beta
|
|
5
5
|
dependencies: []
|
|
6
6
|
provides_output: false
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: project
|
|
2
|
+
description: "Manage project context files for persistent AI memory across sessions. Load, update, or create project context before working on multi-session features."
|
|
3
|
+
version: 0.1.2
|
|
4
|
+
status: beta
|
|
5
|
+
|
|
6
|
+
includes:
|
|
7
|
+
skills:
|
|
8
|
+
- name: project
|
|
9
|
+
required: true
|
|
10
|
+
commands:
|
|
11
|
+
- project
|
|
12
|
+
agents: []
|
|
13
|
+
|
|
14
|
+
dependencies: []
|
|
15
|
+
|
|
16
|
+
config_schema:
|
|
17
|
+
projects_dir:
|
|
18
|
+
type: string
|
|
19
|
+
description: Path to projects directory (default varies by platform)
|
|
20
|
+
preset:
|
|
21
|
+
type: select
|
|
22
|
+
description: Output format for templates
|
|
23
|
+
default: "markdown"
|
|
24
|
+
options:
|
|
25
|
+
- markdown
|
|
26
|
+
- obsidian
|
package/dist/agents/README.md
DELETED
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
# Contributing Agents
|
|
2
|
-
|
|
3
|
-
Agents are specialized AI personas with specific expertise or roles. They augment the AI's capabilities for particular tasks.
|
|
4
|
-
|
|
5
|
-
## Directory Structure
|
|
6
|
-
|
|
7
|
-
Each agent is a directory containing:
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
agents/
|
|
11
|
-
└── my-agent/
|
|
12
|
-
├── AGENT.yaml # Required: Manifest with metadata and persona
|
|
13
|
-
└── AGENT.md # Required: Documentation for users
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
## AGENT.yaml (Manifest)
|
|
17
|
-
|
|
18
|
-
```yaml
|
|
19
|
-
name: my-agent # Must match directory name
|
|
20
|
-
description: Short description # Shown in TUI and listings
|
|
21
|
-
version: 1.0.0 # Semver
|
|
22
|
-
status: alpha # alpha | beta | stable (optional)
|
|
23
|
-
|
|
24
|
-
# Agent type (required)
|
|
25
|
-
mode: subagent # primary | subagent | all
|
|
26
|
-
|
|
27
|
-
# Tools this agent can use (optional)
|
|
28
|
-
tools:
|
|
29
|
-
- Read
|
|
30
|
-
- Glob
|
|
31
|
-
- Grep
|
|
32
|
-
- Bash
|
|
33
|
-
|
|
34
|
-
# Suggested triggers - phrases that might invoke this agent
|
|
35
|
-
triggers:
|
|
36
|
-
- "review my code"
|
|
37
|
-
- "check for bugs"
|
|
38
|
-
|
|
39
|
-
# Persona - system prompt additions for this agent (used if AGENT.md is minimal)
|
|
40
|
-
persona: |
|
|
41
|
-
You are a specialized assistant focused on...
|
|
42
|
-
|
|
43
|
-
Your priorities are:
|
|
44
|
-
1. First priority
|
|
45
|
-
2. Second priority
|
|
46
|
-
|
|
47
|
-
Always be specific and constructive.
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### Agent Modes
|
|
51
|
-
|
|
52
|
-
- **`primary`** - Main agents you interact with directly. Cycle through them with Tab key.
|
|
53
|
-
- **`subagent`** - Specialized helpers invoked via @mention (e.g., `@code-reviewer check this`) or by primary agents.
|
|
54
|
-
- **`all`** - Agent works as both primary and subagent.
|
|
55
|
-
|
|
56
|
-
## AGENT.md (Documentation)
|
|
57
|
-
|
|
58
|
-
The AGENT.md file documents the agent for users:
|
|
59
|
-
|
|
60
|
-
```markdown
|
|
61
|
-
---
|
|
62
|
-
name: my-agent
|
|
63
|
-
description: Short description (must match AGENT.yaml)
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
# My Agent
|
|
67
|
-
|
|
68
|
-
Description of what this agent does and when to use it.
|
|
69
|
-
|
|
70
|
-
## What It Does
|
|
71
|
-
|
|
72
|
-
- Bullet points of capabilities
|
|
73
|
-
- What it focuses on
|
|
74
|
-
- What it ignores
|
|
75
|
-
|
|
76
|
-
## Usage
|
|
77
|
-
|
|
78
|
-
Examples of how to invoke or use this agent.
|
|
79
|
-
|
|
80
|
-
## Output Format
|
|
81
|
-
|
|
82
|
-
Description of how the agent formats its responses.
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
## Example Agent
|
|
86
|
-
|
|
87
|
-
See `code-reviewer/` for a complete example:
|
|
88
|
-
|
|
89
|
-
- Reviews code for bugs, security issues, style
|
|
90
|
-
- Categorizes issues by severity (critical/warning/suggestion)
|
|
91
|
-
- References specific file and line numbers
|
|
92
|
-
|
|
93
|
-
## Ideas for Agents
|
|
94
|
-
|
|
95
|
-
- **test-writer** - Generates unit tests for code
|
|
96
|
-
- **doc-writer** - Writes documentation and comments
|
|
97
|
-
- **refactorer** - Suggests and applies refactoring patterns
|
|
98
|
-
- **security-auditor** - Deep security analysis
|
|
99
|
-
- **performance-optimizer** - Identifies performance bottlenecks
|
|
100
|
-
|
|
101
|
-
## Installation
|
|
102
|
-
|
|
103
|
-
When you install an agent via the TUI, droid:
|
|
104
|
-
|
|
105
|
-
1. Reads `AGENT.yaml` for metadata (name, description, tools)
|
|
106
|
-
2. Reads `AGENT.md` for the agent's instructions/persona
|
|
107
|
-
3. Combines them into a single `.md` file with frontmatter
|
|
108
|
-
4. Writes to `~/.claude/agents/{name}.md`
|
|
109
|
-
|
|
110
|
-
The installed format matches what Claude Code expects:
|
|
111
|
-
|
|
112
|
-
```markdown
|
|
113
|
-
---
|
|
114
|
-
name: my-agent
|
|
115
|
-
description: Short description
|
|
116
|
-
tools: Read, Glob, Grep, Bash
|
|
117
|
-
---
|
|
118
|
-
|
|
119
|
-
[Content from AGENT.md]
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
## Testing Your Agent
|
|
123
|
-
|
|
124
|
-
1. Run `npm run build` to compile
|
|
125
|
-
2. Run `droid` to open the TUI
|
|
126
|
-
3. Navigate to Agents tab
|
|
127
|
-
4. Verify your agent appears with correct metadata
|
|
128
|
-
5. Install and verify it appears in `~/.claude/agents/`
|
|
129
|
-
|
|
130
|
-
## Checklist
|
|
131
|
-
|
|
132
|
-
- [ ] `AGENT.yaml` has all required fields (name, description, version, mode)
|
|
133
|
-
- [ ] `AGENT.md` contains the agent's instructions/persona
|
|
134
|
-
- [ ] Name matches directory name
|
|
135
|
-
- [ ] Description is clear and concise
|
|
136
|
-
- [ ] Mode is appropriate (subagent for specialized tasks, primary for main assistants)
|
|
137
|
-
- [ ] Tools list only includes what the agent needs
|
package/src/agents/README.md
DELETED
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
# Contributing Agents
|
|
2
|
-
|
|
3
|
-
Agents are specialized AI personas with specific expertise or roles. They augment the AI's capabilities for particular tasks.
|
|
4
|
-
|
|
5
|
-
## Directory Structure
|
|
6
|
-
|
|
7
|
-
Each agent is a directory containing:
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
agents/
|
|
11
|
-
└── my-agent/
|
|
12
|
-
├── AGENT.yaml # Required: Manifest with metadata and persona
|
|
13
|
-
└── AGENT.md # Required: Documentation for users
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
## AGENT.yaml (Manifest)
|
|
17
|
-
|
|
18
|
-
```yaml
|
|
19
|
-
name: my-agent # Must match directory name
|
|
20
|
-
description: Short description # Shown in TUI and listings
|
|
21
|
-
version: 1.0.0 # Semver
|
|
22
|
-
status: alpha # alpha | beta | stable (optional)
|
|
23
|
-
|
|
24
|
-
# Agent type (required)
|
|
25
|
-
mode: subagent # primary | subagent | all
|
|
26
|
-
|
|
27
|
-
# Tools this agent can use (optional)
|
|
28
|
-
tools:
|
|
29
|
-
- Read
|
|
30
|
-
- Glob
|
|
31
|
-
- Grep
|
|
32
|
-
- Bash
|
|
33
|
-
|
|
34
|
-
# Suggested triggers - phrases that might invoke this agent
|
|
35
|
-
triggers:
|
|
36
|
-
- "review my code"
|
|
37
|
-
- "check for bugs"
|
|
38
|
-
|
|
39
|
-
# Persona - system prompt additions for this agent (used if AGENT.md is minimal)
|
|
40
|
-
persona: |
|
|
41
|
-
You are a specialized assistant focused on...
|
|
42
|
-
|
|
43
|
-
Your priorities are:
|
|
44
|
-
1. First priority
|
|
45
|
-
2. Second priority
|
|
46
|
-
|
|
47
|
-
Always be specific and constructive.
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### Agent Modes
|
|
51
|
-
|
|
52
|
-
- **`primary`** - Main agents you interact with directly. Cycle through them with Tab key.
|
|
53
|
-
- **`subagent`** - Specialized helpers invoked via @mention (e.g., `@code-reviewer check this`) or by primary agents.
|
|
54
|
-
- **`all`** - Agent works as both primary and subagent.
|
|
55
|
-
|
|
56
|
-
## AGENT.md (Documentation)
|
|
57
|
-
|
|
58
|
-
The AGENT.md file documents the agent for users:
|
|
59
|
-
|
|
60
|
-
```markdown
|
|
61
|
-
---
|
|
62
|
-
name: my-agent
|
|
63
|
-
description: Short description (must match AGENT.yaml)
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
# My Agent
|
|
67
|
-
|
|
68
|
-
Description of what this agent does and when to use it.
|
|
69
|
-
|
|
70
|
-
## What It Does
|
|
71
|
-
|
|
72
|
-
- Bullet points of capabilities
|
|
73
|
-
- What it focuses on
|
|
74
|
-
- What it ignores
|
|
75
|
-
|
|
76
|
-
## Usage
|
|
77
|
-
|
|
78
|
-
Examples of how to invoke or use this agent.
|
|
79
|
-
|
|
80
|
-
## Output Format
|
|
81
|
-
|
|
82
|
-
Description of how the agent formats its responses.
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
## Example Agent
|
|
86
|
-
|
|
87
|
-
See `code-reviewer/` for a complete example:
|
|
88
|
-
|
|
89
|
-
- Reviews code for bugs, security issues, style
|
|
90
|
-
- Categorizes issues by severity (critical/warning/suggestion)
|
|
91
|
-
- References specific file and line numbers
|
|
92
|
-
|
|
93
|
-
## Ideas for Agents
|
|
94
|
-
|
|
95
|
-
- **test-writer** - Generates unit tests for code
|
|
96
|
-
- **doc-writer** - Writes documentation and comments
|
|
97
|
-
- **refactorer** - Suggests and applies refactoring patterns
|
|
98
|
-
- **security-auditor** - Deep security analysis
|
|
99
|
-
- **performance-optimizer** - Identifies performance bottlenecks
|
|
100
|
-
|
|
101
|
-
## Installation
|
|
102
|
-
|
|
103
|
-
When you install an agent via the TUI, droid:
|
|
104
|
-
|
|
105
|
-
1. Reads `AGENT.yaml` for metadata (name, description, tools)
|
|
106
|
-
2. Reads `AGENT.md` for the agent's instructions/persona
|
|
107
|
-
3. Combines them into a single `.md` file with frontmatter
|
|
108
|
-
4. Writes to `~/.claude/agents/{name}.md`
|
|
109
|
-
|
|
110
|
-
The installed format matches what Claude Code expects:
|
|
111
|
-
|
|
112
|
-
```markdown
|
|
113
|
-
---
|
|
114
|
-
name: my-agent
|
|
115
|
-
description: Short description
|
|
116
|
-
tools: Read, Glob, Grep, Bash
|
|
117
|
-
---
|
|
118
|
-
|
|
119
|
-
[Content from AGENT.md]
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
## Testing Your Agent
|
|
123
|
-
|
|
124
|
-
1. Run `npm run build` to compile
|
|
125
|
-
2. Run `droid` to open the TUI
|
|
126
|
-
3. Navigate to Agents tab
|
|
127
|
-
4. Verify your agent appears with correct metadata
|
|
128
|
-
5. Install and verify it appears in `~/.claude/agents/`
|
|
129
|
-
|
|
130
|
-
## Checklist
|
|
131
|
-
|
|
132
|
-
- [ ] `AGENT.yaml` has all required fields (name, description, version, mode)
|
|
133
|
-
- [ ] `AGENT.md` contains the agent's instructions/persona
|
|
134
|
-
- [ ] Name matches directory name
|
|
135
|
-
- [ ] Description is clear and concise
|
|
136
|
-
- [ ] Mode is appropriate (subagent for specialized tasks, primary for main assistants)
|
|
137
|
-
- [ ] Tools list only includes what the agent needs
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|