229 lines
12 KiB
Markdown
229 lines
12 KiB
Markdown
# 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. |