{"adoption": {"forks": 69, "observed_at": "2026-09-03T02:15:14.578525+00:00", "stars": 1039}, "canonical_url": "https://ross.abutalabs.com/products/pyscn", "card": {"archived": false, "artifact_type": "cli-tool", "description": "An Intelligent Python Code Quality Analyzer", "domain": ["developer-tools"], "enriched": true, "function": ["static-site-generator", "linter", "developer-tools"], "health_score": 100, "homepage": "https://docs.codescan.dev/", "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["ludo-technologies/pyscn"], "name": "ludo-technologies/pyscn", "platform": ["windows", "cli", "python", "go"], "pushed_at": "2026-09-02T15:34:19+00:00", "repo": "ludo-technologies/pyscn", "stars": 1039, "tags": ["static-analysis", "code-quality", "clone-detection", "cyclomatic-complexity", "dead-code", "architecture-analysis", "mcp", "tree-sitter", "ci-cd", "python", "linux", "macos"], "topics": ["architecture-analysis", "clone-detection", "code-complexity", "dependency-analysis", "python", "static-analysis", "dead-code-detection"], "urls": [], "use_cases": ["find dead and unreachable code in my python project", "detect duplicate and copy-pasted code worth refactoring", "measure cyclomatic and cognitive complexity of functions", "check for circular imports before merging", "score overall codebase health with an HTML report", "set up a code quality gate in CI", "find complex code to simplify with an AI coding agent", "analyze class coupling and cohesion metrics"], "what_it_is": "pyscn is a fast Python code quality analyzer written in Go that performs structural analysis using control-flow graphs, tree-sitter syntax trees, and import graphs. It scores codebases 0-100, detecting dead code, duplicate code (Type 1-4 clones), complexity hotspots, circular imports, and class design issues, with HTML reports, CI gates, MCP server, and AI agent skills.", "when_to_avoid": ["you need style linting (use ruff) or type checking (use mypy/pyright)", "you need runtime bug, security, or performance detection", "you want to analyze Jupyter notebooks directly", "you need auto-fixing of reported issues"], "when_to_choose": ["you need structural analysis beyond what linters like ruff or pylint catch", "you want fast whole-repo analysis (100k+ lines/sec) with zero Python runtime dependencies", "you use AI coding agents (Claude Code, Cursor) and want them to run quality checks", "you need CI quality gates with configurable complexity thresholds", "you want architecture insights like import cycles and module communities"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pyscn", "repo": "ludo-technologies/pyscn", "role": "main", "score": 81}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.578525+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:04:41.353712+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59c237fca7a397c9c601724d3feb10e99048237c723de41788a8b5cdc72e56c5", "fetched_at": "2026-09-03T02:15:14.578525+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ludo-technologies/pyscn"}, {"content_hash": "bd2f9028c2eef4310fe9a806fb863c1449ce9348abf0891a3b5eb2d54f268a6d", "fetched_at": "2026-08-29T13:05:34.073391+00:00", "kind": "homepage", "missing": false, "url": "https://docs.codescan.dev/"}, {"content_hash": "244f0192a140a9984fd7ec7452fb01b6215c7512a92f2a47ade9c4ebf9f099cf", "fetched_at": "2026-08-29T13:05:34.082694+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/getting-started/installation"}, {"content_hash": "d42d2525d435a2f9c85711bb5a335646b6789a4f3ff7d83c6f9281247f731296", "fetched_at": "2026-08-29T13:05:34.084562+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations"}, {"content_hash": "f79a112da03654c9af0f989f91d83308d998e6fa82f9d627cae9a6a27fd3b615", "fetched_at": "2026-08-29T13:05:34.086195+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/faq"}, {"content_hash": "2edf9a0ad118ebd7497885c31cd9f43d1003245e018e1482cddeb2d2bd2bc8bf", "fetched_at": "2026-08-29T13:05:34.088275+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/getting-started/quick-start"}, {"content_hash": "ca139be5b9dec7f19521d9d5b57cc265c4badd940e752f77c65599af8bce0b6a", "fetched_at": "2026-08-29T13:05:34.090142+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/skills"}, {"content_hash": "4d6dde159e0b40a4016cbe8ff850b56112e3a4b3aa697507fe4b87bf9ea699dc", "fetched_at": "2026-08-29T13:05:34.092369+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/mcp"}, {"content_hash": "e9e9cc6d82947dfc75a5f808dad40004b1db009243c847c15f9e789871e8dacc", "fetched_at": "2026-08-29T13:05:34.094205+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/ci-cd"}, {"content_hash": "7cc49726ddd78deabec3c0d393c1197c847f66eef8524a3a0fceb014f9f27082", "fetched_at": "2026-08-29T13:05:34.096162+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/python-packaging"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.578525+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:04:41.353712+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59c237fca7a397c9c601724d3feb10e99048237c723de41788a8b5cdc72e56c5", "fetched_at": "2026-09-03T02:15:14.578525+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ludo-technologies/pyscn"}, {"content_hash": "bd2f9028c2eef4310fe9a806fb863c1449ce9348abf0891a3b5eb2d54f268a6d", "fetched_at": "2026-08-29T13:05:34.073391+00:00", "kind": "homepage", "missing": false, "url": "https://docs.codescan.dev/"}, {"content_hash": "244f0192a140a9984fd7ec7452fb01b6215c7512a92f2a47ade9c4ebf9f099cf", "fetched_at": "2026-08-29T13:05:34.082694+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/getting-started/installation"}, {"content_hash": "d42d2525d435a2f9c85711bb5a335646b6789a4f3ff7d83c6f9281247f731296", "fetched_at": "2026-08-29T13:05:34.084562+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations"}, {"content_hash": "f79a112da03654c9af0f989f91d83308d998e6fa82f9d627cae9a6a27fd3b615", "fetched_at": "2026-08-29T13:05:34.086195+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/faq"}, {"content_hash": "2edf9a0ad118ebd7497885c31cd9f43d1003245e018e1482cddeb2d2bd2bc8bf", "fetched_at": "2026-08-29T13:05:34.088275+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/getting-started/quick-start"}, {"content_hash": "ca139be5b9dec7f19521d9d5b57cc265c4badd940e752f77c65599af8bce0b6a", "fetched_at": "2026-08-29T13:05:34.090142+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/skills"}, {"content_hash": "4d6dde159e0b40a4016cbe8ff850b56112e3a4b3aa697507fe4b87bf9ea699dc", "fetched_at": "2026-08-29T13:05:34.092369+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/mcp"}, {"content_hash": "e9e9cc6d82947dfc75a5f808dad40004b1db009243c847c15f9e789871e8dacc", "fetched_at": "2026-08-29T13:05:34.094205+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/ci-cd"}, {"content_hash": "7cc49726ddd78deabec3c0d393c1197c847f66eef8524a3a0fceb014f9f27082", "fetched_at": "2026-08-29T13:05:34.096162+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/python-packaging"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:04:41.353712+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59c237fca7a397c9c601724d3feb10e99048237c723de41788a8b5cdc72e56c5", "fetched_at": "2026-09-03T02:15:14.578525+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ludo-technologies/pyscn"}, {"content_hash": "bd2f9028c2eef4310fe9a806fb863c1449ce9348abf0891a3b5eb2d54f268a6d", "fetched_at": "2026-08-29T13:05:34.073391+00:00", "kind": "homepage", "missing": false, "url": "https://docs.codescan.dev/"}, {"content_hash": "244f0192a140a9984fd7ec7452fb01b6215c7512a92f2a47ade9c4ebf9f099cf", "fetched_at": "2026-08-29T13:05:34.082694+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/getting-started/installation"}, {"content_hash": "d42d2525d435a2f9c85711bb5a335646b6789a4f3ff7d83c6f9281247f731296", "fetched_at": "2026-08-29T13:05:34.084562+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations"}, {"content_hash": "f79a112da03654c9af0f989f91d83308d998e6fa82f9d627cae9a6a27fd3b615", "fetched_at": "2026-08-29T13:05:34.086195+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/faq"}, {"content_hash": "2edf9a0ad118ebd7497885c31cd9f43d1003245e018e1482cddeb2d2bd2bc8bf", "fetched_at": "2026-08-29T13:05:34.088275+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/getting-started/quick-start"}, {"content_hash": "ca139be5b9dec7f19521d9d5b57cc265c4badd940e752f77c65599af8bce0b6a", "fetched_at": "2026-08-29T13:05:34.090142+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/skills"}, {"content_hash": "4d6dde159e0b40a4016cbe8ff850b56112e3a4b3aa697507fe4b87bf9ea699dc", "fetched_at": "2026-08-29T13:05:34.092369+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/mcp"}, {"content_hash": "e9e9cc6d82947dfc75a5f808dad40004b1db009243c847c15f9e789871e8dacc", "fetched_at": "2026-08-29T13:05:34.094205+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/ci-cd"}, {"content_hash": "7cc49726ddd78deabec3c0d393c1197c847f66eef8524a3a0fceb014f9f27082", "fetched_at": "2026-08-29T13:05:34.096162+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/python-packaging"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.578525+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.578525+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.578525+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:04:41.353712+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59c237fca7a397c9c601724d3feb10e99048237c723de41788a8b5cdc72e56c5", "fetched_at": "2026-09-03T02:15:14.578525+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ludo-technologies/pyscn"}, {"content_hash": "bd2f9028c2eef4310fe9a806fb863c1449ce9348abf0891a3b5eb2d54f268a6d", "fetched_at": "2026-08-29T13:05:34.073391+00:00", "kind": "homepage", "missing": false, "url": "https://docs.codescan.dev/"}, {"content_hash": "244f0192a140a9984fd7ec7452fb01b6215c7512a92f2a47ade9c4ebf9f099cf", "fetched_at": "2026-08-29T13:05:34.082694+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/getting-started/installation"}, {"content_hash": "d42d2525d435a2f9c85711bb5a335646b6789a4f3ff7d83c6f9281247f731296", "fetched_at": "2026-08-29T13:05:34.084562+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations"}, {"content_hash": "f79a112da03654c9af0f989f91d83308d998e6fa82f9d627cae9a6a27fd3b615", "fetched_at": "2026-08-29T13:05:34.086195+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/faq"}, {"content_hash": "2edf9a0ad118ebd7497885c31cd9f43d1003245e018e1482cddeb2d2bd2bc8bf", "fetched_at": "2026-08-29T13:05:34.088275+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/getting-started/quick-start"}, {"content_hash": "ca139be5b9dec7f19521d9d5b57cc265c4badd940e752f77c65599af8bce0b6a", "fetched_at": "2026-08-29T13:05:34.090142+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/skills"}, {"content_hash": "4d6dde159e0b40a4016cbe8ff850b56112e3a4b3aa697507fe4b87bf9ea699dc", "fetched_at": "2026-08-29T13:05:34.092369+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/mcp"}, {"content_hash": "e9e9cc6d82947dfc75a5f808dad40004b1db009243c847c15f9e789871e8dacc", "fetched_at": "2026-08-29T13:05:34.094205+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/ci-cd"}, {"content_hash": "7cc49726ddd78deabec3c0d393c1197c847f66eef8524a3a0fceb014f9f27082", "fetched_at": "2026-08-29T13:05:34.096162+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/python-packaging"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.578525+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.578525+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:04:41.353712+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59c237fca7a397c9c601724d3feb10e99048237c723de41788a8b5cdc72e56c5", "fetched_at": "2026-09-03T02:15:14.578525+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ludo-technologies/pyscn"}, {"content_hash": "bd2f9028c2eef4310fe9a806fb863c1449ce9348abf0891a3b5eb2d54f268a6d", "fetched_at": "2026-08-29T13:05:34.073391+00:00", "kind": "homepage", "missing": false, "url": "https://docs.codescan.dev/"}, {"content_hash": "244f0192a140a9984fd7ec7452fb01b6215c7512a92f2a47ade9c4ebf9f099cf", "fetched_at": "2026-08-29T13:05:34.082694+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/getting-started/installation"}, {"content_hash": "d42d2525d435a2f9c85711bb5a335646b6789a4f3ff7d83c6f9281247f731296", "fetched_at": "2026-08-29T13:05:34.084562+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations"}, {"content_hash": "f79a112da03654c9af0f989f91d83308d998e6fa82f9d627cae9a6a27fd3b615", "fetched_at": "2026-08-29T13:05:34.086195+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/faq"}, {"content_hash": "2edf9a0ad118ebd7497885c31cd9f43d1003245e018e1482cddeb2d2bd2bc8bf", "fetched_at": "2026-08-29T13:05:34.088275+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/getting-started/quick-start"}, {"content_hash": "ca139be5b9dec7f19521d9d5b57cc265c4badd940e752f77c65599af8bce0b6a", "fetched_at": "2026-08-29T13:05:34.090142+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/skills"}, {"content_hash": "4d6dde159e0b40a4016cbe8ff850b56112e3a4b3aa697507fe4b87bf9ea699dc", "fetched_at": "2026-08-29T13:05:34.092369+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/mcp"}, {"content_hash": "e9e9cc6d82947dfc75a5f808dad40004b1db009243c847c15f9e789871e8dacc", "fetched_at": "2026-08-29T13:05:34.094205+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/ci-cd"}, {"content_hash": "7cc49726ddd78deabec3c0d393c1197c847f66eef8524a3a0fceb014f9f27082", "fetched_at": "2026-08-29T13:05:34.096162+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/python-packaging"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.578525+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.578525+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.578525+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:04:41.353712+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59c237fca7a397c9c601724d3feb10e99048237c723de41788a8b5cdc72e56c5", "fetched_at": "2026-09-03T02:15:14.578525+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ludo-technologies/pyscn"}, {"content_hash": "bd2f9028c2eef4310fe9a806fb863c1449ce9348abf0891a3b5eb2d54f268a6d", "fetched_at": "2026-08-29T13:05:34.073391+00:00", "kind": "homepage", "missing": false, "url": "https://docs.codescan.dev/"}, {"content_hash": "244f0192a140a9984fd7ec7452fb01b6215c7512a92f2a47ade9c4ebf9f099cf", "fetched_at": "2026-08-29T13:05:34.082694+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/getting-started/installation"}, {"content_hash": "d42d2525d435a2f9c85711bb5a335646b6789a4f3ff7d83c6f9281247f731296", "fetched_at": "2026-08-29T13:05:34.084562+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations"}, {"content_hash": "f79a112da03654c9af0f989f91d83308d998e6fa82f9d627cae9a6a27fd3b615", "fetched_at": "2026-08-29T13:05:34.086195+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/faq"}, {"content_hash": "2edf9a0ad118ebd7497885c31cd9f43d1003245e018e1482cddeb2d2bd2bc8bf", "fetched_at": "2026-08-29T13:05:34.088275+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/getting-started/quick-start"}, {"content_hash": "ca139be5b9dec7f19521d9d5b57cc265c4badd940e752f77c65599af8bce0b6a", "fetched_at": "2026-08-29T13:05:34.090142+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/skills"}, {"content_hash": "4d6dde159e0b40a4016cbe8ff850b56112e3a4b3aa697507fe4b87bf9ea699dc", "fetched_at": "2026-08-29T13:05:34.092369+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/mcp"}, {"content_hash": "e9e9cc6d82947dfc75a5f808dad40004b1db009243c847c15f9e789871e8dacc", "fetched_at": "2026-08-29T13:05:34.094205+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/ci-cd"}, {"content_hash": "7cc49726ddd78deabec3c0d393c1197c847f66eef8524a3a0fceb014f9f27082", "fetched_at": "2026-08-29T13:05:34.096162+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/python-packaging"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.578525+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-03T02:15:14.578525+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:04:41.353712+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59c237fca7a397c9c601724d3feb10e99048237c723de41788a8b5cdc72e56c5", "fetched_at": "2026-09-03T02:15:14.578525+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ludo-technologies/pyscn"}, {"content_hash": "bd2f9028c2eef4310fe9a806fb863c1449ce9348abf0891a3b5eb2d54f268a6d", "fetched_at": "2026-08-29T13:05:34.073391+00:00", "kind": "homepage", "missing": false, "url": "https://docs.codescan.dev/"}, {"content_hash": "244f0192a140a9984fd7ec7452fb01b6215c7512a92f2a47ade9c4ebf9f099cf", "fetched_at": "2026-08-29T13:05:34.082694+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/getting-started/installation"}, {"content_hash": "d42d2525d435a2f9c85711bb5a335646b6789a4f3ff7d83c6f9281247f731296", "fetched_at": "2026-08-29T13:05:34.084562+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations"}, {"content_hash": "f79a112da03654c9af0f989f91d83308d998e6fa82f9d627cae9a6a27fd3b615", "fetched_at": "2026-08-29T13:05:34.086195+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/faq"}, {"content_hash": "2edf9a0ad118ebd7497885c31cd9f43d1003245e018e1482cddeb2d2bd2bc8bf", "fetched_at": "2026-08-29T13:05:34.088275+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/getting-started/quick-start"}, {"content_hash": "ca139be5b9dec7f19521d9d5b57cc265c4badd940e752f77c65599af8bce0b6a", "fetched_at": "2026-08-29T13:05:34.090142+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/skills"}, {"content_hash": "4d6dde159e0b40a4016cbe8ff850b56112e3a4b3aa697507fe4b87bf9ea699dc", "fetched_at": "2026-08-29T13:05:34.092369+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/mcp"}, {"content_hash": "e9e9cc6d82947dfc75a5f808dad40004b1db009243c847c15f9e789871e8dacc", "fetched_at": "2026-08-29T13:05:34.094205+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/ci-cd"}, {"content_hash": "7cc49726ddd78deabec3c0d393c1197c847f66eef8524a3a0fceb014f9f27082", "fetched_at": "2026-08-29T13:05:34.096162+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/python-packaging"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:04:41.353712+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59c237fca7a397c9c601724d3feb10e99048237c723de41788a8b5cdc72e56c5", "fetched_at": "2026-09-03T02:15:14.578525+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ludo-technologies/pyscn"}, {"content_hash": "bd2f9028c2eef4310fe9a806fb863c1449ce9348abf0891a3b5eb2d54f268a6d", "fetched_at": "2026-08-29T13:05:34.073391+00:00", "kind": "homepage", "missing": false, "url": "https://docs.codescan.dev/"}, {"content_hash": "244f0192a140a9984fd7ec7452fb01b6215c7512a92f2a47ade9c4ebf9f099cf", "fetched_at": "2026-08-29T13:05:34.082694+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/getting-started/installation"}, {"content_hash": "d42d2525d435a2f9c85711bb5a335646b6789a4f3ff7d83c6f9281247f731296", "fetched_at": "2026-08-29T13:05:34.084562+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations"}, {"content_hash": "f79a112da03654c9af0f989f91d83308d998e6fa82f9d627cae9a6a27fd3b615", "fetched_at": "2026-08-29T13:05:34.086195+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/faq"}, {"content_hash": "2edf9a0ad118ebd7497885c31cd9f43d1003245e018e1482cddeb2d2bd2bc8bf", "fetched_at": "2026-08-29T13:05:34.088275+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/getting-started/quick-start"}, {"content_hash": "ca139be5b9dec7f19521d9d5b57cc265c4badd940e752f77c65599af8bce0b6a", "fetched_at": "2026-08-29T13:05:34.090142+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/skills"}, {"content_hash": "4d6dde159e0b40a4016cbe8ff850b56112e3a4b3aa697507fe4b87bf9ea699dc", "fetched_at": "2026-08-29T13:05:34.092369+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/mcp"}, {"content_hash": "e9e9cc6d82947dfc75a5f808dad40004b1db009243c847c15f9e789871e8dacc", "fetched_at": "2026-08-29T13:05:34.094205+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/ci-cd"}, {"content_hash": "7cc49726ddd78deabec3c0d393c1197c847f66eef8524a3a0fceb014f9f27082", "fetched_at": "2026-08-29T13:05:34.096162+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/python-packaging"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:04:41.353712+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59c237fca7a397c9c601724d3feb10e99048237c723de41788a8b5cdc72e56c5", "fetched_at": "2026-09-03T02:15:14.578525+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ludo-technologies/pyscn"}, {"content_hash": "bd2f9028c2eef4310fe9a806fb863c1449ce9348abf0891a3b5eb2d54f268a6d", "fetched_at": "2026-08-29T13:05:34.073391+00:00", "kind": "homepage", "missing": false, "url": "https://docs.codescan.dev/"}, {"content_hash": "244f0192a140a9984fd7ec7452fb01b6215c7512a92f2a47ade9c4ebf9f099cf", "fetched_at": "2026-08-29T13:05:34.082694+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/getting-started/installation"}, {"content_hash": "d42d2525d435a2f9c85711bb5a335646b6789a4f3ff7d83c6f9281247f731296", "fetched_at": "2026-08-29T13:05:34.084562+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations"}, {"content_hash": "f79a112da03654c9af0f989f91d83308d998e6fa82f9d627cae9a6a27fd3b615", "fetched_at": "2026-08-29T13:05:34.086195+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/faq"}, {"content_hash": "2edf9a0ad118ebd7497885c31cd9f43d1003245e018e1482cddeb2d2bd2bc8bf", "fetched_at": "2026-08-29T13:05:34.088275+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/getting-started/quick-start"}, {"content_hash": "ca139be5b9dec7f19521d9d5b57cc265c4badd940e752f77c65599af8bce0b6a", "fetched_at": "2026-08-29T13:05:34.090142+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/skills"}, {"content_hash": "4d6dde159e0b40a4016cbe8ff850b56112e3a4b3aa697507fe4b87bf9ea699dc", "fetched_at": "2026-08-29T13:05:34.092369+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/mcp"}, {"content_hash": "e9e9cc6d82947dfc75a5f808dad40004b1db009243c847c15f9e789871e8dacc", "fetched_at": "2026-08-29T13:05:34.094205+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/ci-cd"}, {"content_hash": "7cc49726ddd78deabec3c0d393c1197c847f66eef8524a3a0fceb014f9f27082", "fetched_at": "2026-08-29T13:05:34.096162+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/python-packaging"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:04:41.353712+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59c237fca7a397c9c601724d3feb10e99048237c723de41788a8b5cdc72e56c5", "fetched_at": "2026-09-03T02:15:14.578525+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ludo-technologies/pyscn"}, {"content_hash": "bd2f9028c2eef4310fe9a806fb863c1449ce9348abf0891a3b5eb2d54f268a6d", "fetched_at": "2026-08-29T13:05:34.073391+00:00", "kind": "homepage", "missing": false, "url": "https://docs.codescan.dev/"}, {"content_hash": "244f0192a140a9984fd7ec7452fb01b6215c7512a92f2a47ade9c4ebf9f099cf", "fetched_at": "2026-08-29T13:05:34.082694+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/getting-started/installation"}, {"content_hash": "d42d2525d435a2f9c85711bb5a335646b6789a4f3ff7d83c6f9281247f731296", "fetched_at": "2026-08-29T13:05:34.084562+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations"}, {"content_hash": "f79a112da03654c9af0f989f91d83308d998e6fa82f9d627cae9a6a27fd3b615", "fetched_at": "2026-08-29T13:05:34.086195+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/faq"}, {"content_hash": "2edf9a0ad118ebd7497885c31cd9f43d1003245e018e1482cddeb2d2bd2bc8bf", "fetched_at": "2026-08-29T13:05:34.088275+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/getting-started/quick-start"}, {"content_hash": "ca139be5b9dec7f19521d9d5b57cc265c4badd940e752f77c65599af8bce0b6a", "fetched_at": "2026-08-29T13:05:34.090142+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/skills"}, {"content_hash": "4d6dde159e0b40a4016cbe8ff850b56112e3a4b3aa697507fe4b87bf9ea699dc", "fetched_at": "2026-08-29T13:05:34.092369+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/mcp"}, {"content_hash": "e9e9cc6d82947dfc75a5f808dad40004b1db009243c847c15f9e789871e8dacc", "fetched_at": "2026-08-29T13:05:34.094205+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/ci-cd"}, {"content_hash": "7cc49726ddd78deabec3c0d393c1197c847f66eef8524a3a0fceb014f9f27082", "fetched_at": "2026-08-29T13:05:34.096162+00:00", "kind": "site_page", "missing": false, "url": "https://docs.codescan.dev/integrations/python-packaging"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "longevity": 28, "rhythm": 88}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 392, "days_push": 0, "days_rel": 0, "gap_med": 2.0, "n_releases_24m": 77}, "score": 81, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 3, "stale_scrape": false}}