# Plugin Design Plugins will let InfraPulse add collectors and discovery logic without hard-coding every integration into the core API. Target shape: ```python class InfraPulsePlugin: name: str display_name: str def test_connection(self, target, credentials): pass def discover(self, target, credentials): pass def collect(self, monitor): pass def default_alert_rules(self, discovered_item): pass ``` The first implementation can use simple internal collectors, but the interfaces should preserve this path. Planned plugin areas: - Website checks - Generic SNMP - Proxmox VE - Docker - UniFi - TrueNAS - Technitium DNS - Active Directory