@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.
Files changed (167) hide show
  1. package/.claude/CLAUDE.md +13 -6
  2. package/CHANGELOG.md +19 -0
  3. package/README.md +23 -24
  4. package/dist/bin/droid.js +9 -9
  5. package/dist/bin/droid.js.map +1 -1
  6. package/dist/commands/install.d.ts +1 -1
  7. package/dist/commands/install.d.ts.map +1 -1
  8. package/dist/commands/install.js +24 -23
  9. package/dist/commands/install.js.map +1 -1
  10. package/dist/commands/setup.d.ts +3 -3
  11. package/dist/commands/setup.d.ts.map +1 -1
  12. package/dist/commands/setup.js +32 -28
  13. package/dist/commands/setup.js.map +1 -1
  14. package/dist/commands/skills.d.ts.map +1 -1
  15. package/dist/commands/skills.js +60 -53
  16. package/dist/commands/skills.js.map +1 -1
  17. package/dist/commands/tui.d.ts.map +1 -1
  18. package/dist/commands/tui.js +213 -319
  19. package/dist/commands/tui.js.map +1 -1
  20. package/dist/commands/uninstall.d.ts +1 -1
  21. package/dist/commands/uninstall.d.ts.map +1 -1
  22. package/dist/commands/uninstall.js +15 -6
  23. package/dist/commands/uninstall.js.map +1 -1
  24. package/dist/commands/update.d.ts +2 -2
  25. package/dist/commands/update.d.ts.map +1 -1
  26. package/dist/commands/update.js +9 -9
  27. package/dist/commands/update.js.map +1 -1
  28. package/dist/lib/agents.d.ts +11 -10
  29. package/dist/lib/agents.d.ts.map +1 -1
  30. package/dist/lib/agents.js +52 -54
  31. package/dist/lib/agents.js.map +1 -1
  32. package/dist/lib/config.d.ts +1 -0
  33. package/dist/lib/config.d.ts.map +1 -1
  34. package/dist/lib/config.js +42 -5
  35. package/dist/lib/config.js.map +1 -1
  36. package/dist/lib/platforms.d.ts +41 -0
  37. package/dist/lib/platforms.d.ts.map +1 -0
  38. package/dist/lib/platforms.js +52 -0
  39. package/dist/lib/platforms.js.map +1 -0
  40. package/dist/lib/skills.d.ts +19 -11
  41. package/dist/lib/skills.d.ts.map +1 -1
  42. package/dist/lib/skills.js +125 -99
  43. package/dist/lib/skills.js.map +1 -1
  44. package/dist/lib/tools.d.ts +30 -0
  45. package/dist/lib/tools.d.ts.map +1 -0
  46. package/dist/lib/tools.js +116 -0
  47. package/dist/lib/tools.js.map +1 -0
  48. package/dist/lib/types.d.ts +45 -2
  49. package/dist/lib/types.d.ts.map +1 -1
  50. package/dist/lib/types.js +24 -5
  51. package/dist/lib/types.js.map +1 -1
  52. package/dist/tools/brain/TOOL.yaml +27 -0
  53. package/dist/tools/coach/TOOL.yaml +21 -0
  54. package/dist/tools/code-review/TOOL.yaml +18 -0
  55. package/dist/tools/comments/TOOL.yaml +27 -0
  56. package/dist/{skills → tools/comments/skills}/comments/SKILL.md +12 -3
  57. package/dist/{skills → tools/comments/skills}/comments/SKILL.yaml +1 -1
  58. package/dist/tools/project/TOOL.yaml +26 -0
  59. package/package.json +2 -2
  60. package/src/bin/droid.ts +9 -9
  61. package/src/commands/install.ts +24 -23
  62. package/src/commands/setup.test.ts +2 -2
  63. package/src/commands/setup.ts +33 -29
  64. package/src/commands/skills.ts +63 -64
  65. package/src/commands/tui.tsx +432 -578
  66. package/src/commands/uninstall.ts +17 -6
  67. package/src/commands/update.ts +10 -10
  68. package/src/lib/agents.ts +58 -58
  69. package/src/lib/config.test.ts +0 -10
  70. package/src/lib/config.ts +47 -5
  71. package/src/lib/platforms.ts +59 -0
  72. package/src/lib/skills.test.ts +53 -28
  73. package/src/lib/skills.ts +134 -101
  74. package/src/lib/tools.ts +140 -0
  75. package/src/lib/types.test.ts +15 -7
  76. package/src/lib/types.ts +63 -2
  77. package/src/tools/brain/TOOL.yaml +27 -0
  78. package/src/tools/coach/TOOL.yaml +21 -0
  79. package/src/tools/code-review/TOOL.yaml +18 -0
  80. package/src/tools/comments/TOOL.yaml +27 -0
  81. package/src/{skills → tools/comments/skills}/comments/SKILL.md +12 -3
  82. package/src/{skills → tools/comments/skills}/comments/SKILL.yaml +1 -1
  83. package/src/tools/project/TOOL.yaml +26 -0
  84. package/dist/agents/README.md +0 -137
  85. package/src/agents/README.md +0 -137
  86. /package/dist/{skills → tools}/README.md +0 -0
  87. /package/dist/{skills → tools}/brain/commands/README.md +0 -0
  88. /package/dist/{skills → tools}/brain/commands/brain.md +0 -0
  89. /package/dist/{skills → tools}/brain/commands/scratchpad.md +0 -0
  90. /package/dist/{skills → tools/brain/skills}/brain/SKILL.md +0 -0
  91. /package/dist/{skills → tools/brain/skills}/brain/SKILL.yaml +0 -0
  92. /package/dist/{skills → tools/brain/skills}/brain/references/metadata.md +0 -0
  93. /package/dist/{skills → tools/brain/skills}/brain/references/naming.md +0 -0
  94. /package/dist/{skills → tools/brain/skills}/brain/references/templates.md +0 -0
  95. /package/dist/{skills → tools/brain/skills}/brain/references/workflows.md +0 -0
  96. /package/dist/{skills → tools/brain/skills}/brain-obsidian/SKILL.md +0 -0
  97. /package/dist/{skills → tools/brain/skills}/brain-obsidian/SKILL.yaml +0 -0
  98. /package/dist/{skills → tools/brain/skills}/brain-obsidian/references/templates.md +0 -0
  99. /package/dist/{skills → tools/brain/skills}/brain-obsidian/references/workflows.md +0 -0
  100. /package/dist/{skills → tools}/coach/commands/README.md +0 -0
  101. /package/dist/{skills → tools}/coach/commands/coach.md +0 -0
  102. /package/dist/{skills → tools/coach/skills}/coach/SKILL.md +0 -0
  103. /package/dist/{skills → tools/coach/skills}/coach/SKILL.yaml +0 -0
  104. /package/dist/{skills → tools}/code-review/agents/edi-standards-reviewer/AGENT.md +0 -0
  105. /package/dist/{skills → tools}/code-review/agents/edi-standards-reviewer/AGENT.yaml +0 -0
  106. /package/dist/{skills → tools}/code-review/agents/error-handling-reviewer/AGENT.md +0 -0
  107. /package/dist/{skills → tools}/code-review/agents/error-handling-reviewer/AGENT.yaml +0 -0
  108. /package/dist/{skills → tools}/code-review/agents/test-coverage-analyzer/AGENT.md +0 -0
  109. /package/dist/{skills → tools}/code-review/agents/test-coverage-analyzer/AGENT.yaml +0 -0
  110. /package/dist/{skills → tools}/code-review/agents/type-reviewer/AGENT.md +0 -0
  111. /package/dist/{skills → tools}/code-review/agents/type-reviewer/AGENT.yaml +0 -0
  112. /package/dist/{skills → tools}/code-review/commands/code-review.md +0 -0
  113. /package/dist/{skills → tools/code-review/skills}/code-review/SKILL.md +0 -0
  114. /package/dist/{skills → tools/code-review/skills}/code-review/SKILL.yaml +0 -0
  115. /package/dist/{skills → tools}/comments/commands/README.md +0 -0
  116. /package/dist/{skills → tools}/comments/commands/comments.md +0 -0
  117. /package/dist/{skills → tools}/project/commands/README.md +0 -0
  118. /package/dist/{skills → tools}/project/commands/project.md +0 -0
  119. /package/dist/{skills → tools/project/skills}/project/SKILL.md +0 -0
  120. /package/dist/{skills → tools/project/skills}/project/SKILL.yaml +0 -0
  121. /package/dist/{skills → tools/project/skills}/project/references/changelog.md +0 -0
  122. /package/dist/{skills → tools/project/skills}/project/references/creating.md +0 -0
  123. /package/dist/{skills → tools/project/skills}/project/references/loading.md +0 -0
  124. /package/dist/{skills → tools/project/skills}/project/references/templates.md +0 -0
  125. /package/dist/{skills → tools/project/skills}/project/references/updating.md +0 -0
  126. /package/dist/{skills → tools/project/skills}/project/references/versioning.md +0 -0
  127. /package/src/{skills → tools}/README.md +0 -0
  128. /package/src/{skills → tools}/brain/commands/README.md +0 -0
  129. /package/src/{skills → tools}/brain/commands/brain.md +0 -0
  130. /package/src/{skills → tools}/brain/commands/scratchpad.md +0 -0
  131. /package/src/{skills → tools/brain/skills}/brain/SKILL.md +0 -0
  132. /package/src/{skills → tools/brain/skills}/brain/SKILL.yaml +0 -0
  133. /package/src/{skills → tools/brain/skills}/brain/references/metadata.md +0 -0
  134. /package/src/{skills → tools/brain/skills}/brain/references/naming.md +0 -0
  135. /package/src/{skills → tools/brain/skills}/brain/references/templates.md +0 -0
  136. /package/src/{skills → tools/brain/skills}/brain/references/workflows.md +0 -0
  137. /package/src/{skills → tools/brain/skills}/brain-obsidian/SKILL.md +0 -0
  138. /package/src/{skills → tools/brain/skills}/brain-obsidian/SKILL.yaml +0 -0
  139. /package/src/{skills → tools/brain/skills}/brain-obsidian/references/templates.md +0 -0
  140. /package/src/{skills → tools/brain/skills}/brain-obsidian/references/workflows.md +0 -0
  141. /package/src/{skills → tools}/coach/commands/README.md +0 -0
  142. /package/src/{skills → tools}/coach/commands/coach.md +0 -0
  143. /package/src/{skills → tools/coach/skills}/coach/SKILL.md +0 -0
  144. /package/src/{skills → tools/coach/skills}/coach/SKILL.yaml +0 -0
  145. /package/src/{skills → tools}/code-review/agents/edi-standards-reviewer/AGENT.md +0 -0
  146. /package/src/{skills → tools}/code-review/agents/edi-standards-reviewer/AGENT.yaml +0 -0
  147. /package/src/{skills → tools}/code-review/agents/error-handling-reviewer/AGENT.md +0 -0
  148. /package/src/{skills → tools}/code-review/agents/error-handling-reviewer/AGENT.yaml +0 -0
  149. /package/src/{skills → tools}/code-review/agents/test-coverage-analyzer/AGENT.md +0 -0
  150. /package/src/{skills → tools}/code-review/agents/test-coverage-analyzer/AGENT.yaml +0 -0
  151. /package/src/{skills → tools}/code-review/agents/type-reviewer/AGENT.md +0 -0
  152. /package/src/{skills → tools}/code-review/agents/type-reviewer/AGENT.yaml +0 -0
  153. /package/src/{skills → tools}/code-review/commands/code-review.md +0 -0
  154. /package/src/{skills → tools/code-review/skills}/code-review/SKILL.md +0 -0
  155. /package/src/{skills → tools/code-review/skills}/code-review/SKILL.yaml +0 -0
  156. /package/src/{skills → tools}/comments/commands/README.md +0 -0
  157. /package/src/{skills → tools}/comments/commands/comments.md +0 -0
  158. /package/src/{skills → tools}/project/commands/README.md +0 -0
  159. /package/src/{skills → tools}/project/commands/project.md +0 -0
  160. /package/src/{skills → tools/project/skills}/project/SKILL.md +0 -0
  161. /package/src/{skills → tools/project/skills}/project/SKILL.yaml +0 -0
  162. /package/src/{skills → tools/project/skills}/project/references/changelog.md +0 -0
  163. /package/src/{skills → tools/project/skills}/project/references/creating.md +0 -0
  164. /package/src/{skills → tools/project/skills}/project/references/loading.md +0 -0
  165. /package/src/{skills → tools/project/skills}/project/references/templates.md +0 -0
  166. /package/src/{skills → tools/project/skills}/project/references/updating.md +0 -0
  167. /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 AITool {
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
- ai_tool: AITool;
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. For each comment, determine intent:
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
- 5. **Handle original comment based on `preserve_comments`:**
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.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
@@ -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
@@ -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