V13-FE-011: finalize search list layout slice
This commit is contained in:
@@ -0,0 +1,608 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"contractVersion": "1.1.0",
|
||||
"sourceSha256": "97ab56bc54149f32ea16577369c4ec29579b516ea464cb42010b31e4dc413e60",
|
||||
"recipes": [
|
||||
{
|
||||
"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"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"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"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"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"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"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"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"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"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"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"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"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"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"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"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"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"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user