@orderful/droid 0.13.0 → 0.15.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 (78) hide show
  1. package/.claude/CLAUDE.md +12 -8
  2. package/CHANGELOG.md +32 -0
  3. package/dist/bin/droid.js +1 -3
  4. package/dist/bin/droid.js.map +1 -1
  5. package/dist/commands/tui.d.ts.map +1 -1
  6. package/dist/commands/tui.js +1 -2
  7. package/dist/commands/tui.js.map +1 -1
  8. package/dist/lib/agents.d.ts +6 -6
  9. package/dist/lib/agents.d.ts.map +1 -1
  10. package/dist/lib/agents.js +60 -38
  11. package/dist/lib/agents.js.map +1 -1
  12. package/dist/lib/skills.d.ts +1 -0
  13. package/dist/lib/skills.d.ts.map +1 -1
  14. package/dist/lib/skills.js +41 -8
  15. package/dist/lib/skills.js.map +1 -1
  16. package/dist/lib/types.d.ts +4 -0
  17. package/dist/lib/types.d.ts.map +1 -1
  18. package/dist/tools/README.md +79 -50
  19. package/dist/tools/brain/TOOL.yaml +1 -1
  20. package/dist/tools/brain/skills/brain/SKILL.md +1 -0
  21. package/dist/tools/brain/skills/brain-obsidian/SKILL.md +1 -0
  22. package/dist/tools/coach/TOOL.yaml +1 -1
  23. package/dist/tools/coach/skills/coach/SKILL.md +1 -0
  24. package/{src/tools/code-review/agents/edi-standards-reviewer/AGENT.md → dist/tools/code-review/agents/edi-standards-reviewer.md} +10 -0
  25. package/dist/tools/code-review/agents/{error-handling-reviewer/AGENT.md → error-handling-reviewer.md} +10 -0
  26. package/{src/tools/code-review/agents/test-coverage-analyzer/AGENT.md → dist/tools/code-review/agents/test-coverage-analyzer.md} +11 -0
  27. package/dist/tools/code-review/agents/{type-reviewer/AGENT.md → type-reviewer.md} +10 -0
  28. package/dist/tools/code-review/skills/code-review/SKILL.md +1 -0
  29. package/dist/tools/comments/TOOL.yaml +2 -2
  30. package/dist/tools/comments/skills/comments/SKILL.md +1 -0
  31. package/dist/tools/droid/TOOL.yaml +2 -2
  32. package/dist/tools/droid/skills/droid/SKILL.md +120 -3
  33. package/dist/tools/project/skills/project/SKILL.md +1 -0
  34. package/package.json +1 -1
  35. package/src/bin/droid.ts +1 -4
  36. package/src/commands/tui.tsx +1 -2
  37. package/src/lib/agents.ts +65 -42
  38. package/src/lib/skills.test.ts +26 -31
  39. package/src/lib/skills.ts +45 -8
  40. package/src/lib/types.ts +5 -0
  41. package/src/tools/README.md +79 -50
  42. package/src/tools/brain/TOOL.yaml +1 -1
  43. package/src/tools/brain/skills/brain/SKILL.md +1 -0
  44. package/src/tools/brain/skills/brain-obsidian/SKILL.md +1 -0
  45. package/src/tools/coach/TOOL.yaml +1 -1
  46. package/src/tools/coach/skills/coach/SKILL.md +1 -0
  47. package/{dist/tools/code-review/agents/edi-standards-reviewer/AGENT.md → src/tools/code-review/agents/edi-standards-reviewer.md} +10 -0
  48. package/src/tools/code-review/agents/{error-handling-reviewer/AGENT.md → error-handling-reviewer.md} +10 -0
  49. package/{dist/tools/code-review/agents/test-coverage-analyzer/AGENT.md → src/tools/code-review/agents/test-coverage-analyzer.md} +11 -0
  50. package/src/tools/code-review/agents/{type-reviewer/AGENT.md → type-reviewer.md} +10 -0
  51. package/src/tools/code-review/skills/code-review/SKILL.md +1 -0
  52. package/src/tools/comments/TOOL.yaml +2 -2
  53. package/src/tools/comments/skills/comments/SKILL.md +1 -0
  54. package/src/tools/droid/TOOL.yaml +2 -2
  55. package/src/tools/droid/skills/droid/SKILL.md +120 -3
  56. package/src/tools/project/skills/project/SKILL.md +1 -0
  57. package/dist/tools/brain/skills/brain/SKILL.yaml +0 -29
  58. package/dist/tools/brain/skills/brain-obsidian/SKILL.yaml +0 -42
  59. package/dist/tools/coach/skills/coach/SKILL.yaml +0 -25
  60. package/dist/tools/code-review/agents/edi-standards-reviewer/AGENT.yaml +0 -14
  61. package/dist/tools/code-review/agents/error-handling-reviewer/AGENT.yaml +0 -14
  62. package/dist/tools/code-review/agents/test-coverage-analyzer/AGENT.yaml +0 -14
  63. package/dist/tools/code-review/agents/type-reviewer/AGENT.yaml +0 -13
  64. package/dist/tools/code-review/skills/code-review/SKILL.yaml +0 -19
  65. package/dist/tools/comments/skills/comments/SKILL.yaml +0 -50
  66. package/dist/tools/droid/skills/droid/SKILL.yaml +0 -7
  67. package/dist/tools/project/skills/project/SKILL.yaml +0 -30
  68. package/src/tools/brain/skills/brain/SKILL.yaml +0 -29
  69. package/src/tools/brain/skills/brain-obsidian/SKILL.yaml +0 -42
  70. package/src/tools/coach/skills/coach/SKILL.yaml +0 -25
  71. package/src/tools/code-review/agents/edi-standards-reviewer/AGENT.yaml +0 -14
  72. package/src/tools/code-review/agents/error-handling-reviewer/AGENT.yaml +0 -14
  73. package/src/tools/code-review/agents/test-coverage-analyzer/AGENT.yaml +0 -14
  74. package/src/tools/code-review/agents/type-reviewer/AGENT.yaml +0 -13
  75. package/src/tools/code-review/skills/code-review/SKILL.yaml +0 -19
  76. package/src/tools/comments/skills/comments/SKILL.yaml +0 -50
  77. package/src/tools/droid/skills/droid/SKILL.yaml +0 -7
  78. package/src/tools/project/skills/project/SKILL.yaml +0 -30
package/src/lib/skills.ts CHANGED
@@ -6,6 +6,7 @@ import { loadConfig, saveConfig } from './config.js';
6
6
  import { Platform, SkillStatus, type SkillManifest, type InstalledSkill, getPlatformTools, setPlatformTools } from './types.js';
7
7
  import { getInstalledAgentsDir, installAgentFromPath, uninstallAgent, isAgentInstalled } from './agents.js';
8
8
  import { getSkillsPath, getCommandsPath, getConfigPath } from './platforms.js';
9
+ import { loadToolManifest } from './tools.js';
9
10
 
10
11
  // Marker comments for CLAUDE.md skill registration
11
12
  const DROID_SKILLS_START = '<!-- droid-skills-start -->';
@@ -84,22 +85,57 @@ export function updatePlatformConfigSkills(platform: Platform, installedSkills:
84
85
  writeFileSync(configPath, content, 'utf-8');
85
86
  }
86
87
 
88
+ /**
89
+ * Parse YAML frontmatter from SKILL.md content
90
+ */
91
+ function parseSkillFrontmatter(content: string): Record<string, unknown> | null {
92
+ const trimmed = content.trimStart();
93
+ if (!trimmed.startsWith('---')) {
94
+ return null;
95
+ }
96
+ const endMatch = trimmed.slice(3).indexOf('---');
97
+ if (endMatch === -1) {
98
+ return null;
99
+ }
100
+ const frontmatterContent = trimmed.slice(3, 3 + endMatch);
101
+ try {
102
+ return YAML.parse(frontmatterContent);
103
+ } catch {
104
+ return null;
105
+ }
106
+ }
107
+
87
108
  /**
88
109
  * Load a skill manifest from a skill directory
110
+ * Reads frontmatter from SKILL.md, version from TOOL.yaml
89
111
  */
90
112
  export function loadSkillManifest(skillDir: string): SkillManifest | null {
91
- const manifestPath = join(skillDir, 'SKILL.yaml');
113
+ const skillMdPath = join(skillDir, 'SKILL.md');
92
114
 
93
- if (!existsSync(manifestPath)) {
115
+ // Read SKILL.md and parse frontmatter
116
+ if (!existsSync(skillMdPath)) {
94
117
  return null;
95
118
  }
96
119
 
97
- try {
98
- const content = readFileSync(manifestPath, 'utf-8');
99
- return YAML.parse(content) as SkillManifest;
100
- } catch {
120
+ const content = readFileSync(skillMdPath, 'utf-8');
121
+ const frontmatter = parseSkillFrontmatter(content);
122
+
123
+ if (!frontmatter || !frontmatter.name) {
101
124
  return null;
102
125
  }
126
+
127
+ // Get version and other tool-level info from TOOL.yaml
128
+ const toolDir = dirname(dirname(skillDir)); // skillDir is tools/{tool}/skills/{skill}, toolDir is tools/{tool}
129
+ const toolManifest = loadToolManifest(toolDir);
130
+
131
+ return {
132
+ name: frontmatter.name as string,
133
+ description: frontmatter.description as string || '',
134
+ version: toolManifest?.version || '0.0.0',
135
+ status: toolManifest?.status,
136
+ dependencies: toolManifest?.dependencies,
137
+ config_schema: toolManifest?.config_schema,
138
+ };
103
139
  }
104
140
 
105
141
  /**
@@ -120,7 +156,8 @@ export function findSkillPath(skillName: string): { toolDir: string; skillDir: s
120
156
  if (!existsSync(skillsDir)) continue;
121
157
 
122
158
  const skillDir = join(skillsDir, skillName);
123
- if (existsSync(skillDir) && existsSync(join(skillDir, 'SKILL.yaml'))) {
159
+ // Check for SKILL.md (content file) - metadata now comes from TOOL.yaml
160
+ if (existsSync(skillDir) && existsSync(join(skillDir, 'SKILL.md'))) {
124
161
  return {
125
162
  toolDir: join(BUNDLED_SKILLS_DIR, toolName),
126
163
  skillDir,
@@ -385,7 +422,7 @@ export function installSkill(skillName: string): { success: boolean; message: st
385
422
  mkdirSync(skillsPath, { recursive: true });
386
423
  }
387
424
 
388
- // Copy SKILL.md (the actual skill file for Claude Code / OpenCode)
425
+ // Copy SKILL.md (includes its own frontmatter)
389
426
  const skillMdSource = join(skillDir, 'SKILL.md');
390
427
  if (existsSync(skillMdSource)) {
391
428
  if (!existsSync(targetSkillDir)) {
package/src/lib/types.ts CHANGED
@@ -127,6 +127,11 @@ export interface ToolSkillInclude {
127
127
  name: string;
128
128
  required: boolean;
129
129
  description?: string;
130
+ // Skill-specific metadata (injected as frontmatter on install)
131
+ globs?: string[];
132
+ alwaysApply?: boolean;
133
+ provides_output?: boolean;
134
+ examples?: SkillExample[];
130
135
  }
131
136
 
132
137
  export interface ToolIncludes {
@@ -1,55 +1,63 @@
1
- # Contributing Skills
1
+ # Contributing Tools
2
2
 
3
- Skills are reusable AI capabilities that can be installed into Claude Code or OpenCode.
3
+ Tools are bundles of skills, commands, and agents that can be installed into Claude Code or OpenCode.
4
4
 
5
5
  ## Directory Structure
6
6
 
7
- Each skill is a directory containing:
8
-
9
7
  ```
10
- skills/
11
- └── my-skill/
12
- ├── SKILL.yaml # Required: Manifest with metadata
13
- ├── SKILL.md # Required: Instructions for the AI
14
- └── commands/ # Optional: Slash commands
15
- └── my-command.md
8
+ tools/
9
+ └── my-tool/
10
+ ├── TOOL.yaml # Required: Tool manifest
11
+ ├── skills/
12
+ └── my-skill/
13
+ │ ├── SKILL.md # Required: Skill instructions + frontmatter
14
+ │ └── references/ # Optional: Additional context files
15
+ ├── commands/
16
+ │ └── my-command.md # Command instructions + frontmatter
17
+ └── agents/
18
+ └── my-agent.md # Agent instructions + frontmatter
16
19
  ```
17
20
 
18
- ## SKILL.yaml (Manifest)
21
+ ## TOOL.yaml (Manifest)
22
+
23
+ The tool manifest defines what's included and tool-level metadata:
19
24
 
20
25
  ```yaml
21
- name: my-skill # Must match directory name
22
- description: Short description # Shown in TUI and listings
23
- version: 1.0.0 # Semver
24
- status: beta # alpha | beta | stable (optional)
25
- dependencies: [] # Other skills required (optional)
26
- provides_output: false # Can this skill be an output target?
27
-
28
- # Configuration schema (optional)
29
- config_schema:
26
+ name: my-tool
27
+ description: "Short description shown in TUI"
28
+ version: 1.0.0
29
+ status: beta # alpha | beta | stable
30
+
31
+ includes:
32
+ skills:
33
+ - name: my-skill
34
+ required: true # Must be installed with tool
35
+ commands:
36
+ - my-command # Just the name (no extension)
37
+ agents:
38
+ - my-agent # Just the name (no extension)
39
+
40
+ dependencies: [] # Other tools required
41
+
42
+ config_schema: # Optional configuration
30
43
  option_name:
31
- type: string # string | boolean
44
+ type: string
32
45
  description: What this option does
33
- default: "default value" # Optional default
34
-
35
- # Examples shown in TUI (optional)
36
- examples:
37
- - title: "Example name"
38
- code: |
39
- // Example code block
46
+ default: "default value"
40
47
  ```
41
48
 
42
- ## SKILL.md (AI Instructions)
49
+ ## Skills
43
50
 
44
- The SKILL.md file contains instructions for the AI. It must have YAML frontmatter:
51
+ Skills provide context and instructions to the AI. Create `skills/{name}/SKILL.md`:
45
52
 
46
53
  ```markdown
47
54
  ---
48
55
  name: my-skill
49
- description: Short description (must match SKILL.yaml)
56
+ description: "What this skill does"
50
57
  globs:
51
- - "**/*" # File patterns this skill applies to
52
- alwaysApply: false # Always include in context?
58
+ - "**/*.ts" # File patterns this skill applies to
59
+ alwaysApply: false # Always include in context?
60
+ allowed-tools: Read, Grep, Glob # Pre-authorize tools (reduces permission prompts)
53
61
  ---
54
62
 
55
63
  # My Skill
@@ -57,29 +65,50 @@ alwaysApply: false # Always include in context?
57
65
  Instructions for the AI on how to use this skill...
58
66
  ```
59
67
 
60
- ## Commands (Optional)
68
+ Skills can have a `references/` subdirectory for additional context files.
61
69
 
62
- Commands are slash commands the user can invoke. Each is a markdown file:
70
+ ## Commands
63
71
 
72
+ Commands are slash commands the user can invoke. Create `commands/{name}.md`:
73
+
74
+ ```markdown
75
+ ---
76
+ name: my-command
77
+ description: "What this command does"
78
+ ---
79
+
80
+ Instructions for what to do when /my-command is invoked...
64
81
  ```
65
- commands/
66
- └── do-thing.md
67
- ```
68
82
 
69
- The command file is just markdown instructions. The filename becomes the command name (`/do-thing`).
83
+ ## Agents
84
+
85
+ Agents are specialized AI personas. Create `agents/{name}.md`:
86
+
87
+ ```markdown
88
+ ---
89
+ name: my-agent
90
+ description: "What this agent does"
91
+ tools:
92
+ - Read
93
+ - Grep
94
+ - Glob
95
+ color: purple # Display colour (Claude Code only)
96
+ ---
97
+
98
+ You are a specialized agent that...
99
+ ```
70
100
 
71
- ## Testing Your Skill
101
+ ## Testing Your Tool
72
102
 
73
- 1. Run `npm run build` to compile
74
- 2. Run `droid` to open the TUI
75
- 3. Navigate to Skills tab
76
- 4. Install your skill
77
- 5. Test in Claude Code with `/your-command` or by referencing the skill
103
+ 1. Run `bun run build` to compile
104
+ 2. Run `bun run start` to open the TUI
105
+ 3. Navigate to your tool
106
+ 4. Install the tool
107
+ 5. Test in Claude Code
78
108
 
79
109
  ## Checklist
80
110
 
81
- - [ ] `SKILL.yaml` has all required fields (name, description, version)
82
- - [ ] `SKILL.md` has valid YAML frontmatter
83
- - [ ] Name in frontmatter matches directory name
84
- - [ ] Description matches between SKILL.yaml and SKILL.md
85
- - [ ] Tests pass: `bun test src/lib/skills.test.ts`
111
+ - [ ] `TOOL.yaml` has all required fields (name, description, version, includes)
112
+ - [ ] All .md files have valid YAML frontmatter with `name` and `description`
113
+ - [ ] Names in frontmatter match the file/directory names
114
+ - [ ] Tests pass: `bun test`
@@ -1,5 +1,5 @@
1
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."
2
+ description: "Your scratchpad (or brain) - a collaborative space for planning and research. Create docs with /brain plan, /brain research, or /brain review. Use @mentions for async discussion. Docs persist across sessions."
3
3
  version: 0.2.0
4
4
  status: beta
5
5
 
@@ -4,6 +4,7 @@ description: "Your scratchpad (or brain) - a collaborative space for planning an
4
4
  globs:
5
5
  - "**/brain/**/*.md"
6
6
  alwaysApply: false
7
+ allowed-tools: Read, Write, Glob, Grep, Bash
7
8
  ---
8
9
 
9
10
  # Brain Skill
@@ -4,6 +4,7 @@ description: "Obsidian extension for brain skill. Adds YAML frontmatter, wikilin
4
4
  globs:
5
5
  - "**/brain/**/*.md"
6
6
  alwaysApply: false
7
+ allowed-tools: Read, Write, Glob, Grep, Bash
7
8
  ---
8
9
 
9
10
  # Brain Obsidian Extension
@@ -17,5 +17,5 @@ dependencies:
17
17
  config_schema:
18
18
  scaffold_verbosity:
19
19
  type: string
20
- description: "How detailed scaffold hints should be: minimal, medium, detailed"
20
+ description: "How detailed scaffold hints should be: minimal (signatures only), medium (hints), detailed (pseudocode)"
21
21
  default: "medium"
@@ -2,6 +2,7 @@
2
2
  name: coach
3
3
  description: "Learning-mode AI assistance - AI as coach, not crutch. Triggers on phrases like 'help me think through', 'coach me on', 'I want to learn how to', or 'don't just give me the answer'. Use /coach plan for co-authored planning, /coach scaffold for structure with hints, /coach review for Socratic questions on your code."
4
4
  alwaysApply: false
5
+ allowed-tools: Read, Grep, Glob
5
6
  ---
6
7
 
7
8
  # Coach Skill
@@ -1,3 +1,13 @@
1
+ ---
2
+ name: edi-standards-reviewer
3
+ description: "Review code for EDI integration patterns, partnership handling, and billing system concerns. Use PROACTIVELY when changes touch trading partners, transactions, or billing."
4
+ tools:
5
+ - Read
6
+ - Grep
7
+ - Glob
8
+ color: blue
9
+ ---
10
+
1
11
  You are a domain-aware code reviewer that understands EDI patterns and integration best practices.
2
12
 
3
13
  ## How to Review
@@ -1,3 +1,13 @@
1
+ ---
2
+ name: error-handling-reviewer
3
+ description: "Hunt for silent failures and missing error handling. Use PROACTIVELY to find try/catch blocks that swallow errors, promises without rejection handling, and missing validation."
4
+ tools:
5
+ - Read
6
+ - Grep
7
+ - Glob
8
+ color: orange
9
+ ---
10
+
1
11
  You are a reliability engineer hunting for silent failures.
2
12
 
3
13
  ## Silent Failure Patterns
@@ -1,3 +1,14 @@
1
+ ---
2
+ name: test-coverage-analyzer
3
+ description: "Analyze test coverage for code changes. Use PROACTIVELY when reviewing PRs or before merging to ensure adequate test coverage."
4
+ tools:
5
+ - Read
6
+ - Grep
7
+ - Glob
8
+ - Bash
9
+ color: green
10
+ ---
11
+
1
12
  You are a testing specialist focused on comprehensive coverage.
2
13
 
3
14
  ## Review Process
@@ -1,3 +1,13 @@
1
+ ---
2
+ name: type-reviewer
3
+ description: "Review TypeScript type design and interface contracts. Check for proper typing, avoid `any`, ensure domain types are used correctly."
4
+ tools:
5
+ - Read
6
+ - Grep
7
+ - Glob
8
+ color: purple
9
+ ---
10
+
1
11
  You are a TypeScript expert focused on type safety and design.
2
12
 
3
13
  ## Review Focus
@@ -4,6 +4,7 @@ description: "Comprehensive code review using specialized agents. Reviews PRs, s
4
4
  globs:
5
5
  - "**/*"
6
6
  alwaysApply: false
7
+ allowed-tools: Read, Grep, Glob, Bash, Task
7
8
  ---
8
9
 
9
10
  # Code Review Skill
@@ -1,5 +1,5 @@
1
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."
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
3
  version: 0.2.3
4
4
  status: beta
5
5
 
@@ -19,7 +19,7 @@ config_schema:
19
19
  description: Override the global user mention for this skill
20
20
  ai_mentions:
21
21
  type: string
22
- description: Additional AI mentions to recognize (comma-separated)
22
+ description: Additional AI mentions to recognize (comma-separated, e.g., "@claude,@ai")
23
23
  default: ""
24
24
  preserve_comments:
25
25
  type: boolean
@@ -4,6 +4,7 @@ description: "Enable inline conversations using @droid/@user markers. Tag @droid
4
4
  globs:
5
5
  - "**/*"
6
6
  alwaysApply: false
7
+ allowed-tools: Read, Grep, Glob, Edit
7
8
  ---
8
9
 
9
10
  # Comments Skill
@@ -1,6 +1,6 @@
1
1
  name: droid
2
- description: "Core droid meta-skill for update awareness and discovery. Notifies about droid updates from within Claude Code."
3
- version: 0.1.0
2
+ description: "Core droid meta-skill for update awareness and tool discovery. Checks for updates and helps users find the right tools."
3
+ version: 0.2.0
4
4
  status: beta
5
5
 
6
6
  # System tool - always stays current regardless of auto-update settings
@@ -1,18 +1,20 @@
1
1
  ---
2
2
  name: droid
3
- description: "Core droid meta-skill for update awareness. Checks for droid updates and notifies users from within Claude Code."
3
+ description: "Core droid meta-skill for update awareness and tool discovery. Checks for updates and helps users find the right tools."
4
4
  globs:
5
5
  - "**/*"
6
6
  alwaysApply: false
7
+ allowed-tools: Bash
7
8
  ---
8
9
 
9
10
  # Droid
10
11
 
11
- Core meta-skill for droid update awareness.
12
+ Core meta-skill for droid update awareness and tool discovery.
12
13
 
13
14
  ## Purpose
14
15
 
15
- Notify users about droid CLI updates from within Claude Code. Users who don't run `droid` often may miss updates - this skill proactively nudges them.
16
+ 1. **Update awareness** - Notify users about droid CLI updates from within Claude Code
17
+ 2. **Tool discovery** - Help users find the right tools for their workflow
16
18
 
17
19
  ## Update Checking
18
20
 
@@ -115,3 +117,118 @@ Run `droid` when you're ready to update.
115
117
  - If the npm check fails (network issues), silently skip - don't error
116
118
  - The droid eyes `[● ●]` and Star Wars quote are intentional branding - always include them
117
119
  - Be helpful but not annoying - one nudge per session is enough
120
+
121
+ ---
122
+
123
+ ## Tool Catalog
124
+
125
+ When users ask about droid tools ("what tools do I have?", "what's available?", "what can droid do?"), use this catalog.
126
+
127
+ ### Checking Installed Tools
128
+
129
+ ```bash
130
+ cat ~/.droid/config.yaml
131
+ ```
132
+
133
+ Look for the `tools:` section under the current platform (e.g., `claude_code:`).
134
+
135
+ ### Available Tools
136
+
137
+ To get tool info (version, status, description), read TOOL.yaml from the droid package:
138
+
139
+ ```bash
140
+ for f in $(npm root -g)/@orderful/droid/dist/tools/*/TOOL.yaml; do echo "---"; cat "$f"; done
141
+ ```
142
+
143
+ **Tools:**
144
+
145
+ | Tool | Description |
146
+ |------|-------------|
147
+ | **brain** | Collaborative scratchpad for planning and research |
148
+ | **coach** | Learning-mode AI - scaffolds don't implement, questions don't fix |
149
+ | **code-review** | Code review with specialized agents and confidence scoring |
150
+ | **comments** | Inline conversations using @droid/@user markers |
151
+ | **project** | Project context for persistent AI memory across sessions |
152
+
153
+ ### Tool Details
154
+
155
+ #### brain
156
+ 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.
157
+
158
+ **Commands:** `/brain`, `/scratchpad`
159
+ **Optional extension:** brain-obsidian (Obsidian vault integration with YAML frontmatter and wikilinks)
160
+
161
+ #### coach
162
+ 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.
163
+
164
+ **Commands:** `/coach`
165
+ **Requires:** comments tool
166
+
167
+ #### code-review
168
+ Comprehensive code review using specialized agents. Reviews PRs, staged changes, branches, or specific files with confidence scoring.
169
+
170
+ **Commands:** `/code-review`
171
+ **Agents:** edi-standards-reviewer, error-handling-reviewer, test-coverage-analyzer, type-reviewer
172
+
173
+ #### comments
174
+ 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.
175
+
176
+ **Commands:** `/comments check`, `/comments cleanup`
177
+
178
+ #### project
179
+ Manage project context files for persistent AI memory across sessions. Load, update, or create project context before working on multi-session features.
180
+
181
+ **Commands:** `/project`, `/project update`, `/project create`
182
+
183
+ ### Installing Tools
184
+
185
+ To install a tool:
186
+ ```bash
187
+ droid install <tool-name>
188
+ ```
189
+
190
+ Or run `droid` to open the TUI and browse available tools.
191
+
192
+ ### Example Responses
193
+
194
+ **User:** "What droid tools do I have installed?"
195
+
196
+ ```
197
+ Let me check your installed tools...
198
+
199
+ [● ●] You have these droid tools installed:
200
+
201
+ - **comments** (v0.2.3) - Inline @droid/@user conversations
202
+ - **brain** (v0.2.0) - Planning and research scratchpad
203
+ - **project** (v0.1.2) - Project context management
204
+
205
+ Run `droid` to see all available tools or install new ones.
206
+ ```
207
+
208
+ **User:** "What tools are available?"
209
+
210
+ ```
211
+ [● ●] Here are the droid tools you can install:
212
+
213
+ | Tool | What it does |
214
+ |------|--------------|
215
+ | brain | Planning and research scratchpad with `/brain` commands |
216
+ | coach | Learning-mode AI that asks questions instead of giving answers |
217
+ | code-review | PR review with specialized agents |
218
+ | comments | Inline @droid/@user conversations in any file |
219
+ | project | Persistent project context across sessions |
220
+
221
+ Run `droid install <tool>` or just `droid` to browse and install.
222
+ ```
223
+
224
+ **User:** "What's the difference between brain and project?"
225
+
226
+ ```
227
+ [● ●] Good question!
228
+
229
+ **brain** - For ephemeral thinking: plans, research, reviews. Use `/brain plan auth-refactor` to start a planning doc, iterate with @mentions, then archive when done.
230
+
231
+ **project** - For persistent context: what the project is, key decisions, current work. Load with `/project myapp` at the start of a session so I have context.
232
+
233
+ They work well together: research in brain docs, capture decisions in project files.
234
+ ```
@@ -4,6 +4,7 @@ description: "Manage project context files for persistent AI memory across sessi
4
4
  globs:
5
5
  - "**/PROJECT.md"
6
6
  alwaysApply: false
7
+ allowed-tools: Read, Write, Glob, Grep
7
8
  ---
8
9
 
9
10
  # Project Skill
@@ -1,29 +0,0 @@
1
- name: brain
2
- description: "Your scratchpad (or brain) - a collaborative space for planning and research. Triggers on phrases like 'let's use our brain', 'open a scratchpad', or 'plan this out' to capture AI output into a persistent doc. Create docs with /brain plan (or /scratchpad plan), /brain research, or /brain review. Use @mentions for async discussion. Docs persist across sessions."
3
- version: 0.2.0
4
- status: beta
5
- dependencies: []
6
- provides_output: false
7
- command_aliases:
8
- scratchpad: brain
9
- config_schema:
10
- brain_dir:
11
- type: string
12
- description: Directory for brain docs (default varies by AI tool)
13
- inbox_folder:
14
- type: string
15
- description: Subfolder for new docs (empty = flat structure)
16
- default: ""
17
- examples:
18
- - title: "Start a planning doc"
19
- code: |
20
- /brain plan auth refactor
21
- # Creates planning doc, becomes active for session
22
- - title: "Quick note capture"
23
- code: |
24
- /brain note Remember to check rate limits on the API
25
- # Fire-and-forget to inbox
26
- - title: "Check for comments"
27
- code: |
28
- /brain check
29
- # Find and address @mentions in active doc
@@ -1,42 +0,0 @@
1
- name: brain-obsidian
2
- description: "Obsidian extension for brain skill. Adds YAML frontmatter, wikilinks, and folder organization. Requires brain skill. Install this to use brain docs with your Obsidian vault."
3
- version: 0.1.0
4
- status: beta
5
- dependencies:
6
- - brain
7
- # Optional: project skill enables linking features
8
- provides_output: false
9
- config_schema:
10
- inbox_folder:
11
- type: string
12
- description: Folder for new brain docs
13
- default: "0-Inbox"
14
- archive_folder:
15
- type: string
16
- description: Folder for archived/stale docs
17
- default: "4-Archives"
18
- para_structure:
19
- type: boolean
20
- description: Enable full PARA folder organization
21
- default: false
22
- projects_folder:
23
- type: string
24
- description: Folder for active project docs (when para_structure is true)
25
- default: "1-Projects"
26
- areas_folder:
27
- type: string
28
- description: Folder for area docs (when para_structure is true)
29
- default: "1-Areas"
30
- resources_folder:
31
- type: string
32
- description: Folder for reference material (when para_structure is true)
33
- default: "3-Resources"
34
- examples:
35
- - title: "Create planning doc in vault"
36
- code: |
37
- /brain plan auth refactor
38
- # Creates in vault's 0-Inbox/ with YAML frontmatter
39
- - title: "Link to project"
40
- code: |
41
- /brain plan feature-x
42
- # Frontmatter includes project: "[[feature-x]]"
@@ -1,25 +0,0 @@
1
- name: coach
2
- description: "Learning-mode AI assistance - AI as coach, not crutch. Triggers on phrases like 'help me think through', 'coach me on', 'I want to learn how to', or 'don't just give me the answer'. Use /coach plan for co-authored planning, /coach scaffold for structure with hints, /coach review for Socratic questions on your code."
3
- version: 0.1.0
4
- status: beta
5
- dependencies:
6
- - comments
7
- provides_output: false
8
- config_schema:
9
- scaffold_verbosity:
10
- type: string
11
- description: "How detailed scaffold hints should be: minimal (signatures only), medium (hints), detailed (pseudocode)"
12
- default: "medium"
13
- examples:
14
- - title: "Start co-authored planning"
15
- code: |
16
- /coach plan add user authentication
17
- # AI asks questions, proposes structure, offers to create brain doc
18
- - title: "Get scaffold for implementation"
19
- code: |
20
- /coach scaffold
21
- # AI generates types/signatures with hint comments, you fill in logic
22
- - title: "Review your implementation"
23
- code: |
24
- /coach review src/auth/login.ts
25
- # AI adds inline // @you questions via comments skill