[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EM5AFNK7BWXBQX3FPVM3R8":3,"skill-same:01M6EM5AFNK7BWXBQX3FPVM3R8":114},{"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":46,"linkOnly":47,"markdownContent":48,"markdownBody":49,"frontMatter":50,"refName":51,"commitSha":52,"skillDirectory":53,"forksCount":54,"repositoryHtmlUrl":55,"repositoryHomepageUrl":56,"ownerHtmlUrl":57,"ownerBlogUrl":6,"ownerDescription":58,"updatedAt":59,"install":60,"resources":73},"01M6EM5AFNK7BWXBQX3FPVM3R8","working-with-spreadsheets",null,"Creates and edits Excel spreadsheets with formulas, formatting, and financial modeling standards.\nUse when working with .xlsx files, financial models, data analysis, or formula-heavy spreadsheets.\nCovers formula recalculation, color coding standards, and common pitfalls.","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\u002Faiskillstore\u002Fmarketplace\u002Fasmayaseen\u002Fworking-with-spreadsheets\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000004","电子表格","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000013","分析与可视化",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"working with spreadsheets","spreadsheets","standards","color","formatting","modeling","excel spreadsheets","formula","models","files","financial modeling","xlsx","use","common","coding","analysis","data","coding standards","data analysis","2026-11-10 10:12:30",false,"---\r\nname: working-with-spreadsheets\r\ndescription: |\r\n  Creates and edits Excel spreadsheets with formulas, formatting, and financial modeling standards.\r\n  Use when working with .xlsx files, financial models, data analysis, or formula-heavy spreadsheets.\r\n  Covers formula recalculation, color coding standards, and common pitfalls.\r\n---\r\n\r\n# Working with Spreadsheets\r\n\r\n## Quick Start\r\n\r\n```python\r\nfrom openpyxl import Workbook\r\n\r\nwb = Workbook()\r\nsheet = wb.active\r\nsheet['A1'] = 'Revenue'\r\nsheet['B1'] = 1000\r\nsheet['B2'] = '=B1*1.1'  # Use formulas, not hardcoded values!\r\nwb.save('output.xlsx')\r\n```\r\n\r\n## Critical Rule: Use Formulas, Not Hardcoded Values\r\n\r\n**Always use Excel formulas instead of calculating in Python.**\r\n\r\n```python\r\n# WRONG - Hardcoding calculated values\r\ntotal = df['Sales'].sum()\r\nsheet['B10'] = total  # Hardcodes 5000\r\n\r\n# CORRECT - Using Excel formulas\r\nsheet['B10'] = '=SUM(B2:B9)'\r\n```\r\n\r\n## Financial Model Color Coding Standards\r\n\r\n| Color | RGB | Usage |\r\n|-------|-----|-------|\r\n| **Blue text** | 0,0,255 | Hardcoded inputs, scenario values |\r\n| **Black text** | 0,0,0 | ALL formulas and calculations |\r\n| **Green text** | 0,128,0 | Links from other worksheets |\r\n| **Red text** | 255,0,0 | External links to other files |\r\n| **Yellow background** | 255,255,0 | Key assumptions needing attention |\r\n\r\n```python\r\nfrom openpyxl.styles import Font\r\n\r\n# Input cell (user changeable)\r\nsheet['B5'].font = Font(color='0000FF')  # Blue\r\n\r\n# Formula cell\r\nsheet['C5'] = '=B5*1.1'\r\nsheet['C5'].font = Font(color='000000')  # Black\r\n\r\n# Cross-sheet link\r\nsheet['D5'] = \"=Sheet2!A1\"\r\nsheet['D5'].font = Font(color='008000')  # Green\r\n```\r\n\r\n## Number Formatting Standards\r\n\r\n```python\r\n# Currency with thousands separator\r\nsheet['B5'].number_format = '$#,##0'\r\n\r\n# Zeros display as dash\r\nsheet['B5'].number_format = '$#,##0;($#,##0);-'\r\n\r\n# Percentages with one decimal\r\nsheet['C5'].number_format = '0.0%'\r\n\r\n# Valuation multiples\r\nsheet['D5'].number_format = '0.0x'\r\n\r\n# Years as text (not 2,024)\r\nsheet['A1'] = '2024'  # String, not number\r\n```\r\n\r\n## Library Selection\r\n\r\n| Task | Library | Example |\r\n|------|---------|---------|\r\n| Data analysis | pandas | `df = pd.read_excel('file.xlsx')` |\r\n| Formulas & formatting | openpyxl | `sheet['A1'] = '=SUM(B:B)'` |\r\n| Large files (read) | openpyxl | `load_workbook('file.xlsx', read_only=True)` |\r\n| Large files (write) | openpyxl | `Workbook(write_only=True)` |\r\n\r\n## Reading Excel Files\r\n\r\n```python\r\nimport pandas as pd\r\nfrom openpyxl import load_workbook\r\n\r\n# pandas - data analysis\r\ndf = pd.read_excel('file.xlsx')\r\nall_sheets = pd.read_excel('file.xlsx', sheet_name=None)  # Dict of DataFrames\r\n\r\n# openpyxl - preserve formulas\r\nwb = load_workbook('file.xlsx')\r\nsheet = wb.active\r\nprint(sheet['A1'].value)  # Returns formula string\r\n\r\n# openpyxl - get calculated values (WARNING: loses formulas on save!)\r\nwb = load_workbook('file.xlsx', data_only=True)\r\n```\r\n\r\n## Creating Excel Files\r\n\r\n```python\r\nfrom openpyxl import Workbook\r\nfrom openpyxl.styles import Font, PatternFill, Alignment\r\n\r\nwb = Workbook()\r\nsheet = wb.active\r\nsheet.title = 'Model'\r\n\r\n# Headers\r\nsheet['A1'] = 'Metric'\r\nsheet['B1'] = '2024'\r\nsheet['A1'].font = Font(bold=True)\r\n\r\n# Data with formulas\r\nsheet['A2'] = 'Revenue'\r\nsheet['B2'] = 1000000\r\nsheet['B2'].font = Font(color='0000FF')  # Blue = input\r\n\r\nsheet['A3'] = 'Growth'\r\nsheet['B3'] = '=B2*0.1'\r\nsheet['B3'].font = Font(color='000000')  # Black = formula\r\n\r\n# Formatting\r\nsheet['B2'].number_format = '$#,##0'\r\nsheet.column_dimensions['A'].width = 20\r\n\r\nwb.save('model.xlsx')\r\n```\r\n\r\n## Editing Existing Files\r\n\r\n```python\r\nfrom openpyxl import load_workbook\r\n\r\nwb = load_workbook('existing.xlsx')\r\nsheet = wb['Data']  # Or wb.active\r\n\r\n# Modify cells\r\nsheet['A1'] = 'Updated Value'\r\nsheet.insert_rows(2)\r\nsheet.delete_cols(3)\r\n\r\n# Add new sheet\r\nnew_sheet = wb.create_sheet('Analysis')\r\nnew_sheet['A1'] = '=Data!B5'  # Cross-sheet reference\r\n\r\nwb.save('modified.xlsx')\r\n```\r\n\r\n## Formula Recalculation\r\n\r\n**openpyxl writes formulas but doesn't calculate values.** Use LibreOffice to recalculate:\r\n\r\n```bash\r\n# Recalculate and check for errors\r\npython recalc.py output.xlsx\r\n```\r\n\r\nThe script returns JSON:\r\n```json\r\n{\r\n  \"status\": \"success\",  \u002F\u002F or \"errors_found\"\r\n  \"total_errors\": 0,\r\n  \"total_formulas\": 42,\r\n  \"error_summary\": {\r\n    \"#REF!\": {\"count\": 2, \"locations\": [\"Sheet1!B5\", \"Sheet1!C10\"]}\r\n  }\r\n}\r\n```\r\n\r\n## Formula Verification Checklist\r\n\r\n### Before Building\r\n- [ ] Test 2-3 sample references first\r\n- [ ] Confirm column mapping (column 64 = BL, not BK)\r\n- [ ] Remember: DataFrame row 5 = Excel row 6 (1-indexed)\r\n\r\n### Common Pitfalls\r\n- [ ] Check for NaN with `pd.notna()` before using values\r\n- [ ] FY data often in columns 50+ (far right)\r\n- [ ] Search ALL occurrences, not just first match\r\n- [ ] Check denominators before division (#DIV\u002F0!)\r\n- [ ] Verify cross-sheet references use correct format (`Sheet1!A1`)\r\n\r\n### After Building\r\n- [ ] Run `recalc.py` and fix any errors\r\n- [ ] Verify #REF!, #DIV\u002F0!, #VALUE!, #NAME? = 0\r\n\r\n## Common Errors\r\n\r\n| Error | Cause | Fix |\r\n|-------|-------|-----|\r\n| #REF! | Invalid cell reference | Check deleted rows\u002Fcolumns |\r\n| #DIV\u002F0! | Division by zero | Add IF check: `=IF(B5=0,0,A5\u002FB5)` |\r\n| #VALUE! | Wrong data type | Check cell contains expected type |\r\n| #NAME? | Unknown function | Check spelling, quotes around text |\r\n\r\n## Verification\r\n\r\nRun: `python scripts\u002Fverify.py`\r\n\r\n## Related Skills\r\n\r\n- `building-nextjs-apps` - Frontend for spreadsheet uploads\r\n- `scaffolding-fastapi-dapr` - API for spreadsheet processing","# Working with Spreadsheets\r\n\r\n## Quick Start\r\n\r\n```python\r\nfrom openpyxl import Workbook\r\n\r\nwb = Workbook()\r\nsheet = wb.active\r\nsheet['A1'] = 'Revenue'\r\nsheet['B1'] = 1000\r\nsheet['B2'] = '=B1*1.1'  # Use formulas, not hardcoded values!\r\nwb.save('output.xlsx')\r\n```\r\n\r\n## Critical Rule: Use Formulas, Not Hardcoded Values\r\n\r\n**Always use Excel formulas instead of calculating in Python.**\r\n\r\n```python\r\n# WRONG - Hardcoding calculated values\r\ntotal = df['Sales'].sum()\r\nsheet['B10'] = total  # Hardcodes 5000\r\n\r\n# CORRECT - Using Excel formulas\r\nsheet['B10'] = '=SUM(B2:B9)'\r\n```\r\n\r\n## Financial Model Color Coding Standards\r\n\r\n| Color | RGB | Usage |\r\n|-------|-----|-------|\r\n| **Blue text** | 0,0,255 | Hardcoded inputs, scenario values |\r\n| **Black text** | 0,0,0 | ALL formulas and calculations |\r\n| **Green text** | 0,128,0 | Links from other worksheets |\r\n| **Red text** | 255,0,0 | External links to other files |\r\n| **Yellow background** | 255,255,0 | Key assumptions needing attention |\r\n\r\n```python\r\nfrom openpyxl.styles import Font\r\n\r\n# Input cell (user changeable)\r\nsheet['B5'].font = Font(color='0000FF')  # Blue\r\n\r\n# Formula cell\r\nsheet['C5'] = '=B5*1.1'\r\nsheet['C5'].font = Font(color='000000')  # Black\r\n\r\n# Cross-sheet link\r\nsheet['D5'] = \"=Sheet2!A1\"\r\nsheet['D5'].font = Font(color='008000')  # Green\r\n```\r\n\r\n## Number Formatting Standards\r\n\r\n```python\r\n# Currency with thousands separator\r\nsheet['B5'].number_format = '$#,##0'\r\n\r\n# Zeros display as dash\r\nsheet['B5'].number_format = '$#,##0;($#,##0);-'\r\n\r\n# Percentages with one decimal\r\nsheet['C5'].number_format = '0.0%'\r\n\r\n# Valuation multiples\r\nsheet['D5'].number_format = '0.0x'\r\n\r\n# Years as text (not 2,024)\r\nsheet['A1'] = '2024'  # String, not number\r\n```\r\n\r\n## Library Selection\r\n\r\n| Task | Library | Example |\r\n|------|---------|---------|\r\n| Data analysis | pandas | `df = pd.read_excel('file.xlsx')` |\r\n| Formulas & formatting | openpyxl | `sheet['A1'] = '=SUM(B:B)'` |\r\n| Large files (read) | openpyxl | `load_workbook('file.xlsx', read_only=True)` |\r\n| Large files (write) | openpyxl | `Workbook(write_only=True)` |\r\n\r\n## Reading Excel Files\r\n\r\n```python\r\nimport pandas as pd\r\nfrom openpyxl import load_workbook\r\n\r\n# pandas - data analysis\r\ndf = pd.read_excel('file.xlsx')\r\nall_sheets = pd.read_excel('file.xlsx', sheet_name=None)  # Dict of DataFrames\r\n\r\n# openpyxl - preserve formulas\r\nwb = load_workbook('file.xlsx')\r\nsheet = wb.active\r\nprint(sheet['A1'].value)  # Returns formula string\r\n\r\n# openpyxl - get calculated values (WARNING: loses formulas on save!)\r\nwb = load_workbook('file.xlsx', data_only=True)\r\n```\r\n\r\n## Creating Excel Files\r\n\r\n```python\r\nfrom openpyxl import Workbook\r\nfrom openpyxl.styles import Font, PatternFill, Alignment\r\n\r\nwb = Workbook()\r\nsheet = wb.active\r\nsheet.title = 'Model'\r\n\r\n# Headers\r\nsheet['A1'] = 'Metric'\r\nsheet['B1'] = '2024'\r\nsheet['A1'].font = Font(bold=True)\r\n\r\n# Data with formulas\r\nsheet['A2'] = 'Revenue'\r\nsheet['B2'] = 1000000\r\nsheet['B2'].font = Font(color='0000FF')  # Blue = input\r\n\r\nsheet['A3'] = 'Growth'\r\nsheet['B3'] = '=B2*0.1'\r\nsheet['B3'].font = Font(color='000000')  # Black = formula\r\n\r\n# Formatting\r\nsheet['B2'].number_format = '$#,##0'\r\nsheet.column_dimensions['A'].width = 20\r\n\r\nwb.save('model.xlsx')\r\n```\r\n\r\n## Editing Existing Files\r\n\r\n```python\r\nfrom openpyxl import load_workbook\r\n\r\nwb = load_workbook('existing.xlsx')\r\nsheet = wb['Data']  # Or wb.active\r\n\r\n# Modify cells\r\nsheet['A1'] = 'Updated Value'\r\nsheet.insert_rows(2)\r\nsheet.delete_cols(3)\r\n\r\n# Add new sheet\r\nnew_sheet = wb.create_sheet('Analysis')\r\nnew_sheet['A1'] = '=Data!B5'  # Cross-sheet reference\r\n\r\nwb.save('modified.xlsx')\r\n```\r\n\r\n## Formula Recalculation\r\n\r\n**openpyxl writes formulas but doesn't calculate values.** Use LibreOffice to recalculate:\r\n\r\n```bash\r\n# Recalculate and check for errors\r\npython recalc.py output.xlsx\r\n```\r\n\r\nThe script returns JSON:\r\n```json\r\n{\r\n  \"status\": \"success\",  \u002F\u002F or \"errors_found\"\r\n  \"total_errors\": 0,\r\n  \"total_formulas\": 42,\r\n  \"error_summary\": {\r\n    \"#REF!\": {\"count\": 2, \"locations\": [\"Sheet1!B5\", \"Sheet1!C10\"]}\r\n  }\r\n}\r\n```\r\n\r\n## Formula Verification Checklist\r\n\r\n### Before Building\r\n- [ ] Test 2-3 sample references first\r\n- [ ] Confirm column mapping (column 64 = BL, not BK)\r\n- [ ] Remember: DataFrame row 5 = Excel row 6 (1-indexed)\r\n\r\n### Common Pitfalls\r\n- [ ] Check for NaN with `pd.notna()` before using values\r\n- [ ] FY data often in columns 50+ (far right)\r\n- [ ] Search ALL occurrences, not just first match\r\n- [ ] Check denominators before division (#DIV\u002F0!)\r\n- [ ] Verify cross-sheet references use correct format (`Sheet1!A1`)\r\n\r\n### After Building\r\n- [ ] Run `recalc.py` and fix any errors\r\n- [ ] Verify #REF!, #DIV\u002F0!, #VALUE!, #NAME? = 0\r\n\r\n## Common Errors\r\n\r\n| Error | Cause | Fix |\r\n|-------|-------|-----|\r\n| #REF! | Invalid cell reference | Check deleted rows\u002Fcolumns |\r\n| #DIV\u002F0! | Division by zero | Add IF check: `=IF(B5=0,0,A5\u002FB5)` |\r\n| #VALUE! | Wrong data type | Check cell contains expected type |\r\n| #NAME? | Unknown function | Check spelling, quotes around text |\r\n\r\n## Verification\r\n\r\nRun: `python scripts\u002Fverify.py`\r\n\r\n## Related Skills\r\n\r\n- `building-nextjs-apps` - Frontend for spreadsheet uploads\r\n- `scaffolding-fastapi-dapr` - API for spreadsheet processing",{"name":5,"description":7},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Faiskillstore\u002Fmarketplace\u002Fasmayaseen\u002Fworking-with-spreadsheets",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":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill working-with-spreadsheets",{"tool":66,"command":67},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill working-with-spreadsheets",{"tool":69,"command":70},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill working-with-spreadsheets","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fasmayaseen\u002Fworking-with-spreadsheets\u002FSKILL.md",true,[74,80,84,88,92,96,100,104,110],{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002FAUDIT.md","REFERENCE","参考文档",1362,"https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Fcodex\u002Forc\u002Fcontent\u002Fskills\u002Fcode-review\u002Freferences\u002FAUDIT.md",{"path":81,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":82,"sourceHtmlUrl":83},"references\u002FPHASE-1-SCOPE.md",1521,"https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Fcodex\u002Forc\u002Fcontent\u002Fskills\u002Fcode-review\u002Freferences\u002FPHASE-1-SCOPE.md",{"path":85,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":86,"sourceHtmlUrl":87},"references\u002FPHASE-3-DISPATCH.md",1437,"https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Fcodex\u002Forc\u002Fcontent\u002Fskills\u002Fcode-review\u002Freferences\u002FPHASE-3-DISPATCH.md",{"path":89,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":90,"sourceHtmlUrl":91},"references\u002FPHASE-4-MERGE.md",1517,"https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Fcodex\u002Forc\u002Fcontent\u002Fskills\u002Fcode-review\u002Freferences\u002FPHASE-4-MERGE.md",{"path":93,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":94,"sourceHtmlUrl":95},"references\u002FPHASE-5-COMPOSE.md",1389,"https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Fcodex\u002Forc\u002Fcontent\u002Fskills\u002Fcode-review\u002Freferences\u002FPHASE-5-COMPOSE.md",{"path":97,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":98,"sourceHtmlUrl":99},"references\u002FPHASE-6-POST.md",2298,"https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Fcodex\u002Forc\u002Fcontent\u002Fskills\u002Fcode-review\u002Freferences\u002FPHASE-6-POST.md",{"path":101,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":102,"sourceHtmlUrl":103},"references\u002FPHASE-8-SUMMARY.md",670,"https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Fcodex\u002Forc\u002Fcontent\u002Fskills\u002Fcode-review\u002Freferences\u002FPHASE-8-SUMMARY.md",{"path":105,"resourceType":106,"resourceTypeDesc":107,"sizeBytes":108,"sourceHtmlUrl":109},"scripts\u002Fverify.py","SCRIPT","脚本",996,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fasmayaseen\u002Fworking-with-spreadsheets\u002Fscripts\u002Fverify.py",{"path":111,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":112,"sourceHtmlUrl":113},"skill-report.json",9799,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fasmayaseen\u002Fworking-with-spreadsheets\u002Fskill-report.json",[115,127,137,146,152,159],{"skillNo":116,"name":117,"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":118,"categories":119,"keywords":123,"publishedAt":46},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[120],{"categoryNo":121,"categoryName":122,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[124,125,126],"model","model hierarchy","model hierarchy skill",{"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":133,"publishedAt":46},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[132],{"categoryNo":121,"categoryName":122,"taxonomyType":21,"taxonomyTypeDesc":22},[134,135,136],"MCP","zoom","zoom mcp",{"skillNo":138,"name":139,"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":140,"categories":141,"keywords":142,"publishedAt":46},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[143,144,145,135],"sdk","zoom apps sdk","apps",{"skillNo":147,"name":148,"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":149,"categories":150,"keywords":151,"publishedAt":46},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[148],{"skillNo":153,"name":154,"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":155,"categories":156,"keywords":158,"publishedAt":46},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[157],{"categoryNo":121,"categoryName":122,"taxonomyType":21,"taxonomyTypeDesc":22},[154],{"skillNo":160,"name":161,"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":162,"categories":163,"keywords":164,"publishedAt":46},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[161]]