<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: wuykjl</title>
    <description>The latest articles on DEV Community by wuykjl (@wuykjl).</description>
    <link>https://dev.to/wuykjl</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3982086%2F3f6ff167-30da-4686-9d6c-056716df2d49.png</url>
      <title>DEV Community: wuykjl</title>
      <link>https://dev.to/wuykjl</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wuykjl"/>
    <language>en</language>
    <item>
      <title>Unlimited skill</title>
      <dc:creator>wuykjl</dc:creator>
      <pubDate>Tue, 16 Jun 2026 02:42:40 +0000</pubDate>
      <link>https://dev.to/wuykjl/unlimited-skill-2dga</link>
      <guid>https://dev.to/wuykjl/unlimited-skill-2dga</guid>
      <description>&lt;p&gt;Unlimited skill engine — Hermes Agent 5-layer hybrid routing plugin.&lt;/p&gt;

&lt;p&gt;Like a maître d' at a fine restaurant: you say "I'm hungry", they seat you at the best table — no need to flip through a 400-dish menu.&lt;/p&gt;

&lt;p&gt;See the Difference&lt;/p&gt;

&lt;p&gt;Me: "Help me optimize my website"&lt;/p&gt;

&lt;p&gt;❌ Before: AI confused, spits out irrelevant text&lt;/p&gt;

&lt;p&gt;✅ After: AI understands instantly, calls the "Performance Optimization" skill&lt;/p&gt;

&lt;p&gt;Me: "Thanks, well said"&lt;/p&gt;

&lt;p&gt;❌ Before: Still suggesting skills like a pushy salesperson&lt;/p&gt;

&lt;p&gt;✅ After: A quiet "you're welcome" — just chatting normally&lt;/p&gt;

&lt;p&gt;Architecture&lt;/p&gt;

&lt;p&gt;代码&lt;br&gt;
User Query&lt;br&gt;
  │&lt;br&gt;
  ▼&lt;br&gt;
[1] Task Gate (rules + LLM hybrid)&lt;br&gt;
  ├── Not a task → skip (zero overhead)&lt;br&gt;
  └── Task →&lt;br&gt;
        │&lt;br&gt;
        ▼&lt;br&gt;
[2] Exact Trigger Match&lt;br&gt;
  ├── Hit → Top-3 injected&lt;br&gt;
  └── Miss →&lt;br&gt;
        │&lt;br&gt;
        ▼&lt;br&gt;
[3] Trigger Word Overlap (overlap scoring)&lt;br&gt;
  ├── Hit → Top-3 injected&lt;br&gt;
  └── Miss →&lt;br&gt;
        │&lt;br&gt;
        ▼&lt;br&gt;
[4] Levenshtein Fuzzy (typo tolerance)&lt;br&gt;
  ├── Hit → Top-3 injected&lt;br&gt;
  └── Miss →&lt;br&gt;
        │&lt;br&gt;
        ▼&lt;br&gt;
[5] LLM Fallback (edge case catch-all)&lt;br&gt;
       → Top-3 injected&lt;br&gt;
Features&lt;/p&gt;

&lt;p&gt;Unlimited skills — BM25 + trigger phrase matching, O(1) lookup, skill count doesn't affect latency&lt;br&gt;
Bilingual CN/EN — 2,918 trigger phrases covering real Chinese and English user queries&lt;br&gt;
Self-training loop — user corrections → feedback log → cron auto-training&lt;br&gt;
Drift monitor — runs 366 test cases daily at 4AM, alerts if accuracy drops &amp;gt;5%&lt;br&gt;
Zero noise — scores 0.5–1.0 have meaning; no BM25 random guesses&lt;br&gt;
100% local — all indexes on-device, no external APIs&lt;br&gt;
Install&lt;/p&gt;

&lt;p&gt;代码&lt;br&gt;
· bash&lt;br&gt;
hermes skills install &lt;a href="https://github.com/wuykjl/unlimited-skills" rel="noopener noreferrer"&gt;https://github.com/wuykjl/unlimited-skills&lt;/a&gt;&lt;br&gt;
Install and go. Works in Chinese and English. Learns on its own. Monitors itself for drift.&lt;/p&gt;

&lt;p&gt;Who's It For?&lt;/p&gt;

&lt;p&gt;You say "write me a script", "deploy this", "check for security holes" — daily&lt;br&gt;
300+ skills installed and you don't know which ones are actually being used&lt;br&gt;
You don't want to waste time thinking about "which skill to pick"&lt;br&gt;
Acknowledgments&lt;/p&gt;

&lt;p&gt;This project's skill routing is built on the open skill ecosystems of:&lt;/p&gt;

&lt;p&gt;ECC (Enterprise Coding Conventions) — 117-rule coding standard framework&lt;br&gt;
Anthropic Skills — Official Agent Skills repository&lt;br&gt;
Claude Code Plugins — Claude Code official plugin ecosystem&lt;br&gt;
And all individual developers who contributed skills to the Hermes ecosystem&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How I turned 18% skill hit rate into 95% — without calling an embedding API once</title>
      <dc:creator>wuykjl</dc:creator>
      <pubDate>Sun, 14 Jun 2026 10:43:19 +0000</pubDate>
      <link>https://dev.to/wuykjl/how-i-turned-18-skill-hit-rate-into-95-without-calling-an-embedding-api-once-1881</link>
      <guid>https://dev.to/wuykjl/how-i-turned-18-skill-hit-rate-into-95-without-calling-an-embedding-api-once-1881</guid>
      <description>&lt;p&gt;My Claude Code setup grew to 152 skills. Every session, all 152 descriptions got dumped into the system prompt. The LLM scanned them blindly. When I later checked, keyword matching hit the right skill 18% of the time.&lt;/p&gt;

&lt;p&gt;I had three options:&lt;/p&gt;

&lt;p&gt;Call text-embedding-3 on every query — costs money, adds latency&lt;br&gt;
Accept 18% as "good enough"&lt;br&gt;
Build something&lt;br&gt;
What I built&lt;br&gt;
neuro-skill — a hybrid skill router that runs entirely on my machine. No API calls. No GPU. 5ms per query.&lt;/p&gt;

&lt;p&gt;It fuses five signals via Reciprocal Rank Fusion:&lt;/p&gt;

&lt;p&gt;BM25 keyword recall → Cosine feature similarity → Graph spreading activation&lt;br&gt;
→ Collaborative filtering personalization → Optional LLM rerank&lt;br&gt;
The results&lt;br&gt;
Core domains: 95% Hit@1, 100% Hit@3&lt;br&gt;
Chinese queries: fixed from 0% to 87% with bilingual keyword coverage&lt;br&gt;
Multi-skill orchestration: router.plan("review + fix + deploy") returns ordered execution steps&lt;br&gt;
Personalization: learns which skills you pick, not just which ones rank highest&lt;br&gt;
An independent tester validated it on 332 skills (Hermes + ECC) — v0.7.1 hit 77% overall.&lt;/p&gt;

&lt;p&gt;Architecture decisions that mattered&lt;br&gt;
Feature matrix, not embeddings. 50 hand-crafted features (17 broad domains + 32 precise languages/actions) beat TF-IDF by 5× without any model.&lt;br&gt;
Graph over threshold. k-NN graph (k=adaptive) keeps diffusion working at any skill count — 0.5% density with full adjacency was dead on arrival.&lt;br&gt;
RRF over weighted sum. Min-max normalization broke when BM25 scored 0–15 and cosine gave −1 to 1. Reciprocal Rank Fusion only cares about rank position.&lt;br&gt;
LLM as opt-in, not default. Haiku rerank is a 5th signal you toggle on when you need semantic nuance. Otherwise it's zero-cost.&lt;br&gt;
MCP from day one. Claude Code, Cursor, Codex, Windsurf — all auto-discover the tools. No plugin installs.&lt;br&gt;
What I learned&lt;br&gt;
The algorithm ceiling is real. BM25 + cosine + graph + RRF + CF + LLM rerank — that's six layers. After that, gains are marginal. The remaining bottleneck is feature coverage, not algorithm design.&lt;/p&gt;

&lt;p&gt;Also: three independent projects (neuro-skill, agent-skill-finder, SkillRouter paper) converged on the same architecture from different starting points. That's when you know you're on the right track.&lt;/p&gt;

&lt;p&gt;Links&lt;br&gt;
GitHub: github.com/wuykjl/neuro-skill&lt;br&gt;
pip install neuro-skill&lt;br&gt;
MIT licensed. 54 tests. 28 commits over 12 hours.&lt;/p&gt;

&lt;p&gt;I built this for myself. It turned out useful for others too. If your agent has 50+ skills and keyword matching is letting you down, try it.&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
  </channel>
</rss>
