@orderful/droid 0.25.2 → 0.26.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 (86) hide show
  1. package/.claude-plugin/marketplace.json +114 -0
  2. package/.github/workflows/ci.yml +20 -0
  3. package/AGENTS.md +53 -0
  4. package/CHANGELOG.md +44 -0
  5. package/README.md +30 -4
  6. package/dist/bin/droid.js +62 -51
  7. package/dist/index.js +9 -1
  8. package/dist/lib/skill-config.d.ts.map +1 -1
  9. package/dist/tools/README.md +1 -1
  10. package/dist/tools/brain/.claude-plugin/plugin.json +16 -0
  11. package/dist/tools/brain/commands/brain.md +1 -1
  12. package/dist/tools/brain/commands/scratchpad.md +1 -1
  13. package/dist/tools/brain/skills/droid-brain/SKILL.md +1 -1
  14. package/dist/tools/brain/skills/droid-brain-obsidian/SKILL.md +1 -1
  15. package/dist/tools/coach/.claude-plugin/plugin.json +16 -0
  16. package/dist/tools/coach/commands/coach.md +1 -1
  17. package/dist/tools/coach/skills/droid-coach/SKILL.md +1 -1
  18. package/dist/tools/code-review/.claude-plugin/plugin.json +16 -0
  19. package/dist/tools/code-review/commands/code-review.md +1 -1
  20. package/dist/tools/code-review/skills/droid-code-review/SKILL.md +1 -1
  21. package/dist/tools/codex/.claude-plugin/plugin.json +16 -0
  22. package/dist/tools/codex/TOOL.yaml +2 -2
  23. package/dist/tools/codex/commands/codex.md +1 -1
  24. package/dist/tools/codex/skills/droid-codex/SKILL.md +1 -1
  25. package/dist/tools/comments/.claude-plugin/plugin.json +16 -0
  26. package/dist/tools/comments/commands/comments.md +1 -1
  27. package/dist/tools/comments/skills/droid-comments/SKILL.md +1 -1
  28. package/dist/tools/droid/.claude-plugin/plugin.json +15 -0
  29. package/dist/tools/droid/TOOL.yaml +1 -1
  30. package/dist/tools/droid/skills/droid/SKILL.md +1 -1
  31. package/dist/tools/project/.claude-plugin/plugin.json +16 -0
  32. package/dist/tools/project/commands/project.md +1 -1
  33. package/dist/tools/project/skills/droid-project/SKILL.md +1 -1
  34. package/dist/tools/tech-design/.claude-plugin/plugin.json +16 -0
  35. package/dist/tools/tech-design/TOOL.yaml +18 -0
  36. package/dist/tools/tech-design/commands/tech-design.md +93 -0
  37. package/dist/tools/tech-design/skills/droid-tech-design/SKILL.md +218 -0
  38. package/dist/tools/tech-design/skills/droid-tech-design/references/draft.md +321 -0
  39. package/dist/tools/tech-design/skills/droid-tech-design/references/gaps.md +328 -0
  40. package/dist/tools/tech-design/skills/droid-tech-design/references/publish.md +409 -0
  41. package/dist/tools/tech-design/skills/droid-tech-design/references/research-doc-template.md +129 -0
  42. package/dist/tools/tech-design/skills/droid-tech-design/references/rollup-template.md +55 -0
  43. package/dist/tools/tech-design/skills/droid-tech-design/references/start.md +353 -0
  44. package/dist/tools/tech-design/skills/droid-tech-design/references/think.md +356 -0
  45. package/dist/tools/tech-design/skills/droid-tech-design/references/thought-doc-template.md +72 -0
  46. package/package.json +3 -2
  47. package/scripts/build-plugins.ts +207 -0
  48. package/src/lib/skill-config.ts +95 -57
  49. package/src/lib/skills.ts +2 -2
  50. package/src/tools/README.md +1 -1
  51. package/src/tools/brain/.claude-plugin/plugin.json +16 -0
  52. package/src/tools/brain/commands/brain.md +1 -1
  53. package/src/tools/brain/commands/scratchpad.md +1 -1
  54. package/src/tools/brain/skills/droid-brain/SKILL.md +1 -1
  55. package/src/tools/brain/skills/droid-brain-obsidian/SKILL.md +1 -1
  56. package/src/tools/coach/.claude-plugin/plugin.json +16 -0
  57. package/src/tools/coach/commands/coach.md +1 -1
  58. package/src/tools/coach/skills/droid-coach/SKILL.md +1 -1
  59. package/src/tools/code-review/.claude-plugin/plugin.json +16 -0
  60. package/src/tools/code-review/commands/code-review.md +1 -1
  61. package/src/tools/code-review/skills/droid-code-review/SKILL.md +1 -1
  62. package/src/tools/codex/.claude-plugin/plugin.json +16 -0
  63. package/src/tools/codex/TOOL.yaml +2 -2
  64. package/src/tools/codex/commands/codex.md +1 -1
  65. package/src/tools/codex/skills/droid-codex/SKILL.md +1 -1
  66. package/src/tools/comments/.claude-plugin/plugin.json +16 -0
  67. package/src/tools/comments/commands/comments.md +1 -1
  68. package/src/tools/comments/skills/droid-comments/SKILL.md +1 -1
  69. package/src/tools/droid/.claude-plugin/plugin.json +15 -0
  70. package/src/tools/droid/TOOL.yaml +1 -1
  71. package/src/tools/droid/skills/droid/SKILL.md +1 -1
  72. package/src/tools/project/.claude-plugin/plugin.json +16 -0
  73. package/src/tools/project/commands/project.md +1 -1
  74. package/src/tools/project/skills/droid-project/SKILL.md +1 -1
  75. package/src/tools/tech-design/.claude-plugin/plugin.json +16 -0
  76. package/src/tools/tech-design/TOOL.yaml +18 -0
  77. package/src/tools/tech-design/commands/tech-design.md +93 -0
  78. package/src/tools/tech-design/skills/droid-tech-design/SKILL.md +218 -0
  79. package/src/tools/tech-design/skills/droid-tech-design/references/draft.md +321 -0
  80. package/src/tools/tech-design/skills/droid-tech-design/references/gaps.md +328 -0
  81. package/src/tools/tech-design/skills/droid-tech-design/references/publish.md +409 -0
  82. package/src/tools/tech-design/skills/droid-tech-design/references/research-doc-template.md +129 -0
  83. package/src/tools/tech-design/skills/droid-tech-design/references/rollup-template.md +55 -0
  84. package/src/tools/tech-design/skills/droid-tech-design/references/start.md +353 -0
  85. package/src/tools/tech-design/skills/droid-tech-design/references/think.md +356 -0
  86. package/src/tools/tech-design/skills/droid-tech-design/references/thought-doc-template.md +72 -0
@@ -0,0 +1,114 @@
1
+ {
2
+ "name": "droid",
3
+ "description": "AI-powered development tools for Claude Code",
4
+ "owner": {
5
+ "name": "Orderful",
6
+ "url": "https://github.com/orderful"
7
+ },
8
+ "plugins": [
9
+ {
10
+ "name": "droid",
11
+ "description": "Core droid meta-skill for update awareness and tool discovery. Checks for updates and helps users find the right tools.",
12
+ "version": "0.4.0",
13
+ "source": {
14
+ "source": "github",
15
+ "repo": "orderful/droid",
16
+ "path": "src/tools/droid"
17
+ },
18
+ "author": {
19
+ "name": "Orderful"
20
+ }
21
+ },
22
+ {
23
+ "name": "droid-brain",
24
+ "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.",
25
+ "version": "0.2.3",
26
+ "source": {
27
+ "source": "github",
28
+ "repo": "orderful/droid",
29
+ "path": "src/tools/brain"
30
+ },
31
+ "author": {
32
+ "name": "Orderful"
33
+ }
34
+ },
35
+ {
36
+ "name": "droid-coach",
37
+ "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.",
38
+ "version": "0.1.3",
39
+ "source": {
40
+ "source": "github",
41
+ "repo": "orderful/droid",
42
+ "path": "src/tools/coach"
43
+ },
44
+ "author": {
45
+ "name": "Orderful"
46
+ }
47
+ },
48
+ {
49
+ "name": "droid-code-review",
50
+ "description": "Comprehensive code review using specialized agents. Reviews PRs, staged changes, branches, or specific files with confidence scoring.",
51
+ "version": "0.1.2",
52
+ "source": {
53
+ "source": "github",
54
+ "repo": "orderful/droid",
55
+ "path": "src/tools/code-review"
56
+ },
57
+ "author": {
58
+ "name": "Orderful"
59
+ }
60
+ },
61
+ {
62
+ "name": "droid-codex",
63
+ "description": "Shared organizational knowledge - PRDs, tech designs, domains, proposals, patterns, and explored topics. Use when loading project context, searching codex, capturing decisions, or creating new entries.",
64
+ "version": "0.1.5",
65
+ "source": {
66
+ "source": "github",
67
+ "repo": "orderful/droid",
68
+ "path": "src/tools/codex"
69
+ },
70
+ "author": {
71
+ "name": "Orderful"
72
+ }
73
+ },
74
+ {
75
+ "name": "droid-comments",
76
+ "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.",
77
+ "version": "0.2.6",
78
+ "source": {
79
+ "source": "github",
80
+ "repo": "orderful/droid",
81
+ "path": "src/tools/comments"
82
+ },
83
+ "author": {
84
+ "name": "Orderful"
85
+ }
86
+ },
87
+ {
88
+ "name": "droid-project",
89
+ "description": "Manage project context files for persistent AI memory across sessions. Load, update, or create project context before working on multi-session features.",
90
+ "version": "0.2.0",
91
+ "source": {
92
+ "source": "github",
93
+ "repo": "orderful/droid",
94
+ "path": "src/tools/project"
95
+ },
96
+ "author": {
97
+ "name": "Orderful"
98
+ }
99
+ },
100
+ {
101
+ "name": "droid-tech-design",
102
+ "description": "Technical design authoring tool for engineers. Create structured tech design docs with /tech-design start, iterate in brain, publish to codex. Three-document approach: research doc (codebase discoveries) + thought doc (design workspace) + roll-up (clean summary for review).",
103
+ "version": "0.1.0",
104
+ "source": {
105
+ "source": "github",
106
+ "repo": "orderful/droid",
107
+ "path": "src/tools/tech-design"
108
+ },
109
+ "author": {
110
+ "name": "Orderful"
111
+ }
112
+ }
113
+ ]
114
+ }
@@ -50,3 +50,23 @@ jobs:
50
50
 
51
51
  - name: Lint
52
52
  run: bun run lint
53
+
54
+ plugin-manifests:
55
+ name: Plugin Manifests
56
+ runs-on: ubuntu-latest
57
+ steps:
58
+ - name: Checkout
59
+ uses: actions/checkout@v4
60
+
61
+ - name: Setup Bun
62
+ uses: oven-sh/setup-bun@v2
63
+ with:
64
+ bun-version: latest
65
+
66
+ - name: Install dependencies
67
+ run: bun install
68
+
69
+ - name: Check plugin manifests are up-to-date
70
+ run: |
71
+ bun run build:plugins
72
+ git diff --exit-code .claude-plugin/ src/tools/*/.claude-plugin/
package/AGENTS.md CHANGED
@@ -120,6 +120,59 @@ bun run screenshot # On-demand TUI screenshot for visual verification
120
120
 
121
121
  **Optional:** Add `references/` for context files, `scripts/` for deterministic CLI scripts.
122
122
 
123
+ ## Existing Tools
124
+
125
+ Each tool has a specific domain. Know where your feature belongs:
126
+
127
+ | Tool | Purpose | Add skills here when... |
128
+ |------|---------|------------------------|
129
+ | `brain` | Personal scratchpad, planning docs | Working with brain vault, planning, research |
130
+ | `coach` | Learning-mode assistance | Educational interactions, scaffolding |
131
+ | `code-review` | PR and code review | Review-related features |
132
+ | `codex` | Shared org knowledge (PRDs, designs) | Codex content management, org context |
133
+ | `comments` | Inline @mentions in code | Comment handling, async collaboration |
134
+ | `droid` | **Meta-tool only** - updates, discovery | NEVER add skills here - create new tool instead |
135
+ | `project` | Personal project context | Project file management |
136
+ | `tech-design` | Tech design authoring | Tech design workflows |
137
+
138
+ > **Important:** The `droid` tool is special. It only handles update awareness and tool discovery.
139
+ > If you're building a full-featured capability (like tech-design, codex, brain), create a **new tool**.
140
+
141
+ ## Adding a New Tool
142
+
143
+ Create a new tool when the feature:
144
+ - Has its own user-facing identity (e.g., `/tech-design`, `/deploy`)
145
+ - Doesn't naturally belong to an existing tool's domain
146
+ - Needs its own versioning/release cycle
147
+ - Is a full authoring/workflow tool (not just a helper)
148
+
149
+ **Steps:**
150
+
151
+ 1. Create directory: `src/tools/{tool}/`
152
+ 2. Add `TOOL.yaml`:
153
+ ```yaml
154
+ name: {tool}
155
+ description: "What this tool does"
156
+ version: 0.1.0
157
+ status: beta
158
+
159
+ includes:
160
+ skills:
161
+ - name: droid-{tool}
162
+ required: true
163
+ commands:
164
+ - name: {tool}
165
+ required: false
166
+ agents: []
167
+
168
+ dependencies: []
169
+ ```
170
+ 3. Create skill: `src/tools/{tool}/skills/droid-{tool}/SKILL.md`
171
+ 4. Create command: `src/tools/{tool}/commands/{tool}.md`
172
+ 5. Add changeset: `.changeset/{tool}-initial.md`
173
+
174
+ **Example:** See `src/tools/codex/` or `src/tools/brain/` for reference.
175
+
123
176
  ## Key Architecture Decisions
124
177
 
125
178
  Decisions that affect how you work:
package/CHANGELOG.md CHANGED
@@ -1,5 +1,49 @@
1
1
  # @orderful/droid
2
2
 
3
+ ## 0.26.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#128](https://github.com/Orderful/droid/pull/128) [`7e6f0f6`](https://github.com/Orderful/droid/commit/7e6f0f623f711738f80615851a3e3e3e8d1b9a2d) Thanks [@yanneg](https://github.com/yanneg)! - Add Claude Code native plugin support - tools can now be installed via /plugin commands
8
+
9
+ - [#134](https://github.com/Orderful/droid/pull/134) [`e3e420c`](https://github.com/Orderful/droid/commit/e3e420c47172d947a1e668917cec400c36920380) Thanks [@frytyler](https://github.com/frytyler)! - Add tech-design skill Phase 1 foundation - skill, command, and templates for writing technical design documents with two-document approach (thought docs in brain, roll-ups in codex).
10
+
11
+ - [#136](https://github.com/Orderful/droid/pull/136) [`6658faa`](https://github.com/Orderful/droid/commit/6658faabeec099fdd046529519bbb96a9ebf198c) Thanks [@frytyler](https://github.com/frytyler)! - Add tech-design skill Phase 2 - Core authoring workflows with detailed procedure docs for start, draft, think, gaps, and publish commands.
12
+
13
+ ### Patch Changes
14
+
15
+ - [#137](https://github.com/Orderful/droid/pull/137) [`b01e55b`](https://github.com/Orderful/droid/commit/b01e55b5bf896929f67242c20b1baec3eddf7af9) Thanks [@frytyler](https://github.com/frytyler)! - Add tool inventory and "Adding a New Tool" section to AGENTS.md. Fix allowed-tools format for OpenCode compatibility.
16
+ - Documents when to create a new tool vs add a skill to an existing tool
17
+ - Clarifies that `droid` is a meta-tool only
18
+ - Converts `allowed-tools` from comma-separated strings to YAML arrays (OpenCode requires arrays)
19
+
20
+ - [#142](https://github.com/Orderful/droid/pull/142) [`f362e32`](https://github.com/Orderful/droid/commit/f362e32f5be05d2506fd62f4dfa1f79204661195) Thanks [@frytyler](https://github.com/frytyler)! - Fix skill configuration to always create overrides.yaml file.
21
+ - Skills expect overrides.yaml to exist, even with all defaults
22
+ - Changed promptForSkillConfig to always save the file when config schema exists
23
+ - Saves all values (including defaults) instead of filtering them out
24
+ - Fixes bug where codex and other skills fail when overrides file missing
25
+ - Bump codex tool to v0.1.5
26
+
27
+ - [#144](https://github.com/Orderful/droid/pull/144) [`fde1504`](https://github.com/Orderful/droid/commit/fde1504edae97a8df14c67a7c5aaa8eb8b550513) Thanks [@frytyler](https://github.com/frytyler)! - Fix dependency check for tools with droid- prefixed skills. Coach tool now correctly detects when the comments tool is installed, resolving "Missing dependency" error when comments was actually installed.
28
+
29
+ - [#138](https://github.com/Orderful/droid/pull/138) [`d03c576`](https://github.com/Orderful/droid/commit/d03c5767f7d6b5f885c29ec252b1ee688abdb419) Thanks [@frytyler](https://github.com/frytyler)! - Move tech-design from droid tool to standalone tool
30
+
31
+ Restructures tech-design as a standalone tool at `src/tools/tech-design/` instead of being bundled under the droid tool. This aligns with the architecture pattern used by brain and codex.
32
+
33
+ **What changed:**
34
+ - Created new `tech-design` tool with its own TOOL.yaml
35
+ - Moved `droid-tech-design` skill from `tools/droid/skills/` to `tools/tech-design/skills/`
36
+ - Moved `tech-design` command from `tools/droid/commands/` to `tools/tech-design/commands/`
37
+ - Removed tech-design entries from droid's TOOL.yaml and dependencies
38
+
39
+ **Why this matters:**
40
+ - tech-design has its own user-facing identity (`/tech-design`)
41
+ - Doesn't belong to droid's domain (droid = updates/discovery only)
42
+ - Needs independent versioning/release cycle
43
+ - Matches pattern of other full-featured authoring tools (codex, brain, code-review)
44
+
45
+ **Note:** No user impact since tech-design hasn't been released yet. This is a pre-release structural fix.
46
+
3
47
  ## 0.25.2
4
48
 
5
49
  ### Patch Changes
package/README.md CHANGED
@@ -14,12 +14,28 @@ AI workflow toolkit for sharing tools, commands, and agents across the engineeri
14
14
 
15
15
  ## Quick Start
16
16
 
17
+ ### Option A: Claude Code Plugin (Recommended for Claude Code users)
18
+
19
+ Install individual tools directly through Claude Code's plugin system:
20
+
21
+ ```bash
22
+ # Add the Droid marketplace
23
+ /plugin marketplace add orderful/droid
24
+
25
+ # Install the tools you want
26
+ /plugin install droid-brain@droid
27
+ /plugin install droid-comments@droid
28
+ /plugin install droid-code-review@droid
29
+ ```
30
+
31
+ ### Option B: TUI Dashboard (For OpenCode or if you prefer a visual interface)
32
+
17
33
  ```bash
18
34
  npm install -g @orderful/droid
19
35
  droid
20
36
  ```
21
37
 
22
- That's it. The TUI guides you through setup and tool installation.
38
+ The TUI guides you through setup and tool installation. Works with both Claude Code and OpenCode.
23
39
 
24
40
  > **Note for nodenv/nvm/asdf users:** After global install, run `nodenv rehash` (or equivalent) to update your shims.
25
41
 
@@ -128,9 +144,12 @@ cd droid && bun install
128
144
  bun run build
129
145
  bun dist/bin/droid.js
130
146
 
131
- # to test
147
+ # to test TUI
132
148
  bun link
133
- bun unlink
149
+ bun unlink
150
+
151
+ # to build plugin packages
152
+ bun run build:plugins
134
153
  ```
135
154
 
136
155
  ### Adding Tools
@@ -141,7 +160,14 @@ See [AGENTS.md](AGENTS.md) for detailed contributor guidance. Quick overview:
141
160
  2. Add skills in `src/tools/{name}/skills/{skill}/SKILL.md` (frontmatter + instructions)
142
161
  3. Add commands in `src/tools/{name}/commands/{command}.md` (frontmatter + instructions)
143
162
  4. Add agents in `src/tools/{name}/agents/{agent}.md` (frontmatter + instructions)
144
- 5. Submit a PR
163
+ 5. Run `bun run build:plugins` to generate plugin manifests
164
+ 6. Submit a PR
165
+
166
+ The build script generates:
167
+ - `.claude-plugin/marketplace.json` at repo root (lists all plugins)
168
+ - `src/tools/{name}/.claude-plugin/plugin.json` for each tool
169
+
170
+ These must be committed for plugin installation to work.
145
171
 
146
172
  ## License
147
173
 
package/dist/bin/droid.js CHANGED
@@ -863,7 +863,7 @@ function installSkill(skillName) {
863
863
  }
864
864
  if (manifest.dependencies) {
865
865
  for (const dep of manifest.dependencies) {
866
- if (!isSkillInstalled(dep)) {
866
+ if (!isToolInstalled(dep)) {
867
867
  return {
868
868
  success: false,
869
869
  message: `Missing dependency: '${dep}'. Install it first with \`droid install ${dep}\``
@@ -1356,6 +1356,7 @@ import chalk4 from "chalk";
1356
1356
  import inquirer2 from "inquirer";
1357
1357
  async function promptForSkillConfig(skillName, configSchema, askFirst = true) {
1358
1358
  const globalConfig = loadConfig();
1359
+ let shouldPrompt = true;
1359
1360
  if (askFirst) {
1360
1361
  const { wantsConfigure } = await inquirer2.prompt([
1361
1362
  {
@@ -1365,64 +1366,74 @@ async function promptForSkillConfig(skillName, configSchema, askFirst = true) {
1365
1366
  default: false
1366
1367
  }
1367
1368
  ]);
1368
- if (!wantsConfigure) {
1369
- return;
1370
- }
1369
+ shouldPrompt = wantsConfigure;
1371
1370
  }
1372
- console.log(chalk4.bold(`
1371
+ const existingOverrides = loadSkillOverrides(skillName);
1372
+ let overrides = {};
1373
+ if (shouldPrompt) {
1374
+ console.log(chalk4.bold(`
1373
1375
  \u2699\uFE0F Configure ${skillName}
1374
1376
  `));
1375
- const existingOverrides = loadSkillOverrides(skillName);
1376
- const questions = Object.entries(configSchema).map(([key, option]) => {
1377
- const baseQuestion = {
1378
- name: key,
1379
- message: option.description
1380
- };
1381
- const existingValue = existingOverrides[key];
1382
- switch (option.type) {
1383
- case "boolean" /* Boolean */:
1384
- return {
1385
- ...baseQuestion,
1386
- type: "confirm",
1387
- default: existingValue ?? option.default ?? false
1388
- };
1389
- case "select" /* Select */:
1390
- return {
1391
- ...baseQuestion,
1392
- type: "list",
1393
- choices: option.options || [],
1394
- default: existingValue ?? option.default
1395
- };
1396
- case "string" /* String */:
1397
- default: {
1398
- let defaultValue = existingValue ?? option.default ?? "";
1399
- if (key === "user_mention" && !existingValue && globalConfig.user_mention) {
1400
- defaultValue = globalConfig.user_mention;
1377
+ const questions = Object.entries(configSchema).map(([key, option]) => {
1378
+ const baseQuestion = {
1379
+ name: key,
1380
+ message: option.description
1381
+ };
1382
+ const existingValue = existingOverrides[key];
1383
+ switch (option.type) {
1384
+ case "boolean" /* Boolean */:
1385
+ return {
1386
+ ...baseQuestion,
1387
+ type: "confirm",
1388
+ default: existingValue ?? option.default ?? false
1389
+ };
1390
+ case "select" /* Select */:
1391
+ return {
1392
+ ...baseQuestion,
1393
+ type: "list",
1394
+ choices: option.options || [],
1395
+ default: existingValue ?? option.default
1396
+ };
1397
+ case "string" /* String */:
1398
+ default: {
1399
+ let defaultValue = existingValue ?? option.default ?? "";
1400
+ if (key === "user_mention" && !existingValue && globalConfig.user_mention) {
1401
+ defaultValue = globalConfig.user_mention;
1402
+ }
1403
+ return {
1404
+ ...baseQuestion,
1405
+ type: "input",
1406
+ default: defaultValue
1407
+ };
1401
1408
  }
1402
- return {
1403
- ...baseQuestion,
1404
- type: "input",
1405
- default: defaultValue
1406
- };
1409
+ }
1410
+ });
1411
+ const answers = await inquirer2.prompt(questions);
1412
+ for (const [key, value] of Object.entries(answers)) {
1413
+ if (value !== "" && value !== void 0 && value !== null) {
1414
+ overrides[key] = value;
1407
1415
  }
1408
1416
  }
1409
- });
1410
- const answers = await inquirer2.prompt(questions);
1411
- const overrides = {};
1412
- for (const [key, value] of Object.entries(answers)) {
1413
- const schema = configSchema[key];
1414
- if (value !== schema.default && value !== "" && value !== false) {
1415
- overrides[key] = value;
1416
- }
1417
- }
1418
- if (Object.keys(overrides).length > 0) {
1419
- saveSkillOverrides(skillName, overrides);
1420
- const displayName = skillName.replace(/^droid-/, "");
1421
- console.log(chalk4.green(`
1422
- \u2713 Configuration saved to ~/.droid/skills/${displayName}/overrides.yaml`));
1423
1417
  } else {
1424
- console.log(chalk4.gray("\nNo custom configuration set (using defaults)."));
1418
+ for (const [key, option] of Object.entries(configSchema)) {
1419
+ const existingValue = existingOverrides[key];
1420
+ let defaultValue = existingValue ?? option.default ?? (option.type === "boolean" /* Boolean */ ? false : "");
1421
+ if (key === "user_mention" && !existingValue && globalConfig.user_mention) {
1422
+ defaultValue = globalConfig.user_mention;
1423
+ }
1424
+ if (defaultValue !== "" && defaultValue !== void 0 && defaultValue !== null) {
1425
+ overrides[key] = defaultValue;
1426
+ }
1427
+ }
1425
1428
  }
1429
+ saveSkillOverrides(skillName, overrides);
1430
+ const displayName = skillName.replace(/^droid-/, "");
1431
+ console.log(
1432
+ chalk4.green(
1433
+ `
1434
+ \u2713 Configuration saved to ~/.droid/skills/${displayName}/overrides.yaml`
1435
+ )
1436
+ );
1426
1437
  }
1427
1438
 
1428
1439
  // src/commands/skills.ts
package/dist/index.js CHANGED
@@ -359,6 +359,14 @@ function getBundledTools() {
359
359
  }
360
360
  return tools;
361
361
  }
362
+ function isToolInstalled(toolName) {
363
+ const config = loadConfig();
364
+ const installedTools = getPlatformTools(config);
365
+ const tool = getBundledTools().find((t) => t.name === toolName);
366
+ if (!tool) return false;
367
+ const requiredSkills = tool.includes.skills.filter((s) => s.required).map((s) => s.name);
368
+ return requiredSkills.some((skillName) => skillName in installedTools);
369
+ }
362
370
 
363
371
  // src/lib/agents.ts
364
372
  var __dirname3 = dirname3(fileURLToPath3(import.meta.url));
@@ -869,7 +877,7 @@ function installSkill(skillName) {
869
877
  }
870
878
  if (manifest.dependencies) {
871
879
  for (const dep of manifest.dependencies) {
872
- if (!isSkillInstalled(dep)) {
880
+ if (!isToolInstalled(dep)) {
873
881
  return {
874
882
  success: false,
875
883
  message: `Missing dependency: '${dep}'. Install it first with \`droid install ${dep}\``
@@ -1 +1 @@
1
- {"version":3,"file":"skill-config.d.ts","sourceRoot":"","sources":["../../src/lib/skill-config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAyC,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnF;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAC1C,QAAQ,GAAE,OAAc,GACvB,OAAO,CAAC,IAAI,CAAC,CAkFf"}
1
+ {"version":3,"file":"skill-config.d.ts","sourceRoot":"","sources":["../../src/lib/skill-config.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAC1C,QAAQ,GAAE,OAAc,GACvB,OAAO,CAAC,IAAI,CAAC,CAoHf"}
@@ -57,7 +57,7 @@ description: "What this skill does"
57
57
  globs:
58
58
  - "**/*.ts" # File patterns this skill applies to
59
59
  alwaysApply: false # Always include in context?
60
- allowed-tools: Read, Grep, Glob # Pre-authorize tools (reduces permission prompts)
60
+ allowed-tools: [Read, Grep, Glob] # Pre-authorize tools (reduces permission prompts)
61
61
  ---
62
62
 
63
63
  # My Skill
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "droid-brain",
3
+ "version": "0.2.3",
4
+ "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.",
5
+ "author": {
6
+ "name": "Orderful",
7
+ "url": "https://github.com/orderful"
8
+ },
9
+ "repository": "https://github.com/orderful/droid",
10
+ "license": "MIT",
11
+ "keywords": [
12
+ "droid",
13
+ "ai",
14
+ "brain"
15
+ ]
16
+ }
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  description: Collaborative scratchpad for planning and research
3
3
  argument-hint: "[{topic} | plan|research|review {topic} | idea|add {text} | check|done]"
4
- allowed-tools: Read, Write, Edit, Glob, Grep, Bash(mkdir:*), Bash(ls:*)
4
+ allowed-tools: [Read, Write, Edit, Glob, Grep, Bash(mkdir:*), Bash(ls:*)]
5
5
  ---
6
6
 
7
7
  # /brain
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  description: Collaborative scratchpad for planning and research
3
3
  argument-hint: "[{topic} | plan|research|review {topic} | idea|add {text} | check|done]"
4
- allowed-tools: Read, Write, Edit, Glob, Grep, Bash(mkdir:*), Bash(ls:*)
4
+ allowed-tools: [Read, Write, Edit, Glob, Grep, Bash(mkdir:*), Bash(ls:*)]
5
5
  ---
6
6
 
7
7
  # /scratchpad
@@ -4,7 +4,7 @@ description: "Collaborative scratchpad for planning and research. Use when plann
4
4
  globs:
5
5
  - "**/brain/**/*.md"
6
6
  alwaysApply: false
7
- allowed-tools: Read, Write, Glob, Grep, Bash
7
+ allowed-tools: [Read, Write, Glob, Grep, Bash]
8
8
  ---
9
9
 
10
10
  # Brain Skill
@@ -4,7 +4,7 @@ description: "Obsidian extension for brain skill with YAML frontmatter, wikilink
4
4
  globs:
5
5
  - "**/brain/**/*.md"
6
6
  alwaysApply: false
7
- allowed-tools: Read, Write, Glob, Grep, Bash
7
+ allowed-tools: [Read, Write, Glob, Grep, Bash]
8
8
  ---
9
9
 
10
10
  # Brain Obsidian Extension
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "droid-coach",
3
+ "version": "0.1.3",
4
+ "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.",
5
+ "author": {
6
+ "name": "Orderful",
7
+ "url": "https://github.com/orderful"
8
+ },
9
+ "repository": "https://github.com/orderful/droid",
10
+ "license": "MIT",
11
+ "keywords": [
12
+ "droid",
13
+ "ai",
14
+ "coach"
15
+ ]
16
+ }
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  description: "Learning-mode AI assistance - scaffolds don't implement, questions don't fix"
3
3
  argument-hint: "[plan {task} | scaffold [{path}] | review [{path}] | check | challenge [{path}]]"
4
- allowed-tools: Read, Write, Edit, Glob, Grep, Bash(ls:*)
4
+ allowed-tools: [Read, Write, Edit, Glob, Grep, Bash(ls:*)]
5
5
  ---
6
6
 
7
7
  # /coach
@@ -2,7 +2,7 @@
2
2
  name: droid-coach
3
3
  description: "Learning-mode AI assistance - scaffolds don't implement, questions don't fix. Use when learning a new codebase, wanting to understand deeply, or building skills to retain. User prompts like 'coach me on', 'help me think through', 'I want to learn how to', 'don't just give me the answer'."
4
4
  alwaysApply: false
5
- allowed-tools: Read, Grep, Glob
5
+ allowed-tools: [Read, Grep, Glob]
6
6
  ---
7
7
 
8
8
  # Coach Skill
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "droid-code-review",
3
+ "version": "0.1.2",
4
+ "description": "Comprehensive code review using specialized agents. Reviews PRs, staged changes, branches, or specific files with confidence scoring.",
5
+ "author": {
6
+ "name": "Orderful",
7
+ "url": "https://github.com/orderful"
8
+ },
9
+ "repository": "https://github.com/orderful/droid",
10
+ "license": "MIT",
11
+ "keywords": [
12
+ "droid",
13
+ "ai",
14
+ "code-review"
15
+ ]
16
+ }
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  description: Run comprehensive code review using specialized agents. Accepts PR number, 'staged', 'branch', or file path.
3
3
  argument-hint: "[#123 | staged | branch | path/to/file.ts]"
4
- allowed-tools: Task, Bash(git:*), Bash(gh:*), Read, Glob
4
+ allowed-tools: [Task, Bash(git:*), Bash(gh:*), Read, Glob]
5
5
  ---
6
6
 
7
7
  # /code-review - Run comprehensive code review using specialized agents
@@ -4,7 +4,7 @@ description: "Comprehensive code review using specialized agents. Use when revie
4
4
  globs:
5
5
  - "**/*"
6
6
  alwaysApply: false
7
- allowed-tools: Read, Grep, Glob, Bash, Task
7
+ allowed-tools: [Read, Grep, Glob, Bash, Task]
8
8
  ---
9
9
 
10
10
  # Code Review Skill
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "droid-codex",
3
+ "version": "0.1.5",
4
+ "description": "Shared organizational knowledge - PRDs, tech designs, domains, proposals, patterns, and explored topics. Use when loading project context, searching codex, capturing decisions, or creating new entries.",
5
+ "author": {
6
+ "name": "Orderful",
7
+ "url": "https://github.com/orderful"
8
+ },
9
+ "repository": "https://github.com/orderful/droid",
10
+ "license": "MIT",
11
+ "keywords": [
12
+ "droid",
13
+ "ai",
14
+ "codex"
15
+ ]
16
+ }