CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

observability-stack-setup

Automated LGTM + Alloy observability stack deployment using Docker Compose. Use when setting up Claude Code observability infrastructure locally.

Quality

74%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/observability-stack-setup/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

63%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-organized, largely actionable deployment guide with a clear step sequence, explicit health-check validation, and concrete troubleshooting commands. Its credibility is undermined by three broken bundle references (a missing troubleshooting.md, a misnamed dashboards path, and a nonexistent import script) and a version-pinning claim contradicted by the actual compose file, plus localized padding in the dashboard and version sections.

Suggestions

Fix the broken bundle references: create 'references/troubleshooting.md' and 'scripts/import-dashboards.sh', correct 'references/dashboards/' to 'references/grafana-dashboards/', add the four missing dashboard JSONs (or stop advertising five), and reference the existing prometheus-config.yml / tempo-config.yaml / alloy-config-river.alloy files.

Trim padding: drop or compress the ~25-line per-dashboard panel enumerations and the date-stamped 'Version Information' section — or reconcile it with the actual docker-compose-full.yml, which uses ':latest' images while the body claims 'All versions pinned'.

Make the primary automation path explicit and executable in Quick Start, e.g. 'Run scripts/setup-stack.sh' as step 1, and add an explicit failure loop ('if any health check fails, see Troubleshooting, fix, and re-run scripts/verify-health.sh').

DimensionReasoningScore

Conciseness

Mostly operational and useful (commands, ports, health endpoints), but padded in places: ~25 lines enumerating what each pre-built dashboard's panels display, a redundant 'What This Skill Does' component list that repeats the services table, and a 'Version Information' section with date-stamped version numbers ('latest as of 2025-11-22') that time-sensitive guidance penalizes outside a deprecation section. This fits anchor 3 ('mostly efficient but includes some unnecessary explanation or could be tightened'), not anchor 2 since the padding is localized rather than pervasive.

3 / 5

Actionability

Concrete, copy-paste-ready commands throughout: 'docker compose -f .observability/docker-compose.yml up -d', specific health-check URLs (e.g., 'http://localhost:3100/ready'), port/volume tables, and executable troubleshooting commands ('sudo lsof -i :3000', the curl dashboard-import). Minor gap: the Quick Start never states the primary executable entry point ('run scripts/setup-stack.sh') — the automation is described as outcomes ('Invoke this skill and it will:') rather than a runnable command. Not anchor 5 because of that gap and the false claim that 'All versions pinned in docker-compose.yml' while the actual reference compose file uses ':latest' images.

4 / 5

Workflow Clarity

A clear 7-step sequence (verify prerequisites → create directories → generate configs → start → health checks → import dashboards → output success) with an explicit validation step (Step 5 lists concrete per-service health endpoints) and a Troubleshooting section covering error recovery for port conflicts, failing services, and missing dashboards. Not anchor 5 because the workflow itself never wires failure back into the troubleshooting/retry path, and the deploy step is given as a manual compose command while the scripted path (setup-stack.sh) is left disconnected from the steps.

4 / 5

Progressive Disclosure

The SKILL.md is structured as an overview with one-level-deep references and bundled detail correctly offloaded, but scored against the actual bundle several navigation paths are broken: 'references/troubleshooting.md' does not exist, 'references/dashboards/' should be 'references/grafana-dashboards/' (and only 1 of the 5 advertised dashboard JSONs is present), 'scripts/import-dashboards.sh' does not exist, and real files like prometheus-config.yml and tempo-config.yaml are never referenced. This exceeds anchor 4's 'minor organization gaps', fitting anchor 3 ('some structure ... references present but not clearly signaled').

3 / 5

Total

14

/

20

Passed

Description

73%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description with an explicit what-and-when structure, precise domain naming, and low conflict risk. Its main weakness is limited action coverage and a narrow trigger clause, plus a few missing natural synonyms.

Suggestions

Add 1-2 more concrete actions to the 'what' clause (e.g., 'deploys and configures, imports pre-built Grafana dashboards, verifies service health') to lift specificity toward comprehensive coverage.

Broaden trigger terms with natural synonyms users would say: 'monitoring', 'telemetry', 'metrics, logs, and traces', and spelled-out component names (Grafana, Prometheus, Loki, Tempo).

Widen the 'when' clause beyond first-time local setup, e.g., 'Use when setting up, deploying, or troubleshooting local Claude Code observability/monitoring infrastructure.'

DimensionReasoningScore

Specificity

"Automated LGTM + Alloy observability stack deployment using Docker Compose" names the domain precisely (LGTM + Alloy, Docker Compose) but lists only one concrete action — deployment. This matches anchor 3 ('names domain and 1-2 concrete actions, but not comprehensive'); it is not anchor 4 because configuring, health-checking, and dashboard import actions are absent.

3 / 5

Completeness

Both parts are explicit: what = "Automated LGTM + Alloy observability stack deployment using Docker Compose"; when = "Use when setting up Claude Code observability infrastructure locally". Not anchor 5 because the 'when' clause covers a single narrow trigger (first-time local setup) and omits variations like deploying, monitoring operations, or viewing pre-built dashboards.

4 / 5

Trigger Term Quality

Natural terms include "observability stack", "LGTM", "Alloy", "Docker Compose", and "setting up ... locally" — good coverage of what a user would say. A few common variants are missing ("monitoring", "telemetry", "metrics/logs/traces", spelled-out component names like Grafana/Prometheus), keeping it below anchor 5.

4 / 5

Distinctiveness Conflict Risk

"LGTM + Alloy observability stack" for Claude Code telemetry is a clear niche with distinct, specific triggers; virtually no overlap risk with other skills.

5 / 5

Total

16

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

referenced_paths_exist

Referenced path issues: 3 missing

Warning

Total

15

/

16

Passed

Repository

fernandezbaptiste/Skrillz

Path

skills/observability-stack-setup/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.