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

71%

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 ./.claude/skills/observability-stack-setup/SKILL.md

The canonical home for this skill is observability-stack-setup in fernandezbaptiste/Skrillz

SKILL.md
Quality
Evals
Security

Quality

Content

56%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.

The skill has a genuinely clear sequenced workflow with explicit health-check validation and useful troubleshooting, and most commands are copy-paste ready. However, it is undermined by broken bundle references (missing files, wrong directory name, four of five dashboards absent), a vague Step 3, and redundant triple listing of the service inventory.

Suggestions

Fix the bundle references: create or remove 'references/troubleshooting.md' and 'scripts/import-dashboards.sh', correct 'references/dashboards/' to 'references/grafana-dashboards/', and ship the four missing dashboard JSONs or stop advertising them.

Make Step 3 concrete by naming the entry point (e.g., 'Run scripts/setup-stack.sh, which generates all configs from the templates in references/') and add a post-import dashboard verification step.

Collapse the service inventory (bullet list, Services table, directory tree) into one presentation, and move dashboard descriptions plus retention/privacy details into reference files listed in the References section.

DimensionReasoningScore

Conciseness

The body presents the same component information three times (the 'What This Skill Does' bullet list, the Services table, and the directory tree), inlines five multi-bullet dashboard descriptions and retention/privacy details that belong in references, and pins time-sensitive version numbers dated '2025-11-22' outside any old-patterns section. This fits anchor 3 ('mostly efficient but includes some unnecessary explanation or could be tightened') — above anchor 2's multiple padded explanatory sections since there is little concept explanation, but below anchor 4's 'minor instances' because the duplication is structural, not incidental.

3 / 5

Actionability

There is real executable material (prereq version checks, 'docker compose ... up -d', per-service health URLs, curl dashboard import), but key guidance is broken or unverifiable: 'references/troubleshooting.md' and 'scripts/import-dashboards.sh' do not exist, 'references/dashboards/' is actually 'references/grafana-dashboards/', four of the five claimed dashboard JSONs are absent, and Step 3 ('Creates all configuration files from templates') gives no concrete command. This matches anchor 3 ('some concrete guidance but incomplete; missing key details') — the commands present are executable, keeping it above anchor 2, but the gaps exceed anchor 4's 'minor gaps'.

3 / 5

Workflow Clarity

The seven-step workflow is clearly sequenced with an explicit validation checkpoint (Step 5 health checks naming each service's readiness endpoint) and an error-recovery section (Troubleshooting) covering port conflicts, failing services, and missing dashboards. It sits at anchor 4 rather than 5 because Step 3 is underspecified ('creates all configuration files from templates (see references/)') and the Quick Start says 'Invoke this skill and it will' instead of naming the concrete entry point (scripts/setup-stack.sh), leaving minor validation gaps such as no post-import dashboard verification.

4 / 5

Progressive Disclosure

There is good high-level structure with dedicated References and Scripts sections, but scored against the actual bundle: two referenced files are missing (troubleshooting.md, import-dashboards.sh), the 'references/dashboards/' path does not match the real 'grafana-dashboards/' directory, only one of five advertised dashboards exists, and three real bundle files (alloy-config-river.alloy, prometheus-config.yml, tempo-config.yaml) are never referenced, so navigation from the body fails in several places. This fits anchor 3 ('references present but not clearly signaled / organization gaps') rather than anchor 4, whose 'minor organization gaps' do not cover broken paths.

3 / 5

Total

13

/

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 solid description: it clearly states what the skill does and when to use it, with specific technology keywords and a distinct niche. Its main weaknesses are a single-action capability statement and a narrow trigger clause that omits synonyms like monitoring/telemetry.

Suggestions

Expand the what-clause with 1-2 more concrete actions (e.g., 'generates configuration files, starts services, and imports pre-built Grafana dashboards') to lift specificity.

Broaden the when-clause with natural trigger variations, e.g., 'Use when setting up local monitoring, telemetry, or observability for Claude Code (logs, metrics, traces)'.

DimensionReasoningScore

Specificity

"Automated LGTM + Alloy observability stack deployment using Docker Compose" names the domain precisely (LGTM stack, Alloy, Docker Compose) but describes only one concrete action — deployment — with no mention of configuration, dashboard import, or verification. This matches anchor 3 ('names domain and 1-2 concrete actions, but not comprehensive'); it is above anchor 2 because the domain is specific rather than generic, but below anchor 4 because only a single action is listed.

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." The when-clause is present but narrow and singular (one trigger phrase), matching anchor 4 ('has both what and when; when could be more explicit or specific') rather than anchor 5, which requires multiple concrete trigger phrases; it is well above anchor 3, where the when is missing or only implied.

4 / 5

Trigger Term Quality

Includes natural terms a user would say: "observability", "setting up ... infrastructure locally", "Claude Code", "Docker Compose", plus stack keywords (LGTM, Alloy). A few common synonyms are missing — "monitoring", "telemetry", "logging/metrics/traces", and the expanded component names (Grafana, Loki, Prometheus) — so it fits anchor 4 ('good keyword coverage; a few natural terms missing') rather than anchor 5's comprehensive synonym coverage, and is clearly above anchor 3's partial coverage.

4 / 5

Distinctiveness Conflict Risk

"Claude Code observability infrastructure" plus the LGTM/Alloy/Docker Compose stack defines a clear niche with distinct triggers and minimal overlap with other skills (e.g., enabling telemetry is a separate, distinguishable concern). This matches anchor 5 ('clear niche with distinct triggers; minimal conflict risk') and is more distinct than anchor 4's 'minor overlap risk with closely related 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

.claude/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.