Skip to content

fix(prompts): disambiguate tag-vocab tables (Copilot review on #5856)#5859

Merged
MarkusNeusinger merged 3 commits into
mainfrom
fix/spec-tag-vocab-disambiguate
May 7, 2026
Merged

fix(prompts): disambiguate tag-vocab tables (Copilot review on #5856)#5859
MarkusNeusinger merged 3 commits into
mainfrom
fix/spec-tag-vocab-disambiguate

Conversation

@MarkusNeusinger
Copy link
Copy Markdown
Owner

Summary

Follow-up to PR #5856 addressing the three Copilot review comments. All three pointed to real ambiguities in the policy doc that would have re-introduced churn the original PR was trying to remove.

What changed

  1. Sankey example was self-contradictory. The doc said "Sankey is also a flow plot" right next to the new rule that plot_type cannot contain flow. Reworded to "A Sankey diagram is plot_type: sankey plus features: flow" so the example matches the policy.

  2. Same tag listed in multiple dimensions. temporal was in both data_type and features; multivariate / hierarchical / directional were duplicated as features even though they describe input shape. Resolved each to a single home: temporalfeatures only (presentation), the three structure tags → data_type only (shape).

  3. Both canonical and legacy synonyms in the same table. features listed multi and multi-series, plus flow and flow-visualization. Kept just the canonical form in the table (multi, flow, stepwise, color-mapped) and added an explicit "polish rewrites legacy synonyms" callout so the rewrite rules are visible at the source.

Why it matters

Without these fixes the polish prompt could legitimately have flipped the same tag back and forth between dimensions on consecutive regen ticks (since both placements would look "valid" by the table). The disambiguation ensures every common tag has exactly one home, and the canonical-vs-synonym list makes the rewrite rules referenceable.

Test plan

  • Diff is doc-only, two-section edit on prompts/spec-tags-generator.md
  • CI green
  • Next daily-regen tick uses the disambiguated tables — should produce zero churn on already-canonicalized specs

🤖 Generated with Claude Code

Three follow-ups landing the Copilot review feedback:

1. Sankey example was contradictory: said "Sankey is also a flow
   plot" right next to a strict rule that plot_type cannot
   contain `flow`. Reword as "plot_type: sankey + features:
   flow" so the example agrees with the policy.

2. data_type vs features overlap: temporal moved to features
   only (it's a presentation property, not a data shape);
   directional stayed in data_type only; multivariate and
   hierarchical stayed in data_type only. Each tag now lives in
   exactly one dimension.

3. features had both `multi`/`multi-series` and `flow`/
   `flow-visualization` listed — pick the canonical form (the
   shorter one) and call out that polish will rewrite the
   legacy synonyms to match.

Net effect: the polish prompt now has unambiguous guidance
about which dimension every common tag belongs in, so it stops
flip-flopping when re-running on the same spec.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@MarkusNeusinger MarkusNeusinger enabled auto-merge (squash) May 7, 2026 05:53
Copilot AI review requested due to automatic review settings May 7, 2026 05:55
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Clarifies the spec tag vocabulary policy to remove ambiguity between plot_type, data_type, and features, reducing regenerations that “flip” tags between allowed dimensions.

Changes:

  • Updated the Sankey example to align with the rule that flow is a features tag, not a plot_type.
  • Removed duplicated/ambiguous tags across dimensions (e.g., temporal, multivariate, hierarchical, directional) and added guidance on what belongs in data_type vs features.
  • Added an explicit canonical-vs-legacy synonym note for features tags to make rewrite behavior referenceable.

- Multiple tags allowed when plot combines multiple types
- Example: Sankey is also a `flow` plot
- Multiple tags allowed when plot combines multiple types — but every value must come from this canonical table
- `flow`, `temporal`, `multi`, etc. are NOT plot types. They go in `features` (where they describe a property of the visualization). A Sankey diagram is `plot_type: sankey` plus `features: flow`.
- `multi` (not `multi-series`) for "more than one series in the same chart"
- `flow` (not `flow-visualization`) for diagrams whose primary message is movement between states
- `stepwise` (not `sequential`) for staircase-style transitions
- `color-mapped` (not `labeled`) when the distinction is colour encoding
@MarkusNeusinger MarkusNeusinger merged commit c78a144 into main May 7, 2026
5 checks passed
@MarkusNeusinger MarkusNeusinger deleted the fix/spec-tag-vocab-disambiguate branch May 7, 2026 05:58
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.

2 participants