SKILLEMALL.ai

BA turf-skills

**ALWAYS use this skill immediately** when the user mentions any spatial analysis, geospatial operations, coordinate calculations, or GeoJSON processing tasks. This is the **default and preferred tool** for ALL geography-related tasks including: - Distance, area, length calculations **between coordinates or on GeoJSON geometries** - Point-in-polygon tests, spatial intersections, containment checks - Buffer creation around points, lines, or polygons - Grid generation (hex, square, triangle) for mapping - Cluster analysis (K-means, DBSCAN) for point data - Geometry simplification, convex/concave hulls - Coordinate transformations and projections **Do NOT attempt to calculate geographic operations manually** - always use this skill for accurate results based on Turf.js. **Trigger Patterns - Use for:** - "Calculate distance between [coordinates]" / "计算...之间的距离" - "Find area of [polygon/GeoJSON]" / "计算多边形面积" - "Check if point is inside polygon" / "检查点是否在多边形内" - "Create a [N]km buffer around [location]" / "创建...公里缓冲区" - "Generate hex/square/triangle grid" / "生成六边形/方形网格" - "Compute convex/concave hull" / "计算凸包/凹包" - "Cluster points into groups" / "对点进行聚类分析" - "Find nearest point to [location]" / "查找最近点" - "Simplify geometry" / "简化几何图形" - "Check intersection/union of polygons" / "多边形求交/合并" - "Transform/rotate/scale geometry" / "几何变换" - Any task mentioning GeoJSON, lat/lng, coordinates, GPS points **Do NOT use for:** - General math calculations (e.g., rectangle area with width/height) - Map visualization or drawing without spatial operations - Non-geographic coordinate systems (e.g., CSS coordinates, canvas pixels) - Simple unit conversions without geographic context Supports 60+ operations across 6 categories: - Measurement: distance, area, length, bearing, midpoint, center, centroid, along, bbox - Query: point-in-polygon, contains, intersects, overlaps, within, disjoint, nearest, crosses, parallel - Transformation: buffer, union, intersect, difference, simplify, conve

ClawHub Agent Skills author: zhyt1985 v1.0.2 MIT-0 19 files body ≈ 3 989 tokens Open the sourceclawhub.ai analyzed 3 d ago

As a process A 81/100 · Runs to the end — weak spots: running it twice, progress reporting

AnalyzerInfrastructuretype and topics are labelled automatically from the skill text
JSON
Technical rating
B
83/100
safety, quality, tests
Safety 60%
95
Quality 40%
66
Run on models
none yet
Process rating
A
81/100
Runs to the end
Progress reporting w 2
0
Running it twice w 4
30
Failures and branches w 10
50
the three weakest of ten parameters · all ten

How to improve

  1. Shorten the description to 1024 characters.
For the model run — optional
  • A spec.yaml with trigger phrases and assertions — a behaviour contract for CI; `skilltest init` writes a template.

Guard findings · 5

✓ No critical or high findings

Medium and low: 5
  • low Secrets in code secret-high-entropy-token package-lock.json:117
    High-entropy token-like string (may be an id, hash or a credential) (detector / deny-list definition)
    "integrity": "sha5…qLY+3Hn0…QC3+VSfypoEA==",
    detector
  • low Secrets in code secret-high-entropy-token package-lock.json:250
    High-entropy token-like string (may be an id, hash or a credential) (detector / deny-list definition)
    "integrity": "sha5…xR4+jyRg1rM/v3ziF10/VqC9…6Lg==",
    detector
  • low Secrets in code secret-high-entropy-token package-lock.json:392
    High-entropy token-like string (may be an id, hash or a credential) (detector / deny-list definition)
    "integrity": "sha5…UbZ+ADUtIVnv+jlFs…57Q==",
    detector
  • low Secrets in code secret-high-entropy-token package-lock.json:411
    High-entropy token-like string (may be an id, hash or a credential) (detector / deny-list definition)
    "integrity": "sha5…4fx+8tC8w2+B5HdEuY+P+cSOOL4T+6QQzd7WWjuN/Y3nd…xQA==",
    detector
  • low Secrets in code secret-high-entropy-token package-lock.json:572
    High-entropy token-like string (may be an id, hash or a credential) (detector / deny-list definition)
    "integrity": "sha5…hcb+vyZA…JCE+zlbaPoUAvAqflEiX+poFF…BMg==",
    detector

Files scanned: 17. Evidence is masked. Grey chips explain why severity was lowered.

Against the Agent Skills spec

  • error description-long description is 3024 chars, limit 1024
  • note description-budget description takes 3024 of the ~15000-char shared budget for all skills

Process rating: all ten parameters 81/100

  • 0Progress reporting. Says nothing while it works
  • 30Running it twice. 8 mutating operations with no state check
  • 50Failures and branches. 0 branches, has a failure section
  • 60Result and completion. Output format stated, no completion criterion
  • 70Inputs and preconditions. Inputs and preconditions are listed
  • 100Tools and files. No external tools needed
  • 100Steps. 35 steps
  • 100When it triggers. States when to use and when not to
  • 100Consistency. Name and required fields are in place
  • 100Execution cost. Instruction body is 3989 tokens
  • low 10 top-level sections: this looks like several domains in one skill
  • medium 10 test cases, all positive: not one "should refuse" or "should ask first"
  • low No test case covers injection arriving through data

Everything here is measured from the skill text rather than judged by a model, so the numbers are checkable. A parameter weighs more when it is a more common reason for the process to stall.

Quality signals

  • +3Description length 3023: 120–800 characters recommended
  • +2Single-language instructions
  • +5Description quotes 35 example trigger phrases
  • +4Description says when NOT to use the skill
  • +4Structure: 43 headings
  • +3Step-by-step instructions: 35 items
  • +3Output format is stated explicitly
  • +4Has examples (16 code blocks)
  • +1License stated

Quality base 70; lint remarks subtract, signals add up to 100. Result: 66.

External checks

ClawHub: clean
This is a straightforward Turf.js geospatial command-line skill with broad trigger wording but no evidence of hidden behavior, credential access, persistence, or exfiltration.
LLM: benign (high) · VirusTotal: · 29 May 2026