Official agent skill

Create Testvectors

by bitwarden in bitwarden/sdk-internal

Record a serialized/encrypted format as a permanent test vector.

OfficialCustom licenceAuto-check passedTesting & QA

Install Create Testvectors

skills CLI
$ npx skills add bitwarden/sdk-internal --skill create-testvectors -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install bitwarden/sdk-internal create-testvectors --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/bitwarden/sdk-internal.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/create-testvectors .claude/skills/create-testvectors && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
create-testvectors
GitHub stars
111
Token cost
~1.3k tokens
SKILL.md length
390 words
Files
1
Skills in repo
1
Repo updated
First seen
Licence
Custom licence

At a glance

Record a serialized/encrypted format as a permanent test vector.

  • Works in 5 steps: Pick the encoding for the constant → Write a temporary generator test → Run it and capture the output → …
  • Adding a type whose serialization format must stay backward-compatible (envelopes
  • SKILL.md covers Reference implementations, Steps and Rules
  • Calls cargo and npm

What it does

Create Testvectors is an agent skill from bitwarden/sdk-internal, published by the product's own GitHub organization. Record a serialized/encrypted format as a permanent test vector. Use when adding a type whose serialization format must stay backward-compatible (envelopes, COSE blobs, encrypted/wire formats), or when the user asks to "create a test vector", "record a serialized format", or "lock in the wire format". Generates output with a temporary ignored test, then pins it in a permanent deserialization unit test.

Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Unit testing. It works with Rust. The repository describes itself as: Bitwarden internal SDK.

When your agent uses it

  • Adding a type whose serialization format must stay backward-compatible (envelopes
  • Encrypted/wire formats)
  • The user asks to create a test vector
  • Record a serialized format

Example prompts

  • “create a test vector”
  • “record a serialized format”
  • “lock in the wire format”
  • “/create-testvectors”

Requirements

  • Pre-approved tools (allowed-tools): Bash(cargo test:*), Bash(npm run lint)

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Pick the encoding for the constant
  2. Write a temporary generator test
  3. Run it and capture the output
  4. Add the permanent test vector + check
  5. Delete the generator and verify

What it can do on your machine

Read from SKILL.md and the folder at commit 39dbb51. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(cargo test:*)
    • Bash(npm run lint)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • cargo
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Create Testvectors loads about 1.3k tokens when it runs. Until then it costs about 106 tokens; SKILL.md has 390 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~106
When it runs · the whole SKILL.md, loaded when a task matches
~1.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

Its licence (Custom licence) doesn't allow us to republish the file, so here is its outline and opening line. It has 390 words (~1,274 tokens).

“Backward compatibility of serialized data is critical in this SDK: existing encrypted/serialized data must keep deserializing across versions. A test vector locks a known-good serialized blob into a permanent unit test that fails if the format ever silently breaks.”

— opening of SKILL.md by bitwarden, Custom licence
name
create-testvectors
allowed-tools
Bash(cargo test:*), Bash(npm run lint)

Read the full SKILL.md on GitHub

Files

Just SKILL.md in .claude/skills/create-testvectors of bitwarden/sdk-internal.

Open the folder on GitHubat commit 39dbb51

Compare with similar skills

Create Testvectors next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Create Testvectors compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Create Testvectors this skillbitwarden/sdk-internal111—~1.3kAutomated safety check: PassCustom licence
Rust TDD Workflowrtk-ai/rtk83k—~753Automated safety check: NotesApache-2.0
RTK Filter TDD in Rustrtk-ai/rtk83k—~1.9kAutomated safety check: NotesApache-2.0
Testing OpenLogi UIAprilNEA/OpenLogi23k—~1.1kAutomated safety check: PassApache-2.0
Rocketmq Rust Issue Generatormxsm/rocketmq-rust1.5k—~1.6kAutomated safety check: PassApache-2.0
Add UI Stringopenfootmanager/openfootmanager1.1k—~2.6kAutomated safety check: PassGPL-3.0

Similar skills

  • Enforces red-green-refactor for Rust work, with idiomatic test patterns, a naming convention and a pre-commit gate of cargo fmt, clippy and test.

    83k GitHub stars~753 tokensUpdated today
    Testing & QAAuto-check: notes
  • Enforces red-green-refactor for new RTK output filters in Rust, using real captured fixtures, snapshot tests with insta and token-savings assertions.

    83k GitHub stars~1.9k tokensUpdated today
    Testing & QAAuto-check: notes
  • Testing OpenLogi UI

    AprilNEA/OpenLogi

    Verifies OpenLogi's native GPUI interface with focused tests, the component gallery and a mock agent, choosing the evidence that fits each change.

    23k GitHub stars~1.1k tokensUpdated 4 days ago
    Testing & QAAuto-check passed
  • A skill your agent uses when the user asks to create, draft, prepare, or publish a GitHub issue for the rocketmq-rust project — bugs, features, enhancements, refactors, docs, unit tests, CI…

    1.5k GitHub stars~1.6k tokensUpdated today
    Testing & QAAuto-check passed
  • Add UI String

    openfootmanager/openfootmanager

    Add or change any text a player can see, in every locale the game ships in.

    1.1k GitHub stars~2.6k tokensUpdated today
    Testing & QAAuto-check passed
  • Port Node Red Node

    oldrev/edgelinkd

    Port a Node-RED node into EdgeLinkd the way this repo does it: implement the node in Rust under crates/core/src/runtime/nodes, mirror Node-RED's mocha spec as pytest tests under tests/, register the…

    121 GitHub stars~3k tokensUpdated yesterday
    Testing & QAAuto-check passed

Works with

Categories

Questions about Create Testvectors

What does Create Testvectors do?

Record a serialized/encrypted format as a permanent test vector. Create Testvectors is an agent skill from bitwarden/sdk-internal, published by the product's own GitHub organization. Record a serialized/encrypted format as a permanent test vector.

When should I use Create Testvectors?

Create Testvectors fits situations like: adding a type whose serialization format must stay backward-compatible (envelopes; encrypted/wire formats); the user asks to create a test vector; record a serialized format.

How do I install Create Testvectors in Claude Code?

Run `npx skills add bitwarden/sdk-internal --skill create-testvectors -a claude-code`. Or copy the skill folder (.claude/skills/create-testvectors in bitwarden/sdk-internal) into .claude/skills/create-testvectors in your project. Claude Code loads it when a task matches its description.

How do I install Create Testvectors in Codex?

Run `npx skills add bitwarden/sdk-internal --skill create-testvectors -a codex`. Or copy the skill folder (.claude/skills/create-testvectors in bitwarden/sdk-internal) into .agents/skills/create-testvectors in your project. Codex loads it when a task matches its description.

Can I use Create Testvectors in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add bitwarden/sdk-internal --skill create-testvectors -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/create-testvectors, .gemini/skills/create-testvectors, .github/skills/create-testvectors and .opencode/skills/create-testvectors in your project.

What does Create Testvectors need to run?

Going by SKILL.md and its folder, Create Testvectors needs the command-line tools its instructions call (cargo and npm). Its frontmatter pre-approves these tools: Bash(cargo test:*), Bash(npm run lint).

Does Create Testvectors access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Create Testvectors safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Create Testvectors use?

Create Testvectors has a licence file (the repository's licence) that doesn't match a standard licence. Read it on GitHub before reusing the skill.

How many tokens does Create Testvectors use?

About 1.3k tokens (SKILL.md is roughly 5.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Create Testvectors?

Skills that share tags, products or a category with Create Testvectors: Rust TDD Workflow (rtk-ai/rtk, 83k stars), RTK Filter TDD in Rust (rtk-ai/rtk, 83k stars), Testing OpenLogi UI (AprilNEA/OpenLogi, 23k stars) and Rocketmq Rust Issue Generator (mxsm/rocketmq-rust, 1.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Create Testvectors?

bitwarden (a GitHub organization, an official publisher) maintains it in bitwarden/sdk-internal, which has 111 GitHub stars. The repository was last updated on October 6, 2026.

Source: bitwarden/sdk-internal on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.