{"record":{"id":"31f089121edffec7","repo":"upstash/context7","slug":"no-matching-skills-found-for-your-dependencies","errorCode":null,"errorMessage":"No matching skills found for your dependencies","messagePattern":"No matching skills found for your dependencies","errorType":"console","errorClass":null,"httpStatus":null,"severity":"info","filePath":"packages/cli/src/commands/skill.ts","lineNumber":864,"sourceCode":"  const accessToken = await getValidAccessToken();\n\n  let data;\n  try {\n    data = await suggestSkills(deps, accessToken);\n  } catch {\n    searchSpinner.fail(pc.red(\"Failed to connect to Context7\"));\n    return;\n  }\n\n  if (data.error) {\n    searchSpinner.fail(pc.red(`Error: ${data.message || data.error}`));\n    return;\n  }\n\n  const skills = data.skills;\n\n  if (skills.length === 0) {\n    searchSpinner.warn(pc.yellow(\"No matching skills found for your dependencies\"));\n    return;\n  }\n\n  searchSpinner.succeed(`Found ${skills.length} relevant skill(s)`);\n  trackEvent(\"suggest_results\", { depCount: deps.length, skillCount: skills.length });\n  log.blank();\n\n  const nameWithRepo = (s: SkillSearchResult) => `${s.name} ${pc.dim(`(${s.project})`)}`;\n  const nameWithRepoLen = (s: SkillSearchResult) => `${s.name} (${s.project})`.length;\n  const maxNameLen = Math.max(...skills.map(nameWithRepoLen));\n  const popularityColWidth = 13;\n  const trustColWidth = 8;\n  const maxMatchedLen = Math.max(...skills.map((s) => s.matchedDep.length));\n  const indexWidth = skills.length.toString().length;\n\n  const choices = skills.map((s, index) => {\n    const indexStr = pc.dim(`${(index + 1).toString().padStart(indexWidth)}.`);\n    const rawLen = nameWithRepoLen(s);","sourceCodeStart":846,"sourceCodeEnd":882,"githubUrl":"https://github.com/upstash/context7/blob/5284672feb575908efead6fcf1b5e542f8d607bb/packages/cli/src/commands/skill.ts#L846-L882","documentation":"Warned at step 2 of `ctx7 skills suggest`: the Context7 backend call succeeded (access token was fine, data.error was unset) but returned zero skills matching the project's detected dependencies. A yellow spinner warning with an early return — the interactive selection/install phase is never reached.","triggerScenarios":"`ctx7 skills suggest` in a project whose dependencies (as detected) have no corresponding skills in the Context7 registry yet; very new/niche libraries (e.g. an internal package name) that no skill author has covered; a manifest dominated by unrelated tooling so the matched dep set is effectively unmatched.","commonSituations":"Early-stage or niche stacks; internal company packages that obviously have no public skills; users expecting a suggestion for every dependency and reading this as a failure rather than an empty result set.","solutions":["Fall back to manual search with broader terms: `ctx7 skills search <keyword>`","Retry after adding the mainstream frameworks of your stack to package.json — suggest matches on detected deps","Check the detected dependencies in the 'Found N dependencies' line to confirm your key libraries were actually detected","If you expected a match, search the exact library name to verify whether any skill exists at all"],"exampleFix":"# before\n$ ctx7 skills suggest\nNo matching skills found for your dependencies\n\n# after\n$ ctx7 skills search testing   # find skills manually by keyword","handlingStrategy":"fallback","validationCode":"// Ensure the dep list you care about is actually present in the manifest before suggesting\nimport { readFile } from \"node:fs/promises\";\nconst pkg = JSON.parse(await readFile(\"package.json\", \"utf8\"));\nconst depCount = Object.keys({ ...pkg.dependencies, ...pkg.devDependencies }).length;\nif (depCount === 0) {\n  console.error(\"No dependencies in package.json — suggest cannot match anything\");\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Read the 'Found N dependencies' line to confirm your key libraries were detected","Design scripts to fall back to `ctx7 skills search <keyword>` when suggest returns zero matches","Treat an empty match set as normal for niche stacks, not an auth or network problem"],"tags":["cli","skills","suggest","empty-results","backend"],"backgroundTag":"empty-search-results","analyzedSha":"5284672feb575908efead6fcf1b5e542f8d607bb","analyzedAt":"2026-08-18T18:00:18.510Z","schemaVersion":2},"datasetVersion":"2026-08-24T22:17:12.610Z"}