feat: add type-level ownership checks to the layer validator
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 22/100
Rechercherichtung
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.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- Dart
- Sterne
- 7
- Forks
- 2
- Ø Merge
- 2 T. 8 Std.
- Gemergte PRs (30 T.)
- 9
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus VeryGoodOpenSource/vgv-ffca-plugin
-
feature
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 54/100
VeryGoodOpenSource/vgv-ffca-plugin#39 ·
Maintainer antworten meist innerhalb von 1 Tag
-
feature
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 38/100
VeryGoodOpenSource/vgv-ffca-plugin#26 ·
Maintainer antworten meist innerhalb von 1 Tag
-
test
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 48/100
VeryGoodOpenSource/vgv-ffca-plugin#23 ·
Maintainer antworten meist innerhalb von 1 Tag
-
external dependency feature
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
VeryGoodOpenSource/vgv-ffca-plugin#6 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in VeryGoodOpenSource/vgv-ffca-plugin
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Vinillian/book_tracker#208 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 64/100
-
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
fdittgen-png/deskilo#3753 ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement good first issue help wanted
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 1 Tag