@orderful/droid 0.48.0 → 0.51.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 -1
- package/.claude-plugin/plugin.json +2 -1
- package/CHANGELOG.md +34 -0
- package/bun.lock +137 -3
- package/dist/bin/droid.js +355 -90
- package/dist/commands/pack.d.ts +5 -0
- package/dist/commands/pack.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/lib/pack.d.ts +31 -0
- package/dist/lib/pack.d.ts.map +1 -0
- package/dist/lib/types.d.ts +17 -0
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/tools/brain/.claude-plugin/plugin.json +1 -1
- package/dist/tools/brain/TOOL.yaml +3 -1
- package/dist/tools/brain/skills/brain/SKILL.md +4 -0
- package/dist/tools/brain/skills/brain/references/workflows.md +21 -7
- package/dist/tools/coach/TOOL.yaml +4 -0
- package/dist/tools/code-review/.claude-plugin/plugin.json +3 -2
- package/dist/tools/code-review/TOOL.yaml +4 -1
- package/dist/tools/code-review/agents/codex-context-researcher.md +99 -0
- package/dist/tools/code-review/skills/code-review/SKILL.md +20 -1
- package/dist/tools/codex/.claude-plugin/plugin.json +1 -1
- package/dist/tools/codex/TOOL.yaml +3 -1
- package/dist/tools/codex/skills/codex/SKILL.md +5 -1
- package/dist/tools/codex/skills/codex/scripts/normalize-frontmatter.d.ts +61 -0
- package/dist/tools/codex/skills/codex/scripts/normalize-frontmatter.d.ts.map +1 -0
- package/dist/tools/codex/skills/codex/scripts/normalize-frontmatter.ts +402 -0
- package/dist/tools/comments/TOOL.yaml +2 -0
- package/dist/tools/droid/.claude-plugin/plugin.json +1 -1
- package/dist/tools/droid/TOOL.yaml +3 -1
- package/dist/tools/droid/skills/droid/SKILL.md +48 -2
- package/dist/tools/droid/skills/droid/references/new-tool-workflow.md +234 -0
- package/dist/tools/edi-schema/TOOL.yaml +2 -0
- package/dist/tools/excalidraw/TOOL.yaml +2 -0
- package/dist/tools/meeting/TOOL.yaml +2 -0
- package/dist/tools/pii/TOOL.yaml +2 -0
- package/dist/tools/plan/.claude-plugin/plugin.json +1 -1
- package/dist/tools/plan/TOOL.yaml +5 -1
- package/dist/tools/plan/commands/plan.md +3 -2
- package/dist/tools/plan/skills/plan/SKILL.md +31 -10
- package/dist/tools/plan/skills/plan/references/workflows.md +44 -14
- package/dist/tools/project/.claude-plugin/plugin.json +1 -1
- package/dist/tools/project/TOOL.yaml +7 -1
- package/dist/tools/project/skills/project/SKILL.md +32 -1
- package/dist/tools/project/skills/project/references/loading.md +1 -0
- package/dist/tools/project/skills/project/references/pulling.md +57 -0
- package/dist/tools/project/skills/project/references/pushing.md +79 -0
- package/dist/tools/release/TOOL.yaml +2 -0
- package/dist/tools/share/TOOL.yaml +2 -0
- package/dist/tools/status-update/TOOL.yaml +4 -0
- package/dist/tools/tech-design/TOOL.yaml +2 -0
- package/dist/tools/wrapup/TOOL.yaml +2 -0
- package/package.json +3 -1
- package/scripts/build.ts +3 -2
- package/src/bin/droid.ts +9 -0
- package/src/commands/pack.ts +77 -0
- package/src/lib/pack.test.ts +85 -0
- package/src/lib/pack.ts +293 -0
- package/src/lib/types.ts +19 -0
- package/src/tools/brain/.claude-plugin/plugin.json +1 -1
- package/src/tools/brain/TOOL.yaml +3 -1
- package/src/tools/brain/skills/brain/SKILL.md +4 -0
- package/src/tools/brain/skills/brain/references/workflows.md +21 -7
- package/src/tools/coach/TOOL.yaml +4 -0
- package/src/tools/code-review/.claude-plugin/plugin.json +3 -2
- package/src/tools/code-review/TOOL.yaml +4 -1
- package/src/tools/code-review/agents/codex-context-researcher.md +99 -0
- package/src/tools/code-review/skills/code-review/SKILL.md +20 -1
- package/src/tools/codex/.claude-plugin/plugin.json +1 -1
- package/src/tools/codex/TOOL.yaml +3 -1
- package/src/tools/codex/skills/codex/SKILL.md +5 -1
- package/src/tools/codex/skills/codex/scripts/normalize-frontmatter.test.ts +331 -0
- package/src/tools/codex/skills/codex/scripts/normalize-frontmatter.ts +402 -0
- package/src/tools/comments/TOOL.yaml +2 -0
- package/src/tools/droid/.claude-plugin/plugin.json +1 -1
- package/src/tools/droid/TOOL.yaml +3 -1
- package/src/tools/droid/skills/droid/SKILL.md +48 -2
- package/src/tools/droid/skills/droid/references/new-tool-workflow.md +234 -0
- package/src/tools/edi-schema/TOOL.yaml +2 -0
- package/src/tools/excalidraw/TOOL.yaml +2 -0
- package/src/tools/meeting/TOOL.yaml +2 -0
- package/src/tools/pii/TOOL.yaml +2 -0
- package/src/tools/plan/.claude-plugin/plugin.json +1 -1
- package/src/tools/plan/TOOL.yaml +5 -1
- package/src/tools/plan/commands/plan.md +3 -2
- package/src/tools/plan/skills/plan/SKILL.md +31 -10
- package/src/tools/plan/skills/plan/references/workflows.md +44 -14
- package/src/tools/project/.claude-plugin/plugin.json +1 -1
- package/src/tools/project/TOOL.yaml +7 -1
- package/src/tools/project/skills/project/SKILL.md +32 -1
- package/src/tools/project/skills/project/references/loading.md +1 -0
- package/src/tools/project/skills/project/references/pulling.md +57 -0
- package/src/tools/project/skills/project/references/pushing.md +79 -0
- package/src/tools/release/TOOL.yaml +2 -0
- package/src/tools/share/TOOL.yaml +2 -0
- package/src/tools/status-update/TOOL.yaml +4 -0
- package/src/tools/tech-design/TOOL.yaml +2 -0
- package/src/tools/wrapup/TOOL.yaml +2 -0
- package/dist/tools/codex/skills/codex/scripts/git-scripts.test.ts +0 -364
- package/dist/tools/pii/skills/pii/scripts/presidio.test.ts +0 -444
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../../src/commands/pack.ts"],"names":[],"mappings":"AAQA,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,OAAO,CAAC,IAAI,CAAC,CAiEf"}
|
package/dist/index.js
CHANGED
|
@@ -39,6 +39,16 @@ function setPlatformTools(config, tools) {
|
|
|
39
39
|
function getPlatformToolsFor(config, platform) {
|
|
40
40
|
return config.platforms[platform]?.tools ?? {};
|
|
41
41
|
}
|
|
42
|
+
var ToolAudience = /* @__PURE__ */ ((ToolAudience2) => {
|
|
43
|
+
ToolAudience2["All"] = "all";
|
|
44
|
+
ToolAudience2["Engineering"] = "engineering";
|
|
45
|
+
ToolAudience2["Product"] = "product";
|
|
46
|
+
ToolAudience2["Design"] = "design";
|
|
47
|
+
ToolAudience2["IntegrationDevelopers"] = "integration-developers";
|
|
48
|
+
ToolAudience2["CustomerSupport"] = "customer-support";
|
|
49
|
+
ToolAudience2["NetworkOperations"] = "network-operations";
|
|
50
|
+
return ToolAudience2;
|
|
51
|
+
})(ToolAudience || {});
|
|
42
52
|
|
|
43
53
|
// src/lib/config.ts
|
|
44
54
|
import {
|
|
@@ -1818,6 +1828,7 @@ export {
|
|
|
1818
1828
|
ConfigOptionType,
|
|
1819
1829
|
Platform,
|
|
1820
1830
|
SkillStatus,
|
|
1831
|
+
ToolAudience,
|
|
1821
1832
|
addRepo,
|
|
1822
1833
|
checkForUpdates,
|
|
1823
1834
|
compareSemver,
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ToolAudience, type ToolManifest } from './types';
|
|
2
|
+
export interface AudienceInfo {
|
|
3
|
+
audience: ToolAudience;
|
|
4
|
+
toolCount: number;
|
|
5
|
+
toolNames: string[];
|
|
6
|
+
}
|
|
7
|
+
export interface PackOptions {
|
|
8
|
+
audience: ToolAudience;
|
|
9
|
+
outputDir: string;
|
|
10
|
+
}
|
|
11
|
+
export interface PackResult {
|
|
12
|
+
success: boolean;
|
|
13
|
+
message: string;
|
|
14
|
+
outputPath?: string;
|
|
15
|
+
toolCount?: number;
|
|
16
|
+
warnings?: string[];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get tools filtered by audience
|
|
20
|
+
* Tools with audience 'all' are always included
|
|
21
|
+
*/
|
|
22
|
+
export declare function getToolsForAudience(audience: ToolAudience): ToolManifest[];
|
|
23
|
+
/**
|
|
24
|
+
* Get audience info for all audiences that have tools
|
|
25
|
+
*/
|
|
26
|
+
export declare function getAudienceInfo(): AudienceInfo[];
|
|
27
|
+
/**
|
|
28
|
+
* Build a zip pack for the given audience
|
|
29
|
+
*/
|
|
30
|
+
export declare function buildPack(options: PackOptions): Promise<PackResult>;
|
|
31
|
+
//# sourceMappingURL=pack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../../src/lib/pack.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,YAAY,GACrB,YAAY,EAAE,CAehB;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,EAAE,CAsBhD;AA4JD;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA4DzE"}
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -158,13 +158,30 @@ export interface ToolIncludes {
|
|
|
158
158
|
commands: ToolCommandInclude[];
|
|
159
159
|
agents: string[];
|
|
160
160
|
}
|
|
161
|
+
export declare enum ToolAudience {
|
|
162
|
+
All = "all",
|
|
163
|
+
Engineering = "engineering",
|
|
164
|
+
Product = "product",
|
|
165
|
+
Design = "design",
|
|
166
|
+
IntegrationDevelopers = "integration-developers",
|
|
167
|
+
CustomerSupport = "customer-support",
|
|
168
|
+
NetworkOperations = "network-operations"
|
|
169
|
+
}
|
|
170
|
+
export interface ToolPrerequisite {
|
|
171
|
+
name: string;
|
|
172
|
+
description: string;
|
|
173
|
+
check: string;
|
|
174
|
+
install_hint: string;
|
|
175
|
+
}
|
|
161
176
|
export interface ToolManifest {
|
|
162
177
|
name: string;
|
|
163
178
|
description: string;
|
|
164
179
|
version: string;
|
|
165
180
|
status?: SkillStatus;
|
|
181
|
+
audience?: ToolAudience[];
|
|
166
182
|
includes: ToolIncludes;
|
|
167
183
|
dependencies?: string[];
|
|
184
|
+
prerequisites?: ToolPrerequisite[];
|
|
168
185
|
config_schema?: Record<string, ConfigOption>;
|
|
169
186
|
}
|
|
170
187
|
//# sourceMappingURL=types.d.ts.map
|
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":"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"}
|
|
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.4.
|
|
3
|
+
"version": "0.4.3",
|
|
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",
|
|
@@ -1,7 +1,9 @@
|
|
|
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.4.
|
|
3
|
+
version: 0.4.3
|
|
4
4
|
status: beta
|
|
5
|
+
audience:
|
|
6
|
+
- all
|
|
5
7
|
|
|
6
8
|
includes:
|
|
7
9
|
skills:
|
|
@@ -34,6 +34,8 @@ Your **scratchpad** (or **brain**) - a collaborative space for planning, researc
|
|
|
34
34
|
| `inbox_folder` | (empty) | Root folder for new docs (e.g., `0-Inbox`) |
|
|
35
35
|
| `override` | (none) | User-defined behaviour overrides |
|
|
36
36
|
|
|
37
|
+
**Optional dependency:** `droid config --get tools.project` → `save_related_in_project` (for project-aware routing)
|
|
38
|
+
|
|
37
39
|
**If not configured:** Ask the user:
|
|
38
40
|
> "Where would you like to store brain docs? Common choices:
|
|
39
41
|
> - `~/Documents/brain` - Easy to find in Finder
|
|
@@ -107,6 +109,8 @@ Full procedure: `references/workflows.md` § Opening
|
|
|
107
109
|
|
|
108
110
|
Templates vary by category (see `references/templates.md`), but all follow the same creation flow.
|
|
109
111
|
|
|
112
|
+
**Project-aware routing:** When a `/project` is active and `save_related_in_project` is true (check `droid config --get tools.project`), ALL new docs route to `{project_folder}/{category}s/` instead of the brain inbox — no category filtering. Plans, research, ideas, thoughts, spikes, whatever the user creates. If it's related to the project, it lives with the project. Disable with `save_related_in_project: false` in project config.
|
|
113
|
+
|
|
110
114
|
**Note:** `idea` category docs do NOT become active (fire-and-forget capture).
|
|
111
115
|
|
|
112
116
|
Full procedure: `references/workflows.md` § Creating
|
|
@@ -62,13 +62,27 @@ Detailed procedures for each brain operation.
|
|
|
62
62
|
- Example: `auth-refactor.md` or `caching-strategies.md`
|
|
63
63
|
|
|
64
64
|
3. **Determine target path based on category:**
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
65
|
+
|
|
66
|
+
a. **Check for active project:**
|
|
67
|
+
- If `/project` is active in session AND `save_related_in_project` is true
|
|
68
|
+
(run `droid config --get tools.project` to check):
|
|
69
|
+
- Route ALL categories to project folder: `{projects_dir}/{project}/{category}s/{filename}`
|
|
70
|
+
- No category filtering — plans, research, ideas, thoughts, spikes, anything goes
|
|
71
|
+
- Example: `/brain research caching` with project "droid" active
|
|
72
|
+
→ `{projects_dir}/droid/research/caching.md`
|
|
73
|
+
- Example: `/brain idea wild-thought` with project "droid" active
|
|
74
|
+
→ `{projects_dir}/droid/ideas/wild-thought.md`
|
|
75
|
+
- If `/project` active but `save_related_in_project` is false (default), OR no project active:
|
|
76
|
+
- Fall through to default routing below
|
|
77
|
+
|
|
78
|
+
b. **Default routing (no active project or opt-out):**
|
|
79
|
+
- Base: `{brain_dir}/{inbox_folder}` (or just `{brain_dir}` if no inbox_folder)
|
|
80
|
+
- Category becomes plural folder: `{base}/{category}s/{filename}`
|
|
81
|
+
- Examples:
|
|
82
|
+
- `plan` → `{base}/plans/{filename}`
|
|
83
|
+
- `research` → `{base}/research/{filename}`
|
|
84
|
+
- `spike` → `{base}/spikes/{filename}`
|
|
85
|
+
- `meeting` → `{base}/meetings/{filename}`
|
|
72
86
|
|
|
73
87
|
4. **Create directory** if needed (category folder may not exist yet)
|
|
74
88
|
|
|
@@ -2,6 +2,10 @@ name: coach
|
|
|
2
2
|
description: "Learning-mode AI assistance - AI as coach, not crutch. Use /coach plan for co-authored planning, /coach scaffold for structure with hints, /coach review for Socratic questions."
|
|
3
3
|
version: 0.3.0
|
|
4
4
|
status: beta
|
|
5
|
+
audience:
|
|
6
|
+
- engineering
|
|
7
|
+
- product
|
|
8
|
+
- design
|
|
5
9
|
|
|
6
10
|
includes:
|
|
7
11
|
skills:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "droid-code-review",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Comprehensive code review using specialized agents. Reviews PRs, staged changes, branches, or specific files with confidence scoring.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Orderful",
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"./agents/edi-standards-reviewer.md",
|
|
24
24
|
"./agents/error-handling-reviewer.md",
|
|
25
25
|
"./agents/test-coverage-analyzer.md",
|
|
26
|
-
"./agents/type-reviewer.md"
|
|
26
|
+
"./agents/type-reviewer.md",
|
|
27
|
+
"./agents/codex-context-researcher.md"
|
|
27
28
|
]
|
|
28
29
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
name: code-review
|
|
2
2
|
description: "Comprehensive code review using specialized agents. Reviews PRs, staged changes, branches, or specific files with confidence scoring."
|
|
3
|
-
version: 0.
|
|
3
|
+
version: 0.3.0
|
|
4
4
|
status: alpha
|
|
5
|
+
audience:
|
|
6
|
+
- engineering
|
|
5
7
|
|
|
6
8
|
includes:
|
|
7
9
|
skills:
|
|
@@ -15,5 +17,6 @@ includes:
|
|
|
15
17
|
- error-handling-reviewer
|
|
16
18
|
- test-coverage-analyzer
|
|
17
19
|
- type-reviewer
|
|
20
|
+
- codex-context-researcher
|
|
18
21
|
|
|
19
22
|
dependencies: []
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: codex-context-researcher
|
|
3
|
+
description: "Search codex for domain knowledge relevant to code changes. Enriches code review findings with organisational context from PRDs, tech designs, and architectural decisions."
|
|
4
|
+
tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Grep
|
|
7
|
+
- Glob
|
|
8
|
+
- Bash
|
|
9
|
+
color: cyan
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
You are a codex research agent that finds organisational domain knowledge relevant to a set of code changes. Your output enriches code review findings — you do NOT review code yourself.
|
|
13
|
+
|
|
14
|
+
## Inputs
|
|
15
|
+
|
|
16
|
+
You will receive:
|
|
17
|
+
|
|
18
|
+
- A list of changed file paths
|
|
19
|
+
- A brief summary of the diff (module names, domain concepts)
|
|
20
|
+
- Optionally, custom instructions from the user
|
|
21
|
+
|
|
22
|
+
## Procedure
|
|
23
|
+
|
|
24
|
+
### Step 1: Check Codex Availability
|
|
25
|
+
|
|
26
|
+
Run: `droid config --get tools.codex`
|
|
27
|
+
|
|
28
|
+
Parse the output for `codex_repo`. If not set or the command fails, return:
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"status": "not_configured",
|
|
33
|
+
"entries_searched": 0,
|
|
34
|
+
"entries_matched": 0,
|
|
35
|
+
"domain_context": "",
|
|
36
|
+
"sources": []
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Step 2: Read Index
|
|
41
|
+
|
|
42
|
+
Read `{codex_repo}/index.yaml` — this is the codex inventory. It lists every entry by category (projects, patterns, topics, domains, proposals) with names, titles, and aliases.
|
|
43
|
+
|
|
44
|
+
If the index doesn't exist or is empty, return `status: "not_configured"`.
|
|
45
|
+
|
|
46
|
+
### Step 3: Extract Search Terms
|
|
47
|
+
|
|
48
|
+
From the changed file paths, extract terms to match against the index:
|
|
49
|
+
|
|
50
|
+
- **Module/service names** from paths (e.g., `transactionTemplate` from `src/modules/transactionTemplate/`)
|
|
51
|
+
- **Directory segments** that suggest feature areas (e.g., `billing`, `partnership`, `webhook`)
|
|
52
|
+
|
|
53
|
+
Do NOT hardcode domain concepts — let the index be the source of truth for what knowledge exists.
|
|
54
|
+
|
|
55
|
+
### Step 4: Match Against Index
|
|
56
|
+
|
|
57
|
+
Match extracted terms against index entry names, titles, and aliases across all categories. Select up to **5** most relevant entries. Prioritise:
|
|
58
|
+
|
|
59
|
+
1. Exact name/alias matches
|
|
60
|
+
2. Partial matches on entry titles
|
|
61
|
+
3. Related entries where extracted terms appear in the name or title
|
|
62
|
+
|
|
63
|
+
If no entries match, return `status: "no_relevant_entries"`.
|
|
64
|
+
|
|
65
|
+
### Step 5: Read and Extract
|
|
66
|
+
|
|
67
|
+
For each matched entry, read the full content. Extract **only**:
|
|
68
|
+
|
|
69
|
+
- Key patterns and conventions
|
|
70
|
+
- Architectural decisions and their rationale
|
|
71
|
+
- Gotchas, constraints, and explicit rules
|
|
72
|
+
- Domain-specific validation requirements
|
|
73
|
+
|
|
74
|
+
**Skip** generic content, background sections, and anything not actionable for a code reviewer.
|
|
75
|
+
|
|
76
|
+
### Step 6: Return Structured Output
|
|
77
|
+
|
|
78
|
+
Return a JSON block:
|
|
79
|
+
|
|
80
|
+
```json
|
|
81
|
+
{
|
|
82
|
+
"status": "ok",
|
|
83
|
+
"entries_searched": 12,
|
|
84
|
+
"entries_matched": 3,
|
|
85
|
+
"domain_context": "Bullet points of reviewer-actionable domain knowledge (~300 words max)",
|
|
86
|
+
"sources": ["entry-name-1", "entry-name-2"]
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
- `entries_searched`: total entries in index
|
|
91
|
+
- `entries_matched`: entries that matched search terms
|
|
92
|
+
- `domain_context`: concise, reviewer-actionable bullet points. Focus on what a reviewer should look for or verify. Max ~300 words
|
|
93
|
+
- `sources`: entry names used (for citation in the review report)
|
|
94
|
+
|
|
95
|
+
## Important
|
|
96
|
+
|
|
97
|
+
- Do NOT review code. Your job is context retrieval only.
|
|
98
|
+
- Keep `domain_context` focused and actionable — reviewers will read this alongside their own findings.
|
|
99
|
+
- If codex isn't configured or has no relevant entries, return early with the appropriate status. Don't fabricate context.
|
|
@@ -15,6 +15,8 @@ Code-review has no configuration of its own. Optional integration with other too
|
|
|
15
15
|
|
|
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
|
+
- **Codex skill** (optional): If configured, enriches EDI findings with organisational domain knowledge
|
|
19
|
+
- Check with: `droid config --get tools.codex` to see if `codex_repo` is configured
|
|
18
20
|
|
|
19
21
|
**Overrides:** This skill supports user-defined overrides. See `/droid` skill § Skill Overrides.
|
|
20
22
|
|
|
@@ -32,6 +34,7 @@ The `/code-review` command orchestrates multiple specialized agents in parallel:
|
|
|
32
34
|
2. **test-coverage-analyzer** - Test completeness and edge cases
|
|
33
35
|
3. **error-handling-reviewer** - Silent failures, missing error handling
|
|
34
36
|
4. **type-reviewer** - TypeScript type design, interface contracts
|
|
37
|
+
5. **codex-context-researcher** (optional) - Domain knowledge from codex for EDI enrichment
|
|
35
38
|
|
|
36
39
|
Each agent returns issues with confidence scores (0-100). Issues below 80% confidence are filtered out to reduce noise.
|
|
37
40
|
|
|
@@ -117,14 +120,19 @@ For PR reviews, also fetch:
|
|
|
117
120
|
|
|
118
121
|
### Step 3: Parallel Agent Reviews
|
|
119
122
|
|
|
123
|
+
**Check codex availability** before launching agents:
|
|
124
|
+
|
|
125
|
+
Run `droid config --get tools.codex`. If `codex_repo` is configured, you will launch 5 agents. If not, launch the standard 4.
|
|
126
|
+
|
|
120
127
|
Launch these agents in parallel using the Task tool with `run_in_background: true`:
|
|
121
128
|
|
|
122
129
|
1. **edi-standards-reviewer**: EDI patterns, partnership handling, billing concerns
|
|
123
130
|
2. **test-coverage-analyzer**: Test completeness and edge cases
|
|
124
131
|
3. **error-handling-reviewer**: Silent failures, missing error handling
|
|
125
132
|
4. **type-reviewer**: Type design, interface contracts
|
|
133
|
+
5. **codex-context-researcher** (only if codex is configured): Pass changed file paths and a brief summary of the diff (module names, domain concepts extracted from paths and PR description). Do NOT pass full diff content — this agent reads codex, not code.
|
|
126
134
|
|
|
127
|
-
Pass
|
|
135
|
+
Pass agents 1–4:
|
|
128
136
|
|
|
129
137
|
1. The diff content
|
|
130
138
|
2. The full file content for changed files (for context)
|
|
@@ -139,6 +147,17 @@ Filter out issues with confidence < 80.
|
|
|
139
147
|
|
|
140
148
|
### Step 5: Synthesize Report
|
|
141
149
|
|
|
150
|
+
**Codex enrichment** (if codex-context-researcher returned `status: "ok"` with non-empty `domain_context`):
|
|
151
|
+
|
|
152
|
+
Before compiling the EDI findings, prefix the EDI section with a "Domain Context" block:
|
|
153
|
+
|
|
154
|
+
> **Domain context** (from codex: entry-name-1, entry-name-2)
|
|
155
|
+
> - Bullet points from the researcher's domain_context
|
|
156
|
+
|
|
157
|
+
Use this context to strengthen or re-prioritise EDI findings. For example, if codex says "partnership billing events must always include account_id" and the EDI reviewer flagged a missing field, elevate that finding's priority.
|
|
158
|
+
|
|
159
|
+
If codex returned `status: "not_configured"` or `"no_relevant_entries"`, omit the domain context block silently.
|
|
160
|
+
|
|
142
161
|
Compile findings into a prioritized report:
|
|
143
162
|
|
|
144
163
|
**PR #123: "Add partnership billing events"** (if reviewing a PR)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "droid-codex",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Shared organizational knowledge - PRDs, tech designs, domains, proposals, patterns, and explored topics. Self-describing: structure and workflows defined in codex repo. Use when loading project context, searching codex, capturing decisions, or creating new entries.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Orderful",
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
name: codex
|
|
2
2
|
description: "Shared organizational knowledge - PRDs, tech designs, domains, proposals, patterns, and explored topics. Self-describing: structure and workflows defined in codex repo. Use when loading project context, searching codex, capturing decisions, or creating new entries."
|
|
3
|
-
version: 0.
|
|
3
|
+
version: 0.4.0
|
|
4
4
|
status: beta
|
|
5
|
+
audience:
|
|
6
|
+
- all
|
|
5
7
|
|
|
6
8
|
includes:
|
|
7
9
|
skills:
|
|
@@ -145,6 +145,7 @@ The codex skill includes three git scripts. **Always use these instead of raw gi
|
|
|
145
145
|
|--------|---------|-------------|
|
|
146
146
|
| git-preamble | Ensure clean main + pull latest | Before ANY operation |
|
|
147
147
|
| git-start-write | Preamble + create branch | Before write operations |
|
|
148
|
+
| normalize-frontmatter | Normalize YAML frontmatter format | After writing, before commit |
|
|
148
149
|
| git-finish-write | Commit + PR + return to main | After write operations |
|
|
149
150
|
|
|
150
151
|
### Read Operations
|
|
@@ -159,7 +160,10 @@ The codex skill includes three git scripts. **Always use these instead of raw gi
|
|
|
159
160
|
|
|
160
161
|
# 2. Make your changes (write files)
|
|
161
162
|
|
|
162
|
-
# 3.
|
|
163
|
+
# 3. Normalize frontmatter (prevents fix-frontmatter PRs)
|
|
164
|
+
droid config --get tools.codex | droid exec codex normalize-frontmatter --config -
|
|
165
|
+
|
|
166
|
+
# 4. Finish write (commit + PR + return to main)
|
|
163
167
|
droid config --get tools.codex | droid exec codex git-finish-write --config - \
|
|
164
168
|
--message "{commit message}" \
|
|
165
169
|
--pr-title "{PR title}" \
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
/**
|
|
3
|
+
* codex normalize-frontmatter
|
|
4
|
+
*
|
|
5
|
+
* Normalizes YAML frontmatter format in codex markdown files to prevent
|
|
6
|
+
* unnecessary diffs from yaml.safe_dump() in the codex repo's fix-frontmatter
|
|
7
|
+
* workflow.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* droid config --get tools.codex | droid exec codex normalize-frontmatter --config -
|
|
11
|
+
*
|
|
12
|
+
* Options:
|
|
13
|
+
* --config <json> Config with codex_repo path (required)
|
|
14
|
+
* --all Process all .md files, not just uncommitted ones
|
|
15
|
+
*
|
|
16
|
+
* What it normalizes:
|
|
17
|
+
* - Flatten multiline scalars (>, |, >-, |-) into single-line quoted strings
|
|
18
|
+
* - Quote string values containing special characters (em dashes, colons, accents, @, arrows)
|
|
19
|
+
* - Consistent list indentation (- item, not - item under a key)
|
|
20
|
+
* - Unquote dates that are YYYY-MM-DD
|
|
21
|
+
*
|
|
22
|
+
* What it does NOT do:
|
|
23
|
+
* - Add missing required fields
|
|
24
|
+
* - Validate field values or enums
|
|
25
|
+
* - Reorder fields
|
|
26
|
+
*
|
|
27
|
+
* Output (JSON):
|
|
28
|
+
* { "success": true, "files_normalized": ["path/to/file.md"], "issues": [] }
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* Extract frontmatter block from markdown content.
|
|
32
|
+
* Returns the frontmatter lines (without delimiters) and the rest of the content.
|
|
33
|
+
*/
|
|
34
|
+
export declare function extractFrontmatter(content: string): {
|
|
35
|
+
frontmatter: string[] | null;
|
|
36
|
+
body: string;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Check if a string value needs quoting for YAML safety.
|
|
40
|
+
*/
|
|
41
|
+
export declare function needsQuoting(value: string): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Quote a YAML string value using double quotes, escaping internal quotes.
|
|
44
|
+
*/
|
|
45
|
+
export declare function quoteValue(value: string): string;
|
|
46
|
+
/**
|
|
47
|
+
* Unquote a date value if it's YYYY-MM-DD wrapped in quotes.
|
|
48
|
+
*/
|
|
49
|
+
export declare function unquoteDate(value: string): string;
|
|
50
|
+
/**
|
|
51
|
+
* Normalize frontmatter lines using a line-by-line state machine.
|
|
52
|
+
* No YAML library used — that's the whole point.
|
|
53
|
+
*/
|
|
54
|
+
export declare function normalizeFrontmatter(lines: string[]): string[];
|
|
55
|
+
/**
|
|
56
|
+
* Normalize the frontmatter in a markdown file.
|
|
57
|
+
* Returns the normalized content, or null if no changes needed.
|
|
58
|
+
*/
|
|
59
|
+
export declare function normalizeFile(content: string): string | null;
|
|
60
|
+
export declare function main(): void;
|
|
61
|
+
//# sourceMappingURL=normalize-frontmatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-frontmatter.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/codex/skills/codex/scripts/normalize-frontmatter.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAuDH;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG;IACnD,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd,CAwBA;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CASnD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQhD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMjD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAmG9D;AAaD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkB5D;AA2CD,wBAAgB,IAAI,IAAI,IAAI,CA8D3B"}
|