devflow-kit 1.3.3 → 1.4.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 (28) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/package.json +1 -1
  3. package/plugins/devflow-accessibility/.claude-plugin/plugin.json +2 -3
  4. package/plugins/devflow-ambient/.claude-plugin/plugin.json +4 -1
  5. package/plugins/devflow-audit-claude/.claude-plugin/plugin.json +4 -1
  6. package/plugins/devflow-code-review/.claude-plugin/plugin.json +2 -3
  7. package/plugins/devflow-code-review/agents/git.md +13 -8
  8. package/plugins/devflow-code-review/commands/code-review-teams.md +4 -4
  9. package/plugins/devflow-code-review/commands/code-review.md +4 -4
  10. package/plugins/devflow-core-skills/.claude-plugin/plugin.json +2 -3
  11. package/plugins/devflow-debug/.claude-plugin/plugin.json +2 -3
  12. package/plugins/devflow-debug/agents/git.md +13 -8
  13. package/plugins/devflow-frontend-design/.claude-plugin/plugin.json +2 -3
  14. package/plugins/devflow-go/.claude-plugin/plugin.json +2 -3
  15. package/plugins/devflow-implement/.claude-plugin/plugin.json +2 -3
  16. package/plugins/devflow-implement/agents/git.md +13 -8
  17. package/plugins/devflow-implement/commands/implement-teams.md +5 -6
  18. package/plugins/devflow-implement/commands/implement.md +5 -6
  19. package/plugins/devflow-java/.claude-plugin/plugin.json +2 -3
  20. package/plugins/devflow-python/.claude-plugin/plugin.json +2 -3
  21. package/plugins/devflow-react/.claude-plugin/plugin.json +2 -3
  22. package/plugins/devflow-resolve/.claude-plugin/plugin.json +2 -3
  23. package/plugins/devflow-resolve/agents/git.md +13 -8
  24. package/plugins/devflow-rust/.claude-plugin/plugin.json +2 -3
  25. package/plugins/devflow-self-review/.claude-plugin/plugin.json +4 -1
  26. package/plugins/devflow-specify/.claude-plugin/plugin.json +2 -3
  27. package/plugins/devflow-typescript/.claude-plugin/plugin.json +2 -3
  28. package/shared/agents/git.md +13 -8
package/CHANGELOG.md CHANGED
@@ -5,6 +5,19 @@ All notable changes to DevFlow will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.4.0] - 2026-03-09
9
+
10
+ ### Added
11
+ - **Smart branch naming** — `/implement #42` auto-derives branch names from issue labels and title (e.g., `feature/42-add-jwt-auth`); free-text tasks infer type from keywords (e.g., `/implement fix login bug` → `fix/login-bug`)
12
+
13
+ ### Fixed
14
+ - **Code review file detection** — Corrected file detection and skill check logic in `/code-review`
15
+
16
+ ### Changed
17
+ - **Author standardization** — Unified author name to Dean0x across marketplace and plugin manifests
18
+
19
+ ---
20
+
8
21
  ## [1.3.3] - 2026-03-09
9
22
 
10
23
  ### Changed
@@ -840,6 +853,7 @@ devflow init
840
853
 
841
854
  ---
842
855
 
856
+ [1.4.0]: https://github.com/dean0x/devflow/compare/v1.3.3...v1.4.0
843
857
  [1.3.3]: https://github.com/dean0x/devflow/compare/v1.3.2...v1.3.3
844
858
  [1.3.2]: https://github.com/dean0x/devflow/compare/v1.3.1...v1.3.2
845
859
  [1.3.1]: https://github.com/dean0x/devflow/compare/v1.3.0...v1.3.1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devflow-kit",
3
- "version": "1.3.3",
3
+ "version": "1.4.0",
4
4
  "description": "Agentic Development Toolkit for Claude Code - Enhance AI-assisted development with intelligent commands and workflows",
5
5
  "type": "module",
6
6
  "bin": {
@@ -2,10 +2,9 @@
2
2
  "name": "devflow-accessibility",
3
3
  "description": "Web accessibility patterns - WCAG compliance, ARIA roles, keyboard navigation, focus management",
4
4
  "author": {
5
- "name": "DevFlow Contributors",
6
- "email": "dean@keren.dev"
5
+ "name": "Dean0x"
7
6
  },
8
- "version": "1.3.3",
7
+ "version": "1.4.0",
9
8
  "homepage": "https://github.com/dean0x/devflow",
10
9
  "repository": "https://github.com/dean0x/devflow",
11
10
  "license": "MIT",
@@ -1,7 +1,10 @@
1
1
  {
2
2
  "name": "devflow-ambient",
3
3
  "description": "Ambient mode — auto-loads relevant skills for every prompt",
4
- "version": "1.3.3",
4
+ "author": {
5
+ "name": "Dean0x"
6
+ },
7
+ "version": "1.4.0",
5
8
  "agents": [],
6
9
  "skills": [
7
10
  "ambient-router"
@@ -1,7 +1,10 @@
1
1
  {
2
2
  "name": "devflow-audit-claude",
3
3
  "description": "Audit CLAUDE.md files against Anthropic best practices",
4
- "version": "1.3.3",
4
+ "author": {
5
+ "name": "Dean0x"
6
+ },
7
+ "version": "1.4.0",
5
8
  "agents": [],
6
9
  "skills": []
7
10
  }
@@ -2,10 +2,9 @@
2
2
  "name": "devflow-code-review",
3
3
  "description": "Comprehensive code review with parallel specialized agents covering security, architecture, performance, and more",
4
4
  "author": {
5
- "name": "DevFlow Contributors",
6
- "email": "dean@keren.dev"
5
+ "name": "Dean0x"
7
6
  },
8
- "version": "1.3.3",
7
+ "version": "1.4.0",
9
8
  "homepage": "https://github.com/dean0x/devflow",
10
9
  "repository": "https://github.com/dean0x/devflow",
11
10
  "license": "MIT",
@@ -21,7 +21,7 @@ The orchestrator provides:
21
21
  |-----------|---------|----------------|
22
22
  | `ensure-pr-ready` | Pre-flight for /review: commit, push, create PR | - |
23
23
  | `validate-branch` | Pre-flight for /resolve: check branch state | - |
24
- | `setup-task` | Create feature branch and fetch issue | `TASK_ID`, `BASE_BRANCH`, `ISSUE_INPUT` (optional) |
24
+ | `setup-task` | Create feature branch and fetch issue | `BASE_BRANCH`, `ISSUE_INPUT` (optional), `TASK_DESCRIPTION` (optional) |
25
25
  | `fetch-issue` | Fetch GitHub issue for implementation | `ISSUE_INPUT` (number or search term) |
26
26
  | `comment-pr` | Create PR inline comments for review findings | `PR_NUMBER`, `REVIEW_BASE_DIR`, `TIMESTAMP` |
27
27
  | `manage-debt` | Update tech debt backlog with pre-existing issues | `REVIEW_DIR`, `TIMESTAMP` |
@@ -101,25 +101,30 @@ Pre-flight validation for `/resolve`. Checks branch state without modifications.
101
101
 
102
102
  ## Operation: setup-task
103
103
 
104
- Set up task environment: create feature branch and optionally fetch issue.
104
+ Set up task environment: derive branch name, create feature branch, and optionally fetch issue.
105
105
 
106
106
  **Input:**
107
- - `TASK_ID`: Unique task identifier (becomes branch name)
108
107
  - `BASE_BRANCH`: Branch to create from (track this for PR target)
109
108
  - `ISSUE_INPUT` (optional): Issue number to fetch
109
+ - `TASK_DESCRIPTION` (optional): Free-text task description (when no issue)
110
110
 
111
111
  **Process:**
112
112
  1. Record current branch as BASE_BRANCH for later PR targeting
113
- 2. Create and checkout feature branch: `git checkout -b {TASK_ID}`
114
- 3. If ISSUE_INPUT provided, fetch issue details via GitHub API
115
- 4. Return setup summary with BASE_BRANCH recorded
113
+ 2. **Derive branch name:**
114
+ - If `ISSUE_INPUT` provided: fetch issue via GitHub API first, then derive branch name as `{type}/{number}-{slug}` where:
115
+ - `type` is inferred from issue labels: `bug` → `fix`, `documentation` or `docs` → `docs`, `refactor` → `refactor`, `chore` or `maintenance` → `chore`, default → `feature`
116
+ - `slug` is the issue title: lowercased, non-alphanumeric replaced with hyphens, consecutive hyphens collapsed, trimmed, max 40 characters
117
+ - If `TASK_DESCRIPTION` provided (no issue): infer type from description keywords (e.g., "fix login bug" → `fix`, "refactor auth" → `refactor`, "add JWT" → `feature`, "update docs" → `docs`, "chore: cleanup" → `chore`), then slugify description as `{type}/{slug}` (max 40 chars)
118
+ - If neither: fallback to `task-{YYYY-MM-DD_HHMM}`
119
+ 3. Create and checkout feature branch: `git checkout -b {derived-branch-name}`
120
+ 4. Return setup summary with branch name and BASE_BRANCH recorded
116
121
 
117
122
  **Output:**
118
123
  ```markdown
119
- ## Task Setup: {TASK_ID}
124
+ ## Task Setup: {branch-name}
120
125
 
121
126
  ### Branch
122
- - **Feature branch**: {TASK_ID}
127
+ - **Branch name**: {derived-branch-name}
123
128
  - **Base branch**: {BASE_BRANCH} (PR target)
124
129
 
125
130
  ### Issue (if fetched)
@@ -38,9 +38,9 @@ Detect file types in diff to determine conditional reviews:
38
38
 
39
39
  | Condition | Adds Perspective |
40
40
  |-----------|-----------------|
41
- | .ts/.tsx files | typescript |
42
- | .tsx/.jsx files | react |
43
- | .tsx/.jsx files | accessibility |
41
+ | Any .ts or .tsx files | typescript |
42
+ | .tsx or .jsx files (React components) | react |
43
+ | .tsx or .jsx files (React components) | accessibility |
44
44
  | .tsx/.jsx/.css/.scss files | frontend-design |
45
45
  | .go files | go |
46
46
  | .java files | java |
@@ -50,7 +50,7 @@ Detect file types in diff to determine conditional reviews:
50
50
  | Dependency files changed | dependencies |
51
51
  | Docs or significant code | documentation |
52
52
 
53
- **Skill availability check**: Language/ecosystem reviews (typescript, react, accessibility, frontend-design, go, java, python, rust) require their optional skill plugin to be installed. Before adding a conditional perspective, check if `~/.claude/skills/{focus}/SKILL.md` exists (use Glob). If the skill file doesn't exist, **skip that perspective** — the language plugin isn't installed. Non-language reviews (database, dependencies, documentation) use skills bundled with this plugin and are always available.
53
+ **Skill availability check**: Language/ecosystem reviews (typescript, react, accessibility, frontend-design, go, java, python, rust) require their optional skill plugin to be installed. Before adding a conditional perspective, use Read to check if `~/.claude/skills/{focus}/SKILL.md` exists. If Read returns an error (file not found), **skip that perspective** — the language plugin isn't installed. Non-language reviews (database, dependencies, documentation) use skills bundled with this plugin and are always available.
54
54
 
55
55
  ### Phase 2: Spawn Review Team
56
56
 
@@ -38,9 +38,9 @@ Detect file types in diff to determine conditional reviews:
38
38
 
39
39
  | Condition | Adds Review |
40
40
  |-----------|-------------|
41
- | .ts/.tsx files | typescript |
42
- | .tsx/.jsx files | react |
43
- | .tsx/.jsx files | accessibility |
41
+ | Any .ts or .tsx files | typescript |
42
+ | .tsx or .jsx files (React components) | react |
43
+ | .tsx or .jsx files (React components) | accessibility |
44
44
  | .tsx/.jsx/.css/.scss files | frontend-design |
45
45
  | .go files | go |
46
46
  | .java files | java |
@@ -50,7 +50,7 @@ Detect file types in diff to determine conditional reviews:
50
50
  | Dependency files changed | dependencies |
51
51
  | Docs or significant code | documentation |
52
52
 
53
- **Skill availability check**: Language/ecosystem reviews (typescript, react, accessibility, frontend-design, go, java, python, rust) require their optional skill plugin to be installed. Before spawning a conditional Reviewer for these focuses, check if `~/.claude/skills/{focus}/SKILL.md` exists (use Glob). If the skill file doesn't exist, **skip that review** — the language plugin isn't installed. Non-language reviews (database, dependencies, documentation) use skills bundled with this plugin and are always available.
53
+ **Skill availability check**: Language/ecosystem reviews (typescript, react, accessibility, frontend-design, go, java, python, rust) require their optional skill plugin to be installed. Before spawning a conditional Reviewer for these focuses, use Read to check if `~/.claude/skills/{focus}/SKILL.md` exists. If Read returns an error (file not found), **skip that review** — the language plugin isn't installed. Non-language reviews (database, dependencies, documentation) use skills bundled with this plugin and are always available.
54
54
 
55
55
  ### Phase 2: Run Reviews (Parallel)
56
56
 
@@ -2,10 +2,9 @@
2
2
  "name": "devflow-core-skills",
3
3
  "description": "Auto-activating quality enforcement skills - foundation layer for all DevFlow plugins",
4
4
  "author": {
5
- "name": "DevFlow Contributors",
6
- "email": "dean@keren.dev"
5
+ "name": "Dean0x"
7
6
  },
8
- "version": "1.3.3",
7
+ "version": "1.4.0",
9
8
  "homepage": "https://github.com/dean0x/devflow",
10
9
  "repository": "https://github.com/dean0x/devflow",
11
10
  "license": "MIT",
@@ -2,10 +2,9 @@
2
2
  "name": "devflow-debug",
3
3
  "description": "Debugging workflows with competing hypothesis investigation using agent teams",
4
4
  "author": {
5
- "name": "DevFlow Contributors",
6
- "email": "dean@keren.dev"
5
+ "name": "Dean0x"
7
6
  },
8
- "version": "1.3.3",
7
+ "version": "1.4.0",
9
8
  "homepage": "https://github.com/dean0x/devflow",
10
9
  "repository": "https://github.com/dean0x/devflow",
11
10
  "license": "MIT",
@@ -21,7 +21,7 @@ The orchestrator provides:
21
21
  |-----------|---------|----------------|
22
22
  | `ensure-pr-ready` | Pre-flight for /review: commit, push, create PR | - |
23
23
  | `validate-branch` | Pre-flight for /resolve: check branch state | - |
24
- | `setup-task` | Create feature branch and fetch issue | `TASK_ID`, `BASE_BRANCH`, `ISSUE_INPUT` (optional) |
24
+ | `setup-task` | Create feature branch and fetch issue | `BASE_BRANCH`, `ISSUE_INPUT` (optional), `TASK_DESCRIPTION` (optional) |
25
25
  | `fetch-issue` | Fetch GitHub issue for implementation | `ISSUE_INPUT` (number or search term) |
26
26
  | `comment-pr` | Create PR inline comments for review findings | `PR_NUMBER`, `REVIEW_BASE_DIR`, `TIMESTAMP` |
27
27
  | `manage-debt` | Update tech debt backlog with pre-existing issues | `REVIEW_DIR`, `TIMESTAMP` |
@@ -101,25 +101,30 @@ Pre-flight validation for `/resolve`. Checks branch state without modifications.
101
101
 
102
102
  ## Operation: setup-task
103
103
 
104
- Set up task environment: create feature branch and optionally fetch issue.
104
+ Set up task environment: derive branch name, create feature branch, and optionally fetch issue.
105
105
 
106
106
  **Input:**
107
- - `TASK_ID`: Unique task identifier (becomes branch name)
108
107
  - `BASE_BRANCH`: Branch to create from (track this for PR target)
109
108
  - `ISSUE_INPUT` (optional): Issue number to fetch
109
+ - `TASK_DESCRIPTION` (optional): Free-text task description (when no issue)
110
110
 
111
111
  **Process:**
112
112
  1. Record current branch as BASE_BRANCH for later PR targeting
113
- 2. Create and checkout feature branch: `git checkout -b {TASK_ID}`
114
- 3. If ISSUE_INPUT provided, fetch issue details via GitHub API
115
- 4. Return setup summary with BASE_BRANCH recorded
113
+ 2. **Derive branch name:**
114
+ - If `ISSUE_INPUT` provided: fetch issue via GitHub API first, then derive branch name as `{type}/{number}-{slug}` where:
115
+ - `type` is inferred from issue labels: `bug` → `fix`, `documentation` or `docs` → `docs`, `refactor` → `refactor`, `chore` or `maintenance` → `chore`, default → `feature`
116
+ - `slug` is the issue title: lowercased, non-alphanumeric replaced with hyphens, consecutive hyphens collapsed, trimmed, max 40 characters
117
+ - If `TASK_DESCRIPTION` provided (no issue): infer type from description keywords (e.g., "fix login bug" → `fix`, "refactor auth" → `refactor`, "add JWT" → `feature`, "update docs" → `docs`, "chore: cleanup" → `chore`), then slugify description as `{type}/{slug}` (max 40 chars)
118
+ - If neither: fallback to `task-{YYYY-MM-DD_HHMM}`
119
+ 3. Create and checkout feature branch: `git checkout -b {derived-branch-name}`
120
+ 4. Return setup summary with branch name and BASE_BRANCH recorded
116
121
 
117
122
  **Output:**
118
123
  ```markdown
119
- ## Task Setup: {TASK_ID}
124
+ ## Task Setup: {branch-name}
120
125
 
121
126
  ### Branch
122
- - **Feature branch**: {TASK_ID}
127
+ - **Branch name**: {derived-branch-name}
123
128
  - **Base branch**: {BASE_BRANCH} (PR target)
124
129
 
125
130
  ### Issue (if fetched)
@@ -2,10 +2,9 @@
2
2
  "name": "devflow-frontend-design",
3
3
  "description": "Frontend design patterns - typography, color systems, spacing, motion, responsive design",
4
4
  "author": {
5
- "name": "DevFlow Contributors",
6
- "email": "dean@keren.dev"
5
+ "name": "Dean0x"
7
6
  },
8
- "version": "1.3.3",
7
+ "version": "1.4.0",
9
8
  "homepage": "https://github.com/dean0x/devflow",
10
9
  "repository": "https://github.com/dean0x/devflow",
11
10
  "license": "MIT",
@@ -2,10 +2,9 @@
2
2
  "name": "devflow-go",
3
3
  "description": "Go language patterns - error handling, interfaces, concurrency, package design",
4
4
  "author": {
5
- "name": "DevFlow Contributors",
6
- "email": "dean@keren.dev"
5
+ "name": "Dean0x"
7
6
  },
8
- "version": "1.3.3",
7
+ "version": "1.4.0",
9
8
  "homepage": "https://github.com/dean0x/devflow",
10
9
  "repository": "https://github.com/dean0x/devflow",
11
10
  "license": "MIT",
@@ -2,10 +2,9 @@
2
2
  "name": "devflow-implement",
3
3
  "description": "Complete task implementation workflow - orchestrates exploration, planning, coding, validation, and PR creation",
4
4
  "author": {
5
- "name": "DevFlow Contributors",
6
- "email": "dean@keren.dev"
5
+ "name": "Dean0x"
7
6
  },
8
- "version": "1.3.3",
7
+ "version": "1.4.0",
9
8
  "homepage": "https://github.com/dean0x/devflow",
10
9
  "repository": "https://github.com/dean0x/devflow",
11
10
  "license": "MIT",
@@ -21,7 +21,7 @@ The orchestrator provides:
21
21
  |-----------|---------|----------------|
22
22
  | `ensure-pr-ready` | Pre-flight for /review: commit, push, create PR | - |
23
23
  | `validate-branch` | Pre-flight for /resolve: check branch state | - |
24
- | `setup-task` | Create feature branch and fetch issue | `TASK_ID`, `BASE_BRANCH`, `ISSUE_INPUT` (optional) |
24
+ | `setup-task` | Create feature branch and fetch issue | `BASE_BRANCH`, `ISSUE_INPUT` (optional), `TASK_DESCRIPTION` (optional) |
25
25
  | `fetch-issue` | Fetch GitHub issue for implementation | `ISSUE_INPUT` (number or search term) |
26
26
  | `comment-pr` | Create PR inline comments for review findings | `PR_NUMBER`, `REVIEW_BASE_DIR`, `TIMESTAMP` |
27
27
  | `manage-debt` | Update tech debt backlog with pre-existing issues | `REVIEW_DIR`, `TIMESTAMP` |
@@ -101,25 +101,30 @@ Pre-flight validation for `/resolve`. Checks branch state without modifications.
101
101
 
102
102
  ## Operation: setup-task
103
103
 
104
- Set up task environment: create feature branch and optionally fetch issue.
104
+ Set up task environment: derive branch name, create feature branch, and optionally fetch issue.
105
105
 
106
106
  **Input:**
107
- - `TASK_ID`: Unique task identifier (becomes branch name)
108
107
  - `BASE_BRANCH`: Branch to create from (track this for PR target)
109
108
  - `ISSUE_INPUT` (optional): Issue number to fetch
109
+ - `TASK_DESCRIPTION` (optional): Free-text task description (when no issue)
110
110
 
111
111
  **Process:**
112
112
  1. Record current branch as BASE_BRANCH for later PR targeting
113
- 2. Create and checkout feature branch: `git checkout -b {TASK_ID}`
114
- 3. If ISSUE_INPUT provided, fetch issue details via GitHub API
115
- 4. Return setup summary with BASE_BRANCH recorded
113
+ 2. **Derive branch name:**
114
+ - If `ISSUE_INPUT` provided: fetch issue via GitHub API first, then derive branch name as `{type}/{number}-{slug}` where:
115
+ - `type` is inferred from issue labels: `bug` → `fix`, `documentation` or `docs` → `docs`, `refactor` → `refactor`, `chore` or `maintenance` → `chore`, default → `feature`
116
+ - `slug` is the issue title: lowercased, non-alphanumeric replaced with hyphens, consecutive hyphens collapsed, trimmed, max 40 characters
117
+ - If `TASK_DESCRIPTION` provided (no issue): infer type from description keywords (e.g., "fix login bug" → `fix`, "refactor auth" → `refactor`, "add JWT" → `feature`, "update docs" → `docs`, "chore: cleanup" → `chore`), then slugify description as `{type}/{slug}` (max 40 chars)
118
+ - If neither: fallback to `task-{YYYY-MM-DD_HHMM}`
119
+ 3. Create and checkout feature branch: `git checkout -b {derived-branch-name}`
120
+ 4. Return setup summary with branch name and BASE_BRANCH recorded
116
121
 
117
122
  **Output:**
118
123
  ```markdown
119
- ## Task Setup: {TASK_ID}
124
+ ## Task Setup: {branch-name}
120
125
 
121
126
  ### Branch
122
- - **Feature branch**: {TASK_ID}
127
+ - **Branch name**: {derived-branch-name}
123
128
  - **Base branch**: {BASE_BRANCH} (PR target)
124
129
 
125
130
  ### Issue (if fetched)
@@ -27,21 +27,20 @@ Orchestrate a single task from exploration through implementation by spawning sp
27
27
 
28
28
  Record the current branch name as `BASE_BRANCH` - this will be the PR target.
29
29
 
30
- Generate a unique `TASK_ID`: `task-{YYYY-MM-DD_HHMM}` (e.g., `task-2025-01-15_1430`).
31
-
32
- Spawn Git agent to set up task environment:
30
+ Spawn Git agent to set up task environment. The Git agent derives the branch name automatically from the issue or task description:
33
31
 
34
32
  ```
35
33
  Task(subagent_type="Git"):
36
34
  "OPERATION: setup-task
37
- TASK_ID: {task-id}
38
35
  BASE_BRANCH: {current branch name}
39
- ISSUE_INPUT: {issue number if provided, otherwise omit}
40
- Create feature branch and fetch issue if specified.
36
+ ISSUE_INPUT: {issue number if $ARGUMENTS starts with #, otherwise omit}
37
+ TASK_DESCRIPTION: {task description from $ARGUMENTS if not an issue number, otherwise omit}
38
+ Derive branch name from issue or description, create feature branch, and fetch issue if specified.
41
39
  Return the branch setup summary."
42
40
  ```
43
41
 
44
42
  **Capture from Git agent output** (used throughout flow):
43
+ - `TASK_ID`: The branch name created by Git agent (use as TASK_ID for rest of flow)
45
44
  - `BASE_BRANCH`: Branch this feature was created from (for PR target)
46
45
  - `ISSUE_NUMBER`: GitHub issue number (if provided)
47
46
  - `ISSUE_CONTENT`: Full issue body including description (if provided)
@@ -27,21 +27,20 @@ Orchestrate a single task from exploration through implementation by spawning sp
27
27
 
28
28
  Record the current branch name as `BASE_BRANCH` - this will be the PR target.
29
29
 
30
- Generate a unique `TASK_ID`: `task-{YYYY-MM-DD_HHMM}` (e.g., `task-2025-01-15_1430`).
31
-
32
- Spawn Git agent to set up task environment:
30
+ Spawn Git agent to set up task environment. The Git agent derives the branch name automatically from the issue or task description:
33
31
 
34
32
  ```
35
33
  Task(subagent_type="Git"):
36
34
  "OPERATION: setup-task
37
- TASK_ID: {task-id}
38
35
  BASE_BRANCH: {current branch name}
39
- ISSUE_INPUT: {issue number if provided, otherwise omit}
40
- Create feature branch and fetch issue if specified.
36
+ ISSUE_INPUT: {issue number if $ARGUMENTS starts with #, otherwise omit}
37
+ TASK_DESCRIPTION: {task description from $ARGUMENTS if not an issue number, otherwise omit}
38
+ Derive branch name from issue or description, create feature branch, and fetch issue if specified.
41
39
  Return the branch setup summary."
42
40
  ```
43
41
 
44
42
  **Capture from Git agent output** (used throughout flow):
43
+ - `TASK_ID`: The branch name created by Git agent (use as TASK_ID for rest of flow)
45
44
  - `BASE_BRANCH`: Branch this feature was created from (for PR target)
46
45
  - `ISSUE_NUMBER`: GitHub issue number (if provided)
47
46
  - `ISSUE_CONTENT`: Full issue body including description (if provided)
@@ -2,10 +2,9 @@
2
2
  "name": "devflow-java",
3
3
  "description": "Java language patterns - records, sealed classes, composition, modern Java features",
4
4
  "author": {
5
- "name": "DevFlow Contributors",
6
- "email": "dean@keren.dev"
5
+ "name": "Dean0x"
7
6
  },
8
- "version": "1.3.3",
7
+ "version": "1.4.0",
9
8
  "homepage": "https://github.com/dean0x/devflow",
10
9
  "repository": "https://github.com/dean0x/devflow",
11
10
  "license": "MIT",
@@ -2,10 +2,9 @@
2
2
  "name": "devflow-python",
3
3
  "description": "Python language patterns - type hints, protocols, dataclasses, async programming",
4
4
  "author": {
5
- "name": "DevFlow Contributors",
6
- "email": "dean@keren.dev"
5
+ "name": "Dean0x"
7
6
  },
8
- "version": "1.3.3",
7
+ "version": "1.4.0",
9
8
  "homepage": "https://github.com/dean0x/devflow",
10
9
  "repository": "https://github.com/dean0x/devflow",
11
10
  "license": "MIT",
@@ -2,10 +2,9 @@
2
2
  "name": "devflow-react",
3
3
  "description": "React framework patterns - hooks, state management, composition, performance",
4
4
  "author": {
5
- "name": "DevFlow Contributors",
6
- "email": "dean@keren.dev"
5
+ "name": "Dean0x"
7
6
  },
8
- "version": "1.3.3",
7
+ "version": "1.4.0",
9
8
  "homepage": "https://github.com/dean0x/devflow",
10
9
  "repository": "https://github.com/dean0x/devflow",
11
10
  "license": "MIT",
@@ -2,10 +2,9 @@
2
2
  "name": "devflow-resolve",
3
3
  "description": "Process and fix code review issues with risk assessment - decides FIX vs TECH_DEBT based on impact",
4
4
  "author": {
5
- "name": "DevFlow Contributors",
6
- "email": "dean@keren.dev"
5
+ "name": "Dean0x"
7
6
  },
8
- "version": "1.3.3",
7
+ "version": "1.4.0",
9
8
  "homepage": "https://github.com/dean0x/devflow",
10
9
  "repository": "https://github.com/dean0x/devflow",
11
10
  "license": "MIT",
@@ -21,7 +21,7 @@ The orchestrator provides:
21
21
  |-----------|---------|----------------|
22
22
  | `ensure-pr-ready` | Pre-flight for /review: commit, push, create PR | - |
23
23
  | `validate-branch` | Pre-flight for /resolve: check branch state | - |
24
- | `setup-task` | Create feature branch and fetch issue | `TASK_ID`, `BASE_BRANCH`, `ISSUE_INPUT` (optional) |
24
+ | `setup-task` | Create feature branch and fetch issue | `BASE_BRANCH`, `ISSUE_INPUT` (optional), `TASK_DESCRIPTION` (optional) |
25
25
  | `fetch-issue` | Fetch GitHub issue for implementation | `ISSUE_INPUT` (number or search term) |
26
26
  | `comment-pr` | Create PR inline comments for review findings | `PR_NUMBER`, `REVIEW_BASE_DIR`, `TIMESTAMP` |
27
27
  | `manage-debt` | Update tech debt backlog with pre-existing issues | `REVIEW_DIR`, `TIMESTAMP` |
@@ -101,25 +101,30 @@ Pre-flight validation for `/resolve`. Checks branch state without modifications.
101
101
 
102
102
  ## Operation: setup-task
103
103
 
104
- Set up task environment: create feature branch and optionally fetch issue.
104
+ Set up task environment: derive branch name, create feature branch, and optionally fetch issue.
105
105
 
106
106
  **Input:**
107
- - `TASK_ID`: Unique task identifier (becomes branch name)
108
107
  - `BASE_BRANCH`: Branch to create from (track this for PR target)
109
108
  - `ISSUE_INPUT` (optional): Issue number to fetch
109
+ - `TASK_DESCRIPTION` (optional): Free-text task description (when no issue)
110
110
 
111
111
  **Process:**
112
112
  1. Record current branch as BASE_BRANCH for later PR targeting
113
- 2. Create and checkout feature branch: `git checkout -b {TASK_ID}`
114
- 3. If ISSUE_INPUT provided, fetch issue details via GitHub API
115
- 4. Return setup summary with BASE_BRANCH recorded
113
+ 2. **Derive branch name:**
114
+ - If `ISSUE_INPUT` provided: fetch issue via GitHub API first, then derive branch name as `{type}/{number}-{slug}` where:
115
+ - `type` is inferred from issue labels: `bug` → `fix`, `documentation` or `docs` → `docs`, `refactor` → `refactor`, `chore` or `maintenance` → `chore`, default → `feature`
116
+ - `slug` is the issue title: lowercased, non-alphanumeric replaced with hyphens, consecutive hyphens collapsed, trimmed, max 40 characters
117
+ - If `TASK_DESCRIPTION` provided (no issue): infer type from description keywords (e.g., "fix login bug" → `fix`, "refactor auth" → `refactor`, "add JWT" → `feature`, "update docs" → `docs`, "chore: cleanup" → `chore`), then slugify description as `{type}/{slug}` (max 40 chars)
118
+ - If neither: fallback to `task-{YYYY-MM-DD_HHMM}`
119
+ 3. Create and checkout feature branch: `git checkout -b {derived-branch-name}`
120
+ 4. Return setup summary with branch name and BASE_BRANCH recorded
116
121
 
117
122
  **Output:**
118
123
  ```markdown
119
- ## Task Setup: {TASK_ID}
124
+ ## Task Setup: {branch-name}
120
125
 
121
126
  ### Branch
122
- - **Feature branch**: {TASK_ID}
127
+ - **Branch name**: {derived-branch-name}
123
128
  - **Base branch**: {BASE_BRANCH} (PR target)
124
129
 
125
130
  ### Issue (if fetched)
@@ -2,10 +2,9 @@
2
2
  "name": "devflow-rust",
3
3
  "description": "Rust language patterns - ownership, borrowing, error handling, type-driven design",
4
4
  "author": {
5
- "name": "DevFlow Contributors",
6
- "email": "dean@keren.dev"
5
+ "name": "Dean0x"
7
6
  },
8
- "version": "1.3.3",
7
+ "version": "1.4.0",
9
8
  "homepage": "https://github.com/dean0x/devflow",
10
9
  "repository": "https://github.com/dean0x/devflow",
11
10
  "license": "MIT",
@@ -1,7 +1,10 @@
1
1
  {
2
2
  "name": "devflow-self-review",
3
3
  "description": "Self-review workflow: Simplifier + Scrutinizer for code quality",
4
- "version": "1.3.3",
4
+ "author": {
5
+ "name": "Dean0x"
6
+ },
7
+ "version": "1.4.0",
5
8
  "agents": [
6
9
  "simplifier",
7
10
  "scrutinizer",
@@ -2,10 +2,9 @@
2
2
  "name": "devflow-specify",
3
3
  "description": "Interactive feature specification - creates well-defined GitHub issues through requirements exploration and clarification",
4
4
  "author": {
5
- "name": "DevFlow Contributors",
6
- "email": "dean@keren.dev"
5
+ "name": "Dean0x"
7
6
  },
8
- "version": "1.3.3",
7
+ "version": "1.4.0",
9
8
  "homepage": "https://github.com/dean0x/devflow",
10
9
  "repository": "https://github.com/dean0x/devflow",
11
10
  "license": "MIT",
@@ -2,10 +2,9 @@
2
2
  "name": "devflow-typescript",
3
3
  "description": "TypeScript language patterns - type safety, generics, utility types, type guards",
4
4
  "author": {
5
- "name": "DevFlow Contributors",
6
- "email": "dean@keren.dev"
5
+ "name": "Dean0x"
7
6
  },
8
- "version": "1.3.3",
7
+ "version": "1.4.0",
9
8
  "homepage": "https://github.com/dean0x/devflow",
10
9
  "repository": "https://github.com/dean0x/devflow",
11
10
  "license": "MIT",
@@ -21,7 +21,7 @@ The orchestrator provides:
21
21
  |-----------|---------|----------------|
22
22
  | `ensure-pr-ready` | Pre-flight for /review: commit, push, create PR | - |
23
23
  | `validate-branch` | Pre-flight for /resolve: check branch state | - |
24
- | `setup-task` | Create feature branch and fetch issue | `TASK_ID`, `BASE_BRANCH`, `ISSUE_INPUT` (optional) |
24
+ | `setup-task` | Create feature branch and fetch issue | `BASE_BRANCH`, `ISSUE_INPUT` (optional), `TASK_DESCRIPTION` (optional) |
25
25
  | `fetch-issue` | Fetch GitHub issue for implementation | `ISSUE_INPUT` (number or search term) |
26
26
  | `comment-pr` | Create PR inline comments for review findings | `PR_NUMBER`, `REVIEW_BASE_DIR`, `TIMESTAMP` |
27
27
  | `manage-debt` | Update tech debt backlog with pre-existing issues | `REVIEW_DIR`, `TIMESTAMP` |
@@ -101,25 +101,30 @@ Pre-flight validation for `/resolve`. Checks branch state without modifications.
101
101
 
102
102
  ## Operation: setup-task
103
103
 
104
- Set up task environment: create feature branch and optionally fetch issue.
104
+ Set up task environment: derive branch name, create feature branch, and optionally fetch issue.
105
105
 
106
106
  **Input:**
107
- - `TASK_ID`: Unique task identifier (becomes branch name)
108
107
  - `BASE_BRANCH`: Branch to create from (track this for PR target)
109
108
  - `ISSUE_INPUT` (optional): Issue number to fetch
109
+ - `TASK_DESCRIPTION` (optional): Free-text task description (when no issue)
110
110
 
111
111
  **Process:**
112
112
  1. Record current branch as BASE_BRANCH for later PR targeting
113
- 2. Create and checkout feature branch: `git checkout -b {TASK_ID}`
114
- 3. If ISSUE_INPUT provided, fetch issue details via GitHub API
115
- 4. Return setup summary with BASE_BRANCH recorded
113
+ 2. **Derive branch name:**
114
+ - If `ISSUE_INPUT` provided: fetch issue via GitHub API first, then derive branch name as `{type}/{number}-{slug}` where:
115
+ - `type` is inferred from issue labels: `bug` → `fix`, `documentation` or `docs` → `docs`, `refactor` → `refactor`, `chore` or `maintenance` → `chore`, default → `feature`
116
+ - `slug` is the issue title: lowercased, non-alphanumeric replaced with hyphens, consecutive hyphens collapsed, trimmed, max 40 characters
117
+ - If `TASK_DESCRIPTION` provided (no issue): infer type from description keywords (e.g., "fix login bug" → `fix`, "refactor auth" → `refactor`, "add JWT" → `feature`, "update docs" → `docs`, "chore: cleanup" → `chore`), then slugify description as `{type}/{slug}` (max 40 chars)
118
+ - If neither: fallback to `task-{YYYY-MM-DD_HHMM}`
119
+ 3. Create and checkout feature branch: `git checkout -b {derived-branch-name}`
120
+ 4. Return setup summary with branch name and BASE_BRANCH recorded
116
121
 
117
122
  **Output:**
118
123
  ```markdown
119
- ## Task Setup: {TASK_ID}
124
+ ## Task Setup: {branch-name}
120
125
 
121
126
  ### Branch
122
- - **Feature branch**: {TASK_ID}
127
+ - **Branch name**: {derived-branch-name}
123
128
  - **Base branch**: {BASE_BRANCH} (PR target)
124
129
 
125
130
  ### Issue (if fetched)