Skip to content
Back to skills

Slalom

ASecurity

Design and verify Jev's slalom courses in OpenHarness's viewer, where Jev is the racer steering to thread every gate.

  • 1,124 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 23, 2026
ai-agentsgobashnodeapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 23, 2026

npx -y skills add autonomous-ai/openharness --skill slalom --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Slalom?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Slalom
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/autonomous-ai-slalom/badge)](https://www.skillsdirectory.com/skills/autonomous-ai-slalom)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: jev-slalom
description: Design and verify Jev's slalom courses in OpenHarness's viewer, where Jev is the racer steering to thread every gate.
---

# Jev Slalom course design

Jev Slalom runs a live course: a line of gates sweeps down a valley and Jev (TypeSafe's System One
model) reads its position and the next gate each tick and steers left/right to thread each gap. The
agent shapes `slalom.json`: the descent speed, the valley width, and how many gates.

## The loop

1. Update `slalom.json` (title, speed, gates, valleyWidth, optional gateGap, a `style` line that tells Jev a line
   strategy). The viewer watches it and Jev adapts live — no restart, no second server.
2. `node "$JEV_DSH/toolchain/check.mjs"` verifies the workspace's `slalom.json` is valid. Run it
   before you call a run done.
3. Watch the descent. Does Jev line up on the next gate, commit as it arrives, and thread a clean
   run — or never fall (dull) or fall even at calm speed (bad)? That observation is the finding.

## Reading the run

The viewer shows a top-down course: the skier descends with a snow trail, gates sweep toward it and
light up green as they're threaded, a dashed line marks the target gate, and a finished run shows a
CLEAN RUN or FELL banner plus a run log. Good courses produce a readable loop: Jev carves across the
valley to the next gate, threads it, and builds a rhythm; `speed` is the difficulty dial — crank it
up and Jev's aim wobbles and it clips a gate and falls.

## Verifying a course

`node "$JEV_DSH/toolchain/check.mjs"` returns non-zero when `slalom.json` is invalid (no title, a
non-positive speed, out-of-range gates/valleyWidth/gateGap/tickMs). It doesn't replace watching the run:
confirm Jev threads the gates at the speed you set, and that cranking `speed` up makes it visibly
fall.

## Driving Jev yourself

`toolchain/jev.mjs` exports a small client. Example (from the workspace) — ask Jev's read on a
gate before you commit to it:

```bash
node --input-type=module -e '
import { evaluate, jev } from "$JEV_DSH/toolchain/jev.mjs";
const res = await evaluate({
  state: "You are skiing the slalom. The skier descends at 3.0 rows/tick. Next gate: x 14.5, gap 6.0. skier x 9.0  gate x 14.5  gate in 1.2. Which way do you steer? LEFT_FAST / LEFT / HOLD / RIGHT / RIGHT_FAST",
  questions: {
    steer: jev.choice(["LEFT_FAST", "LEFT", "HOLD", "RIGHT", "RIGHT_FAST"], "Which way do you steer this tick?"),
  },
});
console.log(JSON.stringify(res.answers, null, 2));
'
```

Without `TYPESAFE_API_KEY` this uses the deterministic mock; set the key to hit live Jev.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…