search-first

Audits codebases to identify reusable components and document decisions.

Updated Apr 11, 2026
One-click install
npx skills add https://github.com/bennybennison/agent-toolkit --skill search-first-bennybennison
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: search-first
Source: https://github.com/bennybennison/agent-toolkit/tree/main/skills/search-first
Command: npx skills add https://github.com/bennybennison/agent-toolkit --skill search-first-bennybennison

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill reduces wasted engineering effort by ensuring teams discover and reuse existing code, libraries, and patterns before creating new implementations.

Core Features & Use Cases

  • Decision Matrix: Adopt, Extend, Compose, Build hierarchy to choose the least costly approach.
  • Repository Research: Practical steps for searching the codebase, dependency manifests, and documentation to find reusable solutions.
  • Documentation Guidance: Record why a feature was extended, composed, or built to prevent future duplication.
  • Use Case: Before implementing a new order fetcher, search for an existing client to adopt or extend rather than building a separate module.

Quick Start

Search the repository and dependencies for existing implementations of the feature, choose adopt/extend/compose/build, and document the decision.

Frequently Asked Questions about search-first

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I find existing code reusable components before building a new module?

To find existing code reusable components, audit your codebase by searching repository files, dependency manifests, and documentation to identify solutions before building a new module. This process reduces wasted engineering effort by ensuring teams discover existing implementations first.

What is the best way to reduce code duplication in a software repository?

To reduce code duplication in a software repository, apply a decision matrix using an adopt, extend, compose, or build hierarchy. This approach helps choose the least costly implementation path by prioritizing reusing existing libraries and patterns over creating new ones.

When do I need to search dependencies before implementing a new feature?

You need to search dependencies before implementing a new feature when you want to prevent duplicated engineering effort. Researching dependency manifests and documentation helps identify existing clients or modules to adopt or extend rather than building a separate implementation.

How do I document design decisions for extending or building new code?

To document design decisions for extending or building new code, record the rationale for why a feature was adopted, extended, composed, or built. This documentation guidance prevents future duplication by clarifying the decision matrix behind choosing a specific implementation approach.

Can I apply a decision matrix to choose between adopting or extending a library?

Yes, you can apply a decision matrix to choose between adopting or extending a library by evaluating the adopt, extend, compose, and build hierarchy. This matrix helps determine the least costly approach for software projects and dependency reviews.

Why does building new implementations waste engineering effort?

Building new implementations wastes engineering effort when existing code, libraries, and patterns are available but undiscovered. By searching the codebase and dependencies first, teams can reuse existing solutions and prevent future duplication through documented decision rationale.