Roadmap
This page tracks the development progress of Haft.
Current Version: 0.4.x
Completed
-
Project Initialization
- Interactive TUI wizard
- Spring Initializr dependency integration
- Maven project generation
- Gradle project generation (Groovy & Kotlin DSL)
- YAML and Properties config formats
- Git repository initialization
- Offline operation — No internet required
-
Wizard Features
- 12-step configuration wizard
- Back navigation (Esc key)
- Dynamic package name generation
- Dependency search (
/key) - Category filtering (Tab, 0-9 keys)
-
Maven Parser
- Read pom.xml files
- Write pom.xml files
- Dependency detection (Lombok, JPA, Validation)
- Add/Remove dependencies
-
Gradle Parser
- Read build.gradle (Groovy DSL)
- Read build.gradle.kts (Kotlin DSL)
- Write build.gradle files
- Write build.gradle.kts files
- Dependency detection (Lombok, JPA, Validation)
- Add/Remove dependencies
-
Resource Generation (
haft generate resource)- Controller generation with CRUD endpoints
- Service interface generation
- Service implementation generation
- Repository generation
- Entity generation (with/without Lombok)
- Request/Response DTO generation
- Mapper generation
- ResourceNotFoundException generation
- Smart dependency detection from pom.xml and build.gradle
- Interactive TUI wizard
- File safety (skip existing files)
- Test class generation (ServiceTest, ControllerTest, RepositoryTest, EntityTest)
-
Individual Generators
-
haft generate controller(alias:co) -
haft generate service(alias:s) -
haft generate entity(alias:e) -
haft generate repository(alias:repo) -
haft generate dto
-
-
Dependency Manager
-
haft add <dependency>— Add dependencies -
haft add— Interactive TUI search picker -
haft add --browse— Category browser - Maven Central verification for coordinates
- Auto-fetch latest versions
-
haft remove <dependency>— Remove dependencies -
haft remove— Interactive removal picker - 230+ dependency shortcuts (jwt, guava, feign, etc.)
-
-
Intelligent Architecture Detection
- Layered architecture detection
- Feature-based architecture detection
- Hexagonal architecture support
- Clean architecture support
- Modular monolith support
- Flat architecture detection
- Feature style detection (flat vs nested)
- DTO naming detection (Request/Response vs DTO)
- ID type detection (Long vs UUID)
- Mapper detection (MapStruct, ModelMapper, manual)
- Base entity inheritance detection
- Profile caching for faster subsequent runs
-
Shell Completions
- Bash completion
- Zsh completion
- Fish completion
- PowerShell completion
-
Development Commands (
haft dev)-
haft dev serve— Start with hot-reload -
haft dev build— Build project -
haft dev test— Run tests -
haft dev clean— Clean artifacts - Auto-detect Maven/Gradle
- Wrapper support (mvnw/gradlew)
-
-
Project Analysis
-
haft info— Show project information -
haft info --loc— Include lines of code summary -
haft routes— List REST endpoints (Java & Kotlin) -
haft routes --files— Show file locations -
haft stats— Code statistics with language breakdown -
haft stats --cocomo— COCOMO cost estimates - JSON output support
-
-
Custom Templates
- Project-level templates (
.haft/templates/) - Global user-level templates (
~/.haft/templates/) - Template priority loading (project > global > embedded)
- User-friendly
${var}placeholder syntax - Comment-based conditionals (
@if/@else/@endif) -
haft template init— Copy templates for customization -
haft template list— List all templates with sources -
haft template validate— Validate template syntax
- Project-level templates (
Future: 0.5.0+
Editor Integration
We believe developers should stay in their editor. The first integration will be for Neovim.
-
Neovim Plugin (Priority)
-
:HaftInit— Initialize project from Neovim -
:HaftGenerate— Generate resources -
:HaftAdd— Add dependencies - Telescope integration for dependency search
- Floating window for wizard
-
-
VS Code Extension
- Command palette integration
- Sidebar panel
- Status bar integration
-
IntelliJ Plugin
- Tool window integration
- Actions and shortcuts
Advanced Features
-
Template Enhancements
- Template inheritance
- Additional template variables
-
Additional Generators
- Exception handler generation (
haft generate exception) - Configuration class generation (
haft generate config) - Security configuration (
haft generate security)- JWT authentication
- Session-based authentication
- OAuth2 authentication (Google, GitHub, Facebook)
- Intelligent dependency checking
- User entity detection
- Exception handler generation (
Contributing
Want to help? Check the GitHub Issues for tasks labeled:
good first issue— Great for new contributorshelp wanted— We need assistanceenhancement— Feature requests
See Contributing for guidelines.
Changelog
v0.4.0 (Current)
- Feature:
haft generate security- Generate security configuration with JWT, Session, and OAuth2 support - Feature: Intelligent dependency checking for security dependencies
- Feature: User/Role entity detection and optional generation
- Feature: Architecture-aware security file placement
- Feature:
haft generate config- Generate configuration classes (CORS, OpenAPI, Jackson, Async, Cache, Auditing, WebMvc) - Feature:
haft generate exception— Generate global exception handler with @ControllerAdvice - Feature: Custom templates — Override built-in templates with project or global custom templates
- Feature:
haft template init— Copy embedded templates for customization - Feature:
haft template list— List all templates with source indicators - Feature:
haft template validate— Validate custom template syntax - Feature: User-friendly
${var}placeholder syntax for templates - Feature: Comment-based conditionals (
@if HasLombok,@else,@endif) - Feature: Intelligent architecture detection — Auto-detects Layered, Feature, Hexagonal, Clean, Modular, and Flat architectures
- Feature: Profile caching — First scan cached to
.haft/profile.yamlfor instant subsequent runs - Feature: Test class generation — Generates ServiceTest, ControllerTest, RepositoryTest, EntityTest
- Feature:
--skip-testsflag to skip test generation - Feature:
--refreshflag to force re-scan project profile - Feature: Feature style detection (flat vs nested)
- Feature: DTO naming detection (Request/Response vs DTO)
- Feature: ID type detection (Long vs UUID)
- Feature: Mapper detection (MapStruct, ModelMapper, manual)
- Feature: Base entity inheritance detection
v0.3.0
- Feature:
haft statscommand — Code statistics using SCC - Feature:
haft stats --cocomo— COCOMO cost estimates - Feature:
haft info --loc— Lines of code summary - Feature:
haft routes --files— Show file locations - Feature:
haft routesKotlin support — Scans .kt files - Feature:
haft infocommand — Show project information - Feature:
haft routescommand — List REST endpoints - Feature:
haft devcommand for development workflow - Feature:
haft dev serve— Start application with hot-reload - Feature:
haft dev build— Build project with profiles - Feature:
haft dev test— Run tests with filtering - Feature:
haft dev clean— Clean build artifacts - Feature:
haft completioncommand for shell completions - Feature: Bash, Zsh, Fish, PowerShell completion support
- Feature: Full Gradle support (Groovy & Kotlin DSL)
- Feature: Gradle parser for add/remove/generate commands
- Feature: Gradle project generation with wrapper
v0.2.0
- Feature:
haft addinteractive TUI search picker - Feature:
haft add --browsecategory browser - Feature: Maven Central API verification for coordinates
- Feature: Auto-fetch latest version for Maven coordinates
- Feature:
haft removecommand with interactive picker - Feature: 230+ dependency shortcuts (jwt, guava, feign, resilience4j, etc.)
- Feature: Suffix matching for remove command
v0.1.3
- Feature:
haft generate controller|service|entity|repository|dtocommands - Feature: Individual component generation
- Feature:
haft addbasic command with shortcuts - Feature: Dependency catalog with 30+ shortcuts
v0.1.2
- Feature:
haft generate resourcecommand - Feature: Interactive wizard for resource generation
- Feature: Auto-detect Lombok, JPA, Validation from pom.xml
- Feature: Smart code generation based on dependencies
v0.1.1
- Fix: Config format default to YAML
- Fix: Version injection via ldflags
- Fix: Install script spinner animation
v0.1.0
- Initial release
haft initcommand with full wizard- Spring Initializr integration
- Maven project generation
- Maven parser for pom.xml
- Offline operation
Last updated: December 2024