@codecademy/gamut
72.3.072.3.1-alpha.f273fd.0
agent-tools/skills/gamut-system-props/evals/evals.json+
agent-tools/skills/gamut-system-props/evals/evals.jsonNew file+43
Index: package/agent-tools/skills/gamut-system-props/evals/evals.json
===================================================================
--- package/agent-tools/skills/gamut-system-props/evals/evals.json
+++ package/agent-tools/skills/gamut-system-props/evals/evals.json
@@ -0,0 +1,43 @@
+{
+ "skill_name": "gamut-system-props",
+ "evals": [
+ {
+ "id": 1,
+ "prompt": "In this gamut monorepo, I need a new `HeroContainer` component for a Teams landing page. It should wrap Gamut's `Box`, laid out as a flex column, with 16px padding on all sides, 24px margin-top, and white text color. Write it in TypeScript using Emotion, matching how the rest of this codebase styles Gamut components. Save it to ./outputs/HeroContainer.tsx.",
+ "expected_output": "A component that passes flex/spacing/color values as system props directly on Box/FlexBox instead of wrapping it in styled() with raw CSS, and uses a semantic color token instead of a literal 'white'.",
+ "files": [],
+ "expectations": [
+ "Does not wrap Box (or any Gamut component) in styled() using a raw tagged-template literal or plain object",
+ "Expresses flex column layout via props rather than a CSS display:/flex-direction: declaration",
+ "Expresses the 16px padding via a p (or p-family) prop rather than raw padding CSS",
+ "Expresses the 24px top margin via an mt prop rather than raw margin-top CSS",
+ "Uses a semantic/token value for text color rather than the literal string 'white' or a hex code"
+ ]
+ },
+ {
+ "id": 2,
+ "prompt": "In this gamut monorepo, build a `CTAContainer` component for the same Teams landing page: wrap Gamut's `FlexBox`, with a 12px gap between children, a background color set to one of the design system's semantic background tokens (not a raw hex value), 8px border radius, and it needs `position: relative` with a `z-index` of 2 so it layers above a background pattern. Save it to ./outputs/CTAContainer.tsx.",
+ "expected_output": "A component that passes gap/background/borderRadius/position/zIndex as system props directly on FlexBox instead of wrapping it in styled() with raw CSS, and uses a semantic background token instead of a raw hex value.",
+ "files": [],
+ "expectations": [
+ "Does not wrap FlexBox/Box in styled() using a raw tagged-template literal or plain object",
+ "Expresses the 12px gap via a gap prop rather than raw CSS",
+ "Uses the bg (or background) prop with a semantic/named token, not a raw hex literal",
+ "Expresses the 8px border radius via a borderRadius prop rather than raw CSS",
+ "Expresses position/z-index via position and zIndex props rather than raw CSS"
+ ]
+ },
+ {
+ "id": 3,
+ "prompt": "In this gamut monorepo, create a `GradientGlow` decorative component wrapping Gamut's `Box`: it needs a multi-stop radial gradient background (from #3A10E5 at the center fading to transparent at the edges) behind the content, 24px of padding, and it should be a flex container that centers a single child icon. Save it to ./outputs/GradientGlow.tsx.",
+ "expected_output": "A component where the gradient (not expressible as a system prop) is wrapped in css()/variant()/states(), while padding and flex-centering — which ARE expressible as props — are NOT dragged into the same raw CSS escape hatch.",
+ "files": [],
+ "expectations": [
+ "If Box/FlexBox is wrapped in styled(), the style argument is wrapped in css()/variant()/states(), not a bare template literal or plain object",
+ "The 24px padding is expressed as a p prop rather than left inside the same CSS block as the gradient",
+ "Flex centering is expressed as props rather than left inside the same CSS block as the gradient",
+ "The gradient itself is present and is a correct multi-stop radial-gradient fading to transparent"
+ ]
+ }
+ ]
+}