# parapet v1.0.0 - Table of Contents

> An opinionated SRE reliability layer for Phoenix/Elixir SaaS — turn existing telemetry into user-journey SLOs, deploy correlation, incident evidence, and operator-grade runbooks.

## Pages

- Getting Started
  - [Parapet](readme.md)
  - [Parapet Getting Started](getting-started.md)

- Guides
  - [Changelog](changelog.md)
  - [Parapet Milestone History](history.md)
  - [Parapet Adopter Flows](adopter-flows.md)
  - [Parapet Operator UI Guide](operator-ui.md)
  - [Parapet Troubleshooting](troubleshooting.md)
  - [Parapet SLO Authoring Guide](slo-authoring-guide.md)

- Integration Guides
  - [Parapet + Sigra](sigra.md)
  - [Parapet + Accrue](accrue.md)
  - [Parapet + Rulestead](rulestead.md)
  - [Parapet + Threadline](threadline.md)
  - [Parapet + Chimeway](chimeway.md)
  - [Parapet + Mailglass](mailglass.md)
  - [Parapet + Rindle](rindle.md)
  - [Parapet + Scoria](scoria.md)

- Reference
  - [Stability &amp; Deprecation Policy](stability.md)
  - [Parapet SLO Reference](slo-reference.md)
  - [Telemetry Event Schema](telemetry.md)

## Modules

- [Parapet](Parapet.md): Parapet provides telemetry foundations and safety rails for Phoenix SaaS teams.
- [Parapet.Automation.CircuitBreaker](Parapet.Automation.CircuitBreaker.md): Provides flap protection by short-circuiting automated runbook execution
if it loops excessively.
- [Parapet.Automation.ClaimService](Parapet.Automation.ClaimService.md): Transaction seam for durable logical-action claims under contention.
- [Parapet.Automation.Executor](Parapet.Automation.Executor.md): Oban worker for executing automated runbook mitigations.
Safely delegates back to the Operator API under a system identity.
- [Parapet.Capabilities](Parapet.Capabilities.md): Registry for dynamic capabilities provided by activated adapters.
This module serves as the Phase 7 named recovery contract.
- [Parapet.Deploy](Parapet.Deploy.md): API for emitting deployment markers as telemetry events.
- [Parapet.Escalation.Policy](Parapet.Escalation.Policy.md): Behaviour for incident escalation adapters.
- [Parapet.Escalation.Worker](Parapet.Escalation.Worker.md): Oban worker for durable asynchronous dispatch of escalations.
- [Parapet.Evidence](Parapet.Evidence.md): Public API boundary for Spine schemas.
Enforces a boundary that prevents high-volume telemetry from writing directly
to the durable Ecto database.
- [Parapet.Evidence.ArchiveWorker](Parapet.Evidence.ArchiveWorker.md): Optional Oban worker for scheduling Parapet evidence archival.
- [Parapet.Evidence.Archiver](Parapet.Evidence.Archiver.md): Archives old, resolved incidents to a JSONL file and deletes them from the primary database.
- [Parapet.Evidence.Retrospective](Parapet.Evidence.Retrospective.md): Generates automated markdown retrospectives from an incident and its timeline.
- [Parapet.Integration](Parapet.Integration.md): Behaviour for Parapet ecosystem integration adapters.
- [Parapet.Integrations.Accrue](Parapet.Integrations.Accrue.md): Parapet integration for the Accrue billing library.
Listens to Accrue telemetry events and translates them into standard Parapet billing journey metrics.
- [Parapet.Integrations.Chimeway](Parapet.Integrations.Chimeway.md): Parapet integration for the Chimeway email library.
Listens to Chimeway telemetry events and translates them into the Phase 4
Parapet delivery telemetry contract.
- [Parapet.Integrations.Mailglass](Parapet.Integrations.Mailglass.md): Parapet integration for the Mailglass email library.
Listens to Mailglass telemetry events and translates them into the Phase 4
Parapet delivery telemetry contract.
- [Parapet.Integrations.Rindle](Parapet.Integrations.Rindle.md): Parapet integration for the Rindle media processing library.
Listens to Rindle telemetry events and translates them into the Phase 4
Parapet async telemetry contract.
- [Parapet.Integrations.Rulestead](Parapet.Integrations.Rulestead.md): Telemetry adapter for buffering Rulestead flag changes natively inside Parapet's spine.
- [Parapet.Integrations.Scoria](Parapet.Integrations.Scoria.md): Parapet integration for the Scoria AI library.
Listens to Scoria telemetry events and translates them into Parapet metrics
while stripping high-cardinality metadata and creating incidents for severe errors.
- [Parapet.Integrations.Sigra](Parapet.Integrations.Sigra.md): Parapet integration for the Sigra authentication library.
Listens to Sigra telemetry events and translates them into standard Parapet login and signup journey metrics.
- [Parapet.Integrations.Threadline](Parapet.Integrations.Threadline.md): Parapet integration for the Threadline audit library.
Maps audit data between Threadline and Parapet.
- [Parapet.MCP.PrometheusClient](Parapet.MCP.PrometheusClient.md): A read-only Prometheus HTTP API proxy using `Req` to allow external agents
to retrieve predefined time-series metrics.
- [Parapet.MCP.Server](Parapet.MCP.Server.md): Core MCP server tool execution and routing.
Provides a controlled, read-only interface for external AI agents to investigate incidents safely.
- [Parapet.Metrics.Accrue](Parapet.Metrics.Accrue.md): Prometheus metric definitions for Accrue.
- [Parapet.Metrics.AsyncDelivery](Parapet.Metrics.AsyncDelivery.md): Shared Telemetry.Metrics catalog and PromQL selector helpers for Phase 5
async and delivery reliability slices.
- [Parapet.Metrics.Ecto](Parapet.Metrics.Ecto.md): Defines Prometheus distributions for Ecto queries.
- [Parapet.Metrics.ExemplarStore](Parapet.Metrics.ExemplarStore.md): An ETS-backed store for holding the latest trace ID associated with a metric and its tags.
This allows Prometheus formatters to quickly fetch the recent trace exemplar.
- [Parapet.Metrics.ExemplarTelemetry](Parapet.Metrics.ExemplarTelemetry.md): Attaches to Telemetry events to capture trace_ids and store them as exemplars.
- [Parapet.Metrics.HTTP](Parapet.Metrics.HTTP.md): Defines Prometheus counters and distributions for HTTP requests.
- [Parapet.Metrics.Oban](Parapet.Metrics.Oban.md): Defines Prometheus distributions and counters for Oban jobs conditionally.
- [Parapet.Metrics.Probe](Parapet.Metrics.Probe.md): Defines Prometheus distributions and counters for synthetic probes.
- [Parapet.Metrics.PrometheusFormatter](Parapet.Metrics.PrometheusFormatter.md): A custom formatter that wraps standard Prometheus output and injects
OpenMetrics exemplars for trace_ids from the ExemplarStore.
- [Parapet.Metrics.Rulestead](Parapet.Metrics.Rulestead.md): Prometheus metric definitions for Rulestead events.
- [Parapet.Metrics.Scoria](Parapet.Metrics.Scoria.md): Defines Prometheus counters and distributions for Scoria evaluation metrics.
- [Parapet.Metrics.Sigra](Parapet.Metrics.Sigra.md): Prometheus metric definitions for Sigra.
- [Parapet.Metrics.Validator](Parapet.Metrics.Validator.md): Compile-time validation for telemetry metrics to prevent TSDB cardinality explosion.
- [Parapet.Notifier](Parapet.Notifier.md): Behaviour for incident notification adapters.
- [Parapet.Notifier.ObanWorker](Parapet.Notifier.ObanWorker.md): Oban worker for durable asynchronous dispatch of notifications.
- [Parapet.Notifier.Slack](Parapet.Notifier.Slack.md): Slack adapter for Parapet notifications.
Sends rich Block Kit messages for incident updates.
- [Parapet.Notifier.Teams](Parapet.Notifier.Teams.md): MS Teams adapter for Parapet notifications.
Sends rich Adaptive Cards for incident updates.
- [Parapet.Operator](Parapet.Operator.md): Phoenix-free public boundary for the in-app Operator UI.
Provides queue/detail queries and audited command entrypoints for incident mutations.
- [Parapet.Operator.ActionPayload](Parapet.Operator.ActionPayload.md): Shared action payload contract for operator commands.
Ensures that every mutating operator command provides mandatory
audit metadata (actor, reason, correlation_id) and distinguishes
between immutable factual actions and lightweight narrative edits.
- [Parapet.Operator.WorkbenchContract](Parapet.Operator.WorkbenchContract.md): Derives operator-facing fields from the durable evidence spine, ensuring that
features like severity, journey impact, or mitigation state are computed
deterministically without modifying the core domain schemas.
- [Parapet.Plug.MCP](Parapet.Plug.MCP.md): A Plug to handle incoming MCP connections via HTTP SSE.
Accepts JSON-RPC POST requests and streams responses back as SSE chunks.
- [Parapet.Plug.Metrics](Parapet.Plug.Metrics.md): A plug for extracting HTTP metrics and emitting them as Telemetry events.
- [Parapet.Plug.Webhook](Parapet.Plug.Webhook.md): A Plug to receive webhooks from Alertmanager and route them to the AlertProcessor.
- [Parapet.Probe](Parapet.Probe.md): Defines a behaviour for synthetic probes.
- [Parapet.Probe.NativeScheduler](Parapet.Probe.NativeScheduler.md): A simple GenServer-based scheduler for executing synthetic probes.
- [Parapet.Probe.ObanScheduler](Parapet.Probe.ObanScheduler.md): Optional Oban worker for scheduling synthetic probes without retries.
- [Parapet.Runbook](Parapet.Runbook.md): A DSL for defining standardized runbooks.
- [Parapet.SLO](Parapet.SLO.md): Defines a Service-Level Objective (SLO) within Parapet.
- [Parapet.SLO.ChimewayDelivery](Parapet.SLO.ChimewayDelivery.md): Built-in Phase 5 delivery slices for Chimeway.
- [Parapet.SLO.Generator](Parapet.SLO.Generator.md): Generates provider-first Prometheus recording and alert rules from
bounded slice specs while retaining legacy `%Parapet.SLO{}` support.
- [Parapet.SLO.HTTP](Parapet.SLO.HTTP.md): Provides an out-of-the-box SLO definition for HTTP request serving.
- [Parapet.SLO.LoginJourney](Parapet.SLO.LoginJourney.md): Provides an out-of-the-box SLO definition for the standard login journey.
- [Parapet.SLO.MailglassDelivery](Parapet.SLO.MailglassDelivery.md): Built-in Phase 5 delivery slices for Mailglass.
- [Parapet.SLO.Oban](Parapet.SLO.Oban.md): Provides an out-of-the-box SLO definition for Oban job processing.
- [Parapet.SLO.Provider](Parapet.SLO.Provider.md): Behaviour for providing SLOs to the Parapet system.
- [Parapet.SLO.Resolvable](Parapet.SLO.Resolvable.md): Protocol to transform provider structs to `Parapet.SLO.t()`.

- [Parapet.SLO.RindleAsync](Parapet.SLO.RindleAsync.md): Built-in Phase 5 async reliability slices for Rindle.
- [Parapet.SLO.ScoriaEval](Parapet.SLO.ScoriaEval.md): Defines an SLO based on Scoria AI evaluation pass rates.
- [Parapet.SLO.SliceSpec](Parapet.SLO.SliceSpec.md): Bounded provider-owned slice description for Phase 5 generators.
- [Parapet.SLO.StarterPack.DeliverySaaS](Parapet.SLO.StarterPack.DeliverySaaS.md): Extends `Parapet.SLO.StarterPack.WebSaaS` with Mailglass and Chimeway delivery SLO slices.
- [Parapet.SLO.StarterPack.WebSaaS](Parapet.SLO.StarterPack.WebSaaS.md): Opinionated first-SLO pack for Phoenix SaaS teams.
- [Parapet.Spine.ActionClaim](Parapet.Spine.ActionClaim.md): Durable ownership record for a logical automation or escalation action.
- [Parapet.Spine.ActionItem](Parapet.Spine.ActionItem.md): Core Ecto Schema representing an ActionItem for durable workflow approvals.
- [Parapet.Spine.AlertProcessor](Parapet.Spine.AlertProcessor.md): Processes alert batches received from webhooks.
- [Parapet.Spine.Incident](Parapet.Spine.Incident.md): Ecto schema representing a durable evidence incident.
- [Parapet.Spine.SystemEvent](Parapet.Spine.SystemEvent.md): Ecto schema representing a general system event (like a flag mutation or deployment).
These are buffered and pruned periodically.
- [Parapet.Spine.SystemEventPruner](Parapet.Spine.SystemEventPruner.md): A built-in GC pruner to prevent `Parapet.Spine.SystemEvent` storage bloat.
Periodically deletes events older than a specified threshold.
- [Parapet.Spine.TimelineEntry](Parapet.Spine.TimelineEntry.md): Ecto schema representing an entry in a durable incident timeline.
- [Parapet.Spine.ToolAudit](Parapet.Spine.ToolAudit.md): Ecto schema representing an audit record of a tool execution.
- [Parapet.Telemetry.AsyncDelivery](Parapet.Telemetry.AsyncDelivery.md): Public contract helpers for Parapet's async and delivery telemetry families.

## Mix Tasks

- [mix parapet.archive](Mix.Tasks.Parapet.Archive.md): Archives resolved incidents older than the retention window to a JSONL file.
- [mix parapet.doctor](Mix.Tasks.Parapet.Doctor.md): Statically analyzes the application's Parapet configuration and exposes a runtime-oriented
`cluster` mode for live facts.
- [mix parapet.gen.archive_indexes](Mix.Tasks.Parapet.Gen.ArchiveIndexes.md): Generates the Parapet migration that updates archive-related indexes and constraints.

- [mix parapet.gen.grafana](Mix.Tasks.Parapet.Gen.Grafana.md): Generates importable Grafana dashboards and provisioning YAML based on the user's SLOs.

- [mix parapet.gen.prometheus](Mix.Tasks.Parapet.Gen.Prometheus.md): Generates valid Prometheus recording and alerting rules based on the user's defined SLOs.

- [mix parapet.gen.runbooks](Mix.Tasks.Parapet.Gen.Runbooks.md): Generates a fixed host-owned runbook catalog for Parapet.

- [mix parapet.gen.scoria](Mix.Tasks.Parapet.Gen.Scoria.md): Generates Grafana dashboards and Prometheus rules for Parapet's Scoria AI telemetry integration.

- [mix parapet.gen.spine](Mix.Tasks.Parapet.Gen.Spine.md): Installs the Parapet Evidence Spine by generating migrations and configuring the host Ecto Repo.

- [mix parapet.gen.ui](Mix.Tasks.Parapet.Gen.Ui.md): Generates Parapet operator UI components for the host Phoenix application.

- [mix parapet.install](Mix.Tasks.Parapet.Install.md): Installs Parapet into a Phoenix application by scaffolding the host-owned instrumenter
and wiring it into the endpoint.

- [mix verify.public_api](Mix.Tasks.Verify.PublicApi.md): Verifies that all public API modules have documentation and a stability-tier
declaration, and generates a manifest.

