utakata 0.5.8
utakata: ^0.5.8 copied to clipboard
A Dart CLI tool for building Flutter apps with pluggable architecture templates (Clean Architecture, MVVM, and more), designed for human and AI agent collaboration.
Changelog #
0.5.8 #
- fix(diff): Flattened
directpermission group inplanFeaturesto align with the actual physical file structure inlib/features/which does not nest direct features under adirectfolder.
0.5.7 #
- fix(version): Fixed hardcoded version display in
utakata --version— now correctly shows the current version - feat(status):
utakata statusnow also generatesAI/snapshots/preview/project_status.mdMarkdown preview - docs: Added English
README.md, renamed original toREADME_ja.md
0.5.6 #
- feat(status):
utakata statusnow also generatesAI/snapshots/preview/project_status.md— a human-readable Markdown preview of the project status with ✅/❌ icons, tables, and feature count
0.5.5 #
- feat(core): New
utakata corecommand — generates Core directory structure dynamically fromarch_definition.yamlcore_modules(replaces hardcodedgenerate_core.sh) - feat(core):
--archoption to specify architecture (auto-detects fromfeature_request.yamlif omitted) - feat(status):
utakata statusnow scans the project and writes real-time data toAI/snapshots/project_status.yaml— tracksproject.name/version,flutter,coremodules,entry_points,documents, andfeatures.count - refactor(status): Core modules in
project_status.yamlare now dynamically generated fromarch_definition.yamlinstead of hardcoded - chore(template): Removed unused legacy files
actual_architecture.yaml,change_history.yamland their previews from bothclean_architectureandmvvmtemplates
0.5.4 #
- fix(diff): Fixed root key mismatch between
plan_architecture.yaml(hasfeatures:root) andscanFeaturesStructure(returns contents directly) —utakata diff/utakata checkwere falsely reportingfeaturesas Missing and permission folders as Extra - fix(validate): Applied the same root key extraction fix to
utakata validatedirectory structure comparison
0.5.3 #
- feat(template/mvvm): Expanded MVVM (3-layer) architecture template to match
clean_architecturecompleteness — added GUIDE.md for all 8 layer directories (1_model/{entities,repositories,services,exceptions},2_viewmodel/{states,notifiers},3_view/{widgets,screens}) - feat(template/mvvm): Added full architecture guides (
guides/README.md,arch_summary.md,directory_structure_and_naming_rules.md,common/collaboration.md,dependencies/core_stack.yaml+.md) - feat(template/mvvm): Added Core layer guides (
core/core_architecture.md,routing/,theme/,di/,api/) with MVVM-specific DI guidance - feat(template/mvvm): Added
entry_point_guide.mdformain.dart/app.dartsetup - feat(template/mvvm): Added
AI/specs/templates (feature_request.yaml,structure_plan.md,application_specification.md) matching clean_architecture format - feat(template/mvvm): Copied
AI/scripts/,AI/snapshots/,AI/logs/from clean_architecture - feat(template/mvvm): Added
.agent/directory with rules, skills, workflows — all content adapted for MVVM (3-layer Model→ViewModel→View ordering, DI incore/di/, Service instead of UseCase, Screen instead of Page) - refactor(template/mvvm): Enriched
arch_definition.yamlguides section withapply_to,detail_content_path,do_list,dont_list,allowed_imports,forbidden_importsfor all 9 layer guides
0.5.2 #
- feat(verify): Switched verification commands (
utakata diff,utakata check,utakata validate,utakata status) to use real-time directory scanning instead of reading saved snapshot files. They now scan disk changes dynamically and auto-updatecurrent_structure.yamlin the background (no longer requiring manualutakata scanbefore diff/check). - refactor(plan): Reverted plan architecture structure back to nested
features.{permission}.{featureName}format to completely align with physical folder structure, resolving false validation errors when permission folders are present.
0.5.1 #
- fix(plan): Corrected
feature_request.yamltemplate file in clean_architecture. Changedfeaturesdefault from[](List) to{}(Map) and updated the commented example to Map format to align withutakata planparser expectations (was failing withplanMissingFeaturesKeyexception). - feat(feature): Skip placeholder
.dartfiles generation duringutakata feature addandutakata feature init. Now only architecture directory structure andGUIDE.mdfiles are generated, avoiding template boilerplates.
0.5.0 #
- feat(multi-arch):
utakata plannow dynamically generates architecture plans fromarch_definition.yaml— no longer hardcoded to Clean Architecture - feat(multi-arch): Added
architecturefield tofeature_request.yaml(project.architecturefor project default, per-feature override also supported) - feat(template): Added MVVM (3-layer) as a built-in architecture template (
1_model/2_viewmodel/3_view) - feat(diff):
utakata diffnow compares file names (__files__) when present inplan_architecture.yaml, enabling file-level progress tracking - feat(validate):
utakata validateauto-detectsarchitectureIdfromfeature_request.yaml(--archflag still available for override) - fix(validate): Exclude
.freezed.dart/.g.dartgenerated files from naming rule validation - fix(validate): Skip
exceptions/subdirectories from parent naming rule matching (was causing false positives) - fix(validate): Skip
__files__key in directory structure comparison (was reporting 67+ false Extra violations) - fix(diff): Smart
__files__comparison — only compare file names when plan explicitly defines them; ignore extra files not in plan - refactor(plan): Flat output format (
features.{name}) instead of permission-grouped (features.{perm}.{name}) - refactor(init):
feature initreadspermissionandarchitectureIdfromfeature_request.yamlinstead of plan structure - fix(naming): Relaxed
1_localdata source pattern from_local_data_source.dartto_data_source.dart(directory already implies locality) - fix(naming):
{feature}placeholder inarch_definition.yamldescriptionfor application/presentation layer files (state, providers, notifiers, pages)
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