원클릭으로
extract
Identify repeated patterns and consolidate them into $elements and shared tokens for systematic reuse
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Identify repeated patterns and consolidate them into $elements and shared tokens for systematic reuse
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Add purposeful motion to a UXSpec — $animations, onEnter choreography, and timing tokens
Improve every piece of text in a UXSpec — descriptions, labels, error messages, empty states, and loading copy
Collect design context, audience, intent, and requirements before writing any UXSpec JSON
Strengthen a UXSpec against real-world conditions — overflow, missing data, network failures, and accessibility
Run a systematic quality audit on a completed UXSpec — design intent, consistency, accessibility, and state coverage
Walk through building a UXSpec (.uxspec.json) file — gathering requirements, making design decisions about layout/typography/color/motion/accessibility, designing the state machine, defining visuals, then compiling and verifying the output.
| name | extract |
| description | Identify repeated patterns and consolidate them into $elements and shared tokens for systematic reuse |
Identify repeated patterns in a spec and consolidate them into $elements and shared tokens. Systematic reuse, not premature abstraction.
After visuals are defined and you notice repetition across states. When multiple states share similar elements (form fields, action buttons, status banners). When the spec has grown and consistency is drifting.
$elements)Look for patterns that appear in 2+ states with the same structure but different content:
Before:
"idle": {
"$visual": {
"slots": {
"body": [
{ "type": "group", "layout": "stack-v", "gap": "{spacing.xs}", "children": [
{ "type": "text", "content": "Email" },
{ "type": "input", "name": "email", "binding": { "inputType": "email" } }
]},
{ "type": "group", "layout": "stack-v", "gap": "{spacing.xs}", "children": [
{ "type": "text", "content": "Password" },
{ "type": "input", "name": "password", "binding": { "inputType": "password" } }
]}
]
}
}
}
After:
"$elements": {
"form-field": {
"type": "group", "layout": "stack-v", "gap": "{spacing.xs}",
"params": ["label", "name", "inputType"],
"children": [
{ "type": "text", "content": { "$bind": "label" } },
{ "type": "input", "name": { "$bind": "name" }, "binding": { "inputType": { "$bind": "inputType" } } }
]
}
}
Referenced as: { "$ref": "form-field", "label": "Email", "name": "email", "inputType": "email" }
Look for hard-coded values that should be tokens:
$tokens.color$tokens.font.sizestatus-banner element with variant and message params.variant, label, action params.After extraction:
UNKNOWN_ELEMENT_REFERENCE means a $ref name is wrong.$ref passes the right params.Extract for consistency, not for abstraction. Three similar lines of spec are better than a premature $element that only one state uses. But three states with identical form-field patterns? That's a missing element.