{
  "assessor": {
    "command": [
      "<configured-assessor-command-redacted>"
    ],
    "model": "claude-sonnet-5",
    "preamble": "Evaluate only publicly observable Primer capability supported by the supplied immutable evidence snapshot. Missing evidence is unknown, not evidence of absence. Never generalize sampled component evidence beyond its declared scope.",
    "response_parser": "claude-json",
    "timeout_seconds": 900
  },
  "diagnostics": {
    "evidence_packet_max_chars": 500000,
    "fail_fast": true,
    "heartbeat_seconds": 30,
    "jobs": 1,
    "passes": 3
  },
  "evaluation": {
    "account_id": "public",
    "cutoff_date": "2026-08-20",
    "description": "Three-pass diagnostic of Primer's public product, design, implementation, composition, and governance surfaces.",
    "id": "primer-public-diagnostic",
    "name": "Primer public-evidence diagnostic",
    "results_dir": "./results",
    "visibility": "public"
  },
  "framework": {
    "id": "design-system-diagnostic",
    "minimum_coverage": 1.0,
    "profile": "cross-surface-comprehensive",
    "version": "1.0.0"
  },
  "reporting": {
    "max_excerpt_chars": 280,
    "public_excerpts": false
  },
  "sampling": [
    {
      "catalog": {
        "source_ids": [
          "primer-product-docs"
        ]
      },
      "compositions": [
        {
          "component_ids": [
            "page-layout",
            "form-control",
            "text-input",
            "toggle-switch",
            "button",
            "inline-message",
            "dialog",
            "spinner"
          ],
          "id": "create-configure-save",
          "kind": "flow",
          "known_limitations": [
            "This is an analyst-declared product flow evaluated from Primer's published composition, responsive, component, and behavioral guidance; Primer Web does not publish a corresponding end-to-end Figma flow."
          ],
          "name": "Create, configure, validate, and save",
          "required_surfaces": [
            "code",
            "documentation"
          ],
          "source_ids": [
            "primer-forms-pattern",
            "primer-loading-pattern",
            "primer-layout-guidance",
            "primer-responsive-guidance",
            "primer-page-layout-docs",
            "primer-form-control-docs",
            "primer-text-input-docs",
            "primer-button-docs",
            "primer-dialog-docs",
            "primer-spinner-docs"
          ],
          "states": [
            "default",
            "validation-error",
            "loading",
            "save-success"
          ],
          "viewports": [
            "narrow",
            "regular"
          ]
        },
        {
          "component_ids": [
            "button",
            "spinner",
            "inline-message"
          ],
          "id": "loading-recovery",
          "kind": "pattern",
          "known_limitations": [
            "Primer Web publishes the participating component assets but not a composed loading-to-recovery Figma artifact."
          ],
          "name": "Loading and degraded recovery",
          "required_surfaces": [
            "code",
            "documentation"
          ],
          "source_ids": [
            "primer-loading-pattern",
            "primer-degraded-pattern",
            "primer-button-docs",
            "primer-spinner-docs",
            "primer-inline-message-docs"
          ],
          "states": [
            "loading",
            "degraded",
            "recovered"
          ],
          "viewports": [
            "narrow",
            "regular"
          ]
        },
        {
          "component_ids": [
            "blankslate",
            "button",
            "inline-message"
          ],
          "id": "empty-state-recovery",
          "kind": "pattern",
          "known_limitations": [
            "Primer Web publishes the participating component assets but not a composed empty-state recovery Figma artifact."
          ],
          "name": "Empty state with recovery action",
          "required_surfaces": [
            "code",
            "documentation"
          ],
          "source_ids": [
            "primer-empty-state-pattern",
            "primer-degraded-pattern",
            "primer-blankslate-docs",
            "primer-button-docs",
            "primer-inline-message-docs"
          ],
          "states": [
            "empty",
            "action",
            "error"
          ],
          "viewports": [
            "narrow",
            "regular"
          ]
        }
      ],
      "deep_components": [
        {
          "archetype": "action",
          "id": "button",
          "name": "Button",
          "source_ids": [
            "primer-web-figma",
            "primer-button-docs",
            "primer-react-code-connect",
            "primer-react-accessibility-tests"
          ]
        },
        {
          "archetype": "input",
          "design": {
            "disposition": "compound",
            "rationale": "Primer represents FormControl as a coordinated family of label, validation, caption, and input assets rather than one monolithic Figma component.",
            "targets": [
              "FormControl.Label",
              "FormControl.Validation",
              "FormControl.Caption"
            ]
          },
          "id": "form-control",
          "name": "FormControl",
          "source_ids": [
            "primer-form-control-docs",
            "primer-react-code-connect",
            "primer-react-accessibility-tests"
          ]
        },
        {
          "archetype": "input",
          "id": "text-input",
          "name": "TextInput",
          "source_ids": [
            "primer-text-input-docs",
            "primer-react-binding-contracts",
            "primer-react-code-connect",
            "primer-react-accessibility-tests"
          ]
        },
        {
          "archetype": "selection",
          "id": "toggle-switch",
          "name": "ToggleSwitch",
          "source_ids": [
            "primer-toggle-switch-docs",
            "primer-react-code-connect",
            "primer-react-accessibility-tests"
          ]
        },
        {
          "archetype": "navigation",
          "id": "action-menu",
          "name": "ActionMenu",
          "source_ids": [
            "primer-action-menu-docs",
            "primer-react-code-connect",
            "primer-react-accessibility-tests"
          ]
        },
        {
          "archetype": "overlay",
          "id": "dialog",
          "name": "Dialog",
          "source_ids": [
            "primer-dialog-docs",
            "primer-react-binding-contracts",
            "primer-react-code-connect",
            "primer-react-accessibility-tests"
          ]
        },
        {
          "archetype": "feedback",
          "id": "inline-message",
          "name": "InlineMessage",
          "source_ids": [
            "primer-inline-message-docs",
            "primer-react-code-connect",
            "primer-react-accessibility-tests"
          ]
        },
        {
          "archetype": "content",
          "id": "blankslate",
          "name": "Blankslate",
          "source_ids": [
            "primer-blankslate-docs",
            "primer-react-code-connect",
            "primer-react-accessibility-tests"
          ]
        },
        {
          "archetype": "status",
          "id": "spinner",
          "name": "Spinner",
          "source_ids": [
            "primer-spinner-docs",
            "primer-react-code-connect",
            "primer-react-accessibility-tests"
          ]
        },
        {
          "archetype": "layout",
          "design": {
            "disposition": "code-only",
            "rationale": "The current public Primer Web library has no PageLayout design component; the supported layout contract is published in implementation and documentation."
          },
          "id": "page-layout",
          "name": "PageLayout",
          "source_ids": [
            "primer-page-layout-docs",
            "primer-react-accessibility-tests"
          ]
        },
        {
          "archetype": "data-display",
          "design": {
            "disposition": "compound",
            "rationale": "Primer's DataTable contract is composed from a main table component and specialized header and cell components.",
            "targets": [
              "DataTable",
              "DataTable/Header",
              "DataTable/ColumnHeaderCell",
              "DataTable/TextCell",
              "DataTable/LabelCell",
              "DataTable/RowActionsCell"
            ]
          },
          "id": "data-table",
          "name": "DataTable",
          "source_ids": [
            "primer-data-table-docs",
            "primer-react-code-connect",
            "primer-react-accessibility-tests"
          ]
        }
      ],
      "foundations": {
        "known_limitations": [
          "The deprecated separate Primer Primitives Figma file is not an evidence source."
        ],
        "source_ids": [
          "primer-web-figma",
          "primer-figma-guidance",
          "primer-primitives",
          "primer-layout-guidance",
          "primer-responsive-guidance"
        ],
        "variable_coverage": "full-file"
      },
      "governance": {
        "known_limitations": [
          "Internal decision records, service levels, adoption dashboards, and governance outcome metrics are not assumed from public evidence.",
          "Private Slack discussions and GitHub-internal review artifacts are outside this public evaluation.",
          "Public migration documentation is evaluated directly, but linked staff-only production pull requests and private migration outcomes remain outside the evidence scope."
        ],
        "scope": "public",
        "source_ids": [
          "primer-figma-contribution",
          "primer-contribution-model",
          "primer-figma-guidance",
          "primer-react",
          "primer-primitives",
          "primer-react-accessibility-tests",
          "primer-react-operating-governance",
          "primer-react-migration-index",
          "primer-select-panel-migration",
          "primer-component-status-policy",
          "primer-css-variable-migration",
          "primer-react-release-history",
          "primer-primitives-release-process"
        ]
      },
      "system": "primer"
    }
  ],
  "sources": [
    {
      "areas": [
        "foundations",
        "bindings",
        "components",
        "structure",
        "governance"
      ],
      "evidence_roles": [
        "catalog",
        "documentation"
      ],
      "id": "primer-product-docs",
      "required": true,
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/"
    },
    {
      "areas": [
        "foundations",
        "bindings",
        "components",
        "governance"
      ],
      "evidence_roles": [
        "foundation",
        "documentation",
        "governance"
      ],
      "id": "primer-figma-guidance",
      "required": true,
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/getting-started/figma/"
    },
    {
      "areas": [
        "foundations",
        "bindings",
        "components"
      ],
      "discover": true,
      "discovery_batch_size": 4,
      "discovery_depth": 3,
      "discovery_retries": 2,
      "evidence_roles": [
        "foundation",
        "design"
      ],
      "figma_export_path": "<redacted-local-figma-export>",
      "file_key": "20ssJWembLUTeXgBwA6wd8",
      "id": "primer-web-figma",
      "max_bytes": 25000000,
      "node_ids": [
        "30258:5582"
      ],
      "request_timeout_seconds": 90,
      "required": true,
      "sample_node_overrides": {
        "data-table": [
          "28591:24975",
          "28509:38091",
          "28503:10079",
          "28242:7395",
          "28459:16318",
          "28459:16729"
        ]
      },
      "system": "primer",
      "token_env": "<credential-environment-variable>",
      "type": "figma",
      "url": "https://www.figma.com/design/20ssJWembLUTeXgBwA6wd8/Primer-Web",
      "variable_scope": "full-file"
    },
    {
      "areas": [
        "bindings",
        "components",
        "structure",
        "governance"
      ],
      "evidence_roles": [
        "code",
        "governance",
        "quality"
      ],
      "id": "primer-react",
      "paths": [
        "README.md",
        "CONTRIBUTING.md",
        "package.json",
        ".github/CODEOWNERS"
      ],
      "repo": "primer/react",
      "required": true,
      "system": "primer",
      "token_env": "<credential-environment-variable>",
      "type": "github"
    },
    {
      "areas": [
        "foundations",
        "bindings",
        "governance"
      ],
      "evidence_roles": [
        "foundation",
        "code",
        "governance",
        "quality"
      ],
      "id": "primer-primitives",
      "paths": [
        "README.md",
        "CONTRIBUTING.md",
        "package.json",
        ".github/CODEOWNERS"
      ],
      "repo": "primer/primitives",
      "system": "primer",
      "token_env": "<credential-environment-variable>",
      "type": "github"
    },
    {
      "areas": [
        "bindings",
        "components"
      ],
      "evidence_roles": [
        "code",
        "documentation"
      ],
      "id": "primer-button-docs",
      "required": true,
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/components/button/"
    },
    {
      "areas": [
        "bindings"
      ],
      "evidence_roles": [
        "code",
        "documentation"
      ],
      "id": "primer-react-binding-contracts",
      "max_bytes": 5000000,
      "paths": [
        "packages/react/src/TextInput/TextInput.tsx",
        "packages/react/src/Dialog/Dialog.tsx"
      ],
      "repo": "primer/react",
      "required": true,
      "system": "primer",
      "token_env": "<credential-environment-variable>",
      "type": "github"
    },
    {
      "areas": [
        "bindings"
      ],
      "evidence_roles": [
        "design",
        "code",
        "documentation"
      ],
      "id": "primer-react-code-connect",
      "max_bytes": 5000000,
      "paths": [
        "packages/react/src/Button/Button.figma.tsx",
        "packages/react/src/ActionMenu/ActionMenu.figma.tsx",
        "packages/react/src/Dialog/Dialog.figma.tsx",
        "packages/react/src/TextInput/TextInput.figma.tsx",
        "packages/react/src/ToggleSwitch/ToggleSwitch.figma.tsx",
        "packages/react/src/FormControl/FormControl.figma.tsx",
        "packages/react/src/InlineMessage/InlineMessage.figma.tsx",
        "packages/react/src/Blankslate/Blankslate.figma.tsx",
        "packages/react/src/Spinner/Spinner.figma.tsx",
        "packages/react/src/DataTable/DataTable.figma.tsx",
        ".github/instructions/component-review.instructions.md",
        ".github/workflows/figma_connect_publish.yml"
      ],
      "ref": "b1117811cebfb9463f20fe76f77cdf13917ae6b2",
      "repo": "primer/react",
      "required": true,
      "system": "primer",
      "token_env": "<credential-environment-variable>",
      "type": "github"
    },
    {
      "areas": [
        "components",
        "governance"
      ],
      "evidence_roles": [
        "code",
        "documentation",
        "quality"
      ],
      "id": "primer-react-accessibility-tests",
      "max_bytes": 10000000,
      "paths": [
        "contributor-docs/testing.md",
        "e2e/components/Axe.test.ts",
        "e2e/components/Button.test.ts",
        "e2e/components/ActionMenu.test.ts",
        "e2e/components/Blankslate.test.ts",
        "e2e/components/DataTable.test.ts",
        "e2e/components/Dialog.test.ts",
        "e2e/components/FormControl.test.ts",
        "e2e/components/InlineMessage.test.ts",
        "e2e/components/PageLayout.test.ts",
        "e2e/components/TextInput.test.ts",
        "e2e/components/ToggleSwitch.test.ts",
        "packages/react/src/Button/__tests__/Button.test.tsx",
        "packages/react/src/ActionMenu/ActionMenu.test.tsx",
        "packages/react/src/Blankslate/Blankslate.test.tsx",
        "packages/react/src/DataTable/__tests__/DataTable.test.tsx",
        "packages/react/src/Dialog/Dialog.test.tsx",
        "packages/react/src/FormControl/__tests__/FormControl.test.tsx",
        "packages/react/src/FormControl/__tests__/FormControl.Validation.test.tsx",
        "packages/react/src/InlineMessage/InlineMessage.test.tsx",
        "packages/react/src/PageLayout/PageLayout.test.tsx",
        "packages/react/src/Spinner/Spinner.test.tsx",
        "packages/react/src/TextInput/TextInput.test.tsx",
        "packages/react/src/ToggleSwitch/ToggleSwitch.test.tsx",
        ".github/workflows/aat-reports.yml",
        ".github/workflows/reports.yml"
      ],
      "ref": "b1117811cebfb9463f20fe76f77cdf13917ae6b2",
      "repo": "primer/react",
      "required": true,
      "system": "primer",
      "token_env": "<credential-environment-variable>",
      "type": "github"
    },
    {
      "areas": [
        "governance"
      ],
      "evidence_roles": [
        "documentation",
        "governance",
        "quality"
      ],
      "id": "primer-react-operating-governance",
      "max_bytes": 5000000,
      "paths": [
        "contributor-docs/CONTRIBUTING.md",
        ".github/ISSUE_TEMPLATE/config.yml",
        ".github/pull_request_template.md",
        ".github/workflows/ci.yml",
        ".github/workflows/check_for_changeset.yml",
        ".github/workflows/status-checks.yml",
        ".github/workflows/codeql.yml",
        ".github/workflows/codescan.yml"
      ],
      "ref": "b1117811cebfb9463f20fe76f77cdf13917ae6b2",
      "repo": "primer/react",
      "required": true,
      "system": "primer",
      "token_env": "<credential-environment-variable>",
      "type": "github"
    },
    {
      "areas": [
        "bindings",
        "components",
        "structure"
      ],
      "evidence_roles": [
        "code",
        "documentation"
      ],
      "id": "primer-form-control-docs",
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/components/form-control/"
    },
    {
      "areas": [
        "bindings",
        "components",
        "structure"
      ],
      "evidence_roles": [
        "code",
        "documentation"
      ],
      "id": "primer-text-input-docs",
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/components/text-input/"
    },
    {
      "areas": [
        "bindings",
        "components",
        "structure"
      ],
      "evidence_roles": [
        "code",
        "documentation"
      ],
      "id": "primer-toggle-switch-docs",
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/components/toggle-switch/"
    },
    {
      "areas": [
        "bindings",
        "components",
        "structure"
      ],
      "evidence_roles": [
        "code",
        "documentation"
      ],
      "id": "primer-action-menu-docs",
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/components/action-menu/"
    },
    {
      "areas": [
        "bindings",
        "components",
        "structure"
      ],
      "evidence_roles": [
        "code",
        "documentation"
      ],
      "id": "primer-dialog-docs",
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/components/dialog/"
    },
    {
      "areas": [
        "bindings",
        "components",
        "structure"
      ],
      "evidence_roles": [
        "code",
        "documentation"
      ],
      "id": "primer-inline-message-docs",
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/components/inline-message/"
    },
    {
      "areas": [
        "bindings",
        "components",
        "structure"
      ],
      "evidence_roles": [
        "code",
        "documentation"
      ],
      "id": "primer-blankslate-docs",
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/components/blankslate/"
    },
    {
      "areas": [
        "bindings",
        "components",
        "structure"
      ],
      "evidence_roles": [
        "code",
        "documentation"
      ],
      "id": "primer-spinner-docs",
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/components/spinner/"
    },
    {
      "areas": [
        "bindings",
        "components",
        "structure"
      ],
      "evidence_roles": [
        "code",
        "documentation",
        "composition"
      ],
      "id": "primer-page-layout-docs",
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/components/page-layout/"
    },
    {
      "areas": [
        "bindings",
        "components",
        "structure"
      ],
      "evidence_roles": [
        "code",
        "documentation"
      ],
      "id": "primer-data-table-docs",
      "max_bytes": 10000000,
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/components/data-table/"
    },
    {
      "areas": [
        "foundations",
        "components",
        "structure"
      ],
      "evidence_roles": [
        "foundation",
        "documentation",
        "composition"
      ],
      "id": "primer-layout-guidance",
      "required": true,
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/getting-started/foundations/layout/"
    },
    {
      "areas": [
        "foundations",
        "components",
        "structure"
      ],
      "evidence_roles": [
        "foundation",
        "documentation",
        "composition"
      ],
      "id": "primer-responsive-guidance",
      "required": true,
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/getting-started/foundations/responsive/"
    },
    {
      "areas": [
        "components",
        "structure"
      ],
      "evidence_roles": [
        "documentation",
        "composition"
      ],
      "id": "primer-forms-pattern",
      "required": true,
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/ui-patterns/forms/"
    },
    {
      "areas": [
        "components",
        "structure"
      ],
      "evidence_roles": [
        "documentation",
        "composition"
      ],
      "id": "primer-loading-pattern",
      "required": true,
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/ui-patterns/loading/"
    },
    {
      "areas": [
        "components",
        "structure"
      ],
      "evidence_roles": [
        "documentation",
        "composition"
      ],
      "id": "primer-empty-state-pattern",
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/ui-patterns/empty-states/"
    },
    {
      "areas": [
        "components",
        "structure"
      ],
      "evidence_roles": [
        "documentation",
        "composition"
      ],
      "id": "primer-degraded-pattern",
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/ui-patterns/degraded-experiences/"
    },
    {
      "areas": [
        "bindings",
        "governance"
      ],
      "evidence_roles": [
        "documentation",
        "governance"
      ],
      "id": "primer-figma-contribution",
      "required": true,
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/contribute/contributing-to-figma/"
    },
    {
      "areas": [
        "governance"
      ],
      "evidence_roles": [
        "documentation",
        "governance"
      ],
      "id": "primer-contribution-model",
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/contribute/how-to-contribute/"
    },
    {
      "areas": [
        "bindings",
        "governance"
      ],
      "evidence_roles": [
        "documentation",
        "governance",
        "code"
      ],
      "id": "primer-react-migration-index",
      "max_bytes": 5000000,
      "required": true,
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/getting-started/react/migration-guides/"
    },
    {
      "areas": [
        "governance"
      ],
      "evidence_roles": [
        "documentation",
        "governance"
      ],
      "id": "primer-select-panel-migration",
      "max_bytes": 5000000,
      "required": true,
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/getting-started/react/migration-guides/primer-experimental-selectpanel/"
    },
    {
      "areas": [
        "bindings",
        "governance"
      ],
      "evidence_roles": [
        "documentation",
        "governance",
        "code"
      ],
      "id": "primer-component-status-policy",
      "max_bytes": 5000000,
      "required": true,
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/getting-started/component-status/"
    },
    {
      "areas": [
        "governance"
      ],
      "evidence_roles": [
        "documentation",
        "governance"
      ],
      "id": "primer-css-variable-migration",
      "max_bytes": 5000000,
      "required": true,
      "system": "primer",
      "type": "web",
      "url": "https://primer.style/product/primitives/migrating/"
    },
    {
      "areas": [
        "governance"
      ],
      "evidence_roles": [
        "documentation",
        "governance",
        "quality"
      ],
      "id": "primer-react-release-history",
      "max_bytes": 5000000,
      "paths": [
        "CHANGELOG.md",
        ".changeset/config.json"
      ],
      "repo": "primer/react",
      "required": true,
      "system": "primer",
      "token_env": "<credential-environment-variable>",
      "type": "github"
    },
    {
      "areas": [
        "governance"
      ],
      "evidence_roles": [
        "documentation",
        "governance",
        "quality"
      ],
      "id": "primer-primitives-release-process",
      "max_bytes": 5000000,
      "paths": [
        "RELEASING.md",
        "CHANGELOG.md",
        ".changeset/config.json"
      ],
      "repo": "primer/primitives",
      "required": true,
      "system": "primer",
      "token_env": "<credential-environment-variable>",
      "type": "github"
    }
  ],
  "systems": [
    {
      "description": "GitHub's product design system, evaluated only through configured public evidence.",
      "id": "primer",
      "license": "MIT",
      "name": "Primer",
      "platform": "web-react",
      "role": "anchor",
      "version": "public-snapshot-2026-08-20"
    }
  ],
  "version": 2
}
