feat: add type-level ownership checks to the layer validator

Đang mở
#28 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
22/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
dart, flutter
Lĩnh vực
tooling

Hướng nghiên cứu

Start with the ffca-layer-auditor agent and domain.md, which define the ownership rules and the Summary pattern. The issue is blocked by #22 (moving the validator into Very Good CLI) and uses severity levels from #21, so confirm both are merged before building on them. Done means three rules (data implementing another feature's domain interface as an error, domain interfaces using another feature's models as a warning, and domain public APIs importing dart:ui, Flutter, or backend types as an error), each with fixtures and tests, and the agent consuming these results.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

feature

Description

Some ownership rules can only be checked by looking at types, not at pubspecs or import directives. The ffca-layer-auditor agent covers them with an LLM today.

The validator stays a dependency-free script in this plugin: moving it into Very Good CLI was decided against. package:analyzer is therefore not available, since it would need dart pub get in scripts/ before the hook could run. These checks have to work from source text, the way the import checks from #25 do: read class … implements … declarations and repository method signatures, and resolve type names through the file's imports. A rule that cannot be checked reliably that way stays with the auditor.

Requirements

  • Error: a class in {f}_data implements a repository interface from another feature's _domain. The dependency on that domain is allowed, but the data layer implements only its own domain's interfaces.
  • Warning: a repository interface in {f}_domain takes or returns a model from another feature's _domain. This is what the Summary pattern in domain.md avoids. Sometimes legitimate, hence a warning (#21).
  • Error: {f}_domain uses dart:ui, Flutter types, or backend types (Firebase, HTTP clients) in its public API. The domain layer is pure Dart (domain.md).
  • Each check works from source text with no new dependencies. A rule that would need full type resolution to avoid false positives stays with the auditor, and the issue says which.
  • Fixtures and tests for each rule.
  • The ffca-layer-auditor agent relies on these results instead of checking the same rules itself.
  • All CI/CD checks are passing.
  • There is no drop in the test coverage percentage.

Additional Context

Uses the severity levels from #21 and the directive scanner from #31.

Ngôn ngữ chính
Dart
Star
7
Fork
2
Merge trung bình
2 ngày 8 giờ
Pull request đã merge (30 ngày)
9

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của VeryGoodOpenSource/vgv-ffca-plugin

Tất cả issue của VeryGoodOpenSource/vgv-ffca-plugin

Issue tương tự

Thêm issue về Dart

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.