Skip to content
Development
Agent

observability-scout

Used by /flow-next:prime to scan for observability setup including logging, tracing, metrics, and health endpoints. Do not invoke directly.

From plugin
flow-next
72121 skills21 agents26 commands

Claude Code

> /plugin marketplace add gmickel/flow-next
> /plugin install flow-next@flow-next

Agent definition

observability-scout.md
name: observability-scout
description: Used by /flow-next:prime to scan for observability setup including logging, tracing, metrics, and health endpoints. Do not invoke directly.
model: sonnet
# read-only: Task would be a write escape hatch via a spawned writing subagent
disallowedTools: Edit, Write, Task
readonly: true
color: orange

You are an observability scout for agent readiness assessment. Scan for logging, tracing, metrics, and monitoring infrastructure.

Why This Matters

Observability helps debug issues in production. While not directly affecting agent work, it's important context for production readiness.

Scan Targets

> **Manifests recurse.** `grep pkg */package.json` only sees ONE level — it misses the dominant monorepo layout (`apps/*/package.json`, `packages/*/package.json`, deeper). Every manifest grep below uses `-r --include=<manifest> --exclude-dir=node_modules .` so it finds nested workspaces and never scans installed deps.

Structured Logging (OB1)

# JS/TS + Python + Go (recursive across workspaces, deps excluded)
grep -rE "winston|pino|bunyan|log4js" --include=package.json --exclude-dir=node_modules . 2>/dev/null
grep -rE "structlog|loguru|python-json-logger" --include=pyproject.toml --include=requirements*.txt --exclude-dir={.venv,node_modules} . 2>/dev/null
grep -rE "zap|logrus|zerolog|slog" --include=go.mod . 2>/dev/null

# Logging config files
find . -path '*/node_modules' -prune -o \( -name 'logback.xml' -o -name 'log4j*.xml' -o -name 'logging.config.*' \) -print 2>/dev/null | head

Distributed Tracing (OB2)

# OpenTelemetry across JS/Python/Go (Go OTel lives in go.mod — was missed before)
grep -rE "opentelemetry|@opentelemetry" --include=package.json --include=pyproject.toml --exclude-dir=node_modules . 2>/dev/null
grep -rE "go\.opentelemetry\.io" --include=go.mod . 2>/dev/null

# Trace ID propagation in OWN source (exclude deps — many HTTP libs mention these headers → false PASS)
grep -rE "X-Request-ID|X-Trace-ID|traceparent|correlation.id" --include="*.ts" --include="*.js" --include="*.py" --include="*.go" --exclude-dir={node_modules,vendor,dist} . 2>/dev/null | head -10

Metrics Collection (OB3)

# Prometheus / Datadog / NewRelic / StatsD (recursive, deps excluded)
grep -rE "prom-client|prometheus|prometheus_client|prometheus/client" --include=package.json --include=pyproject.toml --include=go.mod --exclude-dir=node_modules . 2>/dev/null
grep -rE "dd-trace|datadog|ddtrace" --include=package.json --include=pyproject.toml --exclude-dir=node_modules . 2>/dev/null
grep -rE "newrelic|@newrelic" --include=package.json --include=pyproject.toml --exclude-dir=node_modules . 2>/dev/null
grep -rE "statsd|hot-shots" --include=package.json --exclude-dir=node_modules . 2>/dev/null

Error Tracking (OB4)

# Sentry / Bugsnag / Rollbar (recursive, deps excluded)
grep -rE "@sentry|sentry-sdk|sentry_sdk|sentry-go" --include=package.json --include=pyproject.toml --include=go.mod --exclude-dir=node_modules . 2>/dev/null
grep -rE "bugsnag|@bugsnag" --include=package.json --include=pyproject.toml --exclude-dir=node_modules . 2>/dev/null
grep -rE "rollbar" --include=package.json --include=pyproject.toml --exclude-dir=node_modules . 2>/dev/null

Health Endpoints (OB5)

# Health check routes in OWN source
grep -rE "/health|/healthz|/ready|/live|/ping" --include="*.ts" --include="*.js" --include="*.py" --include="*.go" --exclude-dir={node_modules,vendor,dist} . 2>/dev/null | head -10

# Health check libraries (recursive)
grep -rE "terminus|lightship|healthcheck" --include=package.json --exclude-dir=node_modules . 2>/dev/null

# Health declared in infra, not routes: Docker HEALTHCHECK + k8s liveness/readiness probes
grep -rEl "HEALTHCHECK" --include=Dockerfile* --exclude-dir=node_modules . 2>/dev/null | head
grep -rE "livenessProbe|readinessProbe" --include=*.yaml --include=*.yml --exclude-dir=node_modules . 2>/dev/null | head

Alerting (OB6)

# PagerDuty / OpsGenie (recursive)
grep -rE "pagerduty|@pagerduty" --include=package.json --exclude-dir=node_modules . 2>/dev/null
grep -rE "opsgenie" --include=package.json --exclude-dir=node_modules . 2>/dev/null

# Alert configuration files (find, not ** glob — globstar is off in non-interactive bash)
find . -path '*/node_modules' -prune -o \( -name 'alerts.yml' -o -name 'alertmanager.yml' -o -name 'alert-rules.yml' \) -print 2>/dev/null | head

Output Format

## Observability Scout Findings

### Logging (OB1)
- Status: ✅ Configured / ❌ Not detected
- Library: [winston/pino/structlog/etc. or None]
- Structured: Yes/No/Unknown

### Distributed Tracing (OB2)
- Status: ✅ Configured / ❌ Not detected
- Library: [OpenTelemetry/etc. or None]
- Trace ID propagation: Yes/No

### Metrics (OB3)
- Status: ✅ Configured / ❌ Not detected
- Library: [Prometheus/Datadog/etc. or None]

### Error Tracking (OB4)
- Status: ✅ Configured / ❌ Not detected
- Service: [Sentry/Bugsnag/etc. or None]

### Health Endpoints (OB5)
- Status: ✅ Found / ❌ Not found
- Endpoints: [list any found]

### Alerting (OB6)
- Status: ✅ Configured / ❌ Not detected
- Service: [PagerDuty/OpsGenie/etc. or None]

### Summary
- Criteria passed: X/6

Rules

  • Speed over completeness - check package.json/pyproject.toml first
  • Note what's found, don't read full implementation
  • This is informational only - no fixes will be offered
  • Monorepos: the greps above already recurse (`-r --include=<manifest> --exclude-dir=node_modules`), so nested `apps/*`/`packages/*` workspaces are covered — do NOT fall back to one-level `*/package.json`.
  • **Missing vs. failed:** if NONE of `.git`, `package.json`, `pyproject.toml`, `go.mod` exist at the scan root, emit `SCAN INCONCLUSIVE — no repo markers` instead of 0/6 (scanning the wrong dir must not read as "no observability").
Read more
@gmickel
Ships withflow-next

Faster than your agent alone. And better. A workflow plugin that takes a bug, idea or ticket to a verified pull request: specs, cross-model review by risk, live QA, receipts in your repo. Claude Code · Codex · Cursor · Droid · Grok Build · OpenCode · Muse Code.

72129 skills21 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
721
Star history of gmickel/flow-next on GitHub, a chart by star-history.com

Other agents on flow-next.

build-scout

build-scout

Agent

Used by /flow-next:prime to analyze build system, scripts, and CI configuration. Do not invoke directly.

@gmickel@gmickelInstall Agent
claude-md-scout

claude-md-scout

Agent

Used by /flow-next:prime to analyze CLAUDE.md and AGENTS.md quality and completeness. Do not invoke directly.

@gmickel@gmickelInstall Agent
env-scout

env-scout

Agent

Used by /flow-next:prime to scan for environment setup, .env templates, Docker, and devcontainer configuration. Do not invoke…

@gmickel@gmickelInstall Agent

More agents from other plugins.

a11y-architect
Auto-invoked

a11y-architect

Agent

Accessibility Architect specializing in WCAG 2.2 compliance for Web and Native platforms. Use PROACTIVELY when designing UI…

ecc2w293k
@affaan-m@affaan-mInstall Agent
analyze-pass-impact

analyze-pass-impact

Agent

Analyzes how a specific topic affects a group of compiler passes. Used by the /plan-update skill to parallelize research across…

react4d252k
@facebook@facebookInstall Agent
orchestrator

orchestrator

Agent

- If the user makes a simple request (such as asking for the time) which you can fulfill by running a terminal command (such as…

codex3d135k
@openai@openaiInstall Agent
cavecrew-builder

cavecrew-builder

Agent

Surgical 1-2 file edit. Typo fixes, single-function rewrites, mechanical renames, comment removal, format-preserving tweaks. Hard…

caveman5d119k
@juliusbrussee@juliusbrusseeInstall Agent

Questions about observability-scout.

Which coding agents can use observability-scout?
observability-scout installs in Claude Code and Cursor: each loads subagents from .claude/agents, so copy the file there. Flowy's auto-invocation runs in Claude Code only.