[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CDA5PA78YPC7YN0ZFK99VZ":3,"skill-same:01M6CDA5PA78YPC7YN0ZFK99VZ":78},{"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":28,"publishedAt":48,"linkOnly":49,"markdownContent":50,"markdownBody":51,"frontMatter":52,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":58,"repositoryHtmlUrl":59,"repositoryHomepageUrl":60,"ownerHtmlUrl":61,"ownerBlogUrl":6,"ownerDescription":62,"updatedAt":63,"install":64,"resources":77},"01M6CDA5PA78YPC7YN0ZFK99VZ","promptscript",null,"PromptScript language expert for reading, writing, modifying, and troubleshooting .prs files. Use when working with PromptScript syntax, creating or editing .prs files, adding blocks like @identity, @standards, @restrictions, @shortcuts, @skills, or @agents, configuring promptscript.yaml, resolving compilation errors, understanding inheritance (@inherit), composition (@use, @extend, @override), contextual @header metadata, or migrating AI instructions to PromptScript. Also use when asked about the 50 built-in coding agent compilation targets, including GitHub Copilot, Claude Code, Cursor, Antigravity, Factory AI, and AGENTS.md-based platforms, or about the bundle and prompt-text targets for application prompts.","mrwogu\u002Fpromptscript","mrwogu","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F2917861?v=4","01M6CD988FG8NZ7SGMM9JG76Y7","Wojciech Guziak","01M6CD98C8MZJE9HW7P95CYB3S",344,"MIT","https:\u002F\u002Fgithub.com\u002Fmrwogu\u002Fpromptscript\u002Fblob\u002Fmain\u002Fpackages\u002Fcli\u002Fskills\u002Fpromptscript\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[5,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"gemini","for","goose","factory-ai","reading","kilo","windsurf","inheritance","kiro-cli","expert","standards","identity","coding","write","read","text","writing","files","Composition","2026-11-10 10:12:30",false,"---\nname: gdcli\ndescription: Google Drive CLI for listing, searching, uploading, downloading, and sharing files and folders.\n---\n\n# Google Drive CLI\n\nCommand-line interface for Google Drive operations.\n\n## Installation\n\n```bash\nnpm install -g @mariozechner\u002Fgdcli\n```\n\n## Setup\n\n### Google Cloud Console (one-time)\n\n1. [Create a new project](https:\u002F\u002Fconsole.cloud.google.com\u002Fprojectcreate) (or select existing)\n2. [Enable the Google Drive API](https:\u002F\u002Fconsole.cloud.google.com\u002Fapis\u002Fapi\u002Fdrive.googleapis.com)\n3. [Set app name](https:\u002F\u002Fconsole.cloud.google.com\u002Fauth\u002Fbranding) in OAuth branding\n4. [Add test users](https:\u002F\u002Fconsole.cloud.google.com\u002Fauth\u002Faudience) (all Gmail addresses you want to use)\n5. [Create OAuth client](https:\u002F\u002Fconsole.cloud.google.com\u002Fauth\u002Fclients):\n   - Click \"Create Client\"\n   - Application type: \"Desktop app\"\n   - Download the JSON file\n\n### Configure gdcli\n\nFirst check if already configured:\n```bash\ngdcli accounts list\n```\n\nIf no accounts, guide the user through setup:\n1. Ask if they have a Google Cloud project with Drive API enabled\n2. If not, walk them through the Google Cloud Console steps above\n3. Have them download the OAuth credentials JSON\n4. Run: `gdcli accounts credentials ~\u002Fpath\u002Fto\u002Fcredentials.json`\n5. Run: `gdcli accounts add \u003Cemail>` (use `--manual` for browserless OAuth)\n\n## Usage\n\nRun `gdcli --help` for full command reference.\n\nCommon operations:\n- `gdcli \u003Cemail> ls [folderId]` - List files\u002Ffolders\n- `gdcli \u003Cemail> ls --query \"\u003Cquery>\"` - List with Drive query filter\n- `gdcli \u003Cemail> search \"\u003Ctext>\"` - Full-text content search\n- `gdcli \u003Cemail> download \u003CfileId> [destPath]` - Download a file\n- `gdcli \u003Cemail> upload \u003ClocalPath> [--folder \u003CfolderId>]` - Upload a file\n- `gdcli \u003Cemail> mkdir \u003Cname>` - Create a folder\n- `gdcli \u003Cemail> share \u003CfileId> --anyone` - Share publicly\n\n## Search\n\n**Two different commands:**\n- `search \"\u003Ctext>\"` - Searches inside file contents (fullText)\n- `ls --query \"\u003Cquery>\"` - Filters by metadata (name, type, date, etc.)\n\n**Use `ls --query` for filename searches!**\n\n## Query Syntax (for ls --query)\n\nFormat: `field operator value`. Combine with `and`\u002F`or`, group with `()`.\n\n**Operators:** `=`, `!=`, `contains`, `\u003C`, `>`, `\u003C=`, `>=`\n\n**Examples:**\n```bash\n# By filename\nls --query \"name = 'report.pdf'\"           # exact match\nls --query \"name contains 'IMG'\"           # prefix match\n\n# By type\nls --query \"mimeType = 'application\u002Fpdf'\"\nls --query \"mimeType contains 'image\u002F'\"\nls --query \"mimeType = 'application\u002Fvnd.google-apps.folder'\"  # folders\n\n# By date\nls --query \"modifiedTime > '2024-01-01'\"\n\n# By owner\u002Fsharing\nls --query \"'me' in owners\"\nls --query \"sharedWithMe\"\n\n# Exclude trash\nls --query \"trashed = false\"\n\n# Combined\nls --query \"name contains 'report' and mimeType = 'application\u002Fpdf'\"\n```\n\nRef: https:\u002F\u002Fdevelopers.google.com\u002Fdrive\u002Fapi\u002Fguides\u002Fref-search-terms\n\n## Data Storage\n\n- `~\u002F.gdcli\u002Fcredentials.json` - OAuth client credentials\n- `~\u002F.gdcli\u002Faccounts.json` - Account tokens\n- `~\u002F.gdcli\u002Fdownloads\u002F` - Default download location\n\n## Gotchas\n\n- **`search` and `ls --query` are completely different commands.** `search` searches inside file contents (fullText); `ls --query` filters by metadata (name, type, date). For filename searches, always use `ls --query \"name contains '...'\"`.\n- **Test users must be explicitly added** in Google Cloud Console > OAuth > Audience. Without this step, OAuth fails with \"Access blocked: this app hasn't been authorized.\"\n- **Apps in \"Testing\" mode expire after 7 days** — tokens become invalid and users must re-authenticate. Publish the app (internal use only is fine) to avoid repeated re-auth.\n","# Google Drive CLI\n\nCommand-line interface for Google Drive operations.\n\n## Installation\n\n```bash\nnpm install -g @mariozechner\u002Fgdcli\n```\n\n## Setup\n\n### Google Cloud Console (one-time)\n\n1. [Create a new project](https:\u002F\u002Fconsole.cloud.google.com\u002Fprojectcreate) (or select existing)\n2. [Enable the Google Drive API](https:\u002F\u002Fconsole.cloud.google.com\u002Fapis\u002Fapi\u002Fdrive.googleapis.com)\n3. [Set app name](https:\u002F\u002Fconsole.cloud.google.com\u002Fauth\u002Fbranding) in OAuth branding\n4. [Add test users](https:\u002F\u002Fconsole.cloud.google.com\u002Fauth\u002Faudience) (all Gmail addresses you want to use)\n5. [Create OAuth client](https:\u002F\u002Fconsole.cloud.google.com\u002Fauth\u002Fclients):\n   - Click \"Create Client\"\n   - Application type: \"Desktop app\"\n   - Download the JSON file\n\n### Configure gdcli\n\nFirst check if already configured:\n```bash\ngdcli accounts list\n```\n\nIf no accounts, guide the user through setup:\n1. Ask if they have a Google Cloud project with Drive API enabled\n2. If not, walk them through the Google Cloud Console steps above\n3. Have them download the OAuth credentials JSON\n4. Run: `gdcli accounts credentials ~\u002Fpath\u002Fto\u002Fcredentials.json`\n5. Run: `gdcli accounts add \u003Cemail>` (use `--manual` for browserless OAuth)\n\n## Usage\n\nRun `gdcli --help` for full command reference.\n\nCommon operations:\n- `gdcli \u003Cemail> ls [folderId]` - List files\u002Ffolders\n- `gdcli \u003Cemail> ls --query \"\u003Cquery>\"` - List with Drive query filter\n- `gdcli \u003Cemail> search \"\u003Ctext>\"` - Full-text content search\n- `gdcli \u003Cemail> download \u003CfileId> [destPath]` - Download a file\n- `gdcli \u003Cemail> upload \u003ClocalPath> [--folder \u003CfolderId>]` - Upload a file\n- `gdcli \u003Cemail> mkdir \u003Cname>` - Create a folder\n- `gdcli \u003Cemail> share \u003CfileId> --anyone` - Share publicly\n\n## Search\n\n**Two different commands:**\n- `search \"\u003Ctext>\"` - Searches inside file contents (fullText)\n- `ls --query \"\u003Cquery>\"` - Filters by metadata (name, type, date, etc.)\n\n**Use `ls --query` for filename searches!**\n\n## Query Syntax (for ls --query)\n\nFormat: `field operator value`. Combine with `and`\u002F`or`, group with `()`.\n\n**Operators:** `=`, `!=`, `contains`, `\u003C`, `>`, `\u003C=`, `>=`\n\n**Examples:**\n```bash\n# By filename\nls --query \"name = 'report.pdf'\"           # exact match\nls --query \"name contains 'IMG'\"           # prefix match\n\n# By type\nls --query \"mimeType = 'application\u002Fpdf'\"\nls --query \"mimeType contains 'image\u002F'\"\nls --query \"mimeType = 'application\u002Fvnd.google-apps.folder'\"  # folders\n\n# By date\nls --query \"modifiedTime > '2024-01-01'\"\n\n# By owner\u002Fsharing\nls --query \"'me' in owners\"\nls --query \"sharedWithMe\"\n\n# Exclude trash\nls --query \"trashed = false\"\n\n# Combined\nls --query \"name contains 'report' and mimeType = 'application\u002Fpdf'\"\n```\n\nRef: https:\u002F\u002Fdevelopers.google.com\u002Fdrive\u002Fapi\u002Fguides\u002Fref-search-terms\n\n## Data Storage\n\n- `~\u002F.gdcli\u002Fcredentials.json` - OAuth client credentials\n- `~\u002F.gdcli\u002Faccounts.json` - Account tokens\n- `~\u002F.gdcli\u002Fdownloads\u002F` - Default download location\n\n## Gotchas\n\n- **`search` and `ls --query` are completely different commands.** `search` searches inside file contents (fullText); `ls --query` filters by metadata (name, type, date). For filename searches, always use `ls --query \"name contains '...'\"`.\n- **Test users must be explicitly added** in Google Cloud Console > OAuth > Audience. Without this step, OAuth fails with \"Access blocked: this app hasn't been authorized.\"\n- **Apps in \"Testing\" mode expire after 7 days** — tokens become invalid and users must re-authenticate. Publish the app (internal use only is fine) to avoid repeated re-auth.\n",{"name":53,"description":54},"gdcli","Google Drive CLI for listing, searching, uploading, downloading, and sharing files and folders.","main","dc4098a7dc9add9d1941b997a10367e6af940231","packages\u002Fcli\u002Fskills\u002Fpromptscript",7,"https:\u002F\u002Fgithub.com\u002Fmrwogu\u002Fpromptscript","https:\u002F\u002Fgetpromptscript.dev\u002F","https:\u002F\u002Fgithub.com\u002Fmrwogu","AI Developer Experience","2026-11-09 13:55:29",{"source":8,"skillName":53,"commands":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add mrwogu\u002Fpromptscript --skill gdcli",{"tool":70,"command":71},"bunx","bunx skills add mrwogu\u002Fpromptscript --skill gdcli",{"tool":73,"command":74},"pnpm","pnpm dlx skills add mrwogu\u002Fpromptscript --skill gdcli","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmrwogu\u002Fpromptscript\u002Fblob\u002Fmain\u002Fpackages\u002Fcli\u002Fskills\u002Fpromptscript\u002FSKILL.md",true,[],[79,86,95,111,119,142],{"skillNo":80,"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":81,"categories":82,"keywords":85,"publishedAt":48},"01M6CDARG1R0SC1QS30MG6NH4Z","https:\u002F\u002Fgithub.com\u002Fmrwogu\u002Fpromptscript\u002Fblob\u002Fmain\u002Fskills\u002Fpromptscript\u002FSKILL.md",[83,84],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},[5,40,47,46,45,44,43,42,41,39,29,38,37,36,35,34,33,32,31,30],{"skillNo":87,"name":38,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":48},"01M6CDANHZWNCXCKZQSGVZW8S8","Base expert skill","https:\u002F\u002Fgithub.com\u002Fmrwogu\u002Fpromptscript\u002Fblob\u002Fmain\u002Fpackages\u002Fresolver\u002Fsrc\u002F__tests__\u002F__fixtures__\u002Fskill-references\u002Fskills\u002Fexpert\u002FSKILL.md",[],[38,92,93,94],"spring","references","base",{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":102,"publishedAt":48},"01M6CDAK4J08AXZ8ZKX9VWP9NE","tdd-workflow","Test-driven development workflow","https:\u002F\u002Fgithub.com\u002Fmrwogu\u002Fpromptscript\u002Fblob\u002Fmain\u002Fpackages\u002Fresolver\u002Fsrc\u002F__tests__\u002F__fixtures__\u002Fregistry\u002Fnative-skills\u002Ftdd-workflow\u002FSKILL.md",[101],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[103,104,105,106,107,108,109,110],"tdd workflow","tdd","workflow","test-driven","driven","development","development workflow","test",{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":117,"publishedAt":48},"01M6CDAGQMZ3SZP69Q1XREEX48","alpha","Alpha skill","https:\u002F\u002Fgithub.com\u002Fmrwogu\u002Fpromptscript\u002Fblob\u002Fmain\u002Fpackages\u002Fresolver\u002Fsrc\u002F__tests__\u002F__fixtures__\u002Fmd-imports\u002Fskill-dir\u002Falpha\u002FSKILL.md",[],[113,118],"alpha skill",{"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":123,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":129,"publishedAt":48},"01M6CDAEB3EZ86CQSYM28J34ZS","pdf-processing","Extract PDF text, fill forms, merge files. Use when handling PDFs.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmrwogu\u002Fpromptscript\u002Fblob\u002Fmain\u002Fpackages\u002Fformatters\u002Fsrc\u002F__tests__\u002Ffixtures\u002Fplatform-contracts\u002Fgemini\u002Fskill.md",[126],{"categoryNo":127,"categoryName":128,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理",[130,131,132,133,134,46,135,44,136,137,138,139,140,141],"processing","pdf processing","PDF","fill","example","use","merge","extract","when","extract pdf","forms","org",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":151,"publishedAt":48},"01M6CDABP7FSQ9BY079P1QWJR2","react-component-patterns","Conventions for writing React components in this codebase.","https:\u002F\u002Fgithub.com\u002Fmrwogu\u002Fpromptscript\u002Fblob\u002Fmain\u002Fpackages\u002Fformatters\u002Fsrc\u002F__tests__\u002Ffixtures\u002Fplatform-contracts\u002Fcursor\u002Fskill.md",[148],{"categoryNo":149,"categoryName":150,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[152,153,154,155,156,30,157,158,159,160,161,162,45,163],"react","patterns","component","react component","react component patterns","codebase","conventions","ui","packages","react components","components","tsx"]