Skip to content

docs(dnn): #682 Rule field-model decision-input (Path A) + provisioning list (49 fields) - #694

Merged
jsboige merged 1 commit into
masterfrom
docs/dnn-682-field-model-decision-input
Jul 5, 2026
Merged

docs(dnn): #682 Rule field-model decision-input (Path A) + provisioning list (49 fields)#694
jsboige merged 1 commit into
masterfrom
docs/dnn-682-field-model-decision-input

Conversation

@jsboige

@jsboige jsboige commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

What

Decision-input for #682 (step 2 of the #669 DNN i18n portage plan) — the Rule field-model decision. Dispatch 0hbg9t (ai-01, primary). Analysis only — no DB write.

New doc: docs/dnn-localization/682-field-model-decision-input.md (+196 lines, docs-only).

Decision: Path A (lang-suffixed fields + loc() cascade)

Recommendation: Path A — mirror FallacyExplorer (#490) / PR #674. Provision 7 translatable fields × 7 non-FR langs = 49 new suffixed fields on the Rule content-type.

Path B (2sxc EAV language dimensions) rejected: prod EAV is FR+EN only (#687), so Path B would block on enabling 5 new cultures + their dimensions before any translation can attach. Path A needs none of that — loc() reads suffixed fields independent of EAV dimensioning. Decision is effectively forced by #687.

The exact field-list (jsboige execution input)

49 fields (doc §2 has the full grid):

{EntityTitle,Summary,Material,Installation,Content,Variants,Memo}_{en,ru,pt,es,ar,fa,zh}

jsboige: create these in the 2sxc content-type editor, matching each field's type to its generic counterpart. This makes the DB provisioning a trivial mechanical step.

Open (gated) — honest

The exact 2sxc attribute types (String/Hyperlink/Wysiwyg) remain gated on the sysadmin unblocker (#687 §3: jsboi has no server role + is not mapped in ArgumentumGames DB → no SELECT on ToSic_EAV_Attribute). Re-verified this tick — blocker still active. Best-effort type inference provided (all 7 = String/rich-HTML, high confidence from @Html.Raw usage); jsboige confirms via the live 2sxc editor.

Docs-only, no test/build impact.

Relates: #682, #681, #669, #687, #674, #490, #684, #683, #458.

…ng list (49 fields)

Decision-input for #682 (step 2 of the #669 portage plan). Triggered by ai-01
dispatch 0hbg9t (primary). Analysis only — no DB write.

Recommendation: Path A (lang-suffixed fields + loc() cascade, mirror #490/#674).
- Provision 7 translatable fields x 7 non-FR langs = 49 new suffixed fields on
  the Rule content-type (EntityTitle/Summary/Material/Installation/Content/
  Variants/Memo x en/ru/pt/es/ar/fa/zh).
- FR stays canonical (unsuffixed) — no data migration.
- Path B (EAV dimensions) rejected: prod EAV is FR+EN only (#687), Path B would
  block on enabling 5 cultures + their dimensions; Path A needs none of that.

Exact field-list derived from #669 Sec 2c (view-template audit) + #687 (binary
scan) + PR #674 Loc() cascade (7 fields routed). The 4th-fallback design
(generic = FR canonical) preserves current FR rendering during transition.

Open (gated): exact 2sxc attribute types (String/Hyperlink/...) remain gated
on the sysadmin unblocker (#687 Sec 3 — jsboi has no server role, not mapped
in ArgumentumGames DB). Best-effort inference provided; jsboige confirms via
live 2sxc editor. Re-verified the sysadmin blocker this tick (still active).

Co-Authored-By: Claude-Code <noreply@anthropic.com>
@jsboige
jsboige merged commit e0cc7a4 into master Jul 5, 2026
3 checks passed
@jsboige
jsboige deleted the docs/dnn-682-field-model-decision-input branch July 5, 2026 05:10
jsboige added a commit that referenced this pull request Jul 9, 2026
…nfirms Path A, 3 deltas corrected (#759)

Revision of #682 (PR #694, 2026-07-05) in light of the live 2sxc v21 export (#681, delivered by
web1, read-only SQL Method B). Addendum/supersede-note, NOT a rewrite — the original Path A decision
(49 suffixed fields, FR canonical) is confirmed correct.

3 deltas corrected (the binary scan #687 could not see these):
1. Schema family: ToSIC_SexyContent_* (2sxc 15.02) -> ToSIC_EAV_* (2sxc v21). Spec §4 outdated.
2. app-id: app=31 (debate/fallacies) was wrong-app probed -> Argumentum game = app=60 (ZoneID=3).
3. Attribute types: previously gated on sysadmin unblocker -> RESOLVED. All 7 translatable fields
   are Type:String (Wysiwyg/rich-HTML). Full 15-attribute schema enumerated (AttributeSet 377).

Key clarifications:
- "7->15 attrs" dispatch wording = 15 = TOTAL attrs on content-type, not 15 translatable.
  Translatable count stays 7 (Title/Summary/Material/Installation/Content/Variants/Memo).
  The 8 extra attrs (Parent/Date/Author/Licence/Original + Min/MaxNbPlayers + UrlKey) are all
  non-localizable. Provisioning list (49 suffixed fields) is UNCHANGED.
- "49 suffixes" = content-type attributes (this scope), NOT res.* label resources. The res.* rail
  (9 res.Rule* keys, eid=10340) is the separate #490/#457 localization lane.
- #684 translation scope corrected: export confirms 5 published rules (not 24-30) — DB in
  seed/pre-migration state.
- res.Rule* live FR values captured for #490 (next): 5 confirmed + 4 divergent/gap to reconcile.

Added banner to the original 682-field-model-decision-input.md pointing to this revision.

Analysis-only. No DB write. No prod interaction (export = read-only SELECT). No #674 merge.

Co-authored-by: Claude <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Jul 11, 2026
… B) (#774)

The live DNN Argumentum site 2sxc export (delivered 2026-07-07 by myia-web1
via Method B read-only SQL SELECT, zero mutation) is now committed to the
repo so the DNN i18n lane (#490/#682/#684) has a stable, reviewable ground
truth — previously it lived only in GDrive shared-state attachments.

7 files under docs/dnn-localization/release-validation/exports/
DNN-Argumentum-export-2026-07-07/:
- manifest.json — provenance, schema family, findings (self-documenting)
- 10-app60-content-types.json — app=60 all 13 content-types
- 11-game-rule-schema.json — Game Rule schema (id=377, 15 attrs) — #682 unblocker
- 12-game-rule-content-items.json — 5 Game Rule entities + field values FR/EN
- 13-app60-resources.csv — App-Resources §6 CSV (key/fr/en), includes res.Rule*
- 13-app60-resources.json — App-Resources raw (entities + attributes + values)
- 14-res-rule-dictionary.json — res.Rule* FR dictionary (9 keys)

Key manifest findings (load-bearing for downstream work):
- schemaFamily = ToSIC_EAV_* (2sxc v21) — NOT ToSIC_SexyContent_* (spec §4
  written for 2sxc 15.02 is outdated, needs doc correction).
- argumentumAppId=60, ZoneId=3 (app=31 was wrong-app: debate/fallacies).
- gameRuleCount=5 (NOT 24-30 as dispatch estimated) — DB in seed/pre-migration state.
- res.Rule* = 9 keys on eid=10340, stored as ATTRIBUTES of one resource entity,
  FR dimensionless default (site default), enUS dimensionId=3.

Byte-fidelity: all 7 files md5-verified identical to GDrive source (offload
GDrive #2797 resolved by po-2025, re-readable). Secret scan clean (dbInstance
= local .\SQLExpress, no credentials in export).

Gate: 0 prod write (Method B read-only SELECT). QA verdict = ai-01.

Relates: #681, #458, #490, #682, #684, #694, dispatch 5mhn2r.

Co-authored-by: Claude-Code <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant