Skip to content

Commit 4ae1e45

Browse files
Release Intent v2.3.2: Enhanced Elixir subagent with antipattern detection
- Added comprehensive antipattern detection to Elixir subagent - Detects and remediates 24 common Elixir antipatterns - Categories: Code (9), Design (6), Process (4), Meta-programming (5) - Full documentation in intent/plugins/claude/subagents/elixir/antipatterns.md - Antipatterns sourced from official Elixir documentation - Updated Elixir subagent (agent.md) with: - Antipattern detection and remediation workflows - Integration with systematic code review process - Example usage commands and report formats - Prevention principles and best practices - Version bump from 2.3.1 to 2.3.2 - Updated .intent/config.json and VERSION file - Added migrate_v2_3_1_to_v2_3_2() function - Updated upgrade paths in intent_upgrade script Run 'intent claude subagents sync' to update the Elixir subagent with the new capabilities.
1 parent e2ec7eb commit 4ae1e45

File tree

9 files changed

+2301
-6
lines changed

9 files changed

+2301
-6
lines changed

.intent/config.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"version": "2.3.1",
3-
"intent_version": "2.3.1",
2+
"version": "2.3.2",
3+
"intent_version": "2.3.2",
44
"project_name": "Intent",
55
"author": "matts",
66
"created": "2025-07-16",

CHANGELOG.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,67 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [2.3.2] - 2025-09-04
9+
10+
### Added
11+
12+
- Comprehensive antipattern detection to Elixir subagent
13+
- Detects and remediates 24 common Elixir antipatterns
14+
- Antipatterns categorized into Code (9), Design (6), Process (4), and Meta-programming (5)
15+
- Full documentation in `intent/plugins/claude/subagents/elixir/antipatterns.md`
16+
- Antipatterns sourced from official Elixir documentation
17+
- Antipattern review workflow integrated into Elixir Doctor
18+
- Example usage commands and report formats for antipattern detection
19+
- Key principles for antipattern prevention
20+
21+
### Changed
22+
23+
- Enhanced Elixir subagent with antipattern detection capabilities
24+
- Updated systematic review template to include antipattern analysis
25+
- Elixir Doctor now automatically checks for antipatterns during code reviews
26+
27+
### Technical Improvements
28+
29+
- Better code quality guidance through antipattern detection
30+
- More comprehensive code review process
31+
- Proactive detection of common Elixir mistakes
32+
33+
## [2.3.1] - 2025-08-29
34+
35+
### Added
36+
37+
- Worker-bee agent for Worker-Bee Driven Design (WDD) in Elixir applications
38+
- Resources directory structure for agents with templates and Mix tasks
39+
- Worker-bee agent includes comprehensive WDD validation and scaffolding tools
40+
41+
### Changed
42+
43+
- Enhanced agent system to support resource directories
44+
- Improved subagent installation and management
45+
46+
## [2.3.0] - 2025-08-20
47+
48+
### Added
49+
50+
- Plugin architecture for Intent
51+
- Claude subagents system (renamed from agents)
52+
- AGENTS.md universal AI agent instructions
53+
- Support for multiple AI platforms through AGENTS.md
54+
- New `intent agents` commands for AGENTS.md management
55+
- New `intent claude subagents` commands (replacing old `intent agents`)
56+
57+
### Changed
58+
59+
- Renamed `intent agents` commands to `intent claude subagents`
60+
- Moved subagents to `intent/plugins/claude/subagents/`
61+
- Updated project structure to support plugins
62+
63+
### Technical Improvements
64+
65+
- More flexible agent system architecture
66+
- Better separation of concerns with plugin system
67+
- Universal agent instructions format
68+
869
## [2.2.1] - 2025-08-11
970

1071
### Added

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.3.1
1+
2.3.2

bin/intent_helpers

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -612,6 +612,20 @@ needs_v2_3_1_upgrade() {
612612
esac
613613
}
614614

615+
# Check if project needs v2.3.2 upgrade
616+
needs_v2_3_2_upgrade() {
617+
local version=$1
618+
619+
case "$version" in
620+
"2.0.0"|"2.1.0"|"2.2.0"|"2.2.1"|"2.3.0"|"2.3.1")
621+
return 0 # Needs 2.3.2 upgrade
622+
;;
623+
*)
624+
return 1 # Already upgraded or different version
625+
;;
626+
esac
627+
}
628+
615629
# Migrate v2.2.0 to v2.2.1
616630
migrate_v2_2_to_v2_2_1() {
617631
local project_root=$1
@@ -750,7 +764,7 @@ migrate_v2_2_to_v2_3_0() {
750764
migrate_v2_3_0_to_v2_3_1() {
751765
local project_root=$1
752766

753-
local target_version="$(get_intent_version 2>/dev/null || echo "2.3.1")"
767+
local target_version="$(get_intent_version 2>/dev/null || echo "2.3.2")"
754768
echo "Upgrading to Intent v$target_version with worker-bee agent..."
755769

756770
# Update .intent/config.json to target version
@@ -786,6 +800,37 @@ migrate_v2_3_0_to_v2_3_1() {
786800
echo " - Run 'intent claude subagents install worker-bee' to install the agent"
787801
}
788802

803+
# Migrate v2.3.1 to v2.3.2 - Enhanced Elixir subagent with antipattern detection
804+
migrate_v2_3_1_to_v2_3_2() {
805+
local project_root=$1
806+
807+
local target_version="$(get_intent_version 2>/dev/null || echo "2.3.2")"
808+
echo "Upgrading to Intent v$target_version with enhanced Elixir subagent..."
809+
810+
# Update config version
811+
echo " Updating config version..."
812+
update_config_version "$project_root" "$target_version"
813+
814+
# The Elixir subagent enhancements are handled by intent claude subagents sync
815+
echo " Elixir subagent enhancements:"
816+
echo " - Added comprehensive antipattern detection (24 patterns)"
817+
echo " - Antipatterns categorized: Code, Design, Process, Meta-programming"
818+
echo " - Full documentation at intent/plugins/claude/subagents/elixir/antipatterns.md"
819+
820+
# Check if elixir subagent is installed
821+
if [ -f "$project_root/.claude/agents/elixir.md" ]; then
822+
echo " Elixir subagent detected. Run 'intent claude subagents sync' to update."
823+
fi
824+
825+
echo " Migration to v$target_version complete!"
826+
echo ""
827+
echo " IMPORTANT CHANGES IN v2.3.2:"
828+
echo " - Enhanced Elixir subagent with antipattern detection"
829+
echo " - Detects and remediates 24 common Elixir antipatterns"
830+
echo " - Antipatterns sourced from official Elixir documentation"
831+
echo " - Run 'intent claude subagents sync' to update installed agents"
832+
}
833+
789834
# Migrate all remaining content from stp/ to intent/
790835
migrate_remaining_content() {
791836
local project_root=$1

bin/intent_upgrade

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ INTENT_HOME="$(cd "$INTENT_BIN/.." && pwd)"
1717
source "$INTENT_BIN/intent_helpers"
1818

1919
# Get target version
20-
TARGET_VERSION="$(get_intent_version 2>/dev/null || echo "2.2.1")"
20+
TARGET_VERSION="$(get_intent_version 2>/dev/null || echo "2.3.2")"
2121

2222
# Function to display usage information
2323
usage() {
@@ -160,28 +160,37 @@ case "$VERSION" in
160160
migrate_v2_2_to_v2_2_1 .
161161
migrate_v2_2_to_v2_3_0 .
162162
migrate_v2_3_0_to_v2_3_1 .
163+
migrate_v2_3_1_to_v2_3_2 .
163164
;;
164165
"2.1.0")
165166
echo "Upgrading from v2.1.0 to v$TARGET_VERSION..."
166167
migrate_v2_1_to_v2_2 .
167168
migrate_v2_2_to_v2_2_1 .
168169
migrate_v2_2_to_v2_3_0 .
169170
migrate_v2_3_0_to_v2_3_1 .
171+
migrate_v2_3_1_to_v2_3_2 .
170172
;;
171173
"2.2.0")
172174
echo "Upgrading from v2.2.0 to v$TARGET_VERSION..."
173175
migrate_v2_2_to_v2_2_1 .
174176
migrate_v2_2_to_v2_3_0 .
175177
migrate_v2_3_0_to_v2_3_1 .
178+
migrate_v2_3_1_to_v2_3_2 .
176179
;;
177180
"2.2.1")
178181
echo "Upgrading from v2.2.1 to v$TARGET_VERSION..."
179182
migrate_v2_2_to_v2_3_0 .
180183
migrate_v2_3_0_to_v2_3_1 .
184+
migrate_v2_3_1_to_v2_3_2 .
181185
;;
182186
"2.3.0")
183187
echo "Upgrading from v2.3.0 to v$TARGET_VERSION..."
184188
migrate_v2_3_0_to_v2_3_1 .
189+
migrate_v2_3_1_to_v2_3_2 .
190+
;;
191+
"2.3.1")
192+
echo "Upgrading from v2.3.1 to v$TARGET_VERSION..."
193+
migrate_v2_3_1_to_v2_3_2 .
185194
;;
186195
*)
187196
error "Unknown version: $VERSION"
Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
1+
# Intent v2.3.2 Release Notes
2+
3+
## Overview
4+
5+
Intent v2.3.2 enhances the Elixir subagent with comprehensive antipattern detection capabilities. This release helps Elixir developers write cleaner, more maintainable code by automatically detecting and providing remediation for 24 common antipatterns sourced from the official Elixir documentation.
6+
7+
## Key Features
8+
9+
### 🔍 Comprehensive Antipattern Detection
10+
11+
The Elixir Doctor now detects and helps remediate 24 common Elixir antipatterns across four categories:
12+
13+
#### Code-related Antipatterns (9 patterns)
14+
15+
- Comments overuse
16+
- Complex `else` clauses in `with`
17+
- Complex extractions in clauses
18+
- Dynamic atom creation
19+
- Long parameter list
20+
- Namespace trespassing
21+
- Non-assertive map access
22+
- Non-assertive pattern matching
23+
- Non-assertive truthiness
24+
25+
#### Design-related Antipatterns (6 patterns)
26+
27+
- Alternative return types
28+
- Boolean obsession
29+
- Exceptions for control-flow
30+
- Primitive obsession
31+
- Unrelated multi-clause function
32+
- Using application configuration for libraries
33+
34+
#### Process-related Antipatterns (4 patterns)
35+
36+
- Code organisation by process
37+
- Scattered process interfaces
38+
- Sending unnecessary data
39+
- Unsupervised processes
40+
41+
#### Meta-programming Antipatterns (5 patterns)
42+
43+
- Compile-time dependencies
44+
- Large code generation
45+
- Unnecessary macros
46+
- `use` instead of `import`
47+
- Untracked compile-time dependencies
48+
49+
### 📊 Enhanced Code Review Process
50+
51+
- **Integrated Detection**: Antipattern checking is now part of the systematic code review workflow
52+
- **Detailed Reports**: Clear reporting with line numbers and specific remediation suggestions
53+
- **Prioritized Fixes**: Antipatterns are categorized and prioritized by impact
54+
- **Prevention Principles**: Key principles to help avoid antipatterns in future code
55+
56+
## What's New
57+
58+
### Added
59+
60+
- Comprehensive antipattern detection section in Elixir subagent
61+
- Full antipattern documentation at `intent/plugins/claude/subagents/elixir/antipatterns.md`
62+
- Antipattern review workflow with systematic approach
63+
- Example usage commands and report formats
64+
- Key principles for antipattern prevention
65+
- Migration function for v2.3.1 to v2.3.2
66+
67+
### Changed
68+
69+
- Enhanced Elixir subagent with antipattern detection capabilities
70+
- Updated systematic review template to include antipattern analysis
71+
- Elixir Doctor now automatically checks for antipatterns during code reviews
72+
73+
### Technical Improvements
74+
75+
- Better code quality guidance through antipattern detection
76+
- More comprehensive code review process
77+
- Proactive detection of common Elixir mistakes
78+
79+
## Installation & Upgrade
80+
81+
### For New Users
82+
83+
```bash
84+
git clone https://github.com/matthewsinclair/intent.git
85+
cd intent
86+
export PATH="$PATH:$(pwd)/bin"
87+
intent bootstrap
88+
```
89+
90+
### For Existing Users
91+
92+
```bash
93+
cd /path/to/intent
94+
git pull origin main
95+
intent upgrade # Automatically handles 2.3.1 to 2.3.2 migration
96+
intent claude subagents sync # Update installed agents
97+
```
98+
99+
## Using Antipattern Detection
100+
101+
### Check a Single File
102+
103+
```bash
104+
# Ask the Elixir agent to check for antipatterns
105+
"Check lib/my_app/user.ex for antipatterns"
106+
```
107+
108+
### Review an Entire Module
109+
110+
```bash
111+
# Review a module for antipatterns
112+
"Review MyApp.Accounts for common antipatterns"
113+
```
114+
115+
### Focus on Specific Categories
116+
117+
```bash
118+
# Check for specific antipattern types
119+
"Check for process-related antipatterns in lib/my_app/"
120+
```
121+
122+
### Combined with Full Review
123+
124+
```bash
125+
# Complete Elixir Doctor review including antipatterns
126+
"Apply Elixir Doctor and check for antipatterns in MyApp.Users"
127+
```
128+
129+
## Example Antipattern Report
130+
131+
The Elixir Doctor provides detailed reports:
132+
133+
```
134+
## Antipattern Analysis
135+
136+
Found 4 antipatterns in MyApp.Users:
137+
138+
### Code Antipatterns (2)
139+
1. **Non-assertive map access** (line 45)
140+
- Using `user[:email]` when email is required
141+
- Remediation: Use `user.email` for required fields
142+
143+
2. **Long parameter list** (line 78)
144+
- Function has 7 parameters
145+
- Remediation: Group related params into maps/structs
146+
147+
### Design Antipatterns (1)
148+
1. **Boolean obsession** (line 123)
149+
- Using `admin: true, editor: true` options
150+
- Remediation: Use `:role` atom instead
151+
152+
### Process Antipatterns (1)
153+
1. **Scattered process interfaces** (lines 200-250)
154+
- Direct GenServer.call/2 usage in multiple places
155+
- Remediation: Centralize in single interface module
156+
```
157+
158+
## Testing
159+
160+
After upgrading, verify the new functionality:
161+
162+
```bash
163+
# Check version
164+
intent --version # Should show 2.3.2
165+
166+
# Update agents
167+
intent claude subagents sync
168+
169+
# Verify elixir agent is updated
170+
intent claude subagents show elixir | grep antipattern
171+
```
172+
173+
## Migration Notes
174+
175+
This release includes a smooth migration path from v2.3.1:
176+
177+
- Version configuration is automatically updated
178+
- Existing Elixir subagent installations are updated via `intent claude subagents sync`
179+
- No breaking changes or manual intervention required
180+
181+
## Documentation
182+
183+
- **Full Antipattern Reference**: `intent/plugins/claude/subagents/elixir/antipatterns.md`
184+
- **Elixir Agent Documentation**: Run `intent claude subagents show elixir`
185+
- **Intent Help**: Run `intent help` for general command documentation
186+
187+
## Support
188+
189+
For issues or questions:
190+
191+
- GitHub Issues: <https://github.com/matthewsinclair/intent/issues>
192+
- Documentation: Run `intent help` for command documentation
193+
194+
## Contributors
195+
196+
This release was developed by Matthew Sinclair with the antipatterns documentation sourced from the official Elixir documentation at hexdocs.pm.
197+
198+
---
199+
200+
*Intent v2.3.2 - Structured Development Process with Enhanced Elixir Code Quality*

0 commit comments

Comments
 (0)