# Product Guidelines - SilverBullet iCalendar Plug ## Documentation and Communication Style - **Technical and Concise:** All documentation, configuration examples, and user-facing messages should be accurate, brief, and focused on providing high value to the user. Avoid unnecessary fluff or conversational filler. - **Example-Driven:** Prioritize clear, copy-pasteable configuration snippets and query examples to help users get started quickly. ## Visual Identity and User Interface - **Native SilverBullet Integration:** The plug should feel like a core part of the SilverBullet experience. Commands, notifications, and any future UI elements must strictly adhere to SilverBullet's design patterns and aesthetic. - **Informative and Actionable Feedback:** - Notifications should provide immediate clarity on the outcome of actions (e.g., "Synced 194 events", "Sync failed: HTTP 404"). - Error messages should be descriptive enough to aid in troubleshooting (e.g., specifying which source failed). - **Subtle Consistency:** Use consistent naming conventions for commands (`iCalendar: Sync`, `iCalendar: Force Sync`, etc.) to maintain a professional and organized command palette. ## Code and Maintenance Guidelines (Inferred) - **Robust Error Handling:** Always catch and log errors during fetch and parse operations to prevent the entire sync process from crashing. - **Performance First:** Efficiently process large `.ics` files and avoid redundant indexing operations. - **Version Alignment:** Ensure the version number is synchronized across `deno.json`, `icalendar.plug.yaml`, `PLUG.md`, and the TypeScript source code.