{
  "baseline_score": 73.75,
  "claim_boundary": "Primer can only earn these points after the work is complete and the evaluation is run again. Some of the evidence may already exist inside GitHub.",
  "editorial": {
    "area_findings": {
      "bindings": {
        "summary": "Primer has useful design-to-code mappings, but they are not explained consistently across every supported language and framework.",
        "what_to_change": "Publish one versioned mapping from Figma controls to supported code properties, then fail a release when a name, property, shared value, mapping, or deprecation changes on only one side without an approved exception.",
        "what_we_found": "Figma controls and code properties are not explained consistently across supported implementations.",
        "why_it_matters": "Fragmentation creates extra interpretation work and raises the risk of drift."
      },
      "components": {
        "summary": "Primer\u2019s core components have strong usage guidance and accessibility foundations.",
        "what_to_change": "Define the states, screen sizes, keyboard paths, and assistive-technology checks required for each component. Publish current results and assign an owner and review date to every exception.",
        "what_we_found": "Core components are mature, documented, and accessible.",
        "why_it_matters": "Product teams depend on these components for everyday work."
      },
      "foundations": {
        "summary": "Primer\u2019s token foundations are well documented and covered by the sampled evidence.",
        "what_to_change": "First confirm whether GitHub already checks that shared values work in every supported design tool and code library. If not, add compatibility checks that identify the affected output and block unexplained differences before release.",
        "what_we_found": "Tokens are well structured and documented.",
        "why_it_matters": "Strong shared values help every product stay visually consistent."
      },
      "governance": {
        "summary": "Primer has clear ownership and active stewardship. This study did not find public trend data showing how its operating practices perform over time.",
        "what_to_change": "Set targets for reviews, migrations, exceptions, adoption, and regressions. Publish trends and record what leadership changes when a target is missed.",
        "what_we_found": "Ownership, contributions, releases, and migrations have clear operating guidance.",
        "why_it_matters": "Good governance builds trust and helps teams adopt changes safely."
      },
      "structure": {
        "summary": "Primer provides clear layout and pattern guidance for product teams.",
        "what_to_change": "Choose the product flows Primer officially supports and test them end to end across validation, loading, recovery, focus, and responsive layouts.",
        "what_we_found": "Reusable layout guidance and product patterns exist.",
        "why_it_matters": "Shared structure lets teams build coherent product experiences instead of isolated screens."
      }
    },
    "bottom_line": "Primer is a mature design system with clear product value. The highest-value next work is to turn critical component behavior into machine-readable guidance, block unexplained Figma-to-code differences before release, and test supported product flows end to end. That would reduce plausible implementation mistakes instead of asking teams to manually keep every surface in sync.",
    "central_finding": "Primer\u2019s building blocks are mature, but some important implementation rules remain too easy to miss. This study found one resulting failure and did not find a published release check showing that comparable gaps are caught before release. GitHub may run such checks internally; sharing current results would allow them to be assessed in a re-run.",
    "concrete_example": "One of 15 agent runs produced a form that looked correct but could not submit because the generated Primer Button omitted type=\"submit\". Primer supports the correct behavior, but its guidance did not make the requirement clear enough for the agent to apply it reliably.",
    "headline": "Primer is mature, but critical implementation rules can still get lost between documentation and working software.",
    "hero": "GitHub\u2019s Primer design system was reviewed to answer two questions: How well does Primer stay aligned from design through production? Can an AI coding agent use it to produce working software?",
    "hero_asset": "github",
    "phase_summaries": {
      "next": {
        "action": "Generate a versioned manifest of Figma properties, Code Connect mappings, React types, token outputs, and deprecations. Compare it in release CI and block any unexplained difference.",
        "decision": "Whether a Figma or code change is safe to release without creating an unexplained mismatch.",
        "finish_line": "A seeded mismatch fails the release check and identifies the exact difference.",
        "owner": "Primer React platform, Figma library, and build infrastructure",
        "problem": "Names, properties, tokens, mappings, and deprecations can change in one place without one system-wide check.",
        "save": "CI results, coverage reports, drift trends, and approved exceptions",
        "title": "Keep Figma and code aligned before changes ship."
      },
      "now": {
        "action": "State in Button API documentation, Code Connect mappings, and agent-facing component data that a form button requires type=\"submit\". Add one submitting and one non-submitting example, then publish the sampled Figma-control-to-React-prop mapping beside the component guidance.",
        "decision": "Whether Primer Button guidance is reliable enough for agent-assisted form work without extra human correction.",
        "finish_line": "New agent runs submit forms correctly and reviewers can explain every sampled Figma control and React prop.",
        "owner": "Primer React, Primer design system, and developer experience",
        "problem": "Generated buttons sometimes omit type=\"submit\", and the full Figma-to-code mapping is not easy to inspect.",
        "save": "Published guidance, mapping decisions, and three new agent test results",
        "title": "Fix the known submission failure and clarify agent-facing Button guidance."
      },
      "operate": {
        "action": "For each quarterly review, publish the target, current result, trend, accountable owner, and next action for reviews, migrations, adoption, exceptions, and regressions. Record the staffing or process decision made when a target is missed.",
        "decision": "Where leadership should invest, delay a migration, or intervene in ownership and process.",
        "finish_line": "The team can show clear trends for adoption, exceptions, migrations, review speed, and quality.",
        "owner": "Primer governance and design infrastructure leadership",
        "problem": "This study did not find public trend data for adoption, exceptions, migrations, review speed, or quality. GitHub may track these internally; sharing current results would allow them to be assessed in a re-run.",
        "save": "A metrics pack with baselines, targets, trends, and decisions",
        "title": "Use operating results to decide where Primer needs investment."
      },
      "scale": {
        "action": "List the states, themes, screen sizes, keyboard paths, and assistive-technology checks required for each supported component and flow. Run that checklist in CI and publish the current pass, failure, and exception results.",
        "decision": "Whether a supported component or product flow is ready for use across the conditions Primer promises to support.",
        "finish_line": "Required states and flows pass across supported components, themes, tools, and breakpoints.",
        "owner": "Primer foundations, component, accessibility, and product pattern teams",
        "problem": "This study did not find one published coverage view spanning shared values, component states, accessibility, product flows, and devices. GitHub may already run some or all of these checks internally.",
        "save": "Coverage reports with current state, device, accessibility, and flow results",
        "title": "Test complete product experiences across the whole system."
      }
    },
    "publisher_mark": "github",
    "publisher_name": "GitHub",
    "publisher_url": "https://primer.style/product/",
    "readiness_verdict": "Primer\u2019s building blocks are mature, but the safeguards around how they are combined are uneven. Critical behavior should be explicit in component guidance and verified in complete product flows before release.",
    "report_kicker": "Design system report",
    "report_title": "GitHub\u2019s Primer design system report",
    "roadmap_heading": "How Primer can get better",
    "standfirst": "Primer gives designers and engineers mature shared values, components, patterns, and contribution practices. In testing, one easy-to-miss Button rule produced a form that looked correct but could not submit. The next step is to make critical behavior explicit for people and agents, then prove that release checks catch comparable gaps before they reach products.",
    "strengths": [
      "A broad set of shared values for color, spacing, type, and themes",
      "A large component library with documented behavior and automated tests",
      "Clear public guidance for contributions, releases, migrations, and ownership",
      "Documentation strong enough for an AI agent to complete 14 of 15 test runs"
    ],
    "why_it_matters": "An interface can look correct and still fail at the moment a person tries to use it. When a critical behavior lives only in prose or an easy-to-miss example, designers, engineers, and agents can all make the same plausible mistake. Release checks and complete-flow tests turn those hidden rules into safeguards."
  },
  "evidence_reconciliation": {
    "purpose": "Before funding new work, check whether GitHub teams already run the tests, dashboards, and reviews requested by this study. If they do, the GitHub team can share current results for a re-run instead of rebuilding an existing capability.",
    "requests": [
      "Current reports showing how much of the token and component libraries are covered by responsive, accessibility, and visual tests",
      "Current checks that catch differences between Figma and code, including Code Connect results and approved exceptions",
      "Current reports showing where components and patterns are used, which exceptions are allowed, and what happened next",
      "Current reports showing review times, contribution progress, migration completion, and quality trends"
    ],
    "required": true
  },
  "initiatives": [
    {
      "acceptance_criteria": [
        "The guidance states that Button does not submit a form unless type=\"submit\" is supplied.",
        "The repository-name task passes three new runs in a row.",
        "The agent does not invent an invalid component or prop to make it work."
      ],
      "actions": [
        "State clearly in Button documentation and component data that a form button needs type=\"submit\".",
        "Show one submit example and one ordinary button example.",
        "Publish the same rule in Button API documentation, Code Connect mappings, and the component context served to coding agents."
      ],
      "classification": "observed-agent-failure",
      "criterion_impacts": [],
      "decision_enabled": "Whether Primer Button guidance is reliable enough to approve agent-generated form submissions without routine human correction.",
      "dependencies": [],
      "effort": "small",
      "evidence_to_retain": [
        "Published Button guidance and component data",
        "Results from three new runs, including prompts, outputs, test results, model, and review notes"
      ],
      "horizon": "now",
      "id": "agent-button-submit-guidance",
      "outcome": "When a Button is meant to submit a form, designers, engineers, and agents can immediately find the rule and produce working code on the first attempt.",
      "problem": "One of three agent runs created a form that looked correct but could not be submitted. The generated Primer Button was missing type=\"submit\" because the Button guidance did not make that requirement clear enough to the agent.",
      "projected_overall_lift": 0.0,
      "score_effect": "agent-performance",
      "sequence": 1,
      "suggested_owners": [
        "Primer React component owner",
        "Primer documentation owner",
        "Developer experience owner"
      ],
      "title": "Make form submission behavior impossible to miss",
      "type": "agent-reliability"
    },
    {
      "acceptance_criteria": [
        "Every sampled Figma control and React prop is explained.",
        "Review finds no unexplained controls that exist only in Figma or only in code.",
        "A new evaluation gives this item at least 3 out of 4."
      ],
      "actions": [
        "Create one table for the sampled components showing how each Figma control relates to each React prop.",
        "Mark controls used only to simulate design states instead of treating them as missing code props.",
        "Explain slots, composition rules, defaults, and unsupported combinations.",
        "Publish the table beside Code Connect mappings and React API documentation."
      ],
      "classification": "confirmed-deficiency",
      "criterion_impacts": [
        {
          "area": "bindings",
          "criterion_id": "contract_correspondence",
          "from_score": 2.0,
          "to_score": 3.0
        }
      ],
      "decision_enabled": "Whether designers and engineers can treat each sampled Figma control and React property as an intentional part of the system rather than an unexplained mismatch.",
      "dependencies": [],
      "effort": "small",
      "evidence_to_retain": [
        "Versioned Figma-to-code property table",
        "Reviewer-approved mapping decisions and exceptions",
        "Links to the corresponding Figma nodes, Code Connect files, and typed React APIs"
      ],
      "horizon": "now",
      "id": "binding-contract-classification",
      "outcome": "A designer or engineer can inspect any sampled component and understand which choices match across Figma and code, which exist on only one side, and why.",
      "problem": "Primer does not yet provide one complete explanation of how the controls designers see in Figma relate to the properties engineers use in React. Some controls belong in both places. Others exist only to simulate a visual state in Figma or to handle behavior in code.",
      "projected_overall_lift": 1.25,
      "score_effect": "readiness",
      "sequence": 2,
      "suggested_owners": [
        "Primer design-system designer",
        "Primer React maintainer",
        "Code Connect owner"
      ],
      "title": "Explain how every Figma control maps to code",
      "type": "confirmed-correction"
    },
    {
      "acceptance_criteria": [
        "The check runs on every affected change and blocks a release when it finds an unexplained difference.",
        "The report shows how much of the component and token libraries the check covers.",
        "A seeded mismatch fails the check and identifies the exact surfaces and property involved.",
        "The team saves and reviews current drift and exception results."
      ],
      "actions": [
        "Create one comparable record from Figma properties, Code Connect mappings, React types, and token build outputs.",
        "Make the release check fail when names, properties, token values, mappings, or deprecations differ without an explanation.",
        "Allow exceptions only when they have an owner and expiration date.",
        "At each release review, report the mismatches found, approved exceptions, owners, expiration dates, and time to resolution."
      ],
      "classification": "evidence-gap",
      "criterion_impacts": [
        {
          "area": "bindings",
          "criterion_id": "naming_parity",
          "from_score": 3.0,
          "to_score": 4.0
        },
        {
          "area": "bindings",
          "criterion_id": "contract_correspondence",
          "from_score": 3.0,
          "to_score": 4.0
        },
        {
          "area": "bindings",
          "criterion_id": "token_parity",
          "from_score": 3.0,
          "to_score": 4.0
        },
        {
          "area": "bindings",
          "criterion_id": "traceability",
          "from_score": 3.0,
          "to_score": 4.0
        }
      ],
      "decision_enabled": "Whether an affected design or code change is safe to release.",
      "dependencies": [
        "binding-contract-classification"
      ],
      "effort": "medium",
      "evidence_to_retain": [
        "CI workflow and validation implementation",
        "Passing and intentionally failing fixture results",
        "Coverage report, drift trend, and exception register"
      ],
      "horizon": "next",
      "id": "binding-drift-enforcement",
      "outcome": "When a component name, property, shared value, mapping, or deprecation status changes in one place, an automated check identifies any unmatched change before the library is published.",
      "problem": "Primer has good systems for naming components, generating shared values, connecting Figma to code, and retiring old APIs. This study did not find a published result from one automated check that catches differences across all of those places before they ship. GitHub may already run parts of this check internally.",
      "projected_overall_lift": 5.0,
      "score_effect": "readiness",
      "sequence": 3,
      "suggested_owners": [
        "Primer React platform owner",
        "Figma library owner",
        "Developer experience or build-infrastructure owner"
      ],
      "title": "Catch Figma and code mismatches before release",
      "type": "capability-investment"
    },
    {
      "acceptance_criteria": [
        "Every supported design tool and code library appears in a dated compatibility report.",
        "The report shows how much of the library was checked, the target, and the current result.",
        "Mode checks cover supported themes and contrast conditions.",
        "A seeded difference blocks the release and identifies the affected output, theme, and value."
      ],
      "actions": [
        "List every supported design tool and code library that receives Primer values, including Figma, React, CSS, and ViewComponents.",
        "Run compatibility checks for colors, spacing, type, themes, contrast modes, and published packages in each one.",
        "Block a release when a shared value differs across supported outputs without an approved exception, and identify the affected output, theme, and value.",
        "Assign an owner and a pass or fail target for each supported tool and library."
      ],
      "classification": "evidence-gap",
      "criterion_impacts": [
        {
          "area": "foundations",
          "criterion_id": "token_taxonomy",
          "from_score": 3.0,
          "to_score": 4.0
        },
        {
          "area": "foundations",
          "criterion_id": "primitives",
          "from_score": 3.0,
          "to_score": 4.0
        },
        {
          "area": "foundations",
          "criterion_id": "modes",
          "from_score": 3.0,
          "to_score": 4.0
        },
        {
          "area": "foundations",
          "criterion_id": "delivery",
          "from_score": 3.0,
          "to_score": 4.0
        }
      ],
      "decision_enabled": "Whether a shared-value change is compatible with every supported design and code output.",
      "dependencies": [
        "binding-drift-enforcement"
      ],
      "effort": "program",
      "evidence_to_retain": [
        "Inventory of supported design and code outputs",
        "Compatibility report and test results for every supported design tool and code library",
        "Mode regression results, failing fixture, and approved-exception register"
      ],
      "horizon": "scale",
      "id": "foundation-consumer-validation",
      "outcome": "When Primer changes a color, spacing value, theme, or other shared design decision, the team can confirm that it works in every supported design tool and code library before product teams receive it.",
      "problem": "Primer has a sophisticated system for color, spacing, type, themes, and other shared design values. This study found public explanations of how those values are created, but did not find one current published result confirming that they work consistently in Figma, React, CSS, ViewComponents, and every other officially supported output. GitHub may already run these checks internally.",
      "projected_overall_lift": 5.0,
      "score_effect": "readiness",
      "sequence": 4,
      "suggested_owners": [
        "Primer foundations owner",
        "Token build owner",
        "Owners of each supported design and code output"
      ],
      "title": "Know that shared design values work everywhere Primer supports",
      "type": "capability-investment"
    },
    {
      "acceptance_criteria": [
        "Every supported component shows which states apply and which do not.",
        "The automated test report shows current coverage for states, screen sizes, accessibility, and interaction.",
        "Screen-reader tests define the expected focus and spoken announcement.",
        "Every failed check and approved exception has an owner, due date, and recorded fix."
      ],
      "actions": [
        "List the normal, loading, empty, error, disabled, recovery, and permission states that apply to each kind of component.",
        "Test the required states at each supported screen size and show how much of the library is covered.",
        "Add keyboard and screen-reader tasks alongside automated accessibility and visual tests.",
        "Publish a current view of component use, failures, exceptions, and fixes."
      ],
      "classification": "evidence-gap",
      "criterion_impacts": [
        {
          "area": "components",
          "criterion_id": "core_coverage",
          "from_score": 3.0,
          "to_score": 4.0
        },
        {
          "area": "components",
          "criterion_id": "state_coverage",
          "from_score": 3.0,
          "to_score": 4.0
        },
        {
          "area": "components",
          "criterion_id": "responsive_behavior",
          "from_score": 3.0,
          "to_score": 4.0
        },
        {
          "area": "components",
          "criterion_id": "accessibility_behavior",
          "from_score": 3.0,
          "to_score": 4.0
        }
      ],
      "decision_enabled": "Whether a component is ready for supported product use or needs an owned, time-limited exception.",
      "dependencies": [
        "binding-drift-enforcement"
      ],
      "effort": "program",
      "evidence_to_retain": [
        "Versioned component quality matrix",
        "CI execution reports and viewport coverage",
        "Assistive-technology test protocol and results",
        "Component health and adoption dashboard with exception register"
      ],
      "horizon": "scale",
      "id": "component-quality-matrix",
      "outcome": "For every component, designers and engineers can see which states and screen sizes apply, which checks passed, what is exempt, and who owns any remaining problem.",
      "problem": "Primer tests many component states and accessibility rules, but this study did not find one published checklist covering the entire library. From the public evidence alone, a team cannot quickly see whether every relevant component has been checked in loading, empty, error, disabled, narrow-screen, keyboard, and assistive-technology conditions. GitHub may maintain broader internal results.",
      "projected_overall_lift": 5.0,
      "score_effect": "readiness",
      "sequence": 5,
      "suggested_owners": [
        "Primer component maintainers",
        "Accessibility engineering owner",
        "Quality engineering owner"
      ],
      "title": "Give every component the same visible quality checklist",
      "type": "capability-investment"
    },
    {
      "acceptance_criteria": [
        "A broken example fails an automated check and tells the team what to fix.",
        "Each supported pattern has a working end-to-end example covering the required states and screen sizes.",
        "Automated tests check focus restoration, keyboard navigation, loading, recovery, and responsive behavior.",
        "The team keeps current records of pattern use, exceptions, lifecycle, and results."
      ],
      "actions": [
        "Turn important layout and composition rules into automated checks, code helpers, working examples, or interaction tests.",
        "Build test flows for form submission, validation recovery, loading recovery, empty states, modal focus, and screen-size changes.",
        "Track where teams use Primer patterns and PageLayout, where they make exceptions, and whether the patterns help.",
        "Keep testing navigation, focus, and state changes across the supported flows."
      ],
      "classification": "evidence-gap",
      "criterion_impacts": [
        {
          "area": "structure",
          "criterion_id": "layout_primitives",
          "from_score": 3.0,
          "to_score": 4.0
        },
        {
          "area": "structure",
          "criterion_id": "composition_guidance",
          "from_score": 3.0,
          "to_score": 4.0
        },
        {
          "area": "structure",
          "criterion_id": "patterns_templates",
          "from_score": 3.0,
          "to_score": 4.0
        },
        {
          "area": "structure",
          "criterion_id": "interaction_ownership",
          "from_score": 3.0,
          "to_score": 4.0
        }
      ],
      "decision_enabled": "Whether a supported product flow is ready across its required states, interaction paths, and screen sizes.",
      "dependencies": [
        "component-quality-matrix"
      ],
      "effort": "program",
      "evidence_to_retain": [
        "Executable composition rules and intentionally failing fixtures",
        "End-to-end flow results across states and viewports",
        "Layout and pattern adoption dashboard",
        "Pattern lifecycle and exception register"
      ],
      "horizon": "scale",
      "id": "executable-composition-contracts",
      "outcome": "Primer can demonstrate that its recommended patterns work from beginning to end, including validation, loading, recovery, keyboard focus, and narrow-screen behavior.",
      "problem": "Primer explains how to build layouts, forms, dialogs, loading experiences, and empty states. Most of that guidance is written for people to interpret. This study did not find published results showing that these combinations are consistently tested as complete product experiences. GitHub may run additional flow tests internally.",
      "projected_overall_lift": 5.0,
      "score_effect": "readiness",
      "sequence": 6,
      "suggested_owners": [
        "Primer patterns owner",
        "Primer React component maintainers",
        "Product accessibility and quality owners"
      ],
      "title": "Test how components work together in real product flows",
      "type": "capability-investment"
    },
    {
      "acceptance_criteria": [
        "Ownership and review reports show targets, current results, trends, and follow-up.",
        "Breaking changes include compatibility results and the percentage of teams that completed the migration.",
        "Quality, use, regression, and exception reports show how old open items are and when they close.",
        "A recurring team review records the decisions made from these results."
      ],
      "actions": [
        "Set targets for owner response time, review time, safe releases, completed migrations, and fixed quality problems.",
        "Share dated reports that show what was measured, the current result, the trend, and the responsible owner.",
        "Track migrations, use of retired features, test exceptions, regressions, and overdue work until each item closes.",
        "Record the decisions and staffing changes the team makes after reviewing the results."
      ],
      "classification": "evidence-gap",
      "criterion_impacts": [
        {
          "area": "governance",
          "criterion_id": "ownership",
          "from_score": 3.0,
          "to_score": 4.0
        },
        {
          "area": "governance",
          "criterion_id": "contribution_review",
          "from_score": 3.0,
          "to_score": 4.0
        },
        {
          "area": "governance",
          "criterion_id": "release_safety",
          "from_score": 3.0,
          "to_score": 4.0
        },
        {
          "area": "governance",
          "criterion_id": "quality_enforcement",
          "from_score": 3.0,
          "to_score": 4.0
        }
      ],
      "decision_enabled": "Where leadership should invest, delay a migration, or change ownership and process.",
      "dependencies": [
        "foundation-consumer-validation",
        "component-quality-matrix",
        "executable-composition-contracts"
      ],
      "effort": "program",
      "evidence_to_retain": [
        "Ownership and review service report",
        "Compatibility and migration outcome report",
        "Quality, adoption, regression, and exception dashboard",
        "Governance review decisions and completed follow-up actions"
      ],
      "horizon": "operate",
      "id": "governance-outcome-measurement",
      "outcome": "The team can see whether reviews are timely, migrations are completing, quality problems are closing, and ownership is working as intended, then make decisions when the measures fall short.",
      "problem": "Primer clearly explains who owns the system and how contributions, releases, migrations, and quality reviews should work. This study did not find public trend data showing how quickly those processes move, whether migrations succeed, or whether exceptions and regressions are resolved. GitHub may track these results internally and can share them for a re-run.",
      "projected_overall_lift": 5.0,
      "score_effect": "readiness",
      "sequence": 7,
      "suggested_owners": [
        "Primer program lead",
        "Repository and Figma library owners",
        "Release and quality engineering owners"
      ],
      "title": "Use operating results to change staffing and process",
      "type": "capability-investment"
    }
  ],
  "review_status": "approved",
  "reviewed_at": "2026-08-23",
  "roadmap_format": "ds-eval/implementation-roadmap@1",
  "score_ceiling": [
    {
      "anchor_points_needed": 1.0,
      "area": "foundations",
      "area_label": "Foundations",
      "ceiling_anchor": "The token graph is validated, measured, and maintained across consumers",
      "ceiling_score": 4.0,
      "classification": "evidence-gap",
      "criterion_id": "token_taxonomy",
      "current_score": 3.0,
      "gap": "Anchor 4 requires the token graph to be validated, measured, and maintained across consumers; the packet shows only primitives-source-level checks (lint:tokens, a11y-contrast CI) with no automated validation or measurement of token-graph correctness across the React/CSS/ViewComponents/Figma consumer matrix.",
      "initiative_ids": [
        "foundation-consumer-validation"
      ],
      "label": "Token taxonomy and semantics",
      "maximum_overall_lift": 1.25,
      "next_anchor": "The token graph is validated, measured, and maintained across consumers",
      "recommended_change": "Update the Figma guidance page to reflect that typography is now (partially) variable-backed, and clarify the current scope of styles-vs-variables usage."
    },
    {
      "anchor_points_needed": 1.0,
      "area": "foundations",
      "area_label": "Foundations",
      "ceiling_anchor": "Primitive coverage and adoption are measured and governed",
      "ceiling_score": 4.0,
      "classification": "evidence-gap",
      "criterion_id": "primitives",
      "current_score": 3.0,
      "gap": "Anchor 4 requires primitive coverage and adoption to be measured and governed (e.g., adoption metrics across the full component library); the coverage profile explicitly excludes adoption dashboards from this public evaluation, and the packet only demonstrates consumption within the 10-11 sampled deep components.",
      "initiative_ids": [
        "foundation-consumer-validation"
      ],
      "label": "Primitive completeness",
      "maximum_overall_lift": 1.25,
      "next_anchor": "Primitive coverage and adoption are measured and governed",
      "recommended_change": "No change needed for the sampled scope; a system-wide adoption claim would require either a cited system-wide consumption mechanism or dashboard-level evidence, which is out of scope here."
    },
    {
      "anchor_points_needed": 1.0,
      "area": "foundations",
      "area_label": "Foundations",
      "ceiling_anchor": "Mode compatibility is continuously validated across supported consumers",
      "ceiling_score": 4.0,
      "classification": "evidence-gap",
      "criterion_id": "modes",
      "current_score": 3.0,
      "gap": "Anchor 4 requires mode compatibility to be continuously validated across the supported consumer matrix; the only automated check evidenced is an a11y-contrast CI workflow scoped to the primitives source repo, not a cross-consumer (React/CSS/ViewComponents/Figma) mode-parity test.",
      "initiative_ids": [
        "foundation-consumer-validation"
      ],
      "label": "Modes and adaptation",
      "maximum_overall_lift": 1.25,
      "next_anchor": "Mode compatibility is continuously validated across supported consumers",
      "recommended_change": "No change required for the scored color/density/viewport modes; a future evaluation could request evidence (code or tests) demonstrating prefers-reduced-motion/forced-colors handling specifically."
    },
    {
      "anchor_points_needed": 1.0,
      "area": "foundations",
      "area_label": "Foundations",
      "ceiling_anchor": "Delivery contracts are validated and migration impact is measured",
      "ceiling_score": 4.0,
      "classification": "evidence-gap",
      "criterion_id": "delivery",
      "current_score": 3.0,
      "gap": "Anchor 4 requires delivery contracts to be validated and migration impact measured; the repo has a check:removed-tokens script that can flag removed tokens, but no measured migration-impact results (e.g., quantified downstream consumer breakage per release) are present in the packet.",
      "initiative_ids": [
        "foundation-consumer-validation"
      ],
      "label": "Consumable delivery and versioning",
      "maximum_overall_lift": 1.25,
      "next_anchor": "Delivery contracts are validated and migration impact is measured",
      "recommended_change": "To support anchor 4 in a future evaluation, publish or reference migration-impact measurements (e.g., a changelog entry quantifying affected consumer surface) alongside removed/breaking token changes."
    },
    {
      "anchor_points_needed": 1.0,
      "area": "bindings",
      "area_label": "Bindings",
      "ceiling_anchor": "Parity is automatically checked and drift is measured",
      "ceiling_score": 4.0,
      "classification": "evidence-gap",
      "criterion_id": "naming_parity",
      "current_score": 3.0,
      "gap": "No evidence of an automated job that diffs Figma names against code exports and reports drift over time; reaching anchor 4 requires such a continuously-run parity/drift measurement, which is not present in the evidence.",
      "initiative_ids": [
        "binding-drift-enforcement"
      ],
      "label": "Naming parity",
      "maximum_overall_lift": 1.25,
      "next_anchor": "Parity is automatically checked and drift is measured",
      "recommended_change": "Publish an automated name/property parity report (e.g., comparing Code Connect prop keys to component prop tables in CI) to progress toward measured drift detection."
    },
    {
      "anchor_points_needed": 2.0,
      "area": "bindings",
      "area_label": "Bindings",
      "ceiling_anchor": "Machine-readable mappings continuously validate shared contracts and explicitly classify surface-specific controls",
      "ceiling_score": 4.0,
      "classification": "confirmed-deficiency",
      "criterion_id": "contract_correspondence",
      "current_score": 2.0,
      "gap": "Dialog's Figma 'size' variant (including 'full') is flagged as unmapped without an evidence-backed rationale, so surface-specific controls are not consistently and coherently classified across the full sample as anchor 3 requires.",
      "initiative_ids": [
        "binding-contract-classification",
        "binding-drift-enforcement"
      ],
      "label": "Design-to-code contract correspondence",
      "maximum_overall_lift": 2.5,
      "next_anchor": "Supported choices, derived states, slots, and composition map coherently, and surface-specific controls are explicitly classified",
      "recommended_change": "Add an explicit mapping or documented rationale in Dialog.figma.tsx for the 'full' and portrait size variants, or extend the code width/height props to cover the missing values."
    },
    {
      "anchor_points_needed": 1.0,
      "area": "bindings",
      "area_label": "Bindings",
      "ceiling_anchor": "Cross-surface token parity is automatically validated",
      "ceiling_score": 4.0,
      "classification": "evidence-gap",
      "criterion_id": "token_parity",
      "current_score": 3.0,
      "gap": "No evidence of an automated CI check that continuously validates that shipped code tokens and published Figma variables remain in sync after each change (the primitives repo's a11y-contrast workflow validates contrast, not cross-surface token parity); reaching anchor 4 requires such a validation/measurement job.",
      "initiative_ids": [
        "binding-drift-enforcement"
      ],
      "label": "Token parity",
      "maximum_overall_lift": 1.25,
      "next_anchor": "Cross-surface token parity is automatically validated",
      "recommended_change": "Add a CI job that fetches the currently published Figma variable set and diffs it against the code token build output, to move from single-source-guaranteed parity to actively measured, automatically validated parity."
    },
    {
      "anchor_points_needed": 1.0,
      "area": "bindings",
      "area_label": "Bindings",
      "ceiling_anchor": "Traceability and deprecation drift are automatically enforced",
      "ceiling_score": 4.0,
      "classification": "evidence-gap",
      "criterion_id": "traceability",
      "current_score": 3.0,
      "gap": "To reach automatically enforced traceability/deprecation drift (4), evidence would be needed that the Code Connect publish workflow or another CI gate validates mappings against the component's current prop types/status (failing the build on mismatch) rather than only publishing whatever mapping is committed.",
      "initiative_ids": [
        "binding-drift-enforcement"
      ],
      "label": "Traceability and deprecation",
      "maximum_overall_lift": 1.25,
      "next_anchor": "Traceability and deprecation drift are automatically enforced",
      "recommended_change": "Add a CI validation step (e.g., 'figma connect parse'/dry-run or a type-check against the mapped component's props) that fails the build when a Code Connect mapping references props or values no longer present in the component API."
    },
    {
      "anchor_points_needed": 1.0,
      "area": "components",
      "area_label": "Components",
      "ceiling_anchor": "Gaps, adoption, and component health are measured",
      "ceiling_score": 4.0,
      "classification": "evidence-gap",
      "criterion_id": "core_coverage",
      "current_score": 3.0,
      "gap": "No public evidence of adoption dashboards, gap analysis, or aggregate component-health measurement was present in the packet; only per-component readiness tags are shown, not system-wide gap/adoption tracking.",
      "initiative_ids": [
        "component-quality-matrix"
      ],
      "label": "Core component coverage",
      "maximum_overall_lift": 1.25,
      "next_anchor": "Gaps, adoption, and component health are measured",
      "recommended_change": "Publish (or make visible in this evidence scope) adoption/usage metrics and gap-tracking dashboards tied to the component catalog to support anchor-4 measurement claims."
    },
    {
      "anchor_points_needed": 1.0,
      "area": "components",
      "area_label": "Components",
      "ceiling_anchor": "State contracts are executable, tested, and measured",
      "ceiling_score": 4.0,
      "classification": "evidence-gap",
      "criterion_id": "state_coverage",
      "current_score": 3.0,
      "gap": "No evidence that state-contract coverage itself is measured or gated (e.g., a report showing which components/states are missing tests); tests confirm individual states exist and render correctly but not that the full declared state matrix is continuously tracked for completeness.",
      "initiative_ids": [
        "component-quality-matrix"
      ],
      "label": "Normal, recovery, and permission states",
      "maximum_overall_lift": 1.25,
      "next_anchor": "State contracts are executable, tested, and measured",
      "recommended_change": "Publish or evidence a state-coverage checklist/gate (e.g., CI check requiring loading/error/disabled/empty stories per new component) to support anchor-4 'executable, tested, and measured' state contracts."
    },
    {
      "anchor_points_needed": 1.0,
      "area": "components",
      "area_label": "Components",
      "ceiling_anchor": "Responsive behavior is continuously tested across the matrix",
      "ceiling_score": 4.0,
      "classification": "evidence-gap",
      "criterion_id": "responsive_behavior",
      "current_score": 3.0,
      "gap": "Viewport-specific VRT/AAT execution was only confirmed for Blankslate (and responsive props for Dialog/PageLayout) in this packet; TextInput, FormControl, ToggleSwitch, ActionMenu, InlineMessage, and Spinner show no direct narrow/regular test evidence, so a continuously-tested full responsive matrix is not established.",
      "initiative_ids": [
        "component-quality-matrix"
      ],
      "label": "Responsive behavior",
      "maximum_overall_lift": 1.25,
      "next_anchor": "Responsive behavior is continuously tested across the matrix",
      "recommended_change": "Extend explicit narrow/regular viewport VRT coverage to the remaining sampled components (TextInput, FormControl, ToggleSwitch, ActionMenu, InlineMessage, Spinner) to support anchor-4 continuous matrix testing."
    },
    {
      "anchor_points_needed": 1.0,
      "area": "components",
      "area_label": "Components",
      "ceiling_anchor": "Assistive-technology coverage and regressions are continuously measured",
      "ceiling_score": 4.0,
      "classification": "evidence-gap",
      "criterion_id": "accessibility_behavior",
      "current_score": 3.0,
      "gap": "No evidence of assistive-technology interaction coverage (e.g., screen-reader announcement correctness, simulated AT regression tracking) beyond automated axe/DOM rule checks; anchor 4 requires that AT coverage specifically, not just axe rule compliance, be continuously measured.",
      "initiative_ids": [
        "component-quality-matrix"
      ],
      "label": "Accessibility behavior",
      "maximum_overall_lift": 1.25,
      "next_anchor": "Assistive-technology coverage and regressions are continuously measured",
      "recommended_change": "Publish or add evidence of assistive-technology interaction testing (manual AT audits, simulated screen-reader test suites) tracked continuously alongside the existing axe AAT suite to support anchor-4 AT coverage claims."
    },
    {
      "anchor_points_needed": 1.0,
      "area": "structure",
      "area_label": "Structure",
      "ceiling_anchor": "Layout use and exceptions are validated and measured",
      "ceiling_score": 4.0,
      "classification": "evidence-gap",
      "criterion_id": "layout_primitives",
      "current_score": 3.0,
      "gap": "No automated validation, linting, or usage/exception measurement of PageLayout adoption was found in the evidence; anchor 4 requires such enforcement or measurement evidence, which is absent.",
      "initiative_ids": [
        "executable-composition-contracts"
      ],
      "label": "Layout primitives",
      "maximum_overall_lift": 1.25,
      "next_anchor": "Layout use and exceptions are validated and measured",
      "recommended_change": "Publish evidence of automated enforcement or measurement of PageLayout usage and exceptions (e.g., a lint rule flagging bespoke page shells, or adoption telemetry) to support a future anchor-4 claim."
    },
    {
      "anchor_points_needed": 1.0,
      "area": "structure",
      "area_label": "Structure",
      "ceiling_anchor": "Composition rules are executable or automatically validated",
      "ceiling_score": 4.0,
      "classification": "evidence-gap",
      "criterion_id": "composition_guidance",
      "current_score": 3.0,
      "gap": "No evidence that composition rules are executable or automatically validated (e.g., lint rules enforcing FormControl+Validation pairing, Storybook interaction tests, or CI composition checks) \u2014 required for anchor 4.",
      "initiative_ids": [
        "executable-composition-contracts"
      ],
      "label": "Composition guidance",
      "maximum_overall_lift": 1.25,
      "next_anchor": "Composition rules are executable or automatically validated",
      "recommended_change": "Not applicable to public-evidence scoring; a higher score would require publicly observable automated enforcement of composition rules"
    },
    {
      "anchor_points_needed": 1.0,
      "area": "structure",
      "area_label": "Structure",
      "ceiling_anchor": "Pattern use, outcomes, and lifecycle are measured",
      "ceiling_score": 4.0,
      "classification": "evidence-gap",
      "criterion_id": "patterns_templates",
      "current_score": 3.0,
      "gap": "No evidence of pattern usage being tracked or of pattern lifecycle (e.g., deprecation, adoption metrics, outcome measurement) \u2014 anchor 4 requires pattern use, outcomes, and lifecycle to be measured, which is absent.",
      "initiative_ids": [
        "executable-composition-contracts"
      ],
      "label": "Patterns and templates",
      "maximum_overall_lift": 1.25,
      "next_anchor": "Pattern use, outcomes, and lifecycle are measured",
      "recommended_change": "Publish pattern-adoption or outcome metrics (e.g., which teams use the documented forms pattern, error-recovery success rates) to progress toward anchor 4; none is present in current evidence."
    },
    {
      "anchor_points_needed": 1.0,
      "area": "structure",
      "area_label": "Structure",
      "ceiling_anchor": "Cross-composition contracts are executable and continuously verified",
      "ceiling_score": 4.0,
      "classification": "evidence-gap",
      "criterion_id": "interaction_ownership",
      "current_score": 3.0,
      "gap": "No evidence that these ownership contracts are executable or continuously verified (e.g., automated focus-trap tests, axe-core CI gating, or interaction test suites tied to these specific contracts) \u2014 required for anchor 4. The primer/react package.json lists @github/axe-github and @playwright/test as devDependencies, but a tool declaration alone does not prove these contracts are actually tested or gated.",
      "initiative_ids": [
        "executable-composition-contracts"
      ],
      "label": "Navigation, focus, and state ownership",
      "maximum_overall_lift": 1.25,
      "next_anchor": "Cross-composition contracts are executable and continuously verified",
      "recommended_change": "Not applicable to public-evidence scoring; a higher score would require publicly observable automated/continuous verification of these ownership contracts"
    },
    {
      "anchor_points_needed": 1.0,
      "area": "governance",
      "area_label": "Governance",
      "ceiling_anchor": "Ownership health and service expectations are measured",
      "ceiling_score": 4.0,
      "classification": "evidence-gap",
      "criterion_id": "ownership",
      "current_score": 3.0,
      "gap": "Additional evidence must satisfy the next anchor: Ownership health and service expectations are measured",
      "initiative_ids": [
        "governance-outcome-measurement"
      ],
      "label": "Named ownership",
      "maximum_overall_lift": 1.25,
      "next_anchor": "Ownership health and service expectations are measured",
      "recommended_change": "Publish periodic public reporting on ownership responsiveness (e.g., median PR review time for CODEOWNERS-gated repos, DRI review backlog) to move from operational to measured ownership."
    },
    {
      "anchor_points_needed": 1.0,
      "area": "governance",
      "area_label": "Governance",
      "ceiling_anchor": "Review quality, throughput, and outcomes are measured",
      "ceiling_score": 4.0,
      "classification": "evidence-gap",
      "criterion_id": "contribution_review",
      "current_score": 3.0,
      "gap": "No public review-outcome measurement (e.g., time-to-merge distributions, rejection rates, changeset-compliance rate) is published; internal Slack and GitHub-internal review artifacts are explicitly out of the governance evidence scope, so throughput/quality of review cannot be measured.",
      "initiative_ids": [
        "governance-outcome-measurement"
      ],
      "label": "Contribution and review",
      "maximum_overall_lift": 1.25,
      "next_anchor": "Review quality, throughput, and outcomes are measured",
      "recommended_change": "Publish periodic review-health metrics (e.g., median PR review time, changeset-compliance rate, Figma branch approval latency) to demonstrate the documented process operates at the claimed level."
    },
    {
      "anchor_points_needed": 1.0,
      "area": "governance",
      "area_label": "Governance",
      "ceiling_anchor": "Compatibility and migration success are validated and measured",
      "ceiling_score": 4.0,
      "classification": "evidence-gap",
      "criterion_id": "release_safety",
      "current_score": 3.0,
      "gap": "No public evidence that compatibility or migration success is validated or measured (e.g., automated codemod verification, migration completion tracking, or compatibility test results); release-candidate testing is explicitly gated as staff-only with no published outcomes.",
      "initiative_ids": [
        "governance-outcome-measurement"
      ],
      "label": "Releases, migration, and deprecation",
      "maximum_overall_lift": 1.25,
      "next_anchor": "Compatibility and migration success are validated and measured",
      "recommended_change": "Publish aggregate or anonymized migration-success/compatibility validation results (e.g., percentage of consumers migrated off deprecated SelectPanel, automated compat-test pass rates) to close the anchor-4 gap."
    },
    {
      "anchor_points_needed": 1.0,
      "area": "governance",
      "area_label": "Governance",
      "ceiling_anchor": "Quality, adoption, exceptions, and regressions are measured and acted on",
      "ceiling_score": 4.0,
      "classification": "evidence-gap",
      "criterion_id": "quality_enforcement",
      "current_score": 3.0,
      "gap": "Anchor 4 requires that quality, adoption, exceptions, and regressions be measured and acted on (e.g., published pass-rate trends, tracked regression counts). CI report artifacts (blob-report, playwright-report) and a Datadog code-metrics pipeline (codescan.yml) are configured to produce measurements, but their actual result contents, trends, or evidence of follow-up action are not present in the supplied evidence.",
      "initiative_ids": [
        "governance-outcome-measurement"
      ],
      "label": "Quality enforcement and feedback",
      "maximum_overall_lift": 1.25,
      "next_anchor": "Quality, adoption, exceptions, and regressions are measured and acted on",
      "recommended_change": "Publish periodic public summaries of AAT/VRT pass rates, CodeQL finding trends, or the aging/resolution of SKIPPED_TESTS-style exceptions so quality outcomes \u2014 not just gate existence \u2014 become independently verifiable."
    }
  ],
  "scorecard_fingerprint": "6b082911209dc6cc3563d98368309be79062375d680a9d9a367b683dcf232ba7",
  "system": "primer",
  "system_name": "Primer",
  "target_score": 100.0,
  "visibility": "public"
}
