Install any skill in seconds. Free to start, no credit card required.
Get Started Free →hashintel/writing-hashql-jexpr
HashQL J-Expr syntax for writing queries.
Passed 22 of 22 test cases with the skill, and 15 of 22 without it.
and 9 more in the full report
7 fixed15 passed either way0 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 7 test cases the skill fixed. Same model, same prompt, with and without the skill.
Construct a HashQL J-Expr function call for a function 'greet' with a labeled argument named 'name' set to string 'Alice'. In J-Expr syntax, labeled argument keys in objects use a colon prefix (:name) or string shorthand (:name). Provide the JSON function call array.
| Checked | Without skill | With skill |
|---|---|---|
| Formats the argument object using colon prefix key :name | Passed | Passed |
| Wraps string Alice inside a literal object constructor | Missed | Passed |
The instructions your model reads when the skill loads.
J-Expr is a JSON-based expression syntax for HashQL. It represents typed expressions using JSON primitives.
J-Expr has three expression types:
| JSON Type | J-Expr Meaning |
|---|---|
| String | Path/identifier/symbol |
| Array | Function call |
| Object | Data constructor (with # keys) |
Strings are parsed as paths or identifiers:
"x" // Simple variable
"vertex.id.entity_id" // Dotted path access
"::core::types::String" // Namespaced/rooted path
"::graph::head::entities" // Graph function path
Arrays represent function calls: [function, arg1, arg2, ...]
// Basic function call
["add", {"#literal": 1}, {"#literal": 2}]
// Namespaced function
["::graph::head::entities", ["::graph::tmp::decision_time_now"]]
// Labeled argument with :prefix in object
["greet", {":name": {"#literal": "Alice"}}]
// Shorthand labeled argument (string with :prefix)
test cases passed, vs 15 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.