Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,62 @@
"description": "Audit CLAUDE.md files against Anthropic best practices",
"version": "1.1.0",
"keywords": ["audit", "claude-md", "best-practices"]
},
{
"name": "devflow-typescript",
"source": "./plugins/devflow-typescript",
"description": "TypeScript language patterns (type safety, generics, utility types)",
"version": "1.1.0",
"keywords": ["typescript", "types", "generics"]
},
{
"name": "devflow-react",
"source": "./plugins/devflow-react",
"description": "React framework patterns (hooks, state, composition, performance)",
"version": "1.1.0",
"keywords": ["react", "hooks", "components"]
},
{
"name": "devflow-accessibility",
"source": "./plugins/devflow-accessibility",
"description": "Web accessibility patterns (WCAG, ARIA, keyboard navigation)",
"version": "1.1.0",
"keywords": ["accessibility", "wcag", "aria", "a11y"]
},
{
"name": "devflow-frontend-design",
"source": "./plugins/devflow-frontend-design",
"description": "Frontend design patterns (typography, color, spacing, motion)",
"version": "1.1.0",
"keywords": ["design", "typography", "css"]
},
{
"name": "devflow-go",
"source": "./plugins/devflow-go",
"description": "Go language patterns (error handling, interfaces, concurrency)",
"version": "1.1.0",
"keywords": ["go", "golang", "concurrency"]
},
{
"name": "devflow-python",
"source": "./plugins/devflow-python",
"description": "Python language patterns (type hints, protocols, data modeling)",
"version": "1.1.0",
"keywords": ["python", "type-hints", "dataclasses"]
},
{
"name": "devflow-java",
"source": "./plugins/devflow-java",
"description": "Java language patterns (records, sealed classes, composition)",
"version": "1.1.0",
"keywords": ["java", "records", "composition"]
},
{
"name": "devflow-rust",
"source": "./plugins/devflow-rust",
"description": "Rust language patterns (ownership, error handling, type system)",
"version": "1.1.0",
"keywords": ["rust", "ownership", "type-safety"]
}
]
}
34 changes: 34 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,40 @@ All notable changes to DevFlow will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Added
- **Polyglot language skills** — Go, Java, Python, and Rust skill plugins with comprehensive patterns
- Go: error handling, interfaces, concurrency (errgroup, worker pools, fan-out/fan-in)
- Java: records, sealed classes, streams, composition over inheritance
- Python: type hints, protocols, dataclasses, async patterns
- Rust: ownership, error handling (`thiserror`/`anyhow`), type system, concurrency
- Skills: 26 → 30, Plugins: 9 → 17
- **Optional plugin architecture** — Language/ecosystem plugins (`optional: true`) not installed by default
- Install selectively: `devflow init --plugin=go --plugin=python`
- Existing skills (typescript, react, accessibility, frontend-design) moved to optional plugins
- `devflow-core-skills` no longer bundles language-specific skills
- **Conditional language reviews** in `/code-review` command
- Spawns language-specific Reviewer agents when matching files are in the diff
- Skill availability check: skips review if optional plugin not installed
- **Dynamic skill loading in Coder agent** — Reads language skills at runtime based on DOMAIN hint instead of static frontmatter dependencies

### Changed
- **`devflow-core-skills`** no longer includes typescript, react, accessibility, or frontend-design skills (moved to optional plugins)
- **Coder agent** frontmatter trimmed from 14 skills to 6 core skills; language skills loaded dynamically

### Fixed
- **Deprecated `grpc.WithInsecure()`** in Go concurrency examples → replaced with `grpc.WithTransportCredentials(insecure.NewCredentials())`
- **Deprecated `datetime.utcnow`** in Python dataclass example → replaced with `datetime.now(timezone.utc)`
- **SQL injection** in Python async streaming example → replaced raw query with parameterized query
- **Deprecated `<Context.Provider>`** in React examples → replaced with `<Context>` (React 19+)
- **Deprecated `useRef<T>()`** without argument in React patterns → replaced with `useRef<T | undefined>(undefined)` (React 19+)
- **Non-portable `NodeJS.Timeout`** in TypeScript debounce/throttle → replaced with `ReturnType<typeof setTimeout>`
- **Unsafe `Function` type** in TypeScript type guard → replaced with `(...args: unknown[]) => unknown`
- **Go test file exclusion** removed from go skill activation (test files are valid Go code)

---

## [1.1.0] - 2026-03-04

### Added
Expand Down
14 changes: 11 additions & 3 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ DevFlow enhances Claude Code with intelligent development workflows. Modificatio

## Architecture Overview

Plugin marketplace with 9 self-contained plugins, each following the Claude plugins format (`.claude-plugin/plugin.json`, `commands/`, `agents/`, `skills/`).
Plugin marketplace with 17 plugins (9 core + 8 optional language/ecosystem), each following the Claude plugins format (`.claude-plugin/plugin.json`, `commands/`, `agents/`, `skills/`).

| Plugin | Purpose | Teams Variant |
|--------|---------|---------------|
Expand All @@ -25,6 +25,14 @@ Plugin marketplace with 9 self-contained plugins, each following the Claude plug
| `devflow-ambient` | Ambient mode — auto-loads relevant skills based on each prompt | No |
| `devflow-core-skills` | Auto-activating quality enforcement | No |
| `devflow-audit-claude` | Audit CLAUDE.md files (optional) | No |
| `devflow-typescript` | TypeScript language patterns (optional) | No |
| `devflow-react` | React framework patterns (optional) | No |
| `devflow-accessibility` | Web accessibility patterns (optional) | No |
| `devflow-frontend-design` | Frontend design patterns (optional) | No |
| `devflow-go` | Go language patterns (optional) | No |
| `devflow-python` | Python language patterns (optional) | No |
| `devflow-java` | Java language patterns (optional) | No |
| `devflow-rust` | Rust language patterns (optional) | No |

Commands with Teams Variant ship as `{name}.md` (parallel subagents) and `{name}-teams.md` (Agent Teams with debate). The installer copies the chosen variant based on `--teams`/`--no-teams` flag.

Expand All @@ -36,9 +44,9 @@ Commands with Teams Variant ship as `{name}.md` (parallel subagents) and `{name}

```
devflow/
├── shared/skills/ # 26 skills (single source of truth)
├── shared/skills/ # 30 skills (single source of truth)
├── shared/agents/ # 10 shared agents (single source of truth)
├── plugins/devflow-*/ # 9 self-contained plugins
├── plugins/devflow-*/ # 17 plugins (9 core + 8 optional language/ecosystem)
├── docs/reference/ # Detailed reference documentation
├── scripts/ # Helper scripts (statusline, docs-helpers)
│ └── hooks/ # Working Memory + ambient hooks (stop, session-start, pre-compact, ambient-prompt)
Expand Down
29 changes: 23 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ DevFlow adds structured commands that handle the full lifecycle: specify feature
- **Full-lifecycle implementation** — spec, explore, plan, code, validate, refine in one command
- **Automatic session memory** — survives restarts, `/clear`, and context compaction
- **Parallel debugging** — competing hypotheses investigated simultaneously
- **26 quality skills** — 12 auto-activating, plus specialized review and agent skills
- **30 quality skills** — 8 auto-activating core, 8 optional language/ecosystem, plus specialized review and agent skills

## Quick Start

Expand Down Expand Up @@ -81,7 +81,7 @@ Creates a PR when complete.
Multi-perspective code review with specialized reviewers:

- **Core**: Security, Architecture, Performance, Quality
- **Conditional** (activated when relevant): TypeScript, React, Accessibility, Database, Dependencies, Documentation
- **Conditional** (activated when relevant): TypeScript, React, Accessibility, Go, Python, Java, Rust, Database, Dependencies, Documentation
- Findings classified as must-fix, should-fix, or nit with severity and confidence levels

Provides actionable feedback with specific file locations and suggested fixes.
Expand Down Expand Up @@ -120,10 +120,27 @@ The `devflow-core-skills` plugin provides quality enforcement skills that activa
| `test-driven-development` | Implementing new features (RED-GREEN-REFACTOR) |
| `test-patterns` | Writing or modifying tests |
| `input-validation` | Creating API endpoints |
| `typescript` | Working in TypeScript codebases |
| `react` | Working with React components |
| `accessibility` | Creating UI components, forms, interactive elements |
| `frontend-design` | Working with CSS, styling, visual design |

## Language & Ecosystem Plugins

Optional plugins for language-specific patterns. Install only what you need:

| Plugin | Skill | Triggers When |
|--------|-------|---------------|
| `devflow-typescript` | `typescript` | Working in TypeScript codebases |
| `devflow-react` | `react` | Working with React components |
| `devflow-accessibility` | `accessibility` | Creating UI components, forms |
| `devflow-frontend-design` | `frontend-design` | Working with CSS, styling |
| `devflow-go` | `go` | Working in Go codebases |
| `devflow-python` | `python` | Working in Python codebases |
| `devflow-java` | `java` | Working in Java codebases |
| `devflow-rust` | `rust` | Working in Rust codebases |

```bash
# Install specific language plugins
npx devflow-kit init --plugin=typescript,react
npx devflow-kit init --plugin=go
```

## Requirements

Expand Down
8 changes: 8 additions & 0 deletions docs/reference/skills-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,10 @@ Language and framework patterns. Referenced by agents via frontmatter and condit
| `react` | Components, hooks, state management, performance | React codebases |
| `accessibility` | Keyboard, ARIA, focus, color contrast | Frontend codebases |
| `frontend-design` | Typography, color, spacing, visual design | Frontend codebases |
| `go` | Error handling, interfaces, concurrency, package design | Go codebases |
| `python` | Type hints, protocols, dataclasses, async patterns | Python codebases |
| `java` | Records, sealed classes, composition, modern Java | Java codebases |
| `rust` | Ownership, borrowing, error handling, type-driven design | Rust codebases |

## How Skills Activate

Expand Down Expand Up @@ -184,6 +188,10 @@ activation:
| `typescript` | `**/*.ts`, `**/*.tsx` | `node_modules/**`, `**/*.d.ts` |
| `accessibility` | `**/*.tsx`, `**/*.jsx`, `**/*.css` | `node_modules/**` |
| `frontend-design` | `**/*.tsx`, `**/*.jsx`, `**/*.css`, `**/*.scss` | `node_modules/**` |
| `go` | `**/*.go` | `vendor/**` |
| `python` | `**/*.py` | `venv/**`, `.venv/**`, `**/__pycache__/**` |
| `java` | `**/*.java` | `**/build/**`, `**/target/**` |
| `rust` | `**/*.rs` | `**/target/**` |
| `test-patterns` | `**/*.test.*`, `**/*.spec.*`, `**/test/**` | `node_modules/**` |

**Note:** Glob patterns are metadata hints for documentation. Claude Code does not currently read glob patterns to trigger skills — activation happens through agent frontmatter and Reviewer dynamic read (see "How Skills Activate" above).
Expand Down
15 changes: 15 additions & 0 deletions plugins/devflow-accessibility/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"name": "devflow-accessibility",
"description": "Web accessibility patterns - WCAG compliance, ARIA roles, keyboard navigation, focus management",
"author": {
"name": "DevFlow Contributors",
"email": "dean@keren.dev"
},
"version": "1.1.0",
"homepage": "https://github.com/dean0x/devflow",
"repository": "https://github.com/dean0x/devflow",
"license": "MIT",
"keywords": ["accessibility", "wcag", "aria", "a11y"],
"agents": [],
"skills": ["accessibility"]
}
3 changes: 0 additions & 3 deletions plugins/devflow-code-review/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,14 @@
"keywords": ["review", "code-quality", "security", "architecture", "pr-review"],
"agents": ["git", "reviewer", "synthesizer"],
"skills": [
"accessibility",
"agent-teams",
"architecture-patterns",
"complexity-patterns",
"consistency-patterns",
"database-patterns",
"dependencies-patterns",
"documentation-patterns",
"frontend-design",
"performance-patterns",
"react",
"regression-patterns",
"review-methodology",
"security-patterns",
Expand Down
12 changes: 11 additions & 1 deletion plugins/devflow-code-review/commands/code-review-teams.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,16 @@ Detect file types in diff to determine conditional reviews:
| .tsx/.jsx files | react |
| .tsx/.jsx files | accessibility |
| .tsx/.jsx/.css/.scss files | frontend-design |
| .go files | go |
| .java files | java |
| .py files | python |
| .rs files | rust |
| DB/migration files | database |
| Dependency files changed | dependencies |
| Docs or significant code | documentation |

**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.

### Phase 2: Spawn Review Team

Create an agent team for adversarial review. Always include 4 core perspectives; conditionally add more based on Phase 1 analysis.
Expand All @@ -61,6 +67,10 @@ Create an agent team for adversarial review. Always include 4 core perspectives;
- **React**: hooks, state, rendering, composition (if .tsx/.jsx changed)
- **Accessibility**: ARIA, keyboard nav, focus management (if .tsx/.jsx changed)
- **Frontend Design**: visual consistency, spacing, typography (if .tsx/.jsx/.css changed)
- **Go**: error handling, interfaces, concurrency (if .go changed)
- **Java**: records, sealed classes, composition (if .java changed)
- **Python**: type hints, protocols, data modeling (if .py changed)
- **Rust**: ownership, error handling, type system (if .rs changed)
- **Database**: schema, queries, migrations, indexes (if DB files changed)
- **Dependencies**: CVEs, versions, licenses, supply chain (if package files changed)
- **Documentation**: doc drift, missing docs, stale comments (if docs or significant code changed)
Expand Down Expand Up @@ -238,7 +248,7 @@ Display results:
│ ├─ Architecture Reviewer (teammate)
│ ├─ Performance Reviewer (teammate)
│ ├─ Quality Reviewer (teammate)
│ └─ [Conditional: TypeScript, React, A11y, Design, DB, Deps, Docs]
│ └─ [Conditional: TypeScript, React, A11y, Design, Go, Java, Python, Rust, DB, Deps, Docs]
├─ Phase 3: Debate round
│ └─ Reviewers challenge each other (max 2 rounds)
Expand Down
14 changes: 12 additions & 2 deletions plugins/devflow-code-review/commands/code-review.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,19 @@ Detect file types in diff to determine conditional reviews:
| .tsx/.jsx files | react |
| .tsx/.jsx files | accessibility |
| .tsx/.jsx/.css/.scss files | frontend-design |
| .go files | go |
| .java files | java |
| .py files | python |
| .rs files | rust |
| DB/migration files | database |
| Dependency files changed | dependencies |
| Docs or significant code | documentation |

**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.

### Phase 2: Run Reviews (Parallel)

Spawn Reviewer agents **in a single message**. Always run 7 core reviews; conditionally add up to 4 more:
Spawn Reviewer agents **in a single message**. Always run 7 core reviews; conditionally add more based on changed file types:

| Focus | Always | Pattern Skill |
|-------|--------|---------------|
Expand All @@ -63,6 +69,10 @@ Spawn Reviewer agents **in a single message**. Always run 7 core reviews; condit
| react | conditional | react |
| accessibility | conditional | accessibility |
| frontend-design | conditional | frontend-design |
| go | conditional | go |
| java | conditional | java |
| python | conditional | python |
| rust | conditional | rust |
| database | conditional | database-patterns |
| dependencies | conditional | dependencies-patterns |
| documentation | conditional | documentation-patterns |
Expand Down Expand Up @@ -123,7 +133,7 @@ Display results from all agents:
│ ├─ Reviewer: consistency
│ ├─ Reviewer: regression
│ ├─ Reviewer: tests
│ └─ Reviewer: [conditional: typescript, react, a11y, design, database, deps, docs]
│ └─ Reviewer: [conditional: typescript, react, a11y, design, go, java, python, rust, database, deps, docs]
├─ Phase 3: Synthesis (PARALLEL)
│ ├─ Git agent (comment-pr)
Expand Down
6 changes: 1 addition & 5 deletions plugins/devflow-core-skills/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,13 @@
"keywords": ["skills", "quality", "patterns", "auto-activate", "enforcement", "foundation"],
"agents": [],
"skills": [
"accessibility",
"core-patterns",
"docs-framework",
"frontend-design",
"git-safety",
"git-workflow",
"github-patterns",
"input-validation",
"react",
"test-driven-development",
"test-patterns",
"typescript"
"test-patterns"
]
}
15 changes: 15 additions & 0 deletions plugins/devflow-frontend-design/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"name": "devflow-frontend-design",
"description": "Frontend design patterns - typography, color systems, spacing, motion, responsive design",
"author": {
"name": "DevFlow Contributors",
"email": "dean@keren.dev"
},
"version": "1.1.0",
"homepage": "https://github.com/dean0x/devflow",
"repository": "https://github.com/dean0x/devflow",
"license": "MIT",
"keywords": ["design", "typography", "color", "css"],
"agents": [],
"skills": ["frontend-design"]
}
15 changes: 15 additions & 0 deletions plugins/devflow-go/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"name": "devflow-go",
"description": "Go language patterns - error handling, interfaces, concurrency, package design",
"author": {
"name": "DevFlow Contributors",
"email": "dean@keren.dev"
},
"version": "1.1.0",
"homepage": "https://github.com/dean0x/devflow",
"repository": "https://github.com/dean0x/devflow",
"license": "MIT",
"keywords": ["go", "golang", "concurrency", "errors"],
"agents": [],
"skills": ["go"]
}
2 changes: 0 additions & 2 deletions plugins/devflow-implement/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@
"keywords": ["implementation", "coding", "workflow", "agents", "agentic", "pr"],
"agents": ["git", "skimmer", "synthesizer", "coder", "simplifier", "scrutinizer", "shepherd", "validator"],
"skills": [
"accessibility",
"agent-teams",
"frontend-design",
"implementation-patterns",
"self-review"
]
Expand Down
Loading