[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EGQR3MSD7W4WBVB35JDJZC":3,"skill-same:01M6EGQR3MSD7W4WBVB35JDJZC":57},{"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":27,"publishedAt":30,"linkOnly":31,"markdownContent":32,"markdownBody":32,"frontMatter":33,"refName":34,"commitSha":35,"skillDirectory":36,"forksCount":37,"repositoryHtmlUrl":38,"repositoryHomepageUrl":39,"ownerHtmlUrl":40,"ownerBlogUrl":6,"ownerDescription":41,"updatedAt":42,"install":43,"resources":56},"01M6EGQR3MSD7W4WBVB35JDJZC","wp-abilities-api",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FWordPress\u002Fagent-skills\u002Fwp-abilities-api\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[28,29],"api","wp abilities api","2026-11-10 10:12:30",false,"# WP Abilities API\n\n## When to use\n\nUse this skill when the task involves:\n\n- registering abilities or ability categories in PHP,\n- exposing abilities to clients via REST (`wp-abilities\u002Fv1`),\n- consuming abilities in JS (notably `@wordpress\u002Fabilities`),\n- diagnosing “ability doesn’t show up” \u002F “client can’t see ability” \u002F “REST returns empty”.\n\n## Inputs required\n\n- Repo root (run `wp-project-triage` first if you haven’t).\n- Target WordPress version(s) and whether this is WP core or a plugin\u002Ftheme.\n- Where the change should live (plugin vs theme vs mu-plugin).\n\n## Procedure\n\n### 1) Confirm availability and version constraints\n\n- If this is WP core work, check `signals.isWpCoreCheckout` and `versions.wordpress.core`.\n- If the project targets WP \u003C 6.9, you may need the Abilities API plugin\u002Fpackage rather than relying on core.\n\n### 2) Find existing Abilities usage\n\nSearch for these in the repo:\n\n- `wp_register_ability(`\n- `wp_register_ability_category(`\n- `wp_abilities_api_init`\n- `wp_abilities_api_categories_init`\n- `wp-abilities\u002Fv1`\n- `@wordpress\u002Fabilities`\n\nIf none exist, decide whether you’re introducing Abilities API fresh (new registrations + client consumption) or only consuming.\n\n### 3) Register categories (optional)\n\nIf you need a logical grouping, register an ability category early (see `references\u002Fphp-registration.md`).\n\n### 4) Register abilities (PHP)\n\nImplement the ability in PHP registration with:\n\n- stable `id` (namespaced),\n- `label`\u002F`description`,\n- `category`,\n- `meta`:\n  - add `readonly: true` when the ability is informational,\n  - set `show_in_rest: true` for abilities you want visible to clients.\n\nUse the documented init hooks for Abilities API registration so they load at the right time (see `references\u002Fphp-registration.md`).\n\n### 5) Confirm REST exposure\n\n- Verify the REST endpoints exist and return expected results (see `references\u002Frest-api.md`).\n- If the client still can’t see the ability, confirm `meta.show_in_rest` is enabled and you’re querying the right endpoint.\n\n### 6) Consume from JS (if needed)\n\n- Prefer `@wordpress\u002Fabilities` APIs for client-side access and checks.\n- Ensure build tooling includes the dependency and the project’s build pipeline bundles it.\n\n## Verification\n\n- `wp-project-triage` indicates `signals.usesAbilitiesApi: true` after your change (if applicable).\n- REST check (in a WP environment): endpoints under `wp-abilities\u002Fv1` return your ability and category when expected.\n- If the repo has tests, add\u002Fupdate coverage near:\n  - PHP: ability registration and meta exposure\n  - JS: ability consumption and UI gating\n\n## Failure modes \u002F debugging\n\n- Ability never appears:\n  - registration code not running (wrong hook \u002F file not loaded),\n  - missing `meta.show_in_rest`,\n  - incorrect category\u002FID mismatch.\n- REST shows ability but JS doesn’t:\n  - wrong REST base\u002Fnamespace,\n  - JS dependency not bundled,\n  - caching (object\u002Fpage caches) masking changes.\n\n## Escalation\n\n- If you’re uncertain about version support, confirm target WP core versions and whether Abilities API is expected from core or as a plugin.\n- For canonical details, consult:\n  - `references\u002Frest-api.md`\n  - `references\u002Fphp-registration.md`\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002FWordPress\u002Fagent-skills\u002Fwp-abilities-api",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":44,"prompt":54,"zipAvailable":55},[45,48,51],{"tool":46,"command":47},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill wp-abilities-api",{"tool":49,"command":50},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill wp-abilities-api",{"tool":52,"command":53},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill wp-abilities-api","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FWordPress\u002Fagent-skills\u002Fwp-abilities-api\u002FSKILL.md",true,[],[58,70,80,89,95,102],{"skillNo":59,"name":60,"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":61,"categories":62,"keywords":66,"publishedAt":30},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[63],{"categoryNo":64,"categoryName":65,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[67,68,69],"model","model hierarchy","model hierarchy skill",{"skillNo":71,"name":72,"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":73,"categories":74,"keywords":76,"publishedAt":30},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[75],{"categoryNo":64,"categoryName":65,"taxonomyType":20,"taxonomyTypeDesc":21},[77,78,79],"MCP","zoom","zoom mcp",{"skillNo":81,"name":82,"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":83,"categories":84,"keywords":85,"publishedAt":30},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[86,87,88,78],"sdk","zoom apps sdk","apps",{"skillNo":90,"name":91,"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":92,"categories":93,"keywords":94,"publishedAt":30},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[91],{"skillNo":96,"name":97,"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":98,"categories":99,"keywords":101,"publishedAt":30},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[100],{"categoryNo":64,"categoryName":65,"taxonomyType":20,"taxonomyTypeDesc":21},[97],{"skillNo":103,"name":104,"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":105,"categories":106,"keywords":107,"publishedAt":30},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[104]]