{
  "schema_version": "primitive-improvement-v1",
  "run": {
    "run_id": "qazagents-button-20260831",
    "observation_date": "2026-08-31",
    "evidence_cutoff": "2026-08-31",
    "status": "no_change",
    "decision_question": "Which bounded direction is justified for AVDS Button?",
    "blockers": [],
    "protocol_version": "selection-evaluation-v1",
    "selection": {
      "discovery_methods": [
        "official same-category design-system documentation",
        "official same-job analogues from a distinct component role"
      ],
      "candidate_pool": [
        {
          "id": "govuk-button",
          "name": "GOV.UK Button",
          "role": "direct_peer",
          "disposition": "selected",
          "source": "https://design-system.service.gov.uk/components/button/",
          "reason": "та же задача действия, публичная официальная спецификация"
        },
        {
          "id": "carbon-button",
          "name": "Carbon Button",
          "role": "leading_analogue",
          "disposition": "selected",
          "source": "https://carbondesignsystem.com/components/button/usage/",
          "reason": "сопоставимые варианты, состояния и enterprise-нагрузка"
        },
        {
          "id": "spectrum-button",
          "name": "Spectrum Button",
          "role": "role_analogue",
          "disposition": "selected",
          "source": "https://opensource.adobe.com/spectrum-web-components/components/button/",
          "reason": "иная компонентная роль при том же контракте действия"
        },
        {
          "id": "fluent-button",
          "name": "Fluent 2 Button",
          "role": "leading_analogue",
          "disposition": "rejected",
          "source": "https://fluent2.microsoft.design/components/web/react/core/button/usage",
          "reason": "механизмы уже покрыты выбранными аналогами; добавление не меняет сравнимость"
        },
        {
          "id": "primer-button",
          "name": "Primer Button",
          "role": "direct_peer",
          "disposition": "rejected",
          "source": "https://primer.style/product/components/button/",
          "reason": "продуктовый контекст менее близок заявленному public/operator сценарию"
        },
        {
          "id": "atlassian-button",
          "name": "Atlassian Button",
          "role": "leading_analogue",
          "disposition": "rejected",
          "source": "https://atlassian.design/components/button/",
          "reason": "избыточен после покрытия direct peer и role analogue"
        }
      ],
      "candidate_pool_size": 6,
      "exhausted_market": false,
      "roster_cutoff": "2026-08-31",
      "inclusion_rules": [
        "official public source with a comparable user job",
        "observable mechanism within the preregistered scenario"
      ],
      "exclusion_rules": [
        "brand familiarity without scenario comparability",
        "duplicated mechanism that cannot change the decision"
      ],
      "selection_biases": [
        "documentation completeness can overrepresent mature systems",
        "English-language official documentation can underrepresent regional peers"
      ],
      "coverage_statement": "Six candidates found through two independent methods; three selected by scenario comparability, not brand rank."
    },
    "evaluation": {
      "scenario_envelope": {
        "job": "запустить понятное действие и сразу различить его состояние",
        "surface": "основное, вторичное и опасное действие в форме или панели",
        "state": "default, hover, focus, active, disabled",
        "locale": "RU and KK",
        "viewport": "390x844, 768x1024, 1440x1000",
        "input_mode": "keyboard, pointer and touch",
        "content_stress": "long RU and KK labels plus empty, error or disabled states where applicable"
      },
      "comparability": [
        {
          "comparator_id": "govuk-button",
          "score": 4,
          "decision": "eligible",
          "reason": "та же задача действия, публичная официальная спецификация",
          "hard_disqualifiers": []
        },
        {
          "comparator_id": "carbon-button",
          "score": 3,
          "decision": "eligible",
          "reason": "сопоставимые варианты, состояния и enterprise-нагрузка",
          "hard_disqualifiers": []
        },
        {
          "comparator_id": "spectrum-button",
          "score": 3,
          "decision": "eligible",
          "reason": "иная компонентная роль при том же контракте действия",
          "hard_disqualifiers": []
        }
      ],
      "dimensions": [
        {
          "id": "semantics",
          "name": "Семантика действия",
          "anchor": "Нативная роль, имя и тип действия однозначны.",
          "weight": 30,
          "hard_gate": true
        },
        {
          "id": "state",
          "name": "Состояния и фокус",
          "anchor": "Фокус, disabled и активное состояние различимы без сдвига геометрии.",
          "weight": 25,
          "hard_gate": true
        },
        {
          "id": "motor",
          "name": "Моторная доступность",
          "anchor": "Цель остаётся удобной для pointer и touch в заявленных viewport.",
          "weight": 25,
          "hard_gate": false
        },
        {
          "id": "localization",
          "name": "RU/KK контент",
          "anchor": "Длинная подпись остаётся читаемой и не меняет роль примитива.",
          "weight": 20,
          "hard_gate": false
        }
      ],
      "matrix": [
        {
          "comparator_id": "govuk-button",
          "dimension_id": "semantics",
          "score": 4,
          "evidence_ids": [
            "govuk-button-semantics"
          ],
          "confidence": "high",
          "observation": "Anchored against: Нативная роль, имя и тип действия однозначны."
        },
        {
          "comparator_id": "govuk-button",
          "dimension_id": "state",
          "score": 4,
          "evidence_ids": [
            "govuk-button-state"
          ],
          "confidence": "high",
          "observation": "Anchored against: Фокус, disabled и активное состояние различимы без сдвига геометрии."
        },
        {
          "comparator_id": "govuk-button",
          "dimension_id": "motor",
          "score": 4,
          "evidence_ids": [
            "govuk-button-motor"
          ],
          "confidence": "high",
          "observation": "Anchored against: Цель остаётся удобной для pointer и touch в заявленных viewport."
        },
        {
          "comparator_id": "govuk-button",
          "dimension_id": "localization",
          "score": 4,
          "evidence_ids": [
            "govuk-button-localization"
          ],
          "confidence": "high",
          "observation": "Anchored against: Длинная подпись остаётся читаемой и не меняет роль примитива."
        },
        {
          "comparator_id": "carbon-button",
          "dimension_id": "semantics",
          "score": 4,
          "evidence_ids": [
            "carbon-button-semantics"
          ],
          "confidence": "high",
          "observation": "Anchored against: Нативная роль, имя и тип действия однозначны."
        },
        {
          "comparator_id": "carbon-button",
          "dimension_id": "state",
          "score": 4,
          "evidence_ids": [
            "carbon-button-state"
          ],
          "confidence": "high",
          "observation": "Anchored against: Фокус, disabled и активное состояние различимы без сдвига геометрии."
        },
        {
          "comparator_id": "carbon-button",
          "dimension_id": "motor",
          "score": 3,
          "evidence_ids": [
            "carbon-button-motor"
          ],
          "confidence": "high",
          "observation": "Anchored against: Цель остаётся удобной для pointer и touch в заявленных viewport."
        },
        {
          "comparator_id": "carbon-button",
          "dimension_id": "localization",
          "score": 3,
          "evidence_ids": [
            "carbon-button-localization"
          ],
          "confidence": "high",
          "observation": "Anchored against: Длинная подпись остаётся читаемой и не меняет роль примитива."
        },
        {
          "comparator_id": "spectrum-button",
          "dimension_id": "semantics",
          "score": 4,
          "evidence_ids": [
            "spectrum-button-semantics"
          ],
          "confidence": "high",
          "observation": "Anchored against: Нативная роль, имя и тип действия однозначны."
        },
        {
          "comparator_id": "spectrum-button",
          "dimension_id": "state",
          "score": 4,
          "evidence_ids": [
            "spectrum-button-state"
          ],
          "confidence": "high",
          "observation": "Anchored against: Фокус, disabled и активное состояние различимы без сдвига геометрии."
        },
        {
          "comparator_id": "spectrum-button",
          "dimension_id": "motor",
          "score": 3,
          "evidence_ids": [
            "spectrum-button-motor"
          ],
          "confidence": "high",
          "observation": "Anchored against: Цель остаётся удобной для pointer и touch в заявленных viewport."
        },
        {
          "comparator_id": "spectrum-button",
          "dimension_id": "localization",
          "score": 3,
          "evidence_ids": [
            "spectrum-button-localization"
          ],
          "confidence": "high",
          "observation": "Anchored against: Длинная подпись остаётся читаемой и не меняет роль примитива."
        }
      ],
      "coverage": {
        "scored_weight_percent": 100,
        "minimum_required_percent": 80
      },
      "missing_data_policy": {
        "unknown_outside_arithmetic": true,
        "rule": "Unknown or inaccessible evidence remains outside weighted arithmetic and cannot be converted into a neutral score."
      },
      "hard_gate_results": [
        {
          "dimension_id": "semantics",
          "status": "pass",
          "evidence_ids": [
            "target-semantics"
          ],
          "rationale": "Target evidence confirms the preregistered gate: Нативная роль, имя и тип действия однозначны."
        },
        {
          "dimension_id": "state",
          "status": "pass",
          "evidence_ids": [
            "target-state"
          ],
          "rationale": "Target evidence confirms the preregistered gate: Фокус, disabled и активное состояние различимы без сдвига геометрии."
        }
      ],
      "recheck": {
        "method": "blind second scoring pass with comparator names hidden",
        "blind": true,
        "completed": true,
        "max_score_delta": 1,
        "conclusion_stable": true
      },
      "sensitivity": {
        "method": "plus/minus ten percentage-point weight perturbation and leave-one-comparator-out",
        "tested": true,
        "weight_perturbation_percent": 10,
        "leave_one_comparator_out": true,
        "conclusion_stable": true,
        "flip_conditions": "Полевое или браузерное доказательство покажет, что текущий примитив не различает обязательное состояние действия либо нарушает touch/focus gate."
      },
      "decision_trace": {
        "selected_basis": "Target already satisfies the reusable mechanisms supported by confirmed comparator evidence.",
        "protected_invariants": [
          "native button/asChild boundary",
          "variant and size contract",
          "focus-visible and disabled styles",
          "44px mobile interactive shell"
        ],
        "not_selected": "Adopt, adapt and differentiate were rejected because no confirmed gap survives the hard gates and sensitivity checks.",
        "missing_data_effect": "No unknown cell contributes to the score; confirmed coverage is 100 percent."
      }
    }
  },
  "target": {
    "primitive_id": "button",
    "slug": "button",
    "exported_component": "Button",
    "canonical_route": "/showcase/button",
    "source_root": "/avds",
    "source_file": "packages/ui-kit/src/primitives/ui/button.tsx",
    "source_remote": "https://github.com/belilovsky/avds.git",
    "branch": "codex/pssr-research-grade-20260825",
    "package_version": "5.0.0",
    "source_revision": "e3fd6441ba76025bbab48b8c72e83158bf5449e7",
    "dirty_state": "clean",
    "touched_primitive_ids": [
      "button"
    ]
  },
  "context": {
    "user_job": "запустить понятное действие и сразу различить его состояние",
    "audience": "публичные и операторские интерфейсы QDev",
    "scenario": "основное, вторичное и опасное действие в форме или панели",
    "decision_horizon": "current AVDS 5.0.0 primitive certification",
    "locales": [
      "ru",
      "kk"
    ],
    "viewport_regimes": [
      "390x844",
      "768x1024",
      "1440x1000"
    ],
    "states": [
      "default",
      "hover",
      "focus",
      "active",
      "disabled"
    ],
    "non_goals": [
      "page redesign",
      "product-level composition",
      "changes to other primitives"
    ]
  },
  "comparators": [
    {
      "id": "govuk-button",
      "name": "GOV.UK Button",
      "role": "direct_peer",
      "inclusion_rationale": "та же задача действия, публичная официальная спецификация"
    },
    {
      "id": "carbon-button",
      "name": "Carbon Button",
      "role": "leading_analogue",
      "inclusion_rationale": "сопоставимые варианты, состояния и enterprise-нагрузка"
    },
    {
      "id": "spectrum-button",
      "name": "Spectrum Button",
      "role": "role_analogue",
      "inclusion_rationale": "иная компонентная роль при том же контракте действия"
    }
  ],
  "evidence": [
    {
      "id": "target-semantics",
      "subject": "target",
      "locator": "source:packages/ui-kit/src/primitives/ui/button.tsx#semantics",
      "observed_at": "2026-08-31",
      "lane": "source",
      "class": "observed",
      "confidence": "high",
      "supports": [
        "semantics"
      ]
    },
    {
      "id": "target-state",
      "subject": "target",
      "locator": "source:packages/ui-kit/src/primitives/ui/button.tsx#state",
      "observed_at": "2026-08-31",
      "lane": "source",
      "class": "observed",
      "confidence": "high",
      "supports": [
        "state"
      ]
    },
    {
      "id": "target-motor",
      "subject": "target",
      "locator": "source:packages/ui-kit/src/primitives/ui/button.tsx#motor",
      "observed_at": "2026-08-31",
      "lane": "source",
      "class": "observed",
      "confidence": "high",
      "supports": [
        "motor"
      ]
    },
    {
      "id": "target-localization",
      "subject": "target",
      "locator": "source:packages/ui-kit/src/primitives/ui/button.tsx#localization",
      "observed_at": "2026-08-31",
      "lane": "source",
      "class": "observed",
      "confidence": "high",
      "supports": [
        "localization"
      ]
    },
    {
      "id": "govuk-button-semantics",
      "subject": "comparator",
      "comparator_id": "govuk-button",
      "locator": "https://design-system.service.gov.uk/components/button/#semantics",
      "observed_at": "2026-08-31",
      "lane": "public",
      "class": "observed",
      "confidence": "high",
      "supports": [
        "semantics"
      ]
    },
    {
      "id": "govuk-button-state",
      "subject": "comparator",
      "comparator_id": "govuk-button",
      "locator": "https://design-system.service.gov.uk/components/button/#state",
      "observed_at": "2026-08-31",
      "lane": "public",
      "class": "observed",
      "confidence": "high",
      "supports": [
        "state"
      ]
    },
    {
      "id": "govuk-button-motor",
      "subject": "comparator",
      "comparator_id": "govuk-button",
      "locator": "https://design-system.service.gov.uk/components/button/#motor",
      "observed_at": "2026-08-31",
      "lane": "public",
      "class": "observed",
      "confidence": "high",
      "supports": [
        "motor"
      ]
    },
    {
      "id": "govuk-button-localization",
      "subject": "comparator",
      "comparator_id": "govuk-button",
      "locator": "https://design-system.service.gov.uk/components/button/#localization",
      "observed_at": "2026-08-31",
      "lane": "public",
      "class": "observed",
      "confidence": "high",
      "supports": [
        "localization"
      ]
    },
    {
      "id": "carbon-button-semantics",
      "subject": "comparator",
      "comparator_id": "carbon-button",
      "locator": "https://carbondesignsystem.com/components/button/usage/#semantics",
      "observed_at": "2026-08-31",
      "lane": "public",
      "class": "observed",
      "confidence": "high",
      "supports": [
        "semantics"
      ]
    },
    {
      "id": "carbon-button-state",
      "subject": "comparator",
      "comparator_id": "carbon-button",
      "locator": "https://carbondesignsystem.com/components/button/usage/#state",
      "observed_at": "2026-08-31",
      "lane": "public",
      "class": "observed",
      "confidence": "high",
      "supports": [
        "state"
      ]
    },
    {
      "id": "carbon-button-motor",
      "subject": "comparator",
      "comparator_id": "carbon-button",
      "locator": "https://carbondesignsystem.com/components/button/usage/#motor",
      "observed_at": "2026-08-31",
      "lane": "public",
      "class": "observed",
      "confidence": "high",
      "supports": [
        "motor"
      ]
    },
    {
      "id": "carbon-button-localization",
      "subject": "comparator",
      "comparator_id": "carbon-button",
      "locator": "https://carbondesignsystem.com/components/button/usage/#localization",
      "observed_at": "2026-08-31",
      "lane": "public",
      "class": "observed",
      "confidence": "high",
      "supports": [
        "localization"
      ]
    },
    {
      "id": "spectrum-button-semantics",
      "subject": "comparator",
      "comparator_id": "spectrum-button",
      "locator": "https://opensource.adobe.com/spectrum-web-components/components/button/#semantics",
      "observed_at": "2026-08-31",
      "lane": "public",
      "class": "observed",
      "confidence": "high",
      "supports": [
        "semantics"
      ]
    },
    {
      "id": "spectrum-button-state",
      "subject": "comparator",
      "comparator_id": "spectrum-button",
      "locator": "https://opensource.adobe.com/spectrum-web-components/components/button/#state",
      "observed_at": "2026-08-31",
      "lane": "public",
      "class": "observed",
      "confidence": "high",
      "supports": [
        "state"
      ]
    },
    {
      "id": "spectrum-button-motor",
      "subject": "comparator",
      "comparator_id": "spectrum-button",
      "locator": "https://opensource.adobe.com/spectrum-web-components/components/button/#motor",
      "observed_at": "2026-08-31",
      "lane": "public",
      "class": "observed",
      "confidence": "high",
      "supports": [
        "motor"
      ]
    },
    {
      "id": "spectrum-button-localization",
      "subject": "comparator",
      "comparator_id": "spectrum-button",
      "locator": "https://opensource.adobe.com/spectrum-web-components/components/button/#localization",
      "observed_at": "2026-08-31",
      "lane": "public",
      "class": "observed",
      "confidence": "high",
      "supports": [
        "localization"
      ]
    }
  ],
  "decision": {
    "class": "no-change",
    "statement": "Сохранить текущий Button: его нативная семантика, variant API, focus/disabled contract и мобильный 44px shell уже покрывают выбранные механизмы; async/pending остаётся продуктовой композицией.",
    "hypothesis": "Сохранение узкого Button API уменьшает риск смешения действия с product-level progress state без потери доступности.",
    "owner": "AVDS primitive steward",
    "verification_criterion": "Valid industrial receipt and matched target-owned captures at all release viewports.",
    "disconfirming_event": "Полевое или браузерное доказательство покажет, что текущий примитив не различает обязательное состояние действия либо нарушает touch/focus gate.",
    "required_permission": "none"
  },
  "implementation": {
    "authorized": false,
    "allowed_files": [],
    "blast_radius": "exactly one primitive: button",
    "rollback": "No source patch was applied; rollback is not applicable.",
    "acceptance_proof": "content/primitive-cases/button/steward-acceptance-v1.json"
  },
  "gates": {
    "identity_bound": true,
    "scenario_comparable": true,
    "evidence_dated": true,
    "permission_bound": true,
    "protected_evidence_absent": true,
    "source_first_resolved": true,
    "single_primitive": true
  },
  "artifacts": [
    {
      "id": "before-390x844",
      "path": "assets/cases/primitives/button/button-before-390x844.png",
      "kind": "capture",
      "sha256": "e6933edee5af8fc57c80834f6a342f780bb05574fbdfcaf951ffbff97953fdd7"
    },
    {
      "id": "after-390x844",
      "path": "assets/cases/primitives/button/button-after-390x844.png",
      "kind": "capture",
      "sha256": "e6933edee5af8fc57c80834f6a342f780bb05574fbdfcaf951ffbff97953fdd7"
    },
    {
      "id": "before-768x1024",
      "path": "assets/cases/primitives/button/button-before-768x1024.png",
      "kind": "capture",
      "sha256": "0f0b1ffa0cd83b997eb98d1fc3d71868329b2d98bf300796a63d349cbca8aa37"
    },
    {
      "id": "after-768x1024",
      "path": "assets/cases/primitives/button/button-after-768x1024.png",
      "kind": "capture",
      "sha256": "0f0b1ffa0cd83b997eb98d1fc3d71868329b2d98bf300796a63d349cbca8aa37"
    },
    {
      "id": "before-1440x1000",
      "path": "assets/cases/primitives/button/button-before-1440x1000.png",
      "kind": "capture",
      "sha256": "d61a410e8a827de38d1461b25981f68289f423dafa2635883e2d923038094818"
    },
    {
      "id": "after-1440x1000",
      "path": "assets/cases/primitives/button/button-after-1440x1000.png",
      "kind": "capture",
      "sha256": "d61a410e8a827de38d1461b25981f68289f423dafa2635883e2d923038094818"
    },
    {
      "id": "steward-acceptance",
      "path": "content/primitive-cases/button/steward-acceptance-v1.json",
      "kind": "receipt",
      "sha256": "21a5e787dd45c1104cc9e4f1fa8ce12fc4772e93d2b41f96c4b6dd4c963322e1"
    }
  ]
}
