utakata 0.4.0
utakata: ^0.4.0 copied to clipboard
A Dart CLI tool for building Flutter apps with Clean Architecture 4-layer structure, designed for human and AI agent collaboration.
Changelog #
0.4.0 #
- feat(template): Restructured
AI/directory — introducedAI/architecture/to consolidate all architecture-specific resources (guides, features, core, arch_definition.yaml) - feat(template): Unified GUIDE.md and
.tmpltemplates — each layer directory now contains both the implementation guide and code template side by side - feat(template): Moved
arch_definition.yamlandfeatures/intoAI/architecture/for cleaner separation of architecture-dependent vs generic resources - feat(create): Use
flutter create --emptyfor clean project generation without boilerplate comments - refactor(template): Flattened
guides/architectures/clean_architecture/→architecture/guides/to eliminate redundant nesting - chore: Cleared legacy
change_history.yamltemplate data
0.3.5 #
- fix: Added missing
.agent/andAI/template files tolib/src/templates/architectures/clean_architecture/so they correctly generate in new projects. - fix: Fixed the success message of
utakata createcommand.
0.3.4 #
- fix: Fixed
ArchitectureNotFoundExceptionwhen running from a global pub activation. Switched toIsolate.resolvePackageUrifor robust template path resolution instead of relying onPlatform.scriptwhich varies between Dart versions.
0.3.3 #
- feat(ux): Replaced the CLI brand header with a high-quality 3D ASCII art logo (ANSI Shadow font) for better cross-terminal rendering without distortions.
0.3.2 #
- fix: Resolve correct package template path when installed via
dart pub global activate(was failing withArchitectureNotFoundExceptiondue tosnapshots/directory inPlatform.script)
0.3.1 #
- feat(ux): Display
utakata codebrand header (ASCII art, bright cyan) on startup when no command is specified
0.3.0 #
- breaking: Rebranded from
utakata(v0.2.0) to theutakatapackage under the utakata code brand - feat: Architecture-agnostic design — no longer hardcoded to Clean Architecture; architecture is defined by
arch_definition.yaml - feat(validate): New
utakata validatecommand — detects naming rule violations and directory structure violations based onarch_definition.yaml - feat(validate): Naming rules defined per-layer in
arch_definition.yaml(naming_rules:section) - feat:
arch_definition.yamlnow supportsguides_path:field — directs users to the correct documentation on violation - feat(create): Generated projects now include
.agent/andAI/guides/architectures/with architecture-specific guides - feat(i18n): Full internationalization — all CLI messages support English and Japanese via
MessagesResolver - refactor: Monorepo structure — CLI moved to
packages/utakata_code/under theutakatarepository - docs: README rewritten in English;
README_ja.mdadded for Japanese documentation
0.2.0 #
- refactor: Extract common YAML utilities (
YamlUtils) — eliminates duplicated_toYaml/_yamlToMdlogic acrosssnapshotandplancommands - refactor: Extract
StringUtils.toPascalCase()— removes duplicate implementations ingenerateandfeaturecommands - refactor: Add
ProjectPathsconstants class — centralizes all hardcoded path strings (AI/specs/,AI/snapshots/,lib/features/) in one place - refactor: Introduce
BaseCommandbase class — unifies error handling and blank-line output across all commands - fix(status): Replace fragile self-process re-execution (
Platform.script) with directDiffCommand.checkDiff()API call - refactor(feature): Split
FeatureGenerator(393 lines) into per-layer generators (DomainLayerGenerator,InfrastructureLayerGenerator,ApplicationLayerGenerator,PresentationLayerGenerator) - refactor: Replace
uri.pathSegmentspath extraction withp.basename()for safety and consistency - rename:
snapshot→scan— clearer intent for scanning the current directory structure - rename:
generate→sync— better describes propagating Entity changes to each layer - rename:
validate→check— shorter and more intuitive
0.1.4 #
- feat: Add
utakata feature initsubcommand — bulk-generates all features defined inAI/specs/plan_architecture.yamlat once - feat: Support
--dry-runflag forfeature initto preview targets without writing files
0.1.3 #
- fix(windows): Add
runInShell: trueto allProcess.run/Process.startcalls to support Windows whereflutterisflutter.bat
0.1.2 #
- fix: Replace LICENSE file with the full GNU GPL v3 text for proper pub.dev recognition
- fix: Change pubspec.yaml description to English to comply with pub.dev scoring
- docs: Rewrite README.md in English; add README_ja.md for Japanese documentation
- feat: Add
example/main.dartfor pub.dev example score
0.1.1 #
- fix: Change
feature_request.yamltemplate from List format to Map format (fixes parse error inplancommand) - feat: Add optional Core layer configuration items as Map-format templates (all commented out by default)
0.1.0 #
- feat: Migrate all major features to a Dart-based CLI (
utakata) - feat(create): Initialize Flutter projects with incremental dependency setup and Core package scaffolding
- feat(feature add): Generate 4-layer directory structure and files based on Permission / Entity / Feature configuration
- feat(generate): Auto-regenerate Domain / Infrastructure layer code from Freezed (v3) Entity field changes
- feat(plan & snapshot & diff): Define ideal architecture from
feature_request.yamland detect/verify diff against the actual project structure - feat(validate & status): Add directory structure health checks and project analysis reporting
- feat(AI Tooling): Output workflow and guideline templates enabling AI agents to develop without architectural drift