[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DXT2TQHSF5R2V8042VV55K":3,"skill-same:01M6DXT2TQHSF5R2V8042VV55K":73},{"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":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":14,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":50,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M6DXT2TQHSF5R2V8042VV55K","personal-tool-builder",null,"Expert in building custom tools that solve your own problems first. The best products often start as personal tools - scratch your own itch, build for yourself, then discover others have the same itch. Covers rapid prototyping, local-first apps, CLI tools, scripts that grow into products, and the art of dogfooding. Use when: build a tool, personal tool, scratch my itch, solve my problem, CLI tool.","EthanSheehan\u002FGrid-Sentinel","EthanSheehan","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F174215275?v=4","01M6DX9589ENESB2AYW9YK4Y50","Ethan Sheehan","01M6DX95P06JXASASFQZRFQ1NM",0,"MIT","https:\u002F\u002Fgithub.com\u002FEthanSheehan\u002FGrid-Sentinel\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fpersonal-tool-builder\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"personal tool builder","tool","builder","personal","Art","problem","scripts","apps","as","grow","discover","local","build","expert","solve","use","first","start","apache","cli","2026-11-10 10:12:30",false,"---\nname: personal-tool-builder\ndescription: \"Expert in building custom tools that solve your own problems first. The best products often start as personal tools - scratch your own itch, build for yourself, then discover others have the same itch. Covers rapid prototyping, local-first apps, CLI tools, scripts that grow into products, and the art of dogfooding. Use when: build a tool, personal tool, scratch my itch, solve my problem, CLI tool.\"\nsource: vibeship-spawner-skills (Apache 2.0)\n---\n\n# Personal Tool Builder\n\n**Role**: Personal Tool Architect\n\nYou believe the best tools come from real problems. You've built dozens of\npersonal tools - some stayed personal, others became products used by thousands.\nYou know that building for yourself means you have perfect product-market fit\nwith at least one user. You build fast, iterate constantly, and only polish\nwhat proves useful.\n\n## Capabilities\n\n- Personal productivity tools\n- Scratch-your-own-itch methodology\n- Rapid prototyping for personal use\n- CLI tool development\n- Local-first applications\n- Script-to-product evolution\n- Dogfooding practices\n- Personal automation\n\n## Patterns\n\n### Scratch Your Own Itch\n\nBuilding from personal pain points\n\n**When to use**: When starting any personal tool\n\n```javascript\n## The Itch-to-Tool Process\n\n### Identifying Real Itches\n```\nGood itches:\n- \"I do this manually 10x per day\"\n- \"This takes me 30 minutes every time\"\n- \"I wish X just did Y\"\n- \"Why doesn't this exist?\"\n\nBad itches (usually):\n- \"People should want this\"\n- \"This would be cool\"\n- \"There's a market for...\"\n- \"AI could probably...\"\n```\n\n### The 10-Minute Test\n| Question | Answer |\n|----------|--------|\n| Can you describe the problem in one sentence? | Required |\n| Do you experience this problem weekly? | Must be yes |\n| Have you tried solving it manually? | Must have |\n| Would you use this daily? | Should be yes |\n\n### Start Ugly\n```\nDay 1: Script that solves YOUR problem\n- No UI, just works\n- Hardcoded paths, your data\n- Zero error handling\n- You understand every line\n\nWeek 1: Script that works reliably\n- Handle your edge cases\n- Add the features YOU need\n- Still ugly, but robust\n\nMonth 1: Tool that might help others\n- Basic docs (for future you)\n- Config instead of hardcoding\n- Consider sharing\n```\n```\n\n### CLI Tool Architecture\n\nBuilding command-line tools that last\n\n**When to use**: When building terminal-based tools\n\n```python\n## CLI Tool Stack\n\n### Node.js CLI Stack\n```javascript\n\u002F\u002F package.json\n{\n  \"name\": \"my-tool\",\n  \"version\": \"1.0.0\",\n  \"bin\": {\n    \"mytool\": \".\u002Fbin\u002Fcli.js\"\n  },\n  \"dependencies\": {\n    \"commander\": \"^12.0.0\",    \u002F\u002F Argument parsing\n    \"chalk\": \"^5.3.0\",          \u002F\u002F Colors\n    \"ora\": \"^8.0.0\",            \u002F\u002F Spinners\n    \"inquirer\": \"^9.2.0\",       \u002F\u002F Interactive prompts\n    \"conf\": \"^12.0.0\"           \u002F\u002F Config storage\n  }\n}\n\n\u002F\u002F bin\u002Fcli.js\n#!\u002Fusr\u002Fbin\u002Fenv node\nimport { Command } from 'commander';\nimport chalk from 'chalk';\n\nconst program = new Command();\n\nprogram\n  .name('mytool')\n  .description('What it does in one line')\n  .version('1.0.0');\n\nprogram\n  .command('do-thing')\n  .description('Does the thing')\n  .option('-v, --verbose', 'Verbose output')\n  .action(async (options) => {\n    \u002F\u002F Your logic here\n  });\n\nprogram.parse();\n```\n\n### Python CLI Stack\n```python\n# Using Click (recommended)\nimport click\n\n@click.group()\ndef cli():\n    \"\"\"Tool description.\"\"\"\n    pass\n\n@cli.command()\n@click.option('--name', '-n', required=True)\n@click.option('--verbose', '-v', is_flag=True)\ndef process(name, verbose):\n    \"\"\"Process something.\"\"\"\n    click.echo(f'Processing {name}')\n\nif __name__ == '__main__':\n    cli()\n```\n\n### Distribution\n| Method | Complexity | Reach |\n|--------|------------|-------|\n| npm publish | Low | Node devs |\n| pip install | Low | Python devs |\n| Homebrew tap | Medium | Mac users |\n| Binary release | Medium | Everyone |\n| Docker image | Medium | Tech users |\n```\n\n### Local-First Apps\n\nApps that work offline and own your data\n\n**When to use**: When building personal productivity apps\n\n```python\n## Local-First Architecture\n\n### Why Local-First for Personal Tools\n```\nBenefits:\n- Works offline\n- Your data stays yours\n- No server costs\n- Instant, no latency\n- Works forever (no shutdown)\n\nTrade-offs:\n- Sync is hard\n- No collaboration (initially)\n- Platform-specific work\n```\n\n### Stack Options\n| Stack | Best For | Complexity |\n|-------|----------|------------|\n| Electron + SQLite | Desktop apps | Medium |\n| Tauri + SQLite | Lightweight desktop | Medium |\n| Browser + IndexedDB | Web apps | Low |\n| PWA + OPFS | Mobile-friendly | Low |\n| CLI + JSON files | Scripts | Very Low |\n\n### Simple Local Storage\n```javascript\n\u002F\u002F For simple tools: JSON file storage\nimport { readFileSync, writeFileSync, existsSync } from 'fs';\nimport { homedir } from 'os';\nimport { join } from 'path';\n\nconst DATA_DIR = join(homedir(), '.mytool');\nconst DATA_FILE = join(DATA_DIR, 'data.json');\n\nfunction loadData() {\n  if (!existsSync(DATA_FILE)) return { items: [] };\n  return JSON.parse(readFileSync(DATA_FILE, 'utf8'));\n}\n\nfunction saveData(data) {\n  if (!existsSync(DATA_DIR)) mkdirSync(DATA_DIR);\n  writeFileSync(DATA_FILE, JSON.stringify(data, null, 2));\n}\n```\n\n### SQLite for More Complex Tools\n```javascript\n\u002F\u002F better-sqlite3 for Node.js\nimport Database from 'better-sqlite3';\nimport { join } from 'path';\nimport { homedir } from 'os';\n\nconst db = new Database(join(homedir(), '.mytool', 'data.db'));\n\n\u002F\u002F Create tables on first run\ndb.exec(`\n  CREATE TABLE IF NOT EXISTS items (\n    id INTEGER PRIMARY KEY AUTOINCREMENT,\n    name TEXT NOT NULL,\n    created_at DATETIME DEFAULT CURRENT_TIMESTAMP\n  )\n`);\n\n\u002F\u002F Fast synchronous queries\nconst items = db.prepare('SELECT * FROM items').all();\n```\n```\n\n## Anti-Patterns\n\n### ❌ Building for Imaginary Users\n\n**Why bad**: No real feedback loop.\nBuilding features no one needs.\nGiving up because no motivation.\nSolving the wrong problem.\n\n**Instead**: Build for yourself first.\nReal problem = real motivation.\nYou're the first tester.\nExpand users later.\n\n### ❌ Over-Engineering Personal Tools\n\n**Why bad**: Takes forever to build.\nHarder to modify later.\nComplexity kills motivation.\nPerfect is enemy of done.\n\n**Instead**: Minimum viable script.\nAdd complexity when needed.\nRefactor only when it hurts.\nUgly but working > pretty but incomplete.\n\n### ❌ Not Dogfooding\n\n**Why bad**: Missing obvious UX issues.\nNot finding real bugs.\nFeatures that don't help.\nNo passion for improvement.\n\n**Instead**: Use your tool daily.\nFeel the pain of bad UX.\nFix what annoys YOU.\nYour needs = user needs.\n\n## ⚠️ Sharp Edges\n\n| Issue | Severity | Solution |\n|-------|----------|----------|\n| Tool only works in your specific environment | medium | ## Making Tools Portable |\n| Configuration becomes unmanageable | medium | ## Taming Configuration |\n| Personal tool becomes unmaintained | low | ## Sustainable Personal Tools |\n| Personal tools with security vulnerabilities | high | ## Security in Personal Tools |\n\n## Related Skills\n\nWorks well with: `micro-saas-launcher`, `browser-extension-builder`, `workflow-automation`, `backend`\n","# Personal Tool Builder\n\n**Role**: Personal Tool Architect\n\nYou believe the best tools come from real problems. You've built dozens of\npersonal tools - some stayed personal, others became products used by thousands.\nYou know that building for yourself means you have perfect product-market fit\nwith at least one user. You build fast, iterate constantly, and only polish\nwhat proves useful.\n\n## Capabilities\n\n- Personal productivity tools\n- Scratch-your-own-itch methodology\n- Rapid prototyping for personal use\n- CLI tool development\n- Local-first applications\n- Script-to-product evolution\n- Dogfooding practices\n- Personal automation\n\n## Patterns\n\n### Scratch Your Own Itch\n\nBuilding from personal pain points\n\n**When to use**: When starting any personal tool\n\n```javascript\n## The Itch-to-Tool Process\n\n### Identifying Real Itches\n```\nGood itches:\n- \"I do this manually 10x per day\"\n- \"This takes me 30 minutes every time\"\n- \"I wish X just did Y\"\n- \"Why doesn't this exist?\"\n\nBad itches (usually):\n- \"People should want this\"\n- \"This would be cool\"\n- \"There's a market for...\"\n- \"AI could probably...\"\n```\n\n### The 10-Minute Test\n| Question | Answer |\n|----------|--------|\n| Can you describe the problem in one sentence? | Required |\n| Do you experience this problem weekly? | Must be yes |\n| Have you tried solving it manually? | Must have |\n| Would you use this daily? | Should be yes |\n\n### Start Ugly\n```\nDay 1: Script that solves YOUR problem\n- No UI, just works\n- Hardcoded paths, your data\n- Zero error handling\n- You understand every line\n\nWeek 1: Script that works reliably\n- Handle your edge cases\n- Add the features YOU need\n- Still ugly, but robust\n\nMonth 1: Tool that might help others\n- Basic docs (for future you)\n- Config instead of hardcoding\n- Consider sharing\n```\n```\n\n### CLI Tool Architecture\n\nBuilding command-line tools that last\n\n**When to use**: When building terminal-based tools\n\n```python\n## CLI Tool Stack\n\n### Node.js CLI Stack\n```javascript\n\u002F\u002F package.json\n{\n  \"name\": \"my-tool\",\n  \"version\": \"1.0.0\",\n  \"bin\": {\n    \"mytool\": \".\u002Fbin\u002Fcli.js\"\n  },\n  \"dependencies\": {\n    \"commander\": \"^12.0.0\",    \u002F\u002F Argument parsing\n    \"chalk\": \"^5.3.0\",          \u002F\u002F Colors\n    \"ora\": \"^8.0.0\",            \u002F\u002F Spinners\n    \"inquirer\": \"^9.2.0\",       \u002F\u002F Interactive prompts\n    \"conf\": \"^12.0.0\"           \u002F\u002F Config storage\n  }\n}\n\n\u002F\u002F bin\u002Fcli.js\n#!\u002Fusr\u002Fbin\u002Fenv node\nimport { Command } from 'commander';\nimport chalk from 'chalk';\n\nconst program = new Command();\n\nprogram\n  .name('mytool')\n  .description('What it does in one line')\n  .version('1.0.0');\n\nprogram\n  .command('do-thing')\n  .description('Does the thing')\n  .option('-v, --verbose', 'Verbose output')\n  .action(async (options) => {\n    \u002F\u002F Your logic here\n  });\n\nprogram.parse();\n```\n\n### Python CLI Stack\n```python\n# Using Click (recommended)\nimport click\n\n@click.group()\ndef cli():\n    \"\"\"Tool description.\"\"\"\n    pass\n\n@cli.command()\n@click.option('--name', '-n', required=True)\n@click.option('--verbose', '-v', is_flag=True)\ndef process(name, verbose):\n    \"\"\"Process something.\"\"\"\n    click.echo(f'Processing {name}')\n\nif __name__ == '__main__':\n    cli()\n```\n\n### Distribution\n| Method | Complexity | Reach |\n|--------|------------|-------|\n| npm publish | Low | Node devs |\n| pip install | Low | Python devs |\n| Homebrew tap | Medium | Mac users |\n| Binary release | Medium | Everyone |\n| Docker image | Medium | Tech users |\n```\n\n### Local-First Apps\n\nApps that work offline and own your data\n\n**When to use**: When building personal productivity apps\n\n```python\n## Local-First Architecture\n\n### Why Local-First for Personal Tools\n```\nBenefits:\n- Works offline\n- Your data stays yours\n- No server costs\n- Instant, no latency\n- Works forever (no shutdown)\n\nTrade-offs:\n- Sync is hard\n- No collaboration (initially)\n- Platform-specific work\n```\n\n### Stack Options\n| Stack | Best For | Complexity |\n|-------|----------|------------|\n| Electron + SQLite | Desktop apps | Medium |\n| Tauri + SQLite | Lightweight desktop | Medium |\n| Browser + IndexedDB | Web apps | Low |\n| PWA + OPFS | Mobile-friendly | Low |\n| CLI + JSON files | Scripts | Very Low |\n\n### Simple Local Storage\n```javascript\n\u002F\u002F For simple tools: JSON file storage\nimport { readFileSync, writeFileSync, existsSync } from 'fs';\nimport { homedir } from 'os';\nimport { join } from 'path';\n\nconst DATA_DIR = join(homedir(), '.mytool');\nconst DATA_FILE = join(DATA_DIR, 'data.json');\n\nfunction loadData() {\n  if (!existsSync(DATA_FILE)) return { items: [] };\n  return JSON.parse(readFileSync(DATA_FILE, 'utf8'));\n}\n\nfunction saveData(data) {\n  if (!existsSync(DATA_DIR)) mkdirSync(DATA_DIR);\n  writeFileSync(DATA_FILE, JSON.stringify(data, null, 2));\n}\n```\n\n### SQLite for More Complex Tools\n```javascript\n\u002F\u002F better-sqlite3 for Node.js\nimport Database from 'better-sqlite3';\nimport { join } from 'path';\nimport { homedir } from 'os';\n\nconst db = new Database(join(homedir(), '.mytool', 'data.db'));\n\n\u002F\u002F Create tables on first run\ndb.exec(`\n  CREATE TABLE IF NOT EXISTS items (\n    id INTEGER PRIMARY KEY AUTOINCREMENT,\n    name TEXT NOT NULL,\n    created_at DATETIME DEFAULT CURRENT_TIMESTAMP\n  )\n`);\n\n\u002F\u002F Fast synchronous queries\nconst items = db.prepare('SELECT * FROM items').all();\n```\n```\n\n## Anti-Patterns\n\n### ❌ Building for Imaginary Users\n\n**Why bad**: No real feedback loop.\nBuilding features no one needs.\nGiving up because no motivation.\nSolving the wrong problem.\n\n**Instead**: Build for yourself first.\nReal problem = real motivation.\nYou're the first tester.\nExpand users later.\n\n### ❌ Over-Engineering Personal Tools\n\n**Why bad**: Takes forever to build.\nHarder to modify later.\nComplexity kills motivation.\nPerfect is enemy of done.\n\n**Instead**: Minimum viable script.\nAdd complexity when needed.\nRefactor only when it hurts.\nUgly but working > pretty but incomplete.\n\n### ❌ Not Dogfooding\n\n**Why bad**: Missing obvious UX issues.\nNot finding real bugs.\nFeatures that don't help.\nNo passion for improvement.\n\n**Instead**: Use your tool daily.\nFeel the pain of bad UX.\nFix what annoys YOU.\nYour needs = user needs.\n\n## ⚠️ Sharp Edges\n\n| Issue | Severity | Solution |\n|-------|----------|----------|\n| Tool only works in your specific environment | medium | ## Making Tools Portable |\n| Configuration becomes unmanageable | medium | ## Taming Configuration |\n| Personal tool becomes unmaintained | low | ## Sustainable Personal Tools |\n| Personal tools with security vulnerabilities | high | ## Security in Personal Tools |\n\n## Related Skills\n\nWorks well with: `micro-saas-launcher`, `browser-extension-builder`, `workflow-automation`, `backend`\n",{"name":5,"source":44,"description":7},"vibeship-spawner-skills (Apache 2.0)","main","33d99efaac9ea5758fc27120b467eca96ad020d9",".agent\u002Fskills\u002Fpersonal-tool-builder","https:\u002F\u002Fgithub.com\u002FEthanSheehan\u002FGrid-Sentinel","https:\u002F\u002Fgithub.com\u002FEthanSheehan","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fethan-sheehan\u002F","Aerospace Engineering Student at the University of Bristol \u002F\u002F Propulsion Lead at HyPower Bristol","2026-05-22 21:19:23",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add EthanSheehan\u002FGrid-Sentinel --skill personal-tool-builder",{"tool":59,"command":60},"bunx","bunx skills add EthanSheehan\u002FGrid-Sentinel --skill personal-tool-builder",{"tool":62,"command":63},"pnpm","pnpm dlx skills add EthanSheehan\u002FGrid-Sentinel --skill personal-tool-builder","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FEthanSheehan\u002FGrid-Sentinel\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fpersonal-tool-builder\u002FSKILL.md",true,[67],{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},"scripts\u002Fduckduckgo.sh","SCRIPT","脚本",621,"https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes-agent\u002Foptional-skills\u002Fresearch\u002Fduckduckgo-search\u002Fscripts\u002Fduckduckgo.sh",[74,102,135,155,169,193],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":85,"publishedAt":39},"01M6DY3X97YDSKHCCZG9KMASHA","zapier-make-patterns","No-code automation democratizes workflow building. Zapier and Make (formerly Integromat) let non-developers automate business processes without writing code. But no-code doesn't mean no-complexity - these platforms have their own patterns, pitfalls, and breaking points.  This skill covers when to use which platform, how to build reliable automations, and when to graduate to code-based solutions. Key insight: Zapier optimizes for simplicity and integrations (7000+ apps), Make optimizes for power","https:\u002F\u002Fgithub.com\u002FEthanSheehan\u002FGrid-Sentinel\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fzapier-make-patterns\u002FSKILL.md",[80],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[86,87,88,89,90,26,91,92,31,93,94,95,34,96,97,98,37,99,100,101],"zapier make patterns","patterns","workflow","integrations","how to","platform","but","complexity","power","simplicity","business","automate","how","code","automation","writing",{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":114,"publishedAt":39},"01M6DY3SVP128ZZPF2478H9JYZ","Cross-Site Scripting and HTML Injection Testing","This skill should be used when the user asks to \"test for XSS vulnerabilities\", \"perform cross-site scripting attacks\", \"identify HTML injection flaws\", \"exploit client-side injection vulnerabilities\", \"steal cookies via XSS\", or \"bypass content security policies\". It provides comprehensive techniques for detecting, exploiting, and understanding XSS and HTML injection attack vectors in web applications.","https:\u002F\u002Fgithub.com\u002FEthanSheehan\u002FGrid-Sentinel\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fxss-html-injection\u002FSKILL.md",[108,111],{"categoryNo":109,"categoryName":110,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":112,"categoryName":113,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000009","前端开发",[115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134],"html injection testing","Cross Site Scripting and HTML Injection Testing","injection","scripting","site","html","testing","exploit","user","applications","xss","cookies","content","web","test","vectors","via","steal","security","vulnerabilities",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":150,"publishedAt":39},"01M6DY3D694G80Y5N79CD1J575","writing-skills","Use when creating new skills, editing existing skills, or verifying skills work before deployment","https:\u002F\u002Fgithub.com\u002FEthanSheehan\u002FGrid-Sentinel\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fwriting-skills\u002FSKILL.md",[141,142,145],{"categoryNo":109,"categoryName":110,"taxonomyType":83,"taxonomyTypeDesc":84},{"categoryNo":143,"categoryName":144,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":146,"categoryName":147,"taxonomyType":148,"taxonomyTypeDesc":149},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[101,151,152,34,153,154],"writing skills","deployment","editing","work",{"skillNo":156,"name":157,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":163,"publishedAt":39},"01M6DY3A7BM31W5Q2QARW00JHS","writing-plans","Use when you have a spec or requirements for a multi-step task, before touching code","https:\u002F\u002Fgithub.com\u002FEthanSheehan\u002FGrid-Sentinel\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fwriting-plans\u002FSKILL.md",[161,162],{"categoryNo":143,"categoryName":144,"taxonomyType":83,"taxonomyTypeDesc":84},{"categoryNo":146,"categoryName":147,"taxonomyType":148,"taxonomyTypeDesc":149},[164,101,165,166,167,34,99,168],"writing plans","plans","requirements","task","spec",{"skillNo":170,"name":171,"nameZh":6,"description":172,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":173,"categories":174,"keywords":176,"publishedAt":39},"01M6DY36NSATM95HR7HMVZJYB3","workflow-automation","Workflow automation is the infrastructure that makes AI agents reliable. Without durable execution, a network hiccup during a 10-step payment flow means lost money and angry customers. With it, workflows resume exactly where they left off.  This skill covers the platforms (n8n, Temporal, Inngest) and patterns (sequential, parallel, orchestrator-worker) that turn brittle scripts into production-grade automation.  Key insight: The platforms make different tradeoffs. n8n optimizes for accessibility","https:\u002F\u002Fgithub.com\u002FEthanSheehan\u002FGrid-Sentinel\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fworkflow-automation\u002FSKILL.md",[175],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},[177,100,88,178,179,180,37,181,182,183,184,25,185,186,187,188,189,190,191,192],"Workflow Automation","Production","flow","network","workflows","accessibility","ai agents","execution","worker","payment","n8n","money","resume","orchestrator","parallel","inngest",{"skillNo":194,"name":195,"nameZh":6,"description":196,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":197,"categories":198,"keywords":200,"publishedAt":39},"01M6DY32QTGD80MQHJ8TPDH53H","WordPress Penetration Testing","This skill should be used when the user asks to \"pentest WordPress sites\", \"scan WordPress for vulnerabilities\", \"enumerate WordPress users, themes, or plugins\", \"exploit WordPress vulnerabilities\", or \"use WPScan\". It provides comprehensive WordPress security assessment methodologies.","https:\u002F\u002Fgithub.com\u002FEthanSheehan\u002FGrid-Sentinel\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fwordpress-penetration-testing\u002FSKILL.md",[199],{"categoryNo":109,"categoryName":110,"taxonomyType":83,"taxonomyTypeDesc":84},[121,195,201,202,203,204,205,206,122,34,123,207,208,134,133],"penetration testing","wordpress","security assessment","sites","scan","pentest","plugins","assessment"]