[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6R7CVMVSGAMHB6KNPVM3PXE":3,"skill-same:01M6R7CVMVSGAMHB6KNPVM3PXE":93},{"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":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":6,"ownerHtmlUrl":59,"ownerBlogUrl":60,"ownerDescription":61,"updatedAt":62,"install":63,"resources":76},"01M6R7CVMVSGAMHB6KNPVM3PXE","gogcli-ops",null,"Operates Google Drive, Docs, Sheets, and Slides via gogcli. Use when listing, searching, reading, or updating Google Workspace files.","tim-hub\u002Fpowerball-harness","tim-hub","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F2884320?v=4","01M6R7B70M93Y25SH3DV1B4Q26","Tim","01M6R7B74YQWC556YVC0FRVS3T",35,"MIT","https:\u002F\u002Fgithub.com\u002Ftim-hub\u002Fpowerball-harness\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fgogcli-ops\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000003","演示文稿","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"gogcli ops","gogcli","ops","use","when","parse","sheets","reading","URL","via","files","google","read","grep","workspace","slides","Bash","spreadsheet","google sheets","google workspace","2026-11-10 10:12:30",false,"---\nname: gogcli-ops\ndescription: \"Operates Google Drive, Docs, Sheets, and Slides via gogcli. Use when listing, searching, reading, or updating Google Workspace files.\"\nwhen_to_use: \"Google Drive, Google Docs, Google Sheets, Slides, export doc, read spreadsheet, parse Google URL\"\nallowed-tools: [\"Read\", \"Bash\", \"Grep\", \"Glob\"]\n---\n\n# Gogcli Ops\n\nOperates Google Workspace files via the `gogcli` CLI — Drive, Sheets, Docs, and Slides.\n\n## Overview\nStandardize gogcli usage: verify auth, resolve IDs from URLs, default to read-only checks, then run the minimum command needed.\n\n## Quick start\n- Confirm gogcli is available: `gog --version`\n- List accounts and pick one explicitly if more than one: `gog auth list`\n- Resolve URL to ID with `python3 \"${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fgog_parse_url.py\" \"\u003Curl-or-id>\"`\n- Run a read-only metadata command first (Drive\u002FSheets\u002FDocs\u002FSlides)\n\n## Workflow decision tree\n1. Identify target type: `sheet | doc | slide | file | folder | id | unknown` via `\"${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fgog_parse_url.py\"`. # skill-local\n2. Choose the smallest read-only command to confirm access:\n   - Sheets: `gog sheets metadata \u003CspreadsheetId>`\n   - Docs: `gog docs info \u003CdocId>`\n   - Slides: `gog slides info \u003CpresentationId>`\n   - Drive file\u002Ffolder: `gog drive get \u003CfileId>` or `gog drive permissions \u003CfileId>`\n3. Only proceed to write operations (update\u002Fappend\u002Fmove\u002Fshare\u002Fdelete) after explicit user confirmation.\n\n## Core tasks\n\n### Auth and account selection\n- Show stored accounts: `gog auth list`\n- Show auth configuration: `gog auth status`\n- Add\u002Fauthorize account: `gog auth add \u003Cemail>`\n- Always use `--account \u003Cemail>` when multiple accounts exist.\n\n### Resolve IDs from URLs\n- Parse a URL or ID:\n  - `python3 \"${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fgog_parse_url.py\" \"\u003Curl-or-id>\"` # skill-local\n- If output type is `unknown`, ask for a direct ID or a different URL.\n\n### Drive (files\u002Ffolders)\n- List root or a folder: `gog drive ls`\n- Search by query: `gog drive search \"\u003Cquery>\"`\n- Get metadata: `gog drive get \u003CfileId>`\n- Download\u002Fexport: `gog drive download \u003CfileId>`\n- Permissions check: `gog drive permissions \u003CfileId>`\n\n### Sheets\n- Metadata: `gog sheets metadata \u003CspreadsheetId>`\n- Read values: `gog sheets get \u003CspreadsheetId> \u003Crange>`\n- Export: `gog sheets export \u003CspreadsheetId>`\n- Write operations (update\u002Fappend\u002Fclear\u002Fformat): require explicit confirmation and exact range.\n\n### Docs\n- Metadata: `gog docs info \u003CdocId>`\n- Read text: `gog docs cat \u003CdocId>`\n- Export: `gog docs export \u003CdocId>`\n\n### Slides\n- Metadata: `gog slides info \u003CpresentationId>`\n- Export: `gog slides export \u003CpresentationId>`\n\n### Output modes\n- Use `--plain` for stable TSV output.\n- Use `--json` when a caller wants structured output.\n- Use `--no-input` in non-interactive flows to avoid hanging.\n\n## Error handling\n- 403\u002F404: verify account (`gog auth list`), check permissions (`gog drive permissions \u003CfileId>`), and confirm the ID.\n- If access fails, request the user to share the file with the selected account or provide the correct account.\n\n## Resources\n- See `${CLAUDE_SKILL_DIR}\u002Freferences\u002Fgogcli-cheatsheet.md` for a compact command list.\n- Use `\"${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fgog_parse_url.py\"` to normalize URLs into IDs before running commands. # skill-local\n","# Gogcli Ops\n\nOperates Google Workspace files via the `gogcli` CLI — Drive, Sheets, Docs, and Slides.\n\n## Overview\nStandardize gogcli usage: verify auth, resolve IDs from URLs, default to read-only checks, then run the minimum command needed.\n\n## Quick start\n- Confirm gogcli is available: `gog --version`\n- List accounts and pick one explicitly if more than one: `gog auth list`\n- Resolve URL to ID with `python3 \"${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fgog_parse_url.py\" \"\u003Curl-or-id>\"`\n- Run a read-only metadata command first (Drive\u002FSheets\u002FDocs\u002FSlides)\n\n## Workflow decision tree\n1. Identify target type: `sheet | doc | slide | file | folder | id | unknown` via `\"${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fgog_parse_url.py\"`. # skill-local\n2. Choose the smallest read-only command to confirm access:\n   - Sheets: `gog sheets metadata \u003CspreadsheetId>`\n   - Docs: `gog docs info \u003CdocId>`\n   - Slides: `gog slides info \u003CpresentationId>`\n   - Drive file\u002Ffolder: `gog drive get \u003CfileId>` or `gog drive permissions \u003CfileId>`\n3. Only proceed to write operations (update\u002Fappend\u002Fmove\u002Fshare\u002Fdelete) after explicit user confirmation.\n\n## Core tasks\n\n### Auth and account selection\n- Show stored accounts: `gog auth list`\n- Show auth configuration: `gog auth status`\n- Add\u002Fauthorize account: `gog auth add \u003Cemail>`\n- Always use `--account \u003Cemail>` when multiple accounts exist.\n\n### Resolve IDs from URLs\n- Parse a URL or ID:\n  - `python3 \"${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fgog_parse_url.py\" \"\u003Curl-or-id>\"` # skill-local\n- If output type is `unknown`, ask for a direct ID or a different URL.\n\n### Drive (files\u002Ffolders)\n- List root or a folder: `gog drive ls`\n- Search by query: `gog drive search \"\u003Cquery>\"`\n- Get metadata: `gog drive get \u003CfileId>`\n- Download\u002Fexport: `gog drive download \u003CfileId>`\n- Permissions check: `gog drive permissions \u003CfileId>`\n\n### Sheets\n- Metadata: `gog sheets metadata \u003CspreadsheetId>`\n- Read values: `gog sheets get \u003CspreadsheetId> \u003Crange>`\n- Export: `gog sheets export \u003CspreadsheetId>`\n- Write operations (update\u002Fappend\u002Fclear\u002Fformat): require explicit confirmation and exact range.\n\n### Docs\n- Metadata: `gog docs info \u003CdocId>`\n- Read text: `gog docs cat \u003CdocId>`\n- Export: `gog docs export \u003CdocId>`\n\n### Slides\n- Metadata: `gog slides info \u003CpresentationId>`\n- Export: `gog slides export \u003CpresentationId>`\n\n### Output modes\n- Use `--plain` for stable TSV output.\n- Use `--json` when a caller wants structured output.\n- Use `--no-input` in non-interactive flows to avoid hanging.\n\n## Error handling\n- 403\u002F404: verify account (`gog auth list`), check permissions (`gog drive permissions \u003CfileId>`), and confirm the ID.\n- If access fails, request the user to share the file with the selected account or provide the correct account.\n\n## Resources\n- See `${CLAUDE_SKILL_DIR}\u002Freferences\u002Fgogcli-cheatsheet.md` for a compact command list.\n- Use `\"${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fgog_parse_url.py\"` to normalize URLs into IDs before running commands. # skill-local\n",{"name":5,"description":7,"when_to_use":49,"allowed-tools":50},"Google Drive, Google Docs, Google Sheets, Slides, export doc, read spreadsheet, parse Google URL",[51,40,52,53],"Read","Grep","Glob","master","cf086c6a667d37610d30a4236b94d8ab02e4efc5",".claude\u002Fskills\u002Fgogcli-ops",0,"https:\u002F\u002Fgithub.com\u002Ftim-hub\u002Fpowerball-harness","https:\u002F\u002Fgithub.com\u002Ftim-hub","https:\u002F\u002Ftim.bai.uno","Building things.","2026-08-05 17:45:08",{"source":8,"skillName":5,"commands":64,"prompt":74,"zipAvailable":75},[65,68,71],{"tool":66,"command":67},"npx","npx skills add tim-hub\u002Fpowerball-harness --skill gogcli-ops",{"tool":69,"command":70},"bunx","bunx skills add tim-hub\u002Fpowerball-harness --skill gogcli-ops",{"tool":72,"command":73},"pnpm","pnpm dlx skills add tim-hub\u002Fpowerball-harness --skill gogcli-ops","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ftim-hub\u002Fpowerball-harness\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fgogcli-ops\u002FSKILL.md",true,[77,83,87],{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":81,"sourceHtmlUrl":82},"agents\u002Fopenai.yaml","REFERENCE","参考文档",272,"https:\u002F\u002Fgithub.com\u002Ftim-hub\u002Fpowerball-harness\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fgogcli-ops\u002Fagents\u002Fopenai.yaml",{"path":84,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":85,"sourceHtmlUrl":86},"references\u002Fgogcli-cheatsheet.md",1365,"https:\u002F\u002Fgithub.com\u002Ftim-hub\u002Fpowerball-harness\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fgogcli-ops\u002Freferences\u002Fgogcli-cheatsheet.md",{"path":88,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":91,"sourceHtmlUrl":92},"scripts\u002Fgog_parse_url.py","SCRIPT","脚本",1358,"https:\u002F\u002Fgithub.com\u002Ftim-hub\u002Fpowerball-harness\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fgogcli-ops\u002Fscripts\u002Fgog_parse_url.py",[94,110,119,144,163,169],{"skillNo":95,"name":96,"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":97,"categories":98,"keywords":102,"publishedAt":44},"01M6R7GH70ABV40CS95W4WWMQZ","escape-skill","https:\u002F\u002Fgithub.com\u002Ftim-hub\u002Fpowerball-harness\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fskills\u002Fzz-review-escape\u002FSKILL.md",[99],{"categoryNo":100,"categoryName":101,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[103,104,105,106,107,108,109],"escape skill","escape","quoted","path","true","false","Tools",{"skillNo":111,"name":112,"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":113,"categories":114,"keywords":115,"publishedAt":44},"01M6R7G8A2BQHYTAR39BY7X3GK","zz-review-empty","https:\u002F\u002Fgithub.com\u002Ftim-hub\u002Fpowerball-harness\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fskills\u002Fzz-review-empty\u002FSKILL.md",[],[116,117,118,107,108],"review","zz review empty","empty",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":126,"publishedAt":44},"01M6R7G3XH6C43JKP2RX1SZW6V","harness-schedule-run","Use when running Plans.md tasks on a scheduled cadence (fresh context per wake-up, sprint-contract flow, plateau detection, flock guard). Do NOT load for: single-task work (harness-work), planning, review, release.","https:\u002F\u002Fgithub.com\u002Ftim-hub\u002Fpowerball-harness\u002Fblob\u002Fmaster\u002Fharness\u002Ftemplates\u002Fopencode\u002Fskills\u002Fharness-schedule-run\u002FSKILL.md",[125],{"categoryNo":100,"categoryName":101,"taxonomyType":21,"taxonomyTypeDesc":22},[127,128,129,130,116,131,132,133,134,135,28,136,40,137,138,139,140,141,142,143],"run","harness schedule run","harness","schedule","tasks","ci","MCP","mem","wake","sprint-contract","scheduled","cadence","sprint","fresh","worker","up","work",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":150,"publishedAt":44},"01M6R7FY3ZVYDDKXBT3D7QSFFK","harness-work","Use when implementing, executing, or running Plans.md tasks — single task, parallel workers, or full team\u002Fbreezing run. Accepts specific task numbers or ranges. Do NOT load for: planning, review, release, or setup.","https:\u002F\u002Fgithub.com\u002Ftim-hub\u002Fpowerball-harness\u002Fblob\u002Fmaster\u002Fharness\u002Ftemplates\u002Fcodex-skills\u002Fharness-work\u002FSKILL.md",[],[151,129,143,152,28,153,154,155,156,157,158,159,160,40,161,127,131,162,116,36],"harness work","full","implementing","mode","number","breezing","auto","edit","write","team","release","commit",{"skillNo":164,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":165,"categories":166,"keywords":168,"publishedAt":44},"01M6R7FGP3R612506A5GKMBF5C","https:\u002F\u002Fgithub.com\u002Ftim-hub\u002Fpowerball-harness\u002Fblob\u002Fmaster\u002Fharness\u002Ftemplates\u002Fcodex-skills\u002Fharness-schedule-run\u002FSKILL.md",[167],{"categoryNo":100,"categoryName":101,"taxonomyType":21,"taxonomyTypeDesc":22},[128,129,127,130,116,133,131,137,28,136,135,138,139,140,141,134,142,143,40,132],{"skillNo":170,"name":156,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":174,"publishedAt":44},"01M6R7FCDN9AS7RSQFGZWHTF7F","Use when running the full team\u002Fbreezing flow end-to-end — all tasks with parallel workers. Do NOT load for: single-task implementation, planning, review, release, or setup.","https:\u002F\u002Fgithub.com\u002Ftim-hub\u002Fpowerball-harness\u002Fblob\u002Fmaster\u002Fharness\u002Ftemplates\u002Fcodex-skills\u002Fbreezing\u002FSKILL.md",[],[156,158,175,28,176,154,177,178,152,157,159,36,179,40,160,180,161,131,162,116],"running","single-task","websearch","end","parallel","flow"]