Gap (premise verified twice, 2026-08-07)
Three payload/content models are absent from CONTENT_MODELS (src/core_management/content_export.py), so their rows cannot be authored in the lore repo at all:
Why it matters
After #2973 stripped MagicContent.create_all() from the seeder, the six social-magic ActionEnhancement rows are the only thing standing between "Social Arts techniques exist" and "magical persuade/intimidate/etc. are actually dispatchable" — and there is now NO production path that creates them (the seeder call was sample-gated even before the strip, so real deploys never had them; the strip made the gap visible rather than causing it). Same shape for resonance-specialized TechniqueVariants and corruption-twist MagicalAlterationTemplates: the #2973 lore PR (ArxII-lore#69) authors the templates but cannot author the twist rows that make corruption stages DO anything.
Shape (mirrors #3006's Task 1)
NaturalKeyMixin + NaturalKeyConfig + CONTENT_MODELS registration for the three models, keyed off their existing uniqueness (verify each model's constraints at pickup; ActionEnhancement's identity is its action key linkage — check). Then the lore repo authors the six social enhancements, the Social Arts variants, and the twist rows (follow-on lore PR).
Per the seeder-vs-fixture dividing line (ruled 2026-08-06): none of these are code-named by literal — content-only references — so fixtures own them once registrable.
Related: #2973 (made the gap visible), ArxII-lore#69 (the content waiting on this), #3006 (the registration pattern to mirror).
Gap (premise verified twice, 2026-08-07)
Three payload/content models are absent from
CONTENT_MODELS(src/core_management/content_export.py), so their rows cannot be authored in the lore repo at all:actions.ActionEnhancement— verified by the The magic dev seed still authors content stand-ins; strip them out of CLUSTER_SEEDERS #2973 lore-authoring pass (export attempt refused) and independently by a per-model recheck during the The magic dev seed still authors content stand-ins; strip them out of CLUSTER_SEEDERS #2973 branch reviewmagic.TechniqueVariantmagic.MagicalAlterationTemplateWhy it matters
After #2973 stripped
MagicContent.create_all()from the seeder, the six social-magicActionEnhancementrows are the only thing standing between "Social Arts techniques exist" and "magical persuade/intimidate/etc. are actually dispatchable" — and there is now NO production path that creates them (the seeder call was sample-gated even before the strip, so real deploys never had them; the strip made the gap visible rather than causing it). Same shape for resonance-specializedTechniqueVariants and corruption-twistMagicalAlterationTemplates: the #2973 lore PR (ArxII-lore#69) authors the templates but cannot author the twist rows that make corruption stages DO anything.Shape (mirrors #3006's Task 1)
NaturalKeyMixin + NaturalKeyConfig + CONTENT_MODELS registration for the three models, keyed off their existing uniqueness (verify each model's constraints at pickup; ActionEnhancement's identity is its action key linkage — check). Then the lore repo authors the six social enhancements, the Social Arts variants, and the twist rows (follow-on lore PR).
Per the seeder-vs-fixture dividing line (ruled 2026-08-06): none of these are code-named by literal — content-only references — so fixtures own them once registrable.
Related: #2973 (made the gap visible), ArxII-lore#69 (the content waiting on this), #3006 (the registration pattern to mirror).