{"adoption": {"forks": 41, "observed_at": "2026-08-28T04:04:24.827121+00:00", "stars": 1334}, "canonical_url": "https://ross.abutalabs.com/products/ncm2", "card": {"archived": false, "artifact_type": "plugin", "description": ":heart: Slim, Fast and Hackable Completion Framework for Neovim", "domain": ["text-editors", "developer-tools"], "enriched": true, "function": ["editor", "developer-tools"], "health_score": 35, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["ncm2/ncm2"], "name": "ncm2/ncm2", "platform": ["editor-plugin", "cross-platform"], "pushed_at": "2025-06-07T09:03:37+00:00", "repo": "ncm2/ncm2", "stars": 1334, "tags": ["neovim", "vim-plugin", "autocompletion", "lsp-integration", "async-completion"], "topics": ["ncm2", "neovim", "ncm2-plugin", "vim", "completion"], "urls": [], "use_cases": ["autocomplete code in Neovim", "get completion inside HTML style and script tags", "integrate language server completions into Neovim", "expand function parameters with snippets while typing", "build custom completion sources for Neovim"], "what_it_is": "NCM2 is a slim, fast, and hackable asynchronous autocompletion framework for Neovim, written in Python with a vimscript-friendly API. It supports per-context completion across embedded languages, snippet expansion, and integration with language server protocol sources via a plugin ecosystem.", "when_to_avoid": ["you use plain Vim rather than Neovim", "you prefer a batteries-included completion engine like nvim-cmp or coc.nvim", "you need a framework under heavy active development"], "when_to_choose": ["you use Neovim and want a lightweight, hackable async completion framework", "you need context-aware completion across mixed-language files", "you want to compose completion from multiple pluggable sources"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ncm2", "repo": "ncm2/ncm2", "role": "main", "score": 44}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.827121+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:44:34.222098+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e954171488dcb881a6f58d6cb21af147ec7f7efc84ff089185e422090b256ab1", "fetched_at": "2026-08-28T04:04:24.827121+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ncm2/ncm2"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.827121+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:44:34.222098+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e954171488dcb881a6f58d6cb21af147ec7f7efc84ff089185e422090b256ab1", "fetched_at": "2026-08-28T04:04:24.827121+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ncm2/ncm2"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:44:34.222098+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e954171488dcb881a6f58d6cb21af147ec7f7efc84ff089185e422090b256ab1", "fetched_at": "2026-08-28T04:04:24.827121+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ncm2/ncm2"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.827121+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.827121+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.827121+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:44:34.222098+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e954171488dcb881a6f58d6cb21af147ec7f7efc84ff089185e422090b256ab1", "fetched_at": "2026-08-28T04:04:24.827121+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ncm2/ncm2"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.827121+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.827121+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:44:34.222098+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e954171488dcb881a6f58d6cb21af147ec7f7efc84ff089185e422090b256ab1", "fetched_at": "2026-08-28T04:04:24.827121+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ncm2/ncm2"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.827121+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.827121+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.827121+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:44:34.222098+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e954171488dcb881a6f58d6cb21af147ec7f7efc84ff089185e422090b256ab1", "fetched_at": "2026-08-28T04:04:24.827121+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ncm2/ncm2"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.827121+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.827121+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:44:34.222098+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e954171488dcb881a6f58d6cb21af147ec7f7efc84ff089185e422090b256ab1", "fetched_at": "2026-08-28T04:04:24.827121+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ncm2/ncm2"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:44:34.222098+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e954171488dcb881a6f58d6cb21af147ec7f7efc84ff089185e422090b256ab1", "fetched_at": "2026-08-28T04:04:24.827121+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ncm2/ncm2"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:44:34.222098+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e954171488dcb881a6f58d6cb21af147ec7f7efc84ff089185e422090b256ab1", "fetched_at": "2026-08-28T04:04:24.827121+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ncm2/ncm2"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:44:34.222098+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e954171488dcb881a6f58d6cb21af147ec7f7efc84ff089185e422090b256ab1", "fetched_at": "2026-08-28T04:04:24.827121+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ncm2/ncm2"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 25, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3012, "days_push": 452, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 44, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}