Przejdź do treści
Biblioteka skilli
Programowanie · Przegląd i audyt

swiftdata-code-review

/swiftdata-code-review

Przegląda kod SwiftData pod kątem projektu modeli, zapytań, współbieżności i migracji w plikach z import SwiftData, @Model, @Query, @ModelActor lub VersionedSchema.

Repozytorium
beagle ↗
Licencja
Apache-2.0
Ostatnia zmiana repozytorium
09.08.2026

Ocena i bezpieczeństwo

90/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść25 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
5
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 09.08.2026, bez odwołań do wycofanych modeli i API.

Licencja

Apache-2.0, otwarta: można używać i zmieniać, z zachowaniem licencji i informacji o zmianach.

Co robi i kiedy

Przegląda kod SwiftData pod kątem projektu modeli, zapytań, współbieżności i migracji w plikach z import SwiftData, @Model, @Query, @ModelActor lub VersionedSchema.

Oryginalny opis (EN)

Reviews SwiftData code for model design, queries, concurrency, and migrations. Use when reviewing .swift files with import SwiftData, @Model, @Query, @ModelActor, or VersionedSchema.

Jak działa

  1. Quick Reference
  2. Hard gates (before reporting findings)
  3. Review Checklist
  4. When to Load References
  5. Review Questions
Sekcje z nagłówków SKILL.md, w oryginale · 51 linii, 393 słów
Podgląd SKILL.md
---
name: swiftdata-code-review
description: Reviews SwiftData code for model design, queries, concurrency, and migrations. Use when reviewing .swift files with import SwiftData, @Model, @Query, @ModelActor, or VersionedSchema.
---

# SwiftData Code Review

## Quick Reference

| Issue Type | Reference |
|------------|-----------|
| @Model, @Attribute, @Relationship, delete rules | [references/model-design.md](references/model-design.md) |
| @Query, #Predicate, FetchDescriptor, #Index | [references/queries.md](references/queries.md) |
| @ModelActor, ModelContext, background operations | [references/concurrency.md](references/concurrency.md) |
| VersionedSchema, MigrationStage, lightweight/custom | [references/migrations.md](references/migrations.md) |

## Hard gates (before reporting findings)

Run in order; do not assert an issue until the gate for that issue passes.

1. **Scope — pass when:** You have the target `.swift` path(s) and confirmed SwiftData surface in scope (e.g. `import SwiftData`, `@Model`, `@Query`, `@ModelActor`, `VersionedSchema`, or migration types). If none apply, stop or narrow scope with one sentence.
2. **Reference — pass when:** For each checklist area you evaluate (models, queries, concurrency, migrations), you opened the matching `references/*.md` from the Quick Reference table **or** wrote `N/A: no <area> in this review` with a one-line reason.
3. **Evidence — pass when:** Every finding uses the `[FILE:LINE] ISSUE_TITLE` header (line range allowed) from the file you read; no finding without a cite.
4. **Report — pass when:** Findings list cites first (or inline) using `[FILE:LINE] ISSUE_TITLE`, then severity or checklist grouping—no uncited assertions.

## Review Checklist

- [ ] Models marked `final` (subclassing crashes)
- [ ] @Relationship decorator on ONE side only (not both)
- [ ] Delete rules explicitly set (not relying on default .nullify)
- [ ] Relationships initialized to empty arrays, not default objects
- [ ] Batch operations used for bulk inserts (`append(contentsOf:)`)
- [ ] @Query not loading thousands of items on main thread
- [ ] External values in predicates captured in local variables
- [ ] Scalar comparisons in predicates (not object references)
- [ ] @ModelActor used for background operations
- [ ] PersistentIdentifier/DTOs used to pass data between actors
- [ ] VersionedSchema defined for each shipped version
- [ ] MigrationPlan passed to ModelContainer

## When to Load References

- Reviewing @Model or relationships -> model-design.md
- Reviewing @Query or #Predicate -> queries.md
- Reviewing @ModelActor or background work -> concurrency.md
- Reviewing schema changes or migrations -> migrations.md

## Review Questions

1. Could this relationship assignment cause NULL foreign keys?
2. Is @Relationship on both sides creating circular references?
3. Could this @Query block the main thread with large datasets?
4. Are model objects being passed between actors unsafely?
5. Would schema changes require a migration plan?
Pliki w paczce (5)
  • SKILL.md 3 KB
  • references/concurrency.md 4 KB
  • references/migrations.md 5 KB
  • references/model-design.md 3 KB
  • references/queries.md 4 KB

Wersje

W bazie nie ma innych skilli o nazwie swiftdata-code-review.

Migawka bazy z 13.11.2026 · wersja paczki 3e2f9e543dce (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 95swiftdata
    Wdraża i przegląda trwałość danych w SwiftData: klasy @Model, zapytania @Query i #Predicate, ModelContainer, migracje schematów z VersionedSchema i synchronizację CloudKit.
  • 100axiom-audit-swiftdata
    Przegląda użycie SwiftData: problemy z @Model, bezpieczeństwo migracji i wydajność.
  • 100swiftdata-pro
    Pisze, przegląda i ulepsza kod SwiftData, korzystając z nowoczesnych API i dobrych praktyk.
  • 100swiftdata-testing
    Pisze i przegląda testy aplikacji opartych na SwiftData: kontenery w pamięci, atrapy repozytoriów, izolację actorów i asercje wartości pieniężnych.
  • 100swiftdata-architecture
    Omawia wzorce projektowe SwiftData: projekt schematu, zapytania, wzorzec repozytorium i optymalizację wydajności przy projektowaniu modeli danych.
  • 100swiftdata-persistence-expert
    Projektuje architekturę trwałości w SwiftData i Core Data, synchronizację CloudKit oraz bezpieczne migracje między wersjami schematu.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.