Create Dataface chart option profile registry and stance overlay
Problem
Define the authored Dataface stance layer over the full chart contract so each chart option family records keep/rename/hide/default-owner/divergence decisions and feeds the canonical mapping layer, docs, and regression planning.
Context
- Background research:
ai_notes/refactors/DATAFACE_SPEC_PROFILE_AND_VEGA_LITE_STRATEGY.mdai_notes/research/DATAFACE_AS_A_DASHBOARD_SPEC_FROM_VEGA_LITE_OUTWARD.md- Upstream chart coverage and the mapping seam are now separate tasks:
- one task establishes the canonical compiled chart contract and profile-mapping layer
- one task builds the full mirrored Vega-Lite Pydantic chart layer
- What is still missing is the authored product-judgment overlay that says, for each option family:
- keep as-is
- rename or wrap
- hide from primary docs but still allow
- disallow
- assign default owner (
theme,structure,chart, or none) - record Dataface default/divergence notes
- This registry is not the same thing as schema shape:
- schema shape is structural truth
- this task captures Dataface product stance
- This registry should become the main working surface for RJ and others deciding how Dataface differs from vanilla Vega-Lite.
Possible Solutions
- Encode stance implicitly in code and docs as individual one-off decisions. Lowest setup cost, but guarantees drift and makes it impossible to audit Dataface policy cleanly.
- Recommended: create an explicit machine-readable profile registry/overlay keyed by chart option family/path. This keeps product judgment separate from raw schema shape and lets the same stance data feed mapping, docs, and regression generation.
- Put stance metadata directly onto generated Vega-Lite model fields. Possible, but it risks mixing upstream structure and Dataface opinion too tightly.
- Skip the registry and rely only on a full mirror plus handwritten docs. Too informal for a real spec and too hard to keep aligned.
Plan
Selected: Option 2 — build a machine-readable Dataface chart profile registry as the authored stance layer over the full chart contract.
Files to modify: 1. a new registry file/folder for chart-option stance metadata 2. profile-mapping code that consumes that stance data where possible 3. docs/test generation inputs that read from the same registry 4. tests validating registry completeness for the targeted chart families
Implementation steps: 1. Define the registry shape and required fields. 2. Seed it from the generated chart contract/property catalog where helpful. 3. Add Dataface-owned fields such as: - exposure tier - rename/wrap metadata - default owner - divergence notes - docs/example priority 4. Connect simple mapping cases to the registry directly. 5. Reserve explicit transform functions for logic-heavy cases the registry cannot encode alone. 6. Add validation so new mirrored chart families are not silently absent from the stance layer.
Implementation Progress
- Created as the missing authored-policy follow-on after the mapping-layer and full chart-mirror tasks.
- Current agreed role of this task:
- separate structural chart truth from Dataface product judgment
- give RJ a clean review surface for option-by-option decisions
- feed mapping, docs, and regression generation from one authored stance source
QA Exploration
- [ ] QA exploration completed (or N/A for non-UI tasks)
Review Feedback
- [ ] Review cleared