feat: add type-level ownership checks to the layer validator
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
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ả
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}_dataimplements 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}_domaintakes or returns a model from another feature's_domain. This is what the Summary pattern indomain.mdavoids. Sometimes legitimate, hence a warning (#21). - Error:
{f}_domainusesdart: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-auditoragent 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
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của VeryGoodOpenSource/vgv-ffca-plugin
-
feature
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 54/100
VeryGoodOpenSource/vgv-ffca-plugin#39 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
feature
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 38/100
VeryGoodOpenSource/vgv-ffca-plugin#26 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
test
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 48/100
VeryGoodOpenSource/vgv-ffca-plugin#23 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
external dependency feature
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
VeryGoodOpenSource/vgv-ffca-plugin#6 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của VeryGoodOpenSource/vgv-ffca-plugin
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Vinillian/book_tracker#208 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 2 ngày
-
CI: a superseded Quality run keeps its test shards running and the new head waits behind themĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
fdittgen-png/deskilo#3753 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement good first issue help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
Maintainer thường phản hồi trong vòng 1 ngày