devflow-kit
Advanced tools
+14
-0
@@ -8,2 +8,15 @@ # Changelog | ||
| ## [1.4.0] - 2026-03-09 | ||
| ### Added | ||
| - **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`) | ||
| ### Fixed | ||
| - **Code review file detection** — Corrected file detection and skill check logic in `/code-review` | ||
| ### Changed | ||
| - **Author standardization** — Unified author name to Dean0x across marketplace and plugin manifests | ||
| --- | ||
| ## [1.3.3] - 2026-03-09 | ||
@@ -844,2 +857,3 @@ | ||
| [1.4.0]: https://github.com/dean0x/devflow/compare/v1.3.3...v1.4.0 | ||
| [1.3.3]: https://github.com/dean0x/devflow/compare/v1.3.2...v1.3.3 | ||
@@ -846,0 +860,0 @@ [1.3.2]: https://github.com/dean0x/devflow/compare/v1.3.1...v1.3.2 |
+1
-1
| { | ||
| "name": "devflow-kit", | ||
| "version": "1.3.3", | ||
| "version": "1.4.0", | ||
| "description": "Agentic Development Toolkit for Claude Code - Enhance AI-assisted development with intelligent commands and workflows", | ||
@@ -5,0 +5,0 @@ "type": "module", |
@@ -5,6 +5,5 @@ { | ||
| "author": { | ||
| "name": "DevFlow Contributors", | ||
| "email": "dean@keren.dev" | ||
| "name": "Dean0x" | ||
| }, | ||
| "version": "1.3.3", | ||
| "version": "1.4.0", | ||
| "homepage": "https://github.com/dean0x/devflow", | ||
@@ -11,0 +10,0 @@ "repository": "https://github.com/dean0x/devflow", |
| { | ||
| "name": "devflow-ambient", | ||
| "description": "Ambient mode — auto-loads relevant skills for every prompt", | ||
| "version": "1.3.3", | ||
| "author": { | ||
| "name": "Dean0x" | ||
| }, | ||
| "version": "1.4.0", | ||
| "agents": [], | ||
@@ -6,0 +9,0 @@ "skills": [ |
| { | ||
| "name": "devflow-audit-claude", | ||
| "description": "Audit CLAUDE.md files against Anthropic best practices", | ||
| "version": "1.3.3", | ||
| "author": { | ||
| "name": "Dean0x" | ||
| }, | ||
| "version": "1.4.0", | ||
| "agents": [], | ||
| "skills": [] | ||
| } |
@@ -5,6 +5,5 @@ { | ||
| "author": { | ||
| "name": "DevFlow Contributors", | ||
| "email": "dean@keren.dev" | ||
| "name": "Dean0x" | ||
| }, | ||
| "version": "1.3.3", | ||
| "version": "1.4.0", | ||
| "homepage": "https://github.com/dean0x/devflow", | ||
@@ -11,0 +10,0 @@ "repository": "https://github.com/dean0x/devflow", |
@@ -24,3 +24,3 @@ --- | ||
| | `validate-branch` | Pre-flight for /resolve: check branch state | - | | ||
| | `setup-task` | Create feature branch and fetch issue | `TASK_ID`, `BASE_BRANCH`, `ISSUE_INPUT` (optional) | | ||
| | `setup-task` | Create feature branch and fetch issue | `BASE_BRANCH`, `ISSUE_INPUT` (optional), `TASK_DESCRIPTION` (optional) | | ||
| | `fetch-issue` | Fetch GitHub issue for implementation | `ISSUE_INPUT` (number or search term) | | ||
@@ -105,21 +105,26 @@ | `comment-pr` | Create PR inline comments for review findings | `PR_NUMBER`, `REVIEW_BASE_DIR`, `TIMESTAMP` | | ||
| Set up task environment: create feature branch and optionally fetch issue. | ||
| Set up task environment: derive branch name, create feature branch, and optionally fetch issue. | ||
| **Input:** | ||
| - `TASK_ID`: Unique task identifier (becomes branch name) | ||
| - `BASE_BRANCH`: Branch to create from (track this for PR target) | ||
| - `ISSUE_INPUT` (optional): Issue number to fetch | ||
| - `TASK_DESCRIPTION` (optional): Free-text task description (when no issue) | ||
| **Process:** | ||
| 1. Record current branch as BASE_BRANCH for later PR targeting | ||
| 2. Create and checkout feature branch: `git checkout -b {TASK_ID}` | ||
| 3. If ISSUE_INPUT provided, fetch issue details via GitHub API | ||
| 4. Return setup summary with BASE_BRANCH recorded | ||
| 2. **Derive branch name:** | ||
| - If `ISSUE_INPUT` provided: fetch issue via GitHub API first, then derive branch name as `{type}/{number}-{slug}` where: | ||
| - `type` is inferred from issue labels: `bug` → `fix`, `documentation` or `docs` → `docs`, `refactor` → `refactor`, `chore` or `maintenance` → `chore`, default → `feature` | ||
| - `slug` is the issue title: lowercased, non-alphanumeric replaced with hyphens, consecutive hyphens collapsed, trimmed, max 40 characters | ||
| - 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) | ||
| - If neither: fallback to `task-{YYYY-MM-DD_HHMM}` | ||
| 3. Create and checkout feature branch: `git checkout -b {derived-branch-name}` | ||
| 4. Return setup summary with branch name and BASE_BRANCH recorded | ||
| **Output:** | ||
| ```markdown | ||
| ## Task Setup: {TASK_ID} | ||
| ## Task Setup: {branch-name} | ||
| ### Branch | ||
| - **Feature branch**: {TASK_ID} | ||
| - **Branch name**: {derived-branch-name} | ||
| - **Base branch**: {BASE_BRANCH} (PR target) | ||
@@ -126,0 +131,0 @@ |
@@ -41,5 +41,5 @@ --- | ||
| |-----------|-----------------| | ||
| | .ts/.tsx files | typescript | | ||
| | .tsx/.jsx files | react | | ||
| | .tsx/.jsx files | accessibility | | ||
| | Any .ts or .tsx files | typescript | | ||
| | .tsx or .jsx files (React components) | react | | ||
| | .tsx or .jsx files (React components) | accessibility | | ||
| | .tsx/.jsx/.css/.scss files | frontend-design | | ||
@@ -54,3 +54,3 @@ | .go files | go | | ||
| **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. | ||
| **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. | ||
@@ -57,0 +57,0 @@ ### Phase 2: Spawn Review Team |
@@ -41,5 +41,5 @@ --- | ||
| |-----------|-------------| | ||
| | .ts/.tsx files | typescript | | ||
| | .tsx/.jsx files | react | | ||
| | .tsx/.jsx files | accessibility | | ||
| | Any .ts or .tsx files | typescript | | ||
| | .tsx or .jsx files (React components) | react | | ||
| | .tsx or .jsx files (React components) | accessibility | | ||
| | .tsx/.jsx/.css/.scss files | frontend-design | | ||
@@ -54,3 +54,3 @@ | .go files | go | | ||
| **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. | ||
| **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. | ||
@@ -57,0 +57,0 @@ ### Phase 2: Run Reviews (Parallel) |
@@ -5,6 +5,5 @@ { | ||
| "author": { | ||
| "name": "DevFlow Contributors", | ||
| "email": "dean@keren.dev" | ||
| "name": "Dean0x" | ||
| }, | ||
| "version": "1.3.3", | ||
| "version": "1.4.0", | ||
| "homepage": "https://github.com/dean0x/devflow", | ||
@@ -11,0 +10,0 @@ "repository": "https://github.com/dean0x/devflow", |
@@ -5,6 +5,5 @@ { | ||
| "author": { | ||
| "name": "DevFlow Contributors", | ||
| "email": "dean@keren.dev" | ||
| "name": "Dean0x" | ||
| }, | ||
| "version": "1.3.3", | ||
| "version": "1.4.0", | ||
| "homepage": "https://github.com/dean0x/devflow", | ||
@@ -11,0 +10,0 @@ "repository": "https://github.com/dean0x/devflow", |
@@ -24,3 +24,3 @@ --- | ||
| | `validate-branch` | Pre-flight for /resolve: check branch state | - | | ||
| | `setup-task` | Create feature branch and fetch issue | `TASK_ID`, `BASE_BRANCH`, `ISSUE_INPUT` (optional) | | ||
| | `setup-task` | Create feature branch and fetch issue | `BASE_BRANCH`, `ISSUE_INPUT` (optional), `TASK_DESCRIPTION` (optional) | | ||
| | `fetch-issue` | Fetch GitHub issue for implementation | `ISSUE_INPUT` (number or search term) | | ||
@@ -105,21 +105,26 @@ | `comment-pr` | Create PR inline comments for review findings | `PR_NUMBER`, `REVIEW_BASE_DIR`, `TIMESTAMP` | | ||
| Set up task environment: create feature branch and optionally fetch issue. | ||
| Set up task environment: derive branch name, create feature branch, and optionally fetch issue. | ||
| **Input:** | ||
| - `TASK_ID`: Unique task identifier (becomes branch name) | ||
| - `BASE_BRANCH`: Branch to create from (track this for PR target) | ||
| - `ISSUE_INPUT` (optional): Issue number to fetch | ||
| - `TASK_DESCRIPTION` (optional): Free-text task description (when no issue) | ||
| **Process:** | ||
| 1. Record current branch as BASE_BRANCH for later PR targeting | ||
| 2. Create and checkout feature branch: `git checkout -b {TASK_ID}` | ||
| 3. If ISSUE_INPUT provided, fetch issue details via GitHub API | ||
| 4. Return setup summary with BASE_BRANCH recorded | ||
| 2. **Derive branch name:** | ||
| - If `ISSUE_INPUT` provided: fetch issue via GitHub API first, then derive branch name as `{type}/{number}-{slug}` where: | ||
| - `type` is inferred from issue labels: `bug` → `fix`, `documentation` or `docs` → `docs`, `refactor` → `refactor`, `chore` or `maintenance` → `chore`, default → `feature` | ||
| - `slug` is the issue title: lowercased, non-alphanumeric replaced with hyphens, consecutive hyphens collapsed, trimmed, max 40 characters | ||
| - 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) | ||
| - If neither: fallback to `task-{YYYY-MM-DD_HHMM}` | ||
| 3. Create and checkout feature branch: `git checkout -b {derived-branch-name}` | ||
| 4. Return setup summary with branch name and BASE_BRANCH recorded | ||
| **Output:** | ||
| ```markdown | ||
| ## Task Setup: {TASK_ID} | ||
| ## Task Setup: {branch-name} | ||
| ### Branch | ||
| - **Feature branch**: {TASK_ID} | ||
| - **Branch name**: {derived-branch-name} | ||
| - **Base branch**: {BASE_BRANCH} (PR target) | ||
@@ -126,0 +131,0 @@ |
@@ -5,6 +5,5 @@ { | ||
| "author": { | ||
| "name": "DevFlow Contributors", | ||
| "email": "dean@keren.dev" | ||
| "name": "Dean0x" | ||
| }, | ||
| "version": "1.3.3", | ||
| "version": "1.4.0", | ||
| "homepage": "https://github.com/dean0x/devflow", | ||
@@ -11,0 +10,0 @@ "repository": "https://github.com/dean0x/devflow", |
@@ -5,6 +5,5 @@ { | ||
| "author": { | ||
| "name": "DevFlow Contributors", | ||
| "email": "dean@keren.dev" | ||
| "name": "Dean0x" | ||
| }, | ||
| "version": "1.3.3", | ||
| "version": "1.4.0", | ||
| "homepage": "https://github.com/dean0x/devflow", | ||
@@ -11,0 +10,0 @@ "repository": "https://github.com/dean0x/devflow", |
@@ -5,6 +5,5 @@ { | ||
| "author": { | ||
| "name": "DevFlow Contributors", | ||
| "email": "dean@keren.dev" | ||
| "name": "Dean0x" | ||
| }, | ||
| "version": "1.3.3", | ||
| "version": "1.4.0", | ||
| "homepage": "https://github.com/dean0x/devflow", | ||
@@ -11,0 +10,0 @@ "repository": "https://github.com/dean0x/devflow", |
@@ -24,3 +24,3 @@ --- | ||
| | `validate-branch` | Pre-flight for /resolve: check branch state | - | | ||
| | `setup-task` | Create feature branch and fetch issue | `TASK_ID`, `BASE_BRANCH`, `ISSUE_INPUT` (optional) | | ||
| | `setup-task` | Create feature branch and fetch issue | `BASE_BRANCH`, `ISSUE_INPUT` (optional), `TASK_DESCRIPTION` (optional) | | ||
| | `fetch-issue` | Fetch GitHub issue for implementation | `ISSUE_INPUT` (number or search term) | | ||
@@ -105,21 +105,26 @@ | `comment-pr` | Create PR inline comments for review findings | `PR_NUMBER`, `REVIEW_BASE_DIR`, `TIMESTAMP` | | ||
| Set up task environment: create feature branch and optionally fetch issue. | ||
| Set up task environment: derive branch name, create feature branch, and optionally fetch issue. | ||
| **Input:** | ||
| - `TASK_ID`: Unique task identifier (becomes branch name) | ||
| - `BASE_BRANCH`: Branch to create from (track this for PR target) | ||
| - `ISSUE_INPUT` (optional): Issue number to fetch | ||
| - `TASK_DESCRIPTION` (optional): Free-text task description (when no issue) | ||
| **Process:** | ||
| 1. Record current branch as BASE_BRANCH for later PR targeting | ||
| 2. Create and checkout feature branch: `git checkout -b {TASK_ID}` | ||
| 3. If ISSUE_INPUT provided, fetch issue details via GitHub API | ||
| 4. Return setup summary with BASE_BRANCH recorded | ||
| 2. **Derive branch name:** | ||
| - If `ISSUE_INPUT` provided: fetch issue via GitHub API first, then derive branch name as `{type}/{number}-{slug}` where: | ||
| - `type` is inferred from issue labels: `bug` → `fix`, `documentation` or `docs` → `docs`, `refactor` → `refactor`, `chore` or `maintenance` → `chore`, default → `feature` | ||
| - `slug` is the issue title: lowercased, non-alphanumeric replaced with hyphens, consecutive hyphens collapsed, trimmed, max 40 characters | ||
| - 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) | ||
| - If neither: fallback to `task-{YYYY-MM-DD_HHMM}` | ||
| 3. Create and checkout feature branch: `git checkout -b {derived-branch-name}` | ||
| 4. Return setup summary with branch name and BASE_BRANCH recorded | ||
| **Output:** | ||
| ```markdown | ||
| ## Task Setup: {TASK_ID} | ||
| ## Task Setup: {branch-name} | ||
| ### Branch | ||
| - **Feature branch**: {TASK_ID} | ||
| - **Branch name**: {derived-branch-name} | ||
| - **Base branch**: {BASE_BRANCH} (PR target) | ||
@@ -126,0 +131,0 @@ |
@@ -30,13 +30,11 @@ --- | ||
| Generate a unique `TASK_ID`: `task-{YYYY-MM-DD_HHMM}` (e.g., `task-2025-01-15_1430`). | ||
| Spawn Git agent to set up task environment. The Git agent derives the branch name automatically from the issue or task description: | ||
| Spawn Git agent to set up task environment: | ||
| ``` | ||
| Task(subagent_type="Git"): | ||
| "OPERATION: setup-task | ||
| TASK_ID: {task-id} | ||
| BASE_BRANCH: {current branch name} | ||
| ISSUE_INPUT: {issue number if provided, otherwise omit} | ||
| Create feature branch and fetch issue if specified. | ||
| ISSUE_INPUT: {issue number if $ARGUMENTS starts with #, otherwise omit} | ||
| TASK_DESCRIPTION: {task description from $ARGUMENTS if not an issue number, otherwise omit} | ||
| Derive branch name from issue or description, create feature branch, and fetch issue if specified. | ||
| Return the branch setup summary." | ||
@@ -46,2 +44,3 @@ ``` | ||
| **Capture from Git agent output** (used throughout flow): | ||
| - `TASK_ID`: The branch name created by Git agent (use as TASK_ID for rest of flow) | ||
| - `BASE_BRANCH`: Branch this feature was created from (for PR target) | ||
@@ -48,0 +47,0 @@ - `ISSUE_NUMBER`: GitHub issue number (if provided) |
@@ -30,13 +30,11 @@ --- | ||
| Generate a unique `TASK_ID`: `task-{YYYY-MM-DD_HHMM}` (e.g., `task-2025-01-15_1430`). | ||
| Spawn Git agent to set up task environment. The Git agent derives the branch name automatically from the issue or task description: | ||
| Spawn Git agent to set up task environment: | ||
| ``` | ||
| Task(subagent_type="Git"): | ||
| "OPERATION: setup-task | ||
| TASK_ID: {task-id} | ||
| BASE_BRANCH: {current branch name} | ||
| ISSUE_INPUT: {issue number if provided, otherwise omit} | ||
| Create feature branch and fetch issue if specified. | ||
| ISSUE_INPUT: {issue number if $ARGUMENTS starts with #, otherwise omit} | ||
| TASK_DESCRIPTION: {task description from $ARGUMENTS if not an issue number, otherwise omit} | ||
| Derive branch name from issue or description, create feature branch, and fetch issue if specified. | ||
| Return the branch setup summary." | ||
@@ -46,2 +44,3 @@ ``` | ||
| **Capture from Git agent output** (used throughout flow): | ||
| - `TASK_ID`: The branch name created by Git agent (use as TASK_ID for rest of flow) | ||
| - `BASE_BRANCH`: Branch this feature was created from (for PR target) | ||
@@ -48,0 +47,0 @@ - `ISSUE_NUMBER`: GitHub issue number (if provided) |
@@ -5,6 +5,5 @@ { | ||
| "author": { | ||
| "name": "DevFlow Contributors", | ||
| "email": "dean@keren.dev" | ||
| "name": "Dean0x" | ||
| }, | ||
| "version": "1.3.3", | ||
| "version": "1.4.0", | ||
| "homepage": "https://github.com/dean0x/devflow", | ||
@@ -11,0 +10,0 @@ "repository": "https://github.com/dean0x/devflow", |
@@ -5,6 +5,5 @@ { | ||
| "author": { | ||
| "name": "DevFlow Contributors", | ||
| "email": "dean@keren.dev" | ||
| "name": "Dean0x" | ||
| }, | ||
| "version": "1.3.3", | ||
| "version": "1.4.0", | ||
| "homepage": "https://github.com/dean0x/devflow", | ||
@@ -11,0 +10,0 @@ "repository": "https://github.com/dean0x/devflow", |
@@ -5,6 +5,5 @@ { | ||
| "author": { | ||
| "name": "DevFlow Contributors", | ||
| "email": "dean@keren.dev" | ||
| "name": "Dean0x" | ||
| }, | ||
| "version": "1.3.3", | ||
| "version": "1.4.0", | ||
| "homepage": "https://github.com/dean0x/devflow", | ||
@@ -11,0 +10,0 @@ "repository": "https://github.com/dean0x/devflow", |
@@ -5,6 +5,5 @@ { | ||
| "author": { | ||
| "name": "DevFlow Contributors", | ||
| "email": "dean@keren.dev" | ||
| "name": "Dean0x" | ||
| }, | ||
| "version": "1.3.3", | ||
| "version": "1.4.0", | ||
| "homepage": "https://github.com/dean0x/devflow", | ||
@@ -11,0 +10,0 @@ "repository": "https://github.com/dean0x/devflow", |
@@ -24,3 +24,3 @@ --- | ||
| | `validate-branch` | Pre-flight for /resolve: check branch state | - | | ||
| | `setup-task` | Create feature branch and fetch issue | `TASK_ID`, `BASE_BRANCH`, `ISSUE_INPUT` (optional) | | ||
| | `setup-task` | Create feature branch and fetch issue | `BASE_BRANCH`, `ISSUE_INPUT` (optional), `TASK_DESCRIPTION` (optional) | | ||
| | `fetch-issue` | Fetch GitHub issue for implementation | `ISSUE_INPUT` (number or search term) | | ||
@@ -105,21 +105,26 @@ | `comment-pr` | Create PR inline comments for review findings | `PR_NUMBER`, `REVIEW_BASE_DIR`, `TIMESTAMP` | | ||
| Set up task environment: create feature branch and optionally fetch issue. | ||
| Set up task environment: derive branch name, create feature branch, and optionally fetch issue. | ||
| **Input:** | ||
| - `TASK_ID`: Unique task identifier (becomes branch name) | ||
| - `BASE_BRANCH`: Branch to create from (track this for PR target) | ||
| - `ISSUE_INPUT` (optional): Issue number to fetch | ||
| - `TASK_DESCRIPTION` (optional): Free-text task description (when no issue) | ||
| **Process:** | ||
| 1. Record current branch as BASE_BRANCH for later PR targeting | ||
| 2. Create and checkout feature branch: `git checkout -b {TASK_ID}` | ||
| 3. If ISSUE_INPUT provided, fetch issue details via GitHub API | ||
| 4. Return setup summary with BASE_BRANCH recorded | ||
| 2. **Derive branch name:** | ||
| - If `ISSUE_INPUT` provided: fetch issue via GitHub API first, then derive branch name as `{type}/{number}-{slug}` where: | ||
| - `type` is inferred from issue labels: `bug` → `fix`, `documentation` or `docs` → `docs`, `refactor` → `refactor`, `chore` or `maintenance` → `chore`, default → `feature` | ||
| - `slug` is the issue title: lowercased, non-alphanumeric replaced with hyphens, consecutive hyphens collapsed, trimmed, max 40 characters | ||
| - 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) | ||
| - If neither: fallback to `task-{YYYY-MM-DD_HHMM}` | ||
| 3. Create and checkout feature branch: `git checkout -b {derived-branch-name}` | ||
| 4. Return setup summary with branch name and BASE_BRANCH recorded | ||
| **Output:** | ||
| ```markdown | ||
| ## Task Setup: {TASK_ID} | ||
| ## Task Setup: {branch-name} | ||
| ### Branch | ||
| - **Feature branch**: {TASK_ID} | ||
| - **Branch name**: {derived-branch-name} | ||
| - **Base branch**: {BASE_BRANCH} (PR target) | ||
@@ -126,0 +131,0 @@ |
@@ -5,6 +5,5 @@ { | ||
| "author": { | ||
| "name": "DevFlow Contributors", | ||
| "email": "dean@keren.dev" | ||
| "name": "Dean0x" | ||
| }, | ||
| "version": "1.3.3", | ||
| "version": "1.4.0", | ||
| "homepage": "https://github.com/dean0x/devflow", | ||
@@ -11,0 +10,0 @@ "repository": "https://github.com/dean0x/devflow", |
| { | ||
| "name": "devflow-self-review", | ||
| "description": "Self-review workflow: Simplifier + Scrutinizer for code quality", | ||
| "version": "1.3.3", | ||
| "author": { | ||
| "name": "Dean0x" | ||
| }, | ||
| "version": "1.4.0", | ||
| "agents": [ | ||
@@ -6,0 +9,0 @@ "simplifier", |
@@ -5,6 +5,5 @@ { | ||
| "author": { | ||
| "name": "DevFlow Contributors", | ||
| "email": "dean@keren.dev" | ||
| "name": "Dean0x" | ||
| }, | ||
| "version": "1.3.3", | ||
| "version": "1.4.0", | ||
| "homepage": "https://github.com/dean0x/devflow", | ||
@@ -11,0 +10,0 @@ "repository": "https://github.com/dean0x/devflow", |
@@ -5,6 +5,5 @@ { | ||
| "author": { | ||
| "name": "DevFlow Contributors", | ||
| "email": "dean@keren.dev" | ||
| "name": "Dean0x" | ||
| }, | ||
| "version": "1.3.3", | ||
| "version": "1.4.0", | ||
| "homepage": "https://github.com/dean0x/devflow", | ||
@@ -11,0 +10,0 @@ "repository": "https://github.com/dean0x/devflow", |
+13
-8
@@ -24,3 +24,3 @@ --- | ||
| | `validate-branch` | Pre-flight for /resolve: check branch state | - | | ||
| | `setup-task` | Create feature branch and fetch issue | `TASK_ID`, `BASE_BRANCH`, `ISSUE_INPUT` (optional) | | ||
| | `setup-task` | Create feature branch and fetch issue | `BASE_BRANCH`, `ISSUE_INPUT` (optional), `TASK_DESCRIPTION` (optional) | | ||
| | `fetch-issue` | Fetch GitHub issue for implementation | `ISSUE_INPUT` (number or search term) | | ||
@@ -105,21 +105,26 @@ | `comment-pr` | Create PR inline comments for review findings | `PR_NUMBER`, `REVIEW_BASE_DIR`, `TIMESTAMP` | | ||
| Set up task environment: create feature branch and optionally fetch issue. | ||
| Set up task environment: derive branch name, create feature branch, and optionally fetch issue. | ||
| **Input:** | ||
| - `TASK_ID`: Unique task identifier (becomes branch name) | ||
| - `BASE_BRANCH`: Branch to create from (track this for PR target) | ||
| - `ISSUE_INPUT` (optional): Issue number to fetch | ||
| - `TASK_DESCRIPTION` (optional): Free-text task description (when no issue) | ||
| **Process:** | ||
| 1. Record current branch as BASE_BRANCH for later PR targeting | ||
| 2. Create and checkout feature branch: `git checkout -b {TASK_ID}` | ||
| 3. If ISSUE_INPUT provided, fetch issue details via GitHub API | ||
| 4. Return setup summary with BASE_BRANCH recorded | ||
| 2. **Derive branch name:** | ||
| - If `ISSUE_INPUT` provided: fetch issue via GitHub API first, then derive branch name as `{type}/{number}-{slug}` where: | ||
| - `type` is inferred from issue labels: `bug` → `fix`, `documentation` or `docs` → `docs`, `refactor` → `refactor`, `chore` or `maintenance` → `chore`, default → `feature` | ||
| - `slug` is the issue title: lowercased, non-alphanumeric replaced with hyphens, consecutive hyphens collapsed, trimmed, max 40 characters | ||
| - 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) | ||
| - If neither: fallback to `task-{YYYY-MM-DD_HHMM}` | ||
| 3. Create and checkout feature branch: `git checkout -b {derived-branch-name}` | ||
| 4. Return setup summary with branch name and BASE_BRANCH recorded | ||
| **Output:** | ||
| ```markdown | ||
| ## Task Setup: {TASK_ID} | ||
| ## Task Setup: {branch-name} | ||
| ### Branch | ||
| - **Feature branch**: {TASK_ID} | ||
| - **Branch name**: {derived-branch-name} | ||
| - **Base branch**: {BASE_BRANCH} (PR target) | ||
@@ -126,0 +131,0 @@ |
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
2324356
0.21%3818
-0.13%