docs(main): improve README discoverability for indirect prompt injection and MCP#21
Conversation
…d MCP - Update H1 to include keywords: indirect prompt injection, MCP tools - Update first paragraph to mention "indirect" and "MCP tool calls" - Add "protection" framing alongside "defense" Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Updates the README heading and opening paragraph to improve SEO discoverability by adding keywords like "Indirect Prompt Injection", "MCP", and "Protection".
Changes:
- Updated H1 to include "Indirect Prompt Injection Protection for MCP Tools"
- Updated opening paragraph to mention "indirect", "MCP tool calls", and "protection"
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Updated project description for clarity and accuracy.
There was a problem hiding this comment.
1 issue found across 1 file
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="README.md">
<violation number="1" location="README.md:1">
P2: Keep the package name casing consistent with the install/import examples; the mixed-case H1 currently documents a different identifier than `@stackone/defender`.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
There was a problem hiding this comment.
1 issue found across 1 file (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="README.md">
<violation number="1" location="README.md:3">
P3: Change `tools calls` to `tool calls` in the opening sentence.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
- Add StackOne logo, centered header, tagline - Add npm version, downloads, license, model size, latency, F1 badges - Add light/dark mode hero diagram using <picture> + prefers-color-scheme - Dark mode: SVG diagram from stackone.com; light mode: OG PNG Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
1 issue found across 1 file (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="README.md">
<violation number="1" location="README.md:22">
P3: The new image alt text makes a stricter latency claim (`under 2ms`) than the rest of the README supports. Use wording that matches the documented latency or remove the timing from the alt text.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
- Add assets/banner-light.svg and assets/banner-dark.svg: custom 1200×280px banners with full StackOne wordmark, "Defender" title, "@stackone/defender" subtitle, tagline, and stats pills (90.8% F1, 22MB, ~10ms, CPU-only) - Light banner uses brand surfaces (#FEFEFD bg, #047B43 accent/stats) - Dark banner uses dark surfaces (#2B2B2B bg, #76D6AE accent/stats) - Update README <picture> to reference new local assets instead of website images - Move badges below banner for cleaner visual hierarchy Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add assets/demo-light.svg and assets/demo-dark.svg: 1200×400px diagrams showing the defender pipeline — poisoned email input → defender analysis → blocked DefenseResult with tier2Score: 0.97 and riskLevel: critical - Split badges into two rows: package info (npm, release, stars, license, TypeScript) + performance stats (model, latency, CPU-only, F1 score) - Add GitHub release badge (shows latest tagged release) - Add GitHub stars badge (social proof) - Add TypeScript typed badge Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix detections to use real pattern IDs: 'role_system_bracket' and 'ignore_previous' (matching src/classifiers/patterns.ts) - Fix fieldsSanitized to show correct array format: [ 'body' ] - Fix injection example to trigger actual patterns: [SYSTEM]: prefix triggers role_system_bracket; "Ignore all previous instructions" triggers ignore_previous - Fix shield proportions: 72×98px (1.36:1 ratio, up from 1.7:1) - Widen center panel (240px) for better shield breathing room - Improve code panel layout: consistent property/value alignment - Add maxSentence row showing actual matched sentence text - Remove fabricated 'command_injection' detection Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
Shield was 72×108px (1.5:1, too tall). Now 92×92px (1.0:1). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Summary
# @stackone/defenderto# @StackOne/defender — Indirect Prompt Injection Protection for MCP ToolsThese changes address gaps in search discoverability — the old README mentioned "prompt injection" but missed "indirect", had no "MCP" in the opening, and used "defense" but never "protection".
Also done (outside this PR, via API)
prompt-injection,indirect-prompt-injection,prompt-injection-defense,prompt-injection-protection,mcp-security,ai-security,llm-security,prompt-injection-detection🤖 Generated with Claude Code
Summary by cubic
Improves README SEO and clarity around indirect prompt injection and MCP with a branded banner, local light/dark diagrams, and a sharper intro focused on agents, MCP/CLI/direct tool calls, and protection for
@stackone/defender.New Features
<picture>with localassets/banner-*.svg; move badges below in two rows (npm/downloads/release/stars/license/TypeScript + model/latency/CPU-only/F1).Bug Fixes
role_system_bracketandignore_previous,fieldsSanitized: [ 'body' ], addmaxSentence, remove non-existent rule.Written for commit 9337445. Summary will update on new commits.