
Product Alerting
FreeIntegrate alerting into PostHog products effectively.
Free · Opens the source repo
What Product Alerting does
The Product Alerting skill is designed for developers looking to add or extend alerting capabilities within PostHog products. It serves as a comprehensive guide that outlines the necessary steps and considerations for integrating alerting features, ensuring that developers have a clear path to follow. This skill is particularly useful for teams that want to implement alerting without starting from scratch, leveraging shared infrastructure and best practices.
This skill covers two primary use cases: adding platform alerting to a product and extending the existing alerting platform. Developers can compose alerting features by utilizing shared lifecycle states, destination types, delivery methods, scheduling options, and frontend components. The skill emphasizes the importance of reusing existing code and adhering to platform invariants, which helps maintain consistency and reliability across different products.
The documentation includes specific references for adopting alerting, building frontend components, and extending shared capabilities. It guides users through the process of creating product-local alert frameworks while ensuring that any reusable components are integrated into the shared infrastructure. This approach minimizes duplication of effort and promotes a cohesive alerting experience across PostHog products.
However, it is important to note that this skill is not intended for configuring alerts in an existing product. Instead, it focuses on the engineering aspects of adding and extending alerting functionalities, making it ideal for teams that are in the early stages of implementing alerting or looking to enhance their existing alerting capabilities.
When to use it
Use this skill when starting a new PostHog product that requires alerting or when extending the alerting capabilities of an existing product.
When not to use it
This skill is not suitable for configuring alerts in products that already have established alerting systems.
What you can build with it
New Product Development
When starting a new PostHog product, use this skill to integrate alerting features from the ground up.
Extending Alert Capabilities
If your existing product needs enhanced alerting features, this skill provides the framework for extending those capabilities.
Building Shared Components
Use this skill to develop shared alert editor components and other reusable features for multiple PostHog products.
How to install Product Alerting
View source1. Install with the skills CLI
npx skills add posthog/posthog/adding-product-alerting --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by posthogAdding and extending product alerting
[!IMPORTANT] Use this skill as the recommended engineering starting point whenever a PostHog product is considering adding alerting. Start here before creating a product-local alert framework.
This skill covers two jobs:
- Add platform alerting to a product by composing the shared lifecycle, destination, delivery, scheduling, email, and frontend primitives.
- Extend the alerts platform when a reusable capability, option, or advanced behavior belongs in shared infrastructure.
Route first
| Request | Path | Read |
|---|---|---|
| Add alerting to a product | Adopt | adopting-platform-alerting.md |
| Build or extend a product alert editor, destination UI, advanced options, or evaluation history | Frontend | frontend-alerting.md |
| Add a lifecycle rule, destination type, delivery behavior, schedule primitive, email capability, wizard option, or shared evaluation feature | Extend | extending-platform-alerting.md |
| Change behavior for one existing product | Adopt first | Keep it product-owned unless the behavior is reusable and backed by a real second use case |
| Understand ownership or choose the correct layer | Architecture | architecture.md |
| Configure or author an existing logs or error tracking alert | Out of scope | Use authoring-log-alerts or authoring-error-tracking-alerts |
| Add real-time in-app notifications | Out of scope | Use sending-notifications |
Platform invariants
Both paths must preserve these rules:
- Evaluation stays domain-specific. Products decide whether their data breached. The shared lifecycle consumes normalized
CheckInput. - One lifecycle machine. Reuse
products/alerts/backend/state_machine.py; express real product differences throughAlertPolicy, not forks. - One product mutator. Every persisted
stateorconsecutive_failureswrite goes through the product adapter'sapply_outcome. - Dispatch and persistence agree. For HogFunction notifications, do not persist a notification-dependent transition until the internal-event producer acknowledges the event. Restore the pre-check outcome when production fails. This acknowledgement does not confirm downstream destination execution.
- Destinations are allowlisted. Shared support does not automatically expose a destination in every product.
- Scheduling math is shared, eligibility is product-owned. Reuse fixed-cadence, calendar-anchor, timezone, and schedule-restriction helpers from
products/alerts/backend/scheduling.py. Keep model-specific due predicates and persistence with the adopter. - Shared code has no product branches. The lifecycle module stays pure Python. Reusable Django behavior belongs elsewhere in
products/alerts/backend/. - Frontend data is normalized at the product boundary. Shared editor components render normalized definitions, destinations, advanced options, schedules, and history. Product API calls, payloads, and evaluation-specific fields stay in the product adapter.
- Defaults remain backward compatible. New platform options must preserve existing adopters until they explicitly opt in.
Current limits
There is no generic alert base model, product registry, push-mode submit_check(...), generic scheduler runner, or generic Temporal harness. Do not invent a parallel framework around those missing pieces. For non-insight products, keep evaluation, persistence, due queries, history, and orchestration in the product until a shared contract lands.
Reference appendix
| Topic | Reference |
|---|---|
| Layer ownership, public contracts, and reference adopters | architecture.md |
| Add alerting to a product | adopting-platform-alerting.md |
| Extend shared alert infrastructure | extending-platform-alerting.md |
| Build the product alert frontend | frontend-alerting.md |
Frequently asked questions about Product Alerting
Similar skills
Python PyPI Package Builder
Streamline the process of creating and publishing Python packages.
Minecraft Plugin Development
Streamline your Minecraft server plugin creation.
MCP Server Builder
Easily build .NET MCP servers with the latest standards.
CommunityToolkit.Mvvm Messenger
Decoupled communication for ViewModels in .NET applications.
MVVM Toolkit DI
Streamline ViewModel integration with Dependency Injection in .NET.
MCP Apps Builder
Essential guidelines for MCP server development.
