[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M780XYCSYE03M76WN3FD7ADJ":3,"skill-same:01M780XYCSYE03M76WN3FD7ADJ":88},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":36,"commitSha":37,"skillDirectory":38,"forksCount":39,"repositoryHtmlUrl":40,"repositoryHomepageUrl":6,"ownerHtmlUrl":41,"ownerBlogUrl":6,"ownerDescription":42,"updatedAt":43,"install":44,"resources":57},"01M780XYCSYE03M76WN3FD7ADJ","Git",null,"Git commits, branches, rebases, merges, conflict resolution, history recovery, team workflows, and the commands needed for safe day-to-day version control. Use when (1) the task touches Git, a repository, commits, branches, merges, rebases, or pull requests; (2) history safety, collaboration, or recovery matter; (3) the agent should automatically apply Git discipline instead of improvising.","HKU-MMLab\u002FUniClawBench","HKU-MMLab","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F218629317?v=4","01M7808YETMPBKR5WJNJRFSCDJ","01M7808YFS0WMXB5QAF8YG01BA",40,"MIT","https:\u002F\u002Fgithub.com\u002FHKU-MMLab\u002FUniClawBench\u002Fblob\u002Fmain\u002Finjection\u002F201_skill_usage_zh\u002Ftask_201_29_flask_hotspots_2yr\u002Fskills\u002Fgit\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: Git\nslug: git\nversion: 1.0.8\ndescription: \"Git commits, branches, rebases, merges, conflict resolution, history recovery, team workflows, and the commands needed for safe day-to-day version control. Use when (1) the task touches Git, a repository, commits, branches, merges, rebases, or pull requests; (2) history safety, collaboration, or recovery matter; (3) the agent should automatically apply Git discipline instead of improvising.\"\nhomepage: https:\u002F\u002Fclawic.com\u002Fskills\u002Fgit\nchangelog: Simplified the skill name and kept the stateless activation guidance\nmetadata: {\"clawdbot\":{\"emoji\":\"📚\",\"requires\":{\"bins\":[\"git\"]},\"os\":[\"linux\",\"darwin\",\"win32\"]}}\n---\n\n## When to Use\n\nUse when the task involves Git repositories, branches, commits, merges, rebases, pull requests, conflict resolution, history inspection, or recovery. This skill is stateless and should be applied by default whenever Git work is part of the job.\n\n## Quick Reference\n\n| Topic | File |\n|-------|------|\n| Essential commands | `commands.md` |\n| Advanced operations | `advanced.md` |\n| Branch strategies | `branching.md` |\n| Conflict resolution | `conflicts.md` |\n| History and recovery | `history.md` |\n| Team workflows | `collaboration.md` |\n\n## Core Rules\n\n1. **Never force push to shared branches** — Use `--force-with-lease` on feature branches only\n2. **Commit early, commit often** — Small commits are easier to review, revert, and bisect\n3. **Write meaningful commit messages** — First line under 72 chars, imperative mood\n4. **Pull before push** — Always `git pull --rebase` before pushing to avoid merge commits\n5. **Clean up before merging** — Use `git rebase -i` to squash fixup commits\n\n## Team Workflows\n\n**Feature Branch Flow:**\n1. `git checkout -b feature\u002Fname` from main\n2. Make commits, push regularly\n3. Open PR, get review\n4. Squash and merge to main\n5. Delete feature branch\n\n**Hotfix Flow:**\n1. `git checkout -b hotfix\u002Fissue` from main\n2. Fix, test, commit\n3. Merge to main AND develop (if exists)\n4. Tag the release\n\n**Daily Sync:**\n```bash\ngit fetch --all --prune\ngit rebase origin\u002Fmain  # or merge if team prefers\n```\n\n## Commit Messages\n\n- Use conventional commit format: `type(scope): description`\n- Keep first line under 72 characters\n- Types: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`\n\n## Push Safety\n\n- Use `git push --force-with-lease` instead of `--force` — prevents overwriting others' work\n- If push rejected, run `git pull --rebase` before retrying\n- Never force push to main\u002Fmaster branch\n\n## Conflict Resolution\n\n- After editing conflicted files, verify no markers remain: `grep -r \"\u003C\u003C\u003C\\|>>>\\|===\" .`\n- Test that code builds before completing merge\n- If merge becomes complex, abort with `git merge --abort` and try `git rebase` instead\n\n## Branch Hygiene\n\n- Delete merged branches locally: `git branch -d branch-name`\n- Clean remote tracking: `git fetch --prune`\n- Before creating PR, rebase feature branch onto latest main\n- Use `git rebase -i` to squash messy commits before pushing\n\n## Safety Checklist\n\nBefore destructive operations (`reset --hard`, `rebase`, `force push`):\n\n- [ ] Is this a shared branch? → Don't rewrite history\n- [ ] Do I have uncommitted changes? → Stash or commit first\n- [ ] Am I on the right branch? → `git branch` to verify\n- [ ] Is remote up to date? → `git fetch` first\n\n## Common Traps\n\n- **git user.email wrong** — Verify with `git config user.email` before important commits\n- **Empty directories** — Git doesn't track them, add `.gitkeep`\n- **Submodules** — Always clone with `--recurse-submodules`\n- **Detached HEAD** — Use `git switch -` to return to previous branch\n- **Push rejected** — Usually needs `git pull --rebase` first\n- **stash pop on conflict** — Stash disappears. Use `stash apply` instead\n- **Large files** — Use Git LFS for files >50MB, never commit secrets\n- **Case sensitivity** — Mac\u002FWindows ignore case, Linux doesn't — causes CI failures\n\n## Recovery Commands\n\n- Undo last commit keeping changes: `git reset --soft HEAD~1`\n- Discard unstaged changes: `git restore filename`\n- Find lost commits: `git reflog` (keeps ~90 days of history)\n- Recover deleted branch: `git checkout -b branch-name \u003Csha-from-reflog>`\n- Use `git add -p` for partial staging when commit mixes multiple changes\n\n## Debugging with Bisect\n\nFind the commit that introduced a bug:\n```bash\ngit bisect start\ngit bisect bad                    # current commit is broken\ngit bisect good v1.0.0            # this version worked\n# Git checks out middle commit, test it, then:\ngit bisect good                   # or git bisect bad\n# Repeat until Git finds the culprit\ngit bisect reset                  # return to original branch\n```\n\n## Churn \u002F Hotspot Analysis\n\nWhen computing per-file churn (insertions + deletions) across a date range, use `--no-merges` to exclude merge commits. Merge commits carry no unique diff of their own, and including them can double-count changes already present in the merged branch. Running a single global log with `--numstat` and attributing each file's stats from the numstat block is the most reliable approach — it avoids Git's history-simplification behaviour that silently drops commits when a pathspec is supplied.\n\n```bash\n# Recommended: global log, skip merges, collect per-file stats\ngit log --after=\u003Cstart> --no-merges --numstat --format=\"COMMIT:%H %s\"\n# Parse the output: each COMMIT line starts a new commit;\n# subsequent tab-separated lines are insertions\u002Fdeletions\u002Fpath.\n```\n\nAvoid per-file `git log -- \u003Cpath>` for aggregate statistics — Git's default history simplification can exclude commits that reached the file through a merge, producing lower counts than the global traversal.\n\n## Quick Summary\n\n```bash\ngit status -sb                    # short status with branch\ngit log --oneline -5              # last 5 commits\ngit shortlog -sn                  # contributors by commit count\ngit diff --stat HEAD~5            # changes summary last 5 commits\ngit branch -vv                    # branches with tracking info\ngit stash list                    # pending stashes\n```\n\n## Related Skills\nUse these only if they are already available in the workspace:\n- `gitlab` — GitLab CI\u002FCD and merge requests\n- `docker` — Containerization workflows\n- `code` — Code quality and best practices\n\n## Feedback\n\n- If useful: `clawhub star git`\n- Stay updated: `clawhub sync`\n","## When to Use\n\nUse when the task involves Git repositories, branches, commits, merges, rebases, pull requests, conflict resolution, history inspection, or recovery. This skill is stateless and should be applied by default whenever Git work is part of the job.\n\n## Quick Reference\n\n| Topic | File |\n|-------|------|\n| Essential commands | `commands.md` |\n| Advanced operations | `advanced.md` |\n| Branch strategies | `branching.md` |\n| Conflict resolution | `conflicts.md` |\n| History and recovery | `history.md` |\n| Team workflows | `collaboration.md` |\n\n## Core Rules\n\n1. **Never force push to shared branches** — Use `--force-with-lease` on feature branches only\n2. **Commit early, commit often** — Small commits are easier to review, revert, and bisect\n3. **Write meaningful commit messages** — First line under 72 chars, imperative mood\n4. **Pull before push** — Always `git pull --rebase` before pushing to avoid merge commits\n5. **Clean up before merging** — Use `git rebase -i` to squash fixup commits\n\n## Team Workflows\n\n**Feature Branch Flow:**\n1. `git checkout -b feature\u002Fname` from main\n2. Make commits, push regularly\n3. Open PR, get review\n4. Squash and merge to main\n5. Delete feature branch\n\n**Hotfix Flow:**\n1. `git checkout -b hotfix\u002Fissue` from main\n2. Fix, test, commit\n3. Merge to main AND develop (if exists)\n4. Tag the release\n\n**Daily Sync:**\n```bash\ngit fetch --all --prune\ngit rebase origin\u002Fmain  # or merge if team prefers\n```\n\n## Commit Messages\n\n- Use conventional commit format: `type(scope): description`\n- Keep first line under 72 characters\n- Types: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`\n\n## Push Safety\n\n- Use `git push --force-with-lease` instead of `--force` — prevents overwriting others' work\n- If push rejected, run `git pull --rebase` before retrying\n- Never force push to main\u002Fmaster branch\n\n## Conflict Resolution\n\n- After editing conflicted files, verify no markers remain: `grep -r \"\u003C\u003C\u003C\\|>>>\\|===\" .`\n- Test that code builds before completing merge\n- If merge becomes complex, abort with `git merge --abort` and try `git rebase` instead\n\n## Branch Hygiene\n\n- Delete merged branches locally: `git branch -d branch-name`\n- Clean remote tracking: `git fetch --prune`\n- Before creating PR, rebase feature branch onto latest main\n- Use `git rebase -i` to squash messy commits before pushing\n\n## Safety Checklist\n\nBefore destructive operations (`reset --hard`, `rebase`, `force push`):\n\n- [ ] Is this a shared branch? → Don't rewrite history\n- [ ] Do I have uncommitted changes? → Stash or commit first\n- [ ] Am I on the right branch? → `git branch` to verify\n- [ ] Is remote up to date? → `git fetch` first\n\n## Common Traps\n\n- **git user.email wrong** — Verify with `git config user.email` before important commits\n- **Empty directories** — Git doesn't track them, add `.gitkeep`\n- **Submodules** — Always clone with `--recurse-submodules`\n- **Detached HEAD** — Use `git switch -` to return to previous branch\n- **Push rejected** — Usually needs `git pull --rebase` first\n- **stash pop on conflict** — Stash disappears. Use `stash apply` instead\n- **Large files** — Use Git LFS for files >50MB, never commit secrets\n- **Case sensitivity** — Mac\u002FWindows ignore case, Linux doesn't — causes CI failures\n\n## Recovery Commands\n\n- Undo last commit keeping changes: `git reset --soft HEAD~1`\n- Discard unstaged changes: `git restore filename`\n- Find lost commits: `git reflog` (keeps ~90 days of history)\n- Recover deleted branch: `git checkout -b branch-name \u003Csha-from-reflog>`\n- Use `git add -p` for partial staging when commit mixes multiple changes\n\n## Debugging with Bisect\n\nFind the commit that introduced a bug:\n```bash\ngit bisect start\ngit bisect bad                    # current commit is broken\ngit bisect good v1.0.0            # this version worked\n# Git checks out middle commit, test it, then:\ngit bisect good                   # or git bisect bad\n# Repeat until Git finds the culprit\ngit bisect reset                  # return to original branch\n```\n\n## Churn \u002F Hotspot Analysis\n\nWhen computing per-file churn (insertions + deletions) across a date range, use `--no-merges` to exclude merge commits. Merge commits carry no unique diff of their own, and including them can double-count changes already present in the merged branch. Running a single global log with `--numstat` and attributing each file's stats from the numstat block is the most reliable approach — it avoids Git's history-simplification behaviour that silently drops commits when a pathspec is supplied.\n\n```bash\n# Recommended: global log, skip merges, collect per-file stats\ngit log --after=\u003Cstart> --no-merges --numstat --format=\"COMMIT:%H %s\"\n# Parse the output: each COMMIT line starts a new commit;\n# subsequent tab-separated lines are insertions\u002Fdeletions\u002Fpath.\n```\n\nAvoid per-file `git log -- \u003Cpath>` for aggregate statistics — Git's default history simplification can exclude commits that reached the file through a merge, producing lower counts than the global traversal.\n\n## Quick Summary\n\n```bash\ngit status -sb                    # short status with branch\ngit log --oneline -5              # last 5 commits\ngit shortlog -sn                  # contributors by commit count\ngit diff --stat HEAD~5            # changes summary last 5 commits\ngit branch -vv                    # branches with tracking info\ngit stash list                    # pending stashes\n```\n\n## Related Skills\nUse these only if they are already available in the workspace:\n- `gitlab` — GitLab CI\u002FCD and merge requests\n- `docker` — Containerization workflows\n- `code` — Code quality and best practices\n\n## Feedback\n\n- If useful: `clawhub star git`\n- Stay updated: `clawhub sync`\n",{"name":5,"slug":23,"version":24,"homepage":25,"metadata":26,"changelog":35,"description":7},"git","1.0.8","https:\u002F\u002Fclawic.com\u002Fskills\u002Fgit",{"clawdbot":27},{"os":28,"emoji":32,"requires":33},[29,30,31],"linux","darwin","win32","📚",{"bins":34},[23],"Simplified the skill name and kept the stateless activation guidance","main","a8ac4df6c554178c339f42696e3afe688a61f4b7","injection\u002F201_skill_usage_zh\u002Ftask_201_29_flask_hotspots_2yr\u002Fskills\u002Fgit",1,"https:\u002F\u002Fgithub.com\u002FHKU-MMLab\u002FUniClawBench","https:\u002F\u002Fgithub.com\u002FHKU-MMLab","Multimedia Lab at The University of Hong Kong, a top-notch research cohort dedicated to research and educating the best minds.","2026-07-28 16:29:51",{"source":8,"skillName":5,"commands":45,"prompt":55,"zipAvailable":56},[46,49,52],{"tool":47,"command":48},"npx","npx skills add HKU-MMLab\u002FUniClawBench --skill Git",{"tool":50,"command":51},"bunx","bunx skills add HKU-MMLab\u002FUniClawBench --skill Git",{"tool":53,"command":54},"pnpm","pnpm dlx skills add HKU-MMLab\u002FUniClawBench --skill Git","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FHKU-MMLab\u002FUniClawBench\u002Fblob\u002Fmain\u002Finjection\u002F201_skill_usage_zh\u002Ftask_201_29_flask_hotspots_2yr\u002Fskills\u002Fgit\u002FSKILL.md",true,[58,64,68,72,76,80,84],{"path":59,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":62,"sourceHtmlUrl":63},"_meta.json","REFERENCE","参考文档",122,"https:\u002F\u002Fgithub.com\u002FHKU-MMLab\u002FUniClawBench\u002Fblob\u002Fmain\u002Finjection\u002F201_skill_usage_zh\u002Ftask_201_29_flask_hotspots_2yr\u002Fskills\u002Fgit\u002F_meta.json",{"path":65,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":66,"sourceHtmlUrl":67},"advanced.md",3643,"https:\u002F\u002Fgithub.com\u002FHKU-MMLab\u002FUniClawBench\u002Fblob\u002Fmain\u002Finjection\u002F201_skill_usage_zh\u002Ftask_201_29_flask_hotspots_2yr\u002Fskills\u002Fgit\u002Fadvanced.md",{"path":69,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":70,"sourceHtmlUrl":71},"branching.md",1802,"https:\u002F\u002Fgithub.com\u002FHKU-MMLab\u002FUniClawBench\u002Fblob\u002Fmain\u002Finjection\u002F201_skill_usage_zh\u002Ftask_201_29_flask_hotspots_2yr\u002Fskills\u002Fgit\u002Fbranching.md",{"path":73,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":74,"sourceHtmlUrl":75},"collaboration.md",1406,"https:\u002F\u002Fgithub.com\u002FHKU-MMLab\u002FUniClawBench\u002Fblob\u002Fmain\u002Finjection\u002F201_skill_usage_zh\u002Ftask_201_29_flask_hotspots_2yr\u002Fskills\u002Fgit\u002Fcollaboration.md",{"path":77,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":78,"sourceHtmlUrl":79},"commands.md",3082,"https:\u002F\u002Fgithub.com\u002FHKU-MMLab\u002FUniClawBench\u002Fblob\u002Fmain\u002Finjection\u002F201_skill_usage_zh\u002Ftask_201_29_flask_hotspots_2yr\u002Fskills\u002Fgit\u002Fcommands.md",{"path":81,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":82,"sourceHtmlUrl":83},"conflicts.md",1443,"https:\u002F\u002Fgithub.com\u002FHKU-MMLab\u002FUniClawBench\u002Fblob\u002Fmain\u002Finjection\u002F201_skill_usage_zh\u002Ftask_201_29_flask_hotspots_2yr\u002Fskills\u002Fgit\u002Fconflicts.md",{"path":85,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":86,"sourceHtmlUrl":87},"history.md",1491,"https:\u002F\u002Fgithub.com\u002FHKU-MMLab\u002FUniClawBench\u002Fblob\u002Fmain\u002Finjection\u002F201_skill_usage_zh\u002Ftask_201_29_flask_hotspots_2yr\u002Fskills\u002Fgit\u002Fhistory.md",[89,96,103,110,117,124],{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":18},"01M78127EY3XPHMS16Y8A8B6NR","cli-anything-zoom","Command-line interface for Zoom — manage meetings, participants, and recordings from the command line via the Zoom REST API.","https:\u002F\u002Fgithub.com\u002FHKU-MMLab\u002FUniClawBench\u002Fblob\u002Fmain\u002Finjection\u002F205_cross_platform_zh\u002Ftask_205_33_calendar_scheduling\u002Fskills\u002Fcli-anything-zoom\u002FSKILL.md",[],[],{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":18},"01M78123F7PCSTEZ8CT3DBEGBT","netease-music-cli","CLI for NetEase Cloud Music — search songs\u002Falbums\u002Fplaylists, get lyrics, and manage your music library from the terminal.","https:\u002F\u002Fgithub.com\u002FHKU-MMLab\u002FUniClawBench\u002Fblob\u002Fmain\u002Finjection\u002F205_cross_platform_zh\u002Ftask_205_26_music_crossid\u002Fskills\u002Fnetease-music-cli\u002FSKILL.md",[],[],{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":109,"publishedAt":18},"01M78120M9QEN0MQB9X0FCKSZX","google-calendar-gcalcli","Install and use gcalcli for live Google Calendar read access using the provided OAuth cache.","https:\u002F\u002Fgithub.com\u002FHKU-MMLab\u002FUniClawBench\u002Fblob\u002Fmain\u002Finjection\u002F203_long_context_zh\u002Ftask_203_08_hk_jpop_calendar_ticketing\u002Fskills\u002Fgoogle-calendar-gcalcli\u002FSKILL.md",[],[],{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":116,"publishedAt":18},"01M7811TTCHD4JW4FG5HG1PVY9","Excel \u002F XLSX","Create, inspect, and edit Microsoft Excel workbooks and XLSX files with reliable formulas, dates, types, formatting, recalculation, and template preservation. Use when (1) the task is about Excel, `.xlsx`, `.xlsm`, `.xls`, `.csv`, or `.tsv`; (2) formulas, formatting, workbook structure, or compatibility matter; (3) the file must stay reliable after edits.","https:\u002F\u002Fgithub.com\u002FHKU-MMLab\u002FUniClawBench\u002Fblob\u002Fmain\u002Finjection\u002F201_skill_usage_zh\u002Ftask_201_40_excel_dashboard_qa\u002Fskills\u002Fexcel-xlsx\u002FSKILL.md",[],[],{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":123,"publishedAt":18},"01M7811PGJQ4XDQ7XJ0TKNSEE6","duckdb-en","DuckDB CLI specialist for SQL analysis, data processing and file conversion. Use for SQL queries, CSV\u002FParquet\u002FJSON analysis, database queries, or data conversion. Triggers on \"duckdb\", \"sql\", \"query\", \"data analysis\", \"parquet\", \"convert data\".","https:\u002F\u002Fgithub.com\u002FHKU-MMLab\u002FUniClawBench\u002Fblob\u002Fmain\u002Finjection\u002F201_skill_usage_zh\u002Ftask_201_40_excel_dashboard_qa\u002Fskills\u002Fduckdb-cli-ai-skills\u002FSKILL.md",[],[],{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":130,"publishedAt":18},"01M7811JSJW78171B25VJ285A0","automate-excel","Automates reading, writing, merging, transforming, and validating Excel (.xlsx\u002F.xls) files. Use when the user works with spreadsheets, .xlsx files, Excel data — for cleaning, joining, validating, deduplicating, aggregating, filtering, or auditing tabular data.","https:\u002F\u002Fgithub.com\u002FHKU-MMLab\u002FUniClawBench\u002Fblob\u002Fmain\u002Finjection\u002F201_skill_usage_zh\u002Ftask_201_40_excel_dashboard_qa\u002Fskills\u002Fautomate-excel\u002FSKILL.md",[],[]]