analysis_tests/ # Unit tests for the analyzer plugin
lib/
├── src/ # Source code for the package
│ ├── analyzer/ # Analyzer plugin source code
│ ├── async/ # Asynchronous utilities
│ ├── collections/ # Collection
│ ├── core/ # Oref core
│ └── devtools/ # Oref dev tools proto source code
├── devtools.dart # Dev Tools proto
├── main.dart # Analyzer Plugin entry
└── oref,dart # Public APIs
example/ # Is a Flutter app for manual validation and demos
extension/
└── devtools
├── app # Dev Tools Flutter app
└── config.yaml # Dev Tools configuration
skills/ # Agent Skills for Oref users (SKILL.md + references)
test/ # Mirrors feature areas with focused unit testsflutter pub getinstalls dependencies for the package and the workspace example.extension/devtools/appcurrently requires Flutter>=3.38.4to resolve the DevTools extension toolchain.dart analyzeruns static analysis using the repo’sflutter_lintsrules.dart format .applies standard Dart formatting across the repo.flutter testruns the full unit test suite intest/.cd example && flutter runlaunches the sample app locally for interactive checks.
- Update versions in
pubspec.yaml,extension/devtools/app/pubspec.yaml,extension/devtools/config.yaml, and any version references inREADME.md. - Move Unreleased notes into a new version section in
CHANGELOG.md. - Rebuild DevTools extension (from
extension/devtools/app):flutter pub getdart run devtools_extensions validate --package=../../..dart run devtools_extensions build_and_copy --source=. --dest=../
- Run tests:
flutter testcd analysis_tests && dart test
- Commit and tag:
git commit -m "Release x.y.z"git tag vx.y.z
- Publish to pub (from repo root):
dart pub publish --dry-rundart pub publish --force
- Create GitHub release:
git push origin vx.y.zgh release create vx.y.z --title "vX.Y.Z" --notes-file RELEASE_NOTES.md
- Use 2-space indentation; rely on
dart formatto enforce style. - File names are
snake_case.dart; types areUpperCamelCase; methods and variables arelowerCamelCase. - Keep public API surface in
lib/and internal helpers inlib/src/, re-exported throughlib/oref.dart.
- Tests use Flutter’s test framework via
flutter_test. - Name test files with the
_test.dartsuffix and colocate by feature area. - Add regression tests for bug fixes; ensure
flutter testpasses before opening a PR.
- Commit messages follow short, imperative phrasing (examples: “Fix missing tracking…”, “Update effect…”).
- PRs should describe what changed and why, link relevant issues, and note testing performed.
- Update
CHANGELOG.mdfor user-facing changes or API behavior updates. - Include screenshots or GIFs when modifying the
example/UI.
skills/contains Agent Skills meant for Oref users to install and use.- Keep skills focused on Oref usage guidance; store long-form material in
references/.
When making changes to the project (new APIs, architectural changes, updated conventions):
AGENTS.md— Update with technical details, architecture, and best practices for AI agentsREADME.md— Update with user-facing documentation (usage, installation, examples) for end users