feat: chart decisions Phase 5 — YAML annotation overrides
Problem
Dataface's chart decision engine automatically selects chart types and visual encodings based on the data shape, but users currently have no way to override or annotate those decisions from YAML. When the engine picks a suboptimal chart type or encoding — for example choosing a grouped bar chart when the analyst wants a stacked one — the only recourse is to manually patch the generated Vega-Lite spec outside the Dataface pipeline. This breaks the declarative YAML workflow and makes dashboards fragile to regeneration. YAML-level annotation overrides would let analysts steer decisions (e.g., force a specific chart type, pin an axis scale) while keeping the decision engine as the default.
Context
- Automatic chart decisions are useful defaults, but they become brittle if users cannot annotate or override them when business context requires a different choice.
- YAML annotations should shape the decision engine without turning the decision system into a full manual chart-spec layer.
- This task should define the override vocabulary and how it interacts with existing automatic heuristics and fallback behavior.
Possible Solutions
- A - Keep chart decisions fully automatic: lowest complexity, but frustrating when the engine is close but not quite right.
- B - Recommended: add bounded YAML annotation overrides for chart decisions: let authors influence chart type and decision-relevant hints while preserving the automatic system as the default.
- C - Replace chart decisions with fully manual YAML control: powerful, but it abandons the value of the decision engine.
Plan
- [ ] Finalize override key vocabulary and precedence with existing defaults.
- [ ] Implement parser/decision-engine support for override application.
- [ ] Add audit/debug output so users can inspect why a chart was selected.
- [ ] Create fixtures demonstrating both happy path and conflicting overrides.
- [ ] Update chart-decisions docs with anti-patterns and recommended usage.
Implementation Progress
- GitHub issue: https://github.com/fivetran/dataface/issues/378
Review Feedback
- [ ] Review cleared