Local Verification for AI Agents

To ensure code stability and avoid regressions, AI agents MUST perform the following verification steps locally before pushing changes.

1. Run full build and task suite

The project uses a custom task runner. Execute the buildbot task to perform linting, formatting checks, code generation validation, and full test execution.

dart run tool/task.dart buildbot

IMPORTANT: If buildbot fails with “generated files needed to be rebuilt”, run:

dart run tool/task.dart build

Then commit the resulting changes before rerunning buildbot. Make sure you rebuild before claiming a task is complete.

2. Verify specific logic areas

If you modified canonicalization or documentation rendering, verify these specific test groups:

  • Canonicalization: Run dart run test test/canonical_for_test.dart and dart run test test/model_utils_test.dart.
  • Warnings: Many tests assert on the exact number of warnings (e.g., test/options_test.dart). If your changes cause new warnings, verify if they are legitimate or if canonicalization is failing.
  • Duplicate Outputs: Watch for “file already written” errors in test output, which often indicate multiple elements being canonicalized to the same path.

3. Environment Notes

  • Some tests depend on a valid Flutter SDK being present in the environment (e.g., model_special_cases_test.dart). If these fail due to missing executables, it may be an environment issue rather than a logic regression.
  • Always use dart analyze . and dart format . before final submission.