[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6D87GS7ME8MJ67ZKNJTPS3K":3,"skill-same:01M6D87GS7ME8MJ67ZKNJTPS3K":68},{"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":26,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":51,"ownerDescription":52,"updatedAt":53,"install":54,"resources":67},"01M6D87GS7ME8MJ67ZKNJTPS3K","search-first",null,"Research-before-coding workflow. Search for existing tools, libraries, and patterns before writing custom code. Invokes the researcher agent.","oabdelmaksoud\u002FSuperClaw","oabdelmaksoud","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F50699149?v=4","01M6D5CVVN778ZCDP1WHS816SP","Omar Abdelmaksoud","01M6D5CW1RHNSKCJR85GJACBFT",2,"MIT","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fsearch-first\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33,34,35,36,37,38],"search","first","search first","writing","research","workflow","libraries","code","Tools","coding","researcher","patterns","2026-11-10 10:12:30",false,"---\nname: search-first\ndescription: Research-before-coding workflow. Search for existing tools, libraries, and patterns before writing custom code. Invokes the researcher agent.\norigin: ECC\n---\n\n# \u002Fsearch-first — Research Before You Code\n\nSystematizes the \"search for existing solutions before implementing\" workflow.\n\n## Trigger\n\nUse this skill when:\n- Starting a new feature that likely has existing solutions\n- Adding a dependency or integration\n- The user asks \"add X functionality\" and you're about to write code\n- Before creating a new utility, helper, or abstraction\n\n## Workflow\n\n```\n┌─────────────────────────────────────────────┐\n│  1. NEED ANALYSIS                           │\n│     Define what functionality is needed      │\n│     Identify language\u002Fframework constraints  │\n├─────────────────────────────────────────────┤\n│  2. PARALLEL SEARCH (researcher agent)      │\n│     ┌──────────┐ ┌──────────┐ ┌──────────┐  │\n│     │  npm \u002F   │ │  MCP \u002F   │ │  GitHub \u002F │  │\n│     │  PyPI    │ │  Skills  │ │  Web      │  │\n│     └──────────┘ └──────────┘ └──────────┘  │\n├─────────────────────────────────────────────┤\n│  3. EVALUATE                                │\n│     Score candidates (functionality, maint, │\n│     community, docs, license, deps)         │\n├─────────────────────────────────────────────┤\n│  4. DECIDE                                  │\n│     ┌─────────┐  ┌──────────┐  ┌─────────┐  │\n│     │  Adopt  │  │  Extend  │  │  Build   │  │\n│     │ as-is   │  │  \u002FWrap   │  │  Custom  │  │\n│     └─────────┘  └──────────┘  └─────────┘  │\n├─────────────────────────────────────────────┤\n│  5. IMPLEMENT                               │\n│     Install package \u002F Configure MCP \u002F       │\n│     Write minimal custom code               │\n└─────────────────────────────────────────────┘\n```\n\n## Decision Matrix\n\n| Signal | Action |\n|--------|--------|\n| Exact match, well-maintained, MIT\u002FApache | **Adopt** — install and use directly |\n| Partial match, good foundation | **Extend** — install + write thin wrapper |\n| Multiple weak matches | **Compose** — combine 2-3 small packages |\n| Nothing suitable found | **Build** — write custom, but informed by research |\n\n## How to Use\n\n### Quick Mode (inline)\n\nBefore writing a utility or adding functionality, mentally run through:\n\n0. Does this already exist in the repo? → `rg` through relevant modules\u002Ftests first\n1. Is this a common problem? → Search npm\u002FPyPI\n2. Is there an MCP for this? → Check `~\u002F.claude\u002Fsettings.json` and search\n3. Is there a skill for this? → Check `~\u002F.claude\u002Fskills\u002F`\n4. Is there a GitHub implementation\u002Ftemplate? → Run GitHub code search for maintained OSS before writing net-new code\n\n### Full Mode (agent)\n\nFor non-trivial functionality, launch the researcher agent:\n\n```\nTask(subagent_type=\"general-purpose\", prompt=\"\n  Research existing tools for: [DESCRIPTION]\n  Language\u002Fframework: [LANG]\n  Constraints: [ANY]\n\n  Search: npm\u002FPyPI, MCP servers, Claude Code skills, GitHub\n  Return: Structured comparison with recommendation\n\")\n```\n\n## Search Shortcuts by Category\n\n### Development Tooling\n- Linting → `eslint`, `ruff`, `textlint`, `markdownlint`\n- Formatting → `prettier`, `black`, `gofmt`\n- Testing → `jest`, `pytest`, `go test`\n- Pre-commit → `husky`, `lint-staged`, `pre-commit`\n\n### AI\u002FLLM Integration\n- Claude SDK → Context7 for latest docs\n- Prompt management → Check MCP servers\n- Document processing → `unstructured`, `pdfplumber`, `mammoth`\n\n### Data & APIs\n- HTTP clients → `httpx` (Python), `ky`\u002F`got` (Node)\n- Validation → `zod` (TS), `pydantic` (Python)\n- Database → Check for MCP servers first\n\n### Content & Publishing\n- Markdown processing → `remark`, `unified`, `markdown-it`\n- Image optimization → `sharp`, `imagemin`\n\n## Integration Points\n\n### With planner agent\nThe planner should invoke researcher before Phase 1 (Architecture Review):\n- Researcher identifies available tools\n- Planner incorporates them into the implementation plan\n- Avoids \"reinventing the wheel\" in the plan\n\n### With architect agent\nThe architect should consult researcher for:\n- Technology stack decisions\n- Integration pattern discovery\n- Existing reference architectures\n\n### With iterative-retrieval skill\nCombine for progressive discovery:\n- Cycle 1: Broad search (npm, PyPI, MCP)\n- Cycle 2: Evaluate top candidates in detail\n- Cycle 3: Test compatibility with project constraints\n\n## Examples\n\n### Example 1: \"Add dead link checking\"\n```\nNeed: Check markdown files for broken links\nSearch: npm \"markdown dead link checker\"\nFound: textlint-rule-no-dead-link (score: 9\u002F10)\nAction: ADOPT — npm install textlint-rule-no-dead-link\nResult: Zero custom code, battle-tested solution\n```\n\n### Example 2: \"Add HTTP client wrapper\"\n```\nNeed: Resilient HTTP client with retries and timeout handling\nSearch: npm \"http client retry\", PyPI \"httpx retry\"\nFound: got (Node) with retry plugin, httpx (Python) with built-in retry\nAction: ADOPT — use got\u002Fhttpx directly with retry config\nResult: Zero custom code, production-proven libraries\n```\n\n### Example 3: \"Add config file linter\"\n```\nNeed: Validate project config files against a schema\nSearch: npm \"config linter schema\", \"json schema validator cli\"\nFound: ajv-cli (score: 8\u002F10)\nAction: ADOPT + EXTEND — install ajv-cli, write project-specific schema\nResult: 1 package + 1 schema file, no custom validation logic\n```\n\n## Anti-Patterns\n\n- **Jumping to code**: Writing a utility without checking if one exists\n- **Ignoring MCP**: Not checking if an MCP server already provides the capability\n- **Over-customizing**: Wrapping a library so heavily it loses its benefits\n- **Dependency bloat**: Installing a massive package for one small feature\n","# \u002Fsearch-first — Research Before You Code\n\nSystematizes the \"search for existing solutions before implementing\" workflow.\n\n## Trigger\n\nUse this skill when:\n- Starting a new feature that likely has existing solutions\n- Adding a dependency or integration\n- The user asks \"add X functionality\" and you're about to write code\n- Before creating a new utility, helper, or abstraction\n\n## Workflow\n\n```\n┌─────────────────────────────────────────────┐\n│  1. NEED ANALYSIS                           │\n│     Define what functionality is needed      │\n│     Identify language\u002Fframework constraints  │\n├─────────────────────────────────────────────┤\n│  2. PARALLEL SEARCH (researcher agent)      │\n│     ┌──────────┐ ┌──────────┐ ┌──────────┐  │\n│     │  npm \u002F   │ │  MCP \u002F   │ │  GitHub \u002F │  │\n│     │  PyPI    │ │  Skills  │ │  Web      │  │\n│     └──────────┘ └──────────┘ └──────────┘  │\n├─────────────────────────────────────────────┤\n│  3. EVALUATE                                │\n│     Score candidates (functionality, maint, │\n│     community, docs, license, deps)         │\n├─────────────────────────────────────────────┤\n│  4. DECIDE                                  │\n│     ┌─────────┐  ┌──────────┐  ┌─────────┐  │\n│     │  Adopt  │  │  Extend  │  │  Build   │  │\n│     │ as-is   │  │  \u002FWrap   │  │  Custom  │  │\n│     └─────────┘  └──────────┘  └─────────┘  │\n├─────────────────────────────────────────────┤\n│  5. IMPLEMENT                               │\n│     Install package \u002F Configure MCP \u002F       │\n│     Write minimal custom code               │\n└─────────────────────────────────────────────┘\n```\n\n## Decision Matrix\n\n| Signal | Action |\n|--------|--------|\n| Exact match, well-maintained, MIT\u002FApache | **Adopt** — install and use directly |\n| Partial match, good foundation | **Extend** — install + write thin wrapper |\n| Multiple weak matches | **Compose** — combine 2-3 small packages |\n| Nothing suitable found | **Build** — write custom, but informed by research |\n\n## How to Use\n\n### Quick Mode (inline)\n\nBefore writing a utility or adding functionality, mentally run through:\n\n0. Does this already exist in the repo? → `rg` through relevant modules\u002Ftests first\n1. Is this a common problem? → Search npm\u002FPyPI\n2. Is there an MCP for this? → Check `~\u002F.claude\u002Fsettings.json` and search\n3. Is there a skill for this? → Check `~\u002F.claude\u002Fskills\u002F`\n4. Is there a GitHub implementation\u002Ftemplate? → Run GitHub code search for maintained OSS before writing net-new code\n\n### Full Mode (agent)\n\nFor non-trivial functionality, launch the researcher agent:\n\n```\nTask(subagent_type=\"general-purpose\", prompt=\"\n  Research existing tools for: [DESCRIPTION]\n  Language\u002Fframework: [LANG]\n  Constraints: [ANY]\n\n  Search: npm\u002FPyPI, MCP servers, Claude Code skills, GitHub\n  Return: Structured comparison with recommendation\n\")\n```\n\n## Search Shortcuts by Category\n\n### Development Tooling\n- Linting → `eslint`, `ruff`, `textlint`, `markdownlint`\n- Formatting → `prettier`, `black`, `gofmt`\n- Testing → `jest`, `pytest`, `go test`\n- Pre-commit → `husky`, `lint-staged`, `pre-commit`\n\n### AI\u002FLLM Integration\n- Claude SDK → Context7 for latest docs\n- Prompt management → Check MCP servers\n- Document processing → `unstructured`, `pdfplumber`, `mammoth`\n\n### Data & APIs\n- HTTP clients → `httpx` (Python), `ky`\u002F`got` (Node)\n- Validation → `zod` (TS), `pydantic` (Python)\n- Database → Check for MCP servers first\n\n### Content & Publishing\n- Markdown processing → `remark`, `unified`, `markdown-it`\n- Image optimization → `sharp`, `imagemin`\n\n## Integration Points\n\n### With planner agent\nThe planner should invoke researcher before Phase 1 (Architecture Review):\n- Researcher identifies available tools\n- Planner incorporates them into the implementation plan\n- Avoids \"reinventing the wheel\" in the plan\n\n### With architect agent\nThe architect should consult researcher for:\n- Technology stack decisions\n- Integration pattern discovery\n- Existing reference architectures\n\n### With iterative-retrieval skill\nCombine for progressive discovery:\n- Cycle 1: Broad search (npm, PyPI, MCP)\n- Cycle 2: Evaluate top candidates in detail\n- Cycle 3: Test compatibility with project constraints\n\n## Examples\n\n### Example 1: \"Add dead link checking\"\n```\nNeed: Check markdown files for broken links\nSearch: npm \"markdown dead link checker\"\nFound: textlint-rule-no-dead-link (score: 9\u002F10)\nAction: ADOPT — npm install textlint-rule-no-dead-link\nResult: Zero custom code, battle-tested solution\n```\n\n### Example 2: \"Add HTTP client wrapper\"\n```\nNeed: Resilient HTTP client with retries and timeout handling\nSearch: npm \"http client retry\", PyPI \"httpx retry\"\nFound: got (Node) with retry plugin, httpx (Python) with built-in retry\nAction: ADOPT — use got\u002Fhttpx directly with retry config\nResult: Zero custom code, production-proven libraries\n```\n\n### Example 3: \"Add config file linter\"\n```\nNeed: Validate project config files against a schema\nSearch: npm \"config linter schema\", \"json schema validator cli\"\nFound: ajv-cli (score: 8\u002F10)\nAction: ADOPT + EXTEND — install ajv-cli, write project-specific schema\nResult: 1 package + 1 schema file, no custom validation logic\n```\n\n## Anti-Patterns\n\n- **Jumping to code**: Writing a utility without checking if one exists\n- **Ignoring MCP**: Not checking if an MCP server already provides the capability\n- **Over-customizing**: Wrapping a library so heavily it loses its benefits\n- **Dependency bloat**: Installing a massive package for one small feature\n",{"name":5,"origin":44,"description":7},"ECC","main","7b610356e36623652299fa2acb477ff821b1d920","upstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fsearch-first",0,"https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fo-abdelmaksoud\u002F","Full-Stack Engineer | AI Systems Architect | Building autonomous multi-agent systems","2026-03-08 21:12:53",{"source":8,"skillName":5,"commands":55,"prompt":65,"zipAvailable":66},[56,59,62],{"tool":57,"command":58},"npx","npx skills add oabdelmaksoud\u002FSuperClaw --skill search-first",{"tool":60,"command":61},"bunx","bunx skills add oabdelmaksoud\u002FSuperClaw --skill search-first",{"tool":63,"command":64},"pnpm","pnpm dlx skills add oabdelmaksoud\u002FSuperClaw --skill search-first","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fsearch-first\u002FSKILL.md",true,[],[69,88,101,128,153,172],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":78,"publishedAt":39},"01M6D88QCPTBZVCRED0NZ1Y8K8","visa-doc-translate","Translate visa application documents (images) to English and create a bilingual PDF with original and translation","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fvisa-doc-translate\u002FSKILL.md",[75],{"categoryNo":76,"categoryName":77,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理",[79,80,81,82,83,84,85,86,87],"translate","doc","visa doc translate","translation","application","create","images","PDF","documents",{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":39},"01M6D88NBM95T3TFM50CYYAP65","verification-loop","A comprehensive verification system for Claude Code sessions.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fverification-loop\u002FSKILL.md",[],[95,96,97,98,34,99,100],"verification","loop","verification loop","sessions","claude code sessions","system",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":116,"publishedAt":39},"01M6D88JFZ2P996GVRHJNSZSTM","tdd-workflow","Use this skill when writing new features, fixing bugs, or refactoring code. Enforces test-driven development with 80%+ coverage including unit, integration, and E2E tests.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Ftdd-workflow\u002FSKILL.md",[107,110,111],{"categoryNo":108,"categoryName":109,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":112,"categoryName":113,"taxonomyType":114,"taxonomyTypeDesc":115},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[117,32,118,119,120,121,34,122,123,124,125,126,127,30],"tdd","tdd workflow","e2e tests","e2e","integration","development","use","test","refactoring","coverage","tests",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":134,"publishedAt":39},"01M6D88FTHRRSVJMXF2G7MQAK3","swiftui-patterns","SwiftUI architecture patterns, state management with @Observable, view composition, navigation, performance optimization, and modern iOS\u002FmacOS UI best practices.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswiftui-patterns\u002FSKILL.md",[],[38,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152],"swiftui","swiftui patterns","architecture","macos","performance","state management","best practices","state","ui","Optimization","ios","architecture patterns","Composition","performance optimization","view","management","swiftui architecture","navigation",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":160,"publishedAt":39},"01M6D88D527QTQT9DKHTRFN6EA","swift-protocol-di-testing","Protocol-based dependency injection for testable Swift code — mock file system, network, and external APIs using focused protocols and Swift Testing.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswift-protocol-di-testing\u002FSKILL.md",[159],{"categoryNo":108,"categoryName":109,"taxonomyType":21,"taxonomyTypeDesc":22},[161,162,163,164,34,165,166,167,168,100,169,170,171],"swift protocol di testing","protocol","swift","testing","protocols","file","network","injection","dependency","swift testing","dependency injection",{"skillNo":173,"name":174,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":176,"categories":177,"keywords":178,"publishedAt":39},"01M6D88AJW8H2QNWSW5ZY82R43","swift-concurrency-6-2","Swift 6.2 Approachable Concurrency — single-threaded by default, @concurrent for explicit background offloading, isolated conformances for main actor types.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswift-concurrency-6-2\u002FSKILL.md",[],[179,180,163,181,182,45],"concurrency","swift concurrency","swift concurrency 6 2","default"]