Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add Darwin-Agent/Car-bench-TRACE --skill exterior-lights-controlgit clone --depth 1 https://github.com/Darwin-Agent/Car-bench-TRACEWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/darwin-agent/car-bench-trace/exterior-lights-control)<a href="https://agentmods.dev/skills/darwin-agent/car-bench-trace/exterior-lights-control"><img src="https://agentmods.dev/badge/skills/darwin-agent/car-bench-trace/exterior-lights-control/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/darwin-agent/car-bench-trace/exterior-lights-control"><img src="https://agentmods.dev/badge/skills/darwin-agent/car-bench-trace/exterior-lights-control.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00106 | $0.03557 |
| Opus 5 | $0.00053 | $0.01778 |
| Sonnet 5 | $0.00021 | $0.00711 |
| Haiku 4.5 | $0.00011 | $0.00356 |
Grade C, and why
exterior-lights-control scanned grade C with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Tells the agent never to refusehighAnti-refusal
Suppressing the ability to decline removes a core safety control; a later harmful request then succeeds.
5. **Confirmation-gated actions: ask once, then actually fire the exact call.** Two things gate a change behind explicit confirmation: (a) **turning high beams on always requires confirmation** (its actuator is confirmat How it starts
The opening of the file, as written. The whole thing — 86 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Exterior lights control
Turn a named exterior light on or off. Requests range from a single unambiguous toggle to multi-light operations that need a weather check, a confirmation, a precondition light, or the resolution of a conflict between lights. Sometimes the user does not say which light; sometimes a needed control is missing. The same method handles all of these.
When this applies
The user asks to turn low beams, high beams, or fog lights on or off — e.g. "turn off the low beams", "switch the high beams on", "put the fog lights on" — or more loosely "turn the lights on/off" / "turn on the headlights" without naming the specific light.
Tools
get_exterior_lights_status()— read which exterior lights are currently on/off. This is what disambiguates a vague request and what verifies a precondition. A field for a given light may come back"unknown"— genuinely unverifiable, not a value you can read.get_weather(...)— read the weather for the relevant location/time when visibility or conditions affect whether/how to proceed or whether a confirmation is warranted.- Exact actuator map:
- Low beams / dipped headlights / normal headlights →
set_head_lights_low_beams({on}). - High beams / bright headlights / full beams →
set_head_lights_high_beams({on}). - Fog lights →
set_fog_lights({on}).
- Low beams / dipped headlights / normal headlights →
- These actuators are not interchangeable. The
tools:list above is the full skill capability map, but a particular task may expose only some of those tools; availability means the tool is actually callable in the current conversation. Any actuator may be removed from the runtime toolset; a removed actuator cannot be called and you must not pretend to. If the exact actuator for the user's named light is missing, that named-light change is impossible from here. Do not substitute another actuator, especially do not callset_head_lights_low_beamsfor a high-beam request.
Method
- Act on exactly the light(s) named. Map the user's words to the specific actuator before deciding what to do. If they said "low beams", touch only low beams — not high beams, not "all lights". If they said "high beams", the only main actuator that can satisfy the request is
set_head_lights_high_beams;set_head_lights_low_beamsis a different light, not a fallback, prerequisite, or approximation. - If the light is unstated, infer it from current state — don't ask an open menu. Read
get_exterior_lights_statusfirst:- For a turn-off request, the light(s) currently on are the only thing the user can mean — act on those.
- For a turn-on request, what's already on tells you the sensible next light (if the basic beams are on, the meaningful upgrade is the stronger/auxiliary light, not re-toggling what's on).
- Let conditions narrow it further: a light inappropriate for the weather is ruled out. Propose the single context-correct light in one yes/no question rather than enumerating every light. (When the user did name the light, no inference is needed — just act.)
- Read state/weather when the outcome depends on it. A conflict, a precondition, or a visibility-driven decision all require reading first. Read each deciding value once. Two turn-on cases always depend on a status read, so read
get_exterior_lights_statusbefore acting on them even when the user named the light explicitly, but only the exact actuator can perform the final change:- Turning high beams on — high beams and fog lights are mutually exclusive (high beams can't be on while fog lights are on), so you must read status to confirm fog lights are off (or honestly note you couldn't) before switching high beams on. Skipping this read and firing the high-beam call directly is a failure even when the user clearly asked for high beams.
- Turning fog lights on — you need status to apply the low-beam precondition and to detect a high-beam conflict (see steps 4 and 6), plus a weather read (step 5).
- Apply preconditions. Some lights require another first (e.g. fog lights need low beams on). If the precondition light is off, turn it on as part of fulfilling the request — the user implicitly accepts the prerequisite; don't ask about it separately.
- Confirmation-gated actions: ask once, then actually fire the exact call. Two things gate a change behind explicit confirmation: (a) turning high beams on always requires confirmation (its actuator is confirmation-gated regardless of state or weather); and (b) turning fog lights on requires a weather confirmation in nearly every condition — the only conditions exempt from confirmation are the severe ones (cloudy with thunderstorm or cloudy with hail). This rule is inverted from intuition: ordinary weather like sunny, cloudy, partly-cloudy, rainy, or foggy is not exempt, so plain "cloudy" still demands a confirmation. Do not read "cloudy" (or any mild condition) as "allowed, proceed" — that misreading and firing the fog-light call straight away is a real and common failure. Ask once only after the exact main actuator(s) are available, wait for the user's "yes", then execute. Do not execute before the "yes", and do not re-ask after it. Weather sets whether the confirmation is needed, never a refusal — so when it applies you confirm once, you don't skip it and you don't decline.
- The "yes" turn is the execution turn. Once the user confirms, your very next action is to issue the actuator call(s) — not a bare acknowledgement and not a status claim. Carry the pending action across the confirmation boundary: you decided which light(s) and which actuator(s) before asking, so on "yes" you fire exactly those calls. Replying to the confirmation with text alone (or an empty turn) and then asserting the light is on is a real failure — the change never happened. Never claim a light is on or off unless its setter tool was actually called and returned
"status": "SUCCESS"in this conversation. If you find yourself about to say "fog lights are on" but noset_fog_lightsresult is in the transcript, stop and make the call instead.
- The "yes" turn is the execution turn. Once the user confirms, your very next action is to issue the actuator call(s) — not a bare acknowledgement and not a status claim. Carry the pending action across the confirmation boundary: you decided which light(s) and which actuator(s) before asking, so on "yes" you fire exactly those calls. Replying to the confirmation with text alone (or an empty turn) and then asserting the light is on is a real failure — the change never happened. Never claim a light is on or off unless its setter tool was actually called and returned
- Resolve conflicts as one confirmed batch. If fulfilling the request requires also changing a conflicting light (e.g. fog lights on while high beams are on, where the high beams must go off), name every change in your confirmation prompt, and on the single "yes" fire all the changes together in one turn.
- When a capability is missing, do the doable and admit the rest — honestly.
- A whole actuator is missing: state plainly you can't change that light from here, and name the light controls you DO have. Don't stall with a confirmation prompt as if you could then do it, and don't substitute a light the user didn't ask for.
- A required side-effect's actuator is missing: turning one light on may require automatically changing another (e.g. enabling fog lights requires the high beams to be off). If you can still perform the main action but the control for the required side-effect is gone, do the main action and the parts you can, then clearly tell the user the specific side-effect you could not perform and offer the manual workaround (e.g. "fog lights are on, but I couldn't switch the high beams off from here — please turn them off manually"). Never silently skip the side-effect, and never promise "I'll switch the blocking light off" when you have no such control. If the main action itself is hard-blocked by a light whose control is gone, say you can't complete it and name the controls you do have.
- A status field reads
"unknown": treat it as unverifiable (never assume off/on) and say so explicitly in your message — naming which light's status you couldn't read. Silently applying a safe default without telling the user is what fails; the user must hear that you couldn't verify it. There are two distinct cases: (a) if a policy only requires that light to be in a specific state (e.g. high beams must be off while fog lights are on), you can still command it into that required state — doing so satisfies the policy whatever the true reading was — but explain you're forcing it off precisely because you can't confirm it; (b) if completing the request needs the actual value to decide (and forcing a state wouldn't satisfy the policy), you cannot complete that part — admit it rather than guessing. Either way, never claim you read the real value, and re-reading won't resolve it. Do the doable parts in the same answer; refuse only the impossible part.
- Confirm briefly what you did (and what you couldn't, with the alternative) and stop.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 86 lines · 106 tokens per session scan C a2c785ed0064
exterior-lights-control is a skill published in the GitHub repository Darwin-Agent/Car-bench-TRACE (8 stars, last pushed 6d ago), licensed MIT. It adds 106 tokens to every session and 3,557 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it C with 1 finding (tells the agent never to refuse). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
gke-compute-classes
Configures, optimizes, and troubleshoots GKE ComputeClasses. Use when configuring Spot VMs with on-demand fallback, targeting specific accelerators (GPUs/TPUs) or machine families, restricting ComputeClass access, or debugging pending pods related to node pool auto-creation. Do not use for cluster-level Node Auto…
jetson-diagnostic
Read-only Jetson health snapshot for identity, memory, GPU, thermal, power, storage, services, and top processes.
doca-socket-relay
Use this skill when the operator is driving the DOCA Socket Relay to bridge a socket-oriented host application onto a BlueField DPU peer without rewriting it — picking the deployment shape (in-process, sidecar, or BlueField service container), configuring the host-side socket and the DPU-side forwarding endpoint…
offensive-z-wave
Z-Wave attack methodology — sniffing with Z-Force / EZ-Wave / RTL-SDR + ZniffMobile, S0 (legacy) network-key derivation flaw and key reuse, S2 (modern) ECDH commissioning analysis, replay/injection on unauthenticated nodes, default-key brute-force on test deployments, and home-automation hub pivots. Use when targeting…
hsb-flash
Flash the FPGA on an HSB board connected to an NVIDIA devkit. Supports HSB Lattice boards (FPGA versions 2407, 2412, 2507, 2510) and Leopard Imaging VB1940 "all-in-one" cameras (FPGA versions 2507, 2510). Uses release-specific YAML manifests and board-type-specific program commands. Lattice and VB1940 commands must…
jetson-validate-image
Use after jetson-flash-image to run static BSP checks, on-target smoke/regression tests on a flashed DUT, or both. Not for build or flash steps. Triggers: validate bsp, on-target validation.