# Nova Cards v3 Gap Matrix

Audit date: 2026-03-28

Primary spec:
- `.vscode/agents/skinbase-nova-cards-system_v3.md`

Validation baseline:
- Targeted verification passed with `php artisan test tests/Feature/NovaCards/NovaCardAdminTest.php tests/Feature/NovaCards/NovaCardPublicPagesTest.php`
- Result: 19 passing tests, 194 assertions

How to read this document:
- `Implemented` means there is direct repo evidence for the pillar's core shipping behavior.
- `Partial` means meaningful work exists, but the pillar still falls short of the v3 spec's target-state behavior.
- `Missing` means no clear implementation was found for that item during this audit.

Important note:
- The v3 agent file is a roadmap-level spec, not a literal definition of what must already be fully shipped. This matrix measures current repo reality against that target state.

## 1. Advanced studio

Status:
- Partial

Implemented evidence:
- Structured v3 schema with `canvas`, `background`, `text_blocks`, `frame`, `effects`, `export_preferences`, and `source_context` in `app/Services/NovaCards/NovaCardProjectNormalizer.php`
- Stored v3 canvas flags for safe zones and snap guides in `app/Services/NovaCards/NovaCardProjectNormalizer.php`
- Quick versus advanced editor modes in `resources/js/Pages/Studio/StudioCardEditor.jsx`
- Text-block reorder, enable/disable toggles, remove controls, and multi-block editing in `resources/js/Pages/Studio/StudioCardEditor.jsx`
- Version restore and compare-summary UI in `resources/js/Pages/Studio/StudioCardEditor.jsx`
- Advanced frame/effect/quote-mark/text-panel controls in `resources/js/Pages/Studio/StudioCardEditor.jsx`

Still missing or clearly incomplete:
- No visible snap-guide UI or guide interactions were found; only stored schema flags exist.
- No broader lock/unlock controls for editable elements were found.
- No full layer list with layer-level controls beyond text-block ordering was found.
- No drag-based canvas editing or anchor-point manipulation UI was found.
- Safe-zone support appears schema-level, not an exposed editing aid.

Verdict:
- The Studio is materially beyond MVP and has a credible v3 foundation, but it is not yet the full advanced layer/block studio described in the spec.

## 2. Creator identity

Status:
- Partial

Implemented evidence:
- Public creator page and dedicated creator portfolio page exist in `app/Http/Controllers/Web/NovaCardsController.php` and `routes/web.php`
- Creator summary stats, top categories, top tags, top moods, featured works, featured collections, creator highlights, most remixed works, most liked works, challenge history, signature themes, remix-branch activity, remix graph visualization, creator preference signals, and a recent creator timeline are rendered through `app/Http/Controllers/Web/NovaCardsController.php` and `resources/views/cards/index.blade.php`
- Public coverage for featured works, challenge history, signature themes, and creator portfolio depth exists in `tests/Feature/NovaCards/NovaCardPublicPagesTest.php`
- Staff-facing featured creator control exists in `app/Http/Controllers/Settings/NovaCardAdminController.php`, `resources/js/Pages/Collection/NovaCardsAdminIndex.jsx`, and `routes/web.php`
- Editorial featured-creators surface is wired in `app/Http/Controllers/Web/NovaCardsController.php` and `resources/views/cards/index.blade.php`

Still missing or clearly incomplete:
- No richer creator identity controls such as public template favorites or stronger persistent style identity tools were found beyond preference signals, presets, and stored style metadata.
- No true interactive remix graph visualization was found beyond the current branch graph summary.

Verdict:
- Creator identity is materially stronger than the older audit suggested, but it still falls short of the spec's broader portfolio, timeline, and persistent identity vision.

## 3. Social and remix culture

Status:
- Partial

Implemented evidence:
- Remix lineage is preserved in model/project state and exposed on card pages in `app/Services/NovaCards/NovaCardPresenter.php`, `resources/views/cards/show.blade.php`, and `resources/views/cards/lineage.blade.php`
- Dedicated lineage route and controller action exist in `app/Http/Controllers/Web/NovaCardsController.php` and `routes/web.php`
- Best-remixes and remixed-card discovery surfaces exist in `app/Http/Controllers/Web/NovaCardsController.php`
- Public lineage and remix coverage exists in `tests/Feature/NovaCards/NovaCardPublicPagesTest.php`
- Likes, saves, collections, and challenge participation are integrated into Studio and public surfaces in `resources/js/Pages/Studio/StudioCardEditor.jsx`

Still missing or clearly incomplete:
- No richer remix-tree browser beyond lineage/family views was found.
- No moderation action to freeze a remix branch was found.
- No explicit remix-abuse or spam-loop intervention workflow was found.

Verdict:
- Core remix culture is implemented, but deeper moderation and exploration around remix networks remain unfinished.

## 4. Discovery intelligence

Status:
- Partial

Implemented evidence:
- Trending, featured, latest, and rising public feeds exist in `app/Http/Controllers/Web/NovaCardsController.php`
- Dedicated rising service exists in `app/Services/NovaCards/NovaCardRisingService.php`
- Related cards service exists in `app/Services/NovaCards/NovaCardRelatedCardsService.php`
- Public mood, style, palette, editorial, seasonal, creator, collection, challenge, and best-remixes surfaces exist in `app/Http/Controllers/Web/NovaCardsController.php`
- Targeted public-page coverage exists in `tests/Feature/NovaCards/NovaCardPublicPagesTest.php`

Still missing or clearly incomplete:
- The full discovery matrix from the spec is not present; there is no dedicated template family feed, quote-type feed, or broader creator-diversity surfacing layer.
- Discovery balance still looks primarily route-by-route rather than a unified discovery engine with stronger editorial/algorithmic blending.
- No richer creator diversity or new-creator exposure tuning surface was found beyond the rising service and editorial featuring.

Verdict:
- Discovery is already broad enough to feel like a real product surface, but it is not yet the full discovery-intelligence platform described in v3.

## 5. Challenge engine

Status:
- Partial

Implemented evidence:
- Challenge listing and detail pages exist in `app/Http/Controllers/Web/NovaCardsController.php`
- Challenge admin management exists in `app/Http/Controllers/Settings/NovaCardAdminController.php`
- Studio challenge submission controls exist in `resources/js/Pages/Studio/StudioCardEditor.jsx`
- Challenge landing content appears on editorial surfaces via `app/Http/Controllers/Web/NovaCardsController.php`

Still missing or clearly incomplete:
- No recurring challenge series system or scheduled pipeline was found.
- No challenge archive/history navigation system was found.
- No challenge-specific template suggestion rail beyond generic editor options was found.

Verdict:
- Challenge support is solid and operational, but it does not yet match the spec's more central repeatable challenge engine.

## 6. AI-assisted creation

Status:
- Partial

Implemented evidence:
- AI assist service exists in `app/Services/NovaCards/NovaCardAiAssistService.php`
- The Studio AI panel exists in `resources/js/Pages/Studio/StudioCardEditor.jsx`
- Suggestions include tags, mood, layouts, backgrounds, font pairing, and readability fixes in `app/Services/NovaCards/NovaCardAiAssistService.php`
- Suggestions are creator-controlled and optional in the Studio UI

Still missing or clearly incomplete:
- The service is explicitly rule-based/fallback-first, not a deeper AI composition layer.
- No explicit story-conversion or wallpaper-conversion AI actions were found.
- No stronger metadata/title/description assist actions were found.

Verdict:
- AI assist is real and useful, but still much smaller than the spec's longer-term assistive workflow.

## 7. Asset and template ecosystem

Status:
- Partial

Implemented evidence:
- Official asset packs and template packs are configured in `config/nova_cards.php`
- Asset-pack and template admin surfaces exist in `app/Http/Controllers/Settings/NovaCardAdminController.php`
- Advanced editor controls expose frame, color grade, quote-mark, and text-panel systems in `resources/js/Pages/Studio/StudioCardEditor.jsx`
- Creator presets exist and are exposed in Studio through `resources/js/Pages/Studio/StudioCardEditor.jsx`

Still missing or clearly incomplete:
- No explicit template favorites system was found.
- No access-rule-aware premium gating or premium-ready pack entitlement system was found.
- No richer seasonal/official pack surfacing beyond config/admin management was found.

Verdict:
- The pack/template ecosystem exists, but it is still closer to a solid internal/content foundation than the full ecosystem described in the spec.

## 8. Export and distribution

Status:
- Partial

Implemented evidence:
- Export request model/table support exists in `database/migrations/2026_03_27_010000_add_nova_cards_v3_tables.php` and `app/Models/NovaCardExport.php`
- Export request creation and polling are implemented in `app/Services/NovaCards/NovaCardExportService.php` and `app/Http/Controllers/Api/NovaCards/NovaCardExportController.php`
- Queued export generation exists in `app/Jobs/NovaCards/GenerateNovaCardExportJob.php`
- Preview, hires, square, story, wallpaper, and OG exports are supported in `app/Services/NovaCards/NovaCardExportService.php`
- Export controls are exposed in Studio in `resources/js/Pages/Studio/StudioCardEditor.jsx`
- Watermark preference is normalized into project data in `app/Services/NovaCards/NovaCardProjectNormalizer.php`

Still missing or clearly incomplete:
- No actual watermark policy UI or export-policy workflow was found; only a normalized preference field exists.
- No export history management surface was found in Studio.
- No richer saved export-preset system per user or per preset was found.

Verdict:
- Export infrastructure is strong, but the broader distribution/product layer around it remains incomplete.

## 9. Trust, moderation, and rights

Status:
- Partial

Implemented evidence:
- Card moderation fields and staff moderation surfaces exist in `app/Http/Controllers/Settings/NovaCardAdminController.php` and `resources/js/Pages/Collection/NovaCardsAdminIndex.jsx`
- Reporting queue integration exists in the Nova Cards admin surface
- Rights flags such as `allow_remix`, `allow_background_reuse`, and `allow_export` are exposed in Studio and policy/service code
- Public reporting hooks and moderation-aware visibility exist across card/challenge/comment flows

Still missing or clearly incomplete:
- No duplicate or near-duplicate Nova Cards detection service was found.
- No remix-loop abuse controls were found.
- No branch-freeze or targeted remix-branch intervention tooling was found.
- No stronger low-quality-content throttling specific to Nova Cards was found beyond general rate limits and moderation baselines.

Verdict:
- Moderation and rights are credible at the foundation level, but the stronger anti-abuse tooling described in v3 is still missing.

## 10. Migration compatibility and ops tooling

Status:
- Partial

Implemented evidence:
- Legacy normalization is handled in `app/Services/NovaCards/NovaCardProjectNormalizer.php`
- v3 schema additions are present in `database/migrations/2026_03_27_010000_add_nova_cards_v3_tables.php`
- Compatibility behavior is covered by the Nova Cards v3 feature suite

Still missing or clearly incomplete:
- No explicit schema backfill command was found.
- No targeted rerender command/job for migrated cards was found.
- No admin-safe migration utility surface with dry-run/reporting was found.

Verdict:
- Compatibility is implemented. Operational migration tooling is not.

## Overall conclusion

Current repo state versus the v3 spec:
- The v3 foundation is implemented.
- Several public and creator-facing roadmap items that used to be missing are now present, including featured works, featured collections, and featured creators.
- The biggest remaining gaps are no longer basic public discovery or staff creator featuring.
- The largest remaining gaps are advanced studio depth, deeper creator portfolio identity, stronger anti-abuse tooling, and migration/rerender operations.

If prioritizing by product leverage from the current codebase, the clean next targets are:
1. Creator portfolio depth and creator challenge/remix history.
2. Anti-abuse moderation hardening for duplicate and remix-loop control.
3. Migration/backfill/rerender tooling.