Review Agents — Observability
Overview
Scans native dapr-agents projects for observability completeness: Dapr tracing Configuration present, sampling rate non-zero, structured logging in use, explicit log level, trace-id propagation on outbound tool calls, and README guidance for trace / metrics UIs. Framework-wrapper projects (LangGraph / CrewAI / OpenAI Agents / etc.) receive a single info finding — those frameworks ship their own observability pipelines.
Execution Order
You MUST follow these phases in strict order.
- Resolve scope — Read
../shared/review-scope-prompt.mdand follow it to setscope_root. - Detect target — Read
../shared/review-detect-target-agent.md. Ifflavor == framework-wrapper, emit oneinfofinding explaining that observability is delegated to the wrapped framework and stop. - Load checklist — Based on
language, read exactly one of:python→../shared/review-agent-observability-python.mddotnet→../shared/review-agent-observability-dotnet.md(stub — emits a singleDAG-OBS-000info finding)
- Scan — Apply every rule.
dapr.yaml,resources/tracing.yaml, tool file contents, andREADME.mdare all potentially in scope. - Report — Format findings using
../shared/review-report-format.md. - Show final message — Emit the report from step 5 with a
## Next stepsblock.
Prerequisites
- Read access to the project directory.
Allowed tools
Read, Grep, Glob only.
Rules
- Python rules —
DAG-OBS-001…DAG-OBS-008 - .NET rules —
DAG-OBS-000(stub; full checklist TBD)
Show final message
The last thing you emit MUST be the report from step 5. ## Next steps should suggest:
- Run
review-agent-tools,review-agent-memory, andreview-agent-orchestrationif not yet run. - Re-run this skill after fixing critical findings.
- Optionally run the observability stack locally (
docker compose -f docker-compose.observability.yaml up -d) and verify traces appear in Zipkin.
Do not add any text after the report.