Skip to content

feat: dogfood Eagle Eye architecture rules in CI - #49

Closed
gabrielbmoro wants to merge 1 commit into
mainfrom
feat/dogfood-eagle-eye-config
Closed

gabrielbmoro wants to merge 1 commit into
mainfrom
feat/dogfood-eagle-eye-config

Conversation

@gabrielbmoro

Copy link
Copy Markdown
Collaborator

Summary

  • Add eagle_eye_config.json enforcing the documented layer graph (model, util, data, analyzer).
  • Run dart run eagle_eye:main in the PR workflow.
  • Move OutputRenderer from lib/util/ to lib/analyzer/ so util/ has no internal imports, resolving the only existing violation.

Rules

Rule Constraint
model-only-imports-model model may only import model
util-no-internal-imports util has zero internal imports
data-only-model data may only import data/model
analyzer-layers analyzer may import analyzer/model/data/util

Composition-root files (lib/eagle_eye_launcher.dart, lib/service_locator.dart) are intentionally unmatched.

Verification

  • dart analyze — no issues
  • dart test — 64/64 passing
  • dart run eagle_eye:main — exits 0 (4 rules, 28 files, 0 violations)

Note

Moving OutputRenderer changes its public import path from package:eagle_eye/util/output_renderer.dart to package:eagle_eye/analyzer/output_renderer.dart. Consider a minor version bump when releasing.

Add eagle_eye_config.json enforcing the documented layer graph and run the CLI in the PR workflow. Move OutputRenderer from util/ to analyzer/ so util/ has no internal imports.
@gabrielbmoro
gabrielbmoro deleted the feat/dogfood-eagle-eye-config branch October 18, 2026 02:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant