[{"data":1,"prerenderedAt":789},["ShallowReactive",2],{"navigation_docs":3,"trending-repo-AgriciDaniel\u002Fclaude-seo":249,"page-views-\u002Ftrending\u002FAgriciDaniel\u002Fclaude-seo":787},[4,29,104,124,194],{"title":5,"icon":6,"path":7,"stem":8,"children":9},"Start",false,"\u002Fstart","1.start",[10,14,19,24],{"title":11,"path":7,"stem":12,"icon":13},"What jscpd finds","1.start\u002Findex","i-lucide-house",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fstart\u002Finstallation","1.start\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quickstart","\u002Fstart\u002Fquickstart","1.start\u002F3.quickstart","i-lucide-rocket",{"title":25,"path":26,"stem":27,"icon":28},"Configuration basics","\u002Fstart\u002Fconfiguration","1.start\u002F4.configuration","i-lucide-settings-2",{"title":30,"icon":6,"path":31,"stem":32,"children":33,"page":6},"Guides","\u002Fguides","2.guides",[34,39,44,49,54,59,64,69,74,79,84,89,94,99],{"title":35,"path":36,"stem":37,"icon":38},"Use jscpd in CI","\u002Fguides\u002Fci","2.guides\u002F01.ci","i-lucide-github",{"title":40,"path":41,"stem":42,"icon":43},"Pre-commit hooks","\u002Fguides\u002Fpre-commit","2.guides\u002F02.pre-commit","i-lucide-git-commit",{"title":45,"path":46,"stem":47,"icon":48},"Fail only on new duplication","\u002Fguides\u002Fbaseline","2.guides\u002F03.baseline","i-lucide-git-compare",{"title":50,"path":51,"stem":52,"icon":53},"Monorepos","\u002Fguides\u002Fmonorepos","2.guides\u002F04.monorepos","i-lucide-folder-tree",{"title":55,"path":56,"stem":57,"icon":58},"Cross-format detection","\u002Fguides\u002Fcross-format","2.guides\u002F05.cross-format","i-lucide-layers",{"title":60,"path":61,"stem":62,"icon":63},"Agents","\u002Fguides\u002Fagents","2.guides\u002F06.agents","i-lucide-cpu",{"title":65,"path":66,"stem":67,"icon":68},"Editors","\u002Fguides\u002Feditors","2.guides\u002F07.editors","i-lucide-code",{"title":70,"path":71,"stem":72,"icon":73},"Duplication over git history","\u002Fguides\u002Fhistory","2.guides\u002F08.history","i-lucide-chart-no-axes-combined",{"title":75,"path":76,"stem":77,"icon":78},"Dashboard and health score","\u002Fguides\u002Fdashboard","2.guides\u002F09.dashboard","i-lucide-layout-dashboard",{"title":80,"path":81,"stem":82,"icon":83},"Dead code","\u002Fguides\u002Fdead-code","2.guides\u002F10.dead-code","i-lucide-ghost",{"title":85,"path":86,"stem":87,"icon":88},"Comparing two codebases","\u002Fguides\u002Fcompare","2.guides\u002F11.compare","i-lucide-git-compare-arrows",{"title":90,"path":91,"stem":92,"icon":93},"Semantic clones","\u002Fguides\u002Fsemantic-clones","2.guides\u002F12.semantic-clones","i-lucide-brain-circuit",{"title":95,"path":96,"stem":97,"icon":98},"Similar functions","\u002Fguides\u002Fsimilarity","2.guides\u002F13.similarity","i-lucide-list-tree",{"title":100,"path":101,"stem":102,"icon":103},"Boundaries","\u002Fguides\u002Fboundaries","2.guides\u002F14.boundaries","i-lucide-fence",{"title":105,"icon":6,"path":106,"stem":107,"children":108,"page":6},"Concepts","\u002Fconcepts","3.concepts",[109,114,119],{"title":110,"path":111,"stem":112,"icon":113},"Types of code clones","\u002Fconcepts\u002Fclone-types","3.concepts\u002F1.clone-types","i-lucide-copy",{"title":115,"path":116,"stem":117,"icon":118},"How detection works","\u002Fconcepts\u002Fhow-detection-works","3.concepts\u002F2.how-detection-works","i-lucide-scan-search",{"title":120,"path":121,"stem":122,"icon":123},"The health score","\u002Fconcepts\u002Fhealth-score","3.concepts\u002F3.health-score","i-lucide-heart-pulse",{"title":125,"icon":6,"path":126,"stem":127,"children":128,"page":6},"Reference","\u002Freference","4.reference",[129,134,139,144,181,186,190],{"title":130,"path":131,"stem":132,"icon":133},"CLI options","\u002Freference\u002Fcli","4.reference\u002F1.cli","i-lucide-terminal",{"title":135,"path":136,"stem":137,"icon":138},"The config file","\u002Freference\u002Fconfig-file","4.reference\u002F2.config-file","i-lucide-settings",{"title":140,"path":141,"stem":142,"icon":143},"Exit codes","\u002Freference\u002Fexit-codes","4.reference\u002F3.exit-codes","i-lucide-log-out",{"title":145,"icon":6,"path":146,"stem":147,"children":148},"Reporters","\u002Freference\u002Freporters","4.reference\u002F4.reporters\u002Findex",[149,151,156,161,166,171,176],{"title":145,"path":146,"stem":147,"icon":150},"i-lucide-file-chart-column",{"title":152,"path":153,"stem":154,"icon":155},"HTML reporter","\u002Freference\u002Freporters\u002Fhtml","4.reference\u002F4.reporters\u002F2.html","i-lucide-file-code",{"title":157,"path":158,"stem":159,"icon":160},"JSON reporter","\u002Freference\u002Freporters\u002Fjson","4.reference\u002F4.reporters\u002F3.json","i-lucide-braces",{"title":162,"path":163,"stem":164,"icon":165},"Badge reporter","\u002Freference\u002Freporters\u002Fbadge","4.reference\u002F4.reporters\u002F4.badge","i-lucide-award",{"title":167,"path":168,"stem":169,"icon":170},"SARIF reporter","\u002Freference\u002Freporters\u002Fsarif","4.reference\u002F4.reporters\u002F5.sarif","i-lucide-shield-check",{"title":172,"path":173,"stem":174,"icon":175},"CodeClimate reporter","\u002Freference\u002Freporters\u002Fcodeclimate","4.reference\u002F4.reporters\u002F6.codeclimate","i-lucide-flag-triangle-right",{"title":177,"path":178,"stem":179,"icon":180},"OpenMetrics reporter","\u002Freference\u002Freporters\u002Fopenmetrics","4.reference\u002F4.reporters\u002F7.openmetrics","i-lucide-activity",{"title":182,"path":183,"stem":184,"icon":185},"Supported formats","\u002Freference\u002Fsupported-formats","4.reference\u002F5.supported-formats","i-lucide-languages",{"title":187,"path":188,"stem":189,"icon":38},"GitHub Action","\u002Freference\u002Fgithub-action","4.reference\u002F6.github-action",{"title":191,"path":192,"stem":193,"icon":68},"Rust crates","\u002Freference\u002Frust-crates","4.reference\u002F7.rust-crates",{"title":195,"icon":6,"path":196,"stem":197,"children":198,"page":6},"Project","\u002Fproject","5.project",[199,204,209,214,239,244],{"title":200,"path":201,"stem":202,"icon":203},"Changelog","\u002Fproject\u002Fchangelog","5.project\u002F1.changelog","i-lucide-scroll-text",{"title":205,"path":206,"stem":207,"icon":208},"Migrating from v4 to v5","\u002Fproject\u002Fmigration","5.project\u002F2.migration","i-lucide-arrow-right-left",{"title":210,"path":211,"stem":212,"icon":213},"jscpd v4 (TypeScript)","\u002Fproject\u002Fv4","5.project\u002F3.v4","i-simple-icons-typescript",{"title":215,"icon":6,"path":216,"stem":217,"children":218},"Benchmarks","\u002Fproject\u002Fbenchmarks","5.project\u002F4.benchmarks\u002Findex",[219,221,226,230,235],{"title":215,"path":216,"stem":217,"icon":220},"i-lucide-gauge",{"title":222,"path":223,"stem":224,"icon":225},"Detection Speed","\u002Fproject\u002Fbenchmarks\u002Fdetection-speed","5.project\u002F4.benchmarks\u002F2.detection-speed","i-lucide-zap",{"title":227,"path":228,"stem":229,"icon":58},"Multi-Format Detection","\u002Fproject\u002Fbenchmarks\u002Fcross-format","5.project\u002F4.benchmarks\u002F3.cross-format",{"title":231,"path":232,"stem":233,"icon":234},"AI Token Efficiency","\u002Fproject\u002Fbenchmarks\u002Fai-token-efficiency","5.project\u002F4.benchmarks\u002F4.ai-token-efficiency","i-lucide-sparkles",{"title":236,"path":237,"stem":238,"icon":93},"Embedding Models","\u002Fproject\u002Fbenchmarks\u002Fembedding-models","5.project\u002F4.benchmarks\u002F5.embedding-models",{"title":240,"path":241,"stem":242,"icon":243},"Research","\u002Fproject\u002Fresearch","5.project\u002F5.research","i-lucide-graduation-cap",{"title":245,"path":246,"stem":247,"icon":248},"Articles","\u002Fproject\u002Farticles","5.project\u002F6.articles","i-lucide-newspaper",{"name":250,"url":251,"appearances":252,"latest":268},"AgriciDaniel\u002Fclaude-seo","https:\u002F\u002Fgithub.com\u002FAgriciDaniel\u002Fclaude-seo",[253],{"date":254,"rank":255,"stars":256,"starsToday":257,"headSha":258,"sources":259,"lines":260,"clones":261,"duplicatedLines":262,"percentage":263,"codePercentage":264,"codeSources":265,"healthScore":266,"healthGrade":267},"2026-10-26",7,21206,197,"6be93f45064ffbadced572b5d5c95f55fd263af0",587,80734,268,6421,7.95,2.61,101,71.7,"B",{"date":254,"generatedAt":269,"name":250,"url":251,"description":270,"language":271,"stars":256,"starsToday":257,"defaultBranch":272,"headSha":258,"durationMs":273,"total":274,"formats":278,"topClones":342,"code":532,"health":690,"complexity":721,"deadCode":771},"2026-10-26T05:32:18.055Z","Universal SEO skill for Claude Code. 26 sub-skills + 19 sub-agents covering technical SEO, E-E-A-T, schema, GEO\u002FAEO, agent readiness (Lighthouse Agentic Browsing, WebMCP, llms.txt), backlinks, local SEO, e-commerce, international SEO, Google APIs, and PDF\u002FExcel reporting. 9 optional extensions for live SEO data.","Python","main",1008,{"sources":259,"lines":260,"tokens":275,"clones":261,"duplicatedLines":262,"duplicatedTokens":276,"percentage":263,"percentageTokens":277},598812,42431,7.09,[279,286,293,300,307,314,321,328,334,338],{"format":280,"sources":281,"lines":282,"clones":283,"duplicatedLines":284,"percentage":285},"markdown",218,29580,124,4496,15.2,{"format":287,"sources":288,"lines":289,"clones":290,"duplicatedLines":291,"percentage":292},"python",146,41799,74,900,2.15,{"format":294,"sources":295,"lines":296,"clones":297,"duplicatedLines":298,"percentage":299},"text",78,1591,38,431,27.09,{"format":301,"sources":302,"lines":303,"clones":304,"duplicatedLines":305,"percentage":306},"bash",37,1946,13,212,10.89,{"format":308,"sources":309,"lines":310,"clones":311,"duplicatedLines":312,"percentage":313},"yaml",54,1328,9,175,13.18,{"format":315,"sources":316,"lines":317,"clones":318,"duplicatedLines":319,"percentage":320},"powershell",12,1064,5,43,4.04,{"format":322,"sources":323,"lines":324,"clones":325,"duplicatedLines":326,"percentage":327},"json",28,2205,3,150,6.8,{"format":329,"sources":311,"lines":330,"clones":331,"duplicatedLines":332,"percentage":333},"markup",1007,2,14,1.39,{"format":335,"sources":331,"lines":336,"clones":337,"duplicatedLines":337,"percentage":337},"txt",109,0,{"format":339,"sources":340,"lines":341,"clones":337,"duplicatedLines":337,"percentage":337},"javascript",1,65,[343,364,395,424,445,453,464,478,516,524],{"format":280,"lines":344,"tokens":345,"first":346,"others":350,"copies":331,"excerpt":353,"kind":363},396,3633,{"name":347,"start":348,"end":349},"extensions\u002Fdataforseo\u002Fskills\u002Fseo-dataforseo\u002FSKILL.md",20,415,[351],{"name":352,"start":348,"end":349},"skills\u002Fseo-dataforseo\u002FSKILL.md",{"lines":354,"total":344},[355,356,357,358,359,360,356,361,356,362],"# DataForSEO: Live SEO Data (Extension)","","Live search data via the DataForSEO MCP server. Provides real-time SERP results","(organic + images), keyword metrics, backlink profiles, on-page analysis, content","analysis, business listings, AI visibility checking, and LLM mention tracking","across 9 API modules with 79+ MCP tools.","## Prerequisites","This skill requires the DataForSEO extension to be installed:","docs",{"format":280,"lines":365,"tokens":366,"first":367,"others":371,"copies":304,"excerpt":388,"kind":363},60,271,{"name":368,"start":369,"end":370},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Foptimize\u002Fai-detector-test-follow-up-prompt.md",11,70,[372,374,376,378,380,382,384,386],{"name":373,"start":369,"end":370},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Foptimize\u002Fai-supporting-pages-rewrite-prompt.md",{"name":375,"start":369,"end":370},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Foptimize\u002Fbasic-prompt.md",{"name":377,"start":369,"end":370},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Foptimize\u002Fblog-post-outline-prompt.md",{"name":379,"start":369,"end":370},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Foptimize\u002Fblog-post-writing-prompt.md",{"name":381,"start":369,"end":370},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Foptimize\u002Ffollow-up-prompt.md",{"name":383,"start":369,"end":370},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Foptimize\u002Fpaa-question-rewording-prompt.md",{"name":385,"start":369,"end":370},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Foptimize\u002Freddit-claude-prompt.md",{"name":387,"start":369,"end":370},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Foptimize\u002Fstep-1-the-chatgpt-discovery-prompt.md",{"lines":389,"total":365},[390,356,391,356,392,356,393,356,394,356],"# AI detector test follow-up Prompt","## Use This When","Use this prompt when you need a structured optimize deliverable and want the model to separate observations, assumptions, recommended actions, and claims that …","## AI Compatibility","Works with long-context reasoning models. For smaller models, provide narrower inputs and ask for one output section at a time.",{"format":294,"lines":304,"tokens":396,"first":397,"others":400,"copies":413,"excerpt":414,"kind":363},107,{"name":368,"start":398,"end":399},32,44,[401,402,403,404,405,407,409,411],{"name":373,"start":398,"end":399},{"name":375,"start":398,"end":399},{"name":377,"start":398,"end":399},{"name":379,"start":398,"end":399},{"name":406,"start":398,"end":399},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Foptimize\u002Fclaude-prompt-1.md",{"name":408,"start":398,"end":399},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Foptimize\u002Fclaude-prompt-2.md",{"name":410,"start":398,"end":399},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Foptimize\u002Fctr-audit-prompt.md",{"name":412,"start":398,"end":399},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Foptimize\u002Ffollow-up-prompt-1.md",21,{"lines":415,"total":304},[416,356,417,356,418,419,420,421,422,423],"Act as a senior SEO strategist using the FLOW model.","Task: create a optimize deliverable for: [BUSINESS OR ASSET].","Use only the supplied inputs and clearly label any assumption. Do not invent statistics. Do not reuse private examples. Build the answer around:","1. Searcher or buyer intent.","2. Evidence available now.","3. Gaps that block trust, extraction, or conversion.","4. Recommended changes in priority order.","5. Measurement events and review cadence.",{"format":280,"lines":425,"tokens":426,"first":427,"others":429,"copies":444,"kind":363},58,270,{"name":428,"start":304,"end":370},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Flocal\u002Fai-homepage-rewrite-prompt.md",[430,432,434,436,438,440,442],{"name":431,"start":304,"end":370},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Flocal\u002Fgbp-description-claude-prompt-1.md",{"name":433,"start":304,"end":370},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Flocal\u002Fgbp-description-claude-prompt-2.md",{"name":435,"start":304,"end":370},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Flocal\u002Fgbp-description-claude-prompt-3.md",{"name":437,"start":304,"end":370},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Flocal\u002Fprompt-generating-a-meta-description.md",{"name":439,"start":304,"end":370},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Flocal\u002Fprompt-generating-a-title-tag.md",{"name":441,"start":304,"end":370},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Flocal\u002Fprompt-rewriting-existing-homepage.md",{"name":443,"start":304,"end":370},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Flocal\u002Fprompt-rewriting-existing-service-page.md",8,{"format":280,"lines":446,"tokens":447,"first":448,"others":450,"copies":331,"kind":363},142,1517,{"name":449,"start":340,"end":446},"extensions\u002Fbanana\u002Freferences\u002Fprompt-engineering.md",[451],{"name":452,"start":340,"end":446},"skills\u002Fseo-image-gen\u002Freferences\u002Fprompt-engineering.md",{"format":280,"lines":425,"tokens":426,"first":454,"others":455,"copies":463,"kind":363},{"name":368,"start":304,"end":370},[456,457,458,459,461],{"name":406,"start":304,"end":370},{"name":408,"start":304,"end":370},{"name":410,"start":304,"end":370},{"name":460,"start":304,"end":370},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Foptimize\u002Fprompt-core-30-content-audit.md",{"name":462,"start":304,"end":370},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Foptimize\u002Fproperty-content-with-authority-audit-prompt.md",6,{"format":294,"lines":304,"tokens":396,"first":465,"others":466,"copies":369,"kind":363},{"name":428,"start":398,"end":399},[467,469,471,472,473,474,476,477],{"name":468,"start":398,"end":399},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Flocal\u002Fclaude-deep-research-prompt.md",{"name":470,"start":398,"end":399},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Flocal\u002Fgbp-categories-prompt.md",{"name":431,"start":398,"end":399},{"name":433,"start":398,"end":399},{"name":435,"start":398,"end":399},{"name":475,"start":398,"end":399},"skills\u002Fseo-flow\u002Freferences\u002Fprompts\u002Flocal\u002Fgbp-services-prompt.md",{"name":437,"start":398,"end":399},{"name":439,"start":398,"end":399},{"format":280,"lines":311,"tokens":479,"first":480,"others":484,"copies":332,"kind":363},71,{"name":481,"start":482,"end":483},"skills\u002Fseo-audit\u002FSKILL.md",202,210,[485,489,493,497,501,505,509,513],{"name":486,"start":487,"end":488},"skills\u002Fseo-competitor-pages\u002FSKILL.md",220,228,{"name":490,"start":491,"end":492},"skills\u002Fseo-content-brief\u002FSKILL.md",248,256,{"name":494,"start":495,"end":496},"skills\u002Fseo-flow\u002FSKILL.md",136,144,{"name":498,"start":499,"end":500},"skills\u002Fseo-google\u002FSKILL.md",369,377,{"name":502,"start":503,"end":504},"skills\u002Fseo-hreflang\u002FSKILL.md",290,298,{"name":506,"start":507,"end":508},"skills\u002Fseo-images\u002FSKILL.md",436,444,{"name":510,"start":511,"end":512},"skills\u002Fseo-maps\u002FSKILL.md",276,284,{"name":514,"start":515,"end":396},"skills\u002Fseo-page\u002FSKILL.md",99,{"format":280,"lines":517,"tokens":518,"first":519,"others":521,"copies":331,"kind":363},61,871,{"name":520,"start":340,"end":517},"extensions\u002Fdataforseo\u002Fskills\u002Fseo-dataforseo\u002Freferences\u002Fcost-tiers.md",[522],{"name":523,"start":340,"end":517},"skills\u002Fseo-dataforseo\u002Freferences\u002Fcost-tiers.md",{"format":280,"lines":525,"tokens":526,"first":527,"others":529,"copies":331,"kind":363},72,849,{"name":528,"start":340,"end":525},"extensions\u002Fbanana\u002Freferences\u002Fprompt-adaptation-safety.md",[530],{"name":531,"start":340,"end":525},"skills\u002Fseo-image-gen\u002Freferences\u002Fprompt-adaptation-safety.md",{"sources":265,"lines":533,"tokens":534,"clones":341,"duplicatedLines":535,"duplicatedTokens":536,"percentage":264,"percentageTokens":537,"formats":538,"topClones":551,"generated":688},31070,176337,810,4895,2.78,[539,545,549,550],{"format":287,"sources":540,"lines":541,"clones":542,"duplicatedLines":543,"percentage":544},68,28400,49,635,2.24,{"format":301,"sources":348,"lines":546,"clones":369,"duplicatedLines":547,"percentage":548},1541,132,8.57,{"format":315,"sources":316,"lines":317,"clones":318,"duplicatedLines":319,"percentage":320},{"format":339,"sources":340,"lines":341,"clones":337,"duplicatedLines":337,"percentage":337},[552,574,599,619,627,640,651,662,670,679],{"format":287,"lines":542,"tokens":553,"first":554,"others":558,"copies":331,"excerpt":563,"kind":573},363,{"name":555,"start":556,"end":557},"extensions\u002Fbanana\u002Fscripts\u002Fedit.py",80,128,[559],{"name":560,"start":561,"end":562},"extensions\u002Fbanana\u002Fscripts\u002Fgenerate.py",73,121,{"lines":564,"total":542},[565,356,566,567,568,569,570,571,572,356],"}","data = json.dumps(body).encode(\"utf-8\")","req = urllib.request.Request(","    url,","    data=data,","    headers={\"Content-Type\": \"application\u002Fjson\", \"X-Goog-Api-Key\": api_key},","    method=\"POST\",",")","code",{"format":301,"lines":575,"tokens":576,"first":577,"others":581,"copies":325,"excerpt":589,"kind":573},17,117,{"name":578,"start":579,"end":580},"extensions\u002Fbanana\u002Finstall.sh",118,134,[582,586],{"name":583,"start":584,"end":585},"extensions\u002Fdataforseo\u002Finstall.sh",140,156,{"name":587,"start":396,"end":588},"extensions\u002Ffirecrawl\u002Finstall.sh",123,{"lines":590,"total":575},[591,592,565,356,593,594,595,596,597,598],"        'GOOGLE_AI_API_KEY': api_key,","    },","os.makedirs(os.path.dirname(settings_path) or '.', exist_ok=True)","fd, tmp = tempfile.mkstemp(dir=os.path.dirname(settings_path) or '.', prefix='.settings.', suffix='.json')","try:","    with os.fdopen(fd, 'w') as f:","        json.dump(settings, f, indent=2)","    os.chmod(tmp, 0o600)",{"format":287,"lines":600,"tokens":585,"first":601,"others":604,"copies":331,"excerpt":607,"kind":573},35,{"name":602,"start":603,"end":576},"scripts\u002Fbacklinks_auth.py",83,[605],{"name":606,"start":295,"end":336},"scripts\u002Fmatomo_auth.py",{"lines":608,"total":600},[609,610,611,612,613,614,615,616,617,618],"function at all, since it is a no-op there.","\"\"\"","if os.name != \"nt\":","    return","user = os.environ.get(\"USERNAME\", \"\").strip()","if not user:","    print(","        f\"Warning: USERNAME is not set; could not restrict {path} to the current user\",","        file=sys.stderr,","    )",{"format":287,"lines":620,"tokens":621,"first":622,"others":623,"copies":331,"kind":573},25,126,{"name":555,"start":620,"end":542},[624],{"name":560,"start":625,"end":626},31,55,{"format":287,"lines":628,"tokens":517,"first":629,"others":633,"copies":325,"kind":573},10,{"name":630,"start":631,"end":632},"scripts\u002Fgoogle_report.py",2154,2163,[634,637],{"name":630,"start":635,"end":636},2195,2204,{"name":630,"start":638,"end":639},2231,2240,{"format":315,"lines":304,"tokens":641,"first":642,"others":646,"copies":331,"kind":573},106,{"name":643,"start":644,"end":645},"extensions\u002Fdataforseo\u002Finstall.ps1",119,131,[647],{"name":648,"start":649,"end":650},"extensions\u002Ffirecrawl\u002Finstall.ps1",84,96,{"format":287,"lines":652,"tokens":653,"first":654,"others":658,"copies":331,"kind":573},16,104,{"name":655,"start":656,"end":657},"scripts\u002Fga4_report.py",285,300,[659],{"name":655,"start":660,"end":661},350,365,{"format":301,"lines":663,"tokens":664,"first":665,"others":668,"copies":331,"kind":573},27,103,{"name":578,"start":666,"end":667},22,48,[669],{"name":583,"start":600,"end":517},{"format":287,"lines":666,"tokens":650,"first":671,"others":674,"copies":331,"kind":573},{"name":602,"start":672,"end":673},555,576,[675],{"name":676,"start":677,"end":678},"scripts\u002Fgoogle_auth.py",1101,1122,{"format":287,"lines":369,"tokens":680,"first":681,"others":685,"copies":331,"kind":573},93,{"name":682,"start":683,"end":684},"scripts\u002Fdataforseo_merchant.py",320,330,[686],{"name":682,"start":298,"end":687},439,{"files":337,"minified":337,"sample":689},[],{"score":266,"grade":267,"size":691,"dimensions":695},{"lines":692,"files":693,"class":694},44415,177,"M",[696,707,714],{"id":697,"source":698,"value":699,"adjusted":700,"lines":701,"halfLife":702,"formats":703,"excluded":704,"weight":340,"score":706},"duplication","jscpd",2.4,2.5,1075,8.5,[287,301,315,339],[329,294,705],"data",81.8,{"id":708,"source":698,"value":337,"adjusted":709,"lines":575,"halfLife":710,"coverage":711,"weight":712,"score":713},"dead-code",0.2,7.5,94.1,0.941,98.3,{"id":715,"source":698,"value":716,"adjusted":717,"lines":718,"halfLife":719,"weight":340,"score":720},"complexity",56.5,54.9,25087,50,46.7,{"total":722,"mean":723,"files":724},6885,38.9,[725,729,734,739,742,747,752,757,762,767],{"path":630,"complexity":726,"lines":727,"bytes":728},408,2714,100608,{"path":730,"complexity":731,"lines":732,"bytes":733},"scripts\u002Fagentic_check.py",303,918,45587,{"path":735,"complexity":736,"lines":737,"bytes":738},"scripts\u002Furl_safety.py",199,1195,45633,{"path":676,"complexity":693,"lines":740,"bytes":741},1151,41754,{"path":743,"complexity":744,"lines":745,"bytes":746},"scripts\u002Fdrift_compare.py",158,608,22811,{"path":748,"complexity":749,"lines":750,"bytes":751},"scripts\u002Frender_page.py",143,777,27963,{"path":753,"complexity":754,"lines":755,"bytes":756},"scripts\u002Fpagespeed_check.py",137,669,23891,{"path":758,"complexity":759,"lines":760,"bytes":761},"scripts\u002Flighthouse_agentic.py",122,422,17836,{"path":763,"complexity":764,"lines":765,"bytes":766},"scripts\u002Fbing_webmaster.py",120,611,22294,{"path":768,"complexity":644,"lines":769,"bytes":770},"scripts\u002Fmatomo_report.py",708,26499,{"percentage":772,"findings":325,"files":773,"byCategory":774,"largest":777},0.04,145,[775],{"category":776,"count":325},"unused-symbol",[778,780,783],{"category":776,"path":630,"name":779,"line":540,"lines":444},"_rating_color",{"category":776,"path":630,"name":781,"line":782,"lines":318},"_img_tag",954,{"category":776,"path":630,"name":784,"line":785,"lines":786},"_finding_severity",1079,4,{"\u002Ftrending\u002FAgriciDaniel\u002Fclaude-seo":788},{"views":337,"visits":337},1792999013810]