Evaluate Existing Solutions logo

Evaluate Existing Solutions

Community
citypaul
evaluate-existing-solutions

Research and compare established libraries, open-source tools and applications, managed services, and standard, framework, or platform primitives against an explicit bespoke baseline before committing to a material generic mechanism. Use for library/tool recommendations, build-versus-adopt questions, custom-mechanism replacement, consequential unresolved dependencies, or due diligence on a named but newly introduced material dependency. Produces an evidence-backed adopt, adapt, combine, build, defer, or do-nothing proposal. For repository-wide opportunity discovery use improve-codebase-architecture first and evaluate only the selected job. Not for agent-skill discovery, constraints still needing specification, trivial logic/glue, routine use of an adopted tool, or ordinary fixes.

Overview

Publishercitypaul
Repository.dotfiles
Skill nameevaluate-existing-solutions
Stars
740
Forks
96
Bundled files
4
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 4 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by citypaul on GitHub. Read the source before you install it.

Installation

Install the Evaluate Existing Solutions AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/citypaul/.dotfiles/tree/main/claude/.claude/skills/evaluate-existing-solutions
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/citypaul/.dotfiles.git /tmp/.dotfiles
mkdir -p .claude/skills
cp -r /tmp/.dotfiles/claude/.claude/skills/evaluate-existing-solutions .claude/skills/evaluate-existing-solutions
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Evaluate Existing Solutions in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Evaluate Existing Solutions on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Evaluate Existing Solutions is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Evaluate Existing Solutions

Reuse before invention is a decision discipline, not a rule that every problem needs a dependency. Compare existing capabilities and a bespoke baseline on total lifecycle ownership. Prefer an established solution when it fits and lowers overall risk and mechanism; prefer bespoke when evidence shows it is the smaller, safer, more controllable, or more differentiating choice.

This skill researches and decides. It does not install packages, run untrusted code, create accounts, start procurement, accept licenses, send data to a service, or implement the choice without separate authority.

Read references/evidence-and-currentness.md before external research. Read references/evaluation-dimensions.md before comparing finalists. Use assets/solution-decision-template.md as the decision-artifact skeleton.

Activation Boundary and Depth

Use three proportionate depths:

  1. Lightweight preflight — before proposing material bespoke generic machinery, inspect existing repository capabilities and standard/framework/platform primitives. Continue only when a credible alternative or material ownership decision exists.
  2. Due diligence only — when the user has prescribed a named but not-yet-adopted material dependency, verify the exact version/tier, compatibility, maintenance, security, license, provenance, lifecycle/execution risk, and local fit without reopening the market comparison. Surface a failed hard gate; otherwise honor the prescribed choice.
  3. Full comparison — for a consequential unresolved choice, compare credible existing options with a genuine bespoke baseline and produce the decision proposal.

Use the full comparison for cases such as:

  • a durable direct dependency or framework;
  • a generic cross-cutting capability such as auth, queues, scheduling, validation, search, observability, storage, migrations, or feature flags;
  • an open-source application, developer tool, build system, database, runtime, managed service, or platform capability;
  • replacing selected custom machinery with an established primitive;
  • a build, buy, adopt, adapt, combine, defer, or do-nothing decision with meaningful lifecycle cost.

Do not impose it on domain-specific policy, a small transparent helper, one-off glue, a routine fix or refactor with no new mechanism, or routine use of a tool the project already owns. find-skills discovers installable agent skills; it does not evaluate software libraries, tools, applications, or services.

Operating Contract

  • Establish the job and hard constraints before shopping. If behavior is still ambiguous, return to specification. When an installed grill-me skill is available, it may pressure-test the decision tree; otherwise ask one focused question at a time until the hard constraints are clear.
  • Inspect the repository and its existing capabilities before searching externally.
  • Treat current versions, maintenance, security, support, pricing, and licenses as volatile. Verify live candidates; never rely only on model memory.
  • Use primary technical evidence for claims. Popularity and marketing can identify candidates but cannot select them.
  • Keep a bespoke baseline in the comparison. Adoption is not automatically superior.
  • Compare total ownership, including integration glue, wrappers, upgrades, migration, security response, testing, operations, support, and exit—not initial implementation effort alone.
  • Calibrate research to impact and reversibility. Stop once hard gates or sufficient evidence make further search unlikely to change the decision.
  • Record uncertainty, confidence, evidence dates, and what would change the recommendation.

Workflow

1. Frame the decision

State:

  • the job to be done, users and operators, and observable outcomes;
  • must-have constraints, preferences, and non-goals;
  • expected lifetime, scale, criticality, reversibility, decision owner, delivery deadline, and urgency;
  • runtime, language, framework, deployment, data, security, privacy, accessibility, compliance, and budget constraints;
  • the research depth proportionate to blast radius.

Separate solution-neutral needs from an attractive product's vocabulary. Do not let one candidate redefine the requirements after discovery begins.

2. Inspect local and built-in options first

Read governing instructions, architecture decisions, active plans, manifests, lockfiles, workspace configuration, and nearby code. Identify:

  1. an existing repository capability that can be reused or extended;
  2. a language standard library or open standard;
  3. an existing runtime, framework, cloud, browser, database, or operating-system primitive;
  4. dependencies and tools the team already owns and supports.

Check version compatibility, current usage, transitive dependencies, operational conventions, license/security policy, and whether reuse would create an incoherent second path. Local reuse still needs fit evidence; old code does not win merely because it is present.

3. Define candidate classes

Include only classes credible for this decision:

  • do nothing or reuse an existing local capability;
  • standard, framework, or platform primitive;
  • maintained library;
  • open-source tool or application;
  • managed or commercial service;
  • adapt, wrap, or combine a small number of existing options;
  • bespoke implementation.

Avoid false breadth. Two or three representative finalists plus the bespoke baseline are often enough. Do not produce a long popularity list.

4. Gather current external evidence

Browse for every live external candidate. Prefer, as applicable:

  • official documentation, standards, source repositories, and canonical package registries;
  • exact release, changelog, support-window, compatibility, EOL, and migration pages;
  • the repository's exact LICENSE, SECURITY, governance, ownership, and contribution files;
  • vendor SLA, pricing, DPA, data-residency, portability, backup, and deletion terms;
  • official or ecosystem advisories such as OSV, GHSA, vendor advisories, and relevant national guidance;
  • reproducible benchmarks over vendor claims when performance is decision-critical.

Record the observed version or service tier, evidence date, URL, and finding. Search snippets, stars, download/install counts, blog rankings, generated comparison sites, and one aggregate security score are discovery signals only.

If live research is unavailable, use local caches, lockfiles, vendored documentation, and source only. Mark external status unverified and the decision provisional; require revalidation before implementation.

5. Apply hard gates, then compare trade-offs

Use references/evaluation-dimensions.md.

Eliminate a candidate or name a credible mitigation when it fails a hard constraint. Then compare survivors qualitatively—do not disguise judgment as a weighted numeric score.

Evaluate the whole adopted system, including transitive dependencies, integration code, hosted control planes, operator workflows, migration bridges, fallback behavior, and the bespoke glue still required. A small package can create large ownership; a focused bespoke module can be cheaper than integrating a broad framework.

Compare time to value and opportunity cost as well as lifecycle ownership. A bespoke option with attractive steady-state ownership may still lose when delivery delay, learning risk, or diverted effort overwhelms the benefit; an existing option may still lose when its integration and migration delay exceeds a focused build. Treat bespoke capability as strategic differentiation only when the job genuinely merits owning it.

Classify the resulting decision as:

  • Adopt — use an existing solution substantially as designed.
  • Adapt — configure, extend, fork, or wrap one solution with clearly owned deltas.
  • Combine — compose a small set of complementary capabilities with an explicit integration owner.
  • Build — implement the bespoke baseline because its total trade-off is better.
  • Defer — evidence or timing is insufficient; preserve optionality and name the next trigger.
  • Do nothing — the current state satisfies the job and change would add more ownership than value.

6. Resolve uncertainty safely

For a material unknown, propose the smallest proof-of-fit that can change the decision: a temporary spike, contract test, compatibility build, representative benchmark, operational exercise, license/security review, or migration rehearsal.

  • Define the question, success/failure boundary, representative workload, timebox, and disposable outputs first.
  • Use a disposable, least-privilege execution sandbox—not merely a temporary directory. Deny home and repository mounts, network, credentials, and host services by default; mount only disposable inputs and grant each exception explicitly.
  • Do not install or execute untrusted packages, post-install scripts, containers, binaries, or remote installers without authority and inspection.
  • Disable lifecycle/install scripts where the ecosystem allows it, verify the exact artifact and available checksum/signature/provenance before execution, and record every authorized network, mount, credential, or permission exception.
  • Never send secrets, personal data, proprietary code, or production payloads to a candidate service without explicit authorization and an approved data path.
  • Test the actual version and supported usage, not only a toy API.

Proof-of-fit evidence reduces uncertainty; it does not erase ongoing maintenance, security, or operational obligations.

7. Decide and route ownership

Write the decision using assets/solution-decision-template.md. Every agent-produced result starts as proposed; only the named decision owner can accept it, with accepter and date recorded. Use an existing story, design, or active plan convention. If none exists, write a fresh timestamped temporary file rather than inventing a permanent documentation path. Move an explicitly accepted durable decision through expectations into the project's existing ADR convention. Use technical-writing for a consequential proposal.

If adopting or adapting:

  • name the exact supported version/range or service tier and update policy;
  • state who owns upgrades, advisories, incidents, renewals, and removal;
  • define the narrowest useful dependency boundary, without wrapping by reflex;
  • keep domain policy in local language rather than leaking a vendor model through the codebase;
  • record an exit path, data export path, and re-evaluation triggers.

If building:

  • state why established options lost on explicit constraints or total ownership;
  • distinguish domain advantage from generic plumbing;
  • bound the mechanism, maintenance promise, security work, and operational surface now owned;
  • identify any standards or small primitives still reused inside the bespoke design.

Route the selected implementation:

  • module responsibility and dependency-hiding contract: codebase-design;
  • public protocol or cross-team compatibility: api-design;
  • source/package placement and enforcement: structure-codebase;
  • replacing selected custom machinery with net subtraction: reduce-system-complexity;
  • delivery sequencing: planning;
  • new or changed behavior: tdd, testing, and refactoring during implementation, then mutation-testing once for the accumulated change at PR readiness;
  • final high-stakes decision review: double-check.

Re-evaluation Triggers

Every durable decision should say when to revisit it, for example:

  • major release, deprecation, EOL, maintenance slowdown, or compatibility break;
  • security advisory, ownership/governance change, or license change;
  • pricing, SLA, data-residency, procurement, or platform-policy change;
  • repeated integration pain, missing observability, reliability incidents, or upgrade burden;
  • new scale, latency, portability, accessibility, or compliance requirement;
  • a platform primitive now satisfies the job with materially less ownership.

Completion Check

  • Were the job and hard constraints known before candidate research?
  • Were repository, standard-library, framework, and platform capabilities checked first?
  • Is every external finalist supported by current primary evidence with version/tier and date?
  • Is the bespoke baseline genuine rather than a straw candidate?
  • Were hard gates applied before qualitative trade-offs?
  • Does the comparison include transitive, operational, security, migration, and exit costs?
  • Are popularity and aggregate scores treated only as signals?
  • Is the recommendation calibrated, reversible where possible, and explicit about what would change it?
  • Is implementation still separately authorized and routed through the right specialist skills?
  • Is the artifact still proposed unless the named owner explicitly accepted it, and does every rejected alternative have a reason?

Method Sources

The workflow synthesizes the local reuse-before-invention principle with dependency-management, lifecycle, security, and technology-selection guidance. See references/evidence-and-currentness.md for the source map and retained limits.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Evaluate Existing Solutions AI skill do?

Research and compare established libraries, open-source tools and applications, managed services, and standard, framework, or platform primitives against an explicit bespoke baseline before committing to a material generic mechanism. Use for library/tool recommendations, build-versus-adopt questions, custom-mechanism replacement, consequential unresolved dependencies, or due diligence on a named but newly introduced material dependency. Produces an evidence-backed adopt, adapt, combine, build, defer, or do-nothing proposal. For repository-wide opportunity discovery use improve-codebase-arch...

Why use Evaluate Existing Solutions on TypingMind?

Because you install it once and use it with any model. Evaluate Existing Solutions is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Evaluate Existing Solutions in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/citypaul/.dotfiles/tree/main/claude/.claude/skills/evaluate-existing-solutions. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Evaluate Existing Solutions?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Evaluate Existing Solutions?

As many as you like. As long as a model supports skills, you can use Evaluate Existing Solutions with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Evaluate Existing Solutions AI skill free?

It is published on GitHub by citypaul. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇