{"adoption": {"forks": 39, "observed_at": "2026-08-28T04:04:25.175764+00:00", "stars": 1334}, "canonical_url": "https://ross.abutalabs.com/products/zotero-attanger", "card": {"archived": false, "artifact_type": "plugin", "description": "Attanger (Attachment Manager) organizes Zotero attachments: attach recent downloads, match files to items, rename them with Zotero's native templates, and move or copy them into a predictable folder structure.", "domain": ["files", "education", "developer-tools"], "enriched": true, "function": ["file-system", "developer-tools"], "health_score": 99, "homepage": null, "language": "TypeScript", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["MuiseDestiny/zotero-attanger"], "name": "MuiseDestiny/zotero-attanger", "platform": ["cross-platform"], "pushed_at": "2026-08-23T01:06:29+00:00", "repo": "MuiseDestiny/zotero-attanger", "stars": 1334, "tags": ["zotero", "zotero-plugin", "attachment-management", "reference-management", "pdf", "file-renaming", "academic"], "topics": [], "urls": [], "use_cases": ["organize zotero attachments into folders automatically", "rename pdf files in zotero using citation templates", "attach recently downloaded pdfs to zotero items", "convert stored zotero attachments to linked files", "match downloaded pdf files to zotero library items", "keep zotero attachment filenames in sync with metadata", "reconnect broken linked attachments in zotero"], "what_it_is": "A Zotero plugin (add-on) that manages attachments by attaching recent downloads, matching files to items, renaming them with Zotero's native templates, and organizing them into predictable folder structures. It supports both stored and linked-file workflows with metadata-driven subfolder organization.", "when_to_avoid": ["you don't use Zotero as your reference manager", "you only need basic attachment storage without renaming or organization rules", "you need a standalone file manager unrelated to bibliographic software"], "when_to_choose": []}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/zotero-attanger", "repo": "MuiseDestiny/zotero-attanger", "role": "main", "score": 93}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.175764+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:44:31.840098+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47d1b1141874c84cecda2d4abf9271cf6760272dfc3b6837f59056ce0abd9b23", "fetched_at": "2026-08-28T04:04:25.175764+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MuiseDestiny/zotero-attanger"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.175764+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:44:31.840098+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47d1b1141874c84cecda2d4abf9271cf6760272dfc3b6837f59056ce0abd9b23", "fetched_at": "2026-08-28T04:04:25.175764+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MuiseDestiny/zotero-attanger"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:44:31.840098+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47d1b1141874c84cecda2d4abf9271cf6760272dfc3b6837f59056ce0abd9b23", "fetched_at": "2026-08-28T04:04:25.175764+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MuiseDestiny/zotero-attanger"}], "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:25.175764+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.175764+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.175764+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:44:31.840098+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47d1b1141874c84cecda2d4abf9271cf6760272dfc3b6837f59056ce0abd9b23", "fetched_at": "2026-08-28T04:04:25.175764+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MuiseDestiny/zotero-attanger"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.175764+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.175764+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:44:31.840098+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47d1b1141874c84cecda2d4abf9271cf6760272dfc3b6837f59056ce0abd9b23", "fetched_at": "2026-08-28T04:04:25.175764+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MuiseDestiny/zotero-attanger"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.175764+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.175764+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.175764+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:44:31.840098+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47d1b1141874c84cecda2d4abf9271cf6760272dfc3b6837f59056ce0abd9b23", "fetched_at": "2026-08-28T04:04:25.175764+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MuiseDestiny/zotero-attanger"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.175764+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.175764+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:44:31.840098+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47d1b1141874c84cecda2d4abf9271cf6760272dfc3b6837f59056ce0abd9b23", "fetched_at": "2026-08-28T04:04:25.175764+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MuiseDestiny/zotero-attanger"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:44:31.840098+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47d1b1141874c84cecda2d4abf9271cf6760272dfc3b6837f59056ce0abd9b23", "fetched_at": "2026-08-28T04:04:25.175764+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MuiseDestiny/zotero-attanger"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:44:31.840098+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47d1b1141874c84cecda2d4abf9271cf6760272dfc3b6837f59056ce0abd9b23", "fetched_at": "2026-08-28T04:04:25.175764+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MuiseDestiny/zotero-attanger"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:44:31.840098+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47d1b1141874c84cecda2d4abf9271cf6760272dfc3b6837f59056ce0abd9b23", "fetched_at": "2026-08-28T04:04:25.175764+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MuiseDestiny/zotero-attanger"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 70, "rhythm": 99}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 983, "days_push": 11, "days_rel": 11, "gap_med": 20, "n_releases_24m": 24}, "score": 93, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}