[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M718KCF3RAZMKKRYBPRMBN6R":3,"skill-same:01M718KCF3RAZMKKRYBPRMBN6R":413},{"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":16,"sourceHtmlUrl":17,"categories":18,"keywords":32,"publishedAt":53,"linkOnly":54,"markdownContent":55,"markdownBody":56,"frontMatter":57,"refName":73,"commitSha":74,"skillDirectory":75,"forksCount":76,"repositoryHtmlUrl":77,"repositoryHomepageUrl":6,"ownerHtmlUrl":78,"ownerBlogUrl":79,"ownerDescription":80,"updatedAt":81,"install":82,"resources":95},"01M718KCF3RAZMKKRYBPRMBN6R","spreadsheet-peek",null,"Preview spreadsheet\u002Fdelimited files with the Spreadsheet Peek MCP viewer or `wolfxl peek`. Use proactively for .xlsx, .xlsm, .xls, .xlsb, .ods, .csv, .tsv, or .txt before processing, after fixture generation, during parsing debug, or when asked to peek\u002Fpreview\u002Fshow a file.","wolfiesch\u002Fspreadsheet-peek","wolfiesch","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F221313372?v=4","01M718KAEN85YJEDJ9ZJCTS67A","Wolfie","01M718KAF985PKKHN49M40ATNH",1,"MIT","https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002FSKILL.md",[19,24,27],{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000004","电子表格","SCENARIO","使用场景",{"categoryNo":25,"categoryName":26,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":28,"categoryName":29,"taxonomyType":30,"taxonomyTypeDesc":31},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],"spreadsheet peek","spreadsheet","generation","xls","with","csv","file","preview","when","debug","use","MCP","files","for","xlsx","parsing","processing","show","viewer","fixture","2026-11-10 10:12:30",false,"---\nname: spreadsheet-peek\ndescription: Preview spreadsheet\u002Fdelimited files with the Spreadsheet Peek MCP viewer or `wolfxl peek`. Use proactively for .xlsx, .xlsm, .xls, .xlsb, .ods, .csv, .tsv, or .txt before processing, after fixture generation, during parsing debug, or when asked to peek\u002Fpreview\u002Fshow a file.\nversion: 2.4.0\nmetadata:\n  author: wolfgangs\n  filePattern:\n    - \"**\u002F*.xlsx\"\n    - \"**\u002F*.xls\"\n    - \"**\u002F*.xlsm\"\n    - \"**\u002F*.xlsb\"\n    - \"**\u002F*.ods\"\n    - \"**\u002F*.csv\"\n    - \"**\u002F*.tsv\"\n    - \"**\u002F*.txt\"\n  bashPattern:\n    - \"wolfxl\"\n    - \"peek\\\\b\"\n---\n\n# Spreadsheet Peek\n\nShow inline previews of spreadsheet files. Prefer the Spreadsheet Peek MCP viewer when available; otherwise use terminal `wolfxl peek`. This skill is **proactive** - invoke it at the right moments without waiting for the user to ask.\n\n## Prerequisites\n\n- `wolfxl` must be installed: `cargo install wolfxl-cli`\n- `wolfxl-cli >= 0.9.0` supports `.xlsx`, `.xlsm`, `.xls`, `.xlsb`, `.ods`, `.csv`, `.tsv`, and comma-delimited `.txt`, plus Markdown export\n- Formatting fidelity is strongest for `.xlsx` and `.xlsm`; legacy workbook and delimited inputs are value-first previews with limited style metadata\n\n## MCP Viewer (When Available)\n\nIf the `spreadsheet-peek` MCP server is enabled, use it for user-visible previews before terminal output:\n\n```text\nopen_workbook_viewer(path=\"\u002Fabsolute\u002Fpath\u002Fto\u002Ffile.xlsx\", sheet=\"P&L\", maxRows=50, maxColumns=40)\n```\n\nUse `preview_workbook` when the host selects it for a natural \"preview this spreadsheet\" request or when you need structured data without explicitly opening the grid. MCP tools return a bounded preview, sheet metadata, and text summary. The viewer supports sheet tabs, sticky headers, search, range selection, and selected-range handoff.\n\nUse terminal `wolfxl peek` when MCP is unavailable, the agent is shell-only, or you need a copy-pasteable transcript.\n\n## When to Invoke (Proactive Triggers)\n\n### Always preview when:\n\n1. **Before data processing**: preview inputs before running pipelines, ETL jobs, or scripts that read a spreadsheet.\n2. **After fixture changes**: preview generated or modified spreadsheet and delimited fixtures.\n3. **When the user references a file**: if they mention a spreadsheet, CSV, TSV, or table-like text path, show it before discussing it.\n4. **When debugging parsing**: preview the raw input so parser behavior is grounded in the visible file.\n5. **When comparing before\u002Fafter**: show the input and transformed output with the same preview habit.\n\n### Skip preview when:\n\n- The file has already been previewed in the current conversation\n- The file is being read programmatically (e.g., openpyxl\u002Fpandas in Python) and the code output already shows the data\n- The user explicitly says they don't need to see it\n- The file is enormous (>10K rows) and the user didn't ask - mention it exists and offer to preview a slice\n\n## Preview Ladder\n\nUse the smallest preview that answers the question:\n\n1. First human-readable look:\n   ```bash\n   wolfxl peek \u003Cfile> -n 15\n   ```\n2. Large or unfamiliar workbook briefing:\n   ```bash\n   wolfxl agent \u003Cfile> --max-tokens 800\n   ```\n3. Repeat previews or context-sensitive work:\n   ```bash\n   wolfxl peek \u003Cfile> --export text | sed -n '1,20p'\n   ```\n4. Sheet structure before cell values:\n   ```bash\n   wolfxl map \u003Cfile> --format text\n   ```\n\n## Token Efficiency (IMPORTANT)\n\n`wolfxl peek`'s box-drawing output uses Unicode border characters that cost real tokens. Choose the right mode based on context:\n\n| Mode | When to use | Token cost (5 data rows) |\n|------|-------------|---------------------|\n| **Box-drawing** (`wolfxl peek file -n 5`) | User is looking, readability matters | ~573 tokens (~115\u002Frow) |\n| **Text export** (`wolfxl peek file --export text \\| sed -n '1,6p'`) | Context-sensitive, large files, repeated previews | ~148 tokens (~30\u002Frow) |\n\n**Default rule**: Use box-drawing for the FIRST preview in a conversation (readability). Switch to `--export text | sed -n '1,Np'` for subsequent previews or when context is getting long.\n\n**Measured ratio**: box-drawing is ~3.9x more expensive per row than text export on a 7-column financial workbook, ~3.6x on an 8-column tall ledger, and ~3.0x on a 29-column wide table. The overhead is mostly fixed (header\u002Fborder lines), so the per-row cost improves with more rows - but text export is still cheaper at every size.\n\n**Delimited fixtures**: CSV\u002FTSV\u002FTXT ledger previews cost ~524 box tokens and ~145 text tokens; quoted multiline CSV costs ~401 and ~116.\n\n**Note**: `--export text` ignores the `-n` flag and dumps ALL rows. Always pipe through `sed -n '1,Np'` to limit what enters the conversation. Prefer `sed` over `head` with current `wolfxl-cli` releases because `head` can close the pipe early and make `wolfxl` print a broken-pipe warning.\n\n## Command Variants\n\n```bash\nwolfxl peek \u003Cfile> -n 0                              # full readable dump, use sparingly\nwolfxl peek \u003Cfile> --sheet \"Balance Sheet\" -n 15     # specific sheet\nwolfxl peek \u003Cfile> -n 15 -w 60                       # wider cells for long text\nwolfxl peek \u003Cfile> --export text                     # clean text for diffing or piping\nwolfxl peek \u003Cfile> --export markdown | sed -n '1,20p' # Markdown table for context converters\nwolfxl peek \u003Cfile> --export csv                      # CSV export\nwolfxl peek \u003Cfile> --export json                     # JSON export\n```\n\n## Delimited File Notes\n\n`wolfxl peek` reads `.csv`, `.tsv`, and comma-delimited `.txt` files directly in `wolfxl-cli >= 0.9.0`:\n\n```bash\nwolfxl peek file.csv -n 15\nwolfxl peek file.tsv -n 15\nwolfxl peek file.txt -n 15\n```\n\nFor raw inspection, custom delimiters, dimensions, or older installed `wolfxl` binaries:\n\n```bash\nhead -15 file.csv                                # raw sniff\nhead -15 file.csv | column -s, -t                # simple CSV only\nmlr --icsv --opprint head -n 15 file.csv         # CSV-aware\ncsvlook --max-rows 15 file.csv                   # CSV-aware\nmlr --icsv --opprint count file.csv              # row count\nmlr --icsv --opprint put '$columns = NF' then head -n 1 file.csv\n```\n\n**Which to use**: default to `wolfxl peek` for conversation-visible previews. Use `head` only for a raw text sniff, `column -s, -t` only on simple CSVs, and `mlr`\u002F`csvkit` for custom delimiters, encodings outside UTF-8, or CSV-aware dimensions.\n\n**Known caveat**: `wolfxl-cli 0.9.0` is UTF-8 only and does not strip BOMs or detect arbitrary delimiters. A UTF-8 BOM may show in the first header cell; non-comma `.txt` files need a CSV-aware tool or a temporary conversion.\n\n**If you must use Python** (CSV too messy for shell tools), reach for `csv.DictReader` + `tabulate`, not pandas - pandas has a ~1s import cost and is overkill for a preview.\n\n## Legacy Workbook Notes\n\n`wolfxl-cli >= 0.9.0` reads `.xls`, `.xlsb`, and `.ods` directly:\n\n```bash\nwolfxl peek file.xls -n 15\nwolfxl peek file.xlsb -n 15\nwolfxl peek file.ods -n 15\n```\n\nThese formats expose values reliably but not full Excel style metadata. If you need high-fidelity styling, convert a temporary copy to `.xlsx` first:\n\n```bash\nmkdir -p \u002Ftmp\u002Fspreadsheet-peek\nsoffice --headless --convert-to xlsx --outdir \u002Ftmp\u002Fspreadsheet-peek file.xls\nwolfxl peek \u002Ftmp\u002Fspreadsheet-peek\u002Ffile.xlsx -n 15\n```\n\nIf LibreOffice is not installed, use the direct preview and say legacy style fidelity is limited. If an older `wolfxl` rejects these inputs, upgrade with `cargo install wolfxl-cli --version 0.9.0 --force`.\n\n## Multi-Sheet Workflow\n\nWhen previewing a multi-sheet workbook:\n\n1. First run shows the first sheet and lists available sheets in the output header (`Available sheets:` line)\n2. If the workbook has multiple sheets, preview ALL relevant sheets (financial workbooks typically have 2-5 sheets that matter)\n3. For repeated sheet previews, use text export to save tokens\n\n```bash\n# First sheet (readable, box-drawing)\nwolfxl peek file.xlsx -n 15\n\n# Subsequent sheets (token-efficient)\nwolfxl peek file.xlsx --sheet \"Balance Sheet\" --export text | sed -n '1,20p'\nwolfxl peek file.xlsx --sheet \"Cash Flow\" --export text | sed -n '1,20p'\n```\n\n## Python Fallback\n\nIf `wolfxl` is unavailable, use openpyxl + tabulate:\n\n```python\nimport openpyxl, tabulate\nwb = openpyxl.load_workbook('file.xlsx', data_only=True)\nws = wb.active\nrows = [[cell.value for cell in row] for row in ws.iter_rows()]\nprint(tabulate.tabulate(rows[1:], headers=rows[0] or [], tablefmt='grid'))\n```\n\n## Why `wolfxl peek` Over Disposable Python Scripts\n\n`wolfxl peek` saves the agent from generating throwaway Python every time a workbook appears. The tradeoff:\n- **Box-drawing output** is ~3-4x larger than text export for equal preview slices (Unicode borders cost tokens on the context side)\n- **`--export text | sed -n '1,Np'`** is the most token-efficient repeat-preview mode (~148 tokens for 5 financial rows; tiny raw `openpyxl` tuple dumps can be similar in output tokens but require generated code and are harder to read)\n- **Reliability**: `wolfxl peek` avoids import errors, env issues, and edge cases in ad-hoc parsing code\n- **Speed**: Rust binary parses instantly vs ~0.5-1s openpyxl startup\n- **Readable formatting**: Date cells render as ISO dates, common currency\u002Fpercentage formats render in human-facing previews, and numeric cells are grouped for scanning. Style fidelity is strongest for `.xlsx` \u002F `.xlsm`.\n\n**Never write disposable Python to view a spreadsheet. Use `wolfxl peek`.**\n\n## Output Interpretation Notes\n\n- Empty cells show as blank (no value in the cell)\n- Numeric cells are grouped for readability (e.g., `1,200` instead of `1200`)\n- Date cells render as ISO `YYYY-MM-DD`; common currency and percentage number formats render in human-facing `.xlsx` \u002F `.xlsm` previews\n- The header line `Sheet: SheetName (N rows × M columns)` tells you the full dimensions\n- `Available sheets:` line appears when the workbook has multiple tabs\n- The banner `wolfxl peek - Excel preview` confirms you're getting `wolfxl` output (vs a manual openpyxl dump)\n","# Spreadsheet Peek\n\nShow inline previews of spreadsheet files. Prefer the Spreadsheet Peek MCP viewer when available; otherwise use terminal `wolfxl peek`. This skill is **proactive** - invoke it at the right moments without waiting for the user to ask.\n\n## Prerequisites\n\n- `wolfxl` must be installed: `cargo install wolfxl-cli`\n- `wolfxl-cli >= 0.9.0` supports `.xlsx`, `.xlsm`, `.xls`, `.xlsb`, `.ods`, `.csv`, `.tsv`, and comma-delimited `.txt`, plus Markdown export\n- Formatting fidelity is strongest for `.xlsx` and `.xlsm`; legacy workbook and delimited inputs are value-first previews with limited style metadata\n\n## MCP Viewer (When Available)\n\nIf the `spreadsheet-peek` MCP server is enabled, use it for user-visible previews before terminal output:\n\n```text\nopen_workbook_viewer(path=\"\u002Fabsolute\u002Fpath\u002Fto\u002Ffile.xlsx\", sheet=\"P&L\", maxRows=50, maxColumns=40)\n```\n\nUse `preview_workbook` when the host selects it for a natural \"preview this spreadsheet\" request or when you need structured data without explicitly opening the grid. MCP tools return a bounded preview, sheet metadata, and text summary. The viewer supports sheet tabs, sticky headers, search, range selection, and selected-range handoff.\n\nUse terminal `wolfxl peek` when MCP is unavailable, the agent is shell-only, or you need a copy-pasteable transcript.\n\n## When to Invoke (Proactive Triggers)\n\n### Always preview when:\n\n1. **Before data processing**: preview inputs before running pipelines, ETL jobs, or scripts that read a spreadsheet.\n2. **After fixture changes**: preview generated or modified spreadsheet and delimited fixtures.\n3. **When the user references a file**: if they mention a spreadsheet, CSV, TSV, or table-like text path, show it before discussing it.\n4. **When debugging parsing**: preview the raw input so parser behavior is grounded in the visible file.\n5. **When comparing before\u002Fafter**: show the input and transformed output with the same preview habit.\n\n### Skip preview when:\n\n- The file has already been previewed in the current conversation\n- The file is being read programmatically (e.g., openpyxl\u002Fpandas in Python) and the code output already shows the data\n- The user explicitly says they don't need to see it\n- The file is enormous (>10K rows) and the user didn't ask - mention it exists and offer to preview a slice\n\n## Preview Ladder\n\nUse the smallest preview that answers the question:\n\n1. First human-readable look:\n   ```bash\n   wolfxl peek \u003Cfile> -n 15\n   ```\n2. Large or unfamiliar workbook briefing:\n   ```bash\n   wolfxl agent \u003Cfile> --max-tokens 800\n   ```\n3. Repeat previews or context-sensitive work:\n   ```bash\n   wolfxl peek \u003Cfile> --export text | sed -n '1,20p'\n   ```\n4. Sheet structure before cell values:\n   ```bash\n   wolfxl map \u003Cfile> --format text\n   ```\n\n## Token Efficiency (IMPORTANT)\n\n`wolfxl peek`'s box-drawing output uses Unicode border characters that cost real tokens. Choose the right mode based on context:\n\n| Mode | When to use | Token cost (5 data rows) |\n|------|-------------|---------------------|\n| **Box-drawing** (`wolfxl peek file -n 5`) | User is looking, readability matters | ~573 tokens (~115\u002Frow) |\n| **Text export** (`wolfxl peek file --export text \\| sed -n '1,6p'`) | Context-sensitive, large files, repeated previews | ~148 tokens (~30\u002Frow) |\n\n**Default rule**: Use box-drawing for the FIRST preview in a conversation (readability). Switch to `--export text | sed -n '1,Np'` for subsequent previews or when context is getting long.\n\n**Measured ratio**: box-drawing is ~3.9x more expensive per row than text export on a 7-column financial workbook, ~3.6x on an 8-column tall ledger, and ~3.0x on a 29-column wide table. The overhead is mostly fixed (header\u002Fborder lines), so the per-row cost improves with more rows - but text export is still cheaper at every size.\n\n**Delimited fixtures**: CSV\u002FTSV\u002FTXT ledger previews cost ~524 box tokens and ~145 text tokens; quoted multiline CSV costs ~401 and ~116.\n\n**Note**: `--export text` ignores the `-n` flag and dumps ALL rows. Always pipe through `sed -n '1,Np'` to limit what enters the conversation. Prefer `sed` over `head` with current `wolfxl-cli` releases because `head` can close the pipe early and make `wolfxl` print a broken-pipe warning.\n\n## Command Variants\n\n```bash\nwolfxl peek \u003Cfile> -n 0                              # full readable dump, use sparingly\nwolfxl peek \u003Cfile> --sheet \"Balance Sheet\" -n 15     # specific sheet\nwolfxl peek \u003Cfile> -n 15 -w 60                       # wider cells for long text\nwolfxl peek \u003Cfile> --export text                     # clean text for diffing or piping\nwolfxl peek \u003Cfile> --export markdown | sed -n '1,20p' # Markdown table for context converters\nwolfxl peek \u003Cfile> --export csv                      # CSV export\nwolfxl peek \u003Cfile> --export json                     # JSON export\n```\n\n## Delimited File Notes\n\n`wolfxl peek` reads `.csv`, `.tsv`, and comma-delimited `.txt` files directly in `wolfxl-cli >= 0.9.0`:\n\n```bash\nwolfxl peek file.csv -n 15\nwolfxl peek file.tsv -n 15\nwolfxl peek file.txt -n 15\n```\n\nFor raw inspection, custom delimiters, dimensions, or older installed `wolfxl` binaries:\n\n```bash\nhead -15 file.csv                                # raw sniff\nhead -15 file.csv | column -s, -t                # simple CSV only\nmlr --icsv --opprint head -n 15 file.csv         # CSV-aware\ncsvlook --max-rows 15 file.csv                   # CSV-aware\nmlr --icsv --opprint count file.csv              # row count\nmlr --icsv --opprint put '$columns = NF' then head -n 1 file.csv\n```\n\n**Which to use**: default to `wolfxl peek` for conversation-visible previews. Use `head` only for a raw text sniff, `column -s, -t` only on simple CSVs, and `mlr`\u002F`csvkit` for custom delimiters, encodings outside UTF-8, or CSV-aware dimensions.\n\n**Known caveat**: `wolfxl-cli 0.9.0` is UTF-8 only and does not strip BOMs or detect arbitrary delimiters. A UTF-8 BOM may show in the first header cell; non-comma `.txt` files need a CSV-aware tool or a temporary conversion.\n\n**If you must use Python** (CSV too messy for shell tools), reach for `csv.DictReader` + `tabulate`, not pandas - pandas has a ~1s import cost and is overkill for a preview.\n\n## Legacy Workbook Notes\n\n`wolfxl-cli >= 0.9.0` reads `.xls`, `.xlsb`, and `.ods` directly:\n\n```bash\nwolfxl peek file.xls -n 15\nwolfxl peek file.xlsb -n 15\nwolfxl peek file.ods -n 15\n```\n\nThese formats expose values reliably but not full Excel style metadata. If you need high-fidelity styling, convert a temporary copy to `.xlsx` first:\n\n```bash\nmkdir -p \u002Ftmp\u002Fspreadsheet-peek\nsoffice --headless --convert-to xlsx --outdir \u002Ftmp\u002Fspreadsheet-peek file.xls\nwolfxl peek \u002Ftmp\u002Fspreadsheet-peek\u002Ffile.xlsx -n 15\n```\n\nIf LibreOffice is not installed, use the direct preview and say legacy style fidelity is limited. If an older `wolfxl` rejects these inputs, upgrade with `cargo install wolfxl-cli --version 0.9.0 --force`.\n\n## Multi-Sheet Workflow\n\nWhen previewing a multi-sheet workbook:\n\n1. First run shows the first sheet and lists available sheets in the output header (`Available sheets:` line)\n2. If the workbook has multiple sheets, preview ALL relevant sheets (financial workbooks typically have 2-5 sheets that matter)\n3. For repeated sheet previews, use text export to save tokens\n\n```bash\n# First sheet (readable, box-drawing)\nwolfxl peek file.xlsx -n 15\n\n# Subsequent sheets (token-efficient)\nwolfxl peek file.xlsx --sheet \"Balance Sheet\" --export text | sed -n '1,20p'\nwolfxl peek file.xlsx --sheet \"Cash Flow\" --export text | sed -n '1,20p'\n```\n\n## Python Fallback\n\nIf `wolfxl` is unavailable, use openpyxl + tabulate:\n\n```python\nimport openpyxl, tabulate\nwb = openpyxl.load_workbook('file.xlsx', data_only=True)\nws = wb.active\nrows = [[cell.value for cell in row] for row in ws.iter_rows()]\nprint(tabulate.tabulate(rows[1:], headers=rows[0] or [], tablefmt='grid'))\n```\n\n## Why `wolfxl peek` Over Disposable Python Scripts\n\n`wolfxl peek` saves the agent from generating throwaway Python every time a workbook appears. The tradeoff:\n- **Box-drawing output** is ~3-4x larger than text export for equal preview slices (Unicode borders cost tokens on the context side)\n- **`--export text | sed -n '1,Np'`** is the most token-efficient repeat-preview mode (~148 tokens for 5 financial rows; tiny raw `openpyxl` tuple dumps can be similar in output tokens but require generated code and are harder to read)\n- **Reliability**: `wolfxl peek` avoids import errors, env issues, and edge cases in ad-hoc parsing code\n- **Speed**: Rust binary parses instantly vs ~0.5-1s openpyxl startup\n- **Readable formatting**: Date cells render as ISO dates, common currency\u002Fpercentage formats render in human-facing previews, and numeric cells are grouped for scanning. Style fidelity is strongest for `.xlsx` \u002F `.xlsm`.\n\n**Never write disposable Python to view a spreadsheet. Use `wolfxl peek`.**\n\n## Output Interpretation Notes\n\n- Empty cells show as blank (no value in the cell)\n- Numeric cells are grouped for readability (e.g., `1,200` instead of `1200`)\n- Date cells render as ISO `YYYY-MM-DD`; common currency and percentage number formats render in human-facing `.xlsx` \u002F `.xlsm` previews\n- The header line `Sheet: SheetName (N rows × M columns)` tells you the full dimensions\n- `Available sheets:` line appears when the workbook has multiple tabs\n- The banner `wolfxl peek - Excel preview` confirms you're getting `wolfxl` output (vs a manual openpyxl dump)\n",{"name":5,"version":58,"metadata":59,"description":7},"2.4.0",{"author":60,"bashPattern":61,"filePattern":64},"wolfgangs",[62,63],"wolfxl","peek\\b",[65,66,67,68,69,70,71,72],"**\u002F*.xlsx","**\u002F*.xls","**\u002F*.xlsm","**\u002F*.xlsb","**\u002F*.ods","**\u002F*.csv","**\u002F*.tsv","**\u002F*.txt","master","ac0ba829004c1acfcc382901e61cdb962acfca60","",0,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek","https:\u002F\u002Fgithub.com\u002Fwolfiesch","wolfie.gg","Building evals, harnesses, and rl environments. open to work","2026-08-31 09:37:22",{"source":8,"skillName":5,"commands":83,"prompt":93,"zipAvailable":94},[84,87,90],{"tool":85,"command":86},"npx","npx skills add wolfiesch\u002Fspreadsheet-peek --skill spreadsheet-peek",{"tool":88,"command":89},"bunx","bunx skills add wolfiesch\u002Fspreadsheet-peek --skill spreadsheet-peek",{"tool":91,"command":92},"pnpm","pnpm dlx skills add wolfiesch\u002Fspreadsheet-peek --skill spreadsheet-peek","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002FSKILL.md",true,[96,102,106,110,114,118,122,126,130,134,138,142,148,152,158,162,166,170,174,180,184,188,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248,252,256,260,264,268,271,274,278,282,286,290,294,298,302,306,310,314,318,322,326,330,334,338,342,346,350,354,358,362,366,370,374,378,382,386,390,394,398,401,405,409],{"path":97,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":100,"sourceHtmlUrl":101},".claude-plugin\u002Fmarketplace.json","REFERENCE","参考文档",1118,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002F.claude-plugin\u002Fmarketplace.json",{"path":103,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":104,"sourceHtmlUrl":105},".claude-plugin\u002Fplugin.json",614,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002F.claude-plugin\u002Fplugin.json",{"path":107,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":108,"sourceHtmlUrl":109},".codex-plugin\u002Fmarketplace.json",940,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002F.codex-plugin\u002Fmarketplace.json",{"path":111,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":112,"sourceHtmlUrl":113},".codex-plugin\u002Fplugin.json",1571,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002F.codex-plugin\u002Fplugin.json",{"path":115,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":116,"sourceHtmlUrl":117},".github\u002FISSUE_TEMPLATE\u002Fbug_report.yml",1778,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002F.github\u002FISSUE_TEMPLATE\u002Fbug_report.yml",{"path":119,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":120,"sourceHtmlUrl":121},".github\u002FISSUE_TEMPLATE\u002Fconfig.yml",462,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002F.github\u002FISSUE_TEMPLATE\u002Fconfig.yml",{"path":123,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":124,"sourceHtmlUrl":125},".github\u002FISSUE_TEMPLATE\u002Ffeature_request.yml",1550,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002F.github\u002FISSUE_TEMPLATE\u002Ffeature_request.yml",{"path":127,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":128,"sourceHtmlUrl":129},".github\u002FISSUE_TEMPLATE\u002Fquestion.yml",584,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002F.github\u002FISSUE_TEMPLATE\u002Fquestion.yml",{"path":131,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":132,"sourceHtmlUrl":133},".github\u002Fpull_request_template.md",955,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002F.github\u002Fpull_request_template.md",{"path":135,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":136,"sourceHtmlUrl":137},".github\u002Fworkflows\u002Fbenchmark.yml",6704,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002F.github\u002Fworkflows\u002Fbenchmark.yml",{"path":139,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":140,"sourceHtmlUrl":141},".github\u002Fworkflows\u002Fmcp-app.yml",1147,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002F.github\u002Fworkflows\u002Fmcp-app.yml",{"path":143,"resourceType":144,"resourceTypeDesc":145,"sizeBytes":146,"sourceHtmlUrl":147},".gitignore","OTHER","其他",598,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002F.gitignore",{"path":149,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":150,"sourceHtmlUrl":151},".mcp.json",717,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002F.mcp.json",{"path":153,"resourceType":154,"resourceTypeDesc":155,"sizeBytes":156,"sourceHtmlUrl":157},"assets\u002Fagent-preview.gif","ASSET","资产文件",273902,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fassets\u002Fagent-preview.gif",{"path":159,"resourceType":154,"resourceTypeDesc":155,"sizeBytes":160,"sourceHtmlUrl":161},"assets\u002Fcontrast.gif",198075,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fassets\u002Fcontrast.gif",{"path":163,"resourceType":154,"resourceTypeDesc":155,"sizeBytes":164,"sourceHtmlUrl":165},"assets\u002Fog-card.png",56094,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fassets\u002Fog-card.png",{"path":167,"resourceType":154,"resourceTypeDesc":155,"sizeBytes":168,"sourceHtmlUrl":169},"assets\u002Fscreencast.gif",1035313,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fassets\u002Fscreencast.gif",{"path":171,"resourceType":154,"resourceTypeDesc":155,"sizeBytes":172,"sourceHtmlUrl":173},"assets\u002Fscreencast.mp4",1162118,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fassets\u002Fscreencast.mp4",{"path":175,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":178,"sourceHtmlUrl":179},"benchmarks\u002Fcompare_converters.py","SCRIPT","脚本",6807,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fbenchmarks\u002Fcompare_converters.py",{"path":181,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":182,"sourceHtmlUrl":183},"benchmarks\u002Fmeasure_tokens.py",7372,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fbenchmarks\u002Fmeasure_tokens.py",{"path":185,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":186,"sourceHtmlUrl":187},"benchmarks\u002FREADME.md",11194,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fbenchmarks\u002FREADME.md",{"path":189,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":190,"sourceHtmlUrl":191},"benchmarks\u002Fverify_claims.py",9211,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fbenchmarks\u002Fverify_claims.py",{"path":193,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":194,"sourceHtmlUrl":195},"CHANGELOG.md",24580,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002FCHANGELOG.md",{"path":197,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":198,"sourceHtmlUrl":199},"CLAUDE.md",10796,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002FCLAUDE.md",{"path":201,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":202,"sourceHtmlUrl":203},"CONTRIBUTING.md",3142,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md",{"path":205,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":206,"sourceHtmlUrl":207},"docs\u002Fagent-setup.md",12447,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fdocs\u002Fagent-setup.md",{"path":209,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":210,"sourceHtmlUrl":211},"docs\u002Fhow-it-works.md",13933,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fdocs\u002Fhow-it-works.md",{"path":213,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":214,"sourceHtmlUrl":215},"docs\u002Frelease-checklist.md",2306,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fdocs\u002Frelease-checklist.md",{"path":217,"resourceType":154,"resourceTypeDesc":155,"sizeBytes":218,"sourceHtmlUrl":219},"examples\u002Fdemo.gif",325997,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fexamples\u002Fdemo.gif",{"path":221,"resourceType":144,"resourceTypeDesc":145,"sizeBytes":222,"sourceHtmlUrl":223},"examples\u002Fdemo.tape",1046,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fexamples\u002Fdemo.tape",{"path":225,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":226,"sourceHtmlUrl":227},"examples\u002Fgenerate_delimited_samples.py",2140,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fexamples\u002Fgenerate_delimited_samples.py",{"path":229,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":230,"sourceHtmlUrl":231},"examples\u002Fgenerate_messy_csv.py",2715,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fexamples\u002Fgenerate_messy_csv.py",{"path":233,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":234,"sourceHtmlUrl":235},"examples\u002Fgenerate_sample.py",5676,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fexamples\u002Fgenerate_sample.py",{"path":237,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":238,"sourceHtmlUrl":239},"examples\u002Fgenerate_tall_ledger.py",2942,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fexamples\u002Fgenerate_tall_ledger.py",{"path":241,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":242,"sourceHtmlUrl":243},"examples\u002Fgenerate_wide_table.py",3551,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fexamples\u002Fgenerate_wide_table.py",{"path":245,"resourceType":154,"resourceTypeDesc":155,"sizeBytes":246,"sourceHtmlUrl":247},"examples\u002Fmessy.csv",396,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fexamples\u002Fmessy.csv",{"path":249,"resourceType":154,"resourceTypeDesc":155,"sizeBytes":250,"sourceHtmlUrl":251},"examples\u002Fquoted-multiline.csv",407,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fexamples\u002Fquoted-multiline.csv",{"path":253,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":254,"sourceHtmlUrl":255},"examples\u002FREADME.md",5129,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fexamples\u002FREADME.md",{"path":257,"resourceType":144,"resourceTypeDesc":145,"sizeBytes":258,"sourceHtmlUrl":259},"examples\u002Fsample-date.xlsb",7711,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fexamples\u002Fsample-date.xlsb",{"path":261,"resourceType":154,"resourceTypeDesc":155,"sizeBytes":262,"sourceHtmlUrl":263},"examples\u002Fsample-financials.xlsx",8575,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fexamples\u002Fsample-financials.xlsx",{"path":265,"resourceType":154,"resourceTypeDesc":155,"sizeBytes":266,"sourceHtmlUrl":267},"examples\u002Fsample-ledger.csv",555,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fexamples\u002Fsample-ledger.csv",{"path":269,"resourceType":144,"resourceTypeDesc":145,"sizeBytes":266,"sourceHtmlUrl":270},"examples\u002Fsample-ledger.tsv","https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fexamples\u002Fsample-ledger.tsv",{"path":272,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":266,"sourceHtmlUrl":273},"examples\u002Fsample-ledger.txt","https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fexamples\u002Fsample-ledger.txt",{"path":275,"resourceType":144,"resourceTypeDesc":145,"sizeBytes":276,"sourceHtmlUrl":277},"examples\u002Fsample-minimal.ods",1672,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fexamples\u002Fsample-minimal.ods",{"path":279,"resourceType":144,"resourceTypeDesc":145,"sizeBytes":280,"sourceHtmlUrl":281},"examples\u002Fsample-minimal.xls",5632,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fexamples\u002Fsample-minimal.xls",{"path":283,"resourceType":154,"resourceTypeDesc":155,"sizeBytes":284,"sourceHtmlUrl":285},"examples\u002Ftall-ledger.xlsx",10368,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fexamples\u002Ftall-ledger.xlsx",{"path":287,"resourceType":154,"resourceTypeDesc":155,"sizeBytes":288,"sourceHtmlUrl":289},"examples\u002Fwide-table.xlsx",9319,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fexamples\u002Fwide-table.xlsx",{"path":291,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":292,"sourceHtmlUrl":293},"install.sh",8376,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Finstall.sh",{"path":295,"resourceType":295,"resourceTypeDesc":296,"sizeBytes":297,"sourceHtmlUrl":16},"LICENSE","许可证",1078,{"path":299,"resourceType":144,"resourceTypeDesc":145,"sizeBytes":300,"sourceHtmlUrl":301},"mcp-app\u002F.mcpbignore",114,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002F.mcpbignore",{"path":303,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":304,"sourceHtmlUrl":305},"mcp-app\u002Fbin\u002Frun-server.mjs",760,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002Fbin\u002Frun-server.mjs",{"path":307,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":308,"sourceHtmlUrl":309},"mcp-app\u002Fbin\u002Frun-server.sh",366,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002Fbin\u002Frun-server.sh",{"path":311,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":312,"sourceHtmlUrl":313},"mcp-app\u002Findex.html",310,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002Findex.html",{"path":315,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":316,"sourceHtmlUrl":317},"mcp-app\u002Fmanifest.json",1899,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002Fmanifest.json",{"path":319,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":320,"sourceHtmlUrl":321},"mcp-app\u002Fpackage-lock.json",105045,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002Fpackage-lock.json",{"path":323,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":324,"sourceHtmlUrl":325},"mcp-app\u002Fpackage.json",1446,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002Fpackage.json",{"path":327,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":328,"sourceHtmlUrl":329},"mcp-app\u002FREADME.md",3097,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002FREADME.md",{"path":331,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":332,"sourceHtmlUrl":333},"mcp-app\u002Fscripts\u002Fchmod-server.mjs",150,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002Fscripts\u002Fchmod-server.mjs",{"path":335,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":336,"sourceHtmlUrl":337},"mcp-app\u002Fscripts\u002Fstrip-dist-whitespace.mjs",308,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002Fscripts\u002Fstrip-dist-whitespace.mjs",{"path":339,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":340,"sourceHtmlUrl":341},"mcp-app\u002Fsrc\u002FhostBridge.ts",6816,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002Fsrc\u002FhostBridge.ts",{"path":343,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":344,"sourceHtmlUrl":345},"mcp-app\u002Fsrc\u002FsampleData.ts",2799,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002Fsrc\u002FsampleData.ts",{"path":347,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":348,"sourceHtmlUrl":349},"mcp-app\u002Fsrc\u002Fserver.ts",4967,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002Fsrc\u002Fserver.ts",{"path":351,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":352,"sourceHtmlUrl":353},"mcp-app\u002Fsrc\u002Ftsv.ts",426,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002Fsrc\u002Ftsv.ts",{"path":355,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":356,"sourceHtmlUrl":357},"mcp-app\u002Fsrc\u002Ftypes.ts",1459,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002Fsrc\u002Ftypes.ts",{"path":359,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":360,"sourceHtmlUrl":361},"mcp-app\u002Fsrc\u002Fversion.ts",92,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002Fsrc\u002Fversion.ts",{"path":363,"resourceType":144,"resourceTypeDesc":145,"sizeBytes":364,"sourceHtmlUrl":365},"mcp-app\u002Fsrc\u002Fviewer.css",9162,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002Fsrc\u002Fviewer.css",{"path":367,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":368,"sourceHtmlUrl":369},"mcp-app\u002Fsrc\u002Fviewer.ts",18802,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002Fsrc\u002Fviewer.ts",{"path":371,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":372,"sourceHtmlUrl":373},"mcp-app\u002Fsrc\u002Fworkbook.ts",11624,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002Fsrc\u002Fworkbook.ts",{"path":375,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":376,"sourceHtmlUrl":377},"mcp-app\u002Ftest\u002Fviewer.test.ts",23605,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002Ftest\u002Fviewer.test.ts",{"path":379,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":380,"sourceHtmlUrl":381},"mcp-app\u002Ftest\u002Fworkbook.test.ts",5855,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002Ftest\u002Fworkbook.test.ts",{"path":383,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":384,"sourceHtmlUrl":385},"mcp-app\u002Ftsconfig.json",372,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002Ftsconfig.json",{"path":387,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":388,"sourceHtmlUrl":389},"mcp-app\u002Fvite.config.ts",337,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fmcp-app\u002Fvite.config.ts",{"path":391,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":392,"sourceHtmlUrl":393},"README.md",18988,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002FREADME.md",{"path":395,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":396,"sourceHtmlUrl":397},"scripts\u002Fgenerate_og_card.py",6217,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fscripts\u002Fgenerate_og_card.py",{"path":399,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":312,"sourceHtmlUrl":400},"scripts\u002Fnaive_preview.py","https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fscripts\u002Fnaive_preview.py",{"path":402,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":403,"sourceHtmlUrl":404},"scripts\u002Frecord_agent_preview.tape",1152,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fscripts\u002Frecord_agent_preview.tape",{"path":406,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":407,"sourceHtmlUrl":408},"scripts\u002Frecord_contrast.tape",1264,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fscripts\u002Frecord_contrast.tape",{"path":410,"resourceType":176,"resourceTypeDesc":177,"sizeBytes":411,"sourceHtmlUrl":412},"scripts\u002Frecord_screencast.tape",2185,"https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fscripts\u002Frecord_screencast.tape",[414],{"skillNo":415,"name":5,"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":416,"categories":417,"keywords":419,"publishedAt":53},"01M718KFG4ZWPR6QTN6GTD7EVQ","https:\u002F\u002Fgithub.com\u002Fwolfiesch\u002Fspreadsheet-peek\u002Fblob\u002Fmaster\u002Fskills\u002Fspreadsheet-peek\u002FSKILL.md",[418],{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},[34,33]]