[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C2MATW3P4JTGKEFA8S7J2P":3,"skill-same:01M6C2MATW3P4JTGKEFA8S7J2P":163},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":16,"sourceHtmlUrl":17,"categories":18,"keywords":35,"publishedAt":63,"linkOnly":64,"markdownContent":65,"markdownBody":66,"frontMatter":67,"refName":74,"commitSha":75,"skillDirectory":76,"forksCount":14,"repositoryHtmlUrl":77,"repositoryHomepageUrl":6,"ownerHtmlUrl":78,"ownerBlogUrl":6,"ownerDescription":79,"updatedAt":80,"install":81,"resources":93},"01M6C2MATW3P4JTGKEFA8S7J2P","seo-google",null,"Google SEO APIs: Search Console (Search Analytics, URL Inspection, Sitemaps), PageSpeed Insights v5, CrUX field data with 25-week history, Indexing API v3, and GA4 organic traffic. Provides real Google field data for Core Web Vitals, indexation status, search performance, and organic traffic trends. Use when user says \"search console\", \"GSC\", \"PageSpeed\", \"CrUX\", \"field data\", \"indexing API\", \"GA4 organic\", \"URL inspection\", or \"real CWV data\".","noirelab\u002Flinux-setup","noirelab","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F142925921?v=4","01M6C29R3FEDGFAXAT0KXY28QX","Kaíque M. Lima","01M6C29R811WX04B0GYHTH1XV6",0,"MIT","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-google\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-google\u002FSKILL.md",[19,24,27,32],{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":25,"categoryName":26,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000019","营销推广",{"categoryNo":28,"categoryName":29,"taxonomyType":30,"taxonomyTypeDesc":31},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",{"categoryNo":33,"categoryName":34,"taxonomyType":30,"taxonomyTypeDesc":31},"01JBSEEDCAT000000000000035","市场营销",[36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62],"seo","seo google","google","history","inspection","when","vitals","traffic","insights","URL","indexing","gsc","ga4","use","user","command","PageSpeed","api","core web vitals","data","search","console","core","analytics","status","web","performance","2026-11-10 10:12:30",false,"---\nname: seo-google\ndescription: >\n  Google SEO APIs: Search Console (Search Analytics, URL Inspection, Sitemaps),\n  PageSpeed Insights v5, CrUX field data with 25-week history, Indexing API v3,\n  and GA4 organic traffic. Provides real Google field data for Core Web Vitals,\n  indexation status, search performance, and organic traffic trends. Use when\n  user says \"search console\", \"GSC\", \"PageSpeed\", \"CrUX\", \"field data\",\n  \"indexing API\", \"GA4 organic\", \"URL inspection\", or \"real CWV data\".\nuser-invocable: true\nargument-hint: \"[command] [url|property]\"\nlicense: MIT\nmetadata:\n  author: AgriciDaniel\n  version: \"2.2.4\"\n  category: seo\n---\n\n# Google SEO APIs\n\nDirect access to Google's own SEO data. Bridges the gap between crawl-based\nanalysis (existing claude-seo skills) and Google's real-time field data: actual\nChrome user metrics, real indexation status, search performance, and organic traffic.\n\nAll APIs are free. Setup requires a Google Cloud project with API key and\u002For\nservice account -- run `\u002Fseo google setup` for step-by-step instructions.\n\n## Prerequisites\n\nBefore executing any command, check credentials:\n```bash\n\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run google_auth.py --check --json\n```\n\nConfig file: `~\u002F.config\u002Fclaude-seo\u002Fgoogle-api.json`\n```json\n{\n  \"service_account_path\": \"\u002Fpath\u002Fto\u002Fservice_account.json\",\n  \"api_key\": \"\u003CGOOGLE_API_KEY>\",\n  \"default_property\": \"sc-domain:example.com\",\n  \"ga4_property_id\": \"properties\u002F123456789\"\n}\n```\n\nIf missing, read `references\u002Fauth-setup.md` and walk the user through setup.\n\n### Credential Tiers\n\n| Tier | Detection | Available Commands |\n|------|-----------|-------------------|\n| **0** (API Key) | `api_key` present | `pagespeed`, `crux`, `crux-history`, `youtube`, `nlp` |\n| **1** (OAuth\u002FSA) | + OAuth token or service account | Tier 0 + `gsc`, `inspect`, `sitemaps`, `index` |\n| **2** (Full) | + `ga4_property_id` configured | Tier 1 + `ga4`, `ga4-pages` |\n| **3** (Ads) | + `ads_developer_token` + `ads_customer_id` | Tier 2 + `keywords`, `volume` |\n\nAlways communicate the detected tier before running commands.\n\n## Quick Reference\n\n| Command | What it does | Tier |\n|---------|-------------|------|\n| `\u002Fseo google setup` | Check\u002Fconfigure API credentials | -- |\n| `\u002Fseo google pagespeed \u003Curl>` | PSI Lighthouse + CrUX field data | 0 |\n| `\u002Fseo google crux \u003Curl>` | CrUX field data only (p75 metrics) | 0 |\n| `\u002Fseo google crux-history \u003Curl>` | 25-week CWV trend analysis | 0 |\n| `\u002Fseo google gsc \u003Cproperty>` | Search Console: clicks, impressions, CTR, position | 1 |\n| `\u002Fseo google inspect \u003Curl>` | URL Inspection: index status, canonical, crawl info | 1 |\n| `\u002Fseo google inspect-batch \u003Cfile>` | Batch URL Inspection from file | 1 |\n| `\u002Fseo google sitemaps \u003Cproperty>` | GSC sitemap status | 1 |\n| `\u002Fseo google index \u003Curl>` | Submit URL to Indexing API | 1 |\n| `\u002Fseo google index-batch \u003Cfile>` | Batch submit up to 200 URLs | 1 |\n| `\u002Fseo google ga4 [property-id]` | GA4 organic traffic report | 2 |\n| `\u002Fseo google ga4-pages [property-id]` | Top organic landing pages | 2 |\n| `\u002Fseo google youtube \u003Cquery>` | YouTube video search (views, likes, duration) | 0 |\n| `\u002Fseo google youtube-video \u003Cid>` | YouTube video details + top comments | 0 |\n| `\u002Fseo google nlp \u003Curl-or-text>` | NLP entity extraction + sentiment + classification | 0 |\n| `\u002Fseo google entities \u003Curl-or-text>` | Entity analysis only (for E-E-A-T) | 0 |\n| `\u002Fseo google keywords \u003Cseed>` | Keyword ideas from Google Ads Keyword Planner | 3 |\n| `\u002Fseo google volume \u003Ckeywords>` | Search volume lookup from Keyword Planner | 3 |\n| `\u002Fseo google entity \u003Cquery>` | Knowledge Graph entity check | 0 |\n| `\u002Fseo google safety \u003Curl>` | Web Risk URL safety check | 0 |\n| `\u002Fseo google quotas` | Show rate limits for all APIs | -- |\n\n---\n\n## PageSpeed + CrUX\n\n### `\u002Fseo google pagespeed \u003Curl>`\n\nCombined Lighthouse lab data + CrUX field data.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run pagespeed_check.py \u003Curl> --json`\n**Reference:** `references\u002Fpagespeed-crux-api.md`\n**Default:** Both mobile + desktop strategies, all Lighthouse categories.\n\nOutput merges lab scores (point-in-time Lighthouse) with field data (28-day\nChrome user metrics). CrUX tries URL-level first, falls back to origin-level.\n\n### `\u002Fseo google crux \u003Curl>`\n\nCrUX field data only (no Lighthouse run). Faster.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run pagespeed_check.py \u003Curl> --crux-only --json`\n\n### `\u002Fseo google crux-history \u003Curl>`\n\n25-week CrUX History trends. Shows whether CWV metrics are improving, stable, or degrading.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run crux_history.py \u003Curl> --json`\n**Reference:** `references\u002Fpagespeed-crux-api.md`\n\nOutput includes per-metric trend direction, percentage change, and weekly p75 values.\n\n---\n\n## Search Console\n\n### `\u002Fseo google gsc \u003Cproperty>`\n\nSearch Analytics: clicks, impressions, CTR, position for last 28 days.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run gsc_query.py --property \u003Cproperty> --json`\n**Reference:** `references\u002Fsearch-console-api.md`\n**Default:** 28 days, dimensions=query,page, type=web, limit=1000.\n\nIncludes quick-win detection: queries at position 4-10 with high impressions.\nThe `totals` block comes from a separate dimensionless aggregate query because\nquery-level rows can omit anonymized low-volume traffic. Treat totals as\nsite-wide only when `totals_complete` is true. `--limit` caps total returned\ndimension rows, not the size of every pagination request.\n\n> **AI surfaces in GSC (2026):**\n> - **Generative AI performance report** (launched 2026-06-03), a dedicated view of **AI Overviews + AI Mode** visibility. **Impressions only** (no clicks\u002FCTR\u002Fposition\u002Fquery); dimensions Pages\u002FCountries\u002FDevices\u002FDates (Pacific Time); 1,000-row limit; newest data preliminary; a separate Discover gen-AI report also exists. Rolling out to a subset of properties.\n> - **AI Mode already rolls into standard Performance totals** (Web search type), clicks (external-link clicks in AI Mode) and impressions are counted in the normal report, so you **cannot** cleanly split \"classic\" vs \"AI\" traffic from totals. Use the Generative AI report for impressions-only AI visibility.\n> - **Data-reliability caveat:** a GSC logging error made **impressions, CTR, and average position unreliable from 2025-05-13 to 2026-04-27** (clicks unaffected; fixed forward-only, **no backfill**). Treat impression\u002FCTR\u002Fposition trends spanning that window with caution; expect an apparent impressions drop after the fix.\n\n### `\u002Fseo google inspect \u003Curl>`\n\nURL Inspection: real indexation status from Google.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run gsc_inspect.py \u003Curl> --json`\n\nReturns: verdict (PASS\u002FFAIL), coverage state, robots.txt status, indexing state,\npage fetch state, canonical selection, mobile usability, rich results.\n\n### `\u002Fseo google inspect-batch \u003Cfile>`\n\nBatch inspection from a file (one URL per line). Rate limited to 2,000\u002Fday per site.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run gsc_inspect.py --batch \u003Cfile> --json`\n\n### `\u002Fseo google sitemaps \u003Cproperty>`\n\nList submitted sitemaps with status, errors, warnings. Sitemap contents report\nsubmitted counts only; URL Inspection API is the indexation truth for whether\nspecific URLs are indexed.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run gsc_query.py sitemaps --property \u003Cproperty> --json`\n\n---\n\n## Indexing API\n\n### `\u002Fseo google index \u003Curl>`\n\nNotify Google of a URL update.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run indexing_notify.py \u003Curl> --json`\n**Reference:** `references\u002Findexing-api.md`\n\nThe Indexing API is officially for JobPosting and BroadcastEvent\u002FVideoObject pages.\nAlways inform the user of this restriction. Daily quota: 200 publish requests.\n\n### `\u002Fseo google index-batch \u003Cfile>`\n\nBatch submit URLs from a file. Tracks quota usage.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run indexing_notify.py --batch \u003Cfile> --json`\n\n---\n\n## GA4 Traffic\n\n### `\u002Fseo google ga4 [property-id]`\n\nOrganic traffic report: daily sessions, users, pageviews, bounce rate, engagement.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run ga4_report.py --property \u003Cid> --json`\n**Reference:** `references\u002Fga4-data-api.md`\n**Default:** 28 days, filtered to Organic Search channel group.\n\n> **GA4 \"AI Assistants\" channel (live ~2026-05-13):** GA4 added a native *AI Assistants* Default Channel Group. Sessions referred by a recognized AI assistant get `medium=ai-assistant`. Google's recognized sources are **ChatGPT, Gemini, Claude, Deepseek, Copilot, Grok** and the channel **excludes** Google AI Overviews \u002F AI Mode. **Verify Perplexity separately if needed**; unsupported sources may stay in Referral, and most AI sessions arrive referrer-less and fall into **Direct**, so this channel undercounts AI traffic. Forward-only, no backfill.\n\n### `\u002Fseo google ga4-pages [property-id]`\n\nTop organic landing pages ranked by sessions.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run ga4_report.py --property \u003Cid> --report top-pages --json`\n\n---\n\n## YouTube (Video SEO)\n\nSome third-party studies report a 0.737 correlation between YouTube mentions and AI visibility. Treat it as a methodology-dependent signal. Free, API key only.\n\n### `\u002Fseo google youtube \u003Cquery>`\n\nSearch YouTube for videos. Returns title, channel, views, likes, duration.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run youtube_search.py search \"\u003Cquery>\" --json`\n**Reference:** `references\u002Fyoutube-api.md`\n**Quota:** 100 units per search (10,000 units\u002Fday free).\n\n### `\u002Fseo google youtube-video \u003Cvideo_id>`\n\nDetailed video info + tags + top 10 comments.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run youtube_search.py video \u003Cvideo_id> --json`\n**Quota:** 2 units (video details + comments).\n\n---\n\n## NLP Content Analysis\n\nGoogle NLP entity\u002Fsentiment output for internal content-quality checks. Do not treat it as Google E-E-A-T scoring.\n\n### `\u002Fseo google nlp \u003Curl-or-text>`\n\nFull NLP analysis: entities, sentiment, content classification.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run nlp_analyze.py --url \u003Curl> --json` or `--text \"...\"`\n**Reference:** `references\u002Fnlp-api.md`\n**Free tier:** 5,000 units\u002Fmonth. Requires billing enabled on GCP project.\n\n### `\u002Fseo google entities \u003Curl-or-text>`\n\nEntity extraction only (faster, less quota).\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run nlp_analyze.py --url \u003Curl> --features entities --json`\n\n---\n\n## Keyword Research (Google Ads)\n\nGold-standard keyword volume data. Requires Google Ads account.\n\n### `\u002Fseo google keywords \u003Cseed>`\n\nGenerate keyword ideas from seed terms.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run keyword_planner.py ideas \"\u003Cseed>\" --json`\n**Reference:** `references\u002Fkeyword-planner-api.md`\n**Requires:** Ads developer token + customer ID in config (Tier 3).\n\n### `\u002Fseo google volume \u003Ckeywords>`\n\nSearch volume for specific keywords (comma-separated).\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run keyword_planner.py volume \"\u003Ckw1>,\u003Ckw2>\" --json`\n\n---\n\n## Supplementary\n\n### `\u002Fseo google entity \u003Cquery>`\n\nKnowledge Graph entity check. Verifies brand presence.\n\n**Reference:** `references\u002Fsupplementary-apis.md`\nUses Knowledge Graph Search API with API key.\n\n### `\u002Fseo google safety \u003Curl>`\n\nWeb Risk API check for malware\u002Fsocial engineering flags.\n\n**Reference:** `references\u002Fsupplementary-apis.md`\n\n### `\u002Fseo google quotas`\n\nDisplay rate limits table. Read `references\u002Frate-limits-quotas.md`.\n\n---\n\n## Reports\n\nAfter any analysis command, offer to generate a PDF\u002FHTML report.\n\n### `\u002Fseo google report \u003Ctype>`\n\nGenerate a professional PDF report with charts and analytics.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run google_report.py --type \u003Ctype> --data \u003Cjson> --domain \u003Cdomain> --format pdf`\n\n| Type | Input | Output |\n|------|-------|--------|\n| `cwv-audit` | PSI + CrUX + CrUX History data | Core Web Vitals audit with gauges, timelines, distributions |\n| `gsc-performance` | GSC query data | Search Console report with query tables, quick wins |\n| `indexation` | Batch inspection data | Indexation status with coverage donut chart |\n| `full` | All data combined | Comprehensive Google SEO report (all sections) |\n\n**Workflow:**\n1. Run data collection commands (pagespeed, gsc, inspect-batch, etc.)\n2. Save JSON output to file: `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run pagespeed_check.py \u003Curl> --json > data.json`\n3. Generate report: `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run google_report.py --type cwv-audit --data data.json --domain \u003Cdomain>`\n\n**Convention:** After completing analysis, suggest: \"Generate a report? Use `\u002Fseo google report \u003Ctype>`\"\n\n---\n\n## Rate Limits\n\n| API | Per-Minute | Per-Day | Auth |\n|-----|-----------|---------|------|\n| PSI v5 | 240 QPM | 25,000 QPD | API Key |\n| CrUX + History | 150 QPM (shared) | Unlimited | API Key |\n| GSC Search Analytics | 1,200 QPM\u002Fsite | 30M QPD | Service Account |\n| GSC URL Inspection | 600 QPM | 2,000 QPD\u002Fsite | Service Account |\n| Indexing API | 380 RPM | 200 publish\u002Fday | Service Account |\n| GA4 Data API | 10 concurrent | ~25K tokens\u002Fday | Service Account |\n\n## Cross-Skill Integration\n\n- **seo-audit**: Spawns `seo-google` agent for live CWV + indexation data (conditional)\n- **seo-technical**: Uses pagespeed_check.py for real CWV field data\n- **seo-performance**: CrUX field data supplements Lighthouse lab data\n- **seo-sitemap**: GSC sitemap status shows submitted counts, errors, and warnings; use URL Inspection for indexation truth\n- **seo-content**: GSC query data informs keyword targeting\n- **seo-geo**: Use GSC Generative AI performance reports and AI Overviews\u002FAI Mode\u002FDiscover gen-AI include\u002Fexclude controls where available\n\n## Output Format\n\n- CWV metrics: traffic-light rating (Good \u002F Needs Improvement \u002F Poor)\n- Performance reports: tables with sortable columns\n- Always include data freshness note\n- Save reports as `GOOGLE-API-REPORT-{domain}.md`\n- Markdown\u002FLLM templates in `assets\u002Ftemplates\u002F`: `cwv-audit-report.md`, `gsc-performance-report.md`, `indexation-status-report.md`; distinct from `google_report.py`'s PDF pipeline\n\n## Technical Notes\n\n- INP replaced FID on March 12, 2024. Never reference FID.\n- CLS values from CrUX are string-encoded (e.g., \"0.05\"). Scripts handle parsing.\n- CrUX 404 = insufficient traffic, not an auth error.\n- Search Analytics data has 2-3 day lag.\n- `round_trip_time` replaced `effectiveConnectionType` in CrUX (Feb 2025).\n- Custom Search JSON API is closed to new customers (2025).\n\n## Error Handling\n\n| Scenario | Action |\n|----------|--------|\n| No credentials configured | Run `\u002Fseo google setup`. List Tier 0 commands that work with just an API key. |\n| Service account lacks GSC access | Report error. Instruct: add `client_email` to GSC > Settings > Users > Add. |\n| CrUX data unavailable (404) | Report insufficient Chrome traffic. Suggest PSI lab data as fallback. |\n| GA4 property not found | Report error. Show how to find property ID in GA4 Admin > Property Details. |\n| Indexing API quota exceeded | Report 200\u002Fday limit. Suggest prioritizing most important URLs. |\n| Rate limit (429) | Wait and retry with exponential backoff. Report which API hit the limit. |\n","# Google SEO APIs\n\nDirect access to Google's own SEO data. Bridges the gap between crawl-based\nanalysis (existing claude-seo skills) and Google's real-time field data: actual\nChrome user metrics, real indexation status, search performance, and organic traffic.\n\nAll APIs are free. Setup requires a Google Cloud project with API key and\u002For\nservice account -- run `\u002Fseo google setup` for step-by-step instructions.\n\n## Prerequisites\n\nBefore executing any command, check credentials:\n```bash\n\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run google_auth.py --check --json\n```\n\nConfig file: `~\u002F.config\u002Fclaude-seo\u002Fgoogle-api.json`\n```json\n{\n  \"service_account_path\": \"\u002Fpath\u002Fto\u002Fservice_account.json\",\n  \"api_key\": \"\u003CGOOGLE_API_KEY>\",\n  \"default_property\": \"sc-domain:example.com\",\n  \"ga4_property_id\": \"properties\u002F123456789\"\n}\n```\n\nIf missing, read `references\u002Fauth-setup.md` and walk the user through setup.\n\n### Credential Tiers\n\n| Tier | Detection | Available Commands |\n|------|-----------|-------------------|\n| **0** (API Key) | `api_key` present | `pagespeed`, `crux`, `crux-history`, `youtube`, `nlp` |\n| **1** (OAuth\u002FSA) | + OAuth token or service account | Tier 0 + `gsc`, `inspect`, `sitemaps`, `index` |\n| **2** (Full) | + `ga4_property_id` configured | Tier 1 + `ga4`, `ga4-pages` |\n| **3** (Ads) | + `ads_developer_token` + `ads_customer_id` | Tier 2 + `keywords`, `volume` |\n\nAlways communicate the detected tier before running commands.\n\n## Quick Reference\n\n| Command | What it does | Tier |\n|---------|-------------|------|\n| `\u002Fseo google setup` | Check\u002Fconfigure API credentials | -- |\n| `\u002Fseo google pagespeed \u003Curl>` | PSI Lighthouse + CrUX field data | 0 |\n| `\u002Fseo google crux \u003Curl>` | CrUX field data only (p75 metrics) | 0 |\n| `\u002Fseo google crux-history \u003Curl>` | 25-week CWV trend analysis | 0 |\n| `\u002Fseo google gsc \u003Cproperty>` | Search Console: clicks, impressions, CTR, position | 1 |\n| `\u002Fseo google inspect \u003Curl>` | URL Inspection: index status, canonical, crawl info | 1 |\n| `\u002Fseo google inspect-batch \u003Cfile>` | Batch URL Inspection from file | 1 |\n| `\u002Fseo google sitemaps \u003Cproperty>` | GSC sitemap status | 1 |\n| `\u002Fseo google index \u003Curl>` | Submit URL to Indexing API | 1 |\n| `\u002Fseo google index-batch \u003Cfile>` | Batch submit up to 200 URLs | 1 |\n| `\u002Fseo google ga4 [property-id]` | GA4 organic traffic report | 2 |\n| `\u002Fseo google ga4-pages [property-id]` | Top organic landing pages | 2 |\n| `\u002Fseo google youtube \u003Cquery>` | YouTube video search (views, likes, duration) | 0 |\n| `\u002Fseo google youtube-video \u003Cid>` | YouTube video details + top comments | 0 |\n| `\u002Fseo google nlp \u003Curl-or-text>` | NLP entity extraction + sentiment + classification | 0 |\n| `\u002Fseo google entities \u003Curl-or-text>` | Entity analysis only (for E-E-A-T) | 0 |\n| `\u002Fseo google keywords \u003Cseed>` | Keyword ideas from Google Ads Keyword Planner | 3 |\n| `\u002Fseo google volume \u003Ckeywords>` | Search volume lookup from Keyword Planner | 3 |\n| `\u002Fseo google entity \u003Cquery>` | Knowledge Graph entity check | 0 |\n| `\u002Fseo google safety \u003Curl>` | Web Risk URL safety check | 0 |\n| `\u002Fseo google quotas` | Show rate limits for all APIs | -- |\n\n---\n\n## PageSpeed + CrUX\n\n### `\u002Fseo google pagespeed \u003Curl>`\n\nCombined Lighthouse lab data + CrUX field data.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run pagespeed_check.py \u003Curl> --json`\n**Reference:** `references\u002Fpagespeed-crux-api.md`\n**Default:** Both mobile + desktop strategies, all Lighthouse categories.\n\nOutput merges lab scores (point-in-time Lighthouse) with field data (28-day\nChrome user metrics). CrUX tries URL-level first, falls back to origin-level.\n\n### `\u002Fseo google crux \u003Curl>`\n\nCrUX field data only (no Lighthouse run). Faster.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run pagespeed_check.py \u003Curl> --crux-only --json`\n\n### `\u002Fseo google crux-history \u003Curl>`\n\n25-week CrUX History trends. Shows whether CWV metrics are improving, stable, or degrading.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run crux_history.py \u003Curl> --json`\n**Reference:** `references\u002Fpagespeed-crux-api.md`\n\nOutput includes per-metric trend direction, percentage change, and weekly p75 values.\n\n---\n\n## Search Console\n\n### `\u002Fseo google gsc \u003Cproperty>`\n\nSearch Analytics: clicks, impressions, CTR, position for last 28 days.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run gsc_query.py --property \u003Cproperty> --json`\n**Reference:** `references\u002Fsearch-console-api.md`\n**Default:** 28 days, dimensions=query,page, type=web, limit=1000.\n\nIncludes quick-win detection: queries at position 4-10 with high impressions.\nThe `totals` block comes from a separate dimensionless aggregate query because\nquery-level rows can omit anonymized low-volume traffic. Treat totals as\nsite-wide only when `totals_complete` is true. `--limit` caps total returned\ndimension rows, not the size of every pagination request.\n\n> **AI surfaces in GSC (2026):**\n> - **Generative AI performance report** (launched 2026-06-03), a dedicated view of **AI Overviews + AI Mode** visibility. **Impressions only** (no clicks\u002FCTR\u002Fposition\u002Fquery); dimensions Pages\u002FCountries\u002FDevices\u002FDates (Pacific Time); 1,000-row limit; newest data preliminary; a separate Discover gen-AI report also exists. Rolling out to a subset of properties.\n> - **AI Mode already rolls into standard Performance totals** (Web search type), clicks (external-link clicks in AI Mode) and impressions are counted in the normal report, so you **cannot** cleanly split \"classic\" vs \"AI\" traffic from totals. Use the Generative AI report for impressions-only AI visibility.\n> - **Data-reliability caveat:** a GSC logging error made **impressions, CTR, and average position unreliable from 2025-05-13 to 2026-04-27** (clicks unaffected; fixed forward-only, **no backfill**). Treat impression\u002FCTR\u002Fposition trends spanning that window with caution; expect an apparent impressions drop after the fix.\n\n### `\u002Fseo google inspect \u003Curl>`\n\nURL Inspection: real indexation status from Google.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run gsc_inspect.py \u003Curl> --json`\n\nReturns: verdict (PASS\u002FFAIL), coverage state, robots.txt status, indexing state,\npage fetch state, canonical selection, mobile usability, rich results.\n\n### `\u002Fseo google inspect-batch \u003Cfile>`\n\nBatch inspection from a file (one URL per line). Rate limited to 2,000\u002Fday per site.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run gsc_inspect.py --batch \u003Cfile> --json`\n\n### `\u002Fseo google sitemaps \u003Cproperty>`\n\nList submitted sitemaps with status, errors, warnings. Sitemap contents report\nsubmitted counts only; URL Inspection API is the indexation truth for whether\nspecific URLs are indexed.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run gsc_query.py sitemaps --property \u003Cproperty> --json`\n\n---\n\n## Indexing API\n\n### `\u002Fseo google index \u003Curl>`\n\nNotify Google of a URL update.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run indexing_notify.py \u003Curl> --json`\n**Reference:** `references\u002Findexing-api.md`\n\nThe Indexing API is officially for JobPosting and BroadcastEvent\u002FVideoObject pages.\nAlways inform the user of this restriction. Daily quota: 200 publish requests.\n\n### `\u002Fseo google index-batch \u003Cfile>`\n\nBatch submit URLs from a file. Tracks quota usage.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run indexing_notify.py --batch \u003Cfile> --json`\n\n---\n\n## GA4 Traffic\n\n### `\u002Fseo google ga4 [property-id]`\n\nOrganic traffic report: daily sessions, users, pageviews, bounce rate, engagement.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run ga4_report.py --property \u003Cid> --json`\n**Reference:** `references\u002Fga4-data-api.md`\n**Default:** 28 days, filtered to Organic Search channel group.\n\n> **GA4 \"AI Assistants\" channel (live ~2026-05-13):** GA4 added a native *AI Assistants* Default Channel Group. Sessions referred by a recognized AI assistant get `medium=ai-assistant`. Google's recognized sources are **ChatGPT, Gemini, Claude, Deepseek, Copilot, Grok** and the channel **excludes** Google AI Overviews \u002F AI Mode. **Verify Perplexity separately if needed**; unsupported sources may stay in Referral, and most AI sessions arrive referrer-less and fall into **Direct**, so this channel undercounts AI traffic. Forward-only, no backfill.\n\n### `\u002Fseo google ga4-pages [property-id]`\n\nTop organic landing pages ranked by sessions.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run ga4_report.py --property \u003Cid> --report top-pages --json`\n\n---\n\n## YouTube (Video SEO)\n\nSome third-party studies report a 0.737 correlation between YouTube mentions and AI visibility. Treat it as a methodology-dependent signal. Free, API key only.\n\n### `\u002Fseo google youtube \u003Cquery>`\n\nSearch YouTube for videos. Returns title, channel, views, likes, duration.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run youtube_search.py search \"\u003Cquery>\" --json`\n**Reference:** `references\u002Fyoutube-api.md`\n**Quota:** 100 units per search (10,000 units\u002Fday free).\n\n### `\u002Fseo google youtube-video \u003Cvideo_id>`\n\nDetailed video info + tags + top 10 comments.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run youtube_search.py video \u003Cvideo_id> --json`\n**Quota:** 2 units (video details + comments).\n\n---\n\n## NLP Content Analysis\n\nGoogle NLP entity\u002Fsentiment output for internal content-quality checks. Do not treat it as Google E-E-A-T scoring.\n\n### `\u002Fseo google nlp \u003Curl-or-text>`\n\nFull NLP analysis: entities, sentiment, content classification.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run nlp_analyze.py --url \u003Curl> --json` or `--text \"...\"`\n**Reference:** `references\u002Fnlp-api.md`\n**Free tier:** 5,000 units\u002Fmonth. Requires billing enabled on GCP project.\n\n### `\u002Fseo google entities \u003Curl-or-text>`\n\nEntity extraction only (faster, less quota).\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run nlp_analyze.py --url \u003Curl> --features entities --json`\n\n---\n\n## Keyword Research (Google Ads)\n\nGold-standard keyword volume data. Requires Google Ads account.\n\n### `\u002Fseo google keywords \u003Cseed>`\n\nGenerate keyword ideas from seed terms.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run keyword_planner.py ideas \"\u003Cseed>\" --json`\n**Reference:** `references\u002Fkeyword-planner-api.md`\n**Requires:** Ads developer token + customer ID in config (Tier 3).\n\n### `\u002Fseo google volume \u003Ckeywords>`\n\nSearch volume for specific keywords (comma-separated).\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run keyword_planner.py volume \"\u003Ckw1>,\u003Ckw2>\" --json`\n\n---\n\n## Supplementary\n\n### `\u002Fseo google entity \u003Cquery>`\n\nKnowledge Graph entity check. Verifies brand presence.\n\n**Reference:** `references\u002Fsupplementary-apis.md`\nUses Knowledge Graph Search API with API key.\n\n### `\u002Fseo google safety \u003Curl>`\n\nWeb Risk API check for malware\u002Fsocial engineering flags.\n\n**Reference:** `references\u002Fsupplementary-apis.md`\n\n### `\u002Fseo google quotas`\n\nDisplay rate limits table. Read `references\u002Frate-limits-quotas.md`.\n\n---\n\n## Reports\n\nAfter any analysis command, offer to generate a PDF\u002FHTML report.\n\n### `\u002Fseo google report \u003Ctype>`\n\nGenerate a professional PDF report with charts and analytics.\n\n**Script:** `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run google_report.py --type \u003Ctype> --data \u003Cjson> --domain \u003Cdomain> --format pdf`\n\n| Type | Input | Output |\n|------|-------|--------|\n| `cwv-audit` | PSI + CrUX + CrUX History data | Core Web Vitals audit with gauges, timelines, distributions |\n| `gsc-performance` | GSC query data | Search Console report with query tables, quick wins |\n| `indexation` | Batch inspection data | Indexation status with coverage donut chart |\n| `full` | All data combined | Comprehensive Google SEO report (all sections) |\n\n**Workflow:**\n1. Run data collection commands (pagespeed, gsc, inspect-batch, etc.)\n2. Save JSON output to file: `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run pagespeed_check.py \u003Curl> --json > data.json`\n3. Generate report: `\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run google_report.py --type cwv-audit --data data.json --domain \u003Cdomain>`\n\n**Convention:** After completing analysis, suggest: \"Generate a report? Use `\u002Fseo google report \u003Ctype>`\"\n\n---\n\n## Rate Limits\n\n| API | Per-Minute | Per-Day | Auth |\n|-----|-----------|---------|------|\n| PSI v5 | 240 QPM | 25,000 QPD | API Key |\n| CrUX + History | 150 QPM (shared) | Unlimited | API Key |\n| GSC Search Analytics | 1,200 QPM\u002Fsite | 30M QPD | Service Account |\n| GSC URL Inspection | 600 QPM | 2,000 QPD\u002Fsite | Service Account |\n| Indexing API | 380 RPM | 200 publish\u002Fday | Service Account |\n| GA4 Data API | 10 concurrent | ~25K tokens\u002Fday | Service Account |\n\n## Cross-Skill Integration\n\n- **seo-audit**: Spawns `seo-google` agent for live CWV + indexation data (conditional)\n- **seo-technical**: Uses pagespeed_check.py for real CWV field data\n- **seo-performance**: CrUX field data supplements Lighthouse lab data\n- **seo-sitemap**: GSC sitemap status shows submitted counts, errors, and warnings; use URL Inspection for indexation truth\n- **seo-content**: GSC query data informs keyword targeting\n- **seo-geo**: Use GSC Generative AI performance reports and AI Overviews\u002FAI Mode\u002FDiscover gen-AI include\u002Fexclude controls where available\n\n## Output Format\n\n- CWV metrics: traffic-light rating (Good \u002F Needs Improvement \u002F Poor)\n- Performance reports: tables with sortable columns\n- Always include data freshness note\n- Save reports as `GOOGLE-API-REPORT-{domain}.md`\n- Markdown\u002FLLM templates in `assets\u002Ftemplates\u002F`: `cwv-audit-report.md`, `gsc-performance-report.md`, `indexation-status-report.md`; distinct from `google_report.py`'s PDF pipeline\n\n## Technical Notes\n\n- INP replaced FID on March 12, 2024. Never reference FID.\n- CLS values from CrUX are string-encoded (e.g., \"0.05\"). Scripts handle parsing.\n- CrUX 404 = insufficient traffic, not an auth error.\n- Search Analytics data has 2-3 day lag.\n- `round_trip_time` replaced `effectiveConnectionType` in CrUX (Feb 2025).\n- Custom Search JSON API is closed to new customers (2025).\n\n## Error Handling\n\n| Scenario | Action |\n|----------|--------|\n| No credentials configured | Run `\u002Fseo google setup`. List Tier 0 commands that work with just an API key. |\n| Service account lacks GSC access | Report error. Instruct: add `client_email` to GSC > Settings > Users > Add. |\n| CrUX data unavailable (404) | Report insufficient Chrome traffic. Suggest PSI lab data as fallback. |\n| GA4 property not found | Report error. Show how to find property ID in GA4 Admin > Property Details. |\n| Indexing API quota exceeded | Report 200\u002Fday limit. Suggest prioritizing most important URLs. |\n| Rate limit (429) | Wait and retry with exponential backoff. Report which API hit the limit. |\n",{"name":5,"license":15,"metadata":68,"description":71,"argument-hint":72,"user-invocable":73},{"author":69,"version":70,"category":36},"AgriciDaniel","2.2.4","Google SEO APIs: Search Console (Search Analytics, URL Inspection, Sitemaps), PageSpeed Insights v5, CrUX field data with 25-week history, Indexing API v3, and GA4 organic traffic. Provides real Google field data for Core Web Vitals, indexation status, search performance, and organic traffic trends. Use when user says \"search console\", \"GSC\", \"PageSpeed\", \"CrUX\", \"field data\", \"indexing API\", \"GA4 organic\", \"URL inspection\", or \"real CWV data\".\n","[command] [url|property]",true,"main","d8378e461d60315bd1ca8a6e71716df39b6abe4a","configs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-google","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup","https:\u002F\u002Fgithub.com\u002Fnoirelab","Artificial Intelligence Researcher |\r\nComputer Science majoring at UTFPR","2026-11-11 09:12:51",{"source":8,"skillName":5,"commands":82,"prompt":92,"zipAvailable":73},[83,86,89],{"tool":84,"command":85},"npx","npx skills add noirelab\u002Flinux-setup --skill seo-google",{"tool":87,"command":88},"bunx","bunx skills add noirelab\u002Flinux-setup --skill seo-google",{"tool":90,"command":91},"pnpm","pnpm dlx skills add noirelab\u002Flinux-setup --skill seo-google","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-google\u002FSKILL.md",[94,100,104,108,113,119,123,127,131,135,139,143,147,151,155,159],{"path":95,"resourceType":96,"resourceTypeDesc":97,"sizeBytes":98,"sourceHtmlUrl":99},"assets\u002Ftemplates\u002Fcwv-audit-report.md","ASSET","资产文件",1587,"https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-google\u002Fassets\u002Ftemplates\u002Fcwv-audit-report.md",{"path":101,"resourceType":96,"resourceTypeDesc":97,"sizeBytes":102,"sourceHtmlUrl":103},"assets\u002Ftemplates\u002Fgsc-performance-report.md",1442,"https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-google\u002Fassets\u002Ftemplates\u002Fgsc-performance-report.md",{"path":105,"resourceType":96,"resourceTypeDesc":97,"sizeBytes":106,"sourceHtmlUrl":107},"assets\u002Ftemplates\u002Findexation-status-report.md",1126,"https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-google\u002Fassets\u002Ftemplates\u002Findexation-status-report.md",{"path":109,"resourceType":110,"resourceTypeDesc":111,"sizeBytes":112,"sourceHtmlUrl":16},"LICENSE.txt","LICENSE","许可证",143,{"path":114,"resourceType":115,"resourceTypeDesc":116,"sizeBytes":117,"sourceHtmlUrl":118},"references\u002Fact2-seat.md","REFERENCE","参考文档",427,"https:\u002F\u002Fgithub.com\u002FNharu\u002Fcc-cmds\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Flint-watch-threshold-pins\u002FFAIL-2-missing-flag\u002Fskills\u002Fautopilot\u002Freferences\u002Fact2-seat.md",{"path":120,"resourceType":115,"resourceTypeDesc":116,"sizeBytes":121,"sourceHtmlUrl":122},"references\u002Fauth-setup.md",5238,"https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-google\u002Freferences\u002Fauth-setup.md",{"path":124,"resourceType":115,"resourceTypeDesc":116,"sizeBytes":125,"sourceHtmlUrl":126},"references\u002Fdma-consent-mode-v2.md",2672,"https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-google\u002Freferences\u002Fdma-consent-mode-v2.md",{"path":128,"resourceType":115,"resourceTypeDesc":116,"sizeBytes":129,"sourceHtmlUrl":130},"references\u002Fga4-data-api.md",5364,"https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-google\u002Freferences\u002Fga4-data-api.md",{"path":132,"resourceType":115,"resourceTypeDesc":116,"sizeBytes":133,"sourceHtmlUrl":134},"references\u002Findexing-api.md",3273,"https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-google\u002Freferences\u002Findexing-api.md",{"path":136,"resourceType":115,"resourceTypeDesc":116,"sizeBytes":137,"sourceHtmlUrl":138},"references\u002Fkeyword-planner-api.md",2398,"https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-google\u002Freferences\u002Fkeyword-planner-api.md",{"path":140,"resourceType":115,"resourceTypeDesc":116,"sizeBytes":141,"sourceHtmlUrl":142},"references\u002Fnlp-api.md",2333,"https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-google\u002Freferences\u002Fnlp-api.md",{"path":144,"resourceType":115,"resourceTypeDesc":116,"sizeBytes":145,"sourceHtmlUrl":146},"references\u002Fpagespeed-crux-api.md",6968,"https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-google\u002Freferences\u002Fpagespeed-crux-api.md",{"path":148,"resourceType":115,"resourceTypeDesc":116,"sizeBytes":149,"sourceHtmlUrl":150},"references\u002Frate-limits-quotas.md",3379,"https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-google\u002Freferences\u002Frate-limits-quotas.md",{"path":152,"resourceType":115,"resourceTypeDesc":116,"sizeBytes":153,"sourceHtmlUrl":154},"references\u002Fsearch-console-api.md",5448,"https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-google\u002Freferences\u002Fsearch-console-api.md",{"path":156,"resourceType":115,"resourceTypeDesc":116,"sizeBytes":157,"sourceHtmlUrl":158},"references\u002Fsupplementary-apis.md",2812,"https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-google\u002Freferences\u002Fsupplementary-apis.md",{"path":160,"resourceType":115,"resourceTypeDesc":116,"sizeBytes":161,"sourceHtmlUrl":162},"references\u002Fyoutube-api.md",1595,"https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-google\u002Freferences\u002Fyoutube-api.md",[164,194,228,253,273,289],{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":168,"licenseFileUrl":169,"sourceHtmlUrl":170,"categories":171,"keywords":175,"publishedAt":63},"01M6C2Q1S6HCS7Y9TBQ2PJ2NAM","skill-creator","Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fsynced\u002Ffcfa9261-0073-49cb-8312-19eea68f0c58_391f3767-a35d-4280-81a1-363cd861a8e6\u002Fskill-creator\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fsynced\u002Ffcfa9261-0073-49cb-8312-19eea68f0c58_391f3767-a35d-4280-81a1-363cd861a8e6\u002Fskill-creator\u002FSKILL.md",[172],{"categoryNo":173,"categoryName":174,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000023","Skill与智能体开发",[176,177,62,178,179,180,181,182,183,184,185,186,49,187,188,189,190,191,192,41,193],"skill creator","creator","run evals","test","variance analysis","create","run","benchmark","analysis","improve","edit","evals","optimize","existing skill","for","accuracy","scratch","new",{"skillNo":195,"name":196,"nameZh":6,"description":197,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":168,"licenseFileUrl":6,"sourceHtmlUrl":198,"categories":199,"keywords":200,"publishedAt":63},"01M6C2ZRGJ9HN4N9BP24DPNCR4","returns-reverse-logistics","Codified expertise for returns authorization, receipt and inspection, disposition decisions, refund processing, fraud detection, and warranty claims management. Informed by returns operations managers with 15+ years experience. Includes grading frameworks, disposition economics, fraud pattern recognition, and vendor recovery processes. Use when handling product returns, reverse logistics, refund decisions, return fraud detection, or warranty claims.","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fopencode_home\u002Fskills\u002Freturns-reverse-logistics\u002FSKILL.md",[],[201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,49,217,218,219,220,221,222,223,224,225,190,226,227,41,40],"returns","returns reverse logistics","reverse logistics","reverse","github","code","product","https","authorization","detection","fraud","recovery","decisions","management","operations","vendor","claims management","frameworks","fraud detection","pattern","grading","processing","economics","managers","claims","expertise","refund",{"skillNo":229,"name":230,"nameZh":6,"description":231,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":168,"licenseFileUrl":6,"sourceHtmlUrl":232,"categories":233,"keywords":234,"publishedAt":63},"01M6C2ZGWSNZGZZQ5VCFWHD2QT","quality-nonconformance","Codified expertise for quality control, non-conformance investigation, root cause analysis, corrective action, and supplier quality management in regulated manufacturing. Informed by quality engineers with 15+ years experience across FDA, IATF 16949, and AS9100 environments. Includes NCR lifecycle management, CAPA systems, SPC interpretation, and audit methodology. Use when investigating non-conformances, performing root cause analysis, managing CAPAs, interpreting SPC data, or handling supplier quality issues.","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fopencode_home\u002Fskills\u002Fquality-nonconformance\u002FSKILL.md",[],[235,236,205,237,238,206,239,208,240,55,241,242,184,243,214,49,244,245,246,247,248,249,250,251,190,226,252,41],"quality","quality nonconformance","root cause analysis","interpretation","issues","audit","methodology","lifecycle","investigation","fda","across","manufacturing","environments","corrective action","supplier quality management","action","conformance","root cause",{"skillNo":254,"name":255,"nameZh":6,"description":256,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":168,"licenseFileUrl":6,"sourceHtmlUrl":257,"categories":258,"keywords":259,"publishedAt":63},"01M6C2Z8VQ9AYZYKPZW1KD9DX5","production-scheduling","Codified expertise for production scheduling, job sequencing, line balancing, changeover optimization, and bottleneck resolution in discrete and batch manufacturing. Informed by production schedulers with 15+ years experience. Includes TOC\u002Fdrum-buffer-rope, SMED, OEE analysis, disruption response frameworks, and ERP\u002FMES interaction patterns. Use when scheduling production, resolving bottlenecks, optimizing changeovers, responding to disruptions, or balancing manufacturing lines.","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fopencode_home\u002Fskills\u002Fproduction-scheduling\u002FSKILL.md",[],[260,261,262,205,206,263,208,264,184,265,266,49,267,268,218,269,270,271,246,272,190,226,41],"Production","production scheduling","scheduling","batch","Optimization","erp","bottleneck","toc","patterns","line","interaction","sequencing","buffer",{"skillNo":274,"name":275,"nameZh":6,"description":276,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":168,"licenseFileUrl":6,"sourceHtmlUrl":277,"categories":278,"keywords":279,"publishedAt":63},"01M6C2YR01NNN2Z1G18RN7F9MP","logistics-exception-management","Codified expertise for handling freight exceptions, shipment delays, damages, losses, and carrier disputes. Informed by logistics professionals with 15+ years operational experience. Includes escalation protocols, carrier-specific behaviors, claims procedures, and judgment frameworks. Use when handling shipping exceptions, freight claims, delivery issues, or carrier disputes.","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fopencode_home\u002Fskills\u002Flogistics-exception-management\u002FSKILL.md",[],[214,280,205,206,281,239,282,208,283,49,218,284,285,286,287,225,190,226,288,41],"logistics exception management","shipping","protocols","escalation","delivery","claude-code","judgment","with","freight",{"skillNo":290,"name":291,"nameZh":6,"description":292,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":168,"licenseFileUrl":6,"sourceHtmlUrl":293,"categories":294,"keywords":295,"publishedAt":63},"01M6C2YC5PXTEJYBJJQZVXPQS0","inventory-demand-planning","Codified expertise for demand forecasting, safety stock optimization, replenishment planning, and promotional lift estimation at multi-location retailers. Informed by demand planners with 15+ years experience managing hundreds of SKUs. Includes forecasting method selection, ABC\u002FXYZ analysis, seasonal transition management, and vendor negotiation frameworks. Use when forecasting demand, setting safety stock, planning replenishment, managing promotions, or optimizing inventory levels.","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fopencode_home\u002Fskills\u002Finventory-demand-planning\u002FSKILL.md",[],[296,297,298,299,205,206,208,300,264,301,184,214,216,302,49,303,218,304,305,306,307,308,190,226,309,41],"planning","inventory","inventory demand planning","demand planning","negotiation","Safety","forecasting","selection","estimation","stock","seasonal","lift","at","transition"]