VeryGoodOpenSource/very_good_cli
56.0
Adequate · 5 August 2026
13.4k
lines of production code
Dart
primary language
4
measurements over time
What this system is
This system is a comprehensive CLI tool and library for generating, testing, and managing Dart and Flutter projects. It provides commands to scaffold various project types, including Flutter apps, packages, CLI tools, and documentation sites, while also offering a test runner with coverage and optimization features. Additionally, it includes utilities for managing package dependencies and verifying license compliance across workspaces.
How it got here
2021–2022 — CLI architecture and template expansion
28 changes.
This period focused on establishing the foundational structure of the Very Good CLI, introducing a modular command runner with auto-update and verbose logging capabilities. It also expanded the CLI's template library to include support for Flutter apps, Dart CLI tools, documentation sites, and Flame games, while simultaneously setting up the project's documentation site.
2023 — CLI expansion and license auditing
24 changes.
This period focused on expanding the CLI with new commands for managing packages and checking license compliance, alongside a structural refactor of the create command. Significant effort was also dedicated to adding comprehensive unit and end-to-end tests for these new features and existing components.
2025–2026 — CLI expansion and configuration
11 changes.
This period focused on expanding the CLI's capabilities by introducing new commands for running Dart tests, accessing tools via an MCP server, and generating Flutter UI packages. It also introduced project-level configuration via very\_good.yaml and improved dependency resolution for Pub workspaces.
Features
Add Dart CLI project template
The \very\_good\_dart\_cli\ template is introduced, providing a new scaffold for generating Dart CLI applications. This template includes a command runner with a \--verbose\ flag, an \update\ command for checking and applying updates, and a sample command. The generated project features a \.github\ directory with workflows for license checking, semantic pull requests, and building/testing the CLI. It also includes a \post\_gen\ hook that runs \dart pub get\ and fixes import ordering, along with comprehensive unit tests for the commands and hooks.
_lib/src/commands/create/templates/very\_good\_dart\cli · high confidence
Add SPDX license generation hook for new projects
A new pre-generation hook has been added to the \tool/spdx\_license/hooks\ directory, enabling automatic inclusion of the official SPDX license list in generated projects. The \pre\_gen.dart\ script downloads and parses the SPDX license data from GitHub, making the list available as a template variable for code generation. This change introduces the core logic for license enumeration, supported by corresponding unit tests and configuration files (\analysis\_options.yaml\, \dart\_test.yaml\) to ensure code quality and test isolation.
_tool/spdx\license/hooks · high confidence
Add \`packages check licenses\` command to verify package licenses
Users can now run \very\_good packages check licenses\ to scan a project's dependencies and verify their licenses against allowed or forbidden lists. The command supports filtering by dependency type (e.g., direct, transitive), skipping specific packages, and ignoring retrieval failures. It also provides options to restrict or ban specific licenses and can output results in text or CSV formats.
lib/src/commands/packages/commands/check · high confidence
Add docs\_site template for generating documentation sites
The \very\_good create\ command now supports a new \docs\_site\ template, allowing users to generate a Docusaurus-based documentation site. This includes the full project structure with configuration files (e.g., \docusaurus.config.js\), source files (e.g., \src/pages/index.tsx\), and supporting assets. The template is registered in the CLI's template registry, enabling users to scaffold a documentation site with a single command.
_lib/src/commands/create/templates/very\_good\_docs\site · high confidence
Add homepage layout and styling for the documentation site
The site now includes a new landing page at the root of the documentation site, featuring a hero banner with a dynamic logo (switching between light and dark mode), a features section highlighting template generation capabilities, and blog post previews. The styling is defined in a new CSS module (index.module.css) that supports dark mode via CSS variables and includes responsive adjustments for mobile devices.
site/src/pages · high confidence
Add new \`very\_good\_flame\_game\` template for creating Flame-based Flutter projects
A new template named \very\_good\_flame\_game\ has been added to the \very\_good\_cli\ tool, allowing users to generate new Flutter projects based on the Flame game engine. This template includes all necessary configuration files, such as GitHub workflows, issue templates, and IDE run configurations, providing a complete starting point for game development.
_lib/src/commands/create/templates/very\_good\_flame\game · high confidence
Add packages command with check subcommand
A new 'packages' command has been introduced to manage packages, which includes a 'check' subcommand for license detection. This change restructures the CLI by creating a dedicated 'packages' command that groups related package management and checking functionalities.
lib/src/commands/packages · high confidence
Add parser for pubspec.lock to support license checking
A new parser for pubspec.lock files has been added to the \packages check license\ command, enabling the tool to analyze the type and source of dependencies. This includes support for the 'direct-overridden' dependency type and workspace configurations, allowing the license checker to process more complex dependency structures.
_lib/src/pubspec\lock · high confidence
Add project-level configuration via very\_good.yaml
The CLI now supports a \very\_good.yaml\ configuration file at the project root, allowing users to persist frequently used CLI parameters for the \test\, \create\, \dart\, and \packages\ commands. This enables consistent local and CI environments by applying configuration defaults when command-line arguments are not explicitly provided.
_lib/src/very\_good\config · high confidence
Add update command to upgrade the CLI
Users can now run 'very\_good update' to check for and install the latest version of the Very Good CLI. The new UpdateCommand handles version checking and updating via the pub\_updater package, providing progress updates and error handling for the upgrade process.
lib/src/commands · high confidence
Added test optimization brick for Dart test entrypoints
A new Mason brick named 'test\_optimizer' has been introduced to generate a single entrypoint for Dart tests. This includes a pre-generation hook that scans the test directory, identifies test files, and generates a consolidated test runner. The implementation features a Dart identifier generator to create unique identifiers for each test file, and includes a mechanism to skip optimization for specific tests using a special tag. The brick also provides a template for the generated \.test\_optimizer.dart\ file, which imports and runs all tests in a grouped manner.
lib/src/cli/templates · high confidence
Added test optimizer brick with skip optimization tag support
A new test optimizer brick has been added to the codebase, introducing a pre-generation hook that scans the test directory to identify and exclude tests marked with a 'skip\_very\_good\_optimization' tag. The implementation includes a Dart identifier generator for creating unique test identifiers and an analysis options file configuring the Very Good Analysis linter rules. This feature allows users to selectively disable test optimization for specific tests.
_bricks/test\optimizer/hooks · high confidence
Automated generation of template and test optimizer bundles
Added shell scripts to automate the creation of Mason bundles for various app templates and the test optimizer. The new tooling ensures that the Dart files in lib/src/commands/create/templates and lib/src/cli/templates are consistently generated and formatted, reducing manual effort and ensuring template bundles stay in sync with their source bricks.
tool · high confidence
Docs site initialized with Docusaurus 3
The site directory now contains a fully functional documentation site built with Docusaurus 3. This includes the core configuration (docusaurus.config.js, sidebars.js), build and linting setup (eslint.config.js, .prettierrc, tsconfig.json), and static assets (CNAME, .nojekyll). The site is configured to serve at cli.vgv.dev and includes a navbar linking to VGV Dev Tools and the GitHub repository.
site · high confidence
Generated SPDX license enum added to tooling
A new generated Dart file, spdx\_license.gen.dart, has been added to the tool/spdx\license/\\brick\\_ directory. This file defines a SpdxLicense enum containing all SPDX licenses, providing parse and tryParse methods for converting license identifiers. This change is part of the tooling infrastructure rather than a user-facing feature, as it supports internal license handling.
_tool/spdx\license/\\brick\\_ · high confidence_
Initial project scaffolding and repository configuration
This change introduces the foundational configuration and documentation files for the project, including \.gitignore\, \.pubignore\, \analysis\_options.yaml\, \build.yaml\, \mason.yaml\, and \dart\_test.yaml\. It also adds key repository metadata and guidelines such as \LICENSE\, \AGENTS.md\, \CLAUDE.md\, \ROADMAP.md\, \CHANGELOG.md\, and \README.md\. Additionally, it establishes the automated release process by adding \.release-please-config.json\ and \.release-please-manifest.json\.
(repo-wide) · high confidence
Introduce MCP server for programmatic CLI access
A new \very\_good mcp\ command starts a Model Context Protocol (MCP) server, exposing CLI tools like \create\ and \test\ to AI assistants. The server implementation includes a \Lock\ utility to serialize concurrent tool executions, ensuring that operations like changing the working directory do not interfere with each other.
lib/src/mcp · high confidence
Introduce main library entry point for the CLI
A new top-level library file (lib/very\_good\_cli.dart) is added to the project, serving as the primary entry point for the Dart library. This change establishes the public API surface for the CLI tool, allowing consumers to import and use the library's functionality.
lib · high confidence
Introduce new CLI architecture with auto-update, verbose logging, and completion support
The CLI core has been refactored into a new \VeryGoodCommandRunner\ that integrates command-line completion, a \--verbose\ flag for detailed logging, and an automatic update check that prompts users when a newer version is available. The runner also displays a 'Thank you' message on first use and handles argument parsing errors by displaying usage information. A new \LoggerX\ extension provides terminal-aware text wrapping, and the package version is now managed in \version.dart\.
lib/src · high confidence
Introduce new CLI architecture with test runner and process overrides
The CLI layer has been restructured into modular components: a central \cli.dart\ file introduces \ProcessOverrides\ and \ProcessSignalOverrides\ to allow testability and signal handling, while \dart\_cli.dart\ and \flutter\_cli.dart\ implement specific command runners. A new \test\_cli\_runner.dart\ provides a unified test execution engine supporting coverage, optimization, and reporting. This change adds the foundational infrastructure for the \very\_good test\ command and related CLI features.
lib/src/cli · high confidence
Introduce new CLI entry point for the Very Good CLI
A new executable entry point (bin/very\_good.dart) has been added to the project, which initializes and runs the VeryGoodCommandRunner. This change establishes the primary interface for invoking the CLI tool, ensuring proper output stream handling during execution.
bin · high confidence
Introduce new \`dart test\` command for running Dart tests
A new \dart test\ command has been added to the CLI, allowing users to run Dart tests with extensive configuration options. This includes flags for coverage collection and reporting (e.g., \--collect-coverage-from\, \--report-on\), test execution control (e.g., \--fail-fast\, \--concurrency\, \--platform\), and filtering (e.g., \--tags\, \--exclude-tags\). The command also supports advanced features like \--file-reporter\ for JSON output, \--run-skipped\ tests, and \--check-ignore\ for coverage ignore comments. Configuration can be provided via \very\_good.yaml\ under the \dart.test\ key.
lib/src/commands/dart · high confidence
Introduce the \`test\` command with extensive configuration options
Added the \test\ command implementation in \lib/src/commands/test/test.dart\, introducing a new CLI interface for running tests. This command supports a wide range of configuration options including concurrency, coverage collection and thresholds, tag filtering, randomization seeds, golden updates, fail-fast behavior, and ANSI output control, all of which can be set via command-line arguments or the \very\_good.yaml\ configuration file.
lib/src/commands/test · high confidence
New Very Good App UI template for generating Flutter app UI packages
A new template named 'app\_ui' has been added to the CLI, allowing users to generate a pre-configured Flutter package containing a complete UI system. This includes custom color tokens (AppColors), spacing scales (AppSpacing), typography styles (AppTextStyles), and a styled AppButton widget, all integrated via ThemeExtension. The generated package also includes GitHub Actions workflows for CI/CD, issue templates, and analysis options, providing a robust starting point for new Flutter projects.
_lib/src/commands/create/templates/very\_good\_app\ui · high confidence
New core template for generating Flutter apps
The \very\_good\_core\ template is now available for generating a new Flutter application. This template includes a complete project structure with localization support (English and Spanish), run configurations for development, staging, and production environments, and a counter example using the BLoC pattern. It also integrates with the Very Good CLI to automatically install Flutter packages and apply Dart fixes upon generation.
_lib/src/commands/create/templates/very\_good\core · high confidence
Support for Pub workspace dependency resolution
The \packages check licenses\ command now correctly handles Pub workspaces. Previously, running the command at the workspace root would report no direct dependencies because the lock file classifies all dependencies as transitive. This change introduces a new resolver that aggregates direct dependencies from each member's \pubspec.yaml\ and \pubspec\_overrides.yaml\, ensuring accurate license checking across workspace members.
_lib/src/pubspec, lib/src/pubspec\workspace · high confidence
Architecture
Refactor packages get command into dedicated module
The \very\_good packages get\ command implementation has been extracted from the main commands file into a dedicated \get.dart\ module, with \commands.dart\ now serving as an export barrel. This change improves code organization and maintainability by separating the command logic into its own file, while preserving the existing functionality including the recursive installation and ignore list features.
lib/src/commands/packages/commands · high confidence
Behavioural changes
Customized site styling and dark theme support
The site's visual appearance has been updated with a new custom CSS file that defines a Poppins font family, a specific color palette, and distinct styling for light and dark modes. This includes a 'Get Started' button in the navbar, updated GitHub and VGV navbar icons, and footer adjustments, ensuring the documentation site matches the project's branding and supports dark mode.
site/src/css · high confidence
Extract e2e test helpers into a dedicated package
The e2e test helpers (command\_helper, copy\_directory, and expect\_successful\_process\_result) have been moved into their own package under e2e/helpers. This refactoring isolates end-to-end test utilities, making them easier to maintain and reuse across e2e test suites without coupling them to the main application code.
e2e/helpers · high confidence
Refactor template structure and add post-generation actions
The \create\ command's template system has been refactored to co-locate template definitions with the create command, introducing a new \Template\ abstract class and a \post\_generate\_actions.dart\ file that defines reusable post-generation hooks. These hooks now automatically run \dart pub get\ or \flutter pub get\ after template generation, and conditionally execute \dart run pigeon\ or \dart fix --apply\ when relevant files are present, ensuring dependencies are installed and code is linted without manual intervention.
lib/src/commands/create/templates · medium confidence
Restructure create command with subcommands
The \very\_good create\ command has been refactored to use a subcommand architecture. Users will now invoke specific project types via subcommands (e.g., \very\_good create flutter\_app\), replacing the previous single-command interface. This change organizes the CLI into distinct templates for Flutter apps, Dart packages, CLI tools, and other project types, each handled by a dedicated subcommand class.
lib/src/commands/create · high confidence
Restructured create command into dedicated subcommand classes
The \very\_good create\ command has been refactored into distinct, dedicated subcommand classes (e.g., \CreateFlutterApp\, \CreateDartCLI\, \CreateFlameGame\) that each encapsulate their own template, argument parsing, and template variable generation. This change improves the internal organization of the CLI, making it easier to maintain and extend individual project templates. Users will see the same \very\_good create\ interface, but the underlying structure now explicitly separates each template type into its own file and class, ensuring that each template's specific options (like \--platforms\ for Flutter apps or \--executable-name\ for Dart CLIs) are handled within their respective command classes.
lib/src/commands/create/commands · high confidence
Updated Dart and Flutter package templates with latest scaffolding
The generated Dart and Flutter package templates have been updated to include modern project scaffolding. New projects will now include GitHub issue templates, CI workflows, and a SECURITY.md file. The Dart package template enforces a minimum SDK of 3.12.0, while the Flutter package template targets Flutter 3.44.x. Both templates now automatically run \dart fix\ after generation to ensure code quality.
_lib/src/commands/create/templates/very\_good\_flutter\package · high confidence
Updated Flutter plugin template with latest CI, workflows, and build configuration
The generated Flutter plugin template has been updated to include the latest template bundle contents. This update refreshes the CI workflows, GitHub issue and pull request templates, and build configurations for all supported platforms (Android, iOS, Linux, macOS, Web, and Windows). Users generating a new Flutter plugin will now receive a project with the most recent Very Good CLI template standards, including updated GitHub Actions for continuous integration and testing across all platforms.
_lib/src/commands/create/templates/very\_good\_flutter\plugin · high confidence
Updated SPDX license list
The generated \SpdxLicense\ enum in \lib/src/pub\_license/spdx\_license.gen.dart\ has been updated to reflect the latest SPDX license data, ensuring the library's license identification capabilities remain current.
_lib/src/pub\license · high confidence
Test coverage
Add test helper utilities for command execution and template generation; Add unit tests for the test command; Added build verification test; Added e2e tests for the very\_good.yaml configuration feature; Added end-to-end test for the flame\_game template; Added end-to-end test for the flutter\_app create command; Added end-to-end tests for project creation commands; Added end-to-end tests for the flutter\_plugin create command; Added end-to-end tests for the packages check licenses command; Added test fixtures for LCOV and test runner outputs; Added test runner for the test optimizer brick; Added tests for MCP server and command components; Added tests for PubspecLock parsing; Added tests for SPDX license parsing; Added tests for VeryGoodConfig parsing; Added tests for command runner and logger extensions; Added tests for pubspec and pubspec\_workspace modules; Added tests for the \packages check licenses\ command; Added tests for the new Dart command group and its subcommands; Added tests for the packages check command; Added tests for the packages command help output; Added unit tests for CLI command implementations; Added unit tests for create subcommands; Added unit tests for the create command subcommands; Added unit tests for the packages get command; Added unit tests for the test optimizer hooks; Added unit tests for the update command.
Dependencies
Updated dependencies and SDK constraints across the project
This update refreshes the project's dependencies and enforces a minimum Dart SDK of 3.12.0 across all packages and test fixtures. The main CLI package and its sub-packages (including the test optimizer, e2e tests, and SPDX license tools) now require Dart 3.12.0 or higher. Key dependency updates include upgrading \very\_good\_analysis\ to version 10.3.0, \mocktail\ to 1.0.4, \test\ to 1.25.8, and \mason\ to 0.1.0. On the site, dependencies have been updated to use React 19.2.8, Docusaurus 3.10.2, and ESLint 10.8.0.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 56 → 56 (+0.1)
- Rubric changed (rubric-2026.08.18 → rubric-2026.08.19) — scores are not directly comparable.
Lenses
- Architecture 97 → 97 (+0.1)
- Maturity 71 → 72 (+0.6)
- Readiness 56 → 56 (+0.0)
- Security 40 → 40 (+0.0)
- Domain Modelling 100 → 100 (+0.0)
Resolved (11)
- High CVE: [GHSA redacted] (site/package-lock.json)
- High CVE: [GHSA redacted] (site/package-lock.json)
- High CVE: [GHSA redacted] (site/package-lock.json)
- High CVE: [GHSA redacted] (site/package-lock.json)
- High CVE: [GHSA redacted] (site/package-lock.json)
- High CVE: [GHSA redacted] (site/package-lock.json)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Off-boarding risk: anonymized user #1
- The SPDX License brick's usage notes mention that the generated SPDX brick is not published at Brick Hub and should not be used by the general public, but there is no guidance on how to handle license selection when a user explicitly selects one of the listed licenses. (tool/spdx_license/README.md)
New (9)
- High CVE: [GHSA redacted] (site/package-lock.json)
- High CVE: [GHSA redacted] (site/package-lock.json)
- High CVE: [GHSA redacted] (site/package-lock.json)
- High CVE: [GHSA redacted] (site/package-lock.json)
- High CVE: [GHSA redacted] (site/package-lock.json)
- High CVE: [GHSA redacted] (site/package-lock.json)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
Changes since last survey
- 6 commits — 6 feature/other, 0 fixes
By area
- lib/src — 2 commits
- site/package-lock.json — 2 commits
- (root) — 1 commit
- .github/workflows — 1 commit
Notable commits
- change: chore(deps): bump dart-lang/setup-dart from 1 to 1.7.2 (#1674)
- change: chore(deps): bump package_config from 2.2.0 to 3.0.0 (#1673)
- change: chore(deps-dev): bump @types/react from 19.2.17 to 19.2.18 in /site (#1672)
- change: chore(deps-dev): bump eslint from 10.7.0 to 10.8.0 in /site (#1671)
- change: chore: update SPDX licenses (#1668)
- change: feat(licenses): add workspace support (#1657)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
VeryGoodOpenSource/very_good_cli was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 5 August 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 7c3a176f894822e90bf5e8d888f322052557ef98 — the exact code this score is about.
- Scored under rubric-2026.08.19 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer latest.