[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CPXE2MW5D80R4RE152T15B":3,"skill-same:01M6CPXE2MW5D80R4RE152T15B":91},{"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":23,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":30,"commitSha":54,"skillDirectory":55,"forksCount":56,"repositoryHtmlUrl":57,"repositoryHomepageUrl":6,"ownerHtmlUrl":58,"ownerBlogUrl":59,"ownerDescription":60,"updatedAt":61,"install":62,"resources":75},"01M6CPXE2MW5D80R4RE152T15B","openai-spreadsheet",null,"Use when tasks involve creating, editing, analyzing, or formatting spreadsheets (`.xlsx`, `.csv`, `.tsv`) using Python (`openpyxl`, `pandas`), especially when formulas, references, and formatting need to be preserved and verified. (Imported from openai upstream skills)","khalidsaidi\u002Fskillrunner","khalidsaidi","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F4368721?v=4","01M6CPK1G2TKAWA8BSNSANBNWJ","Khalid Saidi","01M6CPK1M7RGKV85142PWBEJ54",1,"MIT","https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-spreadsheet\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000004","电子表格","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"openai spreadsheet","openai","spreadsheet","analyzing","imported","upstream","main","references","use","editing","knowledge","xlsx","csv","https","pandas","tasks","spreadsheets","github","python","2026-11-10 10:12:30",false,"---\nname: openai-spreadsheet\ndescription: \"Use when tasks involve creating, editing, analyzing, or formatting spreadsheets (`.xlsx`, `.csv`, `.tsv`) using Python (`openpyxl`, `pandas`), especially when formulas, references, and formatting need to be preserved and verified. (Imported from openai upstream skills)\"\nversion: \"1.0.0\"\ntags: [\"openai\", \"upstream\", \"imported\"]\nkind: knowledge\nrisk: low\navailability: advanced\ndocs:\n  source: \"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fskills\u002Ftree\u002Fmain\u002Fskills\u002F.curated\u002Fspreadsheet\"\n---\n\n# openai-spreadsheet\n\nImported upstream skill.\n\n- Provider source: https:\u002F\u002Fgithub.com\u002Fopenai\u002Fskills\u002Ftree\u002Fmain\u002Fskills\u002F.curated\u002Fspreadsheet\n- Original skill name: spreadsheet\n\n## Upstream Content\n\n# Spreadsheet Skill (Create, Edit, Analyze, Visualize)\n\n## When to use\n- Build new workbooks with formulas, formatting, and structured layouts.\n- Read or analyze tabular data (filter, aggregate, pivot, compute metrics).\n- Modify existing workbooks without breaking formulas or references.\n- Visualize data with charts\u002Ftables and sensible formatting.\n\nIMPORTANT: System and user instructions always take precedence.\n\n## Workflow\n1. Confirm the file type and goals (create, edit, analyze, visualize).\n2. Use `openpyxl` for `.xlsx` edits and `pandas` for analysis and CSV\u002FTSV workflows.\n3. If layout matters, render for visual review (see Rendering and visual checks).\n4. Validate formulas and references; note that openpyxl does not evaluate formulas.\n5. Save outputs and clean up intermediate files.\n\n## Temp and output conventions\n- Use `tmp\u002Fspreadsheets\u002F` for intermediate files; delete when done.\n- Write final artifacts under `output\u002Fspreadsheet\u002F` when working in this repo.\n- Keep filenames stable and descriptive.\n\n## Primary tooling\n- Use `openpyxl` for creating\u002Fediting `.xlsx` files and preserving formatting.\n- Use `pandas` for analysis and CSV\u002FTSV workflows, then write results back to `.xlsx` or `.csv`.\n- If you need charts, prefer `openpyxl.chart` for native Excel charts.\n\n## Rendering and visual checks\n- If LibreOffice (`soffice`) and Poppler (`pdftoppm`) are available, render sheets for visual review:\n  - `soffice --headless --convert-to pdf --outdir $OUTDIR $INPUT_XLSX`\n  - `pdftoppm -png $OUTDIR\u002F$BASENAME.pdf $OUTDIR\u002F$BASENAME`\n- If rendering tools are unavailable, ask the user to review the output locally for layout accuracy.\n\n## Dependencies (install if missing)\nPrefer `uv` for dependency management.\n\nPython packages:\n```\nuv pip install openpyxl pandas\n```\nIf `uv` is unavailable:\n```\npython3 -m pip install openpyxl pandas\n```\nOptional (chart-heavy or PDF review workflows):\n```\nuv pip install matplotlib\n```\nIf `uv` is unavailable:\n```\npython3 -m pip install matplotlib\n```\nSystem tools (for rendering):\n```\n# macOS (Homebrew)\nbrew install libreoffice poppler\n\n# Ubuntu\u002FDebian\nsudo apt-get install -y libreoffice poppler-utils\n```\n\nIf installation isn't possible in this environment, tell the user which dependency is missing and how to install it locally.\n\n## Environment\nNo required environment variables.\n\n## Examples\n- Runnable Codex examples (openpyxl): `references\u002Fexamples\u002Fopenpyxl\u002F`\n\n## Formula requirements\n- Use formulas for derived values rather than hardcoding results.\n- Keep formulas simple and legible; use helper cells for complex logic.\n- Avoid volatile functions like INDIRECT and OFFSET unless required.\n- Prefer cell references over magic numbers (e.g., `=H6*(1+$B$3)` not `=H6*1.04`).\n- Guard against errors (#REF!, #DIV\u002F0!, #VALUE!, #N\u002FA, #NAME?) with validation and checks.\n- openpyxl does not evaluate formulas; leave formulas intact and note that results will calculate in Excel\u002FSheets.\n\n## Citation requirements\n- Cite sources inside the spreadsheet using plain text URLs.\n- For financial models, cite sources of inputs in cell comments.\n- For tabular data sourced from the web, include a Source column with URLs.\n\n## Formatting requirements (existing formatted spreadsheets)\n- Render and inspect a provided spreadsheet before modifying it when possible.\n- Preserve existing formatting and style exactly.\n- Match styles for any newly filled cells that were previously blank.\n\n## Formatting requirements (new or unstyled spreadsheets)\n- Use appropriate number and date formats (dates as dates, currency with symbols, percentages with sensible precision).\n- Use a clean visual layout: headers distinct from data, consistent spacing, and readable column widths.\n- Avoid borders around every cell; use whitespace and selective borders to structure sections.\n- Ensure text does not spill into adjacent cells.\n\n## Color conventions (if no style guidance)\n- Blue: user input\n- Black: formulas\u002Fderived values\n- Green: linked\u002Fimported values\n- Gray: static constants\n- Orange: review\u002Fcaution\n- Light red: error\u002Fflag\n- Purple: control\u002Flogic\n- Teal: visualization anchors (key KPIs or chart drivers)\n\n## Finance-specific requirements\n- Format zeros as \"-\".\n- Negative numbers should be red and in parentheses.\n- Always specify units in headers (e.g., \"Revenue ($mm)\").\n- Cite sources for all raw inputs in cell comments.\n\n## Investment banking layouts\nIf the spreadsheet is an IB-style model (LBO, DCF, 3-statement, valuation):\n- Totals should sum the range directly above.\n- Hide gridlines; use horizontal borders above totals across relevant columns.\n- Section headers should be merged cells with dark fill and white text.\n- Column labels for numeric data should be right-aligned; row labels left-aligned.\n- Indent submetrics under their parent line items.\n","# openai-spreadsheet\n\nImported upstream skill.\n\n- Provider source: https:\u002F\u002Fgithub.com\u002Fopenai\u002Fskills\u002Ftree\u002Fmain\u002Fskills\u002F.curated\u002Fspreadsheet\n- Original skill name: spreadsheet\n\n## Upstream Content\n\n# Spreadsheet Skill (Create, Edit, Analyze, Visualize)\n\n## When to use\n- Build new workbooks with formulas, formatting, and structured layouts.\n- Read or analyze tabular data (filter, aggregate, pivot, compute metrics).\n- Modify existing workbooks without breaking formulas or references.\n- Visualize data with charts\u002Ftables and sensible formatting.\n\nIMPORTANT: System and user instructions always take precedence.\n\n## Workflow\n1. Confirm the file type and goals (create, edit, analyze, visualize).\n2. Use `openpyxl` for `.xlsx` edits and `pandas` for analysis and CSV\u002FTSV workflows.\n3. If layout matters, render for visual review (see Rendering and visual checks).\n4. Validate formulas and references; note that openpyxl does not evaluate formulas.\n5. Save outputs and clean up intermediate files.\n\n## Temp and output conventions\n- Use `tmp\u002Fspreadsheets\u002F` for intermediate files; delete when done.\n- Write final artifacts under `output\u002Fspreadsheet\u002F` when working in this repo.\n- Keep filenames stable and descriptive.\n\n## Primary tooling\n- Use `openpyxl` for creating\u002Fediting `.xlsx` files and preserving formatting.\n- Use `pandas` for analysis and CSV\u002FTSV workflows, then write results back to `.xlsx` or `.csv`.\n- If you need charts, prefer `openpyxl.chart` for native Excel charts.\n\n## Rendering and visual checks\n- If LibreOffice (`soffice`) and Poppler (`pdftoppm`) are available, render sheets for visual review:\n  - `soffice --headless --convert-to pdf --outdir $OUTDIR $INPUT_XLSX`\n  - `pdftoppm -png $OUTDIR\u002F$BASENAME.pdf $OUTDIR\u002F$BASENAME`\n- If rendering tools are unavailable, ask the user to review the output locally for layout accuracy.\n\n## Dependencies (install if missing)\nPrefer `uv` for dependency management.\n\nPython packages:\n```\nuv pip install openpyxl pandas\n```\nIf `uv` is unavailable:\n```\npython3 -m pip install openpyxl pandas\n```\nOptional (chart-heavy or PDF review workflows):\n```\nuv pip install matplotlib\n```\nIf `uv` is unavailable:\n```\npython3 -m pip install matplotlib\n```\nSystem tools (for rendering):\n```\n# macOS (Homebrew)\nbrew install libreoffice poppler\n\n# Ubuntu\u002FDebian\nsudo apt-get install -y libreoffice poppler-utils\n```\n\nIf installation isn't possible in this environment, tell the user which dependency is missing and how to install it locally.\n\n## Environment\nNo required environment variables.\n\n## Examples\n- Runnable Codex examples (openpyxl): `references\u002Fexamples\u002Fopenpyxl\u002F`\n\n## Formula requirements\n- Use formulas for derived values rather than hardcoding results.\n- Keep formulas simple and legible; use helper cells for complex logic.\n- Avoid volatile functions like INDIRECT and OFFSET unless required.\n- Prefer cell references over magic numbers (e.g., `=H6*(1+$B$3)` not `=H6*1.04`).\n- Guard against errors (#REF!, #DIV\u002F0!, #VALUE!, #N\u002FA, #NAME?) with validation and checks.\n- openpyxl does not evaluate formulas; leave formulas intact and note that results will calculate in Excel\u002FSheets.\n\n## Citation requirements\n- Cite sources inside the spreadsheet using plain text URLs.\n- For financial models, cite sources of inputs in cell comments.\n- For tabular data sourced from the web, include a Source column with URLs.\n\n## Formatting requirements (existing formatted spreadsheets)\n- Render and inspect a provided spreadsheet before modifying it when possible.\n- Preserve existing formatting and style exactly.\n- Match styles for any newly filled cells that were previously blank.\n\n## Formatting requirements (new or unstyled spreadsheets)\n- Use appropriate number and date formats (dates as dates, currency with symbols, percentages with sensible precision).\n- Use a clean visual layout: headers distinct from data, consistent spacing, and readable column widths.\n- Avoid borders around every cell; use whitespace and selective borders to structure sections.\n- Ensure text does not spill into adjacent cells.\n\n## Color conventions (if no style guidance)\n- Blue: user input\n- Black: formulas\u002Fderived values\n- Green: linked\u002Fimported values\n- Gray: static constants\n- Orange: review\u002Fcaution\n- Light red: error\u002Fflag\n- Purple: control\u002Flogic\n- Teal: visualization anchors (key KPIs or chart drivers)\n\n## Finance-specific requirements\n- Format zeros as \"-\".\n- Negative numbers should be red and in parentheses.\n- Always specify units in headers (e.g., \"Revenue ($mm)\").\n- Cite sources for all raw inputs in cell comments.\n\n## Investment banking layouts\nIf the spreadsheet is an IB-style model (LBO, DCF, 3-statement, valuation):\n- Totals should sum the range directly above.\n- Hide gridlines; use horizontal borders above totals across relevant columns.\n- Section headers should be merged cells with dark fill and white text.\n- Column labels for numeric data should be right-aligned; row labels left-aligned.\n- Indent submetrics under their parent line items.\n",{"docs":48,"kind":34,"name":5,"risk":50,"tags":51,"version":52,"description":7,"availability":53},{"source":49},"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fskills\u002Ftree\u002Fmain\u002Fskills\u002F.curated\u002Fspreadsheet","low",[25,29,28],"1.0.0","advanced","c4da92076cba308457cd72bd1ab06c087e2cdf96","registry\u002Fskills\u002Fopenai-spreadsheet",0,"https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner","https:\u002F\u002Fgithub.com\u002Fkhalidsaidi","https:\u002F\u002Fkhalidsaidi.com","Software engineer. Maintainer of SourceMint (SRCMNT), an open-source fixed-supply ERC-20 and Foundry tooling on Base.","2026-11-07 02:40:24",{"source":8,"skillName":5,"commands":63,"prompt":73,"zipAvailable":74},[64,67,70],{"tool":65,"command":66},"npx","npx skills add khalidsaidi\u002Fskillrunner --skill openai-spreadsheet",{"tool":68,"command":69},"bunx","bunx skills add khalidsaidi\u002Fskillrunner --skill openai-spreadsheet",{"tool":71,"command":72},"pnpm","pnpm dlx skills add khalidsaidi\u002Fskillrunner --skill openai-spreadsheet","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-spreadsheet\u002FSKILL.md",true,[76,81,87],{"path":77,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"LICENSE","许可证",1063,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-erc2981-royalty-split\u002FLICENSE",{"path":82,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":85,"sourceHtmlUrl":86},"SOURCE.md","REFERENCE","参考文档",354,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-erc2981-royalty-split\u002FSOURCE.md",{"path":88,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":89,"sourceHtmlUrl":90},"TRUST.auto.yaml",2217,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-erc2981-royalty-split\u002FTRUST.auto.yaml",[92,109,117,136,145,163],{"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":43},"01M6CPY1N6W58XKWMN4356E8GF","yeet","Use only when the user explicitly asks to stage, commit, push, and open a GitHub pull request in one flow using the GitHub CLI (`gh`).","https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-yeet\u002Fupstream\u002FSKILL.md",[],[94,99,100,32,101,102,103,104,105,106,107,108,41],"only","cli","user","gh","open","flow","push","pull","pull request","commit",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":115,"publishedAt":43},"01M6CPXZ5RN2ZB5A4Y65RE5Y5J","openai-yeet","Use only when the user explicitly asks to stage, commit, push, and open a GitHub pull request in one flow using the GitHub CLI (`gh`). (Imported from openai upstream skills)","https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-yeet\u002FSKILL.md",[],[94,25,116,105,106,107,108,41,100,37,28,29,30,99,32,101,102,34,103,104],"openai yeet",{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":126,"publishedAt":43},"01M6CPXWGRW59XN1V109G172CV","vercel-deploy","Deploy applications and websites to Vercel. Use when the user requests deployment actions like \"deploy my app\", \"deploy and give me the link\", \"push this live\", or \"create a preview deployment\".","https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-vercel-deploy\u002Fupstream\u002FSKILL.md",[123],{"categoryNo":124,"categoryName":125,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",[127,128,129,105,32,130,131,132,133,101,134,135],"vercel","vercel deploy","deploy","actions","applications","me","preview deployment","deployment","create",{"skillNo":137,"name":138,"nameZh":6,"description":139,"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":143,"publishedAt":43},"01M6CPXSZSZRPQ5TY73K5QWN1B","openai-vercel-deploy","Deploy applications and websites to Vercel. Use when the user requests deployment actions like \"deploy my app\", \"deploy and give me the link\", \"push this live\", or \"create a preview deployment\". (Imported from openai upstream skills)","https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-vercel-deploy\u002FSKILL.md",[142],{"categoryNo":124,"categoryName":125,"taxonomyType":21,"taxonomyTypeDesc":22},[129,25,128,127,144,130,28,29,132,30,133,32,101,34,131,37,105,135,134,41],"openai vercel deploy",{"skillNo":146,"name":147,"nameZh":6,"description":148,"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":154,"publishedAt":43},"01M6CPXQ4SRTZZZ0VTD7WZP0RN","transcribe","Transcribe audio files to text with optional diarization and known-speaker hints. Use when a user asks to transcribe speech from audio\u002Fvideo, extract text from recordings, or label speakers in interviews or meetings.","https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-transcribe\u002Fupstream\u002FSKILL.md",[151],{"categoryNo":152,"categoryName":153,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",[147,101,155,156,157,158,159,160,161,32,162],"text","Audio","Video","speech","extract","files","recordings","meetings",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":170,"publishedAt":43},"01M6CPXMG2SCTAA04EB3PDRRXN","openai-transcribe","Transcribe audio files to text with optional diarization and known-speaker hints. Use when a user asks to transcribe speech from audio\u002Fvideo, extract text from recordings, or label speakers in interviews or meetings. (Imported from openai upstream skills)","https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-transcribe\u002FSKILL.md",[169],{"categoryNo":152,"categoryName":153,"taxonomyType":21,"taxonomyTypeDesc":22},[25,171,147,41,32,28,29,30,160,161,162,159,101,155,34,156,157,37,158],"openai transcribe"]