@orderful/droid 0.44.1 → 0.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/.github/workflows/claude-issue-agent.yml +238 -0
  2. package/CHANGELOG.md +22 -0
  3. package/dist/bin/droid.js +53 -23
  4. package/dist/commands/tui.d.ts.map +1 -1
  5. package/dist/integrations/granola/index.d.ts +6 -0
  6. package/dist/integrations/granola/index.d.ts.map +1 -0
  7. package/dist/integrations/granola/index.ts +28 -0
  8. package/dist/tools/brain/.claude-plugin/plugin.json +1 -1
  9. package/dist/tools/brain/TOOL.yaml +1 -1
  10. package/dist/tools/brain/skills/brain/SKILL.md +6 -0
  11. package/dist/tools/coach/.claude-plugin/plugin.json +1 -1
  12. package/dist/tools/coach/TOOL.yaml +5 -1
  13. package/dist/tools/coach/skills/coach/SKILL.md +31 -5
  14. package/dist/tools/code-review/.claude-plugin/plugin.json +1 -1
  15. package/dist/tools/code-review/TOOL.yaml +1 -1
  16. package/dist/tools/code-review/skills/code-review/SKILL.md +6 -0
  17. package/dist/tools/codex/.claude-plugin/plugin.json +1 -1
  18. package/dist/tools/codex/TOOL.yaml +1 -1
  19. package/dist/tools/codex/skills/codex/SKILL.md +6 -0
  20. package/dist/tools/comments/.claude-plugin/plugin.json +1 -1
  21. package/dist/tools/comments/TOOL.yaml +1 -1
  22. package/dist/tools/comments/skills/comments/SKILL.md +6 -0
  23. package/dist/tools/meeting/.claude-plugin/plugin.json +1 -1
  24. package/dist/tools/meeting/TOOL.yaml +1 -1
  25. package/dist/tools/meeting/skills/meeting/SKILL.md +6 -0
  26. package/dist/tools/plan/.claude-plugin/plugin.json +1 -1
  27. package/dist/tools/plan/TOOL.yaml +1 -1
  28. package/dist/tools/plan/skills/plan/SKILL.md +6 -0
  29. package/dist/tools/project/.claude-plugin/plugin.json +1 -1
  30. package/dist/tools/project/TOOL.yaml +1 -1
  31. package/dist/tools/project/skills/project/SKILL.md +6 -0
  32. package/dist/tools/project/skills/project/references/loading.md +1 -0
  33. package/dist/tools/release/.claude-plugin/plugin.json +1 -1
  34. package/dist/tools/release/TOOL.yaml +1 -1
  35. package/dist/tools/release/skills/release/SKILL.md +7 -0
  36. package/dist/tools/release/skills/release/references/templates.md +22 -0
  37. package/dist/tools/release/skills/release/references/workflows.md +28 -4
  38. package/dist/tools/share/.claude-plugin/plugin.json +1 -1
  39. package/dist/tools/share/TOOL.yaml +1 -1
  40. package/dist/tools/share/skills/share/SKILL.md +6 -0
  41. package/dist/tools/status-update/.claude-plugin/plugin.json +1 -1
  42. package/dist/tools/status-update/TOOL.yaml +1 -1
  43. package/dist/tools/status-update/skills/status-update/SKILL.md +6 -0
  44. package/dist/tools/tech-design/.claude-plugin/plugin.json +1 -1
  45. package/dist/tools/tech-design/TOOL.yaml +1 -1
  46. package/dist/tools/tech-design/skills/tech-design/SKILL.md +6 -0
  47. package/dist/tools/wrapup/.claude-plugin/plugin.json +1 -1
  48. package/dist/tools/wrapup/TOOL.yaml +6 -2
  49. package/dist/tools/wrapup/skills/wrapup/SKILL.md +25 -2
  50. package/dist/tools/wrapup/skills/wrapup/references/output-schema.md +5 -3
  51. package/dist/tools/wrapup/skills/wrapup/references/subagent-prompts.md +54 -13
  52. package/package.json +1 -1
  53. package/src/commands/tui.tsx +11 -0
  54. package/src/integrations/granola/index.ts +28 -0
  55. package/src/tools/brain/.claude-plugin/plugin.json +1 -1
  56. package/src/tools/brain/TOOL.yaml +1 -1
  57. package/src/tools/brain/skills/brain/SKILL.md +6 -0
  58. package/src/tools/coach/.claude-plugin/plugin.json +1 -1
  59. package/src/tools/coach/TOOL.yaml +5 -1
  60. package/src/tools/coach/skills/coach/SKILL.md +31 -5
  61. package/src/tools/code-review/.claude-plugin/plugin.json +1 -1
  62. package/src/tools/code-review/TOOL.yaml +1 -1
  63. package/src/tools/code-review/skills/code-review/SKILL.md +6 -0
  64. package/src/tools/codex/.claude-plugin/plugin.json +1 -1
  65. package/src/tools/codex/TOOL.yaml +1 -1
  66. package/src/tools/codex/skills/codex/SKILL.md +6 -0
  67. package/src/tools/comments/.claude-plugin/plugin.json +1 -1
  68. package/src/tools/comments/TOOL.yaml +1 -1
  69. package/src/tools/comments/skills/comments/SKILL.md +6 -0
  70. package/src/tools/meeting/.claude-plugin/plugin.json +1 -1
  71. package/src/tools/meeting/TOOL.yaml +1 -1
  72. package/src/tools/meeting/skills/meeting/SKILL.md +6 -0
  73. package/src/tools/plan/.claude-plugin/plugin.json +1 -1
  74. package/src/tools/plan/TOOL.yaml +1 -1
  75. package/src/tools/plan/skills/plan/SKILL.md +6 -0
  76. package/src/tools/project/.claude-plugin/plugin.json +1 -1
  77. package/src/tools/project/TOOL.yaml +1 -1
  78. package/src/tools/project/skills/project/SKILL.md +6 -0
  79. package/src/tools/project/skills/project/references/loading.md +1 -0
  80. package/src/tools/release/.claude-plugin/plugin.json +1 -1
  81. package/src/tools/release/TOOL.yaml +1 -1
  82. package/src/tools/release/skills/release/SKILL.md +7 -0
  83. package/src/tools/release/skills/release/references/templates.md +22 -0
  84. package/src/tools/release/skills/release/references/workflows.md +28 -4
  85. package/src/tools/share/.claude-plugin/plugin.json +1 -1
  86. package/src/tools/share/TOOL.yaml +1 -1
  87. package/src/tools/share/skills/share/SKILL.md +6 -0
  88. package/src/tools/status-update/.claude-plugin/plugin.json +1 -1
  89. package/src/tools/status-update/TOOL.yaml +1 -1
  90. package/src/tools/status-update/skills/status-update/SKILL.md +6 -0
  91. package/src/tools/tech-design/.claude-plugin/plugin.json +1 -1
  92. package/src/tools/tech-design/TOOL.yaml +1 -1
  93. package/src/tools/tech-design/skills/tech-design/SKILL.md +6 -0
  94. package/src/tools/wrapup/.claude-plugin/plugin.json +1 -1
  95. package/src/tools/wrapup/TOOL.yaml +6 -2
  96. package/src/tools/wrapup/skills/wrapup/SKILL.md +25 -2
  97. package/src/tools/wrapup/skills/wrapup/references/output-schema.md +5 -3
  98. package/src/tools/wrapup/skills/wrapup/references/subagent-prompts.md +54 -13
@@ -0,0 +1,28 @@
1
+ import { join } from 'path';
2
+ import { homedir } from 'os';
3
+ import { existsSync, readFileSync } from 'fs';
4
+
5
+ /**
6
+ * Check if a Granola MCP server is registered in Claude Code's settings.
7
+ * Returns true if any mcpServers entry key contains "granola" (case-insensitive).
8
+ */
9
+ export function checkGranolaAuth(): boolean {
10
+ try {
11
+ const settingsPath = join(homedir(), '.claude', 'settings.json');
12
+ if (!existsSync(settingsPath)) {
13
+ return false;
14
+ }
15
+
16
+ const raw = readFileSync(settingsPath, 'utf-8');
17
+ const settings = JSON.parse(raw) as Record<string, unknown>;
18
+
19
+ const mcpServers = settings['mcpServers'];
20
+ if (!mcpServers || typeof mcpServers !== 'object') {
21
+ return false;
22
+ }
23
+
24
+ return Object.keys(mcpServers).some((key) => key.toLowerCase().includes('granola'));
25
+ } catch {
26
+ return false;
27
+ }
28
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "droid-brain",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
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,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.4.0
3
+ version: 0.4.1
4
4
  status: beta
5
5
 
6
6
  includes:
@@ -47,6 +47,12 @@ droid config --set tools.brain.brain_dir="{user's choice}"
47
47
 
48
48
  **Overrides:** This skill supports user-defined overrides. See `/droid` skill § Skill Overrides for how to create, register, and use overrides.
49
49
 
50
+ ## Custom Instructions
51
+
52
+ Any command accepts a ` -- {instruction}` suffix. Split on the **first** ` -- ` (space-dash-dash-space): left is the command and its args, right is additional context or instruction to carry through the entire execution.
53
+
54
+ Example: `/brain research caching -- focus on Redis patterns`
55
+
50
56
  ## Commands
51
57
 
52
58
  **Reserved keywords:** `search`, `add`, `check`, `cleanup`, `done`
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "droid-coach",
3
- "version": "0.2.4",
3
+ "version": "0.3.0",
4
4
  "description": "Learning-mode AI assistance - AI as coach, not crutch. Use /coach plan for co-authored planning, /coach scaffold for structure with hints, /coach review for Socratic questions.",
5
5
  "author": {
6
6
  "name": "Orderful",
@@ -1,6 +1,6 @@
1
1
  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
- version: 0.2.4
3
+ version: 0.3.0
4
4
  status: beta
5
5
 
6
6
  includes:
@@ -20,3 +20,7 @@ config_schema:
20
20
  type: string
21
21
  description: "How detailed scaffold hints should be: minimal (signatures only), medium (hints), detailed (pseudocode)"
22
22
  default: "medium"
23
+ coaching_intensity:
24
+ type: string
25
+ description: "How Socratic coaching interactions are: light (1-2 targeted questions, concise), moderate (2-3 questions, brief context), deep (thorough exploration, current behaviour)"
26
+ default: "moderate"
@@ -49,10 +49,11 @@ plan → AI scaffolds → human implements → AI coaches → iterate → ship
49
49
 
50
50
  ## Configuration
51
51
 
52
- | Setting | Default | Description |
53
- | -------------------- | -------- | ------------------------------------------------------- |
54
- | `scaffold_verbosity` | `medium` | How detailed hints are: `minimal`, `medium`, `detailed` |
55
- | `override` | (none) | User-defined behaviour overrides |
52
+ | Setting | Default | Description |
53
+ | --------------------- | ---------- | ------------------------------------------------------------------------------------------------- |
54
+ | `scaffold_verbosity` | `medium` | How detailed hints are: `minimal`, `medium`, `detailed` |
55
+ | `coaching_intensity` | `moderate` | How Socratic interactions are: `light` (1-2 questions, concise), `moderate` (2-3 questions), `deep` (thorough Socratic exploration) |
56
+ | `override` | (none) | User-defined behaviour overrides |
56
57
 
57
58
  **Overrides:** This skill supports user-defined overrides. See `/droid` skill § Skill Overrides.
58
59
 
@@ -62,6 +63,26 @@ plan → AI scaffolds → human implements → AI coaches → iterate → ship
62
63
 
63
64
  Run `droid config --get tools.coach` to get the merged configuration.
64
65
 
66
+ ## Custom Instructions
67
+
68
+ Any command accepts a ` -- {instruction}` suffix. Split on the **first** ` -- ` (space-dash-dash-space): left is the command and its args, right is additional context or instruction to carry through the entire execution.
69
+
70
+ Example: `/coach plan add auth endpoint -- treat me as a junior learning OAuth for the first time`
71
+
72
+ ---
73
+
74
+ ## Output Discipline
75
+
76
+ Before each coaching interaction, read `coaching_intensity` from config (`droid config --get tools.coach`):
77
+
78
+ | Intensity | Questions per turn | Response length |
79
+ | ---------- | ------------------ | --------------------------------------- |
80
+ | `light` | 1–2 targeted | Concise — one short paragraph per point |
81
+ | `moderate` | 2–3 focused | Brief — 3–5 points, context per question (default) |
82
+ | `deep` | 3+ | Thorough — current behaviour |
83
+
84
+ **Regardless of intensity:** Prefer one sharp, well-framed question over three surface-level ones. Limit each response to 3–5 focused points rather than exhaustive lists. Quality of challenge over quantity of questions.
85
+
65
86
  ---
66
87
 
67
88
  ## /coach plan
@@ -70,7 +91,10 @@ Run `droid config --get tools.coach` to get the merged configuration.
70
91
 
71
92
  **Behaviour:**
72
93
 
73
- - Ratio: ~40% proposing, ~60% questioning
94
+ - Proposing/questioning ratio by intensity:
95
+ - `light` — ~60% proposing, ~40% questioning (lead with concrete guidance)
96
+ - `moderate` — ~50% proposing, ~50% questioning (default)
97
+ - `deep` — ~40% proposing, ~60% questioning (current Socratic-heavy behaviour)
74
98
  - Ask questions that probe requirements, edge cases, and design tradeoffs
75
99
  - Propose structure but let human refine
76
100
  - Offer to create a brain doc: "Would you like me to create a brain doc to capture this plan?"
@@ -135,6 +159,7 @@ Run `droid config --get tools.coach` to get the merged configuration.
135
159
  - Add inline `// @{user} {question}` comments using the comments skill pattern
136
160
  - Questions should probe reasoning, not just confirm choices
137
161
  - Focus on: design decisions, edge cases, potential issues, alternatives
162
+ - Question density follows `coaching_intensity`: `light` → 1–2 comments per changed block; `moderate` → 2–3; `deep` → as many as warranted
138
163
 
139
164
  **Example inline comments:**
140
165
 
@@ -179,6 +204,7 @@ Run `droid config --get tools.coach` to get the merged configuration.
179
204
 
180
205
  - Identify alternative approaches the human might not have considered
181
206
  - Use Socratic prompting to guide discovery
207
+ - Question density follows `coaching_intensity`: `light` → 1–2 sharp challenges; `moderate` → 2–3 challenges; `deep` → thorough exploration
182
208
  - Ask questions like:
183
209
  - "What if I told you there's a potential issue here? Can you find it?"
184
210
  - "I can think of another way to implement this. What might it be?"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "droid-code-review",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
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",
@@ -1,6 +1,6 @@
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.2.3
3
+ version: 0.2.4
4
4
  status: alpha
5
5
 
6
6
  includes:
@@ -18,6 +18,12 @@ Code-review has no configuration of its own. Optional integration with other too
18
18
 
19
19
  **Overrides:** This skill supports user-defined overrides. See `/droid` skill § Skill Overrides.
20
20
 
21
+ ## Custom Instructions
22
+
23
+ Any command accepts a ` -- {instruction}` suffix. Split on the **first** ` -- ` (space-dash-dash-space): left is the command and its args, right is additional context or instruction to carry through the entire execution.
24
+
25
+ Example: `/code-review #123 -- pay close attention to SQL injection risks`
26
+
21
27
  ## How It Works
22
28
 
23
29
  The `/code-review` command orchestrates multiple specialized agents in parallel:
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "droid-codex",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
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,6 +1,6 @@
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.0
3
+ version: 0.3.1
4
4
  status: beta
5
5
 
6
6
  includes:
@@ -86,6 +86,12 @@ If prerequisites fail, guide user to fix:
86
86
 
87
87
  **Overrides:** This skill supports user-defined overrides. See `/droid` skill § Skill Overrides.
88
88
 
89
+ ## Custom Instructions
90
+
91
+ Any command accepts a ` -- {instruction}` suffix. Split on the **first** ` -- ` (space-dash-dash-space): left is the command and its args, right is additional context or instruction to carry through the entire execution.
92
+
93
+ Example: `/codex search webhook -- focus on the retry logic patterns`
94
+
89
95
  ## Commands
90
96
 
91
97
  All codex operations follow workflows defined in the codex repo's `.codex/workflows/` folder.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "droid-comments",
3
- "version": "0.3.5",
3
+ "version": "0.3.6",
4
4
  "description": "Enable inline conversations using @droid/@user markers. Tag @droid to ask the AI, AI responds with @{your-name}. Use /comments check to address markers, /comments cleanup to remove resolved threads. Ideal for code review notes and async collaboration.",
5
5
  "author": {
6
6
  "name": "Orderful",
@@ -1,6 +1,6 @@
1
1
  name: comments
2
2
  description: "Enable inline conversations using @droid/@user markers. Tag @droid to ask the AI, AI responds with @{your-name}. Use /comments check to address markers, /comments cleanup to remove resolved threads. Ideal for code review notes and async collaboration."
3
- version: 0.3.5
3
+ version: 0.3.6
4
4
  status: beta
5
5
 
6
6
  includes:
@@ -63,6 +63,12 @@ Think of it like addressing someone in conversation:
63
63
 
64
64
  Inline comments shine for localized questions and actions within a file. For longer back-and-forth discussions in documents, they work great too - just be mindful that very long threads may be better moved to dedicated docs.
65
65
 
66
+ ## Custom Instructions
67
+
68
+ Any command accepts a ` -- {instruction}` suffix. Split on the **first** ` -- ` (space-dash-dash-space): left is the command and its args, right is additional context or instruction to carry through the entire execution.
69
+
70
+ Example: `/comments check -- keep responses brief, we're in a tight review cycle`
71
+
66
72
  ## Context Gathering
67
73
 
68
74
  When you find a `@droid` marker:
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "droid-meeting",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Work with meeting notes, summaries, and transcripts. List recent meetings, search content, generate context-aware summaries, export to codex. Backed by Granola MCP.",
5
5
  "author": {
6
6
  "name": "Orderful",
@@ -1,6 +1,6 @@
1
1
  name: meeting
2
2
  description: "Work with meeting notes, summaries, and transcripts. List recent meetings, search content, generate context-aware summaries, export to codex. Backed by Granola MCP."
3
- version: 0.1.1
3
+ version: 0.1.2
4
4
  status: beta
5
5
 
6
6
  includes:
@@ -35,6 +35,12 @@ If not configured, tell user:
35
35
 
36
36
  If connected, proceed.
37
37
 
38
+ ## Custom Instructions
39
+
40
+ Any command accepts a ` -- {instruction}` suffix. Split on the **first** ` -- ` (space-dash-dash-space): left is the command and its args, right is additional context or instruction to carry through the entire execution. Note: flag-style `--all` uses `--flag` syntax (no surrounding spaces) and is distinct from this separator.
41
+
42
+ Example: `/meeting search partner testing review -- extract action items only`
43
+
38
44
  ## Commands
39
45
 
40
46
  | Command | Action |
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "droid-plan",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
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.4
3
+ version: 0.1.5
4
4
  status: alpha
5
5
 
6
6
  includes:
@@ -30,6 +30,12 @@ Uses config from dependencies:
30
30
 
31
31
  **Overrides:** This skill supports user-defined overrides. See `/droid` skill § Skill Overrides.
32
32
 
33
+ ## Custom Instructions
34
+
35
+ Any command accepts a ` -- {instruction}` suffix. Split on the **first** ` -- ` (space-dash-dash-space): left is the command and its args, right is additional context or instruction to carry through the entire execution.
36
+
37
+ Example: `/plan new auth-refactor -- we must stay backward compatible with v1 clients`
38
+
33
39
  ## Commands
34
40
 
35
41
  | Command | Action |
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "droid-project",
3
- "version": "0.3.4",
3
+ "version": "0.3.6",
4
4
  "description": "Manage project context files for persistent AI memory across sessions. Load, update, or create project context before working on multi-session features.",
5
5
  "author": {
6
6
  "name": "Orderful",
@@ -1,6 +1,6 @@
1
1
  name: project
2
2
  description: "Manage project context files for persistent AI memory across sessions. Load, update, or create project context before working on multi-session features."
3
- version: 0.3.4
3
+ version: 0.3.6
4
4
  status: beta
5
5
 
6
6
  includes:
@@ -36,6 +36,12 @@ Chat history disappears. Projects persist.
36
36
 
37
37
  **Overrides:** This skill supports user-defined overrides. See `/droid` skill § Skill Overrides.
38
38
 
39
+ ## Custom Instructions
40
+
41
+ Any command accepts a ` -- {instruction}` suffix. Split on the **first** ` -- ` (space-dash-dash-space): left is the command and its args, right is additional context or instruction to carry through the entire execution.
42
+
43
+ Example: `/project search droid -- show me what changed last week`
44
+
39
45
  If `projects_dir` is not configured, inform the user they need to set it up:
40
46
  ```bash
41
47
  mkdir -p ~/.droid/skills/project
@@ -32,6 +32,7 @@
32
32
  - Confirm which project was loaded
33
33
  - Summarize key context (2-3 sentences)
34
34
  - Use project contents for all subsequent work in the session
35
+ - **Do NOT read CHANGELOG.md** — it exists for on-demand lookup only. PROJECT.md already references it; that is enough context.
35
36
 
36
37
  7. **If `-- {instruction}` provided:** Execute the follow-up instruction against the loaded project
37
38
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "droid-release",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Release ceremony automation — create release PRs, check status, notify Slack.",
5
5
  "author": {
6
6
  "name": "Orderful",
@@ -1,6 +1,6 @@
1
1
  name: release
2
2
  description: "Release ceremony automation — create release PRs, check status, notify Slack."
3
- version: 0.2.0
3
+ version: 0.2.2
4
4
  status: alpha
5
5
 
6
6
  includes:
@@ -45,6 +45,12 @@ droid config --get repos
45
45
  If no repos have `release_branch` set, tell user:
46
46
  > "No release repos configured. Run `droid repos add` and set a release branch to get started."
47
47
 
48
+ ## Custom Instructions
49
+
50
+ Any command accepts a ` -- {instruction}` suffix. Split on the **first** ` -- ` (space-dash-dash-space): left is the command and its args, right is additional context or instruction to carry through the entire execution. Note: flag-style `--no-lock` uses `--flag` syntax (no surrounding spaces) and is distinct from this separator.
51
+
52
+ Example: `/release start -- notify #releases-eng channel instead of the default`
53
+
48
54
  ## Commands
49
55
 
50
56
  | Command | Action |
@@ -78,3 +84,4 @@ See `references/templates.md` for Slack message and PR body templates.
78
84
  | Branch already locked | Warn user, offer to unlock first |
79
85
  | Release PR already exists | Show existing PR, ask if user wants to proceed |
80
86
  | CI checks failing | Show status, do not auto-merge |
87
+ | High-risk label present at merge | Show extra confirmation prompt before standard merge confirmation; do not auto-skip |
@@ -23,6 +23,13 @@ Posted with :droid:
23
23
 
24
24
  If `--no-lock` was used, omit the lock line.
25
25
 
26
+ If `HIGH_RISK_PRS` is non-empty, append the following block after `{pr_summary}` (before `Posted with :droid:`):
27
+ ```
28
+ ⚠️ *High-risk PRs:*
29
+ - <{pr_url}|#{number}> {title} (@{author})
30
+ ```
31
+ (one line per high-risk PR)
32
+
26
33
  Risk emojis:
27
34
  - Low Risk: `:large_green_circle:`
28
35
  - High Risk: `:warning:`
@@ -103,6 +110,16 @@ Where `{pr_list}` is a bulleted list of merged PRs:
103
110
  - #{number} {title} (@{author})
104
111
  ```
105
112
 
113
+ If `HIGH_RISK_PRS` is non-empty, insert the following section between `{pr_list}` and the `---` divider:
114
+ ```markdown
115
+ ### ⚠️ High-Risk PRs
116
+
117
+ The following PRs in this release are labelled `high-risk`. Coordinate with the authors before deploying.
118
+
119
+ - #{number} {title} (@{author})
120
+ ```
121
+ (one line per high-risk PR)
122
+
106
123
  ---
107
124
 
108
125
  ## Terminal Fallback
@@ -120,6 +137,11 @@ Release open for review — {repo_name}
120
137
 
121
138
  If `--no-lock` was used, omit the Lock line.
122
139
 
140
+ If `HIGH_RISK_PRS` is non-empty, append:
141
+ ```
142
+ ⚠️ High-risk PRs: #{number} {title} (@{author}), ...
143
+ ```
144
+
123
145
  ### Release Merged (terminal)
124
146
  ```
125
147
  Release merged — {repo_name}
@@ -46,10 +46,21 @@ Create a release PR, auto-lock the release branch, and notify Slack.
46
46
  # Get commits in release_branch that aren't in production_branch
47
47
  gh api repos/{owner}/{repo}/compare/{production_branch}...{release_branch} --jq '.commits[].commit.message'
48
48
  ```
49
- Extract PR numbers from commit messages (e.g. `(#1234)`) and format as a bulleted list for the PR body.
49
+ Extract PR numbers from commit messages (e.g. `(#1234)`). For each extracted PR number, fetch metadata including labels:
50
+ ```bash
51
+ gh pr view {pr_number} --json number,title,author,labels --repo {owner}/{repo}
52
+ ```
53
+ Build the PR list for the body from the results. Collect `HIGH_RISK_PRS` — an array of `{number, title, author}` for any PR whose `labels` array includes an entry with `name: "high-risk"`.
50
54
 
51
55
  **Do NOT use** `gh pr list --base {release_branch} --state merged` — that returns ALL historically merged PRs, not just the ones since the last release.
52
56
 
57
+ 3.5. **Warn if high-risk PRs found** — if `HIGH_RISK_PRS` is non-empty, print a terminal warning:
58
+ ```
59
+ ⚠️ {n} high-risk PR(s) detected in this release:
60
+ - #{number} {title} (@{author})
61
+ ...
62
+ ```
63
+
53
64
  4. **Ask risk level** — use AskUserQuestion:
54
65
  - Low Risk (routine release, no breaking changes)
55
66
  - High Risk (breaking changes, data migrations, or high-traffic feature)
@@ -64,6 +75,11 @@ Create a release PR, auto-lock the release branch, and notify Slack.
64
75
  --body "{release_pr_body}" \
65
76
  --repo {owner}/{repo}
66
77
  ```
78
+ If `HIGH_RISK_PRS` is non-empty, also add `--label "high-risk"` to the command above. If the `high-risk` label does not exist on the repo, `gh pr create` will fail — in that case, retry without `--label "high-risk"` and warn the user:
79
+ ```
80
+ ⚠️ Could not apply 'high-risk' label — label does not exist on {repo_name}. Create it in GitHub Labels settings, then add it manually to PR #{number}.
81
+ ```
82
+
67
83
  See `templates.md` for the PR body template.
68
84
 
69
85
  6. **Auto-lock branch** (unless `--no-lock`):
@@ -105,7 +121,7 @@ Merge the release PR if all checks are green, then notify Slack.
105
121
 
106
122
  2. **Find the open release PR:**
107
123
  ```bash
108
- gh pr list --search "[RELEASE]" --state open --base {production_branch} --head {release_branch} --json number,title,url,statusCheckRollup --repo {owner}/{repo}
124
+ gh pr list --search "[RELEASE]" --state open --base {production_branch} --head {release_branch} --json number,title,url,statusCheckRollup,labels --repo {owner}/{repo}
109
125
  ```
110
126
  If no open release PR found, error: "No open release PR found. Run `/release start` first."
111
127
 
@@ -115,7 +131,10 @@ Merge the release PR if all checks are green, then notify Slack.
115
131
  If any checks are pending: "CI checks are still running on PR #{number}. Wait for them to finish."
116
132
  If any checks are failing: "CI checks are failing on PR #{number}. Fix them before merging." Show the failing checks.
117
133
 
118
- 4. **Confirm with user** — use AskUserQuestion:
134
+ 4. **Confirm with user** — if the release PR's `labels` includes `"high-risk"`, first show an extra AskUserQuestion confirmation:
135
+ "⚠️ This release includes high-risk PRs. Confirm you have coordinated with the contributors and are ready to proceed."
136
+
137
+ Then (regardless of high-risk) show the standard AskUserQuestion:
119
138
  "All checks are green on PR #{number}. Merge `{release_branch}` → `{production_branch}`?"
120
139
 
121
140
  5. **Merge the PR:**
@@ -216,7 +235,7 @@ Check release status across all configured release repos.
216
235
 
217
236
  **Open release PRs:**
218
237
  ```bash
219
- gh pr list --search "[RELEASE]" --state open --json number,title,url,statusCheckRollup --repo {owner}/{repo}
238
+ gh pr list --search "[RELEASE]" --state open --json number,title,url,statusCheckRollup,labels --repo {owner}/{repo}
220
239
  ```
221
240
 
222
241
  **Lock state:**
@@ -232,6 +251,11 @@ Check release status across all configured release repos.
232
251
  Branch lock: {release_branch} — locked/unlocked
233
252
  ```
234
253
 
254
+ If the release PR's `labels` includes `"high-risk"`, append to the repo's status block:
255
+ ```
256
+ ⚠️ High-risk PRs included
257
+ ```
258
+
235
259
  If no open release PR: "No active release"
236
260
  If no release repos configured: "No release repos configured"
237
261
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "droid-share",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Share content to external platforms. Publish docs to Confluence or post summaries to Slack.",
5
5
  "author": {
6
6
  "name": "Orderful",
@@ -1,6 +1,6 @@
1
1
  name: share
2
2
  description: "Share content to external platforms. Publish docs to Confluence or post summaries to Slack."
3
- version: 0.1.0
3
+ version: 0.1.1
4
4
  status: beta
5
5
 
6
6
  includes:
@@ -26,6 +26,12 @@ Share content to external platforms. Two modes:
26
26
  | Confluence | Atlassian MCP (`mcp__claude_ai_Atlassian__*`) | Publish document as page |
27
27
  | Slack | `droid integrations slack post` | Process + post message |
28
28
 
29
+ ## Custom Instructions
30
+
31
+ Any command accepts a ` -- {instruction}` suffix. Split on the **first** ` -- ` (space-dash-dash-space): left is the command and its args, right is additional context or instruction to carry through the entire execution. For the Slack flow specifically, the `--` instruction becomes the formatting directive (step S3).
32
+
33
+ Example: `/share slack #eng -- summarise the action items and tag owners`
34
+
29
35
  ## Procedure
30
36
 
31
37
  ### 1. Resolve Platform
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "droid-status-update",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "description": "Generate and post project status updates. Aggregates context from codex projects, Jira epics, and manual input. Posts to Slack or prints to terminal.",
5
5
  "author": {
6
6
  "name": "Orderful",
@@ -1,6 +1,6 @@
1
1
  name: status-update
2
2
  description: "Generate and post project status updates. Aggregates context from codex projects, Jira epics, and manual input. Posts to Slack or prints to terminal."
3
- version: 0.2.1
3
+ version: 0.2.2
4
4
  status: beta
5
5
 
6
6
  includes:
@@ -30,6 +30,12 @@ Generate formatted project status updates from multiple sources and post to Slac
30
30
  |-------------|----------------|----------|
31
31
  | **Slack** | If slack.channel configured + SLACK_USER_TOKEN set | Print to terminal |
32
32
 
33
+ ## Custom Instructions
34
+
35
+ Any command accepts a ` -- {instruction}` suffix. Split on the **first** ` -- ` (space-dash-dash-space): left is the command and its args, right is additional context or instruction to carry through the entire execution.
36
+
37
+ Example: `/status-update droid -- emphasise the auth refactor milestone we shipped`
38
+
33
39
  ## Procedure
34
40
 
35
41
  ### 1. Resolve Project Context
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "droid-tech-design",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Technical design authoring tool for engineers. Create structured tech design docs with /tech-design start, iterate in brain, publish to codex. Three-document approach: research doc (codebase discoveries) + thought doc (design workspace) + roll-up (clean summary for review).",
5
5
  "author": {
6
6
  "name": "Orderful",
@@ -1,6 +1,6 @@
1
1
  name: tech-design
2
2
  description: "Technical design authoring tool for engineers. Create structured tech design docs with /tech-design start, iterate in brain, publish to codex. Three-document approach: research doc (codebase discoveries) + thought doc (design workspace) + roll-up (clean summary for review)."
3
- version: 0.3.0
3
+ version: 0.3.1
4
4
  status: beta
5
5
 
6
6
  includes:
@@ -47,6 +47,12 @@ Tech-design has no configuration of its own. It delegates to:
47
47
 
48
48
  **Overrides:** This skill supports user-defined overrides. See `/droid` skill § Skill Overrides.
49
49
 
50
+ ## Custom Instructions
51
+
52
+ Any command accepts a ` -- {instruction}` suffix. Split on the **first** ` -- ` (space-dash-dash-space): left is the command and its args, right is additional context or instruction to carry through the entire execution. Note: flag-style `--from` and similar flags use `--flag` syntax (no surrounding spaces) and are distinct from this separator.
53
+
54
+ Example: `/tech-design draft rollout -- keep it concise, we have limited Ops bandwidth`
55
+
50
56
  ## Four-Document Approach
51
57
 
52
58
  | Document | Created When | Purpose | Location | Audience | Length |
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "droid-wrapup",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "Session wrap-up that captures decisions, learnings, and open items to persistent docs.",
5
5
  "author": {
6
6
  "name": "Orderful",