[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6K2HXE378FXZXN3SBWCZP4Z":3,"skill-same:01M6K2HXE378FXZXN3SBWCZP4Z":116},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":51,"commitSha":52,"skillDirectory":53,"forksCount":54,"repositoryHtmlUrl":55,"repositoryHomepageUrl":6,"ownerHtmlUrl":56,"ownerBlogUrl":57,"ownerDescription":58,"updatedAt":59,"install":60,"resources":73},"01M6K2HXE378FXZXN3SBWCZP4Z","minipower-frontend-form-react",null,"Form theo kit @platform\u002Fcore — Zod schema + *FormDefaultValues + map entity→form ở validation\u002F, hook use{Feature}Form (react-hook-form + zodResolver, mode onChange), component form chỉ có trường nhận register\u002Fcontrol\u002Ferrors, Controller cho FieldSelect\u002FSearchableSelect\u002FKitDatePicker\u002FToggleSwitch\u002FPasswordInput, submit qua handleAction + notify. Dùng khi thêm form tạo\u002Fsửa, thêm validation hoặc trường bắt buộc, chọn ngày \u002F chọn bản ghi liên kết, form trong dialog, hoặc form sửa không nạp dữ liệu cũ.","hoangnh2412\u002Fminipower","hoangnh2412","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F9604921?v=4","01M6K2685NFX1C55B4TR54NT7S","Hoàng Nguyễn","01M6K268AEV8J57BMZJEKCJNZE",7,"MIT","https:\u002F\u002Fgithub.com\u002Fhoangnh2412\u002Fminipower\u002Fblob\u002Fmain\u002Fsrc\u002Ffrontend\u002Fskills\u002Fminipower-frontend-form-react\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"react","minipower frontend form react","form","frontend","feature","mode","khi","kit","errors","core","register","submit","controller","platform","notify","map","schema","use","dialog","zod","2026-11-10 10:12:30",false,"---\nname: minipower-frontend-form-react\ndescription: Form theo kit @platform\u002Fcore — Zod schema + *FormDefaultValues + map entity→form ở validation\u002F, hook use{Feature}Form (react-hook-form + zodResolver, mode onChange), component form chỉ có trường nhận register\u002Fcontrol\u002Ferrors, Controller cho FieldSelect\u002FSearchableSelect\u002FKitDatePicker\u002FToggleSwitch\u002FPasswordInput, submit qua handleAction + notify. Dùng khi thêm form tạo\u002Fsửa, thêm validation hoặc trường bắt buộc, chọn ngày \u002F chọn bản ghi liên kết, form trong dialog, hoặc form sửa không nạp dữ liệu cũ.\nmetadata:\n  workflow: github\n---\n\n# Form (@platform\u002Fcore) — Orchestrator\n\nSkill sở hữu ba mảnh của một form: **schema** (`validation\u002F`) · **hook** (`hooks\u002Fuse{Feature}Form`) · **component trường** (`components\u002F{Feature}Form`). Ai submit, gọi API nào, đi đâu sau khi lưu — thuộc page \u002F dialog ([crud](..\u002Fminipower-frontend-crud-react\u002FSKILL.md)).\n\nHướng dẫn người: [README.md](README.md).\n\n## Khi nào dùng workflow nào\n\n| Tình huống | Workflow |\n|---|---|\n| Thêm form mới hoặc thêm trường vào form có sẵn | [workflows\u002Fadd-form.md](workflows\u002Fadd-form.md) |\n| Trường là select \u002F chọn bản ghi \u002F ngày \u002F giờ \u002F bật-tắt \u002F mật khẩu | [reference\u002Fcontrols.md](reference\u002Fcontrols.md) |\n\n## Luồng một form\n\n```text\nvalidation\u002F{feature}.ts   schema Zod · {Feature}FormData = z.infer · {feature}FormDefaultValues · to{Feature}FormValues(entity)\n        │\nhooks\u002Fuse{Feature}Form    useForm({ resolver: zodResolver(schema), mode: 'onChange', defaultValues })\n        │  register · control · errors\ncomponents\u002F{Feature}Form  chỉ trường + lỗi — KHÔNG submit, KHÔNG gọi API\n        │\npage \u002F dialog             handleSubmit(data ⇒ handleAction({ defaultSubmit: map form → payload → call* }))\n```\n\n## Quy tắc cốt lõi\n\n- **Ràng buộc khớp backend.** `min`\u002F`max`\u002Fbắt buộc lấy từ DOC-12 \u002F DOC-11 — form cho qua mà API trả 400 là lỗi của schema. Thiếu số liệu ⇒ hỏi, đừng tự đặt.\n- **Message lỗi tiếng Việt ngay trong schema** — hiện thẳng dưới trường, không dịch lại ở component.\n- **Kiểu form ≠ kiểu payload.** Map tường minh trong `defaultSubmit` (sửa thường không gửi `status`); map ngược bằng `to{Feature}FormValues`.\n- **Ô tuỳ chọn trống → `null`** (`setValueAs`) — backend .NET nhận `null`, không nhận `''`.\n- **Input gốc dùng `register`; control khác bọc `Controller`** — đúng giá trị dây của control ([reference\u002Fcontrols.md](reference\u002Fcontrols.md)). Ngày không giờ giữ chuỗi `'YYYY-MM-DD'`.\n- **Sửa: nạp dữ liệu rồi `reset`.** `defaultValues` của `useForm` chỉ đọc lần đầu — dữ liệu về sau phải `reset({ ...defaults, ...values })`. Tham chiếu `defaultValues` truyền vào page phải **ổn định**, không thì form reset mỗi lần render.\n- **Form trong dialog dùng MỘT instance** — `reset(defaults)` khi mở tạo, `reset(to{Feature}FormValues(item))` khi mở sửa.\n- **Submit**: `\u003Cform noValidate>`, nút `disabled={isSubmitting}`, lỗi API ⇒ `notify.error(getErrorMessage(error, …))`.\n\n## Templates\n\nPlaceholder: [architecture § Placeholder](..\u002Fminipower-frontend-architecture-react\u002FSKILL.md#placeholder-trong-template).\n\n| Template | Đích |\n|---|---|\n| [templates\u002Fvalidation\u002F{feature}.ts](templates\u002Fvalidation\u002F{feature}.ts) | `src\u002Ffeatures\u002F{feature}\u002Fvalidation\u002F{feature}.ts` |\n| [templates\u002Fvalidation\u002Findex.ts](templates\u002Fvalidation\u002Findex.ts) | `validation\u002Findex.ts` |\n| [templates\u002Fhooks\u002Fuse{Feature}Form.ts](templates\u002Fhooks\u002Fuse{Feature}Form.ts) | `hooks\u002Fuse{Feature}Form.ts` |\n| [templates\u002Fhooks\u002Findex.ts](templates\u002Fhooks\u002Findex.ts) | `hooks\u002Findex.ts` |\n| [templates\u002Fcomponents\u002F{Feature}Form\u002F](templates\u002Fcomponents\u002F{Feature}Form\u002F) | `components\u002F{Feature}Form\u002F` |\n\nClass trường (`fieldInputClass`…) từ `components\u002FfieldStyles.ts` — template của [convention](..\u002Fminipower-frontend-convention-react\u002Ftemplates\u002FfieldStyles.ts).\n\n## Tham chiếu\n\n- [reference\u002Fcontrols.md](reference\u002Fcontrols.md) — bảng control → giá trị dây → Zod → cách gắn, kèm đoạn mẫu. Không load mặc định.\n\n## Output bắt buộc\n\n- Schema, kiểu, mặc định, mapper ở `validation\u002F`; component form không import `services\u002F` (lint R6)\n- `npm run typecheck` + `npm run lint` xanh\n- Chạy thật: submit form trống hiện lỗi dưới từng trường bắt buộc; mở form sửa thấy dữ liệu cũ; lưu xong có toast\n- Code theo [minipower-frontend-convention-react](..\u002Fminipower-frontend-convention-react\u002FSKILL.md); file đặt đúng folder theo [minipower-frontend-architecture-react](..\u002Fminipower-frontend-architecture-react\u002FSKILL.md)\n\n## Liên quan\n\n- Page \u002F dialog sở hữu submit: [minipower-frontend-crud-react](..\u002Fminipower-frontend-crud-react\u002FREADME.md)\n- Kiểu payload theo DOC-12: [minipower-frontend-api-react](..\u002Fminipower-frontend-api-react\u002FREADME.md)\n","# Form (@platform\u002Fcore) — Orchestrator\n\nSkill sở hữu ba mảnh của một form: **schema** (`validation\u002F`) · **hook** (`hooks\u002Fuse{Feature}Form`) · **component trường** (`components\u002F{Feature}Form`). Ai submit, gọi API nào, đi đâu sau khi lưu — thuộc page \u002F dialog ([crud](..\u002Fminipower-frontend-crud-react\u002FSKILL.md)).\n\nHướng dẫn người: [README.md](README.md).\n\n## Khi nào dùng workflow nào\n\n| Tình huống | Workflow |\n|---|---|\n| Thêm form mới hoặc thêm trường vào form có sẵn | [workflows\u002Fadd-form.md](workflows\u002Fadd-form.md) |\n| Trường là select \u002F chọn bản ghi \u002F ngày \u002F giờ \u002F bật-tắt \u002F mật khẩu | [reference\u002Fcontrols.md](reference\u002Fcontrols.md) |\n\n## Luồng một form\n\n```text\nvalidation\u002F{feature}.ts   schema Zod · {Feature}FormData = z.infer · {feature}FormDefaultValues · to{Feature}FormValues(entity)\n        │\nhooks\u002Fuse{Feature}Form    useForm({ resolver: zodResolver(schema), mode: 'onChange', defaultValues })\n        │  register · control · errors\ncomponents\u002F{Feature}Form  chỉ trường + lỗi — KHÔNG submit, KHÔNG gọi API\n        │\npage \u002F dialog             handleSubmit(data ⇒ handleAction({ defaultSubmit: map form → payload → call* }))\n```\n\n## Quy tắc cốt lõi\n\n- **Ràng buộc khớp backend.** `min`\u002F`max`\u002Fbắt buộc lấy từ DOC-12 \u002F DOC-11 — form cho qua mà API trả 400 là lỗi của schema. Thiếu số liệu ⇒ hỏi, đừng tự đặt.\n- **Message lỗi tiếng Việt ngay trong schema** — hiện thẳng dưới trường, không dịch lại ở component.\n- **Kiểu form ≠ kiểu payload.** Map tường minh trong `defaultSubmit` (sửa thường không gửi `status`); map ngược bằng `to{Feature}FormValues`.\n- **Ô tuỳ chọn trống → `null`** (`setValueAs`) — backend .NET nhận `null`, không nhận `''`.\n- **Input gốc dùng `register`; control khác bọc `Controller`** — đúng giá trị dây của control ([reference\u002Fcontrols.md](reference\u002Fcontrols.md)). Ngày không giờ giữ chuỗi `'YYYY-MM-DD'`.\n- **Sửa: nạp dữ liệu rồi `reset`.** `defaultValues` của `useForm` chỉ đọc lần đầu — dữ liệu về sau phải `reset({ ...defaults, ...values })`. Tham chiếu `defaultValues` truyền vào page phải **ổn định**, không thì form reset mỗi lần render.\n- **Form trong dialog dùng MỘT instance** — `reset(defaults)` khi mở tạo, `reset(to{Feature}FormValues(item))` khi mở sửa.\n- **Submit**: `\u003Cform noValidate>`, nút `disabled={isSubmitting}`, lỗi API ⇒ `notify.error(getErrorMessage(error, …))`.\n\n## Templates\n\nPlaceholder: [architecture § Placeholder](..\u002Fminipower-frontend-architecture-react\u002FSKILL.md#placeholder-trong-template).\n\n| Template | Đích |\n|---|---|\n| [templates\u002Fvalidation\u002F{feature}.ts](templates\u002Fvalidation\u002F{feature}.ts) | `src\u002Ffeatures\u002F{feature}\u002Fvalidation\u002F{feature}.ts` |\n| [templates\u002Fvalidation\u002Findex.ts](templates\u002Fvalidation\u002Findex.ts) | `validation\u002Findex.ts` |\n| [templates\u002Fhooks\u002Fuse{Feature}Form.ts](templates\u002Fhooks\u002Fuse{Feature}Form.ts) | `hooks\u002Fuse{Feature}Form.ts` |\n| [templates\u002Fhooks\u002Findex.ts](templates\u002Fhooks\u002Findex.ts) | `hooks\u002Findex.ts` |\n| [templates\u002Fcomponents\u002F{Feature}Form\u002F](templates\u002Fcomponents\u002F{Feature}Form\u002F) | `components\u002F{Feature}Form\u002F` |\n\nClass trường (`fieldInputClass`…) từ `components\u002FfieldStyles.ts` — template của [convention](..\u002Fminipower-frontend-convention-react\u002Ftemplates\u002FfieldStyles.ts).\n\n## Tham chiếu\n\n- [reference\u002Fcontrols.md](reference\u002Fcontrols.md) — bảng control → giá trị dây → Zod → cách gắn, kèm đoạn mẫu. Không load mặc định.\n\n## Output bắt buộc\n\n- Schema, kiểu, mặc định, mapper ở `validation\u002F`; component form không import `services\u002F` (lint R6)\n- `npm run typecheck` + `npm run lint` xanh\n- Chạy thật: submit form trống hiện lỗi dưới từng trường bắt buộc; mở form sửa thấy dữ liệu cũ; lưu xong có toast\n- Code theo [minipower-frontend-convention-react](..\u002Fminipower-frontend-convention-react\u002FSKILL.md); file đặt đúng folder theo [minipower-frontend-architecture-react](..\u002Fminipower-frontend-architecture-react\u002FSKILL.md)\n\n## Liên quan\n\n- Page \u002F dialog sở hữu submit: [minipower-frontend-crud-react](..\u002Fminipower-frontend-crud-react\u002FREADME.md)\n- Kiểu payload theo DOC-12: [minipower-frontend-api-react](..\u002Fminipower-frontend-api-react\u002FREADME.md)\n",{"name":5,"metadata":49,"description":7},{"workflow":50},"github","main","6a33a408b13c0b55ce2c7c5558e6f239e9c091b2","src\u002Ffrontend\u002Fskills\u002Fminipower-frontend-form-react",0,"https:\u002F\u002Fgithub.com\u002Fhoangnh2412\u002Fminipower","https:\u002F\u002Fgithub.com\u002Fhoangnh2412","http:\u002F\u002Fhoangnh.com","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fhoangnh91\u002F","2026-11-09 04:22:29",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add hoangnh2412\u002Fminipower --skill minipower-frontend-form-react",{"tool":66,"command":67},"bunx","bunx skills add hoangnh2412\u002Fminipower --skill minipower-frontend-form-react",{"tool":69,"command":70},"pnpm","pnpm dlx skills add hoangnh2412\u002Fminipower --skill minipower-frontend-form-react","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fhoangnh2412\u002Fminipower\u002Fblob\u002Fmain\u002Fsrc\u002Ffrontend\u002Fskills\u002Fminipower-frontend-form-react\u002FSKILL.md",true,[74,80,84,90,96,100,104,108,112],{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"README.md","REFERENCE","参考文档",1739,"https:\u002F\u002Fgithub.com\u002Fhoangnh2412\u002Fminipower\u002Fblob\u002Fmain\u002Fsrc\u002Ffrontend\u002Fskills\u002Fminipower-frontend-form-react\u002FREADME.md",{"path":81,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":82,"sourceHtmlUrl":83},"reference\u002Fcontrols.md",5437,"https:\u002F\u002Fgithub.com\u002Fhoangnh2412\u002Fminipower\u002Fblob\u002Fmain\u002Fsrc\u002Ffrontend\u002Fskills\u002Fminipower-frontend-form-react\u002Freference\u002Fcontrols.md",{"path":85,"resourceType":86,"resourceTypeDesc":87,"sizeBytes":88,"sourceHtmlUrl":89},"templates\u002Fcomponents\u002F{Feature}Form\u002F{Feature}Form.tsx","OTHER","其他",3955,"https:\u002F\u002Fgithub.com\u002Fhoangnh2412\u002Fminipower\u002Fblob\u002Fmain\u002Fsrc\u002Ffrontend\u002Fskills\u002Fminipower-frontend-form-react\u002Ftemplates\u002Fcomponents\u002F{Feature}Form\u002F{Feature}Form.tsx",{"path":91,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":94,"sourceHtmlUrl":95},"templates\u002Fcomponents\u002F{Feature}Form\u002Findex.ts","SCRIPT","脚本",106,"https:\u002F\u002Fgithub.com\u002Fhoangnh2412\u002Fminipower\u002Fblob\u002Fmain\u002Fsrc\u002Ffrontend\u002Fskills\u002Fminipower-frontend-form-react\u002Ftemplates\u002Fcomponents\u002F{Feature}Form\u002Findex.ts",{"path":97,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":98,"sourceHtmlUrl":99},"templates\u002Fhooks\u002Findex.ts",169,"https:\u002F\u002Fgithub.com\u002Fhoangnh2412\u002Fminipower\u002Fblob\u002Fmain\u002Fsrc\u002Ffrontend\u002Fskills\u002Fminipower-frontend-form-react\u002Ftemplates\u002Fhooks\u002Findex.ts",{"path":101,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":102,"sourceHtmlUrl":103},"templates\u002Fhooks\u002Fuse{Feature}Form.ts",754,"https:\u002F\u002Fgithub.com\u002Fhoangnh2412\u002Fminipower\u002Fblob\u002Fmain\u002Fsrc\u002Ffrontend\u002Fskills\u002Fminipower-frontend-form-react\u002Ftemplates\u002Fhooks\u002Fuse{Feature}Form.ts",{"path":105,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":106,"sourceHtmlUrl":107},"templates\u002Fvalidation\u002F{feature}.ts",1302,"https:\u002F\u002Fgithub.com\u002Fhoangnh2412\u002Fminipower\u002Fblob\u002Fmain\u002Fsrc\u002Ffrontend\u002Fskills\u002Fminipower-frontend-form-react\u002Ftemplates\u002Fvalidation\u002F{feature}.ts",{"path":109,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":110,"sourceHtmlUrl":111},"templates\u002Fvalidation\u002Findex.ts",215,"https:\u002F\u002Fgithub.com\u002Fhoangnh2412\u002Fminipower\u002Fblob\u002Fmain\u002Fsrc\u002Ffrontend\u002Fskills\u002Fminipower-frontend-form-react\u002Ftemplates\u002Fvalidation\u002Findex.ts",{"path":113,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":114,"sourceHtmlUrl":115},"workflows\u002Fadd-form.md",4759,"https:\u002F\u002Fgithub.com\u002Fhoangnh2412\u002Fminipower\u002Fblob\u002Fmain\u002Fsrc\u002Ffrontend\u002Fskills\u002Fminipower-frontend-form-react\u002Fworkflows\u002Fadd-form.md",[117,140,158,171,185,193],{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":126,"publishedAt":44},"01M6K2MXJSPKZ79031YX0HB546","minipower-vcs-gitlab","Tra GitLab (search, issue, pipeline, MR), soạn MR\u002Fcomment, tạo MR và commit\u002Fpush sau L2. Dùng khi merge request, GitLab MCP, code_provider gitlab — không scaffold .NET, không force-push.","https:\u002F\u002Fgithub.com\u002Fhoangnh2412\u002Fminipower\u002Fblob\u002Fmain\u002Fsrc\u002Fvcs\u002Fskills\u002Fminipower-vcs-gitlab\u002FSKILL.md",[123],{"categoryNo":124,"categoryName":125,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[127,128,129,50,130,131,132,133,134,135,136,137,138,139,30],"gitlab","minipower vcs gitlab","MCP","commit","merge","scaffold","code","push","search","pipeline","issue","provider","l2",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":147,"publishedAt":44},"01M6K2MQXWTZWXG7PKARYT0RNY","minipower-toolbox-skill-author","Viết và soát skill lá-rời Minipower (minipower-{module}-{capability}) — chọn module bằng 3 câu hỏi ADR-022, dựng cây SKILL.md\u002FREADME.md\u002Fworkflows\u002Fproviders, đặt description kích hoạt được, cập nhật hub và test canh. Hỏi người xác nhận trước mọi quyết định, không tự chốt. Dùng khi tạo skill mới, thêm provider\u002Fpattern\u002Fworkflow, mở module mới, hoặc soát skill có sẵn lệch chuẩn.","https:\u002F\u002Fgithub.com\u002Fhoangnh2412\u002Fminipower\u002Fblob\u002Fmain\u002Fsrc\u002Ftoolbox\u002Fskills\u002Fminipower-toolbox-skill-author\u002FSKILL.md",[146],{"categoryNo":124,"categoryName":125,"taxonomyType":21,"taxonomyTypeDesc":22},[148,149,138,150,151,152,153,30,154,155,50,156,157],"minipower toolbox skill author","Providers","pattern","hub","README","module","adr","workflows","workflow","test",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":164,"publishedAt":44},"01M6K2MJD0DJNJA538148044K6","minipower-tasks-lark","Đọc, lọc, tìm, soạn nháp và ghi task Lark (tasklist \u002F task) theo L1–L3. Dùng khi việc trên Lark, sprint, tasklist, \"tìm task\", \"tạo task\", tasks_provider lark — không dùng cho tin nhắn nhóm hay wiki.","https:\u002F\u002Fgithub.com\u002Fhoangnh2412\u002Fminipower\u002Fblob\u002Fmain\u002Fsrc\u002Ftasks\u002Fskills\u002Fminipower-tasks-lark\u002FSKILL.md",[],[165,166,167,30,50,168,138,169,170],"tasks","lark","minipower tasks lark","wiki","task","sprint",{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":177,"publishedAt":44},"01M6K2ME2K0QBN64PQKSB2W3VX","minipower-support-registry","Rà registry DOC theo project_mode, nhắc owner thiếu ID hoặc chỗ lưu sai. Dùng khi doc-registry, thiếu DOC, rà soát tiêu chuẩn — không tự sửa FR, không init.","https:\u002F\u002Fgithub.com\u002Fhoangnh2412\u002Fminipower\u002Fblob\u002Fmain\u002Fsrc\u002Fsupport\u002Fskills\u002Fminipower-support-registry\u002FSKILL.md",[],[178,179,180,181,50,182,183,184,30,29],"minipower support registry","registry","support","id","init","doc","project",{"skillNo":186,"name":187,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":188,"categories":189,"keywords":190,"publishedAt":44},"01M6K2MB1B4C4AP9VCSRBAT83D","minipower-support-publish","https:\u002F\u002Fgithub.com\u002Fhoangnh2412\u002Fminipower\u002Fblob\u002Fmain\u002Fsrc\u002Fsupport\u002Fskills\u002Fminipower-support-publish\u002FSKILL.md",[],[191,192,180],"publish","minipower support publish",{"skillNo":194,"name":195,"nameZh":6,"description":196,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":197,"categories":198,"keywords":200,"publishedAt":44},"01M6K2M4Q4N1QHA0VGD58WFJNF","minipower-router","Phân loại intent Minipower rồi gợi ý đúng một pack nghề hoặc kênh. Dùng khi làm gì tiếp, chọn skill, dispatcher, không biết mở pack nào — không tự gọi MCP L3, không spawn agent.","https:\u002F\u002Fgithub.com\u002Fhoangnh2412\u002Fminipower\u002Fblob\u002Fmain\u002Fsrc\u002Frouter\u002Fskills\u002Fminipower-router\u002FSKILL.md",[199],{"categoryNo":124,"categoryName":125,"taxonomyType":21,"taxonomyTypeDesc":22},[201,202,50,203,204,205,206,30,207,129],"minipower router","router","dispatcher","spawn","intent","spawn agent","pack"]