[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-github-secret-scanning":3,"mdc--j9dk1w-key":35,"related-repo-github-secret-scanning":1081,"related-org-github-secret-scanning":1102},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":30,"sourceUrl":33,"mdContent":34},"secret-scanning","scan files for secrets and credentials","Scan files, content, or recent changes for secrets such as API keys, passwords, tokens, and credentials using the GitHub MCP Server's run_secret_scanning tool.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"github","GitHub","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fgithub.png",[12,16,17],{"name":13,"slug":14,"type":15},"Security","security","tag",{"name":9,"slug":8,"type":15},{"name":18,"slug":19,"type":15},"Code Analysis","code-analysis",15,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fcopilot-advanced-security-plugin","2026-06-10T07:32:58.120497",null,4,[26,27,28,29,14],"coding-agent","copilot","ghas","mcp",{"repoUrl":21,"stars":20,"forks":24,"topics":31,"description":32},[26,27,28,29,14],"The official GitHub Copilot Advanced Security plugin","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fcopilot-advanced-security-plugin\u002Ftree\u002FHEAD\u002Fskills\u002Fsecret-scanning","---\nname: secret-scanning\ndescription: Scan files, content, or recent changes for secrets such as API keys, passwords, tokens, and credentials using the GitHub MCP Server's run_secret_scanning tool.\nallowed-tools: Bash(git:*) Glob Grep Read\n---\n\n# Secret Scanning Skill\n\n## Overview\n\nThis skill uses the GitHub MCP Server's `run_secret_scanning` tool to detect secrets in content, files, or git changes. It helps identify sensitive material like API keys, passwords, and credentials that could pose a security risk if exposed.\n\n### What counts as a secret?\n\nIn this context, values that grant access, impersonate a user or service, sign requests, or decrypt protected data are generally treated as secrets.\n\nTreat these as high-confidence secret material:\n\n- Access tokens, API keys, and bearer credentials\n- Passwords, database DSNs with embedded credentials, and SMTP auth values\n- Private keys, signing keys, certificates with private key blocks, and SSH keys\n- OAuth client secrets, refresh tokens, and webhook secrets\n- Cloud credentials (AWS\u002FGCP\u002FAzure) and CI\u002FCD deployment credentials\n\nPrefer context, not just regex:\n\n- Values near names like `password`, `token`, `secret`, `client_secret`, `private_key`, or `authorization` are higher risk\n- Long high-entropy strings in config files, scripts, and test fixtures deserve review even if unlabeled\n- Treat uncertain findings as sensitive until verified\n\nNot everything that looks random is a secret. Example placeholders such as `YOUR_API_KEY_HERE`, obvious test stubs, and documented sample values can be false positives.\n\n### Why this is important\n\nThis skill scans for secrets that could compromise security if leaked. A committed secret can persist in git history, trigger incident response, and block deployment at push protection checks.\n\n**Important**: Only use this skill when a user explicitly asks to scan content or check for secrets. Do not run secret scanning unprompted or as part of general workflows.\n\n## Common Scenarios\n\n| User goal                              | How to respond       | Tools needed       |\n| -------------------------------------- | -------------------- | ------------------ |\n| Check a config snippet or code paste   | Scan as content      | MCP                |\n| Check a specific file in the repo      | Read file, then scan | Read + MCP         |\n| Check all staged changes before commit | Get diff, then scan  | Bash(git:\\*) + MCP |\n\n## Installation\n\n### Prerequisites & Inputs\n\n**GitHub MCP Server**: The skill requires the GitHub MCP Server with the `secret_protection` toolset enabled. This repository includes a default [.mcp.json](.\u002F..\u002F..\u002F.mcp.json) configured for the GitHub MCP Server, allowing the skill to communicate with it out of the box.\n\nConfigure in your MCP settings:\n\n```json\n{\n  \"mcpServers\": {\n    \"github\": {\n      \"type\": \"http\",\n      \"url\": \"https:\u002F\u002Fapi.githubcopilot.com\u002Fmcp\u002F\"\n    }\n  }\n}\n```\n\n> **Note:** Cursor uses `servers` instead of `mcpServers` as the top-level key.\n\n**Required information for scanning**:\n\n- **Repository owner**: Usually available from `git remote get-url origin` or ask the user\n- **Repository name**: Usually available from `git remote get-url origin` or ask the user\n- **Content to scan**: Either a code snippet from the user, file content (read using the `Read` tool), or git diff output (from `git diff`)\n\nIf the user doesn't provide repository owner and repository name, ask for them before running the scan.\n\n**What NOT to scan**: By default, avoid scanning large generated or vendor content (for example: `node_modules\u002F`, build artifacts, compiled assets, or other machine-generated files) for performance and noise reduction. Files listed in `.gitignore` may still contain secrets (such as `.env` or local config), so only skip them if the user agrees; if the user explicitly asks to scan them, include them in the scan.\n\n### Scan Content\n\n**When to use**: The user provides text or code snippets they want checked for secrets.\n\n**How**: Use the `run_secret_scanning` tool with the content as input (as a single-item array).\n\n**Example**\n\n```\nYou: Check if this config snippet has secrets\nUser provides:\nDB_PASSWORD=MyP@ssw0rd123\nAPI_KEY=abc123xyz\n\nAgent: I'll scan that for secrets.\n\n     ⚠️ Found 2 potential secret(s):\n     1. DB_PASSWORD value looks like a password\n     2. API_KEY value looks like an API key\n\n     Consider replacing hardcoded values with environment variables.\n```\n\n### Scan File(s)\n\n**When to use**: The user asks to check specific files in the repository for secrets.\n\n**How**: Use the `Read` tool to get file contents, then pass them to `run_secret_scanning`.\n\n**Example (secrets found)**\n\n```\nYou: Check if config.py has secrets\nAgent: I'll read and scan that file.\n\n     ⚠️ Found 1 potential secret:\n     - Line 10: database_password value looks like a password\n\n     Suggestion: Move to environment variable or .env file.\n```\n\n**Example (no secrets found)**\n\n```\nYou: Check if utils.js has any secrets\nAgent: I'll read and scan that file.\n\n     ✅ No secrets detected in utils.js\n```\n\n### Scan Staged Changes\n\n**When to use**: The user wants to check git staged changes for secrets before committing.\n\n**How**: Use `git diff --cached` to get staged content, then pass it to `run_secret_scanning`.\n\n**Example (clean)**\n\n```\nYou: Check my staged changes for secrets before I commit\nAgent: I'll scan your staged changes.\n\n     ✅ No secrets found in staged changes. Safe to commit.\n```\n\n**Example (secrets detected)**\n\n```\nYou: Scan my staged changes\nAgent: I'll check your staged changes.\n\n     ⚠️ Found 1 potential secret in staged changes:\n     - database.js line 5: password value looks like a credential\n\n     Suggestion: Unstage that change, move the credential to env vars, and restage.\n```\n\n## How the Scan Works\n\nWhen you call `run_secret_scanning`:\n\n- **Input**: File contents to scan (passed as an array of strings), plus repository owner and name\n- **Process**: GitHub's secret detection scans for patterns and context that match known secret types\n- **Output**: List of potential secrets found with locations and confidence indicators\n\nThe tool works on content you provide. It doesn't need push access or special GitHub permissions.\n\n## Scanning Transparency\n\n### How Your Content Is Processed\n\nWhen you request a scan, file contents are sent to GitHub's secret detection infrastructure. The scanning happens server-side against GitHub's known secret patterns. Scan results are returned without retaining the content on GitHub servers beyond the scan request.\n\n### What to Do With Results\n\nIf secrets are found:\n\n- **Obvious hardcoded values**: Move them to environment variables or `.env` files\n- **Config files**: Check if `example.env` or documentation exists that shows the expected structure\n- **Already committed**: If the secret was already pushed, credential rotation may be needed (outside this skill's scope)\n\nIf no secrets are found:\n\n- The scan completed successfully\n- Check the output format in the scan result to make sure coverage was complete\n\n## Learn More\n\nFor more details on secret scanning, credential management, and GitHub security features:\n\n- [GitHub Secret Scanning Docs](https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcode-security\u002Fsecret-scanning): How to enable and use secret scanning on repositories\n- [Credential Management Best Practices](https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcode-security\u002Fsecret-scanning\u002Fabout-secret-scanning): Guidance on handling credentials safely\n- [GitHub Push Protection](https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcode-security\u002Fsecret-scanning\u002Fworking-with-push-protection): Preventing secrets from reaching your repository\n",{"data":36,"body":38},{"name":4,"description":6,"allowed-tools":37},"Bash(git:*) Glob Grep Read",{"type":39,"children":40},"root",[41,50,57,72,79,84,89,119,124,187,200,206,211,222,228,315,321,327,354,359,542,571,580,642,647,681,687,697,714,722,732,738,747,769,777,786,794,803,809,818,841,849,858,866,875,881,892,925,930,936,942,947,953,958,1006,1011,1024,1030,1035,1075],{"type":42,"tag":43,"props":44,"children":46},"element","h1",{"id":45},"secret-scanning-skill",[47],{"type":48,"value":49},"text","Secret Scanning Skill",{"type":42,"tag":51,"props":52,"children":54},"h2",{"id":53},"overview",[55],{"type":48,"value":56},"Overview",{"type":42,"tag":58,"props":59,"children":60},"p",{},[61,63,70],{"type":48,"value":62},"This skill uses the GitHub MCP Server's ",{"type":42,"tag":64,"props":65,"children":67},"code",{"className":66},[],[68],{"type":48,"value":69},"run_secret_scanning",{"type":48,"value":71}," tool to detect secrets in content, files, or git changes. It helps identify sensitive material like API keys, passwords, and credentials that could pose a security risk if exposed.",{"type":42,"tag":73,"props":74,"children":76},"h3",{"id":75},"what-counts-as-a-secret",[77],{"type":48,"value":78},"What counts as a secret?",{"type":42,"tag":58,"props":80,"children":81},{},[82],{"type":48,"value":83},"In this context, values that grant access, impersonate a user or service, sign requests, or decrypt protected data are generally treated as secrets.",{"type":42,"tag":58,"props":85,"children":86},{},[87],{"type":48,"value":88},"Treat these as high-confidence secret material:",{"type":42,"tag":90,"props":91,"children":92},"ul",{},[93,99,104,109,114],{"type":42,"tag":94,"props":95,"children":96},"li",{},[97],{"type":48,"value":98},"Access tokens, API keys, and bearer credentials",{"type":42,"tag":94,"props":100,"children":101},{},[102],{"type":48,"value":103},"Passwords, database DSNs with embedded credentials, and SMTP auth values",{"type":42,"tag":94,"props":105,"children":106},{},[107],{"type":48,"value":108},"Private keys, signing keys, certificates with private key blocks, and SSH keys",{"type":42,"tag":94,"props":110,"children":111},{},[112],{"type":48,"value":113},"OAuth client secrets, refresh tokens, and webhook secrets",{"type":42,"tag":94,"props":115,"children":116},{},[117],{"type":48,"value":118},"Cloud credentials (AWS\u002FGCP\u002FAzure) and CI\u002FCD deployment credentials",{"type":42,"tag":58,"props":120,"children":121},{},[122],{"type":48,"value":123},"Prefer context, not just regex:",{"type":42,"tag":90,"props":125,"children":126},{},[127,177,182],{"type":42,"tag":94,"props":128,"children":129},{},[130,132,138,140,146,147,153,154,160,161,167,169,175],{"type":48,"value":131},"Values near names like ",{"type":42,"tag":64,"props":133,"children":135},{"className":134},[],[136],{"type":48,"value":137},"password",{"type":48,"value":139},", ",{"type":42,"tag":64,"props":141,"children":143},{"className":142},[],[144],{"type":48,"value":145},"token",{"type":48,"value":139},{"type":42,"tag":64,"props":148,"children":150},{"className":149},[],[151],{"type":48,"value":152},"secret",{"type":48,"value":139},{"type":42,"tag":64,"props":155,"children":157},{"className":156},[],[158],{"type":48,"value":159},"client_secret",{"type":48,"value":139},{"type":42,"tag":64,"props":162,"children":164},{"className":163},[],[165],{"type":48,"value":166},"private_key",{"type":48,"value":168},", or ",{"type":42,"tag":64,"props":170,"children":172},{"className":171},[],[173],{"type":48,"value":174},"authorization",{"type":48,"value":176}," are higher risk",{"type":42,"tag":94,"props":178,"children":179},{},[180],{"type":48,"value":181},"Long high-entropy strings in config files, scripts, and test fixtures deserve review even if unlabeled",{"type":42,"tag":94,"props":183,"children":184},{},[185],{"type":48,"value":186},"Treat uncertain findings as sensitive until verified",{"type":42,"tag":58,"props":188,"children":189},{},[190,192,198],{"type":48,"value":191},"Not everything that looks random is a secret. Example placeholders such as ",{"type":42,"tag":64,"props":193,"children":195},{"className":194},[],[196],{"type":48,"value":197},"YOUR_API_KEY_HERE",{"type":48,"value":199},", obvious test stubs, and documented sample values can be false positives.",{"type":42,"tag":73,"props":201,"children":203},{"id":202},"why-this-is-important",[204],{"type":48,"value":205},"Why this is important",{"type":42,"tag":58,"props":207,"children":208},{},[209],{"type":48,"value":210},"This skill scans for secrets that could compromise security if leaked. A committed secret can persist in git history, trigger incident response, and block deployment at push protection checks.",{"type":42,"tag":58,"props":212,"children":213},{},[214,220],{"type":42,"tag":215,"props":216,"children":217},"strong",{},[218],{"type":48,"value":219},"Important",{"type":48,"value":221},": Only use this skill when a user explicitly asks to scan content or check for secrets. Do not run secret scanning unprompted or as part of general workflows.",{"type":42,"tag":51,"props":223,"children":225},{"id":224},"common-scenarios",[226],{"type":48,"value":227},"Common Scenarios",{"type":42,"tag":229,"props":230,"children":231},"table",{},[232,256],{"type":42,"tag":233,"props":234,"children":235},"thead",{},[236],{"type":42,"tag":237,"props":238,"children":239},"tr",{},[240,246,251],{"type":42,"tag":241,"props":242,"children":243},"th",{},[244],{"type":48,"value":245},"User goal",{"type":42,"tag":241,"props":247,"children":248},{},[249],{"type":48,"value":250},"How to respond",{"type":42,"tag":241,"props":252,"children":253},{},[254],{"type":48,"value":255},"Tools needed",{"type":42,"tag":257,"props":258,"children":259},"tbody",{},[260,279,297],{"type":42,"tag":237,"props":261,"children":262},{},[263,269,274],{"type":42,"tag":264,"props":265,"children":266},"td",{},[267],{"type":48,"value":268},"Check a config snippet or code paste",{"type":42,"tag":264,"props":270,"children":271},{},[272],{"type":48,"value":273},"Scan as content",{"type":42,"tag":264,"props":275,"children":276},{},[277],{"type":48,"value":278},"MCP",{"type":42,"tag":237,"props":280,"children":281},{},[282,287,292],{"type":42,"tag":264,"props":283,"children":284},{},[285],{"type":48,"value":286},"Check a specific file in the repo",{"type":42,"tag":264,"props":288,"children":289},{},[290],{"type":48,"value":291},"Read file, then scan",{"type":42,"tag":264,"props":293,"children":294},{},[295],{"type":48,"value":296},"Read + MCP",{"type":42,"tag":237,"props":298,"children":299},{},[300,305,310],{"type":42,"tag":264,"props":301,"children":302},{},[303],{"type":48,"value":304},"Check all staged changes before commit",{"type":42,"tag":264,"props":306,"children":307},{},[308],{"type":48,"value":309},"Get diff, then scan",{"type":42,"tag":264,"props":311,"children":312},{},[313],{"type":48,"value":314},"Bash(git:*) + MCP",{"type":42,"tag":51,"props":316,"children":318},{"id":317},"installation",[319],{"type":48,"value":320},"Installation",{"type":42,"tag":73,"props":322,"children":324},{"id":323},"prerequisites-inputs",[325],{"type":48,"value":326},"Prerequisites & Inputs",{"type":42,"tag":58,"props":328,"children":329},{},[330,335,337,343,345,352],{"type":42,"tag":215,"props":331,"children":332},{},[333],{"type":48,"value":334},"GitHub MCP Server",{"type":48,"value":336},": The skill requires the GitHub MCP Server with the ",{"type":42,"tag":64,"props":338,"children":340},{"className":339},[],[341],{"type":48,"value":342},"secret_protection",{"type":48,"value":344}," toolset enabled. This repository includes a default ",{"type":42,"tag":346,"props":347,"children":349},"a",{"href":348},".\u002F..\u002F..\u002F.mcp.json",[350],{"type":48,"value":351},".mcp.json",{"type":48,"value":353}," configured for the GitHub MCP Server, allowing the skill to communicate with it out of the box.",{"type":42,"tag":58,"props":355,"children":356},{},[357],{"type":48,"value":358},"Configure in your MCP settings:",{"type":42,"tag":360,"props":361,"children":366},"pre",{"className":362,"code":363,"language":364,"meta":365,"style":365},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"mcpServers\": {\n    \"github\": {\n      \"type\": \"http\",\n      \"url\": \"https:\u002F\u002Fapi.githubcopilot.com\u002Fmcp\u002F\"\n    }\n  }\n}\n","json","",[367],{"type":42,"tag":64,"props":368,"children":369},{"__ignoreMap":365},[370,382,412,438,480,515,524,533],{"type":42,"tag":371,"props":372,"children":375},"span",{"class":373,"line":374},"line",1,[376],{"type":42,"tag":371,"props":377,"children":379},{"style":378},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[380],{"type":48,"value":381},"{\n",{"type":42,"tag":371,"props":383,"children":385},{"class":373,"line":384},2,[386,391,397,402,407],{"type":42,"tag":371,"props":387,"children":388},{"style":378},[389],{"type":48,"value":390},"  \"",{"type":42,"tag":371,"props":392,"children":394},{"style":393},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[395],{"type":48,"value":396},"mcpServers",{"type":42,"tag":371,"props":398,"children":399},{"style":378},[400],{"type":48,"value":401},"\"",{"type":42,"tag":371,"props":403,"children":404},{"style":378},[405],{"type":48,"value":406},":",{"type":42,"tag":371,"props":408,"children":409},{"style":378},[410],{"type":48,"value":411}," {\n",{"type":42,"tag":371,"props":413,"children":415},{"class":373,"line":414},3,[416,421,426,430,434],{"type":42,"tag":371,"props":417,"children":418},{"style":378},[419],{"type":48,"value":420},"    \"",{"type":42,"tag":371,"props":422,"children":424},{"style":423},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[425],{"type":48,"value":8},{"type":42,"tag":371,"props":427,"children":428},{"style":378},[429],{"type":48,"value":401},{"type":42,"tag":371,"props":431,"children":432},{"style":378},[433],{"type":48,"value":406},{"type":42,"tag":371,"props":435,"children":436},{"style":378},[437],{"type":48,"value":411},{"type":42,"tag":371,"props":439,"children":440},{"class":373,"line":24},[441,446,452,456,460,465,471,475],{"type":42,"tag":371,"props":442,"children":443},{"style":378},[444],{"type":48,"value":445},"      \"",{"type":42,"tag":371,"props":447,"children":449},{"style":448},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[450],{"type":48,"value":451},"type",{"type":42,"tag":371,"props":453,"children":454},{"style":378},[455],{"type":48,"value":401},{"type":42,"tag":371,"props":457,"children":458},{"style":378},[459],{"type":48,"value":406},{"type":42,"tag":371,"props":461,"children":462},{"style":378},[463],{"type":48,"value":464}," \"",{"type":42,"tag":371,"props":466,"children":468},{"style":467},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[469],{"type":48,"value":470},"http",{"type":42,"tag":371,"props":472,"children":473},{"style":378},[474],{"type":48,"value":401},{"type":42,"tag":371,"props":476,"children":477},{"style":378},[478],{"type":48,"value":479},",\n",{"type":42,"tag":371,"props":481,"children":483},{"class":373,"line":482},5,[484,488,493,497,501,505,510],{"type":42,"tag":371,"props":485,"children":486},{"style":378},[487],{"type":48,"value":445},{"type":42,"tag":371,"props":489,"children":490},{"style":448},[491],{"type":48,"value":492},"url",{"type":42,"tag":371,"props":494,"children":495},{"style":378},[496],{"type":48,"value":401},{"type":42,"tag":371,"props":498,"children":499},{"style":378},[500],{"type":48,"value":406},{"type":42,"tag":371,"props":502,"children":503},{"style":378},[504],{"type":48,"value":464},{"type":42,"tag":371,"props":506,"children":507},{"style":467},[508],{"type":48,"value":509},"https:\u002F\u002Fapi.githubcopilot.com\u002Fmcp\u002F",{"type":42,"tag":371,"props":511,"children":512},{"style":378},[513],{"type":48,"value":514},"\"\n",{"type":42,"tag":371,"props":516,"children":518},{"class":373,"line":517},6,[519],{"type":42,"tag":371,"props":520,"children":521},{"style":378},[522],{"type":48,"value":523},"    }\n",{"type":42,"tag":371,"props":525,"children":527},{"class":373,"line":526},7,[528],{"type":42,"tag":371,"props":529,"children":530},{"style":378},[531],{"type":48,"value":532},"  }\n",{"type":42,"tag":371,"props":534,"children":536},{"class":373,"line":535},8,[537],{"type":42,"tag":371,"props":538,"children":539},{"style":378},[540],{"type":48,"value":541},"}\n",{"type":42,"tag":543,"props":544,"children":545},"blockquote",{},[546],{"type":42,"tag":58,"props":547,"children":548},{},[549,554,556,562,564,569],{"type":42,"tag":215,"props":550,"children":551},{},[552],{"type":48,"value":553},"Note:",{"type":48,"value":555}," Cursor uses ",{"type":42,"tag":64,"props":557,"children":559},{"className":558},[],[560],{"type":48,"value":561},"servers",{"type":48,"value":563}," instead of ",{"type":42,"tag":64,"props":565,"children":567},{"className":566},[],[568],{"type":48,"value":396},{"type":48,"value":570}," as the top-level key.",{"type":42,"tag":58,"props":572,"children":573},{},[574,579],{"type":42,"tag":215,"props":575,"children":576},{},[577],{"type":48,"value":578},"Required information for scanning",{"type":48,"value":406},{"type":42,"tag":90,"props":581,"children":582},{},[583,601,616],{"type":42,"tag":94,"props":584,"children":585},{},[586,591,593,599],{"type":42,"tag":215,"props":587,"children":588},{},[589],{"type":48,"value":590},"Repository owner",{"type":48,"value":592},": Usually available from ",{"type":42,"tag":64,"props":594,"children":596},{"className":595},[],[597],{"type":48,"value":598},"git remote get-url origin",{"type":48,"value":600}," or ask the user",{"type":42,"tag":94,"props":602,"children":603},{},[604,609,610,615],{"type":42,"tag":215,"props":605,"children":606},{},[607],{"type":48,"value":608},"Repository name",{"type":48,"value":592},{"type":42,"tag":64,"props":611,"children":613},{"className":612},[],[614],{"type":48,"value":598},{"type":48,"value":600},{"type":42,"tag":94,"props":617,"children":618},{},[619,624,626,632,634,640],{"type":42,"tag":215,"props":620,"children":621},{},[622],{"type":48,"value":623},"Content to scan",{"type":48,"value":625},": Either a code snippet from the user, file content (read using the ",{"type":42,"tag":64,"props":627,"children":629},{"className":628},[],[630],{"type":48,"value":631},"Read",{"type":48,"value":633}," tool), or git diff output (from ",{"type":42,"tag":64,"props":635,"children":637},{"className":636},[],[638],{"type":48,"value":639},"git diff",{"type":48,"value":641},")",{"type":42,"tag":58,"props":643,"children":644},{},[645],{"type":48,"value":646},"If the user doesn't provide repository owner and repository name, ask for them before running the scan.",{"type":42,"tag":58,"props":648,"children":649},{},[650,655,657,663,665,671,673,679],{"type":42,"tag":215,"props":651,"children":652},{},[653],{"type":48,"value":654},"What NOT to scan",{"type":48,"value":656},": By default, avoid scanning large generated or vendor content (for example: ",{"type":42,"tag":64,"props":658,"children":660},{"className":659},[],[661],{"type":48,"value":662},"node_modules\u002F",{"type":48,"value":664},", build artifacts, compiled assets, or other machine-generated files) for performance and noise reduction. Files listed in ",{"type":42,"tag":64,"props":666,"children":668},{"className":667},[],[669],{"type":48,"value":670},".gitignore",{"type":48,"value":672}," may still contain secrets (such as ",{"type":42,"tag":64,"props":674,"children":676},{"className":675},[],[677],{"type":48,"value":678},".env",{"type":48,"value":680}," or local config), so only skip them if the user agrees; if the user explicitly asks to scan them, include them in the scan.",{"type":42,"tag":73,"props":682,"children":684},{"id":683},"scan-content",[685],{"type":48,"value":686},"Scan Content",{"type":42,"tag":58,"props":688,"children":689},{},[690,695],{"type":42,"tag":215,"props":691,"children":692},{},[693],{"type":48,"value":694},"When to use",{"type":48,"value":696},": The user provides text or code snippets they want checked for secrets.",{"type":42,"tag":58,"props":698,"children":699},{},[700,705,707,712],{"type":42,"tag":215,"props":701,"children":702},{},[703],{"type":48,"value":704},"How",{"type":48,"value":706},": Use the ",{"type":42,"tag":64,"props":708,"children":710},{"className":709},[],[711],{"type":48,"value":69},{"type":48,"value":713}," tool with the content as input (as a single-item array).",{"type":42,"tag":58,"props":715,"children":716},{},[717],{"type":42,"tag":215,"props":718,"children":719},{},[720],{"type":48,"value":721},"Example",{"type":42,"tag":360,"props":723,"children":727},{"className":724,"code":726,"language":48},[725],"language-text","You: Check if this config snippet has secrets\nUser provides:\nDB_PASSWORD=MyP@ssw0rd123\nAPI_KEY=abc123xyz\n\nAgent: I'll scan that for secrets.\n\n     ⚠️ Found 2 potential secret(s):\n     1. DB_PASSWORD value looks like a password\n     2. API_KEY value looks like an API key\n\n     Consider replacing hardcoded values with environment variables.\n",[728],{"type":42,"tag":64,"props":729,"children":730},{"__ignoreMap":365},[731],{"type":48,"value":726},{"type":42,"tag":73,"props":733,"children":735},{"id":734},"scan-files",[736],{"type":48,"value":737},"Scan File(s)",{"type":42,"tag":58,"props":739,"children":740},{},[741,745],{"type":42,"tag":215,"props":742,"children":743},{},[744],{"type":48,"value":694},{"type":48,"value":746},": The user asks to check specific files in the repository for secrets.",{"type":42,"tag":58,"props":748,"children":749},{},[750,754,755,760,762,767],{"type":42,"tag":215,"props":751,"children":752},{},[753],{"type":48,"value":704},{"type":48,"value":706},{"type":42,"tag":64,"props":756,"children":758},{"className":757},[],[759],{"type":48,"value":631},{"type":48,"value":761}," tool to get file contents, then pass them to ",{"type":42,"tag":64,"props":763,"children":765},{"className":764},[],[766],{"type":48,"value":69},{"type":48,"value":768},".",{"type":42,"tag":58,"props":770,"children":771},{},[772],{"type":42,"tag":215,"props":773,"children":774},{},[775],{"type":48,"value":776},"Example (secrets found)",{"type":42,"tag":360,"props":778,"children":781},{"className":779,"code":780,"language":48},[725],"You: Check if config.py has secrets\nAgent: I'll read and scan that file.\n\n     ⚠️ Found 1 potential secret:\n     - Line 10: database_password value looks like a password\n\n     Suggestion: Move to environment variable or .env file.\n",[782],{"type":42,"tag":64,"props":783,"children":784},{"__ignoreMap":365},[785],{"type":48,"value":780},{"type":42,"tag":58,"props":787,"children":788},{},[789],{"type":42,"tag":215,"props":790,"children":791},{},[792],{"type":48,"value":793},"Example (no secrets found)",{"type":42,"tag":360,"props":795,"children":798},{"className":796,"code":797,"language":48},[725],"You: Check if utils.js has any secrets\nAgent: I'll read and scan that file.\n\n     ✅ No secrets detected in utils.js\n",[799],{"type":42,"tag":64,"props":800,"children":801},{"__ignoreMap":365},[802],{"type":48,"value":797},{"type":42,"tag":73,"props":804,"children":806},{"id":805},"scan-staged-changes",[807],{"type":48,"value":808},"Scan Staged Changes",{"type":42,"tag":58,"props":810,"children":811},{},[812,816],{"type":42,"tag":215,"props":813,"children":814},{},[815],{"type":48,"value":694},{"type":48,"value":817},": The user wants to check git staged changes for secrets before committing.",{"type":42,"tag":58,"props":819,"children":820},{},[821,825,827,833,835,840],{"type":42,"tag":215,"props":822,"children":823},{},[824],{"type":48,"value":704},{"type":48,"value":826},": Use ",{"type":42,"tag":64,"props":828,"children":830},{"className":829},[],[831],{"type":48,"value":832},"git diff --cached",{"type":48,"value":834}," to get staged content, then pass it to ",{"type":42,"tag":64,"props":836,"children":838},{"className":837},[],[839],{"type":48,"value":69},{"type":48,"value":768},{"type":42,"tag":58,"props":842,"children":843},{},[844],{"type":42,"tag":215,"props":845,"children":846},{},[847],{"type":48,"value":848},"Example (clean)",{"type":42,"tag":360,"props":850,"children":853},{"className":851,"code":852,"language":48},[725],"You: Check my staged changes for secrets before I commit\nAgent: I'll scan your staged changes.\n\n     ✅ No secrets found in staged changes. Safe to commit.\n",[854],{"type":42,"tag":64,"props":855,"children":856},{"__ignoreMap":365},[857],{"type":48,"value":852},{"type":42,"tag":58,"props":859,"children":860},{},[861],{"type":42,"tag":215,"props":862,"children":863},{},[864],{"type":48,"value":865},"Example (secrets detected)",{"type":42,"tag":360,"props":867,"children":870},{"className":868,"code":869,"language":48},[725],"You: Scan my staged changes\nAgent: I'll check your staged changes.\n\n     ⚠️ Found 1 potential secret in staged changes:\n     - database.js line 5: password value looks like a credential\n\n     Suggestion: Unstage that change, move the credential to env vars, and restage.\n",[871],{"type":42,"tag":64,"props":872,"children":873},{"__ignoreMap":365},[874],{"type":48,"value":869},{"type":42,"tag":51,"props":876,"children":878},{"id":877},"how-the-scan-works",[879],{"type":48,"value":880},"How the Scan Works",{"type":42,"tag":58,"props":882,"children":883},{},[884,886,891],{"type":48,"value":885},"When you call ",{"type":42,"tag":64,"props":887,"children":889},{"className":888},[],[890],{"type":48,"value":69},{"type":48,"value":406},{"type":42,"tag":90,"props":893,"children":894},{},[895,905,915],{"type":42,"tag":94,"props":896,"children":897},{},[898,903],{"type":42,"tag":215,"props":899,"children":900},{},[901],{"type":48,"value":902},"Input",{"type":48,"value":904},": File contents to scan (passed as an array of strings), plus repository owner and name",{"type":42,"tag":94,"props":906,"children":907},{},[908,913],{"type":42,"tag":215,"props":909,"children":910},{},[911],{"type":48,"value":912},"Process",{"type":48,"value":914},": GitHub's secret detection scans for patterns and context that match known secret types",{"type":42,"tag":94,"props":916,"children":917},{},[918,923],{"type":42,"tag":215,"props":919,"children":920},{},[921],{"type":48,"value":922},"Output",{"type":48,"value":924},": List of potential secrets found with locations and confidence indicators",{"type":42,"tag":58,"props":926,"children":927},{},[928],{"type":48,"value":929},"The tool works on content you provide. It doesn't need push access or special GitHub permissions.",{"type":42,"tag":51,"props":931,"children":933},{"id":932},"scanning-transparency",[934],{"type":48,"value":935},"Scanning Transparency",{"type":42,"tag":73,"props":937,"children":939},{"id":938},"how-your-content-is-processed",[940],{"type":48,"value":941},"How Your Content Is Processed",{"type":42,"tag":58,"props":943,"children":944},{},[945],{"type":48,"value":946},"When you request a scan, file contents are sent to GitHub's secret detection infrastructure. The scanning happens server-side against GitHub's known secret patterns. Scan results are returned without retaining the content on GitHub servers beyond the scan request.",{"type":42,"tag":73,"props":948,"children":950},{"id":949},"what-to-do-with-results",[951],{"type":48,"value":952},"What to Do With Results",{"type":42,"tag":58,"props":954,"children":955},{},[956],{"type":48,"value":957},"If secrets are found:",{"type":42,"tag":90,"props":959,"children":960},{},[961,978,996],{"type":42,"tag":94,"props":962,"children":963},{},[964,969,971,976],{"type":42,"tag":215,"props":965,"children":966},{},[967],{"type":48,"value":968},"Obvious hardcoded values",{"type":48,"value":970},": Move them to environment variables or ",{"type":42,"tag":64,"props":972,"children":974},{"className":973},[],[975],{"type":48,"value":678},{"type":48,"value":977}," files",{"type":42,"tag":94,"props":979,"children":980},{},[981,986,988,994],{"type":42,"tag":215,"props":982,"children":983},{},[984],{"type":48,"value":985},"Config files",{"type":48,"value":987},": Check if ",{"type":42,"tag":64,"props":989,"children":991},{"className":990},[],[992],{"type":48,"value":993},"example.env",{"type":48,"value":995}," or documentation exists that shows the expected structure",{"type":42,"tag":94,"props":997,"children":998},{},[999,1004],{"type":42,"tag":215,"props":1000,"children":1001},{},[1002],{"type":48,"value":1003},"Already committed",{"type":48,"value":1005},": If the secret was already pushed, credential rotation may be needed (outside this skill's scope)",{"type":42,"tag":58,"props":1007,"children":1008},{},[1009],{"type":48,"value":1010},"If no secrets are found:",{"type":42,"tag":90,"props":1012,"children":1013},{},[1014,1019],{"type":42,"tag":94,"props":1015,"children":1016},{},[1017],{"type":48,"value":1018},"The scan completed successfully",{"type":42,"tag":94,"props":1020,"children":1021},{},[1022],{"type":48,"value":1023},"Check the output format in the scan result to make sure coverage was complete",{"type":42,"tag":51,"props":1025,"children":1027},{"id":1026},"learn-more",[1028],{"type":48,"value":1029},"Learn More",{"type":42,"tag":58,"props":1031,"children":1032},{},[1033],{"type":48,"value":1034},"For more details on secret scanning, credential management, and GitHub security features:",{"type":42,"tag":90,"props":1036,"children":1037},{},[1038,1051,1063],{"type":42,"tag":94,"props":1039,"children":1040},{},[1041,1049],{"type":42,"tag":346,"props":1042,"children":1046},{"href":1043,"rel":1044},"https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcode-security\u002Fsecret-scanning",[1045],"nofollow",[1047],{"type":48,"value":1048},"GitHub Secret Scanning Docs",{"type":48,"value":1050},": How to enable and use secret scanning on repositories",{"type":42,"tag":94,"props":1052,"children":1053},{},[1054,1061],{"type":42,"tag":346,"props":1055,"children":1058},{"href":1056,"rel":1057},"https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcode-security\u002Fsecret-scanning\u002Fabout-secret-scanning",[1045],[1059],{"type":48,"value":1060},"Credential Management Best Practices",{"type":48,"value":1062},": Guidance on handling credentials safely",{"type":42,"tag":94,"props":1064,"children":1065},{},[1066,1073],{"type":42,"tag":346,"props":1067,"children":1070},{"href":1068,"rel":1069},"https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcode-security\u002Fsecret-scanning\u002Fworking-with-push-protection",[1045],[1071],{"type":48,"value":1072},"GitHub Push Protection",{"type":48,"value":1074},": Preventing secrets from reaching your repository",{"type":42,"tag":1076,"props":1077,"children":1078},"style",{},[1079],{"type":48,"value":1080},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1082,"total":384},[1083,1096],{"slug":1084,"name":1084,"fn":1085,"description":1086,"org":1087,"tags":1088,"stars":20,"repoUrl":21,"updatedAt":1095},"dependency-scanning","scan dependencies for known vulnerabilities","Scan repository dependencies for known vulnerabilities using the GitHub MCP Server's Dependabot toolset and the GitHub Advisory Database. Use when asked to check dependency security, audit lockfiles, or verify packages before merging.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1089,1090,1091,1092],{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"name":1093,"slug":1094,"type":15},"Testing","testing","2026-06-10T07:32:59.464749",{"slug":4,"name":4,"fn":5,"description":6,"org":1097,"tags":1098,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1099,1100,1101],{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"items":1103,"total":1282},[1104,1128,1146,1162,1176,1192,1206,1218,1230,1242,1258,1270],{"slug":1105,"name":1105,"fn":1106,"description":1107,"org":1108,"tags":1109,"stars":1125,"repoUrl":1126,"updatedAt":1127},"qdrant-horizontal-scaling","guide Qdrant horizontal scaling decisions","Diagnoses and guides Qdrant horizontal scaling decisions. Use when someone asks 'vertical or horizontal?', 'how many nodes?', 'how many shards?', 'how to add nodes', 'resharding', 'data doesn't fit', or 'need more capacity'. Also use when data growth outpaces current deployment.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1110,1113,1116,1119,1122],{"name":1111,"slug":1112,"type":15},"AI Infrastructure","ai-infrastructure",{"name":1114,"slug":1115,"type":15},"Architecture","architecture",{"name":1117,"slug":1118,"type":15},"Capacity Planning","capacity-planning",{"name":1120,"slug":1121,"type":15},"Database","database",{"name":1123,"slug":1124,"type":15},"Qdrant","qdrant",36978,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot","2026-04-18T04:46:16.349561",{"slug":1129,"name":1129,"fn":1130,"description":1131,"org":1132,"tags":1133,"stars":1125,"repoUrl":1126,"updatedAt":1145},"qdrant-indexing-performance-optimization","optimize Qdrant indexing performance","Diagnoses and fixes slow Qdrant indexing and data ingestion. Use when someone reports 'uploads are slow', 'indexing takes forever', 'optimizer is stuck', 'HNSW build time too long', or 'data uploaded but search is bad'. Also use when optimizer status shows errors, segments won't merge, or indexing threshold questions arise.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1134,1137,1138,1141,1144],{"name":1135,"slug":1136,"type":15},"Data Engineering","data-engineering",{"name":1120,"slug":1121,"type":15},{"name":1139,"slug":1140,"type":15},"ETL","etl",{"name":1142,"slug":1143,"type":15},"Performance","performance",{"name":1123,"slug":1124,"type":15},"2026-04-18T04:46:02.766357",{"slug":1147,"name":1147,"fn":1148,"description":1149,"org":1150,"tags":1151,"stars":1125,"repoUrl":1126,"updatedAt":1161},"qdrant-memory-usage-optimization","optimize Qdrant memory usage","Diagnoses and reduces Qdrant memory usage. Use when someone reports 'memory too high', 'RAM keeps growing', 'node crashed', 'out of memory', 'memory leak', or asks 'why is memory usage so high?', 'how to reduce RAM?'. Also use when memory doesn't match calculations, quantization didn't help, or nodes crash during recovery.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1152,1155,1156,1159,1160],{"name":1153,"slug":1154,"type":15},"Cost Optimization","cost-optimization",{"name":1120,"slug":1121,"type":15},{"name":1157,"slug":1158,"type":15},"Observability","observability",{"name":1142,"slug":1143,"type":15},{"name":1123,"slug":1124,"type":15},"2026-04-18T04:46:01.525023",{"slug":1163,"name":1163,"fn":1164,"description":1165,"org":1166,"tags":1167,"stars":1125,"repoUrl":1126,"updatedAt":1175},"qdrant-minimize-latency","minimize Qdrant query latency","Guides Qdrant query latency optimization. Use when someone asks 'search is slow', 'how to reduce latency', 'p99 is too high', 'tail latency', 'single query too slow', 'how to make search faster', or 'latency spikes'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1168,1169,1170,1171,1172],{"name":1114,"slug":1115,"type":15},{"name":1120,"slug":1121,"type":15},{"name":1142,"slug":1143,"type":15},{"name":1123,"slug":1124,"type":15},{"name":1173,"slug":1174,"type":15},"Search","search","2026-04-18T04:46:10.126667",{"slug":1177,"name":1177,"fn":1178,"description":1179,"org":1180,"tags":1181,"stars":1125,"repoUrl":1126,"updatedAt":1191},"qdrant-monitoring-debugging","debug Qdrant production issues with metrics","Diagnoses Qdrant production issues using metrics and observability tools. Use when someone reports 'optimizer stuck', 'indexing too slow', 'memory too high', 'OOM crash', 'queries are slow', 'latency spike', or 'search was fast now it's slow'. Also use when performance degrades without obvious config changes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1182,1185,1188,1189,1190],{"name":1183,"slug":1184,"type":15},"Debugging","debugging",{"name":1186,"slug":1187,"type":15},"Monitoring","monitoring",{"name":1157,"slug":1158,"type":15},{"name":1142,"slug":1143,"type":15},{"name":1123,"slug":1124,"type":15},"2026-04-18T04:46:06.450784",{"slug":1193,"name":1193,"fn":1194,"description":1195,"org":1196,"tags":1197,"stars":1125,"repoUrl":1126,"updatedAt":1205},"qdrant-monitoring-setup","set up Qdrant monitoring and alerting","Guides Qdrant monitoring setup including Prometheus scraping, health probes, Hybrid Cloud metrics, alerting, and log centralization. Use when someone asks 'how to set up monitoring', 'Prometheus config', 'Grafana dashboard', 'health check endpoints', 'how to scrape Hybrid Cloud', 'what alerts to set', 'how to centralize logs', or 'audit logging'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1198,1199,1200,1201,1202],{"name":1111,"slug":1112,"type":15},{"name":1186,"slug":1187,"type":15},{"name":1157,"slug":1158,"type":15},{"name":1123,"slug":1124,"type":15},{"name":1203,"slug":1204,"type":15},"SRE","sre","2026-04-18T04:46:05.217192",{"slug":1207,"name":1207,"fn":1208,"description":1209,"org":1210,"tags":1211,"stars":1125,"repoUrl":1126,"updatedAt":1217},"qdrant-scaling-data-volume","scale Qdrant data volume","Guides Qdrant data volume scaling decisions. Use when someone asks 'data doesn't fit on one node', 'too much data', 'need more storage', 'vertical or horizontal scaling', 'tenant scaling', 'time window rotation', or 'data growth exceeds capacity'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1212,1213,1214,1215,1216],{"name":1111,"slug":1112,"type":15},{"name":1114,"slug":1115,"type":15},{"name":1117,"slug":1118,"type":15},{"name":1120,"slug":1121,"type":15},{"name":1123,"slug":1124,"type":15},"2026-04-18T04:46:07.684464",{"slug":1219,"name":1219,"fn":1220,"description":1221,"org":1222,"tags":1223,"stars":1125,"repoUrl":1126,"updatedAt":1229},"qdrant-scaling-qps","scale Qdrant query throughput","Guides Qdrant query throughput (QPS) scaling. Use when someone asks 'how to increase QPS', 'need more throughput', 'queries per second too low', 'batch search', 'read replicas', or 'how to handle more concurrent queries'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1224,1225,1226,1227,1228],{"name":1111,"slug":1112,"type":15},{"name":1114,"slug":1115,"type":15},{"name":1120,"slug":1121,"type":15},{"name":1142,"slug":1143,"type":15},{"name":1123,"slug":1124,"type":15},"2026-04-18T04:46:08.905219",{"slug":1231,"name":1231,"fn":1232,"description":1233,"org":1234,"tags":1235,"stars":1125,"repoUrl":1126,"updatedAt":1241},"qdrant-scaling-query-volume","scale Qdrant query volume and pagination","Guides Qdrant query volume scaling. Use when someone asks 'query returns too many results', 'scroll performance', 'large limit values', 'paginating search results', 'fetching many vectors', or 'high cardinality results'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1236,1237,1238,1239,1240],{"name":1114,"slug":1115,"type":15},{"name":1120,"slug":1121,"type":15},{"name":1142,"slug":1143,"type":15},{"name":1123,"slug":1124,"type":15},{"name":1173,"slug":1174,"type":15},"2026-04-18T04:46:11.371326",{"slug":1243,"name":1243,"fn":1244,"description":1245,"org":1246,"tags":1247,"stars":1125,"repoUrl":1126,"updatedAt":1257},"qdrant-search-quality-diagnosis","diagnose Qdrant search quality issues","Diagnoses Qdrant search quality issues. Use when someone reports 'results are bad', 'wrong results', 'not relevant results', 'missing matches', 'recall is low', 'approximate search worse than exact', 'which embedding model', or 'quality dropped after quantization'. Also use when search quality degrades without obvious changes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1248,1251,1254,1255,1256],{"name":1249,"slug":1250,"type":15},"Analytics","analytics",{"name":1252,"slug":1253,"type":15},"Data Quality","data-quality",{"name":1183,"slug":1184,"type":15},{"name":1123,"slug":1124,"type":15},{"name":1173,"slug":1174,"type":15},"2026-04-18T04:46:17.579894",{"slug":1259,"name":1259,"fn":1260,"description":1261,"org":1262,"tags":1263,"stars":1125,"repoUrl":1126,"updatedAt":1269},"qdrant-search-speed-optimization","optimize Qdrant search speed","Diagnoses and fixes slow Qdrant search. Use when someone reports 'search is slow', 'high latency', 'queries take too long', 'low QPS', 'throughput too low', 'filtered search is slow', or 'search was fast but now it's slow'. Also use when search performance degrades after config changes or data growth.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1264,1265,1266,1267,1268],{"name":1249,"slug":1250,"type":15},{"name":1120,"slug":1121,"type":15},{"name":1142,"slug":1143,"type":15},{"name":1123,"slug":1124,"type":15},{"name":1173,"slug":1174,"type":15},"2026-04-18T04:46:03.987332",{"slug":1271,"name":1271,"fn":1272,"description":1273,"org":1274,"tags":1275,"stars":1125,"repoUrl":1126,"updatedAt":1281},"qdrant-search-strategies","select optimal Qdrant search strategies","Guides Qdrant search strategy selection. Use when someone asks 'should I use hybrid search?', 'BM25 or sparse vectors?', 'how to rerank?', 'results are not relevant', 'I don't get needed results from my dataset but they're there', 'retrieval quality is not good enough', 'results too similar', 'need diversity', 'MMR', 'relevance feedback', 'recommendation API', 'discovery API', 'ColBERT reranking', or 'missing keyword matches'",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1276,1277,1278,1279,1280],{"name":1111,"slug":1112,"type":15},{"name":1249,"slug":1250,"type":15},{"name":1114,"slug":1115,"type":15},{"name":1123,"slug":1124,"type":15},{"name":1173,"slug":1174,"type":15},"2026-04-18T04:46:18.812306",45]