[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KM1HJ36BX9QYYAF9PVBKP9":3,"skill-same:01M6KM1HJ36BX9QYYAF9PVBKP9":72},{"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":18,"publishedAt":40,"linkOnly":41,"markdownContent":42,"markdownBody":43,"frontMatter":44,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":6,"ownerHtmlUrl":55,"ownerBlogUrl":56,"ownerDescription":6,"updatedAt":57,"install":58,"resources":71},"01M6KM1HJ36BX9QYYAF9PVBKP9","speckit-converge",null,"Assess the current codebase against the feature's spec, plan, and tasks, then append any remaining unbuilt work as new tasks to tasks.md so implement can complete it.","AI-native-Systems-Research\u002Fai-native-storage-certus","AI-native-Systems-Research","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F270755458?v=4","01M6KKQWSJX0D4X33E0KKSR4WM","AI-native Systems Research","01M6KKQWXTKR6MYVQMPKVJ5WD5",3,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FAI-native-Systems-Research\u002Fai-native-storage-certus\u002Fblob\u002Funstable\u002Fapps\u002Fworkload-generator\u002F.claude\u002Fskills\u002Fspeckit-converge\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"converge","speckit converge","speckit","commands","new","true","kit","assess","complete","false","as","feature","directory","project","structure","append","work","plan","specify","tasks","project structure","2026-11-10 10:12:30",false,"---\nname: Docker Hub Automation\ndescription: \"Automate Docker Hub operations -- manage organizations, repositories, teams, members, and webhooks via the Composio MCP integration.\"\nrequires:\n  mcp:\n    - rube\n---\n\n# Docker Hub Automation\n\nAutomate your Docker Hub workflows -- create and manage organizations, repositories, teams, add members, set up image push webhooks, and list container images.\n\n**Toolkit docs:** [composio.dev\u002Ftoolkits\u002Fdocker_hub](https:\u002F\u002Fcomposio.dev\u002Ftoolkits\u002Fdocker_hub)\n\n---\n\n## Setup\n\n1. Add the Composio MCP server to your client: `https:\u002F\u002Frube.app\u002Fmcp`\n2. Connect your Docker Hub account when prompted (JWT\u002Ftoken authentication)\n3. Start using the workflows below\n\n---\n\n## Core Workflows\n\n### 1. List Organizations\n\nUse `DOCKER_HUB_LIST_ORGANIZATIONS` to discover which organizations the authenticated user belongs to.\n\n```\nTool: DOCKER_HUB_LIST_ORGANIZATIONS\nInputs:\n  - page: integer (1-indexed, default 1)\n  - page_size: integer (1-100, default 25)\n```\n\n### 2. Create an Organization\n\nUse `DOCKER_HUB_CREATE_ORGANIZATION` to programmatically create a new Docker Hub organization.\n\n```\nTool: DOCKER_HUB_CREATE_ORGANIZATION\nInputs:\n  - orgname: string (required) -- lowercase, letters\u002Fnumbers\u002F._- only, min 2 chars\n  - company: string (optional) -- company name associated with the org\n```\n\n**Note:** Requires JWT authentication obtained via `\u002Fv2\u002Fusers\u002Flogin` and may have restricted access.\n\n### 3. Get Organization Details and Repositories\n\nUse `DOCKER_HUB_GET_ORGANIZATION` to retrieve namespace info and its repositories. Works with any public namespace.\n\n```\nTool: DOCKER_HUB_GET_ORGANIZATION\nInputs:\n  - organization: string (required) -- e.g., \"docker\", \"bitnami\", \"library\"\n```\n\n### 4. Create a Repository\n\nUse `DOCKER_HUB_CREATE_REPOSITORY` to create public or private repositories under a namespace.\n\n```\nTool: DOCKER_HUB_CREATE_REPOSITORY\nInputs:\n  - namespace: string (required) -- Docker Hub username or org name\n  - name: string (required) -- lowercase; letters, numbers, ._- allowed\n  - description: string (optional) -- max 100 characters\n  - full_description: string (optional) -- Markdown README content\n  - is_private: boolean (default false) -- private repos require paid plan\n```\n\n### 5. List Repositories with Filtering\n\nUse `DOCKER_HUB_LIST_REPOSITORIES` to enumerate repos within a namespace with sorting and content-type filtering.\n\n```\nTool: DOCKER_HUB_LIST_REPOSITORIES\nInputs:\n  - namespace: string (required) -- e.g., \"library\", \"myorg\"\n  - ordering: \"name\" | \"last_updated\" | \"pull_count\" (prefix with - for descending)\n  - page: integer (default 1)\n  - page_size: integer (1-100, default 25)\n  - content_types: string (comma-separated, e.g., \"image,artifact\")\n```\n\n### 6. Manage Teams, Members, and Webhooks\n\nUse `DOCKER_HUB_LIST_TEAMS` to list teams within an org, `DOCKER_HUB_ADD_ORG_MEMBER` to invite users, and `DOCKER_HUB_CREATE_WEBHOOK` for push notifications.\n\n```\nTool: DOCKER_HUB_LIST_TEAMS\n  - Lists all teams\u002Fgroups within a Docker Hub organization\n\nTool: DOCKER_HUB_ADD_ORG_MEMBER\n  - Invite a user to join an organization by Docker ID or email\n  - Requires owner or admin permissions\n\nTool: DOCKER_HUB_CREATE_WEBHOOK\n  - Create a webhook on a repository for image push notifications\n  - Two-step process: create webhook, then add hook URL\n  - Requires admin permissions on the repository\n```\n\n---\n\n## Known Pitfalls\n\n| Pitfall | Detail |\n|---------|--------|\n| JWT authentication | `DOCKER_HUB_CREATE_ORGANIZATION` requires JWT auth from `\u002Fv2\u002Fusers\u002Flogin` -- standard API tokens may not suffice. |\n| Private repo limits | Creating private repos (`is_private: true`) requires a paid Docker Hub plan. |\n| Org name constraints | Organization names must be lowercase, at least 2 characters, containing only letters, numbers, `.`, `_`, or `-`. |\n| Webhook two-step | `DOCKER_HUB_CREATE_WEBHOOK` is a two-step process: first create the webhook with a name, then add a hook URL to it. |\n| Pagination | All list endpoints use page-based pagination -- iterate pages until results are exhausted. |\n\n---\n\n## Quick Reference\n\n| Tool Slug | Description |\n|-----------|-------------|\n| `DOCKER_HUB_LIST_ORGANIZATIONS` | List orgs the user belongs to |\n| `DOCKER_HUB_CREATE_ORGANIZATION` | Create a new Docker Hub organization |\n| `DOCKER_HUB_GET_ORGANIZATION` | Get org details and repository list |\n| `DOCKER_HUB_CREATE_REPOSITORY` | Create a repository under a namespace |\n| `DOCKER_HUB_LIST_REPOSITORIES` | List repos with filtering and sorting |\n| `DOCKER_HUB_LIST_TEAMS` | List teams\u002Fgroups within an org |\n| `DOCKER_HUB_ADD_ORG_MEMBER` | Invite a user to an organization |\n| `DOCKER_HUB_CREATE_WEBHOOK` | Create push-notification webhook on a repo |\n\n---\n\n*Powered by [Composio](https:\u002F\u002Fcomposio.dev)*\n","# Docker Hub Automation\n\nAutomate your Docker Hub workflows -- create and manage organizations, repositories, teams, add members, set up image push webhooks, and list container images.\n\n**Toolkit docs:** [composio.dev\u002Ftoolkits\u002Fdocker_hub](https:\u002F\u002Fcomposio.dev\u002Ftoolkits\u002Fdocker_hub)\n\n---\n\n## Setup\n\n1. Add the Composio MCP server to your client: `https:\u002F\u002Frube.app\u002Fmcp`\n2. Connect your Docker Hub account when prompted (JWT\u002Ftoken authentication)\n3. Start using the workflows below\n\n---\n\n## Core Workflows\n\n### 1. List Organizations\n\nUse `DOCKER_HUB_LIST_ORGANIZATIONS` to discover which organizations the authenticated user belongs to.\n\n```\nTool: DOCKER_HUB_LIST_ORGANIZATIONS\nInputs:\n  - page: integer (1-indexed, default 1)\n  - page_size: integer (1-100, default 25)\n```\n\n### 2. Create an Organization\n\nUse `DOCKER_HUB_CREATE_ORGANIZATION` to programmatically create a new Docker Hub organization.\n\n```\nTool: DOCKER_HUB_CREATE_ORGANIZATION\nInputs:\n  - orgname: string (required) -- lowercase, letters\u002Fnumbers\u002F._- only, min 2 chars\n  - company: string (optional) -- company name associated with the org\n```\n\n**Note:** Requires JWT authentication obtained via `\u002Fv2\u002Fusers\u002Flogin` and may have restricted access.\n\n### 3. Get Organization Details and Repositories\n\nUse `DOCKER_HUB_GET_ORGANIZATION` to retrieve namespace info and its repositories. Works with any public namespace.\n\n```\nTool: DOCKER_HUB_GET_ORGANIZATION\nInputs:\n  - organization: string (required) -- e.g., \"docker\", \"bitnami\", \"library\"\n```\n\n### 4. Create a Repository\n\nUse `DOCKER_HUB_CREATE_REPOSITORY` to create public or private repositories under a namespace.\n\n```\nTool: DOCKER_HUB_CREATE_REPOSITORY\nInputs:\n  - namespace: string (required) -- Docker Hub username or org name\n  - name: string (required) -- lowercase; letters, numbers, ._- allowed\n  - description: string (optional) -- max 100 characters\n  - full_description: string (optional) -- Markdown README content\n  - is_private: boolean (default false) -- private repos require paid plan\n```\n\n### 5. List Repositories with Filtering\n\nUse `DOCKER_HUB_LIST_REPOSITORIES` to enumerate repos within a namespace with sorting and content-type filtering.\n\n```\nTool: DOCKER_HUB_LIST_REPOSITORIES\nInputs:\n  - namespace: string (required) -- e.g., \"library\", \"myorg\"\n  - ordering: \"name\" | \"last_updated\" | \"pull_count\" (prefix with - for descending)\n  - page: integer (default 1)\n  - page_size: integer (1-100, default 25)\n  - content_types: string (comma-separated, e.g., \"image,artifact\")\n```\n\n### 6. Manage Teams, Members, and Webhooks\n\nUse `DOCKER_HUB_LIST_TEAMS` to list teams within an org, `DOCKER_HUB_ADD_ORG_MEMBER` to invite users, and `DOCKER_HUB_CREATE_WEBHOOK` for push notifications.\n\n```\nTool: DOCKER_HUB_LIST_TEAMS\n  - Lists all teams\u002Fgroups within a Docker Hub organization\n\nTool: DOCKER_HUB_ADD_ORG_MEMBER\n  - Invite a user to join an organization by Docker ID or email\n  - Requires owner or admin permissions\n\nTool: DOCKER_HUB_CREATE_WEBHOOK\n  - Create a webhook on a repository for image push notifications\n  - Two-step process: create webhook, then add hook URL\n  - Requires admin permissions on the repository\n```\n\n---\n\n## Known Pitfalls\n\n| Pitfall | Detail |\n|---------|--------|\n| JWT authentication | `DOCKER_HUB_CREATE_ORGANIZATION` requires JWT auth from `\u002Fv2\u002Fusers\u002Flogin` -- standard API tokens may not suffice. |\n| Private repo limits | Creating private repos (`is_private: true`) requires a paid Docker Hub plan. |\n| Org name constraints | Organization names must be lowercase, at least 2 characters, containing only letters, numbers, `.`, `_`, or `-`. |\n| Webhook two-step | `DOCKER_HUB_CREATE_WEBHOOK` is a two-step process: first create the webhook with a name, then add a hook URL to it. |\n| Pagination | All list endpoints use page-based pagination -- iterate pages until results are exhausted. |\n\n---\n\n## Quick Reference\n\n| Tool Slug | Description |\n|-----------|-------------|\n| `DOCKER_HUB_LIST_ORGANIZATIONS` | List orgs the user belongs to |\n| `DOCKER_HUB_CREATE_ORGANIZATION` | Create a new Docker Hub organization |\n| `DOCKER_HUB_GET_ORGANIZATION` | Get org details and repository list |\n| `DOCKER_HUB_CREATE_REPOSITORY` | Create a repository under a namespace |\n| `DOCKER_HUB_LIST_REPOSITORIES` | List repos with filtering and sorting |\n| `DOCKER_HUB_LIST_TEAMS` | List teams\u002Fgroups within an org |\n| `DOCKER_HUB_ADD_ORG_MEMBER` | Invite a user to an organization |\n| `DOCKER_HUB_CREATE_WEBHOOK` | Create push-notification webhook on a repo |\n\n---\n\n*Powered by [Composio](https:\u002F\u002Fcomposio.dev)*\n",{"name":45,"requires":46,"description":49},"Docker Hub Automation",{"mcp":47},[48],"rube","Automate Docker Hub operations -- manage organizations, repositories, teams, members, and webhooks via the Composio MCP integration.","main","4180cbf3e82c49da08cab01820d0c559313b3761","apps\u002Fworkload-generator\u002F.claude\u002Fskills\u002Fspeckit-converge",4,"https:\u002F\u002Fgithub.com\u002FAI-native-Systems-Research\u002Fai-native-storage-certus","https:\u002F\u002Fgithub.com\u002FAI-native-Systems-Research","https:\u002F\u002Fai-native-systems-research.github.io\u002Fai-native-systems-research\u002F","2026-11-12 03:45:04",{"source":8,"skillName":45,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add AI-native-Systems-Research\u002Fai-native-storage-certus --skill \"Docker Hub Automation\"",{"tool":64,"command":65},"bunx","bunx skills add AI-native-Systems-Research\u002Fai-native-storage-certus --skill \"Docker Hub Automation\"",{"tool":67,"command":68},"pnpm","pnpm dlx skills add AI-native-Systems-Research\u002Fai-native-storage-certus --skill \"Docker Hub Automation\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FAI-native-Systems-Research\u002Fai-native-storage-certus\u002Fblob\u002Funstable\u002Fapps\u002Fworkload-generator\u002F.claude\u002Fskills\u002Fspeckit-converge\u002FSKILL.md",true,[],[73,92,107,118,133,144],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":40},"01M6KP29TWSNGADF3AJ47BR7TY","tools-spin-sync","Synchronize Spin\u002FPromela models with current source code and re-verify","https:\u002F\u002Fgithub.com\u002FAI-native-Systems-Research\u002Fai-native-storage-certus\u002Fblob\u002Funstable\u002Fcomponents\u002Fzyre\u002F.claude\u002Fskills\u002Ftools-spin-sync\u002FSKILL.md",[],[80,81,82,83,84,85,86,87,88,89,90,91],"tools spin sync","Tools","sync","code","verify","model","models","name","with","re","source","source code",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":40},"01M6KP277TDY3ZAJEBP5P6MDT8","tools-spin-model","Create a new Spin\u002FPromela formal verification model for a system property","https:\u002F\u002Fgithub.com\u002FAI-native-Systems-Research\u002Fai-native-storage-certus\u002Fblob\u002Funstable\u002Fcomponents\u002Fzyre\u002F.claude\u002Fskills\u002Ftools-spin-model\u002FSKILL.md",[],[99,85,81,100,101,102,103,104,23,105,106],"tools spin model","system","formal verification","number","for","prove","create","verification",{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":113,"publishedAt":40},"01M6KP250W406CEDSF02BRXT9D","tools-creusot-install","Install the Creusot Rust verification tool","https:\u002F\u002Fgithub.com\u002FAI-native-Systems-Research\u002Fai-native-storage-certus\u002Fblob\u002Funstable\u002Fcomponents\u002Fzyre\u002F.claude\u002Fskills\u002Ftools-creusot-install\u002FSKILL.md",[],[114,115,81,116,106,117],"tools creusot install","install","rust","tool",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":124,"publishedAt":40},"01M6KP22H28FQ1X0V7VJHEFWXD","tools-creusot-init","Prepare an existing Cargo project to use Creusot formal verification","https:\u002F\u002Fgithub.com\u002FAI-native-Systems-Research\u002Fai-native-storage-certus\u002Fblob\u002Funstable\u002Fcomponents\u002Fzyre\u002F.claude\u002Fskills\u002Ftools-creusot-init\u002FSKILL.md",[],[125,81,126,32,31,127,128,106,129,101,130,131,132],"tools creusot init","init","components","prepare","use","cargo","manager","Existing",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":139,"publishedAt":40},"01M6KP1V506J9YM8DKKVDG1NRE","tools-creusot-coq-install","Add Coq 8.20 as an additional prover to an existing Creusot installation, for verification conditions that SMT solvers cannot discharge","https:\u002F\u002Fgithub.com\u002FAI-native-Systems-Research\u002Fai-native-storage-certus\u002Fblob\u002Funstable\u002Fcomponents\u002Fzyre\u002F.claude\u002Fskills\u002Ftools-creusot-coq-install\u002FSKILL.md",[],[140,141,115,81,103,132,29,142,106,143],"tools creusot coq install","Coq","installation","add",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":150,"publishedAt":40},"01M6KP1PQJF3H765TYZAZ7P3EF","tools-creusot-annotate-interfaces","Formally verify a component's properties with Creusot and annotate its interface definitions","https:\u002F\u002Fgithub.com\u002FAI-native-Systems-Research\u002Fai-native-storage-certus\u002Fblob\u002Funstable\u002Fcomponents\u002Fzyre\u002F.claude\u002Fskills\u002Ftools-creusot-annotate-interfaces\u002FSKILL.md",[],[81,151,152,88,87,153,84,154,155],"tools creusot annotate interfaces","annotate","properties","component","interface"]