CtrlK
BlogDocsLog inGet started
Tessl Logo

configuring-horizon

Use this skill whenever the user mentions Horizon by name in a Laravel context. Covers the full Horizon lifecycle: installing Horizon (horizon:install, Sail setup), configuring config/horizon.php (supervisor blocks, queue assignments, balancing strategies, minProcesses/maxProcesses), fixing the dashboard (authorization via Gate::define viewHorizon, blank metrics, horizon:snapshot scheduling), and troubleshooting production issues (worker crashes, timeout chain ordering, LongWaitDetected notifications, waits config). Also covers job tagging and silencing. Do not use for generic Laravel queues without Horizon, SQS or database drivers, standalone Redis setup, Linux supervisord, Telescope, or job batching.

76

Quality

96%

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

SKILL.md
Quality
Evals
Security

Quality

Content

93%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-built skill body: executable code for the common tasks, explicit verification steps, a pitfalls section that encodes real failure modes (timeout chain ordering, defaults/environments merge semantics), and clean one-level-deep reference files. The only gap is that verification steps are not wired into a feedback loop that names the fix for each failed check.

Suggestions

Convert the Verification section into a closed feedback loop: after 'Check that metrics populate after scheduling horizon:snapshot', add 'If blank: confirm horizon:snapshot is in the schedule and wait one interval before re-checking' so each checkpoint names its recovery action.

Add an explicit ordered installation workflow (1. horizon:install, 2. configure config/horizon.php, 3. define the gate, 4. run horizon:status) so the sequence currently implied by section order is unambiguous.

In the Dashboard Authorization section, note the required deployment step (auth/gate cache refresh or horizon:terminate after changing the gate) so changes can be verified immediately rather than appearing to fail.

DimensionReasoningScore

Conciseness

Lean and efficient throughout: no explanations of concepts Claude already knows (no 'what Redis is', no library background), every section is instruction — install command, config snippet, gate code, verification, pitfalls. The one near-redundant sentence ('Running php artisan horizon alone does not populate metrics') clarifies a real misunderstanding and earns its place.

5 / 5

Actionability

Fully executable: 'php artisan horizon:install', a copy-paste-ready 'defaults'/'environments' config/horizon.php block, the Gate::define('viewHorizon') gate() method inside the named HorizonServiceProvider, and concrete verification commands. The common cases (install, configure supervisors, restrict dashboard) are each covered with runnable code.

5 / 5

Workflow Clarity

The sequence (install → configure → authorize → run) is legible and the 'Verification' section provides explicit checkpoints ('Run php artisan horizon and visit /horizon', 'Confirm dashboard access is restricted', 'Check that metrics populate'), and the pitfalls list covers failure modes like the blank metrics dashboard. Falls short of the 5 anchor because there is no error-recovery loop tying checkpoints to fixes (e.g. 'if metrics stay blank, schedule horizon:snapshot and re-check') — recovery guidance exists but only implicitly across sections.

4 / 5

Progressive Disclosure

Classic overview-plus-references structure: the body stays lean while four one-level-deep references are each signaled with what they cover ('references/supervisors.md covers supervisor blocks, balancing strategies, multi-queue setups, and auto-scaling', etc.), and all four files exist with no nested references inside them. The search-docs pointer adds a navigation path for version drift.

5 / 5

Total

19

/

20

Passed

Description

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

The description is a model example: it states concrete capabilities with the exact config keys, commands, and class names involved, gives an explicit trigger ('mentions Horizon by name in a Laravel context'), and preempts conflicts with a precise exclusion list. Nothing is vague or padded, and it uses third-person/trigger form rather than penalized first or second person.

DimensionReasoningScore

Specificity

Lists multiple concrete actions with the specific artifacts involved — 'installing Horizon (horizon:install, Sail setup)', 'configuring config/horizon.php (supervisor blocks, balancing strategies, minProcesses/maxProcesses)', 'fixing the dashboard (authorization via Gate::define viewHorizon, blank metrics, horizon:snapshot scheduling)' — covering the full lifecycle comprehensively.

5 / 5

Completeness

Explicitly answers both questions: 'what' via 'Covers the full Horizon lifecycle: installing... configuring... fixing the dashboard... and troubleshooting production issues' and 'when' via 'Use this skill whenever the user mentions Horizon by name in a Laravel context', reinforced by a 'Do not use for...' exclusion clause. This matches the 5-anchor example structure exactly.

5 / 5

Trigger Term Quality

Comprehensive natural terms a Horizon user would actually say: 'Horizon', 'Laravel', 'supervisor blocks', 'balancing strategies', 'queue assignments', 'worker crashes', 'timeout', 'LongWaitDetected', plus file paths (config/horizon.php) and commands (horizon:install, horizon:snapshot). Anchor 4 was rejected because no common variation of the domain vocabulary is missing.

5 / 5

Distinctiveness Conflict Risk

Clear niche (Horizon in Laravel) with a distinct name trigger and explicit conflict-avoidance exclusions — 'Do not use for generic Laravel queues without Horizon, SQS or database drivers, standalone Redis setup, Linux supervisord, Telescope, or job batching' — which resolves the most likely adjacent-skill confusions.

5 / 5

Total

20

/

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

metadata_version

'metadata.version' is missing

Warning

Total

15

/

16

Passed

Repository
yaojingang/GEOFlow
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.