@orderful/droid 0.33.1 → 0.34.1
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/CHANGELOG.md +22 -0
- package/dist/bin/droid.js +689 -102
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/repos.d.ts +21 -0
- package/dist/commands/repos.d.ts.map +1 -0
- package/dist/commands/tui/components/SettingsDetails.d.ts +2 -1
- package/dist/commands/tui/components/SettingsDetails.d.ts.map +1 -1
- package/dist/commands/tui/types.d.ts +1 -1
- package/dist/commands/tui/types.d.ts.map +1 -1
- package/dist/commands/tui/views/ReposManagementScreen.d.ts +6 -0
- package/dist/commands/tui/views/ReposManagementScreen.d.ts.map +1 -0
- package/dist/commands/tui/views/ReposViewerScreen.d.ts +5 -0
- package/dist/commands/tui/views/ReposViewerScreen.d.ts.map +1 -0
- package/dist/commands/tui.d.ts.map +1 -1
- package/dist/index.js +156 -26
- package/dist/lib/config.d.ts +34 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/types.d.ts +10 -1
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/tools/brain/skills/brain/SKILL.md +2 -2
- package/dist/tools/brain/skills/brain/references/workflows.md +10 -10
- package/dist/tools/coach/skills/coach/SKILL.md +6 -6
- package/dist/tools/codex/skills/codex/SKILL.md +5 -5
- package/dist/tools/codex/skills/codex/references/creating.md +2 -2
- package/dist/tools/codex/skills/codex/references/decisions.md +2 -2
- package/dist/tools/codex/skills/codex/references/loading.md +1 -1
- package/dist/tools/codex/skills/codex/references/topics.md +2 -2
- package/dist/tools/codex/skills/codex/scripts/git-finish-write.d.ts +1 -1
- package/dist/tools/codex/skills/codex/scripts/git-finish-write.ts +2 -2
- package/dist/tools/codex/skills/codex/scripts/git-preamble.d.ts +1 -1
- package/dist/tools/codex/skills/codex/scripts/git-preamble.ts +3 -3
- package/dist/tools/codex/skills/codex/scripts/git-start-write.d.ts +1 -1
- package/dist/tools/codex/skills/codex/scripts/git-start-write.ts +2 -2
- package/dist/tools/comments/skills/comments/SKILL.md +9 -9
- package/dist/tools/plan/skills/plan/SKILL.md +2 -2
- package/dist/tools/plan/skills/plan/references/workflows.md +2 -2
- package/dist/tools/project/skills/project/SKILL.md +1 -1
- package/dist/tools/project/skills/project/references/creating.md +2 -2
- package/dist/tools/project/skills/project/references/loading.md +1 -1
- package/dist/tools/tech-design/skills/tech-design/SKILL.md +2 -2
- package/dist/tools/tech-design/skills/tech-design/references/publish.md +3 -3
- package/dist/tools/tech-design/skills/tech-design/references/start.md +29 -3
- package/dist/tools/tech-design/skills/tech-design/references/think.md +1 -1
- package/dist/tools/wrapup/skills/wrapup/references/subagent-prompts.md +3 -3
- package/package.json +1 -1
- package/src/bin/droid.ts +39 -0
- package/src/commands/config.ts +14 -1
- package/src/commands/repos.ts +185 -0
- package/src/commands/tui/components/SettingsDetails.tsx +42 -13
- package/src/commands/tui/types.ts +1 -1
- package/src/commands/tui/views/ReposManagementScreen.tsx +291 -0
- package/src/commands/tui/views/ReposViewerScreen.tsx +49 -0
- package/src/commands/tui/views/SkillConfigScreen.tsx +2 -2
- package/src/commands/tui.tsx +51 -4
- package/src/lib/config.test.ts +228 -1
- package/src/lib/config.ts +205 -4
- package/src/lib/types.ts +13 -1
- package/src/tools/brain/skills/brain/SKILL.md +2 -2
- package/src/tools/brain/skills/brain/references/workflows.md +10 -10
- package/src/tools/coach/skills/coach/SKILL.md +6 -6
- package/src/tools/codex/skills/codex/SKILL.md +5 -5
- package/src/tools/codex/skills/codex/references/creating.md +2 -2
- package/src/tools/codex/skills/codex/references/decisions.md +2 -2
- package/src/tools/codex/skills/codex/references/loading.md +1 -1
- package/src/tools/codex/skills/codex/references/topics.md +2 -2
- package/src/tools/codex/skills/codex/scripts/git-finish-write.ts +2 -2
- package/src/tools/codex/skills/codex/scripts/git-preamble.ts +3 -3
- package/src/tools/codex/skills/codex/scripts/git-start-write.ts +2 -2
- package/src/tools/comments/skills/comments/SKILL.md +9 -9
- package/src/tools/plan/skills/plan/SKILL.md +2 -2
- package/src/tools/plan/skills/plan/references/workflows.md +2 -2
- package/src/tools/project/skills/project/SKILL.md +1 -1
- package/src/tools/project/skills/project/references/creating.md +2 -2
- package/src/tools/project/skills/project/references/loading.md +1 -1
- package/src/tools/tech-design/skills/tech-design/SKILL.md +2 -2
- package/src/tools/tech-design/skills/tech-design/references/publish.md +3 -3
- package/src/tools/tech-design/skills/tech-design/references/start.md +29 -3
- package/src/tools/tech-design/skills/tech-design/references/think.md +1 -1
- package/src/tools/wrapup/skills/wrapup/references/subagent-prompts.md +3 -3
|
@@ -9,7 +9,7 @@ Detailed procedures for each brain operation.
|
|
|
9
9
|
**Steps:**
|
|
10
10
|
|
|
11
11
|
1. **Read config first (MANDATORY)**
|
|
12
|
-
- Run `droid config brain` and parse the JSON output
|
|
12
|
+
- Run `droid config --get tools.brain` and parse the JSON output
|
|
13
13
|
- Use the `brain_dir` value from the config
|
|
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**
|
|
@@ -48,7 +48,7 @@ Detailed procedures for each brain operation.
|
|
|
48
48
|
**Steps:**
|
|
49
49
|
|
|
50
50
|
1. **Read config first (MANDATORY)**
|
|
51
|
-
- Run `droid config brain` and parse the JSON output
|
|
51
|
+
- Run `droid config --get tools.brain` and parse the JSON output
|
|
52
52
|
- Use the `brain_dir` and `inbox_folder` values from the config
|
|
53
53
|
- If `brain_dir` is not configured, **ask the user** where they want brain docs stored
|
|
54
54
|
- **Do NOT skip this step or assume defaults**
|
|
@@ -78,8 +78,8 @@ Detailed procedures for each brain operation.
|
|
|
78
78
|
- Related work or prior decisions?
|
|
79
79
|
|
|
80
80
|
7. **Add placeholder comments** for sections needing user input:
|
|
81
|
-
- Get `user_mention` from config: `droid config
|
|
82
|
-
- Use `> @{user_mention}` for placeholders (e.g., `> @
|
|
81
|
+
- Get `user_mention` from config: `droid config --get user_mention`
|
|
82
|
+
- Use `> @{user_mention}` for placeholders (e.g., `> @{user} - Please provide requirements`)
|
|
83
83
|
- **CRITICAL:** NEVER use `@droid` - that's for user-to-AI comments, not AI-to-user
|
|
84
84
|
|
|
85
85
|
8. **Write the doc** with template structure and initial context
|
|
@@ -95,7 +95,7 @@ Detailed procedures for each brain operation.
|
|
|
95
95
|
**Steps:**
|
|
96
96
|
|
|
97
97
|
1. **Read config first (MANDATORY)**
|
|
98
|
-
- Run `droid config brain` and parse the JSON output
|
|
98
|
+
- Run `droid config --get tools.brain` and parse the JSON output
|
|
99
99
|
- Use the `brain_dir` and `inbox_folder` values from the config
|
|
100
100
|
- If `brain_dir` is not configured, **ask the user** where they want brain docs stored
|
|
101
101
|
- **Do NOT skip this step or assume defaults**
|
|
@@ -165,7 +165,7 @@ Detailed procedures for each brain operation.
|
|
|
165
165
|
2. **Read active doc**
|
|
166
166
|
|
|
167
167
|
3. **Check preserve_comments setting:**
|
|
168
|
-
- Run `droid config comments` and parse the JSON output
|
|
168
|
+
- Run `droid config --get tools.comments` and parse the JSON output
|
|
169
169
|
- Use the `preserve_comments` value (default: `true`)
|
|
170
170
|
|
|
171
171
|
4. **Find all `> @droid` comments**
|
|
@@ -174,9 +174,9 @@ Detailed procedures for each brain operation.
|
|
|
174
174
|
5. **For each comment:**
|
|
175
175
|
- Show the comment and surrounding context
|
|
176
176
|
- Address the question/request
|
|
177
|
-
- Add response as blockquote with user's mention (from `droid config brain`): `> @{user_mention} Your response here`
|
|
178
|
-
- Example: `> @
|
|
179
|
-
- **CRITICAL:** NEVER use `@droid` in your responses. Use `@{user_mention}` from config (e.g., `@
|
|
177
|
+
- Add response as blockquote with user's mention (from `droid config --get tools.brain`): `> @{user_mention} Your response here`
|
|
178
|
+
- Example: `> @{user} Yes, the index covers that query pattern.`
|
|
179
|
+
- **CRITICAL:** NEVER use `@droid` in your responses. Use `@{user_mention}` from config (e.g., `@{user}`)
|
|
180
180
|
- **CRITICAL:** Always include the `>` prefix to maintain blockquote formatting
|
|
181
181
|
- **CRITICAL:** If `preserve_comments: true`, keep the original `@droid` comment and add your response below it. Do NOT remove the original comment.
|
|
182
182
|
|
|
@@ -216,7 +216,7 @@ Detailed procedures for each brain operation.
|
|
|
216
216
|
**Steps:**
|
|
217
217
|
|
|
218
218
|
1. **Read config first (MANDATORY)**
|
|
219
|
-
- Run `droid config brain` and parse the JSON output
|
|
219
|
+
- Run `droid config --get tools.brain` and parse the JSON output
|
|
220
220
|
- Use the `brain_dir` value from the config
|
|
221
221
|
- If `brain_dir` is not configured, **ask the user** where they want brain docs stored
|
|
222
222
|
- **Do NOT skip this step or assume defaults**
|
|
@@ -53,11 +53,11 @@ plan → AI scaffolds → human implements → AI coaches → iterate → ship
|
|
|
53
53
|
| -------------------- | -------- | ------------------------------------------------------- |
|
|
54
54
|
| `scaffold_verbosity` | `medium` | How detailed hints are: `minimal`, `medium`, `detailed` |
|
|
55
55
|
|
|
56
|
-
<!-- Note: @mention is the target, not author. @
|
|
57
|
-
> @
|
|
56
|
+
<!-- Note: @mention is the target, not author. @{user} = AI talking TO user, @droid = user talking TO AI -->
|
|
57
|
+
> @{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?
|
|
58
58
|
> @droid yes lets do that
|
|
59
59
|
|
|
60
|
-
Run `droid config coach` to get the merged configuration.
|
|
60
|
+
Run `droid config --get tools.coach` to get the merged configuration.
|
|
61
61
|
|
|
62
62
|
---
|
|
63
63
|
|
|
@@ -136,9 +136,9 @@ Run `droid config coach` to get the merged configuration.
|
|
|
136
136
|
**Example inline comments:**
|
|
137
137
|
|
|
138
138
|
```typescript
|
|
139
|
-
// @
|
|
140
|
-
// @
|
|
141
|
-
// @
|
|
139
|
+
// @{user} Why did you choose a Map here instead of an object?
|
|
140
|
+
// @{user} What happens if this promise rejects?
|
|
141
|
+
// @{user} I notice you're mutating state directly - was that intentional?
|
|
142
142
|
```
|
|
143
143
|
|
|
144
144
|
> @droid is it worth mentioning using the correct comment syntax for the file language? We typically use TS but could be others
|
|
@@ -59,7 +59,7 @@ The codex skill includes three git scripts. **Always use these instead of raw gi
|
|
|
59
59
|
### Read Operations (search, load, list)
|
|
60
60
|
|
|
61
61
|
```bash
|
|
62
|
-
droid config codex | droid exec codex git-preamble --config -
|
|
62
|
+
droid config --get tools.codex | droid exec codex git-preamble --config -
|
|
63
63
|
# Then proceed with the read
|
|
64
64
|
```
|
|
65
65
|
|
|
@@ -67,12 +67,12 @@ droid config codex | droid exec codex git-preamble --config -
|
|
|
67
67
|
|
|
68
68
|
```bash
|
|
69
69
|
# 1. Start write (runs preamble + creates branch)
|
|
70
|
-
droid config codex | droid exec codex git-start-write --config - --branch codex/{action}-{name}
|
|
70
|
+
droid config --get tools.codex | droid exec codex git-start-write --config - --branch codex/{action}-{name}
|
|
71
71
|
|
|
72
72
|
# 2. Make your changes (write files)
|
|
73
73
|
|
|
74
74
|
# 3. Finish write (commit + PR + return to main)
|
|
75
|
-
droid config codex | droid exec codex git-finish-write --config - \
|
|
75
|
+
droid config --get tools.codex | droid exec codex git-finish-write --config - \
|
|
76
76
|
--message "{commit message}" \
|
|
77
77
|
--pr-title "{PR title}" \
|
|
78
78
|
--pr-body "{PR description}"
|
|
@@ -141,7 +141,7 @@ fi
|
|
|
141
141
|
|
|
142
142
|
## Configuration
|
|
143
143
|
|
|
144
|
-
**ALWAYS run `droid config codex` first and parse the JSON output.**
|
|
144
|
+
**ALWAYS run `droid config --get tools.codex` first and parse the JSON output.**
|
|
145
145
|
|
|
146
146
|
| Setting | Default | Description |
|
|
147
147
|
| ---------------- | --------------------------------- | ----------------------------- |
|
|
@@ -200,7 +200,7 @@ Parse args by splitting on ` -- `. First part = search terms, second part = inst
|
|
|
200
200
|
|
|
201
201
|
1. **Run preamble first:**
|
|
202
202
|
```bash
|
|
203
|
-
droid config codex | droid exec codex git-preamble --config -
|
|
203
|
+
droid config --get tools.codex | droid exec codex git-preamble --config -
|
|
204
204
|
```
|
|
205
205
|
2. **Read `{codex_repo}/index.yaml`** - this contains all entry names and aliases for fast lookup
|
|
206
206
|
3. Match `{name}` against index keys and aliases (case-insensitive, partial match)
|
|
@@ -31,7 +31,7 @@ A project named '{name}' already exists. Did you mean to load it?
|
|
|
31
31
|
### 3. Start Write Operation
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
droid config codex | droid exec droid-codex git-start-write --config - --branch codex/new-{name}
|
|
34
|
+
droid config --get tools.codex | droid exec droid-codex git-start-write --config - --branch codex/new-{name}
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
This runs the git preamble (ensures clean main + pulls latest) and creates the branch.
|
|
@@ -62,7 +62,7 @@ If user provides context, fill in what we know:
|
|
|
62
62
|
### 7. Finish Write Operation
|
|
63
63
|
|
|
64
64
|
```bash
|
|
65
|
-
droid config codex | droid exec droid-codex git-finish-write --config - \
|
|
65
|
+
droid config --get tools.codex | droid exec droid-codex git-finish-write --config - \
|
|
66
66
|
--message "feat(codex): scaffold {name} project" \
|
|
67
67
|
--pr-title "New project: {name}" \
|
|
68
68
|
--pr-body "Scaffold for {name} project"
|
|
@@ -42,7 +42,7 @@ I'll add this decision. Can you clarify:
|
|
|
42
42
|
### 3. Start Write Operation
|
|
43
43
|
|
|
44
44
|
```bash
|
|
45
|
-
droid config codex | droid exec droid-codex git-start-write --config - --branch codex/decision-{short-summary}
|
|
45
|
+
droid config --get tools.codex | droid exec droid-codex git-start-write --config - --branch codex/decision-{short-summary}
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
### 4. Read and Update DECISIONS.md
|
|
@@ -77,7 +77,7 @@ Update the `updated` field in frontmatter to today's date.
|
|
|
77
77
|
### 5. Finish Write Operation
|
|
78
78
|
|
|
79
79
|
```bash
|
|
80
|
-
droid config codex | droid exec droid-codex git-finish-write --config - \
|
|
80
|
+
droid config --get tools.codex | droid exec droid-codex git-finish-write --config - \
|
|
81
81
|
--message "decision({active}): {summary}" \
|
|
82
82
|
--pr-title "Decision: {summary}" \
|
|
83
83
|
--pr-body "{full decision text}"
|
|
@@ -6,7 +6,7 @@ Detailed procedure for loading entries from the codex.
|
|
|
6
6
|
|
|
7
7
|
**IMPORTANT:** Use the index file for fast lookups. This avoids expensive file-by-file searching.
|
|
8
8
|
|
|
9
|
-
1. **Get codex repo path** by running `droid config codex` and parsing the JSON output
|
|
9
|
+
1. **Get codex repo path** by running `droid config --get tools.codex` and parsing the JSON output
|
|
10
10
|
2. **Read the index file** at `{codex_repo}/index.yaml`:
|
|
11
11
|
```yaml
|
|
12
12
|
# index.yaml structure
|
|
@@ -46,7 +46,7 @@ Ask user or infer:
|
|
|
46
46
|
### 4. Start Write Operation
|
|
47
47
|
|
|
48
48
|
```bash
|
|
49
|
-
droid config codex | droid exec droid-codex git-start-write --config - --branch codex/topic-{name}
|
|
49
|
+
droid config --get tools.codex | droid exec droid-codex git-start-write --config - --branch codex/topic-{name}
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
### 5. Read Template
|
|
@@ -124,7 +124,7 @@ codebase_paths:
|
|
|
124
124
|
### 7. Finish Write Operation
|
|
125
125
|
|
|
126
126
|
```bash
|
|
127
|
-
droid config codex | droid exec droid-codex git-finish-write --config - \
|
|
127
|
+
droid config --get tools.codex | droid exec droid-codex git-finish-write --config - \
|
|
128
128
|
--message "topic: add {name}" \
|
|
129
129
|
--pr-title "Topic: {name}" \
|
|
130
130
|
--pr-body "New topic from codebase exploration"
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* and returning to main.
|
|
7
7
|
*
|
|
8
8
|
* Usage:
|
|
9
|
-
* droid config codex | droid exec droid-codex git-finish-write --config - \
|
|
9
|
+
* droid config --get tools.codex | droid exec droid-codex git-finish-write --config - \
|
|
10
10
|
* --message "feat: add new topic" \
|
|
11
11
|
* --pr-title "New topic: caching" \
|
|
12
12
|
* --pr-body "Added exploration of caching patterns"
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* and returning to main.
|
|
7
7
|
*
|
|
8
8
|
* Usage:
|
|
9
|
-
* droid config codex | droid exec droid-codex git-finish-write --config - \
|
|
9
|
+
* droid config --get tools.codex | droid exec droid-codex git-finish-write --config - \
|
|
10
10
|
* --message "feat: add new topic" \
|
|
11
11
|
* --pr-title "New topic: caching" \
|
|
12
12
|
* --pr-body "Added exploration of caching patterns"
|
|
@@ -194,7 +194,7 @@ const { config, message, prTitle, prBody } = parseArgs(args);
|
|
|
194
194
|
if (!config) {
|
|
195
195
|
console.log(JSON.stringify({
|
|
196
196
|
success: false,
|
|
197
|
-
error: 'Missing --config. Usage: droid config codex | droid exec droid-codex git-finish-write --config - --message "..." --pr-title "..."',
|
|
197
|
+
error: 'Missing --config. Usage: droid config --get tools.codex | droid exec droid-codex git-finish-write --config - --message "..." --pr-title "..."',
|
|
198
198
|
}));
|
|
199
199
|
process.exit(1);
|
|
200
200
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* Run this before ANY codex operation (read or write).
|
|
7
7
|
*
|
|
8
8
|
* Usage:
|
|
9
|
-
* droid config codex | droid exec droid-codex git-preamble --config -
|
|
9
|
+
* droid config --get tools.codex | droid exec droid-codex git-preamble --config -
|
|
10
10
|
*
|
|
11
11
|
* What it does:
|
|
12
12
|
* 1. Checkout main (abort any stuck merge/rebase)
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* Run this before ANY codex operation (read or write).
|
|
7
7
|
*
|
|
8
8
|
* Usage:
|
|
9
|
-
* droid config codex | droid exec droid-codex git-preamble --config -
|
|
9
|
+
* droid config --get tools.codex | droid exec droid-codex git-preamble --config -
|
|
10
10
|
*
|
|
11
11
|
* What it does:
|
|
12
12
|
* 1. Checkout main (abort any stuck merge/rebase)
|
|
@@ -135,7 +135,7 @@ const { config } = parseArgs(args);
|
|
|
135
135
|
if (!config) {
|
|
136
136
|
console.log(JSON.stringify({
|
|
137
137
|
success: false,
|
|
138
|
-
error: 'Missing --config. Usage: droid config codex | droid exec droid-codex git-preamble --config -',
|
|
138
|
+
error: 'Missing --config. Usage: droid config --get tools.codex | droid exec droid-codex git-preamble --config -',
|
|
139
139
|
}));
|
|
140
140
|
process.exit(1);
|
|
141
141
|
}
|
|
@@ -143,7 +143,7 @@ if (!config) {
|
|
|
143
143
|
if (!config.codex_repo) {
|
|
144
144
|
console.log(JSON.stringify({
|
|
145
145
|
success: false,
|
|
146
|
-
error: 'Missing codex_repo in config. Run: droid config codex --set codex_repo=~/path/to/codex',
|
|
146
|
+
error: 'Missing codex_repo in config. Run: droid config --get tools.codex --set codex_repo=~/path/to/codex',
|
|
147
147
|
}));
|
|
148
148
|
process.exit(1);
|
|
149
149
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* and creating a new branch.
|
|
7
7
|
*
|
|
8
8
|
* Usage:
|
|
9
|
-
* droid config codex | droid exec droid-codex git-start-write --config - --branch codex/new-feature
|
|
9
|
+
* droid config --get tools.codex | droid exec droid-codex git-start-write --config - --branch codex/new-feature
|
|
10
10
|
*
|
|
11
11
|
* Options:
|
|
12
12
|
* --config <json> Config with codex_repo path (required)
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* and creating a new branch.
|
|
7
7
|
*
|
|
8
8
|
* Usage:
|
|
9
|
-
* droid config codex | droid exec droid-codex git-start-write --config - --branch codex/new-feature
|
|
9
|
+
* droid config --get tools.codex | droid exec droid-codex git-start-write --config - --branch codex/new-feature
|
|
10
10
|
*
|
|
11
11
|
* Options:
|
|
12
12
|
* --config <json> Config with codex_repo path (required)
|
|
@@ -143,7 +143,7 @@ const { config, branch } = parseArgs(args);
|
|
|
143
143
|
if (!config) {
|
|
144
144
|
console.log(JSON.stringify({
|
|
145
145
|
success: false,
|
|
146
|
-
error: 'Missing --config. Usage: droid config codex | droid exec droid-codex git-start-write --config - --branch <name>',
|
|
146
|
+
error: 'Missing --config. Usage: droid config --get tools.codex | droid exec droid-codex git-start-write --config - --branch <name>',
|
|
147
147
|
}));
|
|
148
148
|
process.exit(1);
|
|
149
149
|
}
|
|
@@ -19,10 +19,10 @@ Leave comments for the AI using `> @droid`:
|
|
|
19
19
|
> @droid Can you add error handling here?
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
The AI will respond with `> @{user_mention}` (configured in droid setup, e.g., `@
|
|
22
|
+
The AI will respond with `> @{user_mention}` (configured in droid setup, e.g., `@{user}`):
|
|
23
23
|
|
|
24
24
|
```markdown
|
|
25
|
-
> @
|
|
25
|
+
> @{user} I think this approach is solid. One consideration...
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
## Tag Convention
|
|
@@ -39,19 +39,19 @@ The directionality can be confusing. The @mention is the **target**, not the aut
|
|
|
39
39
|
Think of it like addressing someone in conversation:
|
|
40
40
|
|
|
41
41
|
- "Hey @droid, what do you think?" → User talking TO the AI
|
|
42
|
-
- "Good point @
|
|
42
|
+
- "Good point @{user}, here's my take..." → AI talking TO the user
|
|
43
43
|
|
|
44
44
|
**Examples:**
|
|
45
45
|
|
|
46
46
|
```markdown
|
|
47
47
|
> @droid Can you explain this function? ← User asking AI
|
|
48
|
-
> @
|
|
48
|
+
> @{user} This function calculates the hash... ← AI responding to user
|
|
49
49
|
|
|
50
50
|
> @droid Should we refactor this? ← User asking AI
|
|
51
|
-
> @
|
|
51
|
+
> @{user} Yes, I'd suggest extracting... ← AI responding to user
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
**Never flip this.** When responding to a `@droid` comment, always use `@{user}` (e.g., `@
|
|
54
|
+
**Never flip this.** When responding to a `@droid` comment, always use `@{user}` (e.g., `@{user}`) because you're addressing the user, not yourself.
|
|
55
55
|
|
|
56
56
|
## When NOT to Use
|
|
57
57
|
|
|
@@ -84,7 +84,7 @@ When you find a `@droid` marker:
|
|
|
84
84
|
|
|
85
85
|
#### Pass 1: Read & Analyse
|
|
86
86
|
|
|
87
|
-
1. **Read config first:** Run `droid config comments` and check `preserve_comments` setting (default: `true`)
|
|
87
|
+
1. **Read config first:** Run `droid config --get tools.comments` and check `preserve_comments` setting (default: `true`)
|
|
88
88
|
2. Search for ALL `> @droid` comments (and any configured `ai_mentions`) in the specified scope
|
|
89
89
|
3. If there's a `git diff`, check those files first for relevant context
|
|
90
90
|
4. **Read all comments before responding** - understand the full picture
|
|
@@ -109,11 +109,11 @@ When you find a `@droid` marker:
|
|
|
109
109
|
|
|
110
110
|
## Configuration
|
|
111
111
|
|
|
112
|
-
Configured via `droid config comments` (merges global config with skill overrides):
|
|
112
|
+
Configured via `droid config --get tools.comments` (merges global config with skill overrides):
|
|
113
113
|
|
|
114
114
|
```yaml
|
|
115
115
|
# Override the user mention (default: from global config)
|
|
116
|
-
user_mention: "@
|
|
116
|
+
user_mention: "@{user}"
|
|
117
117
|
|
|
118
118
|
# Additional AI mentions to recognize (e.g., if you're used to @claude)
|
|
119
119
|
ai_mentions: "@claude"
|
|
@@ -24,8 +24,8 @@ Task-scoped planning for PRs, tickets, and small features. Lighter than `/tech-d
|
|
|
24
24
|
## Configuration
|
|
25
25
|
|
|
26
26
|
Uses config from dependencies:
|
|
27
|
-
- `droid config brain` → `brain_dir`, `inbox_dir`
|
|
28
|
-
- `droid config comments` → `user_mention`
|
|
27
|
+
- `droid config --get tools.brain` → `brain_dir`, `inbox_dir`
|
|
28
|
+
- `droid config --get tools.comments` → `user_mention`
|
|
29
29
|
|
|
30
30
|
## Commands
|
|
31
31
|
|
|
@@ -7,8 +7,8 @@ Detailed command flows for the plan skill.
|
|
|
7
7
|
### Step 1: Read Configuration
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
droid config brain # → brain_dir, inbox_dir
|
|
11
|
-
droid config comments # → user_mention
|
|
10
|
+
droid config --get tools.brain # → brain_dir, inbox_dir
|
|
11
|
+
droid config --get tools.comments # → user_mention
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
If brain not configured, ask user for `brain_dir` location.
|
|
@@ -26,7 +26,7 @@ Chat history disappears. Projects persist.
|
|
|
26
26
|
|
|
27
27
|
## Configuration
|
|
28
28
|
|
|
29
|
-
**IMPORTANT:** Run `droid config project` first to get the merged configuration.
|
|
29
|
+
**IMPORTANT:** Run `droid config --get tools.project` first to get the merged configuration.
|
|
30
30
|
|
|
31
31
|
| Setting | Default | Description |
|
|
32
32
|
| -------------- | ------------ | -------------------------------------------------- |
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
## Procedure
|
|
6
6
|
|
|
7
7
|
1. **Read config first**
|
|
8
|
-
- Run `droid config project` and parse the JSON output
|
|
8
|
+
- Run `droid config --get tools.project` and parse the JSON output
|
|
9
9
|
- Use `projects_dir` (required - if not configured, inform user to set it up)
|
|
10
10
|
- Use `preset` if configured (markdown or obsidian)
|
|
11
11
|
|
|
@@ -77,7 +77,7 @@ Bridge shared organizational knowledge (codex) to personal working memory (proje
|
|
|
77
77
|
- If `{name} --from codex:{codex-name}` → use custom project name
|
|
78
78
|
|
|
79
79
|
2. **Load codex entry**
|
|
80
|
-
- Run `droid config codex` and get `codex_repo` from the JSON output
|
|
80
|
+
- Run `droid config --get tools.codex` and get `codex_repo` from the JSON output
|
|
81
81
|
- Sync: `git -C {codex_repo} pull --rebase --quiet`
|
|
82
82
|
- Locate `{codex_repo}/projects/{name}/`
|
|
83
83
|
- If not found → error with suggestions from available projects
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
## Procedure
|
|
8
8
|
|
|
9
9
|
1. **Determine projects directory**
|
|
10
|
-
- Run `droid config project` and parse the JSON output
|
|
10
|
+
- Run `droid config --get tools.project` and parse the JSON output
|
|
11
11
|
- Use the `projects_dir` value
|
|
12
12
|
- If not configured → inform user to create `~/.droid/skills/project/overrides.yaml` with `projects_dir: /path/to/projects`
|
|
13
13
|
|
|
@@ -28,8 +28,8 @@ The `/tech-design` skill brings tech design authoring into the same AI-augmented
|
|
|
28
28
|
|
|
29
29
|
Before using tech-design, verify:
|
|
30
30
|
|
|
31
|
-
1. **Brain skill configured:** Run `droid config brain` and check if `brain_dir` is set
|
|
32
|
-
2. **Codex skill configured:** Run `droid config codex` and check if `codex_repo` is set
|
|
31
|
+
1. **Brain skill configured:** Run `droid config --get tools.brain` and check if `brain_dir` is set
|
|
32
|
+
2. **Codex skill configured:** Run `droid config --get tools.codex` and check if `codex_repo` is set
|
|
33
33
|
3. **gh CLI:** Required for PR workflows
|
|
34
34
|
|
|
35
35
|
If prerequisites fail, guide user to configure:
|
|
@@ -25,7 +25,7 @@ if [ ! -f "$research_doc_path" ]; then
|
|
|
25
25
|
fi
|
|
26
26
|
|
|
27
27
|
# Codex repo must be configured (read from codex skill config)
|
|
28
|
-
codex_repo=$(droid config codex | grep -o '"codex_repo": *"[^"]*"' | cut -d'"' -f4)
|
|
28
|
+
codex_repo=$(droid config --get tools.codex | grep -o '"codex_repo": *"[^"]*"' | cut -d'"' -f4)
|
|
29
29
|
if [ -z "$codex_repo" ]; then
|
|
30
30
|
echo "Error: Codex not configured."
|
|
31
31
|
echo "Set up with: /codex"
|
|
@@ -134,7 +134,7 @@ Use codex git scripts for safety:
|
|
|
134
134
|
|
|
135
135
|
```bash
|
|
136
136
|
# Use codex skill's git-start-write script
|
|
137
|
-
droid config codex | droid exec droid-codex git-start-write \
|
|
137
|
+
droid config --get tools.codex | droid exec droid-codex git-start-write \
|
|
138
138
|
--config - \
|
|
139
139
|
--branch "codex/tech-design-$project"
|
|
140
140
|
```
|
|
@@ -232,7 +232,7 @@ After approval:
|
|
|
232
232
|
- [ ] Begin implementation"
|
|
233
233
|
|
|
234
234
|
# Use codex skill's git-finish-write script
|
|
235
|
-
droid config codex | droid exec droid-codex git-finish-write \
|
|
235
|
+
droid config --get tools.codex | droid exec droid-codex git-finish-write \
|
|
236
236
|
--config - \
|
|
237
237
|
--message "$commit_msg" \
|
|
238
238
|
--pr-title "$pr_title" \
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
|
|
13
13
|
Check that required tools are configured:
|
|
14
14
|
|
|
15
|
-
- **Brain skill:** Run `droid config brain` and check if `brain_dir` is set
|
|
16
|
-
- **Codex skill:** Run `droid config codex` and check if `codex_repo` is set
|
|
15
|
+
- **Brain skill:** Run `droid config --get tools.brain` and check if `brain_dir` is set
|
|
16
|
+
- **Codex skill:** Run `droid config --get tools.codex` and check if `codex_repo` is set
|
|
17
17
|
|
|
18
18
|
If prerequisites fail, guide user to configure:
|
|
19
19
|
|
|
@@ -92,7 +92,33 @@ Research for tech design: {brief description from PRD}
|
|
|
92
92
|
|
|
93
93
|
Explore code repositories to discover patterns, similar features, integration points, and dependencies.
|
|
94
94
|
|
|
95
|
-
**Note:** The specific repositories to search should be discovered from the project context or user's workspace.
|
|
95
|
+
**Note:** The specific repositories to search should be discovered from the project context or user's workspace.
|
|
96
|
+
|
|
97
|
+
#### Unknown Repo Handling
|
|
98
|
+
|
|
99
|
+
When exploring and user mentions a repo not in the repos registry:
|
|
100
|
+
|
|
101
|
+
1. Check available repos: `droid config --get repos`
|
|
102
|
+
2. If repo not found in the list, prompt the user:
|
|
103
|
+
- "I don't have '{repo-name}' in your repos registry. Would you like to add it?"
|
|
104
|
+
3. If user confirms, ask for the repository path:
|
|
105
|
+
- Suggest common patterns: `~/src/github.com/{repo-name}` or `~/code/{repo-name}`
|
|
106
|
+
4. Add the repo: `droid repos add {repo-name} --path {path} --description "{optional description}"`
|
|
107
|
+
5. Proceed with exploration using the newly registered repo
|
|
108
|
+
|
|
109
|
+
**Example:**
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
User: "Check the orderful-workspace repo for similar patterns"
|
|
113
|
+
Assistant: I don't have 'orderful-workspace' in your repos registry. Would you like to add it?
|
|
114
|
+
User: Yes
|
|
115
|
+
Assistant: What's the path to orderful-workspace? (e.g., ~/src/github.com/orderful-workspace)
|
|
116
|
+
User: ~/src/github.com/orderful-workspace
|
|
117
|
+
Assistant: [Runs: droid repos add orderful-workspace --path ~/src/github.com/orderful-workspace --description "Main monorepo"]
|
|
118
|
+
Added orderful-workspace to your repos. Now exploring for similar patterns...
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**Common patterns to look for:**
|
|
96
122
|
|
|
97
123
|
- **Existing similar features:**
|
|
98
124
|
- Search for related functionality
|
|
@@ -227,7 +227,7 @@ Which would you prefer?
|
|
|
227
227
|
**If option 3 (create comment):**
|
|
228
228
|
|
|
229
229
|
```bash
|
|
230
|
-
# Get user_mention from: droid config
|
|
230
|
+
# Get user_mention from: droid config --get user_mention
|
|
231
231
|
# Add comment to thought doc:
|
|
232
232
|
|
|
233
233
|
> @{user} Explored events vs polling for status updates
|
|
@@ -31,7 +31,7 @@ Output format:
|
|
|
31
31
|
```
|
|
32
32
|
Read {session_brief_path} for session context.
|
|
33
33
|
|
|
34
|
-
First, run `droid config project` to get the project skill configuration.
|
|
34
|
+
First, run `droid config --get tools.project` to get the project skill configuration.
|
|
35
35
|
Parse the JSON output to find the `projects_dir` value.
|
|
36
36
|
|
|
37
37
|
If `projects_dir` is not set, skip project file analysis.
|
|
@@ -56,7 +56,7 @@ If no active project found, note that and skip.
|
|
|
56
56
|
```
|
|
57
57
|
Read {session_brief_path} for session context.
|
|
58
58
|
|
|
59
|
-
First, run `droid config brain` and parse the JSON output for the `brain_dir` setting.
|
|
59
|
+
First, run `droid config --get tools.brain` and parse the JSON output for the `brain_dir` setting.
|
|
60
60
|
If not configured, skip brain doc analysis.
|
|
61
61
|
|
|
62
62
|
If configured:
|
|
@@ -78,7 +78,7 @@ Output:
|
|
|
78
78
|
```
|
|
79
79
|
Read {session_brief_path} for session context.
|
|
80
80
|
|
|
81
|
-
Run `droid config codex` and check if `codex_repo` is set.
|
|
81
|
+
Run `droid config --get tools.codex` and check if `codex_repo` is set.
|
|
82
82
|
If not configured, skip codex analysis.
|
|
83
83
|
|
|
84
84
|
If the session involved:
|
package/package.json
CHANGED
package/src/bin/droid.ts
CHANGED
|
@@ -9,6 +9,12 @@ import { uninstallCommand } from '../commands/uninstall';
|
|
|
9
9
|
import { updateCommand } from '../commands/update';
|
|
10
10
|
import { tuiCommand } from '../commands/tui';
|
|
11
11
|
import { execCommand } from '../commands/exec';
|
|
12
|
+
import {
|
|
13
|
+
reposListCommand,
|
|
14
|
+
reposAddCommand,
|
|
15
|
+
reposRemoveCommand,
|
|
16
|
+
reposGetCommand,
|
|
17
|
+
} from '../commands/repos';
|
|
12
18
|
import { getVersion } from '../lib/version';
|
|
13
19
|
|
|
14
20
|
const version = getVersion();
|
|
@@ -32,6 +38,39 @@ program
|
|
|
32
38
|
.option('-s, --set <key=value>', 'Set a config value')
|
|
33
39
|
.action(configCommand);
|
|
34
40
|
|
|
41
|
+
// Repos command with subcommands
|
|
42
|
+
const repos = program
|
|
43
|
+
.command('repos')
|
|
44
|
+
.description('Manage repository registry');
|
|
45
|
+
|
|
46
|
+
repos
|
|
47
|
+
.command('list')
|
|
48
|
+
.description('List all registered repos')
|
|
49
|
+
.option('--json', 'Output as JSON')
|
|
50
|
+
.action((options) => reposListCommand(options));
|
|
51
|
+
|
|
52
|
+
repos
|
|
53
|
+
.command('add [name]')
|
|
54
|
+
.description('Add a repo to the registry')
|
|
55
|
+
.option('-p, --path <path>', 'Repository path')
|
|
56
|
+
.option('-d, --description <desc>', 'Repository description')
|
|
57
|
+
.action((name, options) =>
|
|
58
|
+
reposAddCommand(name, options.path, options.description),
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
repos
|
|
62
|
+
.command('remove [name]')
|
|
63
|
+
.description('Remove a repo from the registry')
|
|
64
|
+
.action((name) => reposRemoveCommand(name));
|
|
65
|
+
|
|
66
|
+
repos
|
|
67
|
+
.command('get <name>')
|
|
68
|
+
.description('Get a specific repo (JSON output for scripts)')
|
|
69
|
+
.action((name) => reposGetCommand(name));
|
|
70
|
+
|
|
71
|
+
// Default: list repos if no subcommand
|
|
72
|
+
repos.action(() => reposListCommand());
|
|
73
|
+
|
|
35
74
|
program
|
|
36
75
|
.command('tools')
|
|
37
76
|
.description('Browse and manage available tools')
|
package/src/commands/config.ts
CHANGED
|
@@ -42,8 +42,14 @@ export function getToolConfig(toolName: string): ToolConfig {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
export async function configCommand(tool?: string, options?: ConfigOptions): Promise<void> {
|
|
45
|
-
// If tool provided, return merged config as JSON
|
|
45
|
+
// DEPRECATED: If tool provided, return merged config as JSON
|
|
46
|
+
// TODO: Remove in v1.0 - use `droid config --get tools.<tool>` instead
|
|
46
47
|
if (tool) {
|
|
48
|
+
console.log(
|
|
49
|
+
chalk.yellow(
|
|
50
|
+
`Warning: 'droid config <tool>' is deprecated. Use 'droid config --get tools.${tool}' instead.`,
|
|
51
|
+
),
|
|
52
|
+
);
|
|
47
53
|
const toolConfig = getToolConfig(tool);
|
|
48
54
|
console.log(JSON.stringify(toolConfig, null, 2));
|
|
49
55
|
return;
|
|
@@ -94,6 +100,13 @@ export async function configCommand(tool?: string, options?: ConfigOptions): Pro
|
|
|
94
100
|
|
|
95
101
|
const [, key, rawValue] = match;
|
|
96
102
|
|
|
103
|
+
// Guard repos key - should use `droid repos add/remove` instead
|
|
104
|
+
if (key === 'repos' || key.startsWith('repos.')) {
|
|
105
|
+
console.error(chalk.red('Cannot set repos via --set.'));
|
|
106
|
+
console.log(chalk.gray('Use: droid repos add/remove'));
|
|
107
|
+
process.exit(1);
|
|
108
|
+
}
|
|
109
|
+
|
|
97
110
|
// Try to parse as JSON, otherwise use as string
|
|
98
111
|
let value: unknown;
|
|
99
112
|
try {
|