@orderful/droid 0.36.0 → 0.38.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.
- package/.claude-plugin/marketplace.json +1 -118
- package/.claude-plugin/plugin.json +49 -0
- package/AGENTS.md +4 -0
- package/CHANGELOG.md +59 -0
- package/README.md +53 -39
- package/dist/bin/droid.js +525 -212
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/tui/components/PlatformBadges.d.ts.map +1 -1
- package/dist/commands/tui/components/SettingsDetails.d.ts.map +1 -1
- package/dist/commands/tui/hooks/useAppUpdate.d.ts.map +1 -1
- package/dist/commands/tui/views/SetupScreen.d.ts.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/index.js +345 -186
- package/dist/lib/agents.d.ts +4 -2
- package/dist/lib/agents.d.ts.map +1 -1
- package/dist/lib/migrations.d.ts.map +1 -1
- package/dist/lib/platform.codex.d.ts +36 -0
- package/dist/lib/platform.codex.d.ts.map +1 -0
- package/dist/lib/platforms.d.ts +30 -24
- package/dist/lib/platforms.d.ts.map +1 -1
- package/dist/lib/skills.d.ts +4 -2
- package/dist/lib/skills.d.ts.map +1 -1
- package/dist/lib/types.d.ts +2 -1
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/tools/brain/.claude-plugin/plugin.json +8 -1
- package/dist/tools/brain/TOOL.yaml +1 -1
- package/dist/tools/brain/commands/brain.md +3 -2
- package/dist/tools/brain/skills/brain/SKILL.md +41 -10
- package/dist/tools/brain/skills/brain/references/templates.md +61 -0
- package/dist/tools/brain/skills/brain/references/workflows.md +78 -9
- package/dist/tools/brain/skills/brain-obsidian/SKILL.md +2 -0
- package/dist/tools/coach/.claude-plugin/plugin.json +6 -0
- package/dist/tools/coach/skills/coach/SKILL.md +3 -0
- package/dist/tools/code-review/.claude-plugin/plugin.json +12 -0
- package/dist/tools/code-review/skills/code-review/SKILL.md +2 -0
- package/dist/tools/codex/.claude-plugin/plugin.json +9 -0
- package/dist/tools/codex/skills/codex/SKILL.md +3 -0
- package/dist/tools/comments/.claude-plugin/plugin.json +7 -1
- package/dist/tools/comments/TOOL.yaml +1 -1
- package/dist/tools/comments/skills/comments/SKILL.md +11 -4
- package/dist/tools/droid/.claude-plugin/plugin.json +8 -1
- package/dist/tools/droid/TOOL.yaml +4 -2
- package/dist/tools/droid/commands/setup.md +125 -0
- package/dist/tools/droid/skills/droid/SKILL.md +117 -2
- package/dist/tools/plan/.claude-plugin/plugin.json +7 -1
- package/dist/tools/plan/TOOL.yaml +1 -1
- package/dist/tools/plan/commands/plan.md +3 -1
- package/dist/tools/plan/skills/plan/SKILL.md +23 -9
- package/dist/tools/plan/skills/plan/references/workflows.md +57 -20
- package/dist/tools/project/.claude-plugin/plugin.json +6 -0
- package/dist/tools/project/skills/project/SKILL.md +3 -0
- package/dist/tools/tech-design/.claude-plugin/plugin.json +7 -1
- package/dist/tools/tech-design/TOOL.yaml +1 -1
- package/dist/tools/tech-design/commands/tech-design.md +2 -0
- package/dist/tools/tech-design/skills/tech-design/SKILL.md +45 -13
- package/dist/tools/tech-design/skills/tech-design/references/publish.md +272 -216
- package/dist/tools/tech-design/skills/tech-design/references/start.md +50 -20
- package/dist/tools/wrapup/.claude-plugin/plugin.json +6 -0
- package/dist/tools/wrapup/skills/wrapup/SKILL.md +2 -0
- package/package.json +1 -1
- package/scripts/build-plugins.ts +154 -6
- package/src/bin/droid.ts +16 -0
- package/src/commands/setup.ts +107 -2
- package/src/commands/tui/components/PlatformBadges.tsx +1 -0
- package/src/commands/tui/components/SettingsDetails.tsx +1 -0
- package/src/commands/tui/hooks/useAppUpdate.ts +21 -1
- package/src/commands/tui/views/SetupScreen.tsx +10 -1
- package/src/commands/update.ts +21 -1
- package/src/lib/agents.ts +13 -2
- package/src/lib/migrations.ts +81 -9
- package/src/lib/platform.codex.ts +131 -0
- package/src/lib/platforms.ts +127 -6
- package/src/lib/skills.ts +53 -6
- package/src/lib/types.ts +1 -0
- package/src/tools/brain/.claude-plugin/plugin.json +8 -1
- package/src/tools/brain/TOOL.yaml +1 -1
- package/src/tools/brain/commands/brain.md +3 -2
- package/src/tools/brain/skills/brain/SKILL.md +41 -10
- package/src/tools/brain/skills/brain/references/templates.md +61 -0
- package/src/tools/brain/skills/brain/references/workflows.md +78 -9
- package/src/tools/brain/skills/brain-obsidian/SKILL.md +2 -0
- package/src/tools/coach/.claude-plugin/plugin.json +6 -0
- package/src/tools/coach/skills/coach/SKILL.md +3 -0
- package/src/tools/code-review/.claude-plugin/plugin.json +12 -0
- package/src/tools/code-review/skills/code-review/SKILL.md +2 -0
- package/src/tools/codex/.claude-plugin/plugin.json +9 -0
- package/src/tools/codex/skills/codex/SKILL.md +3 -0
- package/src/tools/comments/.claude-plugin/plugin.json +7 -1
- package/src/tools/comments/TOOL.yaml +1 -1
- package/src/tools/comments/skills/comments/SKILL.md +11 -4
- package/src/tools/droid/.claude-plugin/plugin.json +8 -1
- package/src/tools/droid/TOOL.yaml +4 -2
- package/src/tools/droid/commands/setup.md +125 -0
- package/src/tools/droid/skills/droid/SKILL.md +117 -2
- package/src/tools/plan/.claude-plugin/plugin.json +7 -1
- package/src/tools/plan/TOOL.yaml +1 -1
- package/src/tools/plan/commands/plan.md +3 -1
- package/src/tools/plan/skills/plan/SKILL.md +23 -9
- package/src/tools/plan/skills/plan/references/workflows.md +57 -20
- package/src/tools/project/.claude-plugin/plugin.json +6 -0
- package/src/tools/project/skills/project/SKILL.md +3 -0
- package/src/tools/tech-design/.claude-plugin/plugin.json +7 -1
- package/src/tools/tech-design/TOOL.yaml +1 -1
- package/src/tools/tech-design/commands/tech-design.md +2 -0
- package/src/tools/tech-design/skills/tech-design/SKILL.md +45 -13
- package/src/tools/tech-design/skills/tech-design/references/publish.md +272 -216
- package/src/tools/tech-design/skills/tech-design/references/start.md +50 -20
- package/src/tools/wrapup/.claude-plugin/plugin.json +6 -0
- package/src/tools/wrapup/skills/wrapup/SKILL.md +2 -0
package/dist/lib/agents.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Platform } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* Get the installation path for agents based on platform
|
|
4
|
+
* Returns null for platforms that don't support agents (e.g., OpenAI Codex)
|
|
4
5
|
*/
|
|
5
|
-
export declare function getAgentsInstallPath(platform: Platform): string;
|
|
6
|
+
export declare function getAgentsInstallPath(platform: Platform): string | null;
|
|
6
7
|
/**
|
|
7
8
|
* Agent manifest structure
|
|
8
9
|
*/
|
|
@@ -34,8 +35,9 @@ export declare function getBundledAgents(): AgentManifest[];
|
|
|
34
35
|
export declare function getAgentStatusDisplay(status?: string): string;
|
|
35
36
|
/**
|
|
36
37
|
* Get installed agents directory for the configured platform
|
|
38
|
+
* Returns null if platform doesn't support agents
|
|
37
39
|
*/
|
|
38
|
-
export declare function getInstalledAgentsDir(): string;
|
|
40
|
+
export declare function getInstalledAgentsDir(): string | null;
|
|
39
41
|
/**
|
|
40
42
|
* Check if an agent is installed
|
|
41
43
|
*/
|
package/dist/lib/agents.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/lib/agents.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAOnC
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/lib/agents.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAOnC;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAEtE;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IACrC,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAsBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CA2BzE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,EAAE,CA+BlD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAU7D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAGrD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAM3D;AA+CD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,QAAQ,GAClB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA4CvC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiB9D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAMrF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,QAAQ,GAClB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAqBvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/lib/migrations.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,KAAK,SAAS,EAIf,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/lib/migrations.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,KAAK,SAAS,EAIf,MAAM,SAAS,CAAC;AAskBjB;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,CAE/D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAc/D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,IAAI,CAmBN;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CA2CtC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,GACvB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAStC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG;IAC5D,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAyDA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAI Codex platform-specific logic
|
|
3
|
+
*
|
|
4
|
+
* Codex reads skills from ~/.codex/skills/ but droid installs to ~/.claude/skills/ (unified path).
|
|
5
|
+
* We create symlinks from Codex's location to the unified path.
|
|
6
|
+
*
|
|
7
|
+
* Key differences from other platforms:
|
|
8
|
+
* - Skills only (no commands or agents)
|
|
9
|
+
* - Uses symlinks instead of copying files
|
|
10
|
+
* - Must preserve user's own Codex skills (not managed by droid)
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Codex skills path - where Codex reads skills from
|
|
14
|
+
*/
|
|
15
|
+
export declare const CODEX_SKILLS_PATH: string;
|
|
16
|
+
/**
|
|
17
|
+
* Create a symlink for a skill in the Codex skills directory
|
|
18
|
+
* Symlinks from ~/.codex/skills/{name} → ~/.claude/skills/{name}
|
|
19
|
+
*
|
|
20
|
+
* Safety guarantees:
|
|
21
|
+
* - Only creates symlinks for skills that exist in unified path
|
|
22
|
+
* - Never deletes real directories (only replaces existing symlinks)
|
|
23
|
+
* - Skips if symlink already points to correct location
|
|
24
|
+
*/
|
|
25
|
+
export declare function createCodexSymlink(skillName: string): void;
|
|
26
|
+
/**
|
|
27
|
+
* Remove a symlink for a skill from the Codex skills directory
|
|
28
|
+
* Only removes if it's a symlink (preserves user's real directories)
|
|
29
|
+
*/
|
|
30
|
+
export declare function removeCodexSymlink(skillName: string): void;
|
|
31
|
+
/**
|
|
32
|
+
* Remove all droid-managed Codex symlinks (when Codex is removed or ignored)
|
|
33
|
+
* Only removes symlinks, preserves user's real directories and .system folder
|
|
34
|
+
*/
|
|
35
|
+
export declare function removeAllCodexSymlinks(): void;
|
|
36
|
+
//# sourceMappingURL=platform.codex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.codex.d.ts","sourceRoot":"","sources":["../../src/lib/platform.codex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAmBH;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAsC,CAAC;AAErE;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CA2C1D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAe1D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAiB7C"}
|
package/dist/lib/platforms.d.ts
CHANGED
|
@@ -1,32 +1,20 @@
|
|
|
1
1
|
import { Platform, type DroidConfig } from './types';
|
|
2
|
+
export { CODEX_SKILLS_PATH, createCodexSymlink, removeCodexSymlink, removeAllCodexSymlinks, } from './platform.codex';
|
|
2
3
|
/**
|
|
3
4
|
* Platform-specific paths configuration
|
|
4
5
|
* Single source of truth for all platform-specific directories
|
|
5
6
|
*
|
|
6
7
|
* Note: Skills are unified to ~/.claude/skills/ (all platforms read this location).
|
|
7
8
|
* Commands and agents remain platform-specific as there's no cross-platform compatibility.
|
|
9
|
+
* OpenAI Codex only supports skills (via symlinks) - no commands, agents, or config integration.
|
|
8
10
|
*/
|
|
9
|
-
export declare const PLATFORM_PATHS: {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
readonly opencode: {
|
|
17
|
-
readonly skills: string;
|
|
18
|
-
readonly commands: string;
|
|
19
|
-
readonly agents: string;
|
|
20
|
-
readonly config: string;
|
|
21
|
-
};
|
|
22
|
-
readonly cursor: {
|
|
23
|
-
readonly skills: string;
|
|
24
|
-
readonly commands: string;
|
|
25
|
-
readonly agents: string;
|
|
26
|
-
readonly config: string;
|
|
27
|
-
};
|
|
28
|
-
};
|
|
29
|
-
export type PlatformPaths = typeof PLATFORM_PATHS[Platform];
|
|
11
|
+
export declare const PLATFORM_PATHS: Record<Platform, {
|
|
12
|
+
skills: string;
|
|
13
|
+
commands: string | null;
|
|
14
|
+
agents: string | null;
|
|
15
|
+
config: string | null;
|
|
16
|
+
}>;
|
|
17
|
+
export type PlatformPaths = (typeof PLATFORM_PATHS)[Platform];
|
|
30
18
|
/**
|
|
31
19
|
* Get all paths for a platform
|
|
32
20
|
*/
|
|
@@ -37,16 +25,27 @@ export declare function getPlatformPaths(platform: Platform): PlatformPaths;
|
|
|
37
25
|
export declare function getSkillsPath(platform: Platform): string;
|
|
38
26
|
/**
|
|
39
27
|
* Get commands install path for a platform
|
|
28
|
+
* Returns null for platforms that don't support custom commands (e.g., OpenAI Codex)
|
|
40
29
|
*/
|
|
41
|
-
export declare function getCommandsPath(platform: Platform): string;
|
|
30
|
+
export declare function getCommandsPath(platform: Platform): string | null;
|
|
42
31
|
/**
|
|
43
32
|
* Get agents install path for a platform
|
|
33
|
+
* Returns null for platforms that don't support custom agents (e.g., OpenAI Codex)
|
|
44
34
|
*/
|
|
45
|
-
export declare function getAgentsPath(platform: Platform): string;
|
|
35
|
+
export declare function getAgentsPath(platform: Platform): string | null;
|
|
46
36
|
/**
|
|
47
37
|
* Get platform config file path (CLAUDE.md or AGENTS.md)
|
|
38
|
+
* Returns null for platforms without config file integration (e.g., OpenAI Codex)
|
|
48
39
|
*/
|
|
49
|
-
export declare function getConfigPath(platform: Platform): string;
|
|
40
|
+
export declare function getConfigPath(platform: Platform): string | null;
|
|
41
|
+
/**
|
|
42
|
+
* Check if a platform supports custom commands
|
|
43
|
+
*/
|
|
44
|
+
export declare function platformSupportsCommands(platform: Platform): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Check if a platform supports custom agents
|
|
47
|
+
*/
|
|
48
|
+
export declare function platformSupportsAgents(platform: Platform): boolean;
|
|
50
49
|
/**
|
|
51
50
|
* Detect ALL installed platforms
|
|
52
51
|
* Returns array of all platforms that are installed on the system
|
|
@@ -56,4 +55,11 @@ export declare function detectAllPlatforms(): Platform[];
|
|
|
56
55
|
* Get platforms to install to (detected minus ignored)
|
|
57
56
|
*/
|
|
58
57
|
export declare function getActivePlatforms(config: DroidConfig): Platform[];
|
|
58
|
+
/**
|
|
59
|
+
* Sync installed tools to newly detected platforms.
|
|
60
|
+
* Called early in common commands to handle platforms added after initial setup.
|
|
61
|
+
*
|
|
62
|
+
* Returns array of newly synced platforms (empty if none).
|
|
63
|
+
*/
|
|
64
|
+
export declare function syncNewPlatforms(config: DroidConfig): Platform[];
|
|
59
65
|
//# sourceMappingURL=platforms.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platforms.d.ts","sourceRoot":"","sources":["../../src/lib/platforms.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"platforms.d.ts","sourceRoot":"","sources":["../../src/lib/platforms.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAGrD,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAW1B;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CACjC,QAAQ,EACR;IACE,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CA6BF,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC;AAE9D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa,CAElE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAExD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAEjE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAE/D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAE/D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAEpE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAElE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,QAAQ,EAAE,CAgC/C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,EAAE,CAIlE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,EAAE,CAwBhE"}
|
package/dist/lib/skills.d.ts
CHANGED
|
@@ -9,12 +9,14 @@ export declare function getBundledSkillsDir(): string;
|
|
|
9
9
|
export declare function getSkillsInstallPath(platform: Platform): string;
|
|
10
10
|
/**
|
|
11
11
|
* Get the commands installation path based on platform
|
|
12
|
+
* Returns null for platforms that don't support commands (e.g., OpenAI Codex)
|
|
12
13
|
*/
|
|
13
|
-
export declare function getCommandsInstallPath(platform: Platform): string;
|
|
14
|
+
export declare function getCommandsInstallPath(platform: Platform): string | null;
|
|
14
15
|
/**
|
|
15
16
|
* Get the path to the platform's main config markdown file
|
|
17
|
+
* Returns null for platforms without config file integration (e.g., OpenAI Codex)
|
|
16
18
|
*/
|
|
17
|
-
export declare function getPlatformConfigPath(platform: Platform): string;
|
|
19
|
+
export declare function getPlatformConfigPath(platform: Platform): string | null;
|
|
18
20
|
/**
|
|
19
21
|
* Update the platform's config file with skill registrations
|
|
20
22
|
*/
|
package/dist/lib/skills.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/lib/skills.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,QAAQ,EACR,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,cAAc,EAGpB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/lib/skills.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/types.d.ts
CHANGED
package/dist/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,UAAU,gBAAgB;IAC1B,QAAQ,aAAa;IACrB,MAAM,WAAW;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "droid-brain",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
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
5
|
"author": {
|
|
6
6
|
"name": "Orderful",
|
|
@@ -12,5 +12,12 @@
|
|
|
12
12
|
"droid",
|
|
13
13
|
"ai",
|
|
14
14
|
"brain"
|
|
15
|
+
],
|
|
16
|
+
"skills": [
|
|
17
|
+
"./skills/brain/SKILL.md",
|
|
18
|
+
"./skills/brain-obsidian/SKILL.md"
|
|
19
|
+
],
|
|
20
|
+
"commands": [
|
|
21
|
+
"./commands/brain.md"
|
|
15
22
|
]
|
|
16
23
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
name: brain
|
|
2
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
|
-
version: 0.
|
|
3
|
+
version: 0.4.0
|
|
4
4
|
status: beta
|
|
5
5
|
|
|
6
6
|
includes:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: brain
|
|
3
3
|
description: "Collaborative scratchpad for planning and research"
|
|
4
|
-
argument-hint: "[search {topic} | {category} {topic} | add {text} | check | done]"
|
|
4
|
+
argument-hint: "[search {topic} | {category} {topic} | add {text} | check | cleanup | done]"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# /brain
|
|
@@ -28,8 +28,9 @@ argument-hint: "[search {topic} | {category} {topic} | add {text} | check | done
|
|
|
28
28
|
/brain {category} {topic} # Create doc → {category}s/{topic}.md
|
|
29
29
|
/brain add {text} # Append to active doc
|
|
30
30
|
/brain check # Address @droid comments
|
|
31
|
+
/brain cleanup # Resolve threads, log decisions
|
|
31
32
|
```
|
|
32
33
|
|
|
33
|
-
**Reserved keywords:** `search`, `add`, `check`, `done` - everything else is a category.
|
|
34
|
+
**Reserved keywords:** `search`, `add`, `check`, `cleanup`, `done` - everything else is a category.
|
|
34
35
|
|
|
35
36
|
See the **brain skill** for complete documentation.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: brain
|
|
3
3
|
description: "Collaborative scratchpad for planning and research. Use when planning a feature, exploring a problem, or capturing thinking that should persist across sessions. User prompts like 'let's think through', 'open a scratchpad', 'plan this out', 'use our brain'."
|
|
4
|
-
argument-hint: "[search {topic} | {category} {topic} | add {text} | check | done]"
|
|
4
|
+
argument-hint: "[search {topic} | {category} {topic} | add {text} | check | cleanup | done]"
|
|
5
5
|
allowed-tools: [Read, Write, Glob, Grep, Bash]
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -32,6 +32,7 @@ Your **scratchpad** (or **brain**) - a collaborative space for planning, researc
|
|
|
32
32
|
| -------------- | ------- | ------------------------------------------ |
|
|
33
33
|
| `brain_dir` | (none) | Where docs are stored - **must be configured** |
|
|
34
34
|
| `inbox_folder` | (empty) | Root folder for new docs (e.g., `0-Inbox`) |
|
|
35
|
+
| `override` | (none) | User-defined behaviour overrides |
|
|
35
36
|
|
|
36
37
|
**If not configured:** Ask the user:
|
|
37
38
|
> "Where would you like to store brain docs? Common choices:
|
|
@@ -39,14 +40,16 @@ Your **scratchpad** (or **brain**) - a collaborative space for planning, researc
|
|
|
39
40
|
> - `~/src/github.com/brain` - With your other repos
|
|
40
41
|
> - An existing Obsidian vault path"
|
|
41
42
|
|
|
42
|
-
Then
|
|
43
|
-
```
|
|
44
|
-
brain_dir
|
|
43
|
+
Then set their choice:
|
|
44
|
+
```bash
|
|
45
|
+
droid config --set tools.brain.brain_dir="{user's choice}"
|
|
45
46
|
```
|
|
46
47
|
|
|
48
|
+
**Overrides:** This skill supports user-defined overrides. See `/droid` skill § Skill Overrides for how to create, register, and use overrides.
|
|
49
|
+
|
|
47
50
|
## Commands
|
|
48
51
|
|
|
49
|
-
**Reserved keywords:** `search`, `add`, `check`, `done`
|
|
52
|
+
**Reserved keywords:** `search`, `add`, `check`, `cleanup`, `done`
|
|
50
53
|
|
|
51
54
|
| Command | Action |
|
|
52
55
|
| -------------------------------------------- | ------------------------------------------------------ |
|
|
@@ -56,6 +59,7 @@ brain_dir: "{user's choice}"
|
|
|
56
59
|
| `/brain {category} {topic}` | Create doc → `{category}s/{topic}.md` |
|
|
57
60
|
| `/brain add {text}` | Append to active doc |
|
|
58
61
|
| `/brain check` | Address @droid comments in active doc |
|
|
62
|
+
| `/brain cleanup` | Resolve threads, apply changes, log decisions |
|
|
59
63
|
| `/brain done` | Finalize active doc, update status |
|
|
60
64
|
|
|
61
65
|
**Category is any non-reserved word.** Common categories:
|
|
@@ -117,6 +121,21 @@ Find `> @droid` comments in active doc and address each. Preserve original comme
|
|
|
117
121
|
|
|
118
122
|
Full procedure: `references/workflows.md` § Checking
|
|
119
123
|
|
|
124
|
+
## Cleaning Up Resolved Threads
|
|
125
|
+
|
|
126
|
+
**Trigger:** `/brain cleanup` or user says "let's clean up", "resolve these threads", "lock in decisions"
|
|
127
|
+
|
|
128
|
+
Find resolved discussion threads (where a decision was reached or question answered), apply any agreed changes, and log to the bottom of the file.
|
|
129
|
+
|
|
130
|
+
1. Scan for `@droid` / `@{user_mention}` comment threads
|
|
131
|
+
2. Identify threads where a decision was made, idea was locked in, or question was resolved
|
|
132
|
+
3. Apply any agreed changes to the doc if not already done
|
|
133
|
+
4. Move resolved threads to logs at the bottom:
|
|
134
|
+
- **Decision Log** — What was decided (one-liner per decision)
|
|
135
|
+
- **Discussion Log** — Full thread history for reference
|
|
136
|
+
|
|
137
|
+
Full procedure: `references/workflows.md` § Cleanup
|
|
138
|
+
|
|
120
139
|
## Finalizing
|
|
121
140
|
|
|
122
141
|
**Trigger:** `/brain done`
|
|
@@ -129,12 +148,24 @@ Full procedure: `references/workflows.md` § Finalizing
|
|
|
129
148
|
|
|
130
149
|
In markdown files, use blockquote `>` prefix for @mention comments. The @mention is the **target**, not the author:
|
|
131
150
|
|
|
132
|
-
| Comment
|
|
133
|
-
|
|
|
134
|
-
| `> @droid ...`
|
|
135
|
-
| `> @
|
|
151
|
+
| Comment | Author | Target | Meaning |
|
|
152
|
+
| ------------------------ | ------ | ------ | -------------------------- |
|
|
153
|
+
| `> @droid ...` | User | AI | User asking/telling the AI |
|
|
154
|
+
| `> @{user_mention} ...` | AI | User | AI asking/telling the user |
|
|
155
|
+
|
|
156
|
+
Get `user_mention` from `droid config --get user_mention`.
|
|
157
|
+
|
|
158
|
+
**CRITICAL:** When the AI writes comments to address the user, ALWAYS use `@{user_mention}`. NEVER use `@droid` — that's reserved for user-to-AI comments only.
|
|
159
|
+
|
|
160
|
+
If droid's `comments` skill is installed, use `/comments check` for full support.
|
|
161
|
+
|
|
162
|
+
## Natural Language Triggers
|
|
136
163
|
|
|
137
|
-
|
|
164
|
+
Recognise cleanup intent and offer `/brain cleanup`:
|
|
165
|
+
- "Let's clean up these threads"
|
|
166
|
+
- "Can we resolve these discussions?"
|
|
167
|
+
- "Lock in these decisions"
|
|
168
|
+
- "Archive the resolved stuff"
|
|
138
169
|
|
|
139
170
|
## Extensions
|
|
140
171
|
|
|
@@ -133,3 +133,64 @@ Overall assessment.
|
|
|
133
133
|
| `{date}` | Current date (YYYY-MM-DD) | "2025-01-15" |
|
|
134
134
|
| `{brief description}` | Context from conversation | "refactoring the authentication system" |
|
|
135
135
|
| `{content}` | User-provided text | (for notes) |
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Log Templates
|
|
140
|
+
|
|
141
|
+
These logs are appended to the bottom of brain docs by `/brain cleanup`. They preserve the history of how decisions were made without cluttering the main content.
|
|
142
|
+
|
|
143
|
+
### Decision Log
|
|
144
|
+
|
|
145
|
+
A table of one-liner decisions for quick reference:
|
|
146
|
+
|
|
147
|
+
```markdown
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Decision Log
|
|
151
|
+
|
|
152
|
+
| Date | Decision |
|
|
153
|
+
| ---------- | ----------------------------------------------------- |
|
|
154
|
+
| 2026-01-28 | Use Redis for rate limiting (distributed counters) |
|
|
155
|
+
| 2026-01-27 | Prefer composition over inheritance for handlers |
|
|
156
|
+
| 2026-01-25 | Ship MVP without webhooks, add in v2 |
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Discussion Log
|
|
160
|
+
|
|
161
|
+
Full conversation threads preserved for context. Useful when you need to remember *why* something was decided:
|
|
162
|
+
|
|
163
|
+
```markdown
|
|
164
|
+
## Discussion Log
|
|
165
|
+
|
|
166
|
+
### Storage choice (2026-01-28)
|
|
167
|
+
|
|
168
|
+
> @droid Should we use Redis or Postgres for rate limit state?
|
|
169
|
+
|
|
170
|
+
> @{user_mention} Redis is better here - rate limiting needs fast atomic increments across distributed instances. Postgres would add latency and connection overhead.
|
|
171
|
+
|
|
172
|
+
> @droid Makes sense. What about persistence if Redis restarts?
|
|
173
|
+
|
|
174
|
+
> @{user_mention} We'll use Redis persistence (RDB snapshots) but also design the system to handle cold starts gracefully - worst case, limits reset.
|
|
175
|
+
|
|
176
|
+
**Resolved:** Use Redis with RDB persistence, design for graceful cold starts.
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
### API versioning (2026-01-27)
|
|
181
|
+
|
|
182
|
+
> @droid How should we handle API versioning?
|
|
183
|
+
|
|
184
|
+
> @{user_mention} URL path versioning (`/v1/`, `/v2/`) is clearest for consumers. Header-based is cleaner but causes confusion.
|
|
185
|
+
|
|
186
|
+
**Resolved:** Use URL path versioning.
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### When to Use Each Log
|
|
190
|
+
|
|
191
|
+
| Scenario | Where it goes |
|
|
192
|
+
| -------- | ------------- |
|
|
193
|
+
| Quick decision, obvious rationale | Decision Log only |
|
|
194
|
+
| Decision with nuanced reasoning | Both logs |
|
|
195
|
+
| Long exploration that didn't lead to decision | Discussion Log only (mark as "Explored, no decision") |
|
|
196
|
+
| Thread that's just Q&A, no decision | Discussion Log only (mark as "Answered") |
|
|
@@ -14,7 +14,11 @@ Detailed procedures for each brain operation.
|
|
|
14
14
|
- If `brain_dir` is not configured, **ask the user** where they want brain docs stored
|
|
15
15
|
- **Do NOT skip this step or assume defaults**
|
|
16
16
|
|
|
17
|
-
2. **
|
|
17
|
+
2. **Check for override** (see `/droid` skill § Override Lookup)
|
|
18
|
+
- If override applies for `search` command, follow override instructions instead of step 3
|
|
19
|
+
- Fall back to step 3 if override fails
|
|
20
|
+
|
|
21
|
+
3. **Search for matches** (default behaviour)
|
|
18
22
|
|
|
19
23
|
```
|
|
20
24
|
Glob: {brain_dir}/**/*{topic}*.md
|
|
@@ -22,20 +26,20 @@ Detailed procedures for each brain operation.
|
|
|
22
26
|
|
|
23
27
|
Fuzzy match the topic against doc filenames
|
|
24
28
|
|
|
25
|
-
|
|
29
|
+
4. **Handle results:**
|
|
26
30
|
- **No matches**: Offer to create a new doc with that topic
|
|
27
31
|
- **One match**: Open it
|
|
28
32
|
- **Multiple matches**: Present list, let user choose
|
|
29
33
|
|
|
30
|
-
|
|
34
|
+
5. **Read the doc** and summarize key points:
|
|
31
35
|
- Current status
|
|
32
36
|
- Main topic/context
|
|
33
37
|
- Any open `@droid` comments
|
|
34
38
|
- Recent updates
|
|
35
39
|
|
|
36
|
-
|
|
40
|
+
6. **Set as active doc** - Remember path for subsequent `/brain add` and `/brain check` commands
|
|
37
41
|
|
|
38
|
-
|
|
42
|
+
7. **If `-- {instruction}` provided:** Execute the follow-up instruction against the loaded doc
|
|
39
43
|
|
|
40
44
|
## Creating
|
|
41
45
|
|
|
@@ -152,10 +156,12 @@ Detailed procedures for each brain operation.
|
|
|
152
156
|
|
|
153
157
|
**Directionality:** The @mention is the **target**, not the author:
|
|
154
158
|
|
|
155
|
-
| Comment
|
|
156
|
-
|
|
|
157
|
-
| `> @droid ...`
|
|
158
|
-
| `> @
|
|
159
|
+
| Comment | Author | Target | Meaning |
|
|
160
|
+
| ------------------------ | ------ | ------ | -------------------------- |
|
|
161
|
+
| `> @droid ...` | User | AI | User asking/telling the AI |
|
|
162
|
+
| `> @{user_mention} ...` | AI | User | AI asking/telling the user |
|
|
163
|
+
|
|
164
|
+
**CRITICAL:** When the AI writes comments to address the user, ALWAYS use `@{user_mention}`. NEVER use `@droid` — that's reserved for user-to-AI comments only.
|
|
159
165
|
|
|
160
166
|
**Steps:**
|
|
161
167
|
|
|
@@ -197,6 +203,69 @@ Detailed procedures for each brain operation.
|
|
|
197
203
|
|
|
198
204
|
7. **Summarize** what was addressed
|
|
199
205
|
|
|
206
|
+
## Cleanup
|
|
207
|
+
|
|
208
|
+
**Trigger:** `/brain cleanup` or natural language ("clean up these threads", "lock in decisions")
|
|
209
|
+
|
|
210
|
+
**Purpose:** Graduate resolved discussion threads into permanent logs. Unlike `/brain check` (which addresses open comments), cleanup finds threads where decisions were already made and archives them properly.
|
|
211
|
+
|
|
212
|
+
**Steps:**
|
|
213
|
+
|
|
214
|
+
1. **Check for active doc**
|
|
215
|
+
- If no active doc: Ask which doc to clean up
|
|
216
|
+
|
|
217
|
+
2. **Read active doc** and find all comment threads
|
|
218
|
+
|
|
219
|
+
3. **Identify resolved threads:**
|
|
220
|
+
- Look for `@droid` → `@{user_mention}` exchanges
|
|
221
|
+
- Check for resolution signals:
|
|
222
|
+
- Explicit: "sounds good", "let's do that", "agreed", "locked in", "resolved"
|
|
223
|
+
- Implicit: No follow-up questions, thread went quiet after answer
|
|
224
|
+
- Present uncertain threads to user: "Is this resolved?"
|
|
225
|
+
|
|
226
|
+
4. **For each resolved thread:**
|
|
227
|
+
|
|
228
|
+
a. **Check if changes were applied:**
|
|
229
|
+
- Did the agreed change get made to the doc?
|
|
230
|
+
- If not, apply it now (with user confirmation)
|
|
231
|
+
|
|
232
|
+
b. **Extract the decision:**
|
|
233
|
+
- One-liner summary of what was decided
|
|
234
|
+
- Example: "Use Redis for rate limiting (better for distributed counters)"
|
|
235
|
+
|
|
236
|
+
c. **Archive the thread:**
|
|
237
|
+
- Remove from current location in doc
|
|
238
|
+
- Add to Discussion Log at bottom (full thread preserved)
|
|
239
|
+
- Add to Decision Log at bottom (one-liner)
|
|
240
|
+
|
|
241
|
+
5. **Update logs at bottom of doc:**
|
|
242
|
+
|
|
243
|
+
```markdown
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## Decision Log
|
|
247
|
+
|
|
248
|
+
| Date | Decision |
|
|
249
|
+
| ---- | -------- |
|
|
250
|
+
| {date} | {one-liner decision} |
|
|
251
|
+
|
|
252
|
+
## Discussion Log
|
|
253
|
+
|
|
254
|
+
### {topic} ({date})
|
|
255
|
+
|
|
256
|
+
> @droid {original question}
|
|
257
|
+
|
|
258
|
+
> @{user_mention} {response}
|
|
259
|
+
|
|
260
|
+
**Resolved:** {summary}
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
6. **Summarize** what was cleaned up:
|
|
264
|
+
- "Cleaned up 3 threads, logged 2 decisions"
|
|
265
|
+
- List the decisions briefly
|
|
266
|
+
|
|
267
|
+
See `references/templates.md` § Log Templates for format details.
|
|
268
|
+
|
|
200
269
|
## Finalizing
|
|
201
270
|
|
|
202
271
|
**Trigger:** `/brain done`
|
|
@@ -33,6 +33,8 @@ droid config --set tools.brain.brain_dir=~/path/to/your/vault
|
|
|
33
33
|
| `areas_folder` | `1-Areas` | Area docs (PARA only) |
|
|
34
34
|
| `resources_folder` | `3-Resources` | Reference material (PARA only) |
|
|
35
35
|
|
|
36
|
+
**Overrides:** This skill supports user-defined overrides. See `/droid` skill § Skill Overrides.
|
|
37
|
+
|
|
36
38
|
## What This Adds
|
|
37
39
|
|
|
38
40
|
| Feature | Description |
|
|
@@ -52,6 +52,9 @@ plan → AI scaffolds → human implements → AI coaches → iterate → ship
|
|
|
52
52
|
| Setting | Default | Description |
|
|
53
53
|
| -------------------- | -------- | ------------------------------------------------------- |
|
|
54
54
|
| `scaffold_verbosity` | `medium` | How detailed hints are: `minimal`, `medium`, `detailed` |
|
|
55
|
+
| `override` | (none) | User-defined behaviour overrides |
|
|
56
|
+
|
|
57
|
+
**Overrides:** This skill supports user-defined overrides. See `/droid` skill § Skill Overrides.
|
|
55
58
|
|
|
56
59
|
<!-- Note: @mention is the target, not author. @{user} = AI talking TO user, @droid = user talking TO AI -->
|
|
57
60
|
> @{user} Not yet - droid currently shows config as free text input. But we could add an `enum` type to the config schema that presents as a select dropdown in the TUI. Good feature request - want me to create an issue for it?
|
|
@@ -12,5 +12,17 @@
|
|
|
12
12
|
"droid",
|
|
13
13
|
"ai",
|
|
14
14
|
"code-review"
|
|
15
|
+
],
|
|
16
|
+
"skills": [
|
|
17
|
+
"./skills/code-review/SKILL.md"
|
|
18
|
+
],
|
|
19
|
+
"commands": [
|
|
20
|
+
"./commands/code-review.md"
|
|
21
|
+
],
|
|
22
|
+
"agents": [
|
|
23
|
+
"./agents/edi-standards-reviewer.md",
|
|
24
|
+
"./agents/error-handling-reviewer.md",
|
|
25
|
+
"./agents/test-coverage-analyzer.md",
|
|
26
|
+
"./agents/type-reviewer.md"
|
|
15
27
|
]
|
|
16
28
|
}
|
|
@@ -16,6 +16,8 @@ Code-review has no configuration of its own. Optional integration with other too
|
|
|
16
16
|
- **Brain skill** (optional): If installed, offers to save review results to a `/brain review` doc
|
|
17
17
|
- Check with: `droid config --get tools.brain` to see if `brain_dir` is configured
|
|
18
18
|
|
|
19
|
+
**Overrides:** This skill supports user-defined overrides. See `/droid` skill § Skill Overrides.
|
|
20
|
+
|
|
19
21
|
## How It Works
|
|
20
22
|
|
|
21
23
|
The `/code-review` command orchestrates multiple specialized agents in parallel:
|