[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6PEKMNDS68MS7KKG99MV82X":3,"skill-same:01M6PEKMNDS68MS7KKG99MV82X":64},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":49,"install":50,"resources":63},"01M6PEKMNDS68MS7KKG99MV82X","ccg",null,"Claude-Codex-Gemini tri-model orchestration for multi-perspective analysis. Activate when user says: ccg, tri-model, three models, multi-model, cross-validate, get multiple opinions, compare models.","r3dlex\u002Foh-my-githubcopilot","r3dlex","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F291373160?v=4","01M6PEFNGGBVB7SHAPWXFFX933","01M6PEFNMNKPP8K3C881MDS722",1,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fr3dlex\u002Foh-my-githubcopilot\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fccg\u002FSKILL.md",[],[5,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"activate","perspective","for","multi","compare","compare models","get","three","task","gemini","multi-model","models","user","model","analysis","validate","orchestration","codex","2026-11-10 10:12:30",false,"---\nname: ccg\ndescription: >\n  Claude-Codex-Gemini tri-model orchestration for multi-perspective analysis.\n  Activate when user says: ccg, tri-model, three models, multi-model,\n  cross-validate, get multiple opinions, compare models.\nargument-hint: \"\u003Ctask description>\"\n---\n\n# CCG - Claude-Codex-Gemini Tri-Model Orchestration\n\nRoute a task through three AI models in parallel, then synthesize their outputs into one unified answer.\n\n## When to Use\n- Backend\u002Fanalysis + frontend\u002FUI work in one request\n- Code review from multiple perspectives\n- Cross-validation where models may disagree\n- Fast parallel input without full team orchestration\n\n## When NOT to Use\n- Simple, straightforward tasks → execute directly\n- Already clear on approach → use `\u002Fomg-autopilot`\n- Need coordinated multi-agent work → use `\u002Fteam`\n\n## Requirements\n\n- **Codex CLI**: `npm install -g @openai\u002Fcodex`\n- **Gemini CLI**: `npm install -g @google\u002Fgemini-cli`\n- If either CLI is unavailable, continue with whichever provider works\n\n## Execution Protocol\n\n### 1. Decompose Request\n\nSplit the user request into:\n- **Codex prompt**: architecture, correctness, backend, risks, test strategy\n- **Gemini prompt**: UX\u002Fcontent clarity, alternatives, edge-case usability, docs polish\n- **Synthesis plan**: how to reconcile conflicts\n\n### 2. Invoke Advisors\n\nRun both advisors via CLI in parallel:\n\n```bash\n# Run in terminal\ncodex \"\u003Ccodex prompt>\"\ngemini \"\u003Cgemini prompt>\"\n```\n\nOr via VS Code's `selectChatModels()` API if available:\n```\nPromise.all([\n  model_openai.sendRequest(codex_prompt),\n  model_google.sendRequest(gemini_prompt)\n])\n```\n\n### 3. Collect Results\n\nGather outputs from both advisors.\n\n### 4. Synthesize\n\nReturn one unified answer with:\n- **Agreed** recommendations\n- **Conflicting** recommendations (explicitly called out)\n- **Chosen** final direction + rationale\n- **Action** checklist\n\n## Fallbacks\n\n| Scenario | Action |\n|----------|--------|\n| One provider unavailable | Continue with available + Claude synthesis |\n| Both unavailable | Fall back to Claude-only answer |\n\n## Example\n\n```\n\u002Fccg Review this PR - architecture\u002Fsecurity via Codex and UX\u002Freadability via Gemini\n```\n\nOutput:\n```\n=== CCG Synthesis ===\n\n## Agreed\n- Authentication middleware needs rate limiting\n- Error messages should be more user-friendly\n\n## Conflicting\n- Codex: Use middleware pattern for validation\n- Gemini: Use inline validation for simplicity\n→ Chosen: Middleware pattern (consistency with existing codebase)\n\n## Action Checklist\n- [ ] Add rate limiting middleware\n- [ ] Improve error messages in auth flow\n- [ ] Extract validation to middleware layer\n```\n","# CCG - Claude-Codex-Gemini Tri-Model Orchestration\n\nRoute a task through three AI models in parallel, then synthesize their outputs into one unified answer.\n\n## When to Use\n- Backend\u002Fanalysis + frontend\u002FUI work in one request\n- Code review from multiple perspectives\n- Cross-validation where models may disagree\n- Fast parallel input without full team orchestration\n\n## When NOT to Use\n- Simple, straightforward tasks → execute directly\n- Already clear on approach → use `\u002Fomg-autopilot`\n- Need coordinated multi-agent work → use `\u002Fteam`\n\n## Requirements\n\n- **Codex CLI**: `npm install -g @openai\u002Fcodex`\n- **Gemini CLI**: `npm install -g @google\u002Fgemini-cli`\n- If either CLI is unavailable, continue with whichever provider works\n\n## Execution Protocol\n\n### 1. Decompose Request\n\nSplit the user request into:\n- **Codex prompt**: architecture, correctness, backend, risks, test strategy\n- **Gemini prompt**: UX\u002Fcontent clarity, alternatives, edge-case usability, docs polish\n- **Synthesis plan**: how to reconcile conflicts\n\n### 2. Invoke Advisors\n\nRun both advisors via CLI in parallel:\n\n```bash\n# Run in terminal\ncodex \"\u003Ccodex prompt>\"\ngemini \"\u003Cgemini prompt>\"\n```\n\nOr via VS Code's `selectChatModels()` API if available:\n```\nPromise.all([\n  model_openai.sendRequest(codex_prompt),\n  model_google.sendRequest(gemini_prompt)\n])\n```\n\n### 3. Collect Results\n\nGather outputs from both advisors.\n\n### 4. Synthesize\n\nReturn one unified answer with:\n- **Agreed** recommendations\n- **Conflicting** recommendations (explicitly called out)\n- **Chosen** final direction + rationale\n- **Action** checklist\n\n## Fallbacks\n\n| Scenario | Action |\n|----------|--------|\n| One provider unavailable | Continue with available + Claude synthesis |\n| Both unavailable | Fall back to Claude-only answer |\n\n## Example\n\n```\n\u002Fccg Review this PR - architecture\u002Fsecurity via Codex and UX\u002Freadability via Gemini\n```\n\nOutput:\n```\n=== CCG Synthesis ===\n\n## Agreed\n- Authentication middleware needs rate limiting\n- Error messages should be more user-friendly\n\n## Conflicting\n- Codex: Use middleware pattern for validation\n- Gemini: Use inline validation for simplicity\n→ Chosen: Middleware pattern (consistency with existing codebase)\n\n## Action Checklist\n- [ ] Add rate limiting middleware\n- [ ] Improve error messages in auth flow\n- [ ] Extract validation to middleware layer\n```\n",{"name":5,"description":41,"argument-hint":42},"Claude-Codex-Gemini tri-model orchestration for multi-perspective analysis. Activate when user says: ccg, tri-model, three models, multi-model, cross-validate, get multiple opinions, compare models.\n","\u003Ctask description>","main","55294682936bc69473eba70e93ffa88ede018e81",".github\u002Fskills\u002Fccg",0,"https:\u002F\u002Fgithub.com\u002Fr3dlex\u002Foh-my-githubcopilot","https:\u002F\u002Fgithub.com\u002Fr3dlex","2026-10-31 18:57:35",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add r3dlex\u002Foh-my-githubcopilot --skill ccg",{"tool":56,"command":57},"bunx","bunx skills add r3dlex\u002Foh-my-githubcopilot --skill ccg",{"tool":59,"command":60},"pnpm","pnpm dlx skills add r3dlex\u002Foh-my-githubcopilot --skill ccg","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fr3dlex\u002Foh-my-githubcopilot\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fccg\u002FSKILL.md",true,[],[65,71,77,83,89,97],{"skillNo":66,"name":67,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":36},"01M6PF2CTFS0AEXQXF2NFYT8J2","wiki","https:\u002F\u002Fgithub.com\u002Fr3dlex\u002Foh-my-githubcopilot\u002Fblob\u002Fmain\u002Fvscode-omp\u002Fresources\u002Ftemplates\u002F.copilot\u002Fskills\u002Fwiki\u002FSKILL.md",[],[67],{"skillNo":72,"name":73,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":36},"01M6PF2BFXJ97M6NKH7N42XZVZ","ultrawork","https:\u002F\u002Fgithub.com\u002Fr3dlex\u002Foh-my-githubcopilot\u002Fblob\u002Fmain\u002Fvscode-omp\u002Fresources\u002Ftemplates\u002F.copilot\u002Fskills\u002Fultrawork\u002FSKILL.md",[],[73],{"skillNo":78,"name":79,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":36},"01M6PF2A38Y1CE5BVJ5HMTMBP6","trace","https:\u002F\u002Fgithub.com\u002Fr3dlex\u002Foh-my-githubcopilot\u002Fblob\u002Fmain\u002Fvscode-omp\u002Fresources\u002Ftemplates\u002F.copilot\u002Fskills\u002Ftrace\u002FSKILL.md",[],[79],{"skillNo":84,"name":85,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":36},"01M6PF28P7S19AK5XJA41WS9V8","team","https:\u002F\u002Fgithub.com\u002Fr3dlex\u002Foh-my-githubcopilot\u002Fblob\u002Fmain\u002Fvscode-omp\u002Fresources\u002Ftemplates\u002F.copilot\u002Fskills\u002Fteam\u002FSKILL.md",[],[85],{"skillNo":90,"name":91,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":36},"01M6PF278EADT8W3EWDYA3C2H0","swe-bench","https:\u002F\u002Fgithub.com\u002Fr3dlex\u002Foh-my-githubcopilot\u002Fblob\u002Fmain\u002Fvscode-omp\u002Fresources\u002Ftemplates\u002F.copilot\u002Fskills\u002Fswe-bench\u002FSKILL.md",[],[95,96],"SWE","swe bench",{"skillNo":98,"name":99,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":36},"01M6PF25XW1TMP5Z1N89ZVJQDY","swarm","https:\u002F\u002Fgithub.com\u002Fr3dlex\u002Foh-my-githubcopilot\u002Fblob\u002Fmain\u002Fvscode-omp\u002Fresources\u002Ftemplates\u002F.copilot\u002Fskills\u002Fswarm\u002FSKILL.md",[],[99]]