@orderful/droid 0.10.4 → 0.11.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.
Files changed (167) hide show
  1. package/.claude/CLAUDE.md +13 -6
  2. package/CHANGELOG.md +21 -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 +127 -106
  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/{skills → tools}/code-review/commands/code-review.md +23 -1
  56. package/dist/tools/comments/TOOL.yaml +27 -0
  57. package/dist/tools/project/TOOL.yaml +26 -0
  58. package/package.json +2 -2
  59. package/src/bin/droid.ts +9 -9
  60. package/src/commands/install.ts +24 -23
  61. package/src/commands/setup.test.ts +2 -2
  62. package/src/commands/setup.ts +33 -29
  63. package/src/commands/skills.ts +63 -64
  64. package/src/commands/tui.tsx +432 -578
  65. package/src/commands/uninstall.ts +17 -6
  66. package/src/commands/update.ts +10 -10
  67. package/src/lib/agents.ts +58 -58
  68. package/src/lib/config.test.ts +0 -10
  69. package/src/lib/config.ts +47 -5
  70. package/src/lib/platforms.ts +59 -0
  71. package/src/lib/skills.test.ts +53 -28
  72. package/src/lib/skills.ts +136 -109
  73. package/src/lib/tools.ts +140 -0
  74. package/src/lib/types.test.ts +15 -7
  75. package/src/lib/types.ts +63 -2
  76. package/src/tools/brain/TOOL.yaml +27 -0
  77. package/src/tools/coach/TOOL.yaml +21 -0
  78. package/src/tools/code-review/TOOL.yaml +18 -0
  79. package/src/{skills → tools}/code-review/commands/code-review.md +23 -1
  80. package/src/tools/comments/TOOL.yaml +27 -0
  81. package/src/tools/project/TOOL.yaml +26 -0
  82. package/dist/agents/README.md +0 -137
  83. package/src/agents/README.md +0 -137
  84. /package/dist/{skills → tools}/README.md +0 -0
  85. /package/dist/{skills → tools}/brain/commands/README.md +0 -0
  86. /package/dist/{skills → tools}/brain/commands/brain.md +0 -0
  87. /package/dist/{skills → tools}/brain/commands/scratchpad.md +0 -0
  88. /package/dist/{skills → tools/brain/skills}/brain/SKILL.md +0 -0
  89. /package/dist/{skills → tools/brain/skills}/brain/SKILL.yaml +0 -0
  90. /package/dist/{skills → tools/brain/skills}/brain/references/metadata.md +0 -0
  91. /package/dist/{skills → tools/brain/skills}/brain/references/naming.md +0 -0
  92. /package/dist/{skills → tools/brain/skills}/brain/references/templates.md +0 -0
  93. /package/dist/{skills → tools/brain/skills}/brain/references/workflows.md +0 -0
  94. /package/dist/{skills → tools/brain/skills}/brain-obsidian/SKILL.md +0 -0
  95. /package/dist/{skills → tools/brain/skills}/brain-obsidian/SKILL.yaml +0 -0
  96. /package/dist/{skills → tools/brain/skills}/brain-obsidian/references/templates.md +0 -0
  97. /package/dist/{skills → tools/brain/skills}/brain-obsidian/references/workflows.md +0 -0
  98. /package/dist/{skills → tools}/coach/commands/README.md +0 -0
  99. /package/dist/{skills → tools}/coach/commands/coach.md +0 -0
  100. /package/dist/{skills → tools/coach/skills}/coach/SKILL.md +0 -0
  101. /package/dist/{skills → tools/coach/skills}/coach/SKILL.yaml +0 -0
  102. /package/dist/{skills → tools}/code-review/agents/edi-standards-reviewer/AGENT.md +0 -0
  103. /package/dist/{skills → tools}/code-review/agents/edi-standards-reviewer/AGENT.yaml +0 -0
  104. /package/dist/{skills → tools}/code-review/agents/error-handling-reviewer/AGENT.md +0 -0
  105. /package/dist/{skills → tools}/code-review/agents/error-handling-reviewer/AGENT.yaml +0 -0
  106. /package/dist/{skills → tools}/code-review/agents/test-coverage-analyzer/AGENT.md +0 -0
  107. /package/dist/{skills → tools}/code-review/agents/test-coverage-analyzer/AGENT.yaml +0 -0
  108. /package/dist/{skills → tools}/code-review/agents/type-reviewer/AGENT.md +0 -0
  109. /package/dist/{skills → tools}/code-review/agents/type-reviewer/AGENT.yaml +0 -0
  110. /package/dist/{skills → tools/code-review/skills}/code-review/SKILL.md +0 -0
  111. /package/dist/{skills → tools/code-review/skills}/code-review/SKILL.yaml +0 -0
  112. /package/dist/{skills → tools}/comments/commands/README.md +0 -0
  113. /package/dist/{skills → tools}/comments/commands/comments.md +0 -0
  114. /package/dist/{skills → tools/comments/skills}/comments/SKILL.md +0 -0
  115. /package/dist/{skills → tools/comments/skills}/comments/SKILL.yaml +0 -0
  116. /package/dist/{skills → tools}/project/commands/README.md +0 -0
  117. /package/dist/{skills → tools}/project/commands/project.md +0 -0
  118. /package/dist/{skills → tools/project/skills}/project/SKILL.md +0 -0
  119. /package/dist/{skills → tools/project/skills}/project/SKILL.yaml +0 -0
  120. /package/dist/{skills → tools/project/skills}/project/references/changelog.md +0 -0
  121. /package/dist/{skills → tools/project/skills}/project/references/creating.md +0 -0
  122. /package/dist/{skills → tools/project/skills}/project/references/loading.md +0 -0
  123. /package/dist/{skills → tools/project/skills}/project/references/templates.md +0 -0
  124. /package/dist/{skills → tools/project/skills}/project/references/updating.md +0 -0
  125. /package/dist/{skills → tools/project/skills}/project/references/versioning.md +0 -0
  126. /package/src/{skills → tools}/README.md +0 -0
  127. /package/src/{skills → tools}/brain/commands/README.md +0 -0
  128. /package/src/{skills → tools}/brain/commands/brain.md +0 -0
  129. /package/src/{skills → tools}/brain/commands/scratchpad.md +0 -0
  130. /package/src/{skills → tools/brain/skills}/brain/SKILL.md +0 -0
  131. /package/src/{skills → tools/brain/skills}/brain/SKILL.yaml +0 -0
  132. /package/src/{skills → tools/brain/skills}/brain/references/metadata.md +0 -0
  133. /package/src/{skills → tools/brain/skills}/brain/references/naming.md +0 -0
  134. /package/src/{skills → tools/brain/skills}/brain/references/templates.md +0 -0
  135. /package/src/{skills → tools/brain/skills}/brain/references/workflows.md +0 -0
  136. /package/src/{skills → tools/brain/skills}/brain-obsidian/SKILL.md +0 -0
  137. /package/src/{skills → tools/brain/skills}/brain-obsidian/SKILL.yaml +0 -0
  138. /package/src/{skills → tools/brain/skills}/brain-obsidian/references/templates.md +0 -0
  139. /package/src/{skills → tools/brain/skills}/brain-obsidian/references/workflows.md +0 -0
  140. /package/src/{skills → tools}/coach/commands/README.md +0 -0
  141. /package/src/{skills → tools}/coach/commands/coach.md +0 -0
  142. /package/src/{skills → tools/coach/skills}/coach/SKILL.md +0 -0
  143. /package/src/{skills → tools/coach/skills}/coach/SKILL.yaml +0 -0
  144. /package/src/{skills → tools}/code-review/agents/edi-standards-reviewer/AGENT.md +0 -0
  145. /package/src/{skills → tools}/code-review/agents/edi-standards-reviewer/AGENT.yaml +0 -0
  146. /package/src/{skills → tools}/code-review/agents/error-handling-reviewer/AGENT.md +0 -0
  147. /package/src/{skills → tools}/code-review/agents/error-handling-reviewer/AGENT.yaml +0 -0
  148. /package/src/{skills → tools}/code-review/agents/test-coverage-analyzer/AGENT.md +0 -0
  149. /package/src/{skills → tools}/code-review/agents/test-coverage-analyzer/AGENT.yaml +0 -0
  150. /package/src/{skills → tools}/code-review/agents/type-reviewer/AGENT.md +0 -0
  151. /package/src/{skills → tools}/code-review/agents/type-reviewer/AGENT.yaml +0 -0
  152. /package/src/{skills → tools/code-review/skills}/code-review/SKILL.md +0 -0
  153. /package/src/{skills → tools/code-review/skills}/code-review/SKILL.yaml +0 -0
  154. /package/src/{skills → tools}/comments/commands/README.md +0 -0
  155. /package/src/{skills → tools}/comments/commands/comments.md +0 -0
  156. /package/src/{skills → tools/comments/skills}/comments/SKILL.md +0 -0
  157. /package/src/{skills → tools/comments/skills}/comments/SKILL.yaml +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: []
@@ -17,29 +17,46 @@ Review target: $ARGUMENTS
17
17
  /code-review path/to/file # Review specific file
18
18
  ```
19
19
 
20
+ ### Step 0: Check for Brain Integration
21
+
22
+ **If the `brain` skill is installed** (check for `~/.claude/skills/brain/SKILL.md` or `~/.config/opencode/skills/brain/SKILL.md`):
23
+
24
+ Ask the user: **"Would you like the review results saved to a `/brain review` doc?"**
25
+
26
+ - If yes: Create a brain review doc at the start using `/brain review {PR title or branch name}`
27
+ - The final report will be written to the brain doc instead of just displayed
28
+ - This allows for async discussion via `@droid`/`@{user}` comments
29
+
30
+ If brain skill is not installed or user declines, proceed with normal terminal output.
31
+
20
32
  ### Step 1: Determine Review Scope
21
33
 
22
34
  Parse the argument to determine what to review:
23
35
 
24
36
  **If argument starts with `#` or is a number (e.g., `#123` or `123`):**
37
+
25
38
  - This is a PR number
26
39
  - Fetch PR details: `gh pr view $PR_NUMBER --json title,body,baseRefName,headRefName,files`
27
40
  - Get the diff: `gh pr diff $PR_NUMBER`
28
41
  - Note the PR author and description for context
29
42
 
30
43
  **If argument is `staged` or empty:**
44
+
31
45
  - Review staged changes: `git diff --cached`
32
46
 
33
47
  **If argument is `branch`:**
48
+
34
49
  - Review current branch vs main: `git diff origin/main...HEAD`
35
50
 
36
51
  **If argument is a file path:**
52
+
37
53
  - Review specific file: `git diff HEAD -- $FILE_PATH`
38
54
  - If no changes, review the entire file for issues
39
55
 
40
56
  ### Step 2: Gather Context
41
57
 
42
58
  For PR reviews, also fetch:
59
+
43
60
  - PR description (may contain context about the change)
44
61
  - Linked issues: `gh pr view $PR_NUMBER --json body` and parse for #issue refs
45
62
  - Changed files list for targeted agent assignment
@@ -54,6 +71,7 @@ Launch these agents in parallel using the Task tool with `run_in_background: tru
54
71
  4. **type-reviewer**: Type design, interface contracts
55
72
 
56
73
  Pass each agent:
74
+
57
75
  1. The diff content
58
76
  2. The full file content for changed files (for context)
59
77
  3. PR description if available
@@ -70,15 +88,18 @@ Filter out issues with confidence < 80.
70
88
  Compile findings into a prioritized report:
71
89
 
72
90
  **PR #123: "Add partnership billing events"** (if reviewing a PR)
73
- *Author: @username*
91
+ _Author: @username_
74
92
 
75
93
  **Critical** (security, data loss, billing errors)
94
+
76
95
  - `file.ts:42` - Issue description
77
96
 
78
97
  **Important** (bugs, missing tests, type issues)
98
+
79
99
  - `file.ts:67` - Issue description
80
100
 
81
101
  **Suggestions** (style, readability)
102
+
82
103
  - `file.ts:89` - Issue description
83
104
 
84
105
  **Summary**: X critical, Y important, Z suggestions across N files.
@@ -86,6 +107,7 @@ Compile findings into a prioritized report:
86
107
  ### Step 6: Offer Actions (for PRs)
87
108
 
88
109
  After presenting the report, offer:
110
+
89
111
  - "Would you like me to post this as a PR comment?"
90
112
  - "Should I suggest fixes for any of these issues?"
91
113
  - "Want me to check out this branch and fix the critical issues?"
@@ -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.2
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
@@ -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