Runs entirely in your environment · Read-only operations only · No data shared externally
Automated tech stack and observability discovery for AI coding agents. Install the skill, run a single prompt, and get a verifiable HTML report of your infrastructure, observability tools, scale, observability costs, and pain points.
The discovery agent systematically examines your environment to produce a tailored report covering:
- Environments — Cloud accounts, Kubernetes clusters, regions, dev/staging/prod
- Tech Stack — Languages, frameworks, databases, message queues, caches
- Infrastructure — Compute scale and telemetry-relevant managed services (broad inventory only)
- Observability Stack — Monitoring, logging, tracing, alerting tools
- Scale — Telemetry volumes (metrics, log GB/day, trace ingestion) measured by deterministic collector scripts
- Costs — Observability spend only (vendor usage/billing APIs); never your overall cloud bill
- Pain Points — Observability-specific: alert fatigue, coverage gaps, tool sprawl, cost concerns
The agent presents a plan before proceeding, asks clarifying questions when it can't find information programmatically, and never performs destructive operations.
Detection is agent-driven, but every volume and cost figure in the report is computed by a
deterministic collector script (collectors/<tool>/collect.py) — not by the AI agent:
- Collectors query the same authoritative APIs that back each vendor's own usage/billing pages (e.g., the Datadog hourly usage and estimated-cost APIs).
- Every raw API response is saved (with credentials redacted) under
discovery-output/<tool>/evidence/, and every figure records the endpoint, query, derivation method, and time window that produced it. - Anything that couldn't be collected appears in the report's Coverage & Gaps section with the
reason (e.g.,
permission_denied) and a remediation — never silently omitted, never guessed. - The report itself is rendered by
report/generate_report.py; the agent cannot edit figures.
Collector status: Datadog, AWS CloudWatch, GCP Cloud Operations, Elasticsearch, OpenSearch, Grafana Mimir, Prometheus/Thanos/VictoriaMetrics (with optional Loki and Tempo), and Kubernetes inventory (nodes/vCPU/memory/services via kubectl) are available today.
npx skills add -g oodle-ai/discovery-agent-skills -ynpx skills add -g oodle-ai/discovery-agent-skills --agent cursor -ygit clone https://github.com/oodle-ai/discovery-agent-skills.git
cp -r discovery-agent-skills/skills/* ~/.<agent>/skills/After installing, tell your coding agent:
Run the oodle-discovery skill
Or simply:
Discover my tech stack and observability setup and generate a report
The agent will:
- Present a discovery plan for your approval
- Run read-only commands to discover your environment
- Run the matching collector script for each observability tool it finds (asking for read-only API credentials where needed)
- Ask clarifying questions for anything it can't measure automatically
- Generate a self-contained HTML report, walk you through any coverage gaps, and open it in your browser
- Read-only — Never modifies, creates, or deletes any resources
- Rate-limited — Throttles API calls to avoid overwhelming systems; collectors self-throttle with circuit breakers
- Credentials stay local — Passed to collectors via environment variables, redacted from all saved output
- Transparent — Shows you the plan before executing; every figure links to its raw API evidence
- Graceful — Skips checks it can't perform (missing tools, no credentials) and reports gaps explicitly
The report is a single self-contained HTML file (no external dependencies) saved to ./discovery-report.html and opened in your default browser. It includes:
- Executive summary with measured scale and observability-spend figures
- Per-environment breakdown and tech-stack tags
- Coverage & Gaps — what could not be measured and how to fix it
- Collapsible per-tool deep dives
- Provenance appendix — every figure mapped to its source API, query, and evidence file
Raw evidence lives in ./discovery-output/ so any figure can be re-derived offline
(uv run collectors/<tool>/collect.py --report-only --output-dir ./discovery-output/<tool>).
See a sample Datadog report: preview it in your browser (source) — generated from the synthetic test fixtures in this repo.
See a sample CloudWatch report: preview it in your browser (source) — generated from the synthetic test fixtures in this repo.
See a sample GCP Cloud Operations report: preview it in your browser (source) — generated from the synthetic test fixtures in this repo.
See a sample Elasticsearch report: preview it in your browser (source) — generated from the synthetic test fixtures in this repo.
See a sample OpenSearch report: preview it in your browser (source) — generated from the synthetic test fixtures in this repo.
See a sample Mimir report: preview it in your browser (source) — generated from the synthetic test fixtures in this repo.
See a sample Prometheus report: preview it in your browser (source) — generated from a local Prometheus Docker instance.
See a sample VictoriaMetrics report: preview it in your browser (source) — generated from a local VictoriaMetrics Docker instance.
See a sample Thanos report: preview it in your browser (source) — generated from a local Thanos Docker instance.
See a sample Loki report: preview it in your browser (source) — generated from a Prometheus + Loki Docker instance.
See a sample Tempo report: preview it in your browser (source) — generated from a Prometheus + Tempo Docker instance.
uv(https://docs.astral.sh/uv/) and Python ≥ 3.11 — used to run collector scripts. If unavailable, the skill runs in degraded mode (no measured figures, gaps reported).
Optional, used when present:
kubectl— Kubernetes cluster discoveryaws/gcloud/azCLIs — cloud environment discovery- Read-only API keys for your observability vendors (e.g., Datadog API + application key with
usage_read) - Access to your code repository (for IaC and dependency detection)
uv sync --group dev
uv run pytest tests
uvx ruff check collectors report testsCollector output contract: schemas/summary.schema.json. Agent context contract: schemas/context.schema.json. Each collector documents its figure ↔ API mapping in its own README (e.g., collectors/datadog/README.md).
This repository includes plugin metadata files for multiple agent platforms:
.claude-plugin/plugin.jsonand.cursor-plugin/plugin.json— Identical metadata for Claude Code and Cursor respectively. These files must be kept in sync.gemini-extension.json— Minimal metadata for Gemini CLI. Gemini's extension schema supports onlyname,version, anddescription.