{"id":48911401,"url":"https://github.com/fernandoxavier02/skill-advisor","last_synced_at":"2026-04-17T00:00:46.210Z","repository":{"id":349637278,"uuid":"1201504224","full_name":"fernandoxavier02/skill-advisor","owner":"fernandoxavier02","description":"The AI that learns which AI tools to use. Intelligent routing across your entire Claude Code toolchain — skills, plugins, MCPs, agents.","archived":false,"fork":false,"pushed_at":"2026-04-16T22:40:48.000Z","size":5495,"stargazers_count":0,"open_issues_count":28,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-16T23:28:18.424Z","etag":null,"topics":["ai-agents","claude-code","claude-code-plugin","developer-tools","discovery","semantic-search","skill-routing"],"latest_commit_sha":null,"homepage":"https://github.com/fernandoxavier02/skill-advisor","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fernandoxavier02.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-04T19:09:23.000Z","updated_at":"2026-04-16T22:39:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"426814ef-4185-44c1-9dce-c2caba33e6fa","html_url":"https://github.com/fernandoxavier02/skill-advisor","commit_stats":null,"previous_names":["fernandoxavier02/skill-advisor"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/fernandoxavier02/skill-advisor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernandoxavier02%2Fskill-advisor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernandoxavier02%2Fskill-advisor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernandoxavier02%2Fskill-advisor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernandoxavier02%2Fskill-advisor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fernandoxavier02","download_url":"https://codeload.github.com/fernandoxavier02/skill-advisor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernandoxavier02%2Fskill-advisor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31909235,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"ssl_error","status_checked_at":"2026-04-16T18:21:47.142Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agents","claude-code","claude-code-plugin","developer-tools","discovery","semantic-search","skill-routing"],"created_at":"2026-04-17T00:00:28.016Z","updated_at":"2026-04-17T00:00:46.178Z","avatar_url":"https://github.com/fernandoxavier02.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/logo.png\" alt=\"Skill Advisor\" width=\"120\" height=\"120\" style=\"border-radius: 50%;\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eSkill Advisor\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eThe AI that learns which AI tools to use\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#installation\"\u003e\u003cimg src=\"https://img.shields.io/badge/platform-Claude_Code-7C3AED?style=flat-square\" alt=\"Platform\" /\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/version-2.0.0-blue?style=flat-square\" alt=\"Version\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/skills_indexed-344-brightgreen?style=flat-square\" alt=\"Skills Indexed\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/tests-424_passing-brightgreen?style=flat-square\" alt=\"Tests\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/node-%3E%3D18-brightgreen?style=flat-square\" alt=\"Node\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/license-MIT-green?style=flat-square\" alt=\"License\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  You have 200+ skills installed. You use 10. Skill Advisor finds the other 190.\n\u003c/p\u003e\n\n---\n\n## What it does\n\nSkill Advisor is a **Claude Code plugin** that watches how you work, learns what tools help, and recommends the right combination for any task.\n\n```\nYou type:  \"quero corrigir um bug no login\"\n\nAdvisor:   [Advisor] Considere /advisor -- detectei relevancia com:\n           /investigate (87%), /fix (74%), /review (68%)\n\n           [Advisor] Voce sabia? /cso tem alta relevancia mas nunca\n           foi usado. Experimente!\n\n           [Advisor] Pipeline anterior: investigate -\u003e fix -\u003e review\n           (usado 5x). Rode /advisor para replay.\n```\n\nThree lines. Zero configuration. It knew your branch is `fix/`, found your debugging tools, suggested one you never tried, and remembered your usual sequence.\n\n---\n\n## How it works\n\n```\n                         YOUR PROMPT\n                             |\n                    +--------v--------+\n                    |  advisor-nudge  |  \u003c50ms, runs on every prompt\n                    |    (hook)       |\n                    +--------+--------+\n                             |\n              +--------------+--------------+\n              |              |              |\n        +-----v-----+  +----v----+  +------v------+\n        |  Semantic  |  | Keyword |  |   Graph     |\n        |  Search    |  | Match   |  |   BFS       |\n        | (50% wt)   |  | (30% wt)|  |  (20% wt)  |\n        +-----+------+  +----+----+  +------+------+\n              |              |              |\n              +--------------+--------------+\n                             |\n                    +--------v--------+\n                    |  Signal Fusion  |  weighted average\n                    +--------+--------+\n                             |\n              +--------------+--------------+\n              |              |              |\n        +-----v-----+  +----v----+  +------v------+\n        | Affinity   |  | Context |  | Discovery   |\n        | Boost      |  | Boost   |  | Nudge       |\n        | (from      |  | (branch |  | (unused     |\n        |  history)  |  |  type)  |  |  skills)    |\n        +-----+------+  +----+----+  +------+------+\n              |              |              |\n              +--------------+--------------+\n                             |\n                    +--------v--------+\n                    |   OUTPUT        |\n                    | skill matches + |\n                    | discovery nudge |\n                    | + replay hint   |\n                    +-----------------+\n```\n\n**Three search layers** find relevant skills. **Three boost layers** personalize the results. All local, all \u003c50ms.\n\n---\n\n## Key Features\n\n### It learns from you (v2.0)\n\nEvery time you run `/advisor-feedback`, the system records what worked and what didn't. Over time:\n\n- Skills you rate highly get boosted\n- Skills you mark as unhelpful get demoted\n- Skill sequences you repeat become replay suggestions\n- Skills you've never tried but match your patterns get surfaced\n\n### It understands context\n\n| Signal | What it does |\n|--------|-------------|\n| Branch name | `fix/` boosts debugging skills, `feat/` boosts implementation |\n| Execution history | Skills you use often rank higher |\n| Skill combos | `investigate -\u003e fix -\u003e review` repeated 3x? It remembers |\n| Unused skills | High relevance + never used = discovery nudge |\n\n### It detects duplicates\n\nWhen you run `/advisor-index`, it finds near-identical skills across plugins:\n\n```\nglobal:Hook Development          plugin:plugin-dev:hook-development    99.7%\nglobal:MCP Integration           plugin:plugin-dev:mcp-integration     99.8%\n```\n\nHelps you clean up redundant installations.\n\n### Bilingual (PT-BR / EN)\n\n50+ synonym mappings bridge Portuguese and English:\n\n```\n\"auditar seguranca\"          -\u003e audit, review, security\n\"corrigir bug no login\"      -\u003e fix, debug, bug, auth, login\n```\n\n---\n\n## Installation\n\n### Option 1: GitHub (recommended)\n\n```bash\n# Clone the repo\ngit clone https://github.com/fernandoxavier02/skill-advisor.git\n\n# Copy to Claude Code plugins directory\nmkdir -p ~/.claude/plugins/local/\ncp -r skill-advisor ~/.claude/plugins/local/\n\n# Install build dependency (one-time, for semantic embeddings)\ncd ~/.claude/plugins/local/skill-advisor\nnpm install\n```\n\nThen restart Claude Code or run `/reload-plugins`.\n\n### Option 2: Manual install\n\n1. Download from [Releases](https://github.com/fernandoxavier02/skill-advisor/releases)\n2. Extract to `~/.claude/plugins/local/skill-advisor/`\n3. Run `npm install` in that directory\n4. Restart Claude Code\n\n### First-time setup\n\nAfter installation, run these two commands in Claude Code:\n\n```\n/advisor-index      # Scans all your skills/plugins/MCPs, builds the search index\n                    # First run takes ~2 min (downloads 23MB embedding model)\n\n/advisor-catalog    # (Optional) Builds the Obsidian vault knowledge graph\n```\n\n### Verify it works\n\n```\n/advisor-config status    # Should show: enabled: false, indexed: true\n\n/advisor fix a bug        # Should return a loadout with debugging skills\n```\n\n---\n\n## Commands\n\n| Command | What it does |\n|---------|-------------|\n| `/advisor \u003ctask\u003e` | Recommend the best skill combination for a task |\n| `/advisor --template bugfix` | Load a saved workflow template |\n| `/advisor-index` | Rebuild search index + semantic embeddings + v2 data pipeline |\n| `/advisor-catalog` | Generate Obsidian vault knowledge graph |\n| `/advisor-stats` | Show usage analytics + skill heat map (7d/30d/90d) |\n| `/advisor-feedback` | Record what worked/didn't after a pipeline |\n| `/advisor-config enable` | Turn on automatic prompt suggestions |\n| `/advisor-config disable` | Turn off suggestions |\n| `/advisor-config threshold 0.3` | Adjust suggestion sensitivity (0.0 - 1.0) |\n\n---\n\n## Architecture\n\n```\nskill-advisor/\n|\n+-- hooks/\n|   +-- advisor-nudge.cjs          # Real-time hook (\u003c50ms, zero network)\n|\n+-- commands/                       # 6 slash commands\n|   +-- advisor.md                  # Main recommendation engine\n|   +-- advisor-index.md            # Index + v2 build pipeline\n|   +-- advisor-catalog.md          # Obsidian vault generator\n|   +-- advisor-stats.md            # Analytics + heat map\n|   +-- advisor-feedback.md         # Feedback collector\n|   +-- advisor-config.md           # Configuration\n|\n+-- agents/\n|   +-- advisor-router.md           # Sonnet subagent for task classification\n|\n+-- lib/                            # 21 modules\n|   +-- paths.js                    # Path resolution (D1: ~/.claude/advisor/)\n|   +-- constants.js                # Frozen config (8 categories, fusion weights)\n|   +-- text.js                     # Tokenizer + PT-BR/EN synonyms\n|   +-- jsonl.js                    # Defensive JSONL reader/writer\n|   +-- frontmatter.js              # YAML frontmatter parser\n|   +-- errors.js                   # Structured error handling\n|   +-- schemas.js                  # Data schema validators\n|   +-- semantic.js                 # Cosine similarity search\n|   +-- graph-search.js             # BFS traversal + scoring\n|   +-- context.js                  # Branch -\u003e category mapping\n|   +-- build-index.js              # Skill/plugin/MCP scanner\n|   +-- build-embeddings.js         # 384-dim vectors (transformers.js)\n|   +-- build-graph.js              # Vault -\u003e adjacency graph\n|   +-- build-catalog.js            # Plugin source scanner\n|   +-- build-affinity.js           # Feedback + telemetry -\u003e scores\n|   +-- build-combos.js             # Sequence pattern discovery\n|   +-- build-discovery.js          # Unused skill candidates\n|   +-- build-replay.js             # Replay candidates\n|   +-- build-collisions.js         # Duplicate skill detection\n|   +-- build-hook-data.js          # Bundle for hook consumption\n|   +-- advisor-stats.js            # Analytics computation\n|\n+-- vault-skills/                   # 348 Obsidian skill cards\n+-- vault-concepts/                 # 45 concept nodes\n+-- vault-pipelines/                # 8 pipeline templates\n+-- vault-graph/                    # adjacency.json (401 nodes, 2803 edges)\n|\n+-- tests/                          # 424 tests, 0 failures\n|   +-- fixtures/                   # Deterministic test data\n|\n+-- ~/.claude/advisor/              # User data (survives reinstalls)\n    +-- feedback.jsonl              # User feedback\n    +-- telemetry.jsonl             # Session telemetry\n    +-- cache/                      # Pre-computed data\n        +-- advisor-affinity.json\n        +-- advisor-combos.json\n        +-- advisor-discovery.json\n        +-- advisor-collisions.json\n        +-- advisor-hook-data.json\n        +-- advisor-replay-candidate.json\n```\n\n### Data flow\n\n```\n  SOURCES                    BUILD PIPELINE              RUNTIME\n  (your plugins)             (on /advisor-index)         (on every prompt)\n\n  ~/.claude/skills/    -+\n  ~/.claude/plugins/    |-\u003e build-index ---------\u003e advisor-index-lite.json -+\n  .mcp.json files      |                                                   |\n                       -+-\u003e build-embeddings ----\u003e advisor-embeddings.json -+\n                                                                           |\n                            build-collisions ----\u003e advisor-collisions.json |\n                                                                           |\n  feedback.jsonl --------\u003e build-affinity -------\u003e advisor-affinity.json --+\n  telemetry.jsonl -------\u003e build-combos ---------\u003e advisor-combos.json    |\n                        +-\u003e build-discovery -----\u003e advisor-discovery.json -+\n                        +-\u003e build-replay --------\u003e advisor-replay.json   -+\n                                                                          |\n                            build-hook-data ------\u003e advisor-hook-data.json\n                                                          |\n                                                          v\n                                                   advisor-nudge.cjs\n                                                   (hook, \u003c50ms)\n```\n\n---\n\n## Configuration\n\n### Hook sensitivity\n\n| Threshold | Behavior |\n|-----------|----------|\n| `0.15` | Very sensitive -- suggests often |\n| `0.20` | **Default** -- balanced |\n| `0.35` | Conservative -- strong matches only |\n| `0.50` | Minimal -- near-exact matches only |\n\n### Environment variables\n\n| Variable | Default | Purpose |\n|----------|---------|---------|\n| `ADVISOR_ENABLED` | (config file) | Override hook on/off |\n| `ADVISOR_THRESHOLD` | `0.20` | Override suggestion threshold |\n| `ADVISOR_BRANCH` | (auto) | Override branch name for context |\n| `ADVISOR_DEBUG` | off | Enable debug logging to stderr |\n\n---\n\n## Performance\n\n| Metric | Target | Actual |\n|--------|--------|--------|\n| Hook latency | \u003c50ms | ~20-35ms |\n| Lite index size | \u003c100KB | 96.9KB |\n| Semantic search | \u003c20ms | ~15ms |\n| Graph BFS | \u003c10ms | ~5ms |\n| Network calls at runtime | 0 | 0 |\n| Runtime dependencies | 0 | 0 |\n| Tests | -- | 424 pass, 0 fail |\n\n---\n\n## Privacy\n\n- **Everything runs locally.** No network calls at runtime, ever.\n- Embedding model downloaded once (~23MB), cached locally.\n- Your feedback and telemetry stay in `~/.claude/advisor/` on your machine.\n- No data leaves your computer.\n\n---\n\n## Dependencies\n\n| Package | When | Purpose |\n|---------|------|---------|\n| `@huggingface/transformers` | Build-time only | Generate 384-dim embeddings |\n| Node.js \u003e= 18 | Runtime | Built-in test runner, ES features |\n\nZero runtime dependencies. The hook and all commands run on pure Node.js.\n\n---\n\n## Contributing\n\n```bash\ngit clone https://github.com/fernandoxavier02/skill-advisor.git\ncd skill-advisor\nnpm install\nnpm test                    # 424 tests must pass\n```\n\n1. Create a feature branch (`git checkout -b feat/my-feature`)\n2. Write tests first (TDD -- `node --test`)\n3. Run `npm test` -- all 424+ must pass\n4. Commit with conventional messages\n5. Open a Pull Request\n\n---\n\n## See also — FX-Studio-AI suite\n\nskill-advisor is one of three plugins in the **FX-Studio-AI marketplace**. They form a coherent workflow:\n\n1. **[cc-toolkit](https://github.com/fernandoxavier02/cc-mastery)** — onboarding and diagnostics. Get your Claude Code setup in order.\n2. **skill-advisor** (this repo) — discovery and routing. Use the tools you already have, effectively.\n3. **[pipeline-orchestrator](https://github.com/fernandoxavier02/Pipeline-Orchestrator)** — adversarial review. Ship production code safely.\n\nInstall the marketplace once, use any combination.\n\n---\n\n## License\n\nMIT\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eBuilt by \u003ca href=\"https://github.com/fernandoxavier02\"\u003eFernando Xavier\u003c/a\u003e\u003c/strong\u003e\n  \u003cbr /\u003e\n  \u003ca href=\"https://fxstudioai.com\"\u003eFX Studio AI\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffernandoxavier02%2Fskill-advisor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffernandoxavier02%2Fskill-advisor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffernandoxavier02%2Fskill-advisor/lists"}