* fix: honor non-interactive template defaults and Windows paths
Return NOT_FOUND for unknown templates without prompting. Preserve interactive fallback and validate non-interactive overrides.
Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
* fix: resolve remote template URLs on Windows
Windows rejects HTTPS URLs as filesystem paths before Git can clone them. Fall through to supported Git URL validation when the local path probe is invalid.
Co-Authored-By: Codex <noreply@openai.com>
---------
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
- Add testing section to CLAUDE.md and README.md
- Update architecture.md with Testing Architecture section
- Create docs/testing.md with fixture and harness documentation
- Document __VARNAME__ path syntax for CI compatibility
Add TemplateRenderException constructors for undefined variable errors
with suggestions. Refactor InitCommand/ListCommand to return Integer
exit codes. Fix TransformExecutor and TemplateManifest for schema v2.
Rename fixture directories from $packagePath to __packagePath__ to
prevent shell/Maven interpretation. TemplateEngine now converts
__VARNAME__ to $VARNAME before Velocity rendering.
Add 35 tests covering variable substitution, computed variables,
directory transforms, merge mode, and edge cases. Includes test
harness and 8 fixture templates for offline testing.
- Add SuggestionEngine using Levenshtein distance for fuzzy matching
- Add TemplateError with categories mapped to exit codes
- Add ErrorFormatter for consistent ANSI-colored output
- Integrate did-you-mean suggestions in template commands
- Add --verbose flag for stack trace output
- Add PromptValidation record for validation rules (pattern, length, range, enum)
- Add PromptValidator with support for required, pattern, length, range, and enum validation
- Update PromptRunner to validate and re-prompt on failure
- Validate --var CLI overrides, fallback to interactive prompt if invalid
- Add ConsoleUI methods for validation feedback (error, success, warning)
- Add 20 unit tests for PromptValidator
Closes#24
Story #23 - prepares for Voyage API integration:
- TemplateRegistry interface for template listing/download
- GitHubTemplateRegistry wraps existing TemplatesHub
- MockTemplateRegistry with embedded template data
- ListCommand/InitCommand refactored to use registry
- Added --refresh flag to bypass cache
- Move native build to profile (fixes -Pnative flag)
- Fix Docker artifact download paths
- Split package updates: Homebrew to tap, Scoop/AUR via PRs
- Fix SHA replacement to work on subsequent releases
- Skip native builds on PRs for faster CI
- Add ConsoleUI for centralized console I/O
- InitCommand now prompts for template and directory
- Template defaults to new-qqq-application
- PromptRunner uses ConsoleUI for consistency
- Add Javadoc for public methods and classes in core and shared modules.
- Introduce reusable constants for calculations (e.g., BYTES_PER_KB).
- Normalize header spacing and brace placement.
- Update Cache, ConfigLoader, and ApiClient classes for readability and maintainability.