Skip to content
cccskills
FreePublished on GitHub

adding-product-alerting

Recommended repo-engineering guide when adding alerting to a PostHog product or extending the shared alerts platform. Routes lifecycle state machines, AlertPolicy, destinations, HogFunction dispatch, email, fixed-cadence and calendar scheduling, insight evaluation, the AlertWizard, and shared alert editor components. Use for product alert implementations, shared destination types, lifecycle or scheduling options, advanced alert settings, and platform alert infrastructure. Not for configuring alerts in an existing product.

The English summary is being prepared. Showing the original description.

karanmrn/karanagentskills3 stars(GitHub 3 + cccskills 0)

Run score Not tested

See how to install

Files included (5)

  • SKILL.md6.2 KB
  • references/adopting-platform-alerting.md7.6 KB
  • references/architecture.md8.4 KB
  • references/extending-platform-alerting.md10.7 KB
  • references/frontend-alerting.md7.9 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Adding 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:

  1. Add platform alerting to a product by composing the shared lifecycle, destination, delivery, scheduling, email, and frontend primitives.
  2. Extend the alerts platform when a reusable capability, option, or advanced behavior belongs in shared infrastructure.

Route first

RequestPathRead
Add alerting to a productAdoptadopting-platform-alerting.md
Build or extend a product alert editor, destination UI, advanced options, or evaluation historyFrontendfrontend-alerting.md
Add a lifecycle rule, destination type, delivery behavior, schedule primitive, email capability, wizard option, or shared evaluation featureExtendextending-platform-alerting.md
Change behavior for one existing productAdopt firstKeep it product-owned unless the behavior is reusable and backed by a real second use case
Understand ownership or choose the correct layerArchitecturearchitecture.md
Configure or author an existing logs or error tracking alertOut of scopeUse authoring-log-alerts or authoring-error-tracking-alerts
Add real-time in-app notificationsOut of scopeUse sending-notifications

Platform invariants

Both paths must preserve these rules:

  1. Evaluation stays domain-specific. Products decide whether their data breached. The shared lifecycle consumes normalized CheckInput.
  2. One lifecycle machine. Reuse products/alerts/backend/state_machine.py; express real product differences through AlertPolicy, not forks.
  3. One product mutator. Every persisted state or consecutive_failures write goes through the product adapter's apply_outcome.
  4. 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.
  5. Destinations are allowlisted. Shared support does not automatically expose a destination in every product.
  6. 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.
  7. Shared code has no product branches. The lifecycle module stays pure Python. Reusable Django behavior belongs elsewhere in products/alerts/backend/.
  8. 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.
  9. 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

TopicReference
Layer ownership, public contracts, and reference adoptersarchitecture.md
Add alerting to a productadopting-platform-alerting.md
Extend shared alert infrastructureextending-platform-alerting.md
Build the product alert frontendfrontend-alerting.md

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Automate 21risk tasks via Rube MCP (Composio). Always search tools first for current schemas.

The English summary is being prepared. Showing the original description.

karanmrn/karanagentskills3Updated Aug 28, 2026

Automate 2chat tasks via Rube MCP (Composio). Always search tools first for current schemas.

The English summary is being prepared. Showing the original description.

karanmrn/karanagentskills3Updated Aug 28, 2026

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

The English summary is being prepared. Showing the original description.

karanmrn/karanagentskills3Updated Aug 28, 2026

Build integrated IS/BS/CF financial workbooks in Excel.

The English summary is being prepared. Showing the original description.

karanmrn/karanagentskills3Updated Aug 28, 2026

Entry point for 9Router — local/remote AI gateway with OpenAI-compatible REST for chat, image, TTS, embeddings, web search, web fetch. Use when the user mentions 9Router, NINEROUTER_URL, or wants AI without writing provider boilerplate. This skill covers setup + indexes capability skills; fetch the relevant capability SKILL.md from the URLs below when needed.

The English summary is being prepared. Showing the original description.

karanmrn/karanagentskills3Updated Aug 28, 2026

Chat / code generation via 9Router using OpenAI /v1/chat/completions or Anthropic /v1/messages format with streaming + auto-fallback combos. Use when the user wants to ask an LLM, generate code, summarize text, or run prompts through 9Router.

The English summary is being prepared. Showing the original description.

karanmrn/karanagentskills3Updated Aug 28, 2026

See all skills by karanmrn

Report a problem with this skill