$npx -y skills add mworldorg/markdown-memory --skill ecc-search-firstResearch-before-coding workflow. Search for existing tools, libraries, and patterns before writing custom code. Systematizes the "search for existing solutions before implementing" approach. Use when starting new features or adding functionality.
| 1 | <!-- Vendored from ECC (https://github.com/affaan-m/everything-claude-code), MIT © 2026 Affaan Mustafa. See LICENSE & NOTICE.md in this folder. Only change vs upstream: name search-first → ecc-search-first (match vendor folder / avoid ambiguity). Body verbatim. The "Integration Points" section references ECC-specific agents (planner/architect/researcher/iterative-retrieval) that do NOT exist in mm — ignore them; see NOTICE.md. --> |
| 2 | |
| 3 | # /search-first — Research Before You Code |
| 4 | |
| 5 | Systematizes the "search for existing solutions before implementing" workflow. |
| 6 | |
| 7 | ## Trigger |
| 8 | |
| 9 | Use this skill when: |
| 10 | - Starting a new feature that likely has existing solutions |
| 11 | - Adding a dependency or integration |
| 12 | - The user asks "add X functionality" and you're about to write code |
| 13 | - Before creating a new utility, helper, or abstraction |
| 14 | |
| 15 | ## Scope and Approval Rules |
| 16 | |
| 17 | Default to read-only research: inspect the repo, package metadata, docs, and public examples before recommending a dependency or integration. Do not install packages, configure MCP servers, publish artifacts, open PRs, or make external write actions from this skill unless the user has explicitly approved that action in the current task. |
| 18 | |
| 19 | When a candidate requires credentials, paid services, network writes, or project-wide config changes, return a recommendation and approval checkpoint instead of applying it directly. |
| 20 | |
| 21 | ## Workflow |
| 22 | |
| 23 | ``` |
| 24 | ┌─────────────────────────────────────────────┐ |
| 25 | │ 1. NEED ANALYSIS │ |
| 26 | │ Define what functionality is needed │ |
| 27 | │ Identify language/framework constraints │ |
| 28 | ├─────────────────────────────────────────────┤ |
| 29 | │ 2. PARALLEL SEARCH (researcher agent) │ |
| 30 | │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ |
| 31 | │ │ npm / │ │ MCP / │ │ GitHub / │ │ |
| 32 | │ │ PyPI │ │ Skills │ │ Web │ │ |
| 33 | │ └──────────┘ └──────────┘ └──────────┘ │ |
| 34 | ├─────────────────────────────────────────────┤ |
| 35 | │ 3. EVALUATE │ |
| 36 | │ Score candidates (functionality, maint, │ |
| 37 | │ community, docs, license, deps) │ |
| 38 | ├─────────────────────────────────────────────┤ |
| 39 | │ 4. DECIDE │ |
| 40 | │ ┌─────────┐ ┌──────────┐ ┌─────────┐ │ |
| 41 | │ │ Adopt │ │ Extend │ │ Build │ │ |
| 42 | │ │ as-is │ │ /Wrap │ │ Custom │ │ |
| 43 | │ └─────────┘ └──────────┘ └─────────┘ │ |
| 44 | ├─────────────────────────────────────────────┤ |
| 45 | │ 5. APPROVAL CHECKPOINT / IMPLEMENT │ |
| 46 | │ Recommend package / MCP / custom code │ |
| 47 | │ Apply only after explicit approval │ |
| 48 | └─────────────────────────────────────────────┘ |
| 49 | ``` |
| 50 | |
| 51 | ## Decision Matrix |
| 52 | |
| 53 | | Signal | Action | |
| 54 | |--------|--------| |
| 55 | | Exact match, well-maintained, MIT/Apache | **Adopt** — recommend the package and request approval before install or config changes | |
| 56 | | Partial match, good foundation | **Extend** — recommend the package plus a thin wrapper, then wait for approval before applying | |
| 57 | | Multiple weak matches | **Compose** — propose 2-3 small packages and the integration plan before installing anything | |
| 58 | | Nothing suitable found | **Build** — explain why custom code is warranted, then implement only within the approved task scope | |
| 59 | |
| 60 | ## How to Use |
| 61 | |
| 62 | ### Quick Mode (inline) |
| 63 | |
| 64 | Before writing a utility or adding functionality, mentally run through: |
| 65 | |
| 66 | 0. Does this already exist in the repo? → Search through relevant modules/tests first |
| 67 | 1. Is this a common problem? → Search npm/PyPI |
| 68 | 2. Is there an MCP for this? → Check MCP configuration and search |
| 69 | 3. Is there a skill for this? → Check available skills |
| 70 | 4. Is there a GitHub implementation/template? → Run GitHub code search for maintained OSS before writing net-new code |
| 71 | |
| 72 | ### Full Mode (subagent) |
| 73 | |
| 74 | For non-trivial functionality, delegate to a research-focused subagent: |
| 75 | |
| 76 | ``` |
| 77 | Invoke subagent with prompt: |
| 78 | "Research existing tools for: [DESCRIPTION] |
| 79 | Language/framework: [LANG] |
| 80 | Constraints: [ANY] |
| 81 | |
| 82 | Search: npm/PyPI, MCP servers, skills, GitHub |
| 83 | Return: Structured comparison with recommendation" |
| 84 | ``` |
| 85 | |
| 86 | ## Search Shortcuts by Category |
| 87 | |
| 88 | ### Development Tooling |
| 89 | - Linting → `eslint`, `ruff`, `textlint`, `markdownlint` |
| 90 | - Formatting → `prettier`, `black`, `gofmt` |
| 91 | - Testing → `jest`, `pytest`, `go test` |
| 92 | - Pre-commit → `husky`, `lint-staged`, `pre-commit` |
| 93 | |
| 94 | ### AI/LLM Integration |
| 95 | - Claude SDK → Check for latest docs |
| 96 | - Prompt management → Check MCP servers |
| 97 | - Document processing → `unstructured`, `pdfplumber`, `mammoth` |
| 98 | |
| 99 | ### Data & APIs |
| 100 | - HTTP clients → `httpx` (Python), `ky`/`got` (Node) |
| 101 | - Validation → `zod` (TS), `pydantic` (Python) |
| 102 | - Database → Check for MCP servers first |
| 103 | |
| 104 | ### Content & Publishing |
| 105 | - Markdown processing → `remark`, `unified`, `markdown-it` |
| 106 | - Image optimiz |