devflow-kit 1.1.0 → 1.2.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 (107) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +23 -6
  3. package/dist/plugins.js +67 -3
  4. package/package.json +2 -1
  5. package/plugins/devflow-accessibility/.claude-plugin/plugin.json +15 -0
  6. package/plugins/devflow-ambient/.claude-plugin/plugin.json +1 -1
  7. package/plugins/devflow-ambient/skills/ambient-router/SKILL.md +1 -1
  8. package/plugins/devflow-ambient/skills/ambient-router/references/skill-catalog.md +4 -0
  9. package/plugins/devflow-audit-claude/.claude-plugin/plugin.json +1 -1
  10. package/plugins/devflow-code-review/.claude-plugin/plugin.json +1 -4
  11. package/plugins/devflow-code-review/agents/reviewer.md +8 -0
  12. package/plugins/devflow-code-review/commands/code-review-teams.md +11 -1
  13. package/plugins/devflow-code-review/commands/code-review.md +12 -2
  14. package/plugins/devflow-core-skills/.claude-plugin/plugin.json +2 -6
  15. package/plugins/devflow-debug/.claude-plugin/plugin.json +1 -1
  16. package/plugins/devflow-frontend-design/.claude-plugin/plugin.json +15 -0
  17. package/plugins/devflow-go/.claude-plugin/plugin.json +15 -0
  18. package/plugins/devflow-go/skills/go/SKILL.md +187 -0
  19. package/plugins/devflow-go/skills/go/references/concurrency.md +312 -0
  20. package/plugins/devflow-go/skills/go/references/detection.md +129 -0
  21. package/plugins/devflow-go/skills/go/references/patterns.md +232 -0
  22. package/plugins/devflow-go/skills/go/references/violations.md +205 -0
  23. package/plugins/devflow-implement/.claude-plugin/plugin.json +1 -3
  24. package/plugins/devflow-implement/agents/coder.md +11 -6
  25. package/plugins/devflow-java/.claude-plugin/plugin.json +15 -0
  26. package/plugins/devflow-java/skills/java/SKILL.md +183 -0
  27. package/plugins/devflow-java/skills/java/references/detection.md +120 -0
  28. package/plugins/devflow-java/skills/java/references/modern-java.md +270 -0
  29. package/plugins/devflow-java/skills/java/references/patterns.md +235 -0
  30. package/plugins/devflow-java/skills/java/references/violations.md +213 -0
  31. package/plugins/devflow-python/.claude-plugin/plugin.json +15 -0
  32. package/plugins/devflow-python/skills/python/SKILL.md +188 -0
  33. package/plugins/devflow-python/skills/python/references/async.md +220 -0
  34. package/plugins/devflow-python/skills/python/references/detection.md +128 -0
  35. package/plugins/devflow-python/skills/python/references/patterns.md +226 -0
  36. package/plugins/devflow-python/skills/python/references/violations.md +204 -0
  37. package/plugins/devflow-react/.claude-plugin/plugin.json +15 -0
  38. package/plugins/{devflow-core-skills → devflow-react}/skills/react/SKILL.md +1 -1
  39. package/plugins/{devflow-core-skills → devflow-react}/skills/react/references/patterns.md +3 -3
  40. package/plugins/devflow-resolve/.claude-plugin/plugin.json +1 -1
  41. package/plugins/devflow-rust/.claude-plugin/plugin.json +15 -0
  42. package/plugins/devflow-rust/skills/rust/SKILL.md +193 -0
  43. package/plugins/devflow-rust/skills/rust/references/detection.md +131 -0
  44. package/plugins/devflow-rust/skills/rust/references/ownership.md +242 -0
  45. package/plugins/devflow-rust/skills/rust/references/patterns.md +210 -0
  46. package/plugins/devflow-rust/skills/rust/references/violations.md +191 -0
  47. package/plugins/devflow-self-review/.claude-plugin/plugin.json +1 -1
  48. package/plugins/devflow-specify/.claude-plugin/plugin.json +1 -1
  49. package/plugins/devflow-typescript/.claude-plugin/plugin.json +15 -0
  50. package/plugins/{devflow-core-skills → devflow-typescript}/skills/typescript/references/patterns.md +3 -3
  51. package/shared/agents/coder.md +11 -6
  52. package/shared/agents/reviewer.md +8 -0
  53. package/shared/skills/ambient-router/SKILL.md +1 -1
  54. package/shared/skills/ambient-router/references/skill-catalog.md +4 -0
  55. package/shared/skills/go/SKILL.md +187 -0
  56. package/shared/skills/go/references/concurrency.md +312 -0
  57. package/shared/skills/go/references/detection.md +129 -0
  58. package/shared/skills/go/references/patterns.md +232 -0
  59. package/shared/skills/go/references/violations.md +205 -0
  60. package/shared/skills/java/SKILL.md +183 -0
  61. package/shared/skills/java/references/detection.md +120 -0
  62. package/shared/skills/java/references/modern-java.md +270 -0
  63. package/shared/skills/java/references/patterns.md +235 -0
  64. package/shared/skills/java/references/violations.md +213 -0
  65. package/shared/skills/python/SKILL.md +188 -0
  66. package/shared/skills/python/references/async.md +220 -0
  67. package/shared/skills/python/references/detection.md +128 -0
  68. package/shared/skills/python/references/patterns.md +226 -0
  69. package/shared/skills/python/references/violations.md +204 -0
  70. package/shared/skills/react/SKILL.md +1 -1
  71. package/shared/skills/react/references/patterns.md +3 -3
  72. package/shared/skills/rust/SKILL.md +193 -0
  73. package/shared/skills/rust/references/detection.md +131 -0
  74. package/shared/skills/rust/references/ownership.md +242 -0
  75. package/shared/skills/rust/references/patterns.md +210 -0
  76. package/shared/skills/rust/references/violations.md +191 -0
  77. package/shared/skills/typescript/references/patterns.md +3 -3
  78. package/plugins/devflow-code-review/skills/react/SKILL.md +0 -276
  79. package/plugins/devflow-code-review/skills/react/references/patterns.md +0 -1331
  80. package/plugins/devflow-core-skills/skills/accessibility/SKILL.md +0 -229
  81. package/plugins/devflow-core-skills/skills/accessibility/references/detection.md +0 -171
  82. package/plugins/devflow-core-skills/skills/accessibility/references/patterns.md +0 -670
  83. package/plugins/devflow-core-skills/skills/accessibility/references/violations.md +0 -419
  84. package/plugins/devflow-core-skills/skills/frontend-design/SKILL.md +0 -254
  85. package/plugins/devflow-core-skills/skills/frontend-design/references/detection.md +0 -184
  86. package/plugins/devflow-core-skills/skills/frontend-design/references/patterns.md +0 -511
  87. package/plugins/devflow-core-skills/skills/frontend-design/references/violations.md +0 -453
  88. package/plugins/devflow-core-skills/skills/react/references/violations.md +0 -565
  89. package/plugins/devflow-implement/skills/accessibility/SKILL.md +0 -229
  90. package/plugins/devflow-implement/skills/accessibility/references/detection.md +0 -171
  91. package/plugins/devflow-implement/skills/accessibility/references/patterns.md +0 -670
  92. package/plugins/devflow-implement/skills/accessibility/references/violations.md +0 -419
  93. package/plugins/devflow-implement/skills/frontend-design/SKILL.md +0 -254
  94. package/plugins/devflow-implement/skills/frontend-design/references/detection.md +0 -184
  95. package/plugins/devflow-implement/skills/frontend-design/references/patterns.md +0 -511
  96. package/plugins/devflow-implement/skills/frontend-design/references/violations.md +0 -453
  97. /package/plugins/{devflow-code-review → devflow-accessibility}/skills/accessibility/SKILL.md +0 -0
  98. /package/plugins/{devflow-code-review → devflow-accessibility}/skills/accessibility/references/detection.md +0 -0
  99. /package/plugins/{devflow-code-review → devflow-accessibility}/skills/accessibility/references/patterns.md +0 -0
  100. /package/plugins/{devflow-code-review → devflow-accessibility}/skills/accessibility/references/violations.md +0 -0
  101. /package/plugins/{devflow-code-review → devflow-frontend-design}/skills/frontend-design/SKILL.md +0 -0
  102. /package/plugins/{devflow-code-review → devflow-frontend-design}/skills/frontend-design/references/detection.md +0 -0
  103. /package/plugins/{devflow-code-review → devflow-frontend-design}/skills/frontend-design/references/patterns.md +0 -0
  104. /package/plugins/{devflow-code-review → devflow-frontend-design}/skills/frontend-design/references/violations.md +0 -0
  105. /package/plugins/{devflow-code-review → devflow-react}/skills/react/references/violations.md +0 -0
  106. /package/plugins/{devflow-core-skills → devflow-typescript}/skills/typescript/SKILL.md +0 -0
  107. /package/plugins/{devflow-core-skills → devflow-typescript}/skills/typescript/references/violations.md +0 -0
package/CHANGELOG.md CHANGED
@@ -5,6 +5,44 @@ 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
+ ## [Unreleased]
9
+
10
+ ---
11
+
12
+ ## [1.2.0] - 2026-03-05
13
+
14
+ ### Added
15
+ - **Polyglot language skills** — Go, Java, Python, and Rust skill plugins with comprehensive patterns
16
+ - Go: error handling, interfaces, concurrency (errgroup, worker pools, fan-out/fan-in)
17
+ - Java: records, sealed classes, streams, composition over inheritance
18
+ - Python: type hints, protocols, dataclasses, async patterns
19
+ - Rust: ownership, error handling (`thiserror`/`anyhow`), type system, concurrency
20
+ - Skills: 26 → 30, Plugins: 9 → 17
21
+ - **Optional plugin architecture** — Language/ecosystem plugins (`optional: true`) not installed by default
22
+ - Install selectively: `devflow init --plugin=go --plugin=python`
23
+ - Existing skills (typescript, react, accessibility, frontend-design) moved to optional plugins
24
+ - `devflow-core-skills` no longer bundles language-specific skills
25
+ - **Conditional language reviews** in `/code-review` command
26
+ - Spawns language-specific Reviewer agents when matching files are in the diff
27
+ - Skill availability check: skips review if optional plugin not installed
28
+ - **Dynamic skill loading in Coder agent** — Reads language skills at runtime based on DOMAIN hint instead of static frontmatter dependencies
29
+
30
+ ### Changed
31
+ - **`devflow-core-skills`** no longer includes typescript, react, accessibility, or frontend-design skills (moved to optional plugins)
32
+ - **Coder agent** frontmatter trimmed from 14 skills to 6 core skills; language skills loaded dynamically
33
+
34
+ ### Fixed
35
+ - **Deprecated `grpc.WithInsecure()`** in Go concurrency examples → replaced with `grpc.WithTransportCredentials(insecure.NewCredentials())`
36
+ - **Deprecated `datetime.utcnow`** in Python dataclass example → replaced with `datetime.now(timezone.utc)`
37
+ - **SQL injection** in Python async streaming example → replaced raw query with parameterized query
38
+ - **Deprecated `<Context.Provider>`** in React examples → replaced with `<Context>` (React 19+)
39
+ - **Deprecated `useRef<T>()`** without argument in React patterns → replaced with `useRef<T | undefined>(undefined)` (React 19+)
40
+ - **Non-portable `NodeJS.Timeout`** in TypeScript debounce/throttle → replaced with `ReturnType<typeof setTimeout>`
41
+ - **Unsafe `Function` type** in TypeScript type guard → replaced with `(...args: unknown[]) => unknown`
42
+ - **Go test file exclusion** removed from go skill activation (test files are valid Go code)
43
+
44
+ ---
45
+
8
46
  ## [1.1.0] - 2026-03-04
9
47
 
10
48
  ### Added
@@ -749,6 +787,7 @@ devflow init
749
787
 
750
788
  ---
751
789
 
790
+ [1.2.0]: https://github.com/dean0x/devflow/compare/v1.1.0...v1.2.0
752
791
  [1.1.0]: https://github.com/dean0x/devflow/compare/v1.0.0...v1.1.0
753
792
  [1.0.0]: https://github.com/dean0x/devflow/compare/v0.9.0...v1.0.0
754
793
  [0.9.0]: https://github.com/dean0x/devflow/releases/tag/v0.9.0
package/README.md CHANGED
@@ -24,7 +24,7 @@ DevFlow adds structured commands that handle the full lifecycle: specify feature
24
24
  - **Full-lifecycle implementation** — spec, explore, plan, code, validate, refine in one command
25
25
  - **Automatic session memory** — survives restarts, `/clear`, and context compaction
26
26
  - **Parallel debugging** — competing hypotheses investigated simultaneously
27
- - **26 quality skills** — 12 auto-activating, plus specialized review and agent skills
27
+ - **30 quality skills** — 8 auto-activating core, 8 optional language/ecosystem, plus specialized review and agent skills
28
28
 
29
29
  ## Quick Start
30
30
 
@@ -81,7 +81,7 @@ Creates a PR when complete.
81
81
  Multi-perspective code review with specialized reviewers:
82
82
 
83
83
  - **Core**: Security, Architecture, Performance, Quality
84
- - **Conditional** (activated when relevant): TypeScript, React, Accessibility, Database, Dependencies, Documentation
84
+ - **Conditional** (activated when relevant): TypeScript, React, Accessibility, Go, Python, Java, Rust, Database, Dependencies, Documentation
85
85
  - Findings classified as must-fix, should-fix, or nit with severity and confidence levels
86
86
 
87
87
  Provides actionable feedback with specific file locations and suggested fixes.
@@ -120,10 +120,27 @@ The `devflow-core-skills` plugin provides quality enforcement skills that activa
120
120
  | `test-driven-development` | Implementing new features (RED-GREEN-REFACTOR) |
121
121
  | `test-patterns` | Writing or modifying tests |
122
122
  | `input-validation` | Creating API endpoints |
123
- | `typescript` | Working in TypeScript codebases |
124
- | `react` | Working with React components |
125
- | `accessibility` | Creating UI components, forms, interactive elements |
126
- | `frontend-design` | Working with CSS, styling, visual design |
123
+
124
+ ## Language & Ecosystem Plugins
125
+
126
+ Optional plugins for language-specific patterns. Install only what you need:
127
+
128
+ | Plugin | Skill | Triggers When |
129
+ |--------|-------|---------------|
130
+ | `devflow-typescript` | `typescript` | Working in TypeScript codebases |
131
+ | `devflow-react` | `react` | Working with React components |
132
+ | `devflow-accessibility` | `accessibility` | Creating UI components, forms |
133
+ | `devflow-frontend-design` | `frontend-design` | Working with CSS, styling |
134
+ | `devflow-go` | `go` | Working in Go codebases |
135
+ | `devflow-python` | `python` | Working in Python codebases |
136
+ | `devflow-java` | `java` | Working in Java codebases |
137
+ | `devflow-rust` | `rust` | Working in Rust codebases |
138
+
139
+ ```bash
140
+ # Install specific language plugins
141
+ npx devflow-kit init --plugin=typescript,react
142
+ npx devflow-kit init --plugin=go
143
+ ```
127
144
 
128
145
  ## Requirements
129
146
 
package/dist/plugins.js CHANGED
@@ -10,7 +10,7 @@ export const DEVFLOW_PLUGINS = [
10
10
  description: 'Auto-activating quality enforcement (foundation layer)',
11
11
  commands: [],
12
12
  agents: [],
13
- skills: ['accessibility', 'core-patterns', 'docs-framework', 'frontend-design', 'git-safety', 'git-workflow', 'github-patterns', 'input-validation', 'react', 'test-driven-development', 'test-patterns', 'typescript'],
13
+ skills: ['core-patterns', 'docs-framework', 'git-safety', 'git-workflow', 'github-patterns', 'input-validation', 'test-driven-development', 'test-patterns'],
14
14
  },
15
15
  {
16
16
  name: 'devflow-specify',
@@ -24,14 +24,14 @@ export const DEVFLOW_PLUGINS = [
24
24
  description: 'Complete task implementation workflow',
25
25
  commands: ['/implement'],
26
26
  agents: ['git', 'skimmer', 'synthesizer', 'coder', 'simplifier', 'scrutinizer', 'shepherd', 'validator'],
27
- skills: ['accessibility', 'agent-teams', 'frontend-design', 'implementation-patterns', 'self-review'],
27
+ skills: ['agent-teams', 'implementation-patterns', 'self-review'],
28
28
  },
29
29
  {
30
30
  name: 'devflow-code-review',
31
31
  description: 'Comprehensive code review',
32
32
  commands: ['/code-review'],
33
33
  agents: ['git', 'reviewer', 'synthesizer'],
34
- 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', 'test-patterns'],
34
+ skills: ['agent-teams', 'architecture-patterns', 'complexity-patterns', 'consistency-patterns', 'database-patterns', 'dependencies-patterns', 'documentation-patterns', 'performance-patterns', 'regression-patterns', 'review-methodology', 'security-patterns', 'test-patterns'],
35
35
  },
36
36
  {
37
37
  name: 'devflow-resolve',
@@ -69,6 +69,70 @@ export const DEVFLOW_PLUGINS = [
69
69
  skills: [],
70
70
  optional: true,
71
71
  },
72
+ {
73
+ name: 'devflow-typescript',
74
+ description: 'TypeScript language patterns (type safety, generics, utility types)',
75
+ commands: [],
76
+ agents: [],
77
+ skills: ['typescript'],
78
+ optional: true,
79
+ },
80
+ {
81
+ name: 'devflow-react',
82
+ description: 'React framework patterns (hooks, state, composition, performance)',
83
+ commands: [],
84
+ agents: [],
85
+ skills: ['react'],
86
+ optional: true,
87
+ },
88
+ {
89
+ name: 'devflow-accessibility',
90
+ description: 'Web accessibility patterns (WCAG, ARIA, keyboard navigation)',
91
+ commands: [],
92
+ agents: [],
93
+ skills: ['accessibility'],
94
+ optional: true,
95
+ },
96
+ {
97
+ name: 'devflow-frontend-design',
98
+ description: 'Frontend design patterns (typography, color, spacing, motion)',
99
+ commands: [],
100
+ agents: [],
101
+ skills: ['frontend-design'],
102
+ optional: true,
103
+ },
104
+ {
105
+ name: 'devflow-go',
106
+ description: 'Go language patterns (error handling, interfaces, concurrency)',
107
+ commands: [],
108
+ agents: [],
109
+ skills: ['go'],
110
+ optional: true,
111
+ },
112
+ {
113
+ name: 'devflow-java',
114
+ description: 'Java language patterns (records, sealed classes, composition)',
115
+ commands: [],
116
+ agents: [],
117
+ skills: ['java'],
118
+ optional: true,
119
+ },
120
+ {
121
+ name: 'devflow-python',
122
+ description: 'Python language patterns (type hints, protocols, data modeling)',
123
+ commands: [],
124
+ agents: [],
125
+ skills: ['python'],
126
+ optional: true,
127
+ },
128
+ {
129
+ name: 'devflow-rust',
130
+ description: 'Rust language patterns (ownership, error handling, type system)',
131
+ commands: [],
132
+ agents: [],
133
+ skills: ['rust'],
134
+ optional: true,
135
+ },
72
136
  ];
73
137
  /**
74
138
  * Deprecated command names from old installations.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devflow-kit",
3
- "version": "1.1.0",
3
+ "version": "1.2.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": {
@@ -24,6 +24,7 @@
24
24
  "dev": "tsc --watch",
25
25
  "cli": "node dist/cli.js",
26
26
  "prepublishOnly": "npm run build",
27
+ "version:bump": "npx tsx scripts/bump-version.ts",
27
28
  "test": "vitest run",
28
29
  "test:watch": "vitest"
29
30
  },
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "devflow-accessibility",
3
+ "description": "Web accessibility patterns - WCAG compliance, ARIA roles, keyboard navigation, focus management",
4
+ "author": {
5
+ "name": "DevFlow Contributors",
6
+ "email": "dean@keren.dev"
7
+ },
8
+ "version": "1.2.0",
9
+ "homepage": "https://github.com/dean0x/devflow",
10
+ "repository": "https://github.com/dean0x/devflow",
11
+ "license": "MIT",
12
+ "keywords": ["accessibility", "wcag", "aria", "a11y"],
13
+ "agents": [],
14
+ "skills": ["accessibility"]
15
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "devflow-ambient",
3
3
  "description": "Ambient mode — auto-loads relevant skills for every prompt",
4
- "version": "1.1.0",
4
+ "version": "1.2.0",
5
5
  "agents": [],
6
6
  "skills": ["ambient-router"]
7
7
  }
@@ -54,7 +54,7 @@ Based on classified intent, read the following skills to inform your response.
54
54
 
55
55
  | Intent | Primary Skills | Secondary (if file type matches) |
56
56
  |--------|---------------|----------------------------------|
57
- | **BUILD** | test-driven-development, implementation-patterns | typescript (.ts), react (.tsx/.jsx), frontend-design (CSS/UI), input-validation (forms/API), security-patterns (auth/crypto) |
57
+ | **BUILD** | test-driven-development, implementation-patterns | typescript (.ts), react (.tsx/.jsx), go (.go), java (.java), python (.py), rust (.rs), frontend-design (CSS/UI), input-validation (forms/API), security-patterns (auth/crypto) |
58
58
  | **DEBUG** | test-patterns, core-patterns | git-safety (if git operations involved) |
59
59
  | **REVIEW** | self-review, core-patterns | test-patterns |
60
60
  | **PLAN** | implementation-patterns | core-patterns |
@@ -16,6 +16,10 @@ These skills may be loaded during STANDARD-depth ambient routing.
16
16
  | react | React components in scope | `*.tsx`, `*.jsx` |
17
17
  | frontend-design | UI/styling work | `*.css`, `*.scss`, `*.tsx` with styling keywords |
18
18
  | input-validation | Forms, APIs, user input | Files with form/input/validation keywords |
19
+ | go | Go files in scope | `*.go` |
20
+ | java | Java files in scope | `*.java` |
21
+ | python | Python files in scope | `*.py` |
22
+ | rust | Rust files in scope | `*.rs` |
19
23
  | security-patterns | Auth, crypto, secrets | Files with auth/token/crypto/password keywords |
20
24
 
21
25
  ### DEBUG Intent
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "devflow-audit-claude",
3
3
  "description": "Audit CLAUDE.md files against Anthropic best practices",
4
- "version": "1.1.0",
4
+ "version": "1.2.0",
5
5
  "agents": [],
6
6
  "skills": []
7
7
  }
@@ -5,14 +5,13 @@
5
5
  "name": "DevFlow Contributors",
6
6
  "email": "dean@keren.dev"
7
7
  },
8
- "version": "1.1.0",
8
+ "version": "1.2.0",
9
9
  "homepage": "https://github.com/dean0x/devflow",
10
10
  "repository": "https://github.com/dean0x/devflow",
11
11
  "license": "MIT",
12
12
  "keywords": ["review", "code-quality", "security", "architecture", "pr-review"],
13
13
  "agents": ["git", "reviewer", "synthesizer"],
14
14
  "skills": [
15
- "accessibility",
16
15
  "agent-teams",
17
16
  "architecture-patterns",
18
17
  "complexity-patterns",
@@ -20,9 +19,7 @@
20
19
  "database-patterns",
21
20
  "dependencies-patterns",
22
21
  "documentation-patterns",
23
- "frontend-design",
24
22
  "performance-patterns",
25
- "react",
26
23
  "regression-patterns",
27
24
  "review-methodology",
28
25
  "security-patterns",
@@ -34,6 +34,10 @@ The orchestrator provides:
34
34
  | `react` | `~/.claude/skills/react/SKILL.md` |
35
35
  | `accessibility` | `~/.claude/skills/accessibility/SKILL.md` |
36
36
  | `frontend-design` | `~/.claude/skills/frontend-design/SKILL.md` |
37
+ | `go` | `~/.claude/skills/go/SKILL.md` |
38
+ | `java` | `~/.claude/skills/java/SKILL.md` |
39
+ | `python` | `~/.claude/skills/python/SKILL.md` |
40
+ | `rust` | `~/.claude/skills/rust/SKILL.md` |
37
41
 
38
42
  ## Responsibilities
39
43
 
@@ -117,3 +121,7 @@ Report format for `{output_path}`:
117
121
  | react | If .tsx/.jsx files changed |
118
122
  | accessibility | If .tsx/.jsx files changed |
119
123
  | frontend-design | If .tsx/.jsx/.css/.scss files changed |
124
+ | go | If .go files changed |
125
+ | java | If .java files changed |
126
+ | python | If .py files changed |
127
+ | rust | If .rs files changed |
@@ -42,10 +42,16 @@ Detect file types in diff to determine conditional reviews:
42
42
  | .tsx/.jsx files | react |
43
43
  | .tsx/.jsx files | accessibility |
44
44
  | .tsx/.jsx/.css/.scss files | frontend-design |
45
+ | .go files | go |
46
+ | .java files | java |
47
+ | .py files | python |
48
+ | .rs files | rust |
45
49
  | DB/migration files | database |
46
50
  | Dependency files changed | dependencies |
47
51
  | Docs or significant code | documentation |
48
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.
54
+
49
55
  ### Phase 2: Spawn Review Team
50
56
 
51
57
  Create an agent team for adversarial review. Always include 4 core perspectives; conditionally add more based on Phase 1 analysis.
@@ -61,6 +67,10 @@ Create an agent team for adversarial review. Always include 4 core perspectives;
61
67
  - **React**: hooks, state, rendering, composition (if .tsx/.jsx changed)
62
68
  - **Accessibility**: ARIA, keyboard nav, focus management (if .tsx/.jsx changed)
63
69
  - **Frontend Design**: visual consistency, spacing, typography (if .tsx/.jsx/.css changed)
70
+ - **Go**: error handling, interfaces, concurrency (if .go changed)
71
+ - **Java**: records, sealed classes, composition (if .java changed)
72
+ - **Python**: type hints, protocols, data modeling (if .py changed)
73
+ - **Rust**: ownership, error handling, type system (if .rs changed)
64
74
  - **Database**: schema, queries, migrations, indexes (if DB files changed)
65
75
  - **Dependencies**: CVEs, versions, licenses, supply chain (if package files changed)
66
76
  - **Documentation**: doc drift, missing docs, stale comments (if docs or significant code changed)
@@ -238,7 +248,7 @@ Display results:
238
248
  │ ├─ Architecture Reviewer (teammate)
239
249
  │ ├─ Performance Reviewer (teammate)
240
250
  │ ├─ Quality Reviewer (teammate)
241
- │ └─ [Conditional: TypeScript, React, A11y, Design, DB, Deps, Docs]
251
+ │ └─ [Conditional: TypeScript, React, A11y, Design, Go, Java, Python, Rust, DB, Deps, Docs]
242
252
 
243
253
  ├─ Phase 3: Debate round
244
254
  │ └─ Reviewers challenge each other (max 2 rounds)
@@ -42,13 +42,19 @@ Detect file types in diff to determine conditional reviews:
42
42
  | .tsx/.jsx files | react |
43
43
  | .tsx/.jsx files | accessibility |
44
44
  | .tsx/.jsx/.css/.scss files | frontend-design |
45
+ | .go files | go |
46
+ | .java files | java |
47
+ | .py files | python |
48
+ | .rs files | rust |
45
49
  | DB/migration files | database |
46
50
  | Dependency files changed | dependencies |
47
51
  | Docs or significant code | documentation |
48
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.
54
+
49
55
  ### Phase 2: Run Reviews (Parallel)
50
56
 
51
- Spawn Reviewer agents **in a single message**. Always run 7 core reviews; conditionally add up to 4 more:
57
+ Spawn Reviewer agents **in a single message**. Always run 7 core reviews; conditionally add more based on changed file types:
52
58
 
53
59
  | Focus | Always | Pattern Skill |
54
60
  |-------|--------|---------------|
@@ -63,6 +69,10 @@ Spawn Reviewer agents **in a single message**. Always run 7 core reviews; condit
63
69
  | react | conditional | react |
64
70
  | accessibility | conditional | accessibility |
65
71
  | frontend-design | conditional | frontend-design |
72
+ | go | conditional | go |
73
+ | java | conditional | java |
74
+ | python | conditional | python |
75
+ | rust | conditional | rust |
66
76
  | database | conditional | database-patterns |
67
77
  | dependencies | conditional | dependencies-patterns |
68
78
  | documentation | conditional | documentation-patterns |
@@ -123,7 +133,7 @@ Display results from all agents:
123
133
  │ ├─ Reviewer: consistency
124
134
  │ ├─ Reviewer: regression
125
135
  │ ├─ Reviewer: tests
126
- │ └─ Reviewer: [conditional: typescript, react, a11y, design, database, deps, docs]
136
+ │ └─ Reviewer: [conditional: typescript, react, a11y, design, go, java, python, rust, database, deps, docs]
127
137
 
128
138
  ├─ Phase 3: Synthesis (PARALLEL)
129
139
  │ ├─ Git agent (comment-pr)
@@ -5,24 +5,20 @@
5
5
  "name": "DevFlow Contributors",
6
6
  "email": "dean@keren.dev"
7
7
  },
8
- "version": "1.1.0",
8
+ "version": "1.2.0",
9
9
  "homepage": "https://github.com/dean0x/devflow",
10
10
  "repository": "https://github.com/dean0x/devflow",
11
11
  "license": "MIT",
12
12
  "keywords": ["skills", "quality", "patterns", "auto-activate", "enforcement", "foundation"],
13
13
  "agents": [],
14
14
  "skills": [
15
- "accessibility",
16
15
  "core-patterns",
17
16
  "docs-framework",
18
- "frontend-design",
19
17
  "git-safety",
20
18
  "git-workflow",
21
19
  "github-patterns",
22
20
  "input-validation",
23
- "react",
24
21
  "test-driven-development",
25
- "test-patterns",
26
- "typescript"
22
+ "test-patterns"
27
23
  ]
28
24
  }
@@ -5,7 +5,7 @@
5
5
  "name": "DevFlow Contributors",
6
6
  "email": "dean@keren.dev"
7
7
  },
8
- "version": "1.1.0",
8
+ "version": "1.2.0",
9
9
  "homepage": "https://github.com/dean0x/devflow",
10
10
  "repository": "https://github.com/dean0x/devflow",
11
11
  "license": "MIT",
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "devflow-frontend-design",
3
+ "description": "Frontend design patterns - typography, color systems, spacing, motion, responsive design",
4
+ "author": {
5
+ "name": "DevFlow Contributors",
6
+ "email": "dean@keren.dev"
7
+ },
8
+ "version": "1.2.0",
9
+ "homepage": "https://github.com/dean0x/devflow",
10
+ "repository": "https://github.com/dean0x/devflow",
11
+ "license": "MIT",
12
+ "keywords": ["design", "typography", "color", "css"],
13
+ "agents": [],
14
+ "skills": ["frontend-design"]
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "devflow-go",
3
+ "description": "Go language patterns - error handling, interfaces, concurrency, package design",
4
+ "author": {
5
+ "name": "DevFlow Contributors",
6
+ "email": "dean@keren.dev"
7
+ },
8
+ "version": "1.2.0",
9
+ "homepage": "https://github.com/dean0x/devflow",
10
+ "repository": "https://github.com/dean0x/devflow",
11
+ "license": "MIT",
12
+ "keywords": ["go", "golang", "concurrency", "errors"],
13
+ "agents": [],
14
+ "skills": ["go"]
15
+ }
@@ -0,0 +1,187 @@
1
+ ---
2
+ name: go
3
+ description: This skill should be used when the user works with Go files (.go), asks about "error handling", "interfaces", "goroutines", "channels", "packages", or discusses Go idioms and concurrency. Provides patterns for error handling, interface design, concurrency, and package organization.
4
+ user-invocable: false
5
+ allowed-tools: Read, Grep, Glob
6
+ activation:
7
+ file-patterns:
8
+ - "**/*.go"
9
+ exclude:
10
+ - "vendor/**"
11
+ ---
12
+
13
+ # Go Patterns
14
+
15
+ Reference for Go-specific patterns, idioms, and best practices.
16
+
17
+ ## Iron Law
18
+
19
+ > **ERRORS ARE VALUES**
20
+ >
21
+ > Never ignore errors. `if err != nil` is correctness, not boilerplate. Every error
22
+ > return must be checked, wrapped with context, or explicitly documented as intentionally
23
+ > ignored with `_ = fn()`. Silent error swallowing causes cascading failures.
24
+
25
+ ## When This Skill Activates
26
+
27
+ - Working with Go codebases
28
+ - Designing interfaces and packages
29
+ - Implementing concurrent code
30
+ - Handling errors
31
+ - Structuring Go projects
32
+
33
+ ---
34
+
35
+ ## Error Handling
36
+
37
+ ### Wrap Errors with Context
38
+
39
+ ```go
40
+ // BAD: return err
41
+ // GOOD: return fmt.Errorf("reading config %s: %w", path, err)
42
+ ```
43
+
44
+ ### Sentinel Errors for Expected Conditions
45
+
46
+ ```go
47
+ var ErrNotFound = errors.New("not found")
48
+
49
+ func FindUser(id string) (*User, error) {
50
+ u, err := db.Get(id)
51
+ if err != nil {
52
+ return nil, fmt.Errorf("finding user %s: %w", id, err)
53
+ }
54
+ if u == nil {
55
+ return nil, ErrNotFound
56
+ }
57
+ return u, nil
58
+ }
59
+ // Caller: if errors.Is(err, ErrNotFound) { ... }
60
+ ```
61
+
62
+ ---
63
+
64
+ ## Interface Design
65
+
66
+ ### Accept Interfaces, Return Structs
67
+
68
+ ```go
69
+ // BAD: func NewService(repo *PostgresRepo) *Service
70
+ // GOOD: func NewService(repo Repository) *Service
71
+
72
+ type Repository interface {
73
+ FindByID(ctx context.Context, id string) (*Entity, error)
74
+ Save(ctx context.Context, entity *Entity) error
75
+ }
76
+ ```
77
+
78
+ ### Keep Interfaces Small
79
+
80
+ ```go
81
+ // BAD: 10-method interface
82
+ // GOOD: single-method interfaces composed as needed
83
+ type Reader interface { Read(p []byte) (n int, err error) }
84
+ type Writer interface { Write(p []byte) (n int, err error) }
85
+ type ReadWriter interface { Reader; Writer }
86
+ ```
87
+
88
+ ---
89
+
90
+ ## Concurrency
91
+
92
+ ### Use Context for Cancellation
93
+
94
+ ```go
95
+ func Process(ctx context.Context, items []Item) error {
96
+ g, ctx := errgroup.WithContext(ctx)
97
+ for _, item := range items {
98
+ g.Go(func() error {
99
+ return processItem(ctx, item)
100
+ })
101
+ }
102
+ return g.Wait()
103
+ }
104
+ ```
105
+
106
+ ### Channel Direction
107
+
108
+ ```go
109
+ // Declare direction in function signatures
110
+ func producer(ch chan<- int) { ch <- 42 }
111
+ func consumer(ch <-chan int) { v := <-ch; _ = v }
112
+ ```
113
+
114
+ ---
115
+
116
+ ## Package Design
117
+
118
+ ### Organize by Domain, Not by Type
119
+
120
+ ```go
121
+ // BAD: models/, controllers/, services/
122
+ // GOOD: user/, order/, payment/
123
+ ```
124
+
125
+ ### Export Only What's Needed
126
+
127
+ ```go
128
+ // Internal helpers stay unexported (lowercase)
129
+ func (s *Service) validate(u *User) error { ... }
130
+
131
+ // Public API is exported (uppercase)
132
+ func (s *Service) CreateUser(ctx context.Context, req CreateUserReq) (*User, error) { ... }
133
+ ```
134
+
135
+ ---
136
+
137
+ ## Zero Values
138
+
139
+ ```go
140
+ // Use zero values as valid defaults
141
+ var mu sync.Mutex // Ready to use
142
+ var buf bytes.Buffer // Ready to use
143
+ var wg sync.WaitGroup // Ready to use
144
+
145
+ // Design types with useful zero values
146
+ type Config struct {
147
+ Timeout time.Duration // zero = no timeout
148
+ Retries int // zero = no retries
149
+ }
150
+ ```
151
+
152
+ ---
153
+
154
+ ## Anti-Patterns
155
+
156
+ | Pattern | Bad | Good |
157
+ |---------|-----|------|
158
+ | Ignoring error | `val, _ := fn()` | `val, err := fn(); if err != nil { ... }` |
159
+ | Naked return | `return` in named returns | Explicit `return val, err` |
160
+ | init() abuse | Complex `init()` functions | Explicit initialization in `main()` or constructors |
161
+ | Interface pollution | Defining interfaces before use | Define interfaces at the consumer site |
162
+ | Goroutine leak | `go fn()` without lifecycle | Use context, errgroup, or done channels |
163
+
164
+ ---
165
+
166
+ ## Extended References
167
+
168
+ For additional patterns and examples:
169
+ - `references/violations.md` - Common Go violations
170
+ - `references/patterns.md` - Extended Go patterns
171
+ - `references/detection.md` - Detection patterns for Go issues
172
+ - `references/concurrency.md` - Advanced concurrency patterns
173
+
174
+ ---
175
+
176
+ ## Checklist
177
+
178
+ - [ ] All errors checked or explicitly ignored with `_ =`
179
+ - [ ] Errors wrapped with `fmt.Errorf("context: %w", err)`
180
+ - [ ] Interfaces defined at consumer, not producer
181
+ - [ ] Interfaces kept small (1-3 methods)
182
+ - [ ] Context passed as first parameter
183
+ - [ ] Goroutines have clear lifecycle/cancellation
184
+ - [ ] Channel direction specified in signatures
185
+ - [ ] Zero values are useful defaults
186
+ - [ ] Packages organized by domain
187
+ - [ ] No `init()` with side effects