Skip to content
CAI
Software that uses CAICheck a score

VeryGoodOpenSource/very_good_cli

56.0

Adequate · 5 August 2026

13.4k

lines of production code

Dart

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

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.