# Event Payload: `kaizen.metrics.recorded` **Status:** implemented — `kaizen-agentic metrics record --emit-event` Emitted after a successful metrics append when `--emit-event` is set. Default off for backward compatibility. ## Subject ``` activity.kaizen.metrics.recorded ``` Published to NATS (activity-core `EventEnvelope` format). Consumed by activity-core event router and definitions such as `low-success-rate-review`. ## Envelope ```json { "id": "550e8400-e29b-41d4-a716-446655440000", "type": "kaizen.metrics.recorded", "version": "1.0", "timestamp": "2026-06-18T12:00:00Z", "publisher": "kaizen-agentic", "attributes": { "agent": "coach", "project": "kaizen-agentic", "summary": { "success_rate": 0.75, "execution_count": 12, "avg_quality": 0.81 } } } ``` ### Attribute fields | Field | Type | Notes | |-------|------|-------| | `agent` | string | Agent name from `metrics record ` | | `project` | string | Repo slug — `KAIZEN_PROJECT_SLUG` env or directory basename | | `summary.success_rate` | float | Rolling rate from `summary.json` after append | | `summary.execution_count` | int | Total executions | | `summary.avg_quality` | float | Maps from `avg_quality_score` in ADR-004 summary | ## CLI ```bash kaizen-agentic metrics record coach --success --time 120 --quality 0.9 --emit-event ``` Requires `nats-py` (`pip install 'kaizen-agentic[events]'`). Configure broker via `NATS_URL` (default `nats://localhost:4222`). Events are **not** emitted when append is skipped (duplicate idempotency key). ## Consumers - **activity-core** — `trigger.type: event` with `event_type: kaizen.metrics.recorded` - **coulomb-loop** — `low-success-rate-review` (LOOP-WP-0002); replaces hourly health sweep when event path is stable ## Related - [low-success-rate-review](activity-definitions/low-success-rate-review.md) - [INTEGRATION_PATTERNS.md Pattern 2](../INTEGRATION_PATTERNS.md) - coulomb-loop `loops/quality-escalation/event-payload.md` (customer contract)