[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M754VPBNRGSZAM01QA1ZHZB7":3,"skill-same:01M754VPBNRGSZAM01QA1ZHZB7":49},{"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":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":29,"commitSha":30,"skillDirectory":5,"forksCount":14,"repositoryHtmlUrl":31,"repositoryHomepageUrl":6,"ownerHtmlUrl":32,"ownerBlogUrl":33,"ownerDescription":6,"updatedAt":34,"install":35,"resources":48},"01M754VPBNRGSZAM01QA1ZHZB7","openevidence-upgrade-migration",null,"Upgrade OpenEvidence SDK versions and migrate between API versions.\nUse when upgrading SDK, migrating to new API version,\nor planning OpenEvidence version updates.\nTrigger with phrases like \"openevidence upgrade\", \"openevidence migrate\",\n\"update openevidence sdk\", \"openevidence new version\", \"openevidence breaking changes\".","SamuelChien\u002Fmega-skills-collection","SamuelChien","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F4652114?v=4","01M74KK34WVHA0P5ZYSJRDDFMG","Samuel Chien","01M74KK35FQN1N9VZ9EPTH3P2S",0,"MIT","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fopenevidence-upgrade-migration\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: openevidence-upgrade-migration\ndescription: |\n  Upgrade OpenEvidence SDK versions and migrate between API versions.\n  Use when upgrading SDK, migrating to new API version,\n  or planning OpenEvidence version updates.\n  Trigger with phrases like \"openevidence upgrade\", \"openevidence migrate\",\n  \"update openevidence sdk\", \"openevidence new version\", \"openevidence breaking changes\".\nallowed-tools: Read, Write, Edit, Bash(npm:*), Bash(pip:*), Grep\nversion: 1.0.0\nlicense: MIT\nauthor: Jeremy Longshore \u003Cjeremy@intentsolutions.io>\ncompatible-with: claude-code, codex, openclaw\n---\n# OpenEvidence Upgrade & Migration\n\n## Overview\nSafely upgrade OpenEvidence SDK versions and migrate between API versions with minimal disruption to clinical workflows.\n\n## Prerequisites\n- Current OpenEvidence integration running\n- Access to staging environment\n- Changelog for target version\n- Test suite passing\n\n## Version Compatibility Matrix\n\n| SDK Version | API Version | Node.js | Python | Status |\n|-------------|-------------|---------|--------|--------|\n| 3.x | v3 | 20+ | 3.11+ | Current |\n| 2.x | v2 | 18+ | 3.10+ | Maintained |\n| 1.x | v1 | 16+ | 3.8+ | Deprecated |\n\n## Instructions\n\n### Step 1: Review Changelog and Breaking Changes\n```bash\nset -euo pipefail\n# Check current version\nnpm list @openevidence\u002Fsdk\n# or\npip show openevidence\n\n# Review changelog\n# https:\u002F\u002Fdocs.openevidence.com\u002Fchangelog\n```\n\n### Step 2: Update Dependencies\n```bash\nset -euo pipefail\n# Node.js - specific version\nnpm install @openevidence\u002Fsdk@3.0.0\n\n# Node.js - latest\nnpm install @openevidence\u002Fsdk@latest\n\n# Python - specific version\npip install openevidence==3.0.0\n\n# Python - latest\npip install --upgrade openevidence\n```\n\n### Step 3: Common Migration Patterns\n\n#### SDK v2 to v3 Migration\n\n**Client Initialization Changes:**\n```typescript\n\u002F\u002F v2 (deprecated)\nimport { OpenEvidence } from '@openevidence\u002Fsdk';\nconst client = new OpenEvidence(process.env.OPENEVIDENCE_API_KEY);\n\n\u002F\u002F v3 (current)\nimport { OpenEvidenceClient } from '@openevidence\u002Fsdk';\nconst client = new OpenEvidenceClient({\n  apiKey: process.env.OPENEVIDENCE_API_KEY,\n  orgId: process.env.OPENEVIDENCE_ORG_ID, \u002F\u002F Now required\n});\n```\n\n**Query Method Changes:**\n```typescript\n\u002F\u002F v2 (deprecated)\nconst response = await client.query('What is the treatment for...');\n\n\u002F\u002F v3 (current)\nconst response = await client.query({\n  question: 'What is the treatment for...',\n  context: {\n    specialty: 'internal-medicine',\n    urgency: 'routine',\n  },\n});\n```\n\n**Response Structure Changes:**\n```typescript\n\u002F\u002F v2 response\ninterface V2Response {\n  answer: string;\n  sources: string[];\n}\n\n\u002F\u002F v3 response\ninterface V3Response {\n  answer: string;\n  citations: Citation[];  \u002F\u002F Renamed and expanded\n  confidence: number;     \u002F\u002F New field\n  lastUpdated: string;    \u002F\u002F New field\n  id: string;             \u002F\u002F New field for tracking\n}\n```\n\n**DeepConsult Changes:**\n```typescript\n\u002F\u002F v2 (synchronous, limited)\nconst report = await client.research('complex question');\n\n\u002F\u002F v3 (async with status polling)\nconst consultId = await client.deepConsult.create({\n  question: 'complex question',\n  context: { specialty: 'oncology', researchFocus: 'treatment' },\n});\n\n\u002F\u002F Poll for completion or use webhooks\nconst status = await client.deepConsult.status(consultId);\n```\n\n### Step 4: Create Migration Adapter\n```typescript\n\u002F\u002F src\u002Fmigration\u002Fopenevidence-adapter.ts\n\u002F\u002F Temporary adapter for gradual migration\n\nimport { OpenEvidenceClient } from '@openevidence\u002Fsdk';\n\ninterface V2QueryResponse {\n  answer: string;\n  sources: string[];\n}\n\ninterface V3QueryResponse {\n  answer: string;\n  citations: { source: string; title: string; year: number }[];\n  confidence: number;\n}\n\nexport class OpenEvidenceMigrationAdapter {\n  private client: OpenEvidenceClient;\n  private useV3Response: boolean;\n\n  constructor(config: { apiKey: string; orgId: string; useV3Response?: boolean }) {\n    this.client = new OpenEvidenceClient({\n      apiKey: config.apiKey,\n      orgId: config.orgId,\n    });\n    this.useV3Response = config.useV3Response ?? false;\n  }\n\n  \u002F\u002F Maintains v2-compatible interface during migration\n  async query(\n    question: string,\n    options?: { specialty?: string }\n  ): Promise\u003CV2QueryResponse | V3QueryResponse> {\n    const response = await this.client.query({\n      question,\n      context: {\n        specialty: options?.specialty || 'internal-medicine',\n        urgency: 'routine',\n      },\n    });\n\n    \u002F\u002F Return v2-compatible response if not ready for v3\n    if (!this.useV3Response) {\n      return {\n        answer: response.answer,\n        sources: response.citations.map(c => c.source),\n      };\n    }\n\n    return response;\n  }\n}\n```\n\n### Step 5: Update Type Definitions\n```typescript\n\u002F\u002F src\u002Ftypes\u002Fopenevidence.ts\n\u002F\u002F Update types for v3 API\n\nexport interface ClinicalQueryRequest {\n  question: string;\n  context: ClinicalContext;\n  options?: QueryOptions;\n}\n\nexport interface ClinicalContext {\n  specialty: string;\n  urgency: 'stat' | 'urgent' | 'routine' | 'research';\n  patientAge?: number;\n  patientSex?: 'male' | 'female' | 'other';\n  relevantConditions?: string[];\n  currentMedications?: string[];\n}\n\nexport interface QueryOptions {\n  maxCitations?: number;\n  includeGuidelines?: boolean;\n  includeDrugInfo?: boolean;\n  preferredSources?: string[];\n}\n\nexport interface Citation {\n  source: string;\n  title: string;\n  authors: string[];\n  year: number;\n  doi?: string;\n  url?: string;\n  type?: 'journal' | 'guideline' | 'textbook';\n  evidenceLevel?: string;\n}\n\nexport interface ClinicalQueryResponse {\n  id: string;\n  answer: string;\n  citations: Citation[];\n  confidence: number;\n  lastUpdated: string;\n  deepConsultAvailable: boolean;\n}\n```\n\n### Step 6: Test Migration\n```typescript\n\u002F\u002F tests\u002Fmigration\u002Fv2-to-v3.test.ts\nimport { describe, it, expect } from 'vitest';\nimport { OpenEvidenceMigrationAdapter } from '..\u002F..\u002Fsrc\u002Fmigration\u002Fopenevidence-adapter';\n\ndescribe('v2 to v3 Migration', () => {\n  const adapter = new OpenEvidenceMigrationAdapter({\n    apiKey: process.env.OPENEVIDENCE_API_KEY!,\n    orgId: process.env.OPENEVIDENCE_ORG_ID!,\n    useV3Response: false, \u002F\u002F Test v2 compatibility\n  });\n\n  it('should return v2-compatible response format', async () => {\n    const response = await adapter.query('What is the treatment for hypertension?');\n\n    expect(response).toHaveProperty('answer');\n    expect(response).toHaveProperty('sources');\n    expect(Array.isArray((response as any).sources)).toBe(true);\n  });\n\n  it('should support specialty parameter', async () => {\n    const response = await adapter.query(\n      'What is the treatment for hypertension?',\n      { specialty: 'cardiology' }\n    );\n\n    expect(response.answer).toBeDefined();\n  });\n});\n```\n\n### Step 7: Gradual Rollout Strategy\n```typescript\n\u002F\u002F src\u002Fconfig\u002Ffeature-flags.ts\nexport const featureFlags = {\n  \u002F\u002F Start at 0, gradually increase to 100\n  openevidence_v3_percentage: parseInt(process.env.OE_V3_PERCENTAGE || '0'),\n};\n\nexport function shouldUseV3(): boolean {\n  return Math.random() * 100 \u003C featureFlags.openevidence_v3_percentage;\n}\n\n\u002F\u002F Usage in service\nasync function clinicalQuery(question: string) {\n  if (shouldUseV3()) {\n    return v3ClinicalQuery(question);\n  }\n  return v2ClinicalQuery(question);\n}\n```\n\n## Migration Checklist\n\n- [ ] Review changelog for breaking changes\n- [ ] Update SDK version in package.json\u002Frequirements.txt\n- [ ] Update type definitions\n- [ ] Create migration adapter if needed\n- [ ] Update error handling for new error types\n- [ ] Update tests for new response formats\n- [ ] Test in staging environment\n- [ ] Plan gradual rollout\n- [ ] Monitor for errors during rollout\n- [ ] Remove deprecated code after full migration\n\n## Output\n- Updated SDK version\n- Type definitions aligned with new API\n- Migration adapter for gradual transition\n- Tests passing with new version\n\n## Error Handling\n| Migration Issue | Cause | Solution |\n|-----------------|-------|----------|\n| Type errors | Changed response format | Update type definitions |\n| Auth failures | New required fields | Add orgId to configuration |\n| Missing methods | Renamed or removed | Check changelog for replacements |\n| Test failures | Changed behavior | Update test expectations |\n\n## Examples\n\n### Complete Migration Script\n```bash\n#!\u002Fbin\u002Fbash\nset -euo pipefail\n# scripts\u002Fmigrate-openevidence.sh\n\necho \"=== OpenEvidence SDK Migration ===\"\n\n# 1. Check current version\necho \"Current version:\"\nnpm list @openevidence\u002Fsdk\n\n# 2. Backup package-lock.json\ncp package-lock.json package-lock.json.backup\n\n# 3. Update SDK\necho \"Updating to latest version...\"\nnpm install @openevidence\u002Fsdk@latest\n\n# 4. Run type check\necho \"Running type check...\"\nnpx tsc --noEmit || {\n  echo \"Type errors found. Review and fix before continuing.\"\n  exit 1\n}\n\n# 5. Run tests\necho \"Running tests...\"\nnpm test || {\n  echo \"Tests failed. Review and fix before continuing.\"\n  exit 1\n}\n\necho \"=== Migration Complete ===\"\necho \"New version:\"\nnpm list @openevidence\u002Fsdk\n```\n\n## Resources\n- [OpenEvidence Changelog](https:\u002F\u002Fdocs.openevidence.com\u002Fchangelog)\n- [OpenEvidence Migration Guide](https:\u002F\u002Fdocs.openevidence.com\u002Fmigration)\n\n## Next Steps\nFor CI\u002FCD integration, see `openevidence-ci-integration`.","# OpenEvidence Upgrade & Migration\n\n## Overview\nSafely upgrade OpenEvidence SDK versions and migrate between API versions with minimal disruption to clinical workflows.\n\n## Prerequisites\n- Current OpenEvidence integration running\n- Access to staging environment\n- Changelog for target version\n- Test suite passing\n\n## Version Compatibility Matrix\n\n| SDK Version | API Version | Node.js | Python | Status |\n|-------------|-------------|---------|--------|--------|\n| 3.x | v3 | 20+ | 3.11+ | Current |\n| 2.x | v2 | 18+ | 3.10+ | Maintained |\n| 1.x | v1 | 16+ | 3.8+ | Deprecated |\n\n## Instructions\n\n### Step 1: Review Changelog and Breaking Changes\n```bash\nset -euo pipefail\n# Check current version\nnpm list @openevidence\u002Fsdk\n# or\npip show openevidence\n\n# Review changelog\n# https:\u002F\u002Fdocs.openevidence.com\u002Fchangelog\n```\n\n### Step 2: Update Dependencies\n```bash\nset -euo pipefail\n# Node.js - specific version\nnpm install @openevidence\u002Fsdk@3.0.0\n\n# Node.js - latest\nnpm install @openevidence\u002Fsdk@latest\n\n# Python - specific version\npip install openevidence==3.0.0\n\n# Python - latest\npip install --upgrade openevidence\n```\n\n### Step 3: Common Migration Patterns\n\n#### SDK v2 to v3 Migration\n\n**Client Initialization Changes:**\n```typescript\n\u002F\u002F v2 (deprecated)\nimport { OpenEvidence } from '@openevidence\u002Fsdk';\nconst client = new OpenEvidence(process.env.OPENEVIDENCE_API_KEY);\n\n\u002F\u002F v3 (current)\nimport { OpenEvidenceClient } from '@openevidence\u002Fsdk';\nconst client = new OpenEvidenceClient({\n  apiKey: process.env.OPENEVIDENCE_API_KEY,\n  orgId: process.env.OPENEVIDENCE_ORG_ID, \u002F\u002F Now required\n});\n```\n\n**Query Method Changes:**\n```typescript\n\u002F\u002F v2 (deprecated)\nconst response = await client.query('What is the treatment for...');\n\n\u002F\u002F v3 (current)\nconst response = await client.query({\n  question: 'What is the treatment for...',\n  context: {\n    specialty: 'internal-medicine',\n    urgency: 'routine',\n  },\n});\n```\n\n**Response Structure Changes:**\n```typescript\n\u002F\u002F v2 response\ninterface V2Response {\n  answer: string;\n  sources: string[];\n}\n\n\u002F\u002F v3 response\ninterface V3Response {\n  answer: string;\n  citations: Citation[];  \u002F\u002F Renamed and expanded\n  confidence: number;     \u002F\u002F New field\n  lastUpdated: string;    \u002F\u002F New field\n  id: string;             \u002F\u002F New field for tracking\n}\n```\n\n**DeepConsult Changes:**\n```typescript\n\u002F\u002F v2 (synchronous, limited)\nconst report = await client.research('complex question');\n\n\u002F\u002F v3 (async with status polling)\nconst consultId = await client.deepConsult.create({\n  question: 'complex question',\n  context: { specialty: 'oncology', researchFocus: 'treatment' },\n});\n\n\u002F\u002F Poll for completion or use webhooks\nconst status = await client.deepConsult.status(consultId);\n```\n\n### Step 4: Create Migration Adapter\n```typescript\n\u002F\u002F src\u002Fmigration\u002Fopenevidence-adapter.ts\n\u002F\u002F Temporary adapter for gradual migration\n\nimport { OpenEvidenceClient } from '@openevidence\u002Fsdk';\n\ninterface V2QueryResponse {\n  answer: string;\n  sources: string[];\n}\n\ninterface V3QueryResponse {\n  answer: string;\n  citations: { source: string; title: string; year: number }[];\n  confidence: number;\n}\n\nexport class OpenEvidenceMigrationAdapter {\n  private client: OpenEvidenceClient;\n  private useV3Response: boolean;\n\n  constructor(config: { apiKey: string; orgId: string; useV3Response?: boolean }) {\n    this.client = new OpenEvidenceClient({\n      apiKey: config.apiKey,\n      orgId: config.orgId,\n    });\n    this.useV3Response = config.useV3Response ?? false;\n  }\n\n  \u002F\u002F Maintains v2-compatible interface during migration\n  async query(\n    question: string,\n    options?: { specialty?: string }\n  ): Promise\u003CV2QueryResponse | V3QueryResponse> {\n    const response = await this.client.query({\n      question,\n      context: {\n        specialty: options?.specialty || 'internal-medicine',\n        urgency: 'routine',\n      },\n    });\n\n    \u002F\u002F Return v2-compatible response if not ready for v3\n    if (!this.useV3Response) {\n      return {\n        answer: response.answer,\n        sources: response.citations.map(c => c.source),\n      };\n    }\n\n    return response;\n  }\n}\n```\n\n### Step 5: Update Type Definitions\n```typescript\n\u002F\u002F src\u002Ftypes\u002Fopenevidence.ts\n\u002F\u002F Update types for v3 API\n\nexport interface ClinicalQueryRequest {\n  question: string;\n  context: ClinicalContext;\n  options?: QueryOptions;\n}\n\nexport interface ClinicalContext {\n  specialty: string;\n  urgency: 'stat' | 'urgent' | 'routine' | 'research';\n  patientAge?: number;\n  patientSex?: 'male' | 'female' | 'other';\n  relevantConditions?: string[];\n  currentMedications?: string[];\n}\n\nexport interface QueryOptions {\n  maxCitations?: number;\n  includeGuidelines?: boolean;\n  includeDrugInfo?: boolean;\n  preferredSources?: string[];\n}\n\nexport interface Citation {\n  source: string;\n  title: string;\n  authors: string[];\n  year: number;\n  doi?: string;\n  url?: string;\n  type?: 'journal' | 'guideline' | 'textbook';\n  evidenceLevel?: string;\n}\n\nexport interface ClinicalQueryResponse {\n  id: string;\n  answer: string;\n  citations: Citation[];\n  confidence: number;\n  lastUpdated: string;\n  deepConsultAvailable: boolean;\n}\n```\n\n### Step 6: Test Migration\n```typescript\n\u002F\u002F tests\u002Fmigration\u002Fv2-to-v3.test.ts\nimport { describe, it, expect } from 'vitest';\nimport { OpenEvidenceMigrationAdapter } from '..\u002F..\u002Fsrc\u002Fmigration\u002Fopenevidence-adapter';\n\ndescribe('v2 to v3 Migration', () => {\n  const adapter = new OpenEvidenceMigrationAdapter({\n    apiKey: process.env.OPENEVIDENCE_API_KEY!,\n    orgId: process.env.OPENEVIDENCE_ORG_ID!,\n    useV3Response: false, \u002F\u002F Test v2 compatibility\n  });\n\n  it('should return v2-compatible response format', async () => {\n    const response = await adapter.query('What is the treatment for hypertension?');\n\n    expect(response).toHaveProperty('answer');\n    expect(response).toHaveProperty('sources');\n    expect(Array.isArray((response as any).sources)).toBe(true);\n  });\n\n  it('should support specialty parameter', async () => {\n    const response = await adapter.query(\n      'What is the treatment for hypertension?',\n      { specialty: 'cardiology' }\n    );\n\n    expect(response.answer).toBeDefined();\n  });\n});\n```\n\n### Step 7: Gradual Rollout Strategy\n```typescript\n\u002F\u002F src\u002Fconfig\u002Ffeature-flags.ts\nexport const featureFlags = {\n  \u002F\u002F Start at 0, gradually increase to 100\n  openevidence_v3_percentage: parseInt(process.env.OE_V3_PERCENTAGE || '0'),\n};\n\nexport function shouldUseV3(): boolean {\n  return Math.random() * 100 \u003C featureFlags.openevidence_v3_percentage;\n}\n\n\u002F\u002F Usage in service\nasync function clinicalQuery(question: string) {\n  if (shouldUseV3()) {\n    return v3ClinicalQuery(question);\n  }\n  return v2ClinicalQuery(question);\n}\n```\n\n## Migration Checklist\n\n- [ ] Review changelog for breaking changes\n- [ ] Update SDK version in package.json\u002Frequirements.txt\n- [ ] Update type definitions\n- [ ] Create migration adapter if needed\n- [ ] Update error handling for new error types\n- [ ] Update tests for new response formats\n- [ ] Test in staging environment\n- [ ] Plan gradual rollout\n- [ ] Monitor for errors during rollout\n- [ ] Remove deprecated code after full migration\n\n## Output\n- Updated SDK version\n- Type definitions aligned with new API\n- Migration adapter for gradual transition\n- Tests passing with new version\n\n## Error Handling\n| Migration Issue | Cause | Solution |\n|-----------------|-------|----------|\n| Type errors | Changed response format | Update type definitions |\n| Auth failures | New required fields | Add orgId to configuration |\n| Missing methods | Renamed or removed | Check changelog for replacements |\n| Test failures | Changed behavior | Update test expectations |\n\n## Examples\n\n### Complete Migration Script\n```bash\n#!\u002Fbin\u002Fbash\nset -euo pipefail\n# scripts\u002Fmigrate-openevidence.sh\n\necho \"=== OpenEvidence SDK Migration ===\"\n\n# 1. Check current version\necho \"Current version:\"\nnpm list @openevidence\u002Fsdk\n\n# 2. Backup package-lock.json\ncp package-lock.json package-lock.json.backup\n\n# 3. Update SDK\necho \"Updating to latest version...\"\nnpm install @openevidence\u002Fsdk@latest\n\n# 4. Run type check\necho \"Running type check...\"\nnpx tsc --noEmit || {\n  echo \"Type errors found. Review and fix before continuing.\"\n  exit 1\n}\n\n# 5. Run tests\necho \"Running tests...\"\nnpm test || {\n  echo \"Tests failed. Review and fix before continuing.\"\n  exit 1\n}\n\necho \"=== Migration Complete ===\"\necho \"New version:\"\nnpm list @openevidence\u002Fsdk\n```\n\n## Resources\n- [OpenEvidence Changelog](https:\u002F\u002Fdocs.openevidence.com\u002Fchangelog)\n- [OpenEvidence Migration Guide](https:\u002F\u002Fdocs.openevidence.com\u002Fmigration)\n\n## Next Steps\nFor CI\u002FCD integration, see `openevidence-ci-integration`.",{"name":5,"author":24,"license":15,"version":25,"description":26,"allowed-tools":27,"compatible-with":28},"Jeremy Longshore \u003Cjeremy@intentsolutions.io>","1.0.0","Upgrade OpenEvidence SDK versions and migrate between API versions.\nUse when upgrading SDK, migrating to new API version,\nor planning OpenEvidence version updates.\nTrigger with phrases like \"openevidence upgrade\", \"openevidence migrate\",\n\"update openevidence sdk\", \"openevidence new version\", \"openevidence breaking changes\".\n","Read, Write, Edit, Bash(npm:*), Bash(pip:*), Grep","claude-code, codex, openclaw","main","c2b1fdccc779e99ac814e55fb69ca8d71215dd0f","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection","https:\u002F\u002Fgithub.com\u002FSamuelChien","http:\u002F\u002Fsamuelchien.com\u002F","2026-05-26 08:27:14",{"source":8,"skillName":5,"commands":36,"prompt":46,"zipAvailable":47},[37,40,43],{"tool":38,"command":39},"npx","npx skills add SamuelChien\u002Fmega-skills-collection --skill openevidence-upgrade-migration",{"tool":41,"command":42},"bunx","bunx skills add SamuelChien\u002Fmega-skills-collection --skill openevidence-upgrade-migration",{"tool":44,"command":45},"pnpm","pnpm dlx skills add SamuelChien\u002Fmega-skills-collection --skill openevidence-upgrade-migration","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fopenevidence-upgrade-migration\u002FSKILL.md",true,[],[50,57,64,71,78,86],{"skillNo":51,"name":52,"nameZh":6,"description":53,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":54,"categories":55,"keywords":56,"publishedAt":19},"01M76R4WZQZAXGGXMQCA0FZ716","zustand-store-ts","Create Zustand stores with TypeScript, subscribeWithSelector middleware, and proper state\u002Faction separation. Use when building React state management, creating global stores, or implementing reactive state patterns with Zustand.","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fzustand-store-ts\u002FSKILL.md",[],[],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":19},"01M76R4T9KENDH7FENGZQHBW4G","zustand-store-creator","Zustand Store Creator - Auto-activating skill for Frontend Development.\nTriggers on: zustand store creator, zustand store creator\nPart of the Frontend Development skill category.","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fzustand-store-creator\u002FSKILL.md",[],[],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":19},"01M76R3YWN84B7SANJ52X799ZE","zero-trust-config-helper","Zero Trust Config Helper - Auto-activating skill for Security Advanced.\nTriggers on: zero trust config helper, zero trust config helper\nPart of the Security Advanced skill category.","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fzero-trust-config-helper\u002FSKILL.md",[],[],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":19},"01M76R3HNSV2AEYSKHM915GJ58","zapier-integration-helper","Zapier Integration Helper - Auto-activating skill for Business Automation.\nTriggers on: zapier integration helper, zapier integration helper\nPart of the Business Automation skill category.","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fzapier-integration-helper\u002FSKILL.md",[],[],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":82,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":19},"01M76R3DJSKAT4FA7DV4BF3GCE","zai-cli","Execute z.AI CLI providing vision, search, reader, and GitHub exploration via CLI and MCP.\nUse when user needs image\u002Fvideo analysis, OCR, UI-to-code conversion, error diagnosis,\nreal-time web search, web page to markdown extraction, or GitHub code exploration.\nTrigger with phrases like \"analyze this image\", \"search the web for\", \"read this page\",\n\"explore this repo\", or \"use zai\". Requires Z_AI_API_KEY.","Apache-2.0","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fzai-cli\u002FSKILL.md",[],[],{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":19},"01M76R2KAM699XE9AJVAWE4H2E","yt-research","Research competitor YouTube channels, niches, and trending topics for your content strategy.\nUse this skill whenever the user says \"research channels\", \"analyze competitors\", \"find trending topics\",\n\"niche analysis\", \"competitive research\", \"what are other creators doing\", \"scrape YouTube channels\",\nor wants to understand the competitive landscape for a specific tool or topic area. Use when working with yt research. Trigger with 'yt', 'research'.","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fyt-research\u002FSKILL.md",[],[]]