Agent skill

Test Conversion

by nwjs in nwjs/chromium.src

Workflow for converting unit tests to browser tests for Project Bedrock.

BSD-3-ClauseAuto-check passedTesting & QA

Install Test Conversion

skills CLI
$ npx skills add nwjs/chromium.src --skill test-conversion -a claude-code

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

GitHub CLI
$ gh skill install nwjs/chromium.src test-conversion --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/nwjs/chromium.src.git skills-src && mkdir -p .claude/skills && cp -r skills-src/agents/projects/bedrock/test-conversion .claude/skills/test-conversion && 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
test-conversion
GitHub stars
160
Token cost
~2k tokens
SKILL.md length
1,036 words
Files
1
Skills in repo
64
Repo updated
First seen
Licence
BSD-3-Clause

At a glance

Workflow for converting unit tests to browser tests for Project Bedrock.

  • Works in 5 steps: Setup → Research & Planning → Implementation → …
  • Wants to remove complex Browser dependencies from tests
  • SKILL.md covers Phase 1: Setup, Phase 2: Research & Planning, Phase 3: Implementation and Phase 4: Code Review, plus 1 more section
  • Calls git

What it does

Test Conversion is an agent skill from nwjs/chromium.src. Workflow for converting unit tests to browser tests for Project Bedrock. Invoke this when the user wants to remove complex Browser dependencies from tests.

Its SKILL.md is about 2k 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. The repository describes itself as: Chromium codebase with NW.js modifications. Based on https://chromium.googlesource.com/chromium/src.git. The licence is BSD-3-Clause.

When your agent uses it

  • Wants to remove complex Browser dependencies from tests
  • Tasks that involve Unit testing

Example prompts

  • “/test-conversion”

Workflow steps

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

  1. Setup
  2. Research & Planning
  3. Implementation
  4. Code Review
  5. Upload and Presubmit

What it can do on your machine

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

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

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

  • Network

    No URLs in SKILL.md. Its commands use git, 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

Test Conversion loads about 2k tokens when it runs. Until then it costs about 43 tokens; SKILL.md has 1,036 words of instructions outside code blocks.

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

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

The full file from nwjs/chromium.src at commit a9e8946, republished under its BSD-3-Clause licence (© nwjs). 1,036 words, ~1,965 tokens.

Download SKILL.mdSave it as .claude/skills/test-conversion/SKILL.md (or your agent's skills folder).
name
test-conversion
description
Workflow for converting unit tests to browser tests for Project Bedrock. Invoke this when the user wants to remove complex Browser dependencies from tests.

Role

You are an Elite Chromium Architecture Expert. Your objective is to orchestrate a workflow to remove a Browser* dependency from a unit test file. You will use subagents for planning and review, but you will perform the implementation yourself.

Workspace Context

You are operating in the root directory of the local chromium/src checkout. All paths starting with // are relative to this root directory.

Inputs

Provide following inputs to subagents accordingly:

  • The path to the test to convert, TEST_PATH: [PATH TO TEST]

Instructions

  • Coordinate the following sequence of operations strictly in order.
  • Wait for each step to fully complete before proceeding to the next.
  • Do NOT add additional instructions besides the required inputs when starting a subagent, and ask the subagent to follow its original agent prompt.
  • You MUST explicitly instruct the subagent to report back to you through messages when finished.
  • If you cannot make progress or run into unexpected errors, output a detailed Failure Summary (see Exit Paths below) and halt.

Phase 1: Setup

  • Action: Write the current <conversation id> to .agents/bedrock_conversation

Phase 2: Research & Planning

  • Action: Start a bedrock-researcher subagent. This agent is a general-purpose researcher. Use it to research the coding problem, explore the codebase, and figure out a good approach.
  • Inputs:
    • A clear description of the research task or problem.
    • For the Bedrock workflow, provide the TEST_PATH and ask for a plan to remove Browser* dependencies.
    • Context for Bedrock Workflow: Provide the following patterns to the researcher:
      • Preferred Pattern: Try to keep it a unit test if dependencies on Browser*, TestBrowserWindow, BrowserWithTestWindowTest, TestWithBrowserView, or CreateBrowserWithTestWindowForParams are minimal. Replace them with focused test objects.
      • Fallback Pattern: Convert to a browser test if dependencies are complex. Rename the file to _browsertest.cc, move it in BUILD.gn, and use InProcessBrowserTest.
    • Target Path: The absolute path where the execution plan should be written: <your_artifacts_directory>/EXECUTION_PLAN.md (where <your_artifacts_directory> is your active brain directory)
  • Expected Output: The agent will write its recommendations to EXECUTION_PLAN.md in your artifacts directory.

Phase 3: Implementation

  • Action: Implement the changes specified in EXECUTION_PLAN.md (located in your artifacts directory) yourself.
  • Workflow:
    1. Read the design doc (EXECUTION_PLAN.md in your artifacts directory) carefully.
    2. Follow the changes specified in the plan.
    3. Use appropriate output directories (e.g., out/chromeos for ChromeOS tests, out/debug for others, out/dangling if you have dangling pointer failures).
    4. Build your changes: a. Format the working copy: jj fix b. Run gn check <out-dir> to verify GN files (especially if you modified BUILD.gn). c. Build the test binary: autoninja -C <out-dir> <test binary>
    5. Fix any build errors and repeat until it passes. If you cannot fix a build error, see if returning to Phase 2 helps.
      • Unrelated Upstream Failures: If the build fails on a file/dependency you didn't touch (which often means upstream main is broken or has introduced new changes since your checkout started), rebase your branch onto the latest remote main:
        1. Fetch remote changes: jj git fetch
        2. Rebase your bookmark onto the remote main bookmark: jj rebase -b my-branch -d main@origin
        3. Synchronize dependencies: gclient sync
        4. Clean your working directory of any local untracked diff/helper files, and rebuild.
    6. Run the tests:
      • Run the test binary with the filter: ./<out-dir>/<test binary> --gtest_filter=<gtest filter> --gunit_fail_fast
      • If you are running ASan builds, symbolize the output: ./<out-dir>/<test binary> --gtest_filter=<gtest filter> --gunit_fail_fast 2>&1 | tools/valgrind/asan/asan_symbolize.py Repeat until the tests pass. If you cannot fix a test error, see if returning to Phase 2 helps.

Phase 4: Code Review

  • Action: Start a bedrock-reviewer subagent with the following inputs:
    • TEST_PATH
    • Instructions: "Review the changes directly using jj log and jj diff. Ensure each new commit is focused and easy to review."
  • Expected Output: LGTM or a list of blocking comments. If there are blocking comments that are complex or ambiguous, return to Phase 2 to get advice on how to fix them. If the blocking comments are all simple and easily fixed, return to Phase 3 and fix them directly.
Show full SKILL.md (384 more words)Show less

Phase 5: Upload and Presubmit

  • Action:
    • Commit your changes with jj commit or jj squash. Note that each commit will become a separate CL, so make sure that small fixes to existing CLs are squashed. An example CL description is:
[bedrock] Remove Browser* from [PATH TO TEST]

Bypass-Check-License: Moved files
  • Run git cl upload origin/main to upload the CL (since jj operates in a detached HEAD state, specifying the base branch like origin/main is required; see git-cl-helper skill for details on this command). Note that uploading may take a long time. Please wait until it succeeds or times out.

  • Trybot Polling: Instead of blocking yourself with manual polling loops, delegate polling to a self subagent to run asynchronously.

    • Spawn a self subagent with instructions to:
      1. Periodically poll the trybot and Gerrit comments status using the git-cl-helper skill: vpython3 agents/skills/git-cl-helper/scripts/git_cl_helper.py poll --gerrit_url <GERRIT_URL>.
      2. Monitor for trybot completion (passed or failed) or new Gerrit comments.
      3. Report back to you immediately via send_message once trybots finish or comment events occur.
    • Go idle (stop calling tools) and wait for the subagent to notify you.
  • Handling Polling Updates:

    • If the subagent reports trybot failures: Use the luci-test-results skill to triage. Fix the errors yourself following the implementation workflow, then you MUST return to Phase 4 (Code Review) for a fresh reviewer signoff before uploading a corrected patchset.
    • If the subagent reports unresolved Gerrit change comments: Address them, then you MUST return to Phase 4 (Code Review) for a fresh reviewer signoff before uploading a corrected patchset. Use git-cl-helper to post response drafts.
  • Expected Output: CL uploaded, presubmits passed, or errors fixed. Display the full CL link to the user at the end.

Exit Paths

Upon completion of the workflow (either by finishing the task or by reaching a point where no further progress can be made), you must provide one of the following:

  1. A finished CL:

    • The full link to the uploaded CL.
    • A confirmation that all tests passed and presubmits were successful (as per Phase 5).
  2. A Failure Summary:

    • If you cannot make progress or run into unexpected errors that you cannot resolve after reasonable effort:
      • Summarize the approaches you tried (e.g., specific code changes, build attempts, test runs).
      • Describe the difficulties encountered and the error messages received.
      • State what expertise or information you feel is missing.
      • Halt and wait for human intervention.

© nwjs, BSD-3-Clause. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in agents/projects/bedrock/test-conversion of nwjs/chromium.src.

Open the folder on GitHubat commit a9e8946

Compare with similar skills

Test Conversion 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.

Test Conversion compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Test Conversion this skillnwjs/chromium.src160—~2kAutomated safety check: PassBSD-3-Clause
TDD WorkflowhellangleZ/burn-in-cceverywhere-ralph11211 repos~2.4kAutomated safety check: PassNone
Testing OpenLogi UIAprilNEA/OpenLogi23k—~1.1kAutomated safety check: PassApache-2.0
Go Testingcxuu/golang-skills1701 repos~1.3kAutomated safety check: PassApache-2.0
Contractssamchon/nestia2.2k—~1.3kAutomated safety check: PassMIT
Cohesion Over TestabilityEpicenterHQ/epicenter4.8k—~2kAutomated safety check: PassCustom licence

Similar skills

  • TDD Workflow

    hellangleZ/burn-in-cceverywhere-ralph

    A skill your agent uses when writing new features, fixing bugs, or refactoring code.

    112 GitHub starsUsed in 11 repos~2.4k tokens
    Testing & QAAuto-check passed
  • 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
  • Go Testing

    cxuu/golang-skills

    A skill your agent uses when writing, reviewing, or improving Go test code — including table-driven tests, subtests, parallel tests, test helpers, test doubles, and assertions with cmp.Diff.

    170 GitHub starsUsed in 1 repo~1.3k tokens
    Testing & QAAuto-check passed
  • Contracts

    samchon/nestia

    Defines self-acknowledgments for production declarations and tests.

    2.2k GitHub stars~1.3k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Cohesion Over Testability

    EpicenterHQ/epicenter

    Collapse test-shaped production boundaries while preserving behavior and coverage.

    4.8k GitHub stars~2k tokensUpdated today
    Testing & QAAuto-check passed
  • JS-in-HTML Testing

    liaohch3/claude-tap

    Tests JavaScript embedded in an HTML file in two layers: pytest checks of the logic ported to Python, and Playwright runs in a real browser for the DOM.

    3.3k GitHub stars~924 tokensUpdated 16 days ago
    Testing & QAAuto-check passed

More from nwjs/chromium.src

All 64 skills in this repo
  • Analyzing SQL Traces

    nwjs/chromium.src

    Extracts raw trace data from Perfetto traces, runs arbitrary SQL queries for custom follow-up analysis, and applies expert cognitive principles (Tiered Flow Analysis, Semantic Mismatch, Redundancy)…

    160 GitHub stars~2.9k tokensUpdated 4 days ago
    Auto-check passed
  • Autonomous multi-agent performance optimization loop for Chromium and V8.

    160 GitHub stars~4.2k tokensUpdated 4 days ago
    Auto-check passed
  • Automated Tracing

    nwjs/chromium.src

    Automated Tracing & Performance Telemetry in Chromium using Perfetto and Telemetry benchmarks.

    160 GitHub stars~1.5k tokensUpdated 4 days ago
    Auto-check passed
  • Chrome Releases

    nwjs/chromium.src

    Queries Chrome commit, version, release, and milestone metadata.

    160 GitHub stars~1.3k tokensUpdated 4 days ago
    Auto-check passed
  • Chromium Docs

    nwjs/chromium.src

    Search and reference Chromium documentation from the local docs index, including design docs, APIs, and development guides.

    160 GitHub stars~1.2k tokensUpdated 4 days ago
    Auto-check passed
  • Gn Deps Debugging

    nwjs/chromium.src

    Diagnose Chromium GN dependency and include-visibility failures, including BUILD.gn deps/publicdeps, DEPS include rules, private headers, and circular dependencies.

    160 GitHub stars~1.5k tokensUpdated 4 days ago
    Auto-check passed

Categories

Questions about Test Conversion

What does Test Conversion do?

Workflow for converting unit tests to browser tests for Project Bedrock. src. Workflow for converting unit tests to browser tests for Project Bedrock.

When should I use Test Conversion?

Test Conversion fits situations like: wants to remove complex Browser dependencies from tests; tasks that involve Unit testing.

How do I install Test Conversion in Claude Code?

Run `npx skills add nwjs/chromium.src --skill test-conversion -a claude-code`. Or copy the skill folder (agents/projects/bedrock/test-conversion in nwjs/chromium.src) into .claude/skills/test-conversion in your project. Claude Code loads it when a task matches its description.

How do I install Test Conversion in Codex?

Run `npx skills add nwjs/chromium.src --skill test-conversion -a codex`. Or copy the skill folder (agents/projects/bedrock/test-conversion in nwjs/chromium.src) into .agents/skills/test-conversion in your project. Codex loads it when a task matches its description.

Can I use Test Conversion 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 nwjs/chromium.src --skill test-conversion -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/test-conversion, .gemini/skills/test-conversion, .github/skills/test-conversion and .opencode/skills/test-conversion in your project.

What does Test Conversion need to run?

Going by SKILL.md and its folder, Test Conversion needs the command-line tools its instructions call (git).

Does Test Conversion access the network?

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

Is Test Conversion 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 Test Conversion use?

Test Conversion is published under the BSD-3-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Test Conversion use?

About 2k tokens (SKILL.md is roughly 7.9k 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 Test Conversion?

Skills that share tags, products or a category with Test Conversion: TDD Workflow (hellangleZ/burn-in-cceverywhere-ralph, 112 stars), Testing OpenLogi UI (AprilNEA/OpenLogi, 23k stars), Go Testing (cxuu/golang-skills, 170 stars) and Contracts (samchon/nestia, 2.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Test Conversion?

nwjs (a GitHub organization) maintains it in nwjs/chromium.src, which has 160 GitHub stars. The repository holds 64 skills in this directory. The repository was last updated on October 3, 2026.

Source: nwjs/chromium.src on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.