Skip to content
Data
Skill

/leetcode-coach

Find and set up coding practice problems tailored to your weak areas, then create local files so you can solve them right away. Use this skill when a user wants to practice coding, asks for a LeetCode problem, says "give me a coding challenge", "I want to practice DSA", "help me

From plugin
tinyfish-cookbook
2.1k27 skills2 MCP
Install
$ npx -y skills add tinyfish-io/tinyfish-cookbook --skill leetcode-coach --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/leetcode-coach

Context preview

The summary Claude sees to decide when to auto-load this skill.

Find and set up coding practice problems tailored to your weak areas, then create local files so you can solve them right away. Use this skill when a user wants to practice coding, asks for a LeetCode problem, says "give me a coding challenge", "I want to practice DSA", "help me

SKILL.md

leetcode-coach.SKILL.md
name: leetcode-coach
description: Find and set up coding practice problems tailored to your weak areas, then create local files so you can solve them right away. Use this skill when a user wants to practice coding, asks for a LeetCode problem, says "give me a coding challenge", "I want to practice DSA", "help me prep for coding interviews", "find me a problem to solve", "I'm weak at dynamic programming", "quiz me on algorithms", or any request to practice coding with a specific language or topic focus.

LeetCode Coach

Find coding problems matched to your weak areas from LeetCode, HackerRank, and Codeforces — then set up local files so you can start solving immediately.

Pre-flight Check (REQUIRED)

Before making any TinyFish call, always run BOTH checks:

**1. CLI installed?**

which tinyfish && tinyfish --version || echo "TINYFISH_CLI_NOT_INSTALLED"

If not installed, stop and tell the user: > Install the TinyFish CLI: `npm install -g @tiny-fish/cli`

**2. Authenticated?**

tinyfish auth status

If not authenticated, stop and tell the user: > You need a TinyFish API key. Get one at: https://agent.tinyfish.ai/api-keys > > Then authenticate: > ``` > tinyfish auth login > ```

Do NOT proceed until both checks pass.

---

Step 1 — Gather inputs

Ask for the following if not already provided:

**Required:**

  • **Preferred language** — e.g. Python, JavaScript, Java, C++, Go, Rust

**Optional (but improves results):**

  • **Weak areas / topics to focus on** — e.g. "dynamic programming", "graphs", "sliding window", "binary search", "recursion", "trees"
  • **Difficulty** — Easy / Medium / Hard (default: Medium)

If the user isn't sure of their weak areas, ask: > "What topics do you find yourself getting stuck on, or want to get better at?"

If they still aren't sure, default to: Arrays, Strings, and Hash Maps (the most commonly tested fundamentals).

---

Step 2 — Find matching problems

Fire parallel TinyFish agents across LeetCode, HackerRank, and Codeforces to find real problems matching the topic and difficulty.

# Agent 1 — LeetCode problem search
tinyfish agent run \
  --url "https://leetcode.com/problemset/?difficulty={DIFFICULTY}&topicSlugs={TOPIC_SLUG}" \
  "You are on the LeetCode problem set page filtered by difficulty and topic.
   Find 3 problems that match the topic: {TOPIC}.
   For each problem extract:
   - title
   - difficulty (Easy/Medium/Hard)
   - acceptance rate
   - topic tags
   - direct URL to the problem (e.g. https://leetcode.com/problems/two-sum/)
   STRICT RULES:
   - Do NOT click any problem to open it
   - Read only the problem listing visible on this page
   - Return exactly 3 problems, no more
   - Skip premium-only problems (marked with a lock icon)
   Return JSON array: [{title, difficulty, acceptance_rate, tags, url}]" \
  --sync > /tmp/lc_leetcode.json &

# Agent 2 — HackerRank problem search
tinyfish agent run \
  --url "https://www.hackerrank.com/domains/algorithms?filters%5Bsubdomains%5D%5B%5D={TOPIC_SLUG}" \
  "You are on HackerRank's algorithms problem listing filtered by topic.
   Find 2 problems that match the topic: {TOPIC} at {DIFFICULTY} level.
   For each problem extract:
   - title
   - difficulty
   - score/points
   - topic tags
   - direct URL to the problem
   STRICT RULES:
   - Do NOT click any problem
   - Read only the visible listing
   - Return up to 2 problems
   - Skip problems requiring premium or contests
   Return JSON array: [{title, difficulty, score, tags, url}]" \
  --sync > /tmp/lc_hackerrank.json &

# Agent 3 — Codeforces problem search
tinyfish agent run \
  --url "https://codeforces.com/problemset?tags={TOPIC_SLUG}" \
  "You are on Codeforces problem set filtered by tag.
   Find 2 problems matching the topic: {TOPIC} at approximately {DIFFICULTY} level
   (Easy ≈ rating 800-1200, Medium ≈ 1300-1800, Hard ≈ 1900+).
   For each problem extract:
   - problem ID (e.g. 1A, 158B)
   - title
   - rating
   - tags
   - direct URL (e.g. https://codeforces.com/problemset/problem/1/A)
   STRICT RULES:
   - Do NOT click any problem
   - Read only the visible listing
   - Return up to 2 problems
   Return JSON array: [{id, title, rating, tags, url}]" \
  --sync > /tmp/lc_codeforces.json &

wait

echo "=== LEETCODE ===" && cat /tmp/lc_leetcode.json
echo "=== HACKERRANK ===" && cat /tmp/lc_hackerrank.json
echo "=== CODEFORCES ===" && cat /tmp/lc_codeforces.json

**Before running**, replace:

  • `{DIFFICULTY}` — Easy / Medium / Hard
  • `{TOPIC}` — human-readable topic e.g. `dynamic programming`
  • `{TOPIC_SLUG}` — URL-friendly e.g. `dynamic-programming`

---

Step 3 — Present problem options

From the results, pick the **3 best problems** across all sources. Prefer: 1. LeetCode problems (widest community support, best editorial availability) 2. Problems with clear descriptions visible from the listing 3. Problems with acceptance rates between 30-60% for Medium difficulty

Present them like this:

Here are 3 problems matched to your focus on **{TOPIC}** in **{LANGUAGE}**:

**Option 1 — {Title}** ({difficulty}) · {source}
Tags: {tags}
Acceptance: {rate}
🔗 {url}

**Option 2 — {Title}** ({difficulty}) · {source}
Tags: {tags}
🔗 {url}

**Option 3 — {Title}** ({difficulty}) · {source}
Tags: {tags}
🔗 {url}

Which one do you want to tackle? (1, 2, or 3)

Wait for the user to choose a problem before proceeding.

---

Step 3b — Ask how they want to solve it

Once the user picks a problem, ask:

How do you want to solve it?

1. **On the website** — I'll give you the direct link and you solve it in the browser
2. **Locally** — I'll fetch the full problem and set up files on your machine so you can code in your editor

(1 or 2)

**If they choose option 1 (website):** Give them the direct link to the problem and wish them luck:

Here you go: {problem_url}

Good luck! Come back and paste your solution when you're done — I'll review it.

Stop here. Do not create any files.

**If the

Read more
Ships withtinyfish-cookbook

Search and Fetch are now FREE TinyFish Search and Fetch endpoints are now free for everyone with generous rate limits, no credit card required. Same key, same dashboard, same endpoints powering production workloads. Grab a key →

Get the whole plugin
Stats
2,108
Stars
324
Forks
Active
Maintenance
TypeScript
Language
MIT
License
22h ago
Last commit
6mo ago
Created

Repo: tinyfish-io/tinyfish-cookbook

Other skills on tinyfish-cookbook.