CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

gateguard

PreToolUse fact-forcing gate that denies the first Edit/Write/Bash (including MultiEdit and NotebookEdit) attempt until the agent presents concrete facts (importers, data schemas, verbatim user instruction), then allows retry; A/B-tested at +2.25 quality points. Use when enabling or configuring the GateGuard hook, exempting paths via env vars, or handling first-touch denials.

Quality

73%

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/gateguard/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

46%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 documents a genuinely well-designed gate with concrete configuration guidance, but SKILL.md itself is a monolithic implementation spec. The invoke-time guidance an agent needs (how to respond to a denial, how to enable the hook) is drowned by hundreds of lines of internal matching rules, and the referenced scripts and docs are not shipped in the bundle.

Suggestions

Move the prior-search credit, comment/whitespace-only, sibling-collapse, and sensitive/hard-link rule sections into reference files (e.g., references/credit-rules.md, references/change-profile.md) and keep only a one-paragraph summary with links in SKILL.md.

Ship the referenced files or fix the links: scripts/hooks/gateguard-fact-force.js, scripts/gateguard-report.js, and docs/gateguard/change-profile.md are cited but absent from the bundle.

Move Quick Start near the top and add a verification step (e.g., a sample edit to trigger and confirm a first-touch denial, or a command to check the hook is registered) before the detailed gate-behavior sections; include the actual hooks.json snippet for Option A.

DimensionReasoningScore

Conciseness

The body is ~700 lines of dense implementation spec — prior-search credit stem matching, exclusion parsing for rg/grep/fd/tree/git, 8.3 short names, ADS-style path handling, hard-link realpathing — that is hook-internal behavior, not guidance the agent needs at invocation time. Anchor 2 ("noticeably verbose; several unnecessary explanations or padded sections") fits: it is not explaining things Claude already knows, but much of it is edge-case enumeration that could be trimmed or moved to reference files, which is below the mostly-efficient anchor 3.

2 / 5

Actionability

Quick Start gives two concrete install paths ("pip install gateguard-ai\ngateguard init", enabling scripts/hooks/gateguard-fact-force.js via hooks.json), a full env-var table with defaults, an executable metrics report command, and a copy-paste JSON env example. Minor gaps keep it below 5: Option A never shows the actual hooks.json snippet to enable the hook, and no command verifies the hook is active.

4 / 5

Workflow Clarity

The operative sequence exists (enable hook → set env vars → handle first-touch denials by presenting facts and retrying, with the parallel-batch warnings), but there is no checkpoint verifying the gate is installed and firing before relying on it, and the installation steps are buried under ~500 lines of gate-behavior spec that precedes Quick Start. A destructive/batch-adjacent tool skill without an explicit validation step cannot exceed 3.

3 / 5

Progressive Disclosure

No references/, scripts/, or assets/ directories exist in the bundle, yet the body cites scripts/hooks/gateguard-fact-force.js, scripts/gateguard-report.js, and docs/gateguard/change-profile.md as if present — key navigation targets are dangling. Meanwhile ~400 lines of matching-rule spec (prior-search credit, comment-only edits, sibling collapse) that clearly belongs in separate reference files are inlined in SKILL.md, matching anchor 2.

2 / 5

Total

11

/

20

Passed

Description

92%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: concrete, third-person, with an explicit Use-when clause covering configuration, path exemption, and denial handling. The only weakness is jargon density ("PreToolUse fact-forcing", "A/B-tested at +2.25 quality points") that may miss a few phrasings a non-expert user would naturally type.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions with comprehensive coverage: "denies the first Edit/Write/Bash (including MultiEdit and NotebookEdit) attempt until the agent presents concrete facts (importers, data schemas, verbatim user instruction), then allows retry" — each gate behavior is named specifically, including tool variants and the retry mechanism.

5 / 5

Completeness

It explicitly answers both what the skill does (three-stage deny/force/allow fact-forcing gate with named facts) and when to use it ("Use when enabling or configuring the GateGuard hook, exempting paths via env vars, or handling first-touch denials"), with concrete trigger phrases.

5 / 5

Trigger Term Quality

Trigger phrases like "enabling or configuring the GateGuard hook", "exempting paths via env vars", and "handling first-touch denials" are natural for this skill's audience, and tool names (Edit/Write/Bash, MultiEdit, NotebookEdit) match what users would say. A few plainer synonyms (e.g., "block edits", "hook keeps asking me to list importers") are missing, so it sits between the good and comprehensive anchors — noticeably above the midpoint.

4 / 5

Distinctiveness Conflict Risk

The GateGuard/fact-forcing niche is highly specific — a PreToolUse hook that denies first edit attempts and demands importers/data schemas — and it positions itself against neighbors ("No competitor does all three"), so the risk of triggering for the wrong skill is minimal.

5 / 5

Total

19

/

20

Passed

Validation

81%

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

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (712 lines); consider splitting into references/ and linking

Warning

metadata_version

'metadata.version' is missing

Warning

referenced_paths_exist

Referenced path issues: 3 missing, 1 deeper-than-1-level

Warning

Total

13

/

16

Passed

Repository

affaan-m/ECC

Path

skills/gateguard/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.