@orderful/droid 0.35.3 → 0.35.4

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.
@@ -87,7 +87,7 @@
87
87
  {
88
88
  "name": "droid-plan",
89
89
  "description": "Task-scoped planning with portable, structured plans. Use when planning implementation for a PR, ticket, or small feature. User prompts like 'let's plan this', 'can we start a plan', 'think through the implementation'.",
90
- "version": "0.1.1",
90
+ "version": "0.1.2",
91
91
  "source": {
92
92
  "source": "github",
93
93
  "repo": "orderful/droid",
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @orderful/droid
2
2
 
3
+ ## 0.35.4
4
+
5
+ ### Patch Changes
6
+
7
+ - [#220](https://github.com/Orderful/droid/pull/220) [`cbe48f7`](https://github.com/Orderful/droid/commit/cbe48f71f177465886f65f27b914edf990612203) Thanks [@frytyler](https://github.com/frytyler)! - Add argument-hint to plan skill for better CLI discoverability
8
+
9
+ - [#218](https://github.com/Orderful/droid/pull/218) [`47ba4ac`](https://github.com/Orderful/droid/commit/47ba4acf690595ed5c0f20645b5b5c20dcc9610a) Thanks [@frytyler](https://github.com/frytyler)! - Improve tech-design skill documentation and add needs-review label support
10
+ - Add comment convention table clarifying @droid/@user mention semantics
11
+ - Add --labels parameter to git-finish-write script for PR label support
12
+ - Configure tech-design publish to add needs-review label (prevents auto-merge)
13
+ - Remove unimplemented v2 commands from main Commands table
14
+
3
15
  ## 0.35.3
4
16
 
5
17
  ### Patch Changes
package/README.md CHANGED
@@ -12,6 +12,53 @@ AI workflow toolkit for sharing tools, commands, and agents across the engineeri
12
12
  - **Share what works** - Power users discover great workflows, everyone benefits
13
13
  - **Consistent experience** - Common patterns like `@droid`/`@user` comments work the same across the team
14
14
 
15
+ ## Prerequisites
16
+
17
+ Before installing droid:
18
+
19
+ | Requirement | Why | Install |
20
+ |-------------|-----|---------|
21
+ | **npm login to @orderful** | Droid is published to our private npm org | `npm login` (use Orderful credentials) |
22
+ | **bun** | Required for `droid exec` scripts | [bun.sh](https://bun.sh) |
23
+ | **gh** (GitHub CLI) | Highly recommended for PR workflows | [cli.github.com](https://cli.github.com) |
24
+ | **Obsidian** | Recommended for brain/codex markdown editing | [obsidian.md](https://obsidian.md) |
25
+
26
+ ## Setup Gotchas
27
+
28
+ Things that trip people up:
29
+
30
+ ### Claude Code not found after install
31
+
32
+ If `claude` command isn't found in new terminal windows, add to your shell rc file (`.bashrc`, `.zshrc`):
33
+
34
+ ```bash
35
+ export PATH="$HOME/.local/bin:$PATH"
36
+ ```
37
+
38
+ Then restart your terminal or `source` the file.
39
+
40
+ ### Check your settings before diving in
41
+
42
+ After install, review your configuration before starting a session:
43
+
44
+ ```bash
45
+ droid config # View global settings
46
+ droid # TUI → Settings tab for tool-specific config
47
+ ```
48
+
49
+ Make sure username, paths, and tool settings match what you want.
50
+
51
+ ### Updates require restart
52
+
53
+ When droid auto-updates (or you run `droid update`), the package updates but you need to:
54
+
55
+ 1. Restart droid to pick up the new version
56
+ 2. Run tool updates separately if needed (`droid update` in TUI)
57
+
58
+ ### Cursor support
59
+
60
+ Cursor integration currently requires the **nightly build** of Cursor.
61
+
15
62
  ## Quick Start
16
63
 
17
64
  ### Option A: Claude Code Plugin (Recommended for Claude Code users)
@@ -16,6 +16,7 @@
16
16
  * --message <text> Commit message (required)
17
17
  * --pr-title <text> PR title (required)
18
18
  * --pr-body <text> PR body (optional, defaults to commit message)
19
+ * --labels <text> Comma-separated labels (optional)
19
20
  *
20
21
  * What it does:
21
22
  * 1. Stage all changes
@@ -1 +1 @@
1
- {"version":3,"file":"git-finish-write.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/codex/skills/codex/scripts/git-finish-write.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG"}
1
+ {"version":3,"file":"git-finish-write.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/codex/skills/codex/scripts/git-finish-write.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG"}
@@ -16,6 +16,7 @@
16
16
  * --message <text> Commit message (required)
17
17
  * --pr-title <text> PR title (required)
18
18
  * --pr-body <text> PR body (optional, defaults to commit message)
19
+ * --labels <text> Comma-separated labels (optional)
19
20
  *
20
21
  * What it does:
21
22
  * 1. Stage all changes
@@ -47,11 +48,13 @@ function parseArgs(args: string[]): {
47
48
  message: string | null;
48
49
  prTitle: string | null;
49
50
  prBody: string | null;
51
+ labels: string | null;
50
52
  } {
51
53
  let config: Config | null = null;
52
54
  let message: string | null = null;
53
55
  let prTitle: string | null = null;
54
56
  let prBody: string | null = null;
57
+ let labels: string | null = null;
55
58
 
56
59
  for (let i = 0; i < args.length; i++) {
57
60
  const arg = args[i];
@@ -69,10 +72,12 @@ function parseArgs(args: string[]): {
69
72
  prTitle = args[++i];
70
73
  } else if (arg === '--pr-body' && args[i + 1]) {
71
74
  prBody = args[++i];
75
+ } else if (arg === '--labels' && args[i + 1]) {
76
+ labels = args[++i];
72
77
  }
73
78
  }
74
79
 
75
- return { config, message, prTitle, prBody };
80
+ return { config, message, prTitle, prBody, labels };
76
81
  }
77
82
 
78
83
  function expandPath(p: string): string {
@@ -100,7 +105,8 @@ function gitFinishWrite(
100
105
  repoPath: string,
101
106
  commitMessage: string,
102
107
  prTitle: string,
103
- prBody: string
108
+ prBody: string,
109
+ labels?: string
104
110
  ): Result {
105
111
  const cwd = expandPath(repoPath);
106
112
 
@@ -173,6 +179,14 @@ function gitFinishWrite(
173
179
  }
174
180
  }
175
181
 
182
+ // 4.5. Add labels if specified
183
+ if (labels) {
184
+ const addLabels = run(`gh pr edit --add-label "${labels}"`, cwd);
185
+ if (!addLabels.ok) {
186
+ console.error(`Warning: Failed to add labels: ${addLabels.output}`);
187
+ }
188
+ }
189
+
176
190
  // 5. Return to main
177
191
  const checkoutMain = run('git checkout main', cwd);
178
192
  if (!checkoutMain.ok) {
@@ -189,7 +203,7 @@ function gitFinishWrite(
189
203
 
190
204
  // Main
191
205
  const args = process.argv.slice(2);
192
- const { config, message, prTitle, prBody } = parseArgs(args);
206
+ const { config, message, prTitle, prBody, labels } = parseArgs(args);
193
207
 
194
208
  if (!config) {
195
209
  console.log(JSON.stringify({
@@ -227,7 +241,8 @@ const result = gitFinishWrite(
227
241
  config.codex_repo,
228
242
  message,
229
243
  prTitle,
230
- prBody || message
244
+ prBody || message,
245
+ labels || undefined
231
246
  );
232
247
  console.log(JSON.stringify(result, null, 2));
233
248
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "droid-plan",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Task-scoped planning with portable, structured plans. Use when planning implementation for a PR, ticket, or small feature. User prompts like 'let's plan this', 'can we start a plan', 'think through the implementation'.",
5
5
  "author": {
6
6
  "name": "Orderful",
@@ -1,6 +1,6 @@
1
1
  name: plan
2
2
  description: "Task-scoped planning with portable, structured plans. Use when planning implementation for a PR, ticket, or small feature. User prompts like 'let's plan this', 'can we start a plan', 'think through the implementation'."
3
- version: 0.1.1
3
+ version: 0.1.2
4
4
  status: alpha
5
5
 
6
6
  includes:
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: plan
3
3
  description: "Task-scoped planning with portable, structured plans. Use when planning implementation for a PR, ticket, or small feature. User prompts like 'let's plan this', 'can we start a plan', 'think through the implementation'."
4
+ argument-hint: "[new {topic} | search {topic} | check | ready | implement]"
4
5
  allowed-tools: [Read, Edit, Write, Glob, Grep, Bash, Task, AskUserQuestion]
5
6
  ---
6
7
 
@@ -68,6 +68,13 @@ Tech-design has no configuration of its own. It delegates to:
68
68
  - Iterates with `@droid`/`@user` comments (the @mention is the **target**: `@droid` = user asking AI, `@user` = AI asking user)
69
69
  - Captures the "why" behind choices
70
70
 
71
+ **Comment conventions for async back-and-forth:**
72
+
73
+ | Comment | Author | Target | Meaning |
74
+ | -------------- | ------ | ------ | -------------------------- |
75
+ | `> @droid ...` | User | AI | User asking/telling the AI |
76
+ | `> @user ...` | AI | User | AI asking/telling the user |
77
+
71
78
  3. **Roll-up** = Reviewer artifact
72
79
  - Synthesized from thought doc
73
80
  - Decision-focused, no exploration noise
@@ -79,16 +86,13 @@ Both thought doc and roll-up are published to codex. Research doc stays in brain
79
86
 
80
87
  ## Commands
81
88
 
82
- | Command | Action | Status |
83
- | ------------------------------------------- | -------------------------------------------------------- | ------ |
84
- | `/tech-design start --from codex:{project}` | Create research + thought docs, pull PRD/DESIGN context | v1 |
85
- | `/tech-design draft [section]` | Auto-generate from research doc + codebase exploration | v1 |
86
- | `/tech-design think [topic]` | Guided exploration, updates research doc with findings | v1 |
87
- | `/tech-design gaps` | Checklist of missing/empty sections | v1 |
88
- | `/tech-design publish` | Generate roll-up, publish thought doc + roll-up to codex | v1 |
89
- | `/tech-design critic [persona]` | Multi-persona review with severity scoring | v2 |
90
- | `/tech-design respond {question}` | Author tool: search thought doc to draft reply | v2 |
91
- | `/tech-design ask {question}` | Reviewer tool: search both docs to answer questions | v2 |
89
+ | Command | Action |
90
+ | ------------------------------------------- | -------------------------------------------------------- |
91
+ | `/tech-design start --from codex:{project}` | Create research + thought docs, pull PRD/DESIGN context |
92
+ | `/tech-design draft [section]` | Auto-generate from research doc + codebase exploration |
93
+ | `/tech-design think [topic]` | Guided exploration, updates research doc with findings |
94
+ | `/tech-design gaps` | Checklist of missing/empty sections |
95
+ | `/tech-design publish` | Generate roll-up, publish thought doc + roll-up to codex |
92
96
 
93
97
  ## Conversational Skill Matching
94
98
 
@@ -231,12 +231,13 @@ After approval:
231
231
  - [ ] Add key decisions to DECISIONS.md
232
232
  - [ ] Begin implementation"
233
233
 
234
- # Use codex skill's git-finish-write script
234
+ # Use codex skill's git-finish-write script with needs-review label
235
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" \
239
- --pr-body "$pr_body"
239
+ --pr-body "$pr_body" \
240
+ --labels "needs-review"
240
241
  ```
241
242
 
242
243
  ### 8. Output Success
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orderful/droid",
3
- "version": "0.35.3",
3
+ "version": "0.35.4",
4
4
  "description": "AI workflow toolkit for sharing skills, commands, and agents across the team",
5
5
  "type": "module",
6
6
  "bin": {
@@ -16,6 +16,7 @@
16
16
  * --message <text> Commit message (required)
17
17
  * --pr-title <text> PR title (required)
18
18
  * --pr-body <text> PR body (optional, defaults to commit message)
19
+ * --labels <text> Comma-separated labels (optional)
19
20
  *
20
21
  * What it does:
21
22
  * 1. Stage all changes
@@ -47,11 +48,13 @@ function parseArgs(args: string[]): {
47
48
  message: string | null;
48
49
  prTitle: string | null;
49
50
  prBody: string | null;
51
+ labels: string | null;
50
52
  } {
51
53
  let config: Config | null = null;
52
54
  let message: string | null = null;
53
55
  let prTitle: string | null = null;
54
56
  let prBody: string | null = null;
57
+ let labels: string | null = null;
55
58
 
56
59
  for (let i = 0; i < args.length; i++) {
57
60
  const arg = args[i];
@@ -69,10 +72,12 @@ function parseArgs(args: string[]): {
69
72
  prTitle = args[++i];
70
73
  } else if (arg === '--pr-body' && args[i + 1]) {
71
74
  prBody = args[++i];
75
+ } else if (arg === '--labels' && args[i + 1]) {
76
+ labels = args[++i];
72
77
  }
73
78
  }
74
79
 
75
- return { config, message, prTitle, prBody };
80
+ return { config, message, prTitle, prBody, labels };
76
81
  }
77
82
 
78
83
  function expandPath(p: string): string {
@@ -100,7 +105,8 @@ function gitFinishWrite(
100
105
  repoPath: string,
101
106
  commitMessage: string,
102
107
  prTitle: string,
103
- prBody: string
108
+ prBody: string,
109
+ labels?: string
104
110
  ): Result {
105
111
  const cwd = expandPath(repoPath);
106
112
 
@@ -173,6 +179,14 @@ function gitFinishWrite(
173
179
  }
174
180
  }
175
181
 
182
+ // 4.5. Add labels if specified
183
+ if (labels) {
184
+ const addLabels = run(`gh pr edit --add-label "${labels}"`, cwd);
185
+ if (!addLabels.ok) {
186
+ console.error(`Warning: Failed to add labels: ${addLabels.output}`);
187
+ }
188
+ }
189
+
176
190
  // 5. Return to main
177
191
  const checkoutMain = run('git checkout main', cwd);
178
192
  if (!checkoutMain.ok) {
@@ -189,7 +203,7 @@ function gitFinishWrite(
189
203
 
190
204
  // Main
191
205
  const args = process.argv.slice(2);
192
- const { config, message, prTitle, prBody } = parseArgs(args);
206
+ const { config, message, prTitle, prBody, labels } = parseArgs(args);
193
207
 
194
208
  if (!config) {
195
209
  console.log(JSON.stringify({
@@ -227,7 +241,8 @@ const result = gitFinishWrite(
227
241
  config.codex_repo,
228
242
  message,
229
243
  prTitle,
230
- prBody || message
244
+ prBody || message,
245
+ labels || undefined
231
246
  );
232
247
  console.log(JSON.stringify(result, null, 2));
233
248
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "droid-plan",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Task-scoped planning with portable, structured plans. Use when planning implementation for a PR, ticket, or small feature. User prompts like 'let's plan this', 'can we start a plan', 'think through the implementation'.",
5
5
  "author": {
6
6
  "name": "Orderful",
@@ -1,6 +1,6 @@
1
1
  name: plan
2
2
  description: "Task-scoped planning with portable, structured plans. Use when planning implementation for a PR, ticket, or small feature. User prompts like 'let's plan this', 'can we start a plan', 'think through the implementation'."
3
- version: 0.1.1
3
+ version: 0.1.2
4
4
  status: alpha
5
5
 
6
6
  includes:
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: plan
3
3
  description: "Task-scoped planning with portable, structured plans. Use when planning implementation for a PR, ticket, or small feature. User prompts like 'let's plan this', 'can we start a plan', 'think through the implementation'."
4
+ argument-hint: "[new {topic} | search {topic} | check | ready | implement]"
4
5
  allowed-tools: [Read, Edit, Write, Glob, Grep, Bash, Task, AskUserQuestion]
5
6
  ---
6
7
 
@@ -68,6 +68,13 @@ Tech-design has no configuration of its own. It delegates to:
68
68
  - Iterates with `@droid`/`@user` comments (the @mention is the **target**: `@droid` = user asking AI, `@user` = AI asking user)
69
69
  - Captures the "why" behind choices
70
70
 
71
+ **Comment conventions for async back-and-forth:**
72
+
73
+ | Comment | Author | Target | Meaning |
74
+ | -------------- | ------ | ------ | -------------------------- |
75
+ | `> @droid ...` | User | AI | User asking/telling the AI |
76
+ | `> @user ...` | AI | User | AI asking/telling the user |
77
+
71
78
  3. **Roll-up** = Reviewer artifact
72
79
  - Synthesized from thought doc
73
80
  - Decision-focused, no exploration noise
@@ -79,16 +86,13 @@ Both thought doc and roll-up are published to codex. Research doc stays in brain
79
86
 
80
87
  ## Commands
81
88
 
82
- | Command | Action | Status |
83
- | ------------------------------------------- | -------------------------------------------------------- | ------ |
84
- | `/tech-design start --from codex:{project}` | Create research + thought docs, pull PRD/DESIGN context | v1 |
85
- | `/tech-design draft [section]` | Auto-generate from research doc + codebase exploration | v1 |
86
- | `/tech-design think [topic]` | Guided exploration, updates research doc with findings | v1 |
87
- | `/tech-design gaps` | Checklist of missing/empty sections | v1 |
88
- | `/tech-design publish` | Generate roll-up, publish thought doc + roll-up to codex | v1 |
89
- | `/tech-design critic [persona]` | Multi-persona review with severity scoring | v2 |
90
- | `/tech-design respond {question}` | Author tool: search thought doc to draft reply | v2 |
91
- | `/tech-design ask {question}` | Reviewer tool: search both docs to answer questions | v2 |
89
+ | Command | Action |
90
+ | ------------------------------------------- | -------------------------------------------------------- |
91
+ | `/tech-design start --from codex:{project}` | Create research + thought docs, pull PRD/DESIGN context |
92
+ | `/tech-design draft [section]` | Auto-generate from research doc + codebase exploration |
93
+ | `/tech-design think [topic]` | Guided exploration, updates research doc with findings |
94
+ | `/tech-design gaps` | Checklist of missing/empty sections |
95
+ | `/tech-design publish` | Generate roll-up, publish thought doc + roll-up to codex |
92
96
 
93
97
  ## Conversational Skill Matching
94
98
 
@@ -231,12 +231,13 @@ After approval:
231
231
  - [ ] Add key decisions to DECISIONS.md
232
232
  - [ ] Begin implementation"
233
233
 
234
- # Use codex skill's git-finish-write script
234
+ # Use codex skill's git-finish-write script with needs-review label
235
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" \
239
- --pr-body "$pr_body"
239
+ --pr-body "$pr_body" \
240
+ --labels "needs-review"
240
241
  ```
241
242
 
242
243
  ### 8. Output Success