sunshade

sunshade is a skill for Claude Code, Codex from Darwin-Agent/Car-bench-TRACE. It costs 174 tokens per session (2,072 once invoked), scanned A, original, MIT.

A control skill for opening, closing, positioning, or synchronising a vehicle sunshade with the sunroof. It can also report the current position.

In plain words
What is it for?
Use it for commands such as closing the sunshade, setting it to a percentage, matching the sunroof, or checking its position.
Why use it?
It handles the required checks when a requested opening percentage is missing or when the sunshade should match the sunroof.

Skill for Claude CodeCodex

Install

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.

agentmods
npx agentmods add skills/darwin-agent/car-bench-trace/sunshade
Any agent
npx skills add Darwin-Agent/Car-bench-TRACE --skill sunshade
Clone the repo
git clone --depth 1 https://github.com/Darwin-Agent/Car-bench-TRACE

Made for: Claude Code, Codex.

Wrote 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.

agentmods badge for sunshade

README.md
[![agentmods](https://agentmods.dev/badge/skills/darwin-agent/car-bench-trace/sunshade.svg)](https://agentmods.dev/skills/darwin-agent/car-bench-trace/sunshade)
Your own site
<a href="https://agentmods.dev/skills/darwin-agent/car-bench-trace/sunshade"><img src="https://agentmods.dev/badge/skills/darwin-agent/car-bench-trace/sunshade.svg" alt="Measured on agentmods" height="20"></a>
Per session 174 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,072 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00174 $0.02072
Opus 5 $0.00087 $0.01036
Sonnet 5 $0.00035 $0.00414
Haiku 4.5 $0.00017 $0.00207

Measured 5d ago against content hash 49efc80c9431, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

sunshade scanned grade A with 0 findings 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 5d 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.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills_bank/sunshade/SKILL.md · 73 lines

How it starts

The opening of the file, as written. The whole thing — 73 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Open / close / position / sync the sunshade

Open, close, set the sunshade to a position, or synchronise it to the sunroof. Requests range from a fully specified open to an unstated percentage, a "match the sunroof" sync, or a case where the control — or its position parameter — is missing. The same method handles all of these.

When this applies

  • "Open the sunshade to N%" / "close the sunshade" — a fully specified move.
  • "Open the sunshade for some shade" — no percentage given.
  • "Match / synchronise the sunshade to the sunroof" — set the sunshade to the sunroof's current position.
  • Asking for the sunshade's position.

Tools

  • get_user_preferences() — read the default opening percentage only when the percentage is meant to come from a standing preference.
  • get_sunroof_and_sunshade_position() — read the current sunroof and sunshade positions; required before any "match/synchronise to the sunroof" request — the target number is only knowable from this read. A field may read "unknown" — unverifiable, not a value.
  • get_weather(...) — read weather for the relevant place/time only when a condition or warning applies to the move.
  • open_close_sunshade({percentage}) — set the sunshade opening percentage; 0 is fully closed. The tool, or its position parameter, may be missing (a missing required parameter makes every call error).

Method

  1. Act on the sunshade, with the correct argument. Open vs. close, and the right percentage value — don't close when an open was asked, and don't omit the value.
  2. "Match/synchronise the sunshade to the sunroof" → read positions FIRST, then set the sunshade. Call get_sunroof_and_sunshade_position once, take the sunroof's current position as the target, and set the sunshade to it — the sunshade is the component that moves. Don't skip the read and don't ask or guess the target; the number comes from the reading. This holds even if the user also states a number ("set the sunshade to 60% to match the sunroof") — the "match" framing makes the sunroof the source of truth, so still read and use the read value; the stated number is the user's belief, not the authority. Only a plain positioning request with no "match" framing skips the read.
  3. Read state/weather only when the outcome depends on it, once. Read positions for a sync; read weather one time only if a condition or warning applies. Read each deciding value once.

Read the full file on GitHub · 73 lines

Changes

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.

  1. 5d ago First seen · 73 lines · 174 tokens per session scan A 49efc80c9431

Subscribe to this mod's changes

sunshade is a skill published in the GitHub repository Darwin-Agent/Car-bench-TRACE (7 stars, last pushed 2d ago), licensed MIT. It adds 174 tokens to every session and 2,072 once invoked, about $0.0009 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

integrated-browser

Use this when working on the VS Code integrated browser ("browserView") to understand its architecture and mental model. Covers the embedded Chromium browser, its editor tab, navigation, overlay/layout, sessions, and agent browser tools under src/vs/platform/browserView and src/vs/workbench/contrib/browserView.

microsoft/vscode · 68 tokens

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…

google/skills · 83 tokens

jetson-diagnostic

Read-only Jetson health snapshot for identity, memory, GPU, thermal, power, storage, services, and top processes.

NVIDIA/skills · 30 tokens

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…

NVIDIA/skills · 236 tokens

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…

SnailSploit/Claude-Red · 113 tokens

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…

NVIDIA/skills · 94 tokens