{ "schemaVersion": 1, "fixtureRevision": "97eb2a2", "gradeSemantics": { "2": "Directly answers the query and is an expected best result.", "1": "Useful and acceptable, but less specific than a grade-2 result.", "0": "Not relevant. Every returned row not listed in judgments is implicitly grade 0." }, "globalNegativeApplicability": { "tag": "hard-negative", "domains": ["style", "color", "chart", "landing", "product", "ux", "typography", "icons", "gsap", "react", "web", "google-fonts"], "stacks": ["react", "nextjs", "vue", "svelte", "astro", "swiftui", "react-native", "flutter", "nuxtjs", "nuxt-ui", "html-tailwind", "shadcn", "jetpack-compose", "threejs", "angular", "laravel", "javafx", "wpf", "winui", "avalonia", "uno", "uwp"], "interpretation": "Run every hard-negative case against all registered domains and stacks. Any returned row is an implicit grade-0 false positive; aggregate reporting may cap this cross-product separately." }, "cases": [ {"id":"domain-style-glassmorphism","split":"calibration","mode":"domain","query":"frosted glass transparent blurred layered UI","domain":"style","judgments":[{"identity":{"Style Category":"Glassmorphism"},"grade":2}],"tags":["exact-intent","domain-positive"],"notes":"Canonical visual treatment, expressed through its descriptive attributes."}, {"id":"domain-style-accessible-paraphrase","split":"held_out","mode":"domain","query":"inclusive high contrast interface with keyboard nav and screen readers","domain":"style","judgments":[{"identity":{"Style Category":"Accessible & Ethical"},"grade":2},{"identity":{"Style Category":"Inclusive Design"},"grade":1}],"tags":["paraphrase","domain-positive"],"notes":"A style request, not an individual UX rule."}, {"id":"domain-color-spa","split":"calibration","mode":"domain","query":"beauty spa wellness soft pink lavender palette","domain":"color","judgments":[{"identity":{"Product Type":"Beauty/Spa/Wellness Service"},"grade":2}],"tags":["product-palette","domain-positive"],"notes":"Uses the public Product Type as the stable palette identity."}, {"id":"domain-color-cyber-typo","split":"held_out","mode":"domain","query":"cybersecurty threat dashboard matrix green dark pallete","domain":"color","judgments":[{"identity":{"Product Type":"Cybersecurity Platform"},"grade":2}],"tags":["typo","domain-positive"],"notes":"Deliberately misspells cybersecurity and palette."}, {"id":"domain-chart-time-series","split":"calibration","mode":"domain","query":"trend over time growth timeline line chart","domain":"chart","judgments":[{"identity":{"Data Type":"Trend Over Time"},"grade":2},{"identity":{"Data Type":"Time-Series Forecast"},"grade":1}],"tags":["exact-intent","domain-positive"],"notes":"Forecasting is acceptable only as a secondary interpretation."}, {"id":"domain-chart-correlation-paraphrase","split":"held_out","mode":"domain","query":"show whether two measures move together using dots and bubbles","domain":"chart","judgments":[{"identity":{"Data Type":"Correlation / Distribution"},"grade":2}],"tags":["paraphrase","domain-positive"],"notes":"Avoids the canonical words scatter and correlation."}, {"id":"domain-landing-pricing","split":"calibration","mode":"domain","query":"pricing plans tiers comparison landing CTA","domain":"landing","judgments":[{"identity":{"Pattern Name":"Pricing Page + CTA"},"grade":2},{"identity":{"Pattern Name":"Pricing-Focused Landing"},"grade":2},{"identity":{"Pattern Name":"Comparison Table + CTA"},"grade":1}],"tags":["multi-acceptable","domain-positive"],"notes":"Both dedicated pricing patterns are equally valid."}, {"id":"domain-landing-enterprise-typo","split":"held_out","mode":"domain","query":"enterprise credibilty trust authority conversion page","domain":"landing","judgments":[{"identity":{"Pattern Name":"Trust & Authority + Conversion"},"grade":2},{"identity":{"Pattern Name":"Enterprise Gateway"},"grade":1}],"tags":["typo","domain-positive"],"notes":"Misspells credibility while preserving the enterprise intent."}, {"id":"domain-product-spa","split":"calibration","mode":"domain","query":"salon massage skincare booking and wellness service","domain":"product","judgments":[{"identity":{"Product Type":"Beauty/Spa/Wellness Service"},"grade":2},{"identity":{"Product Type":"Booking & Appointment App"},"grade":1}],"tags":["multi-acceptable","domain-positive"],"notes":"The industry is primary; booking is a supporting capability."}, {"id":"domain-product-security-paraphrase","split":"held_out","mode":"domain","query":"platform for monitoring digital threats and protecting systems","domain":"product","judgments":[{"identity":{"Product Type":"Cybersecurity Platform"},"grade":2}],"tags":["paraphrase","domain-positive"],"notes":"Avoids the exact keyword cyber."}, {"id":"domain-ux-keyboard-focus","split":"calibration","mode":"domain","query":"visible focus and complete keyboard navigation for web users","domain":"ux","judgments":[{"identity":{"Category":"Accessibility","Issue":"Keyboard Navigation","Platform":"Web"},"grade":2},{"identity":{"Category":"Interaction","Issue":"Focus States","Platform":"All"},"grade":2}],"tags":["multi-acceptable","domain-positive"],"notes":"Both navigation coverage and visible focus are explicitly requested."}, {"id":"domain-ux-motion-paraphrase","split":"held_out","mode":"domain","query":"stop animations making people sick and honor their motion preference","domain":"ux","judgments":[{"identity":{"Category":"Animation","Issue":"Reduced Motion","Platform":"All"},"grade":2},{"identity":{"Category":"Animation","Issue":"Excessive Motion","Platform":"All"},"grade":1}],"tags":["paraphrase","accessibility","domain-positive"],"notes":"Preference support is stronger than generic excessive-motion advice."}, {"id":"domain-typography-luxury","split":"calibration","mode":"domain","query":"elegant luxury serif heading with clean readable body font","domain":"typography","judgments":[{"identity":{"Font Pairing Name":"Classic Elegant"},"grade":2},{"identity":{"Font Pairing Name":"Luxury Serif"},"grade":2},{"identity":{"Font Pairing Name":"Luxury Minimalist"},"grade":1}],"tags":["multi-acceptable","domain-positive"],"notes":"Several curated pairs directly satisfy this intentionally broad mood."}, {"id":"domain-typography-accessible-typo","split":"held_out","mode":"domain","query":"dyslexia frendly hyperlegible inclusive type pairing","domain":"typography","judgments":[{"identity":{"Font Pairing Name":"Accessibility First"},"grade":2},{"identity":{"Font Pairing Name":"Academic/Research"},"grade":1}],"tags":["typo","accessibility","domain-positive"],"notes":"Misspells friendly; the all-Atkinson pairing is the direct answer."}, {"id":"domain-icons-search","split":"calibration","mode":"domain","query":"find lookup search icon for a query field","domain":"icons","judgments":[{"identity":{"Category":"Action","Icon Name":"magnifying-glass","Library":"Phosphor"},"grade":2},{"identity":{"Category":"Action","Icon Name":"funnel","Library":"Phosphor"},"grade":1}],"tags":["exact-intent","domain-positive"],"notes":"Filter is useful but not equivalent to search."}, {"id":"domain-icons-warning-typo","split":"held_out","mode":"domain","query":"warnng caution danger status symbol","domain":"icons","judgments":[{"identity":{"Category":"Status","Icon Name":"warning","Library":"Phosphor"},"grade":2},{"identity":{"Category":"Status","Icon Name":"warning-circle","Library":"Phosphor"},"grade":1}],"tags":["typo","domain-positive"],"notes":"Misspells warning and allows the circled variant as secondary."}, {"id":"domain-gsap-scroll-reveal","split":"calibration","mode":"domain","query":"GSAP reveal elements when they enter the viewport on scroll","domain":"gsap","judgments":[{"identity":{"Category":"Scroll Reveal","Intensity Tier":"Subtle","Trigger":"scroll (viewport enter)"},"grade":2},{"identity":{"Category":"Scroll Reveal","Intensity Tier":"Standard","Trigger":"scroll (viewport enter)"},"grade":2},{"identity":{"Category":"Scroll Reveal","Intensity Tier":"Complex","Trigger":"scroll (continuous scrub)"},"grade":1}],"tags":["multi-acceptable","domain-positive"],"notes":"Viewport-entry variants are direct; continuous scrub is related but stronger."}, {"id":"domain-gsap-skeleton-typo","split":"held_out","mode":"domain","query":"skeletn shimmer loader while async content waits","domain":"gsap","judgments":[{"identity":{"Category":"Loading / Skeleton","Intensity Tier":"Subtle","Trigger":"on mount / async wait"},"grade":2},{"identity":{"Category":"Loading / Skeleton","Intensity Tier":"Standard","Trigger":"on mount / async wait"},"grade":1}],"tags":["typo","domain-positive"],"notes":"Misspells skeleton; subtle shimmer is the most exact row."}, {"id":"domain-react-parallel-promises","split":"calibration","mode":"domain","query":"React Promise.all parallel concurrent requests instead of waterfall","domain":"react","judgments":[{"identity":{"Category":"Async Waterfall","Issue":"Promise.all Parallel","Platform":"React/Next.js"},"grade":2},{"identity":{"Category":"Async Waterfall","Issue":"Dependency Parallelization","Platform":"React/Next.js"},"grade":1}],"tags":["exact-intent","domain-positive"],"notes":"The first row exactly names Promise.all."}, {"id":"domain-react-dynamic-import-paraphrase","split":"held_out","mode":"domain","query":"load a heavy JavaScript chunk only when the component is needed","domain":"react","judgments":[{"identity":{"Category":"Bundle Size","Issue":"Dynamic Imports","Platform":"React/Next.js"},"grade":2},{"identity":{"Category":"Bundle Size","Issue":"Conditional Loading","Platform":"React/Next.js"},"grade":1}],"tags":["paraphrase","domain-positive"],"notes":"Avoids the canonical term lazy in the main clause."}, {"id":"domain-web-icon-label","split":"calibration","mode":"domain","query":"accessible name for an icon-only mobile button","domain":"web","judgments":[{"identity":{"Category":"Accessibility","Issue":"Icon Button Labels","Platform":"iOS/Android/React Native"},"grade":2}],"tags":["accessibility","domain-positive"],"notes":"App-interface guidance uses the public web domain key."}, {"id":"domain-web-virtual-list-paraphrase","split":"held_out","mode":"domain","query":"keep a very long mobile list smooth without rendering every row","domain":"web","judgments":[{"identity":{"Category":"Performance","Issue":"Virtualize Long Lists","Platform":"iOS/Android/React Native"},"grade":2}],"tags":["paraphrase","domain-positive"],"notes":"Describes virtualization without naming FlatList."}, {"id":"domain-google-fonts-inter","split":"calibration","mode":"domain","query":"Inter variable sans serif Google font family","domain":"google-fonts","judgments":[{"identity":{"Family":"Inter"},"grade":2},{"identity":{"Family":"Inter Tight"},"grade":1}],"tags":["exact-entity","domain-positive"],"notes":"Exact family is preferred over its related Tight family."}, {"id":"domain-google-fonts-atkinson-paraphrase","split":"held_out","mode":"domain","query":"hyperlegible accessible sans typeface for easier reading","domain":"google-fonts","judgments":[{"identity":{"Family":"Atkinson Hyperlegible"},"grade":2},{"identity":{"Family":"Atkinson Hyperlegible Next"},"grade":1}],"tags":["paraphrase","accessibility","domain-positive"],"notes":"The established family is locked; its newer related family is acceptable."}, {"id":"stack-angular-standalone","split":"calibration","mode":"stack","query":"standalone Angular components for a new project","stack":"angular","judgments":[{"identity":{"Category":"Components","Guideline":"Use standalone components"},"grade":2}],"tags":["stack-positive","exact-intent"],"notes":"Modern Angular component architecture."}, {"id":"stack-angular-signals-paraphrase","split":"held_out","mode":"stack","query":"reactive local state with Angular signal primitives","stack":"angular","judgments":[{"identity":{"Category":"Components","Guideline":"Use signals for state"},"grade":2}],"tags":["stack-positive","paraphrase"],"notes":"Held out wording for signals."}, {"id":"stack-astro-islands","split":"calibration","mode":"stack","query":"Astro islands architecture interactive components","stack":"astro","judgments":[{"identity":{"Category":"Architecture","Guideline":"Use Islands Architecture"},"grade":2}],"tags":["stack-positive","exact-intent"],"notes":"Canonical Astro architecture."}, {"id":"stack-astro-zero-js-paraphrase","split":"held_out","mode":"stack","query":"ship no browser JavaScript unless interaction requires it","stack":"astro","judgments":[{"identity":{"Category":"Architecture","Guideline":"Default to zero JS"},"grade":2}],"tags":["stack-positive","paraphrase"],"notes":"Describes the zero-JS default."}, {"id":"stack-avalonia-namespace","split":"calibration","mode":"stack","query":"Avalonia XAML namespace declaration","stack":"avalonia","judgments":[{"identity":{"Category":"XAML","Guideline":"Use Avalonia XAML namespace"},"grade":2}],"tags":["stack-positive","exact-intent"],"notes":"Exact Avalonia XAML setup concern."}, {"id":"stack-avalonia-compiled-binding","split":"held_out","mode":"stack","query":"type checked compiled binding with x DataType","stack":"avalonia","judgments":[{"identity":{"Category":"XAML","Guideline":"Use compiled bindings with x:DataType"},"grade":2}],"tags":["stack-positive","paraphrase"],"notes":"Punctuation-free paraphrase of x:DataType."}, {"id":"stack-flutter-stateless","split":"calibration","mode":"stack","query":"prefer StatelessWidget when Flutter UI has no mutable state","stack":"flutter","judgments":[{"identity":{"Category":"Widgets","Guideline":"Use StatelessWidget when possible"},"grade":2}],"tags":["stack-positive","exact-intent"],"notes":"Direct widget choice."}, {"id":"stack-flutter-const-paraphrase","split":"held_out","mode":"stack","query":"reduce Flutter rebuild cost with immutable compile-time widgets","stack":"flutter","judgments":[{"identity":{"Category":"Widgets","Guideline":"Use const constructors"},"grade":2}],"tags":["stack-positive","paraphrase"],"notes":"Describes const constructor value without copying the title."}, {"id":"stack-html-tailwind-z-index","split":"calibration","mode":"stack","query":"Tailwind z-index utility scale for layered UI","stack":"html-tailwind","judgments":[{"identity":{"Category":"Z-Index","Guideline":"Use Tailwind z-* scale"},"grade":2}],"tags":["stack-positive","exact-intent"],"notes":"Specific utility-scale guidance."}, {"id":"stack-html-tailwind-hover","split":"held_out","mode":"stack","query":"smooth transition when a Tailwind element is hovered","stack":"html-tailwind","judgments":[{"identity":{"Category":"Animation","Guideline":"Hover transitions"},"grade":2}],"tags":["stack-positive","paraphrase"],"notes":"Natural language hover-motion request."}, {"id":"stack-javafx-application","split":"calibration","mode":"stack","query":"launch JavaFX UI from an Application subclass","stack":"javafx","judgments":[{"identity":{"Category":"Application","Guideline":"Start UI from Application subclass"},"grade":2}],"tags":["stack-positive","exact-intent"],"notes":"Canonical JavaFX application lifecycle."}, {"id":"stack-javafx-threading-paraphrase","split":"held_out","mode":"stack","query":"prevent slow background work from freezing the FX application thread","stack":"javafx","judgments":[{"identity":{"Category":"Threading","Guideline":"Keep work off the FX Application Thread"},"grade":2}],"tags":["stack-positive","paraphrase"],"notes":"Describes the failure mode rather than repeating the title."}, {"id":"stack-compose-pure-ui","split":"calibration","mode":"stack","query":"pure Jetpack Compose UI composables","stack":"jetpack-compose","judgments":[{"identity":{"Category":"Composable","Guideline":"Pure UI composables"},"grade":2}],"tags":["stack-positive","exact-intent"],"notes":"Direct Compose architecture query."}, {"id":"stack-compose-single-source","split":"held_out","mode":"stack","query":"one authoritative owner for Compose screen state","stack":"jetpack-compose","judgments":[{"identity":{"Category":"State","Guideline":"Single source of truth"},"grade":2}],"tags":["stack-positive","paraphrase"],"notes":"Paraphrases state ownership."}, {"id":"stack-laravel-blade-component","split":"calibration","mode":"stack","query":"reusable Laravel Blade UI components","stack":"laravel","judgments":[{"identity":{"Category":"Blade Templates","Guideline":"Use Blade components for reusable UI"},"grade":2}],"tags":["stack-positive","exact-intent"],"notes":"Direct Blade reuse guidance."}, {"id":"stack-laravel-props","split":"held_out","mode":"stack","query":"declare typed inputs for a Blade component using props","stack":"laravel","judgments":[{"identity":{"Category":"Blade Templates","Guideline":"Use @props for component type-safety"},"grade":2}],"tags":["stack-positive","paraphrase"],"notes":"Natural wording around @props."}, {"id":"stack-nextjs-app-router","split":"calibration","mode":"stack","query":"Next.js App Router for a new project","stack":"nextjs","judgments":[{"identity":{"Category":"Routing","Guideline":"Use App Router for new projects"},"grade":2}],"tags":["stack-positive","exact-intent"],"notes":"Current routing architecture."}, {"id":"stack-nextjs-server-components","split":"held_out","mode":"stack","query":"render on the server by default and opt into client boundaries","stack":"nextjs","judgments":[{"identity":{"Category":"Rendering","Guideline":"Use Server Components by default"},"grade":2}],"tags":["stack-positive","paraphrase"],"notes":"Held-out RSC wording."}, {"id":"stack-nuxt-ui-module","split":"calibration","mode":"stack","query":"install the Nuxt UI module","stack":"nuxt-ui","judgments":[{"identity":{"Category":"Installation","Guideline":"Add Nuxt UI module"},"grade":2}],"tags":["stack-positive","exact-intent"],"notes":"Basic Nuxt UI setup."}, {"id":"stack-nuxt-ui-semantic-color","split":"held_out","mode":"stack","query":"style Nuxt UI components through meaning-based color props","stack":"nuxt-ui","judgments":[{"identity":{"Category":"Components","Guideline":"Use semantic color props"},"grade":2}],"tags":["stack-positive","paraphrase"],"notes":"Avoids copying semantic exactly except its concept."}, {"id":"stack-nuxtjs-file-routing","split":"calibration","mode":"stack","query":"Nuxt file-based page routing","stack":"nuxtjs","judgments":[{"identity":{"Category":"Routing","Guideline":"Use file-based routing"},"grade":2}],"tags":["stack-positive","exact-intent"],"notes":"Canonical Nuxt routing convention."}, {"id":"stack-nuxtjs-ssr","split":"held_out","mode":"stack","query":"server render Nuxt pages unless a client-only boundary is necessary","stack":"nuxtjs","judgments":[{"identity":{"Category":"Rendering","Guideline":"Use SSR by default"},"grade":2}],"tags":["stack-positive","paraphrase"],"notes":"Describes the SSR default."}, {"id":"stack-react-native-functional","split":"calibration","mode":"stack","query":"functional React Native components","stack":"react-native","judgments":[{"identity":{"Category":"Components","Guideline":"Use functional components"},"grade":2}],"tags":["stack-positive","exact-intent"],"notes":"Direct component style."}, {"id":"stack-react-native-stylesheet","split":"held_out","mode":"stack","query":"define reusable native styles outside render instead of inline objects","stack":"react-native","judgments":[{"identity":{"Category":"Styling","Guideline":"Use StyleSheet.create"},"grade":2}],"tags":["stack-positive","paraphrase"],"notes":"Describes StyleSheet.create without naming it."}, {"id":"stack-react-usestate","split":"calibration","mode":"stack","query":"React useState for component local state","stack":"react","judgments":[{"identity":{"Category":"State","Guideline":"Use useState for local state"},"grade":2}],"tags":["stack-positive","exact-intent"],"notes":"Canonical local state hook."}, {"id":"stack-react-effect-cleanup","split":"held_out","mode":"stack","query":"remove subscriptions and timers when a React effect unmounts","stack":"react","judgments":[{"identity":{"Category":"Effects","Guideline":"Clean up effects"},"grade":2}],"tags":["stack-positive","paraphrase"],"notes":"Describes cleanup behavior."}, {"id":"stack-shadcn-cli","split":"calibration","mode":"stack","query":"install shadcn components with the CLI","stack":"shadcn","judgments":[{"identity":{"Category":"Setup","Guideline":"Use CLI for installation"},"grade":2}],"tags":["stack-positive","exact-intent"],"notes":"Canonical setup path."}, {"id":"stack-shadcn-css-vars","split":"held_out","mode":"stack","query":"theme shadcn semantic colors through custom properties","stack":"shadcn","judgments":[{"identity":{"Category":"Theming","Guideline":"Use CSS variables for colors"},"grade":2}],"tags":["stack-positive","paraphrase"],"notes":"Uses custom properties as a synonym for CSS variables."}, {"id":"stack-svelte-state","split":"calibration","mode":"stack","query":"Svelte 5 $state rune for reactive state","stack":"svelte","judgments":[{"identity":{"Category":"Reactivity","Guideline":"Use $state in Svelte 5"},"grade":2}],"tags":["stack-positive","exact-intent"],"notes":"Specific Svelte 5 primitive."}, {"id":"stack-svelte-effect","split":"held_out","mode":"stack","query":"run a Svelte 5 side effect when reactive dependencies change","stack":"svelte","judgments":[{"identity":{"Category":"Reactivity","Guideline":"Use $effect for side effects"},"grade":2}],"tags":["stack-positive","paraphrase"],"notes":"Behavioral wording for $effect."}, {"id":"stack-swiftui-state","split":"calibration","mode":"stack","query":"SwiftUI @State for view-local value state","stack":"swiftui","judgments":[{"identity":{"Category":"State","Guideline":"Use @State for local state"},"grade":2}],"tags":["stack-positive","exact-intent"],"notes":"Canonical property wrapper choice."}, {"id":"stack-swiftui-navigation","split":"held_out","mode":"stack","query":"modern value-driven iOS navigation container replacing NavigationView","stack":"swiftui","judgments":[{"identity":{"Category":"Navigation","Guideline":"Use NavigationStack or NavigationSplitView (iOS 16+)"},"grade":2}],"tags":["stack-positive","paraphrase"],"notes":"Describes NavigationStack migration intent."}, {"id":"stack-threejs-orbitcontrols","split":"calibration","mode":"stack","query":"Three.js OrbitControls must be imported separately","stack":"threejs","judgments":[{"identity":{"Category":"Setup","Guideline":"Import OrbitControls from Three.js Addons"},"grade":2}],"tags":["stack-positive","exact-intent"],"notes":"Common setup failure."}, {"id":"stack-threejs-pixel-ratio","split":"held_out","mode":"stack","query":"avoid excessive GPU work on retina screens by limiting renderer DPR","stack":"threejs","judgments":[{"identity":{"Category":"Setup","Guideline":"Pixel Ratio Cap at 2"},"grade":2}],"tags":["stack-positive","paraphrase"],"notes":"Uses DPR and performance wording."}, {"id":"stack-uno-winui-xaml","split":"calibration","mode":"stack","query":"Uno Platform WinUI XAML API surface","stack":"uno","judgments":[{"identity":{"Category":"XAML","Guideline":"Use WinUI XAML API surface"},"grade":2}],"tags":["stack-positive","exact-intent"],"notes":"Canonical cross-platform XAML surface."}, {"id":"stack-uno-package-paraphrase","split":"held_out","mode":"stack","query":"choose the modern Uno WinUI package instead of the legacy Uno UI package","stack":"uno","judgments":[{"identity":{"Category":"XAML","Guideline":"Use Uno.WinUI not Uno.UI for new projects"},"grade":2}],"tags":["stack-positive","paraphrase"],"notes":"Natural package-selection wording."}, {"id":"stack-uwp-xbind","split":"calibration","mode":"stack","query":"UWP compiled x:Bind data binding","stack":"uwp","judgments":[{"identity":{"Category":"XAML","Guideline":"Use x:Bind for compiled bindings"},"grade":2}],"tags":["stack-positive","exact-intent"],"notes":"Canonical compiled binding guidance."}, {"id":"stack-uwp-migration","split":"held_out","mode":"stack","query":"which Windows UI framework should a brand new app choose instead of legacy UWP","stack":"uwp","judgments":[{"identity":{"Category":"Architecture","Guideline":"Prefer WinUI 3 for new projects"},"grade":2}],"tags":["stack-positive","paraphrase"],"notes":"Tests that legacy-stack guidance can recommend the successor."}, {"id":"stack-vue-composition","split":"calibration","mode":"stack","query":"Vue Composition API for a new project","stack":"vue","judgments":[{"identity":{"Category":"Composition","Guideline":"Use Composition API for new projects"},"grade":2}],"tags":["stack-positive","exact-intent"],"notes":"Canonical Vue architecture."}, {"id":"stack-vue-pinia","split":"held_out","mode":"stack","query":"central shared Vue application state store","stack":"vue","judgments":[{"identity":{"Category":"State","Guideline":"Use Pinia for global state"},"grade":2}],"tags":["stack-positive","paraphrase"],"notes":"Avoids naming Pinia in the query."}, {"id":"stack-winui-infobar","split":"calibration","mode":"stack","query":"WinUI InfoBar for status messages","stack":"winui","judgments":[{"identity":{"Category":"Controls","Guideline":"Use InfoBar for status messages"},"grade":2}],"tags":["stack-positive","exact-intent"],"notes":"Specific WinUI control selection."}, {"id":"stack-winui-dispatcherqueue","split":"held_out","mode":"stack","query":"marshal a WinUI update back onto the UI thread with the modern dispatcher","stack":"winui","judgments":[{"identity":{"Category":"Threading","Guideline":"Use DispatcherQueue not Dispatcher"},"grade":2}],"tags":["stack-positive","paraphrase"],"notes":"Describes DispatcherQueue without copying its name."}, {"id":"stack-wpf-property-change","split":"calibration","mode":"stack","query":"WPF INotifyPropertyChanged data binding updates","stack":"wpf","judgments":[{"identity":{"Category":"Data Binding","Guideline":"Implement INotifyPropertyChanged"},"grade":2}],"tags":["stack-positive","exact-intent"],"notes":"Canonical MVVM notification contract."}, {"id":"stack-wpf-virtualization","split":"held_out","mode":"stack","query":"keep a huge WPF list responsive by only creating visible item containers","stack":"wpf","judgments":[{"identity":{"Category":"Performance","Guideline":"Use VirtualizingStackPanel for large lists"},"grade":2}],"tags":["stack-positive","paraphrase"],"notes":"Behavioral description of list virtualization."}, {"id":"auto-route-accessibility","split":"calibration","mode":"auto","query":"WCAG keyboard accessibility and visible focus","expectedRoute":"ux","judgments":[{"identity":{"Category":"Accessibility","Issue":"Keyboard Navigation","Platform":"Web"},"grade":2},{"identity":{"Category":"Interaction","Issue":"Focus States","Platform":"All"},"grade":1}],"tags":["auto-router","routing-positive"],"notes":"Specific accessibility intent should outrank generic style terms."}, {"id":"auto-route-color","split":"calibration","mode":"auto","query":"hex color palette accent foreground destructive tokens","expectedRoute":"color","judgments":[{"identity":{"Product Type":"Design System/Component Library"},"grade":2}],"tags":["auto-router","routing-positive"],"notes":"Color vocabulary should route to palettes."}, {"id":"auto-route-chart","split":"calibration","mode":"auto","query":"scatter chart for correlation distribution","expectedRoute":"chart","judgments":[{"identity":{"Data Type":"Correlation / Distribution"},"grade":2}],"tags":["auto-router","routing-positive"],"notes":"Explicit chart type and analytic intent."}, {"id":"auto-route-landing","split":"held_out","mode":"auto","query":"hero testimonials CTA conversion landing page","expectedRoute":"landing","judgments":[{"identity":{"Pattern Name":"Hero + Testimonials + CTA"},"grade":2},{"identity":{"Pattern Name":"Hero + Features + CTA"},"grade":1}],"tags":["auto-router","routing-positive","held-out-route"],"notes":"Multiple landing-specific terms should dominate product routing."}, {"id":"auto-route-fonts","split":"held_out","mode":"auto","query":"JetBrains Mono Google font family variable styles","expectedRoute":"google-fonts","judgments":[{"identity":{"Family":"JetBrains Mono"},"grade":2}],"tags":["auto-router","routing-positive","held-out-route"],"notes":"Entity lookup in the large Google Fonts catalog."}, {"id":"auto-route-icons","split":"calibration","mode":"auto","query":"Phosphor warning icon glyph for danger status","expectedRoute":"icons","judgments":[{"identity":{"Category":"Status","Icon Name":"warning","Library":"Phosphor"},"grade":2},{"identity":{"Category":"Status","Icon Name":"warning-circle","Library":"Phosphor"},"grade":1}],"tags":["auto-router","routing-positive"],"notes":"Explicit icon/glyph vocabulary."}, {"id":"auto-route-gsap","split":"held_out","mode":"auto","query":"GSAP ScrollTrigger stagger reveal animation","expectedRoute":"gsap","judgments":[{"identity":{"Category":"Scroll Reveal","Intensity Tier":"Standard","Trigger":"scroll (viewport enter)"},"grade":2},{"identity":{"Category":"Stagger List","Intensity Tier":"Standard","Trigger":"load or scroll"},"grade":1}],"tags":["auto-router","routing-positive","held-out-route"],"notes":"GSAP vocabulary is unambiguous even with generic animation."}, {"id":"auto-route-react","split":"calibration","mode":"auto","query":"React Suspense waterfall bundle rerender optimization","expectedRoute":"react","judgments":[{"identity":{"Category":"Async Waterfall","Issue":"Suspense Boundaries","Platform":"React/Next.js"},"grade":2}],"tags":["auto-router","routing-positive"],"notes":"React performance terms should not route to generic UX."}, {"id":"negative-gibberish-alpha","split":"calibration","mode":"auto","query":"zzqqxx plmokn qvtrz","judgments":[],"tags":["hard-negative","gibberish","abstention"],"notes":"No catalog row is relevant; suggestions and returned rows are false positives for measurement."}, {"id":"negative-gibberish-numeric","split":"held_out","mode":"auto","query":"7391 qzxv 0044 nmnq","judgments":[],"tags":["hard-negative","gibberish","abstention"],"notes":"Held-out alphanumeric noise."}, {"id":"negative-geography-fact","split":"calibration","mode":"auto","query":"capital of Mongolia population census","judgments":[],"tags":["hard-negative","out-of-scope","abstention"],"notes":"A factual geography question, not a design request."}, {"id":"negative-math-proof","split":"held_out","mode":"auto","query":"prove there are infinitely many prime numbers","judgments":[],"tags":["hard-negative","out-of-scope","abstention"],"notes":"A mathematics request with no relevant catalog guidance."}, {"id":"negative-cooking","split":"calibration","mode":"auto","query":"sourdough starter feeding schedule at room temperature","judgments":[],"tags":["hard-negative","out-of-scope","abstention"],"notes":"A cooking instruction request; product-category overlap must not count as relevance."}, {"id":"negative-biology","split":"held_out","mode":"auto","query":"photosynthesis equation for freshwater algae","judgments":[],"tags":["hard-negative","out-of-scope","abstention"],"notes":"A science question with no UI intent."}, {"id":"design-system-spa","split":"calibration","mode":"design-system","query":"beauty spa wellness booking landing page","judgments":[{"identity":{"Product Type":"Beauty/Spa/Wellness Service"},"grade":2}],"coherence":{"productCategory":"Beauty/Spa/Wellness Service","styleNames":["Soft UI Evolution","Neumorphism","Glassmorphism"],"patternNames":["Hero-Centric + Social Proof","Hero-Centric Design","Hero + Testimonials + CTA"],"colorMode":"light"},"tags":["design-system","coherence","readme-example"],"notes":"Industry, calming style, social proof pattern, and light palette should agree."}, {"id":"design-system-cybersecurity-dark","split":"calibration","mode":"design-system","query":"cybersecurity threat monitoring platform dark mode","judgments":[{"identity":{"Product Type":"Cybersecurity Platform"},"grade":2}],"coherence":{"productCategory":"Cybersecurity Platform","styleNames":["Cyberpunk UI","Dark Mode (OLED)","HUD / Sci-Fi FUI"],"patternNames":["Trust & Authority + Real-Time","Trust & Authority + Conversion","Real-Time / Operations Landing","Enterprise Gateway"],"colorMode":"dark"},"tags":["design-system","coherence","dark-mode"],"notes":"Security, real-time operations, technical style, and dark palette form one coherent system."}, {"id":"design-system-saas","split":"calibration","mode":"design-system","query":"SaaS dashboard for a B2B cloud product","judgments":[{"identity":{"Product Type":"SaaS (General)"},"grade":2},{"identity":{"Product Type":"B2B Service"},"grade":1}],"coherence":{"productCategory":"SaaS (General)","styleNames":["Glassmorphism","Flat Design","Minimalism & Swiss Style","Soft UI Evolution"],"patternNames":["Hero + Features + CTA","Feature-Rich Showcase"],"colorMode":"light"},"tags":["design-system","coherence","readme-example"],"notes":"Locks the README's broad SaaS example to a maintainable B2B system."}, {"id":"design-system-healthcare","split":"calibration","mode":"design-system","query":"accessible healthcare analytics dashboard for patients","judgments":[{"identity":{"Product Type":"Healthcare App"},"grade":2},{"identity":{"Product Type":"Patient Portal / Health Records"},"grade":1}],"coherence":{"productCategory":"Healthcare App","styleNames":["Accessible & Ethical","Inclusive Design","Neumorphism","Soft UI Evolution"],"patternNames":["Social Proof-Focused","Hero + Testimonials + CTA","Trust & Authority + Conversion"],"colorMode":"light"},"tags":["design-system","coherence","accessibility","readme-example"],"notes":"Accessibility and patient trust are stronger constraints than decorative dashboard styling."}, {"id":"design-system-portfolio-dark","split":"held_out","mode":"design-system","query":"creative portfolio website with dark mode and scroll storytelling","judgments":[{"identity":{"Product Type":"Portfolio/Personal"},"grade":2}],"coherence":{"productCategory":"Portfolio/Personal","styleNames":["Motion-Driven","Brutalism","Dark Mode (OLED)","Minimalism & Swiss Style","Interactive Cursor Design"],"patternNames":["Storytelling-Driven","Scroll-Triggered Storytelling","Portfolio Grid","Horizontal Scroll Journey"],"colorMode":"dark","colorProductTypes":["Portfolio/Personal"]},"tags":["design-system","coherence","dark-mode","readme-example"],"notes":"Explicit creative intent activates the curated Brutalism rule; the derived dark surface must retain the Portfolio/Personal palette identity."}, {"id":"design-system-fintech-dark","split":"held_out","mode":"design-system","query":"fintech banking app with a secure dark dashboard","judgments":[{"identity":{"Product Type":"Fintech/Crypto"},"grade":2},{"identity":{"Product Type":"Banking/Traditional Finance"},"grade":1}],"coherence":{"productCategory":"Fintech/Crypto","styleNames":["Dark Mode (OLED)","Glassmorphism","Accessible & Ethical","Minimalism & Swiss Style"],"patternNames":["Trust & Authority","Trust & Authority + Conversion","Enterprise Gateway"],"colorMode":"dark"},"tags":["design-system","coherence","dark-mode","readme-example"],"notes":"Explicit dark mode must not conflict with the palette or anti-pattern advice."}, {"id":"design-system-spa-paraphrase","split":"held_out","mode":"design-system","query":"calming salon for massages facials and appointment reservations","judgments":[{"identity":{"Product Type":"Beauty/Spa/Wellness Service"},"grade":2},{"identity":{"Product Type":"Booking & Appointment App"},"grade":1}],"coherence":{"productCategory":"Beauty/Spa/Wellness Service","styleNames":["Soft UI Evolution","Neumorphism","Organic Biophilic","Nature Distilled"],"patternNames":["Hero-Centric + Social Proof","Hero-Centric Design","Hero + Testimonials + CTA"],"colorMode":"light"},"tags":["design-system","coherence","paraphrase"],"notes":"Held-out industry paraphrase without the exact words beauty, spa, or wellness."}, {"id":"design-system-cyber-typo","split":"held_out","mode":"design-system","query":"cybersecurty operatons center with live threat alerts and OLED UI","judgments":[{"identity":{"Product Type":"Cybersecurity Platform"},"grade":2}],"coherence":{"productCategory":"Cybersecurity Platform","styleNames":["Cyberpunk UI","Dark Mode (OLED)","HUD / Sci-Fi FUI"],"patternNames":["Trust & Authority + Real-Time","Real-Time / Operations Landing","Trust & Authority + Conversion"],"colorMode":"dark"},"tags":["design-system","coherence","typo","dark-mode"],"notes":"Typos plus an OLED constraint test end-to-end recovery and agreement."} ] }