What composes the health suite Rows in one health report arrive from six independent origins: always-on built-ins, presence-gated service categories, categories you declare, MCP checks derived from claude_code.servers, an archiver freshness check derived from the build profile, and Python plugins. They compose into one categorized suite whose rows each carry a cost class, and three surfaces read that suite at different tiers. WHERE ROWS COME FROM WHO READS THE SUITE built-in core checks always on presence-gated ariel · channel_finder health.categories what you declare yourself health.auto.mcp read from claude_code.servers freshness_channel named in the build profile health.plugins your own Python checks one categorized suite poll — cheap, side-effect-free on_demand — costly or externally visible; runs only with --full --category scopes which categories run, it never elevates a cost class metadata-only override tunes a built-in, never redefines it osprey health poll by default --full adds on_demand SYSTEM dashboard poll only — a browser can never trigger on_demand agent tools health_check — auto-approved health_check_full — asks first declare health.categories.archiver or name a freshness_channel — never both; a profile that does both is refused at build time