What problem does it solve? Zotero plugin development involves undocumented pitfalls—silent timer failures, React re-renders stripping injected UI, missing update URLs—that cause hours of debugging. This Skill encodes production-tested patterns for the full plugin lifecycle so these failures are avoided from the start. ## Core Features & Use Cases - Two-stack guidance: Covers both the classic bootstrapped stack (bootstrap.js + plain JS + manifest.json) and the TypeScript stack (zotero-plugin-scaffold + zotero-plugin-toolkit), with detection rules for existing repos. - Lifecycle and UI patterns: Startup promise sequencing, per-window add/remove tracking, XUL menu injection, ProgressWindow notifications, Notifier observers, MutationObserver re-injection, and preference panes with Fluent localization. - Build and release: XPI packaging, updates.json auto-update wiring, and GitHub release tagging. - Use Case: You want to add a context-menu item that finds PDFs for selected Zotero items. The Skill provides the manifest fields, bootstrap lifecycle, menu injection code, HTTP probing with magic-byte PDF verification, and release steps. ## Quick Start Help me create a Zotero plugin that adds a Tools menu item and shows a ProgressWindow notification when clicked.