// generated from contracts/screens/kbx.screen-recipes.json; do not edit.
// SHA256: 97ab56bc54149f32ea16577369c4ec29579b516ea464cb42010b31e4dc413e60
import type { KbxScreenRecipeDefinition } from '../screen'

export const kbxScreenRecipeContractVersion="1.1.0" as const
export const kbxScreenRecipeCatalog={
  "T01": {
    "code": "T01",
    "type": "list",
    "templateComponent": "KbxListPage",
    "defaultCommands": [
      {
        "id": "search",
        "label": "조회",
        "group": "query",
        "shortcut": "F3",
        "permissionKind": "none"
      },
      {
        "id": "excel",
        "label": "엑셀",
        "group": "output",
        "permissionKind": "none"
      }
    ],
    "requiredPolicies": [
      "server-read-model",
      "tanstack-query",
      "search-condition-preservation",
      "server-side-bulk-selection"
    ],
    "recoveryPolicies": [
      "idle-before-first-search",
      "retain-grid-during-refresh",
      "retry-with-search-context",
      "partial-bulk-result"
    ],
    "securityPolicies": [
      "screen-permission",
      "command-permission",
      "safe-drilldown-route",
      "masked-sensitive-cells"
    ],
    "canonicalScenarioIds": [
      "scenario.oms.order-list.bulk-ship",
      "scenario.oms.order-list.all-filtered-ship"
    ],
    "scaffoldSurfaces": [
      "search",
      "content",
      "summary"
    ],
    "testProfile": {
      "requiredScenarioKinds": [
        "e2e"
      ],
      "requiredTags": [
        "bulk",
        "idempotency"
      ],
      "requiredEvidence": [
        "playwright-trace"
      ],
      "requiredChecks": [
        "idle-search",
        "refresh-retains-context",
        "bulk-partial-result",
        "safe-drilldown"
      ]
    }
  },
  "T02": {
    "code": "T02",
    "type": "master",
    "templateComponent": "KbxMasterPage",
    "defaultCommands": [
      {
        "id": "search",
        "label": "조회",
        "group": "query",
        "shortcut": "F3",
        "permissionKind": "none"
      },
      {
        "id": "new",
        "label": "신규",
        "group": "edit",
        "permissionKind": "write"
      },
      {
        "id": "save",
        "label": "저장",
        "group": "edit",
        "shortcut": "F8",
        "variant": "primary",
        "permissionKind": "write"
      },
      {
        "id": "excel",
        "label": "엑셀",
        "group": "output",
        "permissionKind": "none"
      }
    ],
    "requiredPolicies": [
      "normalized-write-model",
      "lookup-provider",
      "server-validation",
      "optimistic-concurrency",
      "audit"
    ],
    "recoveryPolicies": [
      "dirty-navigation-guard",
      "conflict-reload",
      "field-validation-focus",
      "readonly-after-terminal-state"
    ],
    "securityPolicies": [
      "screen-permission",
      "write-command-permission",
      "server-enforcement",
      "sensitive-value-masking"
    ],
    "canonicalScenarioIds": [
      "scenario.erp.item-master.lifecycle",
      "scenario.erp.item-master.keyboard-recovery"
    ],
    "scaffoldSurfaces": [
      "list",
      "detail"
    ],
    "testProfile": {
      "requiredScenarioKinds": [
        "e2e",
        "integration"
      ],
      "requiredTags": [
        "master-crud",
        "concurrency",
        "audit"
      ],
      "requiredEvidence": [
        "playwright-trace",
        "db-assertions"
      ],
      "requiredChecks": [
        "permission-aware-save",
        "dirty-guard",
        "conflict-reload",
        "audit-visible"
      ]
    }
  },
  "T03": {
    "code": "T03",
    "type": "transaction",
    "templateComponent": "KbxTransactionPage",
    "defaultCommands": [
      {
        "id": "new",
        "label": "신규",
        "group": "edit",
        "permissionKind": "write"
      },
      {
        "id": "save",
        "label": "저장",
        "group": "edit",
        "shortcut": "F8",
        "variant": "primary",
        "permissionKind": "write"
      },
      {
        "id": "excel",
        "label": "엑셀",
        "group": "output",
        "permissionKind": "none"
      }
    ],
    "requiredPolicies": [
      "normalized-write-model",
      "header-detail-transaction",
      "server-validation",
      "optimistic-concurrency",
      "audit",
      "outbox"
    ],
    "recoveryPolicies": [
      "dirty-navigation-guard",
      "conflict-reload",
      "row-key-validation",
      "double-submit-guard"
    ],
    "securityPolicies": [
      "screen-permission",
      "write-command-permission",
      "workflow-permission",
      "server-enforcement"
    ],
    "canonicalScenarioIds": [
      "scenario.oms.order-register.keyboard",
      "scenario.oms.order-register.conflict",
      "scenario.oms.order-register.lifecycle"
    ],
    "scaffoldSurfaces": [
      "header",
      "detail",
      "summary"
    ],
    "testProfile": {
      "requiredScenarioKinds": [
        "e2e",
        "integration"
      ],
      "requiredTags": [
        "keyboard",
        "lookup",
        "conflict",
        "workflow"
      ],
      "requiredEvidence": [
        "playwright-trace",
        "problem-json"
      ],
      "requiredChecks": [
        "f2-lookup",
        "f8-save",
        "row-key-validation",
        "conflict-recovery"
      ]
    }
  },
  "T04": {
    "code": "T04",
    "type": "fast-entry",
    "templateComponent": "KbxFastEntryPage",
    "defaultCommands": [
      {
        "id": "new",
        "label": "신규",
        "group": "edit",
        "permissionKind": "write"
      },
      {
        "id": "save",
        "label": "저장",
        "group": "edit",
        "shortcut": "F8",
        "variant": "primary",
        "permissionKind": "write"
      },
      {
        "id": "excel",
        "label": "엑셀",
        "group": "output",
        "permissionKind": "none"
      }
    ],
    "requiredPolicies": [
      "typed-clipboard-normalization",
      "stable-client-row-key",
      "bulk-server-validation",
      "idempotent-bulk-save"
    ],
    "recoveryPolicies": [
      "error-cell-navigation",
      "paste-error-summary",
      "dirty-navigation-guard",
      "partial-save-result"
    ],
    "securityPolicies": [
      "screen-permission",
      "write-command-permission",
      "lookup-entity-resolution",
      "server-enforcement"
    ],
    "canonicalScenarioIds": [
      "scenario.erp.item-price.fast-entry",
      "scenario.oms.order-register.fast-entry"
    ],
    "scaffoldSurfaces": [
      "guide",
      "content",
      "validation",
      "summary"
    ],
    "testProfile": {
      "requiredScenarioKinds": [
        "e2e"
      ],
      "requiredTags": [
        "fast-entry",
        "paste",
        "fill-down",
        "idempotency"
      ],
      "requiredEvidence": [
        "playwright-trace",
        "problem-json"
      ],
      "requiredChecks": [
        "multi-cell-paste",
        "fill-down",
        "error-navigation",
        "partial-save-result"
      ]
    }
  },
  "T05": {
    "code": "T05",
    "type": "master-detail",
    "templateComponent": "KbxMasterDetailPage",
    "defaultCommands": [
      {
        "id": "search",
        "label": "조회",
        "group": "query",
        "shortcut": "F3",
        "permissionKind": "none"
      },
      {
        "id": "excel",
        "label": "엑셀",
        "group": "output",
        "permissionKind": "none"
      }
    ],
    "requiredPolicies": [
      "server-read-model",
      "master-selection-context",
      "detail-projection",
      "n-plus-one-prohibition"
    ],
    "recoveryPolicies": [
      "selection-restore-after-refresh",
      "retain-master-on-detail-error",
      "safe-drilldown",
      "empty-master-detail-reset"
    ],
    "securityPolicies": [
      "screen-permission",
      "safe-drilldown-route",
      "masked-sensitive-detail"
    ],
    "canonicalScenarioIds": [
      "scenario.erp.inventory.master-detail-context"
    ],
    "scaffoldSurfaces": [
      "search",
      "master",
      "detail"
    ],
    "testProfile": {
      "requiredScenarioKinds": [
        "e2e"
      ],
      "requiredTags": [
        "master-detail",
        "context-retention",
        "drill-down"
      ],
      "requiredEvidence": [
        "playwright-trace",
        "api-transcript"
      ],
      "requiredChecks": [
        "master-selection-context",
        "detail-error-retains-master",
        "history-context",
        "safe-drilldown"
      ]
    }
  },
  "T06": {
    "code": "T06",
    "type": "queue",
    "templateComponent": "KbxQueuePage",
    "defaultCommands": [
      {
        "id": "search",
        "label": "조회",
        "group": "query",
        "shortcut": "F3",
        "permissionKind": "none"
      }
    ],
    "requiredPolicies": [
      "exception-first-projection",
      "sla-state",
      "server-side-bulk-selection",
      "audit"
    ],
    "recoveryPolicies": [
      "partial-action-result",
      "retryable-vs-terminal-error",
      "stale-event-suppression",
      "detail-context-retention"
    ],
    "securityPolicies": [
      "screen-permission",
      "exception-action-permission",
      "server-enforcement"
    ],
    "canonicalScenarioIds": [
      "scenario.common.operations.stale-event",
      "scenario.integration.manual-retry.idempotent",
      "scenario.common.operations.queue-recovery"
    ],
    "scaffoldSurfaces": [
      "summary",
      "exceptions",
      "content"
    ],
    "testProfile": {
      "requiredScenarioKinds": [
        "e2e",
        "integration"
      ],
      "requiredTags": [
        "exception",
        "recovery",
        "context-retention"
      ],
      "requiredEvidence": [
        "playwright-trace",
        "db-assertions"
      ],
      "requiredChecks": [
        "exception-first",
        "detail-context-retention",
        "retryable-vs-terminal",
        "partial-action-result"
      ]
    }
  },
  "T07": {
    "code": "T07",
    "type": "reconcile",
    "templateComponent": "KbxReconcilePage",
    "defaultCommands": [
      {
        "id": "search",
        "label": "조회",
        "group": "query",
        "shortcut": "F3",
        "permissionKind": "none"
      }
    ],
    "requiredPolicies": [
      "expected-actual-difference-projection",
      "reason-code",
      "resolution-state",
      "audit"
    ],
    "recoveryPolicies": [
      "grace-period-before-mismatch",
      "mismatch-only-filter",
      "resolution-retry",
      "retain-comparison-context"
    ],
    "securityPolicies": [
      "screen-permission",
      "resolution-permission",
      "server-enforcement"
    ],
    "canonicalScenarioIds": [
      "scenario.common.reconcile.grace-period",
      "scenario.common.reconcile.mismatch-recovery"
    ],
    "scaffoldSurfaces": [
      "search",
      "content",
      "resolution"
    ],
    "testProfile": {
      "requiredScenarioKinds": [
        "e2e",
        "integration"
      ],
      "requiredTags": [
        "reconcile",
        "mismatch-filter",
        "eventual-consistency"
      ],
      "requiredEvidence": [
        "playwright-trace",
        "db-assertions"
      ],
      "requiredChecks": [
        "mismatch-only-filter",
        "grace-period",
        "resolution-retry",
        "comparison-context"
      ]
    }
  },
  "T08": {
    "code": "T08",
    "type": "import",
    "templateComponent": "KbxImportPage",
    "defaultCommands": [],
    "requiredPolicies": [
      "staging-before-domain-write",
      "mapping-source-traceability",
      "background-job-threshold",
      "idempotent-commit",
      "audit"
    ],
    "recoveryPolicies": [
      "session-mapping-isolation",
      "validation-error-download",
      "partial-commit-result",
      "job-refresh-recovery"
    ],
    "securityPolicies": [
      "screen-permission",
      "file-preflight",
      "commit-permission",
      "server-validation",
      "sensitive-column-policy"
    ],
    "canonicalScenarioIds": [
      "scenario.oms.order-import.partial"
    ],
    "scaffoldSurfaces": [
      "steps",
      "content",
      "result"
    ],
    "testProfile": {
      "requiredScenarioKinds": [
        "e2e"
      ],
      "requiredTags": [
        "excel",
        "mapping",
        "staging",
        "partial-success",
        "job"
      ],
      "requiredEvidence": [
        "playwright-trace",
        "problem-json"
      ],
      "requiredChecks": [
        "mapping-isolation",
        "validation-download",
        "commit-confirm",
        "job-refresh-recovery"
      ]
    }
  },
  "T09": {
    "code": "T09",
    "type": "wms-mobile",
    "templateComponent": "KbxWmsMobilePage",
    "defaultCommands": [],
    "requiredPolicies": [
      "barcode-normalization",
      "server-validation-before-success",
      "idempotent-scan-command",
      "network-state",
      "offline-command-policy"
    ],
    "recoveryPolicies": [
      "duplicate-scan-debounce",
      "response-loss-replay",
      "wrong-item-no-retry",
      "pending-command-visibility"
    ],
    "securityPolicies": [
      "screen-permission",
      "execute-permission",
      "server-enforcement",
      "offline-command-allowlist"
    ],
    "canonicalScenarioIds": [
      "scenario.wms.picking.idempotent-replay",
      "scenario.wms.picking.wrong-item"
    ],
    "scaffoldSurfaces": [
      "context",
      "content",
      "actions"
    ],
    "testProfile": {
      "requiredScenarioKinds": [
        "e2e"
      ],
      "requiredTags": [
        "scanner",
        "idempotency",
        "network",
        "retry-policy"
      ],
      "requiredEvidence": [
        "playwright-trace",
        "api-transcript"
      ],
      "requiredChecks": [
        "scan-normalization",
        "server-before-success",
        "response-loss-replay",
        "wrong-item-no-retry"
      ]
    }
  }
} as const satisfies Record<string,KbxScreenRecipeDefinition>
export const kbxScreenRecipeVerificationCatalog={
  "T01": {
    "code": "T01",
    "type": "list",
    "canonicalScenarioIds": [
      "scenario.oms.order-list.bulk-ship",
      "scenario.oms.order-list.all-filtered-ship"
    ],
    "scenarioKinds": [
      "contract",
      "e2e"
    ],
    "tags": [
      "all-filtered",
      "audit",
      "bulk",
      "filter-snapshot",
      "golden-screen",
      "idempotency",
      "outbox"
    ],
    "evidence": [
      "api-transcript",
      "correlation-ids",
      "db-assertions",
      "playwright-trace",
      "screenshot",
      "vitest-contract"
    ],
    "requiredChecks": [
      "idle-search",
      "refresh-retains-context",
      "bulk-partial-result",
      "safe-drilldown"
    ],
    "missingScenarioKinds": [],
    "missingTags": [],
    "missingEvidence": [],
    "complete": true
  },
  "T02": {
    "code": "T02",
    "type": "master",
    "canonicalScenarioIds": [
      "scenario.erp.item-master.lifecycle",
      "scenario.erp.item-master.keyboard-recovery"
    ],
    "scenarioKinds": [
      "e2e",
      "integration"
    ],
    "tags": [
      "audit",
      "concurrency",
      "golden-screen",
      "keyboard",
      "master-crud",
      "permission",
      "recovery",
      "state-policy"
    ],
    "evidence": [
      "api-transcript",
      "db-assertions",
      "playwright-trace",
      "problem-json",
      "screenshot"
    ],
    "requiredChecks": [
      "permission-aware-save",
      "dirty-guard",
      "conflict-reload",
      "audit-visible"
    ],
    "missingScenarioKinds": [],
    "missingTags": [],
    "missingEvidence": [],
    "complete": true
  },
  "T03": {
    "code": "T03",
    "type": "transaction",
    "canonicalScenarioIds": [
      "scenario.oms.order-register.keyboard",
      "scenario.oms.order-register.conflict",
      "scenario.oms.order-register.lifecycle"
    ],
    "scenarioKinds": [
      "e2e",
      "integration"
    ],
    "tags": [
      "audit",
      "concurrency",
      "conflict",
      "golden-screen",
      "keyboard",
      "lookup",
      "recovery",
      "state-policy",
      "transaction",
      "validation",
      "workflow"
    ],
    "evidence": [
      "api-transcript",
      "db-assertions",
      "playwright-trace",
      "problem-json",
      "screenshot"
    ],
    "requiredChecks": [
      "f2-lookup",
      "f8-save",
      "row-key-validation",
      "conflict-recovery"
    ],
    "missingScenarioKinds": [],
    "missingTags": [],
    "missingEvidence": [],
    "complete": true
  },
  "T04": {
    "code": "T04",
    "type": "fast-entry",
    "canonicalScenarioIds": [
      "scenario.erp.item-price.fast-entry",
      "scenario.oms.order-register.fast-entry"
    ],
    "scenarioKinds": [
      "contract",
      "e2e"
    ],
    "tags": [
      "audit",
      "fast-entry",
      "fill-down",
      "golden-screen",
      "idempotency",
      "inline-validation",
      "lookup",
      "outbox",
      "paste"
    ],
    "evidence": [
      "api-transcript",
      "component-catalog",
      "db-assertions",
      "playwright-trace",
      "problem-json",
      "vitest-contract"
    ],
    "requiredChecks": [
      "multi-cell-paste",
      "fill-down",
      "error-navigation",
      "partial-save-result"
    ],
    "missingScenarioKinds": [],
    "missingTags": [],
    "missingEvidence": [],
    "complete": true
  },
  "T05": {
    "code": "T05",
    "type": "master-detail",
    "canonicalScenarioIds": [
      "scenario.erp.inventory.master-detail-context"
    ],
    "scenarioKinds": [
      "e2e"
    ],
    "tags": [
      "context-retention",
      "drill-down",
      "golden-screen",
      "history",
      "master-detail"
    ],
    "evidence": [
      "api-transcript",
      "playwright-trace",
      "screenshot"
    ],
    "requiredChecks": [
      "master-selection-context",
      "detail-error-retains-master",
      "history-context",
      "safe-drilldown"
    ],
    "missingScenarioKinds": [],
    "missingTags": [],
    "missingEvidence": [],
    "complete": true
  },
  "T06": {
    "code": "T06",
    "type": "queue",
    "canonicalScenarioIds": [
      "scenario.common.operations.stale-event",
      "scenario.integration.manual-retry.idempotent",
      "scenario.common.operations.queue-recovery"
    ],
    "scenarioKinds": [
      "e2e",
      "integration"
    ],
    "tags": [
      "context-retention",
      "exception",
      "golden-screen",
      "idempotency",
      "integration",
      "manual-retry",
      "ordering",
      "outbox",
      "permission",
      "projection",
      "queue",
      "recovery"
    ],
    "evidence": [
      "api-transcript",
      "correlation-ids",
      "db-assertions",
      "playwright-trace",
      "projection-event-log",
      "screenshot"
    ],
    "requiredChecks": [
      "exception-first",
      "detail-context-retention",
      "retryable-vs-terminal",
      "partial-action-result"
    ],
    "missingScenarioKinds": [],
    "missingTags": [],
    "missingEvidence": [],
    "complete": true
  },
  "T07": {
    "code": "T07",
    "type": "reconcile",
    "canonicalScenarioIds": [
      "scenario.common.reconcile.grace-period",
      "scenario.common.reconcile.mismatch-recovery"
    ],
    "scenarioKinds": [
      "e2e",
      "integration"
    ],
    "tags": [
      "context-retention",
      "eventual-consistency",
      "golden-screen",
      "mismatch-filter",
      "reconcile",
      "recovery"
    ],
    "evidence": [
      "api-transcript",
      "clock-snapshot",
      "db-assertions",
      "playwright-trace",
      "screenshot"
    ],
    "requiredChecks": [
      "mismatch-only-filter",
      "grace-period",
      "resolution-retry",
      "comparison-context"
    ],
    "missingScenarioKinds": [],
    "missingTags": [],
    "missingEvidence": [],
    "complete": true
  },
  "T08": {
    "code": "T08",
    "type": "import",
    "canonicalScenarioIds": [
      "scenario.oms.order-import.partial"
    ],
    "scenarioKinds": [
      "e2e"
    ],
    "tags": [
      "excel",
      "job",
      "mapping",
      "partial-success",
      "staging"
    ],
    "evidence": [
      "api-transcript",
      "db-assertions",
      "error-workbook-metadata",
      "import-session-snapshot",
      "playwright-trace",
      "problem-json"
    ],
    "requiredChecks": [
      "mapping-isolation",
      "validation-download",
      "commit-confirm",
      "job-refresh-recovery"
    ],
    "missingScenarioKinds": [],
    "missingTags": [],
    "missingEvidence": [],
    "complete": true
  },
  "T09": {
    "code": "T09",
    "type": "wms-mobile",
    "canonicalScenarioIds": [
      "scenario.wms.picking.idempotent-replay",
      "scenario.wms.picking.wrong-item"
    ],
    "scenarioKinds": [
      "e2e"
    ],
    "tags": [
      "business-error",
      "golden-screen",
      "idempotency",
      "network",
      "retry-policy",
      "scanner"
    ],
    "evidence": [
      "api-transcript",
      "db-assertions",
      "playwright-trace",
      "scanner-event-log"
    ],
    "requiredChecks": [
      "scan-normalization",
      "server-before-success",
      "response-loss-replay",
      "wrong-item-no-retry"
    ],
    "missingScenarioKinds": [],
    "missingTags": [],
    "missingEvidence": [],
    "complete": true
  }
} as const
