[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F6ABT76P90ACX674525QT3":3,"skill-same:01M6F6ABT76P90ACX674525QT3":84},{"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":26,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":61,"commitSha":62,"skillDirectory":63,"forksCount":64,"repositoryHtmlUrl":65,"repositoryHomepageUrl":66,"ownerHtmlUrl":67,"ownerBlogUrl":6,"ownerDescription":68,"updatedAt":69,"install":70,"resources":83},"01M6F6ABT76P90ACX674525QT3","abridge-core-workflow-a",null,"Implement Abridge ambient clinical documentation capture-to-note pipeline.\nUse when building the primary encounter workflow: audio capture, real-time\ntranscription, AI note generation, and EHR note insertion.\nTrigger: \"abridge clinical workflow\", \"abridge encounter pipeline\",\n\"ambient documentation workflow\", \"abridge note generation\".","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\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fabridge-core-workflow-a\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"abridge core workflow a","core","abridge","workflow","write","trigger","io","clinical","time","clinical documentation","use","edit","read","Bash","healthcare","Audio","real-time","pipeline","code","documentation","2026-11-10 10:12:30",false,"---\nname: abridge-core-workflow-a\ndescription: |\n  Implement Abridge ambient clinical documentation capture-to-note pipeline.\n  Use when building the primary encounter workflow: audio capture, real-time\n  transcription, AI note generation, and EHR note insertion.\n  Trigger: \"abridge clinical workflow\", \"abridge encounter pipeline\",\n  \"ambient documentation workflow\", \"abridge note generation\".\nallowed-tools: Read, Write, Edit, Bash(npm:*), Grep\nversion: 1.0.0\nlicense: MIT\nauthor: Jeremy Longshore \u003Cjeremy@intentsolutions.io>\ntags: [saas, healthcare, ai, abridge, clinical-documentation]\ncompatible-with: claude-code\n---\n\n# Abridge Core Workflow A — Encounter-to-Note Pipeline\n\n## Overview\n\nPrimary money-path workflow for Abridge: capturing a clinical encounter via ambient listening, processing it through Abridge's generative AI, producing a structured clinical note, and pushing it into the EHR. This is the workflow that runs millions of times daily across health systems using Abridge.\n\n## Prerequisites\n\n- Completed `abridge-install-auth` setup\n- EHR integration configured (Epic preferred)\n- Audio capture infrastructure (microphone array or mobile device)\n- HIPAA-compliant transport layer (TLS 1.3+)\n\n## Instructions\n\n### Step 1: Initialize Encounter Session\n\n```typescript\n\u002F\u002F src\u002Fworkflows\u002Fencounter-pipeline.ts\nimport axios, { AxiosInstance } from 'axios';\n\ninterface EncounterContext {\n  patient_id: string;           \u002F\u002F FHIR Patient resource ID\n  encounter_id: string;         \u002F\u002F FHIR Encounter resource ID\n  provider_id: string;          \u002F\u002F NPI or FHIR Practitioner ID\n  specialty: string;            \u002F\u002F e.g., 'internal_medicine', 'cardiology'\n  encounter_type: 'outpatient' | 'inpatient' | 'emergency';\n  department_id?: string;\n  language: string;             \u002F\u002F ISO 639-1 (Abridge supports 28+ languages)\n}\n\ninterface SessionResponse {\n  session_id: string;\n  websocket_url: string;        \u002F\u002F For real-time audio streaming\n  status: 'initialized' | 'recording' | 'processing' | 'completed';\n  created_at: string;\n}\n\nasync function initializeEncounter(\n  api: AxiosInstance,\n  context: EncounterContext\n): Promise\u003CSessionResponse> {\n  const { data } = await api.post('\u002Fencounters\u002Fsessions', {\n    ...context,\n    capture_mode: 'ambient',       \u002F\u002F Background listening, no wake word\n    note_template: 'soap',         \u002F\u002F SOAP, H&P, progress note, etc.\n    real_time_preview: true,       \u002F\u002F Enable live note preview during encounter\n    smart_phrases_enabled: true,   \u002F\u002F Support Epic SmartPhrases in output\n  });\n\n  console.log(`Encounter session initialized: ${data.session_id}`);\n  console.log(`WebSocket URL: ${data.websocket_url}`);\n  return data;\n}\n```\n\n### Step 2: Stream Audio via WebSocket\n\n```typescript\n\u002F\u002F src\u002Fworkflows\u002Faudio-stream.ts\nimport WebSocket from 'ws';\n\ninterface AudioStreamConfig {\n  sampleRate: 16000;      \u002F\u002F 16kHz required\n  channels: 1;            \u002F\u002F Mono\n  encoding: 'pcm_s16le';  \u002F\u002F 16-bit PCM little-endian\n  chunkDurationMs: 100;   \u002F\u002F Send 100ms chunks\n}\n\ninterface TranscriptFragment {\n  type: 'transcript_fragment';\n  speaker: 'provider' | 'patient' | 'unknown';\n  text: string;\n  confidence: number;\n  timestamp_ms: number;\n  is_final: boolean;\n}\n\ninterface NotePreview {\n  type: 'note_preview';\n  sections: Record\u003Cstring, string>;\n  last_updated: string;\n}\n\nfunction streamEncounterAudio(\n  wsUrl: string,\n  audioSource: NodeJS.ReadableStream\n): Promise\u003Cvoid> {\n  return new Promise((resolve, reject) => {\n    const ws = new WebSocket(wsUrl, {\n      headers: {\n        'Authorization': `Bearer ${process.env.ABRIDGE_CLIENT_SECRET}`,\n        'X-Org-Id': process.env.ABRIDGE_ORG_ID!,\n      },\n    });\n\n    ws.on('open', () => {\n      console.log('Audio stream connected');\n\n      \u002F\u002F Stream audio chunks\n      audioSource.on('data', (chunk: Buffer) => {\n        if (ws.readyState === WebSocket.OPEN) {\n          ws.send(chunk);\n        }\n      });\n\n      audioSource.on('end', () => {\n        ws.send(JSON.stringify({ type: 'end_of_stream' }));\n      });\n    });\n\n    ws.on('message', (data: Buffer) => {\n      const msg = JSON.parse(data.toString());\n\n      if (msg.type === 'transcript_fragment') {\n        const frag = msg as TranscriptFragment;\n        if (frag.is_final) {\n          console.log(`[${frag.speaker}]: ${frag.text}`);\n        }\n      }\n\n      if (msg.type === 'note_preview') {\n        const preview = msg as NotePreview;\n        console.log('Live note preview updated:', Object.keys(preview.sections).join(', '));\n      }\n    });\n\n    ws.on('close', () => resolve());\n    ws.on('error', reject);\n  });\n}\n\nexport { streamEncounterAudio, AudioStreamConfig };\n```\n\n### Step 3: Generate and Retrieve Clinical Note\n\n```typescript\n\u002F\u002F src\u002Fworkflows\u002Fnote-generation.ts\ninterface ClinicalNote {\n  note_id: string;\n  session_id: string;\n  template: 'soap' | 'hp' | 'progress' | 'procedure';\n  sections: {\n    chief_complaint: string;\n    history_present_illness: string;\n    review_of_systems: string;\n    physical_exam: string;\n    assessment: string;\n    plan: string;\n    medications?: string;\n    allergies?: string;\n  };\n  coding: {\n    icd10: Array\u003C{ code: string; description: string; confidence: number }>;\n    cpt: Array\u003C{ code: string; description: string; confidence: number }>;\n    hcc: Array\u003C{ code: string; raf_score: number }>;  \u002F\u002F Risk adjustment\n  };\n  source_map: Array\u003C{\n    section: string;\n    note_text: string;\n    source_transcript: string;\n    audio_start_ms: number;\n    audio_end_ms: number;\n  }>;\n  quality_metrics: {\n    confidence_score: number;\n    completeness_score: number;\n    coding_accuracy: number;\n  };\n}\n\nasync function generateAndRetrieveNote(\n  api: AxiosInstance,\n  sessionId: string\n): Promise\u003CClinicalNote> {\n  \u002F\u002F Finalize session and trigger note generation\n  await api.post(`\u002Fencounters\u002Fsessions\u002F${sessionId}\u002Ffinalize`);\n\n  \u002F\u002F Poll for completed note (typically 10-30 seconds)\n  for (let i = 0; i \u003C 60; i++) {\n    const { data } = await api.get(`\u002Fencounters\u002Fsessions\u002F${sessionId}\u002Fnote`);\n    if (data.status === 'completed') {\n      return data.note;\n    }\n    await new Promise(r => setTimeout(r, 1000));\n  }\n  throw new Error(`Note generation timed out for session ${sessionId}`);\n}\n```\n\n### Step 4: Push Note to EHR via FHIR\n\n```typescript\n\u002F\u002F src\u002Fworkflows\u002Fehr-push.ts\nimport axios from 'axios';\n\ninterface FhirDocumentReference {\n  resourceType: 'DocumentReference';\n  status: 'current';\n  type: { coding: Array\u003C{ system: string; code: string; display: string }> };\n  subject: { reference: string };\n  context: { encounter: Array\u003C{ reference: string }> };\n  content: Array\u003C{ attachment: { contentType: string; data: string } }>;\n}\n\nasync function pushNoteToEpic(\n  fhirBaseUrl: string,\n  accessToken: string,\n  note: { patient_id: string; encounter_id: string; content: string }\n): Promise\u003Cstring> {\n  const docRef: FhirDocumentReference = {\n    resourceType: 'DocumentReference',\n    status: 'current',\n    type: {\n      coding: [{\n        system: 'http:\u002F\u002Floinc.org',\n        code: '11506-3',\n        display: 'Progress note',\n      }],\n    },\n    subject: { reference: `Patient\u002F${note.patient_id}` },\n    context: { encounter: [{ reference: `Encounter\u002F${note.encounter_id}` }] },\n    content: [{\n      attachment: {\n        contentType: 'text\u002Fplain',\n        data: Buffer.from(note.content).toString('base64'),\n      },\n    }],\n  };\n\n  const response = await axios.post(\n    `${fhirBaseUrl}\u002FDocumentReference`,\n    docRef,\n    { headers: { Authorization: `Bearer ${accessToken}`, 'Content-Type': 'application\u002Ffhir+json' } }\n  );\n\n  console.log(`Note pushed to Epic: DocumentReference\u002F${response.data.id}`);\n  return response.data.id;\n}\n```\n\n## Output\n\n- Ambient encounter session with real-time transcription\n- Structured SOAP note with ICD-10, CPT, and HCC codes\n- Source-mapped citations linking AI output to conversation audio\n- FHIR DocumentReference created in Epic EHR\n\n## Error Handling\n\n| Error | Cause | Solution |\n|-------|-------|----------|\n| WebSocket disconnect | Network instability | Implement reconnection with buffered audio |\n| Empty transcript | Microphone not capturing | Verify audio input device and sample rate |\n| Low confidence score | Background noise | Use directional mic or noise cancellation |\n| FHIR push `422` | Invalid resource format | Validate FHIR R4 schema before POST |\n| Note generation timeout | Complex multi-specialty encounter | Increase timeout; split into segments |\n\n## Resources\n\n- [Abridge Clinician Platform](https:\u002F\u002Fwww.abridge.com\u002Fplatform\u002Fclinicians)\n- [FHIR R4 DocumentReference](https:\u002F\u002Fhl7.org\u002Ffhir\u002FR4\u002Fdocumentreference.html)\n- [Epic FHIR API](https:\u002F\u002Ffhir.epic.com\u002F)\n\n## Next Steps\n\nFor patient-facing summaries and portal integration, see `abridge-core-workflow-b`.\n\n","# Abridge Core Workflow A — Encounter-to-Note Pipeline\n\n## Overview\n\nPrimary money-path workflow for Abridge: capturing a clinical encounter via ambient listening, processing it through Abridge's generative AI, producing a structured clinical note, and pushing it into the EHR. This is the workflow that runs millions of times daily across health systems using Abridge.\n\n## Prerequisites\n\n- Completed `abridge-install-auth` setup\n- EHR integration configured (Epic preferred)\n- Audio capture infrastructure (microphone array or mobile device)\n- HIPAA-compliant transport layer (TLS 1.3+)\n\n## Instructions\n\n### Step 1: Initialize Encounter Session\n\n```typescript\n\u002F\u002F src\u002Fworkflows\u002Fencounter-pipeline.ts\nimport axios, { AxiosInstance } from 'axios';\n\ninterface EncounterContext {\n  patient_id: string;           \u002F\u002F FHIR Patient resource ID\n  encounter_id: string;         \u002F\u002F FHIR Encounter resource ID\n  provider_id: string;          \u002F\u002F NPI or FHIR Practitioner ID\n  specialty: string;            \u002F\u002F e.g., 'internal_medicine', 'cardiology'\n  encounter_type: 'outpatient' | 'inpatient' | 'emergency';\n  department_id?: string;\n  language: string;             \u002F\u002F ISO 639-1 (Abridge supports 28+ languages)\n}\n\ninterface SessionResponse {\n  session_id: string;\n  websocket_url: string;        \u002F\u002F For real-time audio streaming\n  status: 'initialized' | 'recording' | 'processing' | 'completed';\n  created_at: string;\n}\n\nasync function initializeEncounter(\n  api: AxiosInstance,\n  context: EncounterContext\n): Promise\u003CSessionResponse> {\n  const { data } = await api.post('\u002Fencounters\u002Fsessions', {\n    ...context,\n    capture_mode: 'ambient',       \u002F\u002F Background listening, no wake word\n    note_template: 'soap',         \u002F\u002F SOAP, H&P, progress note, etc.\n    real_time_preview: true,       \u002F\u002F Enable live note preview during encounter\n    smart_phrases_enabled: true,   \u002F\u002F Support Epic SmartPhrases in output\n  });\n\n  console.log(`Encounter session initialized: ${data.session_id}`);\n  console.log(`WebSocket URL: ${data.websocket_url}`);\n  return data;\n}\n```\n\n### Step 2: Stream Audio via WebSocket\n\n```typescript\n\u002F\u002F src\u002Fworkflows\u002Faudio-stream.ts\nimport WebSocket from 'ws';\n\ninterface AudioStreamConfig {\n  sampleRate: 16000;      \u002F\u002F 16kHz required\n  channels: 1;            \u002F\u002F Mono\n  encoding: 'pcm_s16le';  \u002F\u002F 16-bit PCM little-endian\n  chunkDurationMs: 100;   \u002F\u002F Send 100ms chunks\n}\n\ninterface TranscriptFragment {\n  type: 'transcript_fragment';\n  speaker: 'provider' | 'patient' | 'unknown';\n  text: string;\n  confidence: number;\n  timestamp_ms: number;\n  is_final: boolean;\n}\n\ninterface NotePreview {\n  type: 'note_preview';\n  sections: Record\u003Cstring, string>;\n  last_updated: string;\n}\n\nfunction streamEncounterAudio(\n  wsUrl: string,\n  audioSource: NodeJS.ReadableStream\n): Promise\u003Cvoid> {\n  return new Promise((resolve, reject) => {\n    const ws = new WebSocket(wsUrl, {\n      headers: {\n        'Authorization': `Bearer ${process.env.ABRIDGE_CLIENT_SECRET}`,\n        'X-Org-Id': process.env.ABRIDGE_ORG_ID!,\n      },\n    });\n\n    ws.on('open', () => {\n      console.log('Audio stream connected');\n\n      \u002F\u002F Stream audio chunks\n      audioSource.on('data', (chunk: Buffer) => {\n        if (ws.readyState === WebSocket.OPEN) {\n          ws.send(chunk);\n        }\n      });\n\n      audioSource.on('end', () => {\n        ws.send(JSON.stringify({ type: 'end_of_stream' }));\n      });\n    });\n\n    ws.on('message', (data: Buffer) => {\n      const msg = JSON.parse(data.toString());\n\n      if (msg.type === 'transcript_fragment') {\n        const frag = msg as TranscriptFragment;\n        if (frag.is_final) {\n          console.log(`[${frag.speaker}]: ${frag.text}`);\n        }\n      }\n\n      if (msg.type === 'note_preview') {\n        const preview = msg as NotePreview;\n        console.log('Live note preview updated:', Object.keys(preview.sections).join(', '));\n      }\n    });\n\n    ws.on('close', () => resolve());\n    ws.on('error', reject);\n  });\n}\n\nexport { streamEncounterAudio, AudioStreamConfig };\n```\n\n### Step 3: Generate and Retrieve Clinical Note\n\n```typescript\n\u002F\u002F src\u002Fworkflows\u002Fnote-generation.ts\ninterface ClinicalNote {\n  note_id: string;\n  session_id: string;\n  template: 'soap' | 'hp' | 'progress' | 'procedure';\n  sections: {\n    chief_complaint: string;\n    history_present_illness: string;\n    review_of_systems: string;\n    physical_exam: string;\n    assessment: string;\n    plan: string;\n    medications?: string;\n    allergies?: string;\n  };\n  coding: {\n    icd10: Array\u003C{ code: string; description: string; confidence: number }>;\n    cpt: Array\u003C{ code: string; description: string; confidence: number }>;\n    hcc: Array\u003C{ code: string; raf_score: number }>;  \u002F\u002F Risk adjustment\n  };\n  source_map: Array\u003C{\n    section: string;\n    note_text: string;\n    source_transcript: string;\n    audio_start_ms: number;\n    audio_end_ms: number;\n  }>;\n  quality_metrics: {\n    confidence_score: number;\n    completeness_score: number;\n    coding_accuracy: number;\n  };\n}\n\nasync function generateAndRetrieveNote(\n  api: AxiosInstance,\n  sessionId: string\n): Promise\u003CClinicalNote> {\n  \u002F\u002F Finalize session and trigger note generation\n  await api.post(`\u002Fencounters\u002Fsessions\u002F${sessionId}\u002Ffinalize`);\n\n  \u002F\u002F Poll for completed note (typically 10-30 seconds)\n  for (let i = 0; i \u003C 60; i++) {\n    const { data } = await api.get(`\u002Fencounters\u002Fsessions\u002F${sessionId}\u002Fnote`);\n    if (data.status === 'completed') {\n      return data.note;\n    }\n    await new Promise(r => setTimeout(r, 1000));\n  }\n  throw new Error(`Note generation timed out for session ${sessionId}`);\n}\n```\n\n### Step 4: Push Note to EHR via FHIR\n\n```typescript\n\u002F\u002F src\u002Fworkflows\u002Fehr-push.ts\nimport axios from 'axios';\n\ninterface FhirDocumentReference {\n  resourceType: 'DocumentReference';\n  status: 'current';\n  type: { coding: Array\u003C{ system: string; code: string; display: string }> };\n  subject: { reference: string };\n  context: { encounter: Array\u003C{ reference: string }> };\n  content: Array\u003C{ attachment: { contentType: string; data: string } }>;\n}\n\nasync function pushNoteToEpic(\n  fhirBaseUrl: string,\n  accessToken: string,\n  note: { patient_id: string; encounter_id: string; content: string }\n): Promise\u003Cstring> {\n  const docRef: FhirDocumentReference = {\n    resourceType: 'DocumentReference',\n    status: 'current',\n    type: {\n      coding: [{\n        system: 'http:\u002F\u002Floinc.org',\n        code: '11506-3',\n        display: 'Progress note',\n      }],\n    },\n    subject: { reference: `Patient\u002F${note.patient_id}` },\n    context: { encounter: [{ reference: `Encounter\u002F${note.encounter_id}` }] },\n    content: [{\n      attachment: {\n        contentType: 'text\u002Fplain',\n        data: Buffer.from(note.content).toString('base64'),\n      },\n    }],\n  };\n\n  const response = await axios.post(\n    `${fhirBaseUrl}\u002FDocumentReference`,\n    docRef,\n    { headers: { Authorization: `Bearer ${accessToken}`, 'Content-Type': 'application\u002Ffhir+json' } }\n  );\n\n  console.log(`Note pushed to Epic: DocumentReference\u002F${response.data.id}`);\n  return response.data.id;\n}\n```\n\n## Output\n\n- Ambient encounter session with real-time transcription\n- Structured SOAP note with ICD-10, CPT, and HCC codes\n- Source-mapped citations linking AI output to conversation audio\n- FHIR DocumentReference created in Epic EHR\n\n## Error Handling\n\n| Error | Cause | Solution |\n|-------|-------|----------|\n| WebSocket disconnect | Network instability | Implement reconnection with buffered audio |\n| Empty transcript | Microphone not capturing | Verify audio input device and sample rate |\n| Low confidence score | Background noise | Use directional mic or noise cancellation |\n| FHIR push `422` | Invalid resource format | Validate FHIR R4 schema before POST |\n| Note generation timeout | Complex multi-specialty encounter | Increase timeout; split into segments |\n\n## Resources\n\n- [Abridge Clinician Platform](https:\u002F\u002Fwww.abridge.com\u002Fplatform\u002Fclinicians)\n- [FHIR R4 DocumentReference](https:\u002F\u002Fhl7.org\u002Ffhir\u002FR4\u002Fdocumentreference.html)\n- [Epic FHIR API](https:\u002F\u002Ffhir.epic.com\u002F)\n\n## Next Steps\n\nFor patient-facing summaries and portal integration, see `abridge-core-workflow-b`.\n\n",{"name":5,"tags":52,"author":56,"license":15,"version":57,"description":58,"allowed-tools":59,"compatible-with":60},[53,41,54,29,55],"saas","ai","clinical-documentation","Jeremy Longshore \u003Cjeremy@intentsolutions.io>","1.0.0","Implement Abridge ambient clinical documentation capture-to-note pipeline.\nUse when building the primary encounter workflow: audio capture, real-time\ntranscription, AI note generation, and EHR note insertion.\nTrigger: \"abridge clinical workflow\", \"abridge encounter pipeline\",\n\"ambient documentation workflow\", \"abridge note generation\".\n","Read, Write, Edit, Bash(npm:*), Grep","claude-code","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fabridge-core-workflow-a",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":8,"skillName":5,"commands":71,"prompt":81,"zipAvailable":82},[72,75,78],{"tool":73,"command":74},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill abridge-core-workflow-a",{"tool":76,"command":77},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill abridge-core-workflow-a",{"tool":79,"command":80},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill abridge-core-workflow-a","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fabridge-core-workflow-a\u002FSKILL.md",true,[],[85,95,105,114,120,127],{"skillNo":86,"name":87,"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":88,"categories":89,"keywords":91,"publishedAt":47},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[90],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[92,93,94],"model","model hierarchy","model hierarchy skill",{"skillNo":96,"name":97,"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":98,"categories":99,"keywords":101,"publishedAt":47},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[100],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[102,103,104],"MCP","zoom","zoom mcp",{"skillNo":106,"name":107,"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":108,"categories":109,"keywords":110,"publishedAt":47},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[111,112,113,103],"sdk","zoom apps sdk","apps",{"skillNo":115,"name":116,"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":117,"categories":118,"keywords":119,"publishedAt":47},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[116],{"skillNo":121,"name":122,"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":123,"categories":124,"keywords":126,"publishedAt":47},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[125],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[122],{"skillNo":128,"name":129,"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":130,"categories":131,"keywords":132,"publishedAt":47},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[129]]