[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CBDKP4YEY4R06EXPDC5EGK":3,"skill-same:01M6CBDKP4YEY4R06EXPDC5EGK":61},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":26,"linkOnly":27,"markdownContent":28,"markdownBody":28,"frontMatter":29,"refName":30,"commitSha":31,"skillDirectory":32,"forksCount":13,"repositoryHtmlUrl":33,"repositoryHomepageUrl":6,"ownerHtmlUrl":34,"ownerBlogUrl":6,"ownerDescription":35,"updatedAt":36,"install":37,"resources":50},"01M6CBDKP4YEY4R06EXPDC5EGK","32-ui-container-id",null,"devwinsoft\u002Fdevian","devwinsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F22570160?v=4","01M6C6RR8W05NH8NPKQNCE3Q72","maoshy","01M6C6RRDJ5TJJCZXRTY801YDH",0,"MIT","https:\u002F\u002Fgithub.com\u002Fdevwinsoft\u002Fdevian\u002Fblob\u002Fmain\u002Fskills\u002Fdevian-unity\u002F23-ui-package\u002F10-base-system\u002F32-ui-container-id\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[23,24,25],"ui","container","32 ui container id","2026-11-10 10:12:30",false,"# 32-ui-container-id\n\nStatus: ACTIVE\nAppliesTo: v1\nType: Component Specification\n\n## 목적\n\nUIBaseContainer 프리팹을 참조하기 위한 string wrapper ID 타입.\n\n## 파일 위치 (SSOT)\n\n- Runtime: `com.devian.foundation\u002FSamples~\u002FUIPackage\u002FRuntime\u002FBase\u002FUI_CONTAINER_ID.cs`\n- Editor Selector: `com.devian.foundation\u002FSamples~\u002FUIPackage\u002FEditor\u002FUIContainerIdSelector.cs`\n- Editor Drawer: `com.devian.foundation\u002FSamples~\u002FUIPackage\u002FEditor\u002FUI_CONTAINER_ID_Drawer.cs`\n\n## String Wrapper 패턴\n\nUI_CELL_ID와 동일한 구조:\n```csharp\n[Serializable]\npublic sealed class UI_CONTAINER_ID\n{\n    public string Value;\n    public bool IsValid => !string.IsNullOrEmpty(Value);\n\n    \u002F\u002F implicit operators for string 호환\n}\n```\n\n## Selector\u002FDrawer 규약 (AssetId Base 준수)\n\n### 필수 규칙\n- **Apply\u002FCreate 버튼 금지**\n- **ShowUtility() 필수**\n- **Selector 캐싱 금지**\n- **클릭 즉시 적용 + 창 자동 닫기**\n\n### SearchDir 공급\n- UISettings.GetSearchDir(`\"UI_CONTAINER_ID\"`)로 조회\n- 실패\u002F폴더 없음이면 `\"Assets\"` fallback\n\n### 스캔 대상\n- UIBaseContainer 컴포넌트가 있는 Prefab 목록을 SearchDir에서 스캔\n- `BaseEditorAssetIdSelector\u003CUIBaseContainer>` 재활용 (AssetManager.FindPrefabs)\n- `prefab.name`을 ID 값으로 사용\n- `@` prefix 이름 제외\n- case-insensitive 중복 name은 에러 로그 후 스킵\n\n## UISettings 등록\n\n```\nentries[UI_CONTAINER_ID] = \"Assets\u002FBundles\u002FUIContainers\"\n```\n\n## Editor 구현\n\n### Selector 클래스\n```csharp\npublic sealed class UIContainerIdSelector : BaseEditorAssetIdSelector\u003CUIBaseContainer>\n{\n    protected override string GroupKey => \"UI_CONTAINER_ID\";\n    protected override string DisplayTypeName => \"UI_CONTAINER_ID\";\n}\n```\n\n### Drawer 클래스\n```csharp\n[CustomPropertyDrawer(typeof(UI_CONTAINER_ID))]\npublic sealed class UI_CONTAINER_ID_Drawer : BaseEditorID_Drawer\u003CUIContainerIdSelector>\n{\n    \u002F\u002F ShowUtility()로 창 표시\n}\n```\n\n## 금지 사항\n\n- Selector 캐싱 금지 (항상 CreateInstance)\n- Apply 버튼 금지 (SelectionGrid 클릭 즉시 적용\u002F닫기)\n- 런타임에서 AssetDatabase\u002FResources.Load 금지 (AssetManager 캐시만)\n\n## Reference\n\n- Parent: `skills\u002Fdevian-unity\u002F23-ui-package\u002FSKILL.md`\n- AssetId Base: `skills\u002Fdevian-unity\u002F20-common-package\u002F12-asset-id\u002FSKILL.md`\n- UIBaseContainer: `skills\u002Fdevian-unity\u002F23-ui-package\u002F10-base-system\u002F11-ui-canvas-system\u002FSKILL.md`\n",{},"main","8cb5bd877a3a7004867d2f55697cb9e4ff2f1734","skills\u002Fdevian-unity\u002F23-ui-package\u002F10-base-system\u002F32-ui-container-id","https:\u002F\u002Fgithub.com\u002Fdevwinsoft\u002Fdevian","https:\u002F\u002Fgithub.com\u002Fdevwinsoft","Kim Hyong Joon","2026-04-12 18:44:10",{"source":7,"skillName":5,"commands":38,"prompt":48,"zipAvailable":49},[39,42,45],{"tool":40,"command":41},"npx","npx skills add devwinsoft\u002Fdevian --skill 32-ui-container-id",{"tool":43,"command":44},"bunx","bunx skills add devwinsoft\u002Fdevian --skill 32-ui-container-id",{"tool":46,"command":47},"pnpm","pnpm dlx skills add devwinsoft\u002Fdevian --skill 32-ui-container-id","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdevwinsoft\u002Fdevian\u002Fblob\u002Fmain\u002Fskills\u002Fdevian-unity\u002F23-ui-package\u002F10-base-system\u002F32-ui-container-id\u002FSKILL.md",true,[51,57],{"path":52,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":55,"sourceHtmlUrl":56},"SKILL.agent.md","REFERENCE","参考文档",2581,"https:\u002F\u002Fgithub.com\u002FBlackBeltTechnology\u002Fpi-agent-dashboard\u002Fblob\u002Fdevelop\u002Fpackages\u002Ffrontend-patterns\u002F.pi\u002Fskills\u002Fresponsive-mobile-first\u002FSKILL.agent.md",{"path":58,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":59,"sourceHtmlUrl":60},"SKILL.md.AGENTS.md",367,"https:\u002F\u002Fgithub.com\u002FBlackBeltTechnology\u002Fpi-agent-dashboard\u002Fblob\u002Fdevelop\u002Fpackages\u002Ffrontend-patterns\u002F.pi\u002Fskills\u002Fresponsive-mobile-first\u002FSKILL.md.AGENTS.md",[62,68,76,84,93,100],{"skillNo":63,"name":64,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":67,"publishedAt":26},"01M6CBX3K2JJV38ANHVGCAT8A0","devian","https:\u002F\u002Fgithub.com\u002Fdevwinsoft\u002Fdevian\u002Fblob\u002Fmain\u002Fskills\u002Fdevian\u002FSKILL.md",[],[64],{"skillNo":69,"name":70,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":26},"01M6CBX210BFMM8AMN770J9WY8","90-project-archive","https:\u002F\u002Fgithub.com\u002Fdevwinsoft\u002Fdevian\u002Fblob\u002Fmain\u002Fskills\u002Fdevian\u002F80-tools\u002F90-project-archive\u002FSKILL.md",[],[74,75],"archive","90 project archive",{"skillNo":77,"name":78,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":26},"01M6CBWZSGRR9R3YJZB3177667","30-env-management","https:\u002F\u002Fgithub.com\u002Fdevwinsoft\u002Fdevian\u002Fblob\u002Fmain\u002Fskills\u002Fdevian\u002F80-tools\u002F30-env-management\u002FSKILL.md",[],[82,83],"management","30 env management",{"skillNo":85,"name":86,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":26},"01M6CBWYD3TGWBQV7V35551THF","19-page-push-send","https:\u002F\u002Fgithub.com\u002Fdevwinsoft\u002Fdevian\u002Fblob\u002Fmain\u002Fskills\u002Fdevian\u002F80-tools\u002F20-operation\u002F19-page-push-send\u002FSKILL.md",[],[90,91,92],"push","page","19 page push send",{"skillNo":94,"name":95,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":26},"01M6CBWWRQ05A7604GHJKTPJTF","18-page-savedata","https:\u002F\u002Fgithub.com\u002Fdevwinsoft\u002Fdevian\u002Fblob\u002Fmain\u002Fskills\u002Fdevian\u002F80-tools\u002F20-operation\u002F18-page-savedata\u002FSKILL.md",[],[91,99],"18 page savedata",{"skillNo":101,"name":102,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":26},"01M6CBWVH4S2VF1V7B2GBTESCT","17-page-deobfuscate","https:\u002F\u002Fgithub.com\u002Fdevwinsoft\u002Fdevian\u002Fblob\u002Fmain\u002Fskills\u002Fdevian\u002F80-tools\u002F20-operation\u002F17-page-deobfuscate\u002FSKILL.md",[],[91,106],"17 page deobfuscate"]