{"adoption": {"forks": 23, "observed_at": "2026-08-28T04:03:17.823636+00:00", "stars": 1030}, "canonical_url": "https://ross.abutalabs.com/products/zotero-format-metadata", "card": {"archived": false, "artifact_type": "plugin", "description": "Linter for Zotero. A plugin for Zotero to format item metadata. Shortcut to set title rich text; set journal abbreviations, university places, and item languages, etc; detect duplicate items.", "domain": ["developer-tools", "education"], "enriched": true, "function": ["linter", "developer-tools"], "health_score": 99, "homepage": null, "language": "TypeScript", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["northword/zotero-format-metadata"], "name": "northword/zotero-format-metadata", "platform": ["cross-platform"], "pushed_at": "2026-08-14T10:04:46+00:00", "repo": "northword/zotero-format-metadata", "stars": 1030, "tags": ["zotero", "zotero-plugin", "metadata", "citation-management", "reference-manager", "journal-abbreviations", "duplicate-detection", "desktop"], "topics": ["abbreviation", "journal", "zotero", "zotero-addon", "zotero-plugin", "linter", "metadata"], "urls": [], "use_cases": ["format zotero item metadata automatically", "set journal abbreviations in zotero", "detect duplicate items when importing into zotero", "fix title rich text formatting like subscripts and italics in zotero", "detect item language and normalize dates and DOIs in zotero", "update item metadata from DOI or arxiv id", "clean up inconsistent metadata in my zotero library"], "what_it_is": "A Zotero plugin that acts as a linter for item metadata, automatically validating and correcting fields like titles, journal abbreviations, languages, dates, DOIs, and pages. It also provides rich text title editing, duplicate item detection on import, and one-click metadata updates via DOI or ArXiv ID.", "when_to_avoid": ["you use a reference manager other than Zotero", "you only need a citation style formatter rather than metadata linting", "you prefer fully manual metadata curation without automated corrections"], "when_to_choose": ["you use Zotero and want automatic validation and correction of item metadata", "you need journal abbreviations, university places, or language fields filled in consistently", "you want duplicate detection when adding items to your library", "you need rich text formatting for titles such as superscripts and italics"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/zotero-format-metadata", "repo": "northword/zotero-format-metadata", "role": "main", "score": 91}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.823636+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:07:34.967443+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "344a96202f7fff974a463c370299729d0c08fb0a912c6b9fffec830a27c8d35a", "fetched_at": "2026-08-28T04:03:17.823636+00:00", "kind": "readme", "missing": false, "url": "https://github.com/northword/zotero-format-metadata"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.823636+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:07:34.967443+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "344a96202f7fff974a463c370299729d0c08fb0a912c6b9fffec830a27c8d35a", "fetched_at": "2026-08-28T04:03:17.823636+00:00", "kind": "readme", "missing": false, "url": "https://github.com/northword/zotero-format-metadata"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:07:34.967443+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "344a96202f7fff974a463c370299729d0c08fb0a912c6b9fffec830a27c8d35a", "fetched_at": "2026-08-28T04:03:17.823636+00:00", "kind": "readme", "missing": false, "url": "https://github.com/northword/zotero-format-metadata"}], "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:03:17.823636+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.823636+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.823636+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:07:34.967443+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "344a96202f7fff974a463c370299729d0c08fb0a912c6b9fffec830a27c8d35a", "fetched_at": "2026-08-28T04:03:17.823636+00:00", "kind": "readme", "missing": false, "url": "https://github.com/northword/zotero-format-metadata"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.823636+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.823636+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:07:34.967443+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "344a96202f7fff974a463c370299729d0c08fb0a912c6b9fffec830a27c8d35a", "fetched_at": "2026-08-28T04:03:17.823636+00:00", "kind": "readme", "missing": false, "url": "https://github.com/northword/zotero-format-metadata"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.823636+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.823636+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.823636+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:07:34.967443+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "344a96202f7fff974a463c370299729d0c08fb0a912c6b9fffec830a27c8d35a", "fetched_at": "2026-08-28T04:03:17.823636+00:00", "kind": "readme", "missing": false, "url": "https://github.com/northword/zotero-format-metadata"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.823636+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.823636+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:07:34.967443+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "344a96202f7fff974a463c370299729d0c08fb0a912c6b9fffec830a27c8d35a", "fetched_at": "2026-08-28T04:03:17.823636+00:00", "kind": "readme", "missing": false, "url": "https://github.com/northword/zotero-format-metadata"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:07:34.967443+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "344a96202f7fff974a463c370299729d0c08fb0a912c6b9fffec830a27c8d35a", "fetched_at": "2026-08-28T04:03:17.823636+00:00", "kind": "readme", "missing": false, "url": "https://github.com/northword/zotero-format-metadata"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:07:34.967443+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "344a96202f7fff974a463c370299729d0c08fb0a912c6b9fffec830a27c8d35a", "fetched_at": "2026-08-28T04:03:17.823636+00:00", "kind": "readme", "missing": false, "url": "https://github.com/northword/zotero-format-metadata"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:07:34.967443+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "344a96202f7fff974a463c370299729d0c08fb0a912c6b9fffec830a27c8d35a", "fetched_at": "2026-08-28T04:03:17.823636+00:00", "kind": "readme", "missing": false, "url": "https://github.com/northword/zotero-format-metadata"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 90, "rhythm": 84}, "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": 1261, "days_push": 19, "days_rel": 28, "gap_med": 4, "n_releases_24m": 70}, "score": 91, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}