with one click
update-domain-model
Add properties to an existing domain model from TMDb
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Add properties to an existing domain model from TMDb
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Build the project for testing
Build the project
Take the current plan all the way to a ready-to-merge pull request — review the plan (scaled to risk), implement it test-first, code-review and fix, security-review, verify the acceptance criteria, open the PR, and watch it green. Use after you have an approved plan (e.g. from plan mode) and want the rest of the feature pipeline run end-to-end. Invoking it is itself plan approval — it then runs autonomously to a single hard stop: ready-to-merge.
Run a specific test target or test class
Run all unit tests
Run snapshot tests
| name | update-domain-model |
| description | Add properties to an existing domain model from TMDb |
Guide for adding properties to an existing domain model from TMDb SDK types. See references/domain-model-patterns.md (in the create-domain-model skill) for code patterns, file locations, and common pitfalls.
Ask the user for:
DocC documentation: https://adamayoung.github.io/TMDb/documentation/tmdb/
Source code (in Xcode DerivedData after build):
.../SourcePackages/checkouts/TMDb/Sources/TMDb/Domain/Models/
Compare the TMDb type reference (see TMDB_MAPPING.md) with the current domain entity.
For new complex types (enums, structs), create domain entities:
Contexts/Popcorn<X>/Sources/<X>Domain/Entities/<NewType>.swiftAdd properties to the struct, init, and init defaults:
Contexts/Popcorn<X>/Sources/<X>Domain/Entities/<Name>.swiftFor each new complex type, write tests first then implement:
Adapters/.../Tests/.../Mappers/<NewType>MapperTests.swiftAdapters/.../Sources/.../Mappers/<NewType>Mapper.swiftUpdate tests then implementation:
Adapters/.../Tests/.../Mappers/<Name>MapperTests.swiftAdapters/.../Sources/.../Mappers/<Name>Mapper.swiftFor new complex types that need persistence:
Contexts/Popcorn<X>/Sources/<X>Infrastructure/DataSources/Local/Models/<Context><NewType>Entity.swiftAdd properties and relationships:
Contexts/Popcorn<X>/Sources/<X>Infrastructure/DataSources/Local/Models/<Context><Name>Entity.swiftUpdate all 3 methods (entity->domain, domain->entity, update-in-place) with tests:
Contexts/.../Tests/<X>InfrastructureTests/Mappers/<Name>MapperTests.swiftContexts/.../Sources/<X>Infrastructure/DataSources/Local/Mappers/<Name>Mapper.swiftContexts/Popcorn<X>/Sources/<X>Application/Models/<Name>Details.swiftContexts/Popcorn<X>/Sources/<X>Application/Mappers/<Name>DetailsMapper.swiftContexts/.../Tests/<X>ApplicationTests/Mappers/<Name>DetailsMapperTests.swiftUpdate <Name>+Mocks.swift in all test targets that use it.
Run the full pre-PR checklist: make lint, /build, /test (formatting is applied automatically by the PostToolUse hook)
$ARGUMENTS