upstash/context7 · warning
Review other skills from this repository carefully before in
Error message
Review other skills from this repository carefully before installing.
What it means
After successfully listing a repository's skills, the registry response includes blockedSkillsCount > 0 — skills removed from the listing because they matched prompt-injection patterns. The CLI prints an error stating N skill(s) were blocked and not shown, followed by this warning advising the user that the remaining skills from the same repository deserve extra scrutiny before install.
Source
Thrown at packages/cli/src/commands/skill.ts:327
}
if (!data.skills || data.skills.length === 0) {
spinner.warn(pc.yellow(`No skills found in ${repo}`));
return;
}
const skillsWithRepo = data.skills
.map((s) => ({ ...s, project: repo }))
.sort((a, b) => (b.installCount ?? 0) - (a.installCount ?? 0));
spinner.succeed(`Found ${data.skills.length} skill(s)`);
if (data.blockedSkillsCount && data.blockedSkillsCount > 0) {
log.blank();
log.error(
`${data.blockedSkillsCount} skill(s) blocked due to prompt injection and not shown.`
);
log.warn("Review other skills from this repository carefully before installing.");
}
if (options.all || data.skills.length === 1) {
selectedSkills = skillsWithRepo;
} else {
const indexWidth = data.skills.length.toString().length;
const maxNameLen = Math.max(...data.skills.map((s) => s.name.length));
const popularityColWidth = 13;
const choices = skillsWithRepo.map((s, index) => {
const indexStr = pc.dim(`${(index + 1).toString().padStart(indexWidth)}.`);
const paddedName = s.name.padEnd(maxNameLen);
const popularity = formatPopularity(s.installCount) + " ".repeat(popularityColWidth - 4);
const trust = formatTrust(s.trustScore);
const skillUrl = s.url || `https://github.com${s.project}`;
const skillLink = terminalLink(s.name, skillUrl, pc.white);
const repoLink = terminalLink(s.project, `https://github.com${s.project}`, pc.white);
const metadataLines = [View on GitHub (pinned to 5284672feb)
Solutions
- Read the source of each remaining skill on GitHub before installing anything from that repository.
- Prefer skills from maintainers you trust, or copy the skill content into your own repo and install from there.
- Report the repository to the registry maintainers if you confirm malicious content.
Defensive patterns
Strategy: validation
Validate before calling
if (typeof data.blockedSkillsCount === "number" && data.blockedSkillsCount > 0) {
// treat this repo as elevated-risk: audit remaining skills before install
console.warn(`${data.blockedSkillsCount} skills were hidden by the injection scanner.`);
} Type guard
function repoHasBlockedSkills(data: {
blockedSkillsCount?: number;
}): boolean {
return (data.blockedSkillsCount ?? 0) > 0;
} Prevention
- Treat blockedSkillsCount > 0 as a trust signal about the whole repository, not just the hidden skills.
- Audit the source of every remaining skill from flagged repos before installing.
- Prefer pinned, well-known repositories for skill installs.
When it happens
Trigger: Listing skills for a repository where at least one skill was filtered by server-side injection scanning; the command still succeeds and shows the unblocked skills, but this advisory is emitted right after the 'Found N skill(s)' success line.
Common situations: Community repositories with mixed quality where one malicious skill got the author flagged; users evaluating unfamiliar repos via `context7 skill add <repo>`.
Related errors
- This skill contains potentially malicious content and cannot
- No skills found in ${repo}
- Installation cancelled
- No skills selected
- Fix permissions with:
AI-assisted analysis of upstash/context7@5284672feb (2026-08-18).
Data as JSON: /api/errors/08ee8342eb00e160.
Report an issue: GitHub.