Agent skill

Corvus Bowtie Testing

by corvus-dotnet in corvus-dotnet/Corvus.JsonSchema

Test Corvus.JsonSchema against the JSON Schema Test Suite using Bowtie, the cross-implementation meta-validator.

Apache-2.0Auto-check passedDevOps & Cloud

Install Corvus Bowtie Testing

skills CLI
$ npx skills add corvus-dotnet/Corvus.JsonSchema --skill corvus-bowtie-testing -a claude-code

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

GitHub CLI
$ gh skill install corvus-dotnet/Corvus.JsonSchema corvus-bowtie-testing --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/corvus-dotnet/Corvus.JsonSchema.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/corvus-bowtie-testing .claude/skills/corvus-bowtie-testing && 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
corvus-bowtie-testing
GitHub stars
199
Token cost
~1.4k tokens
SKILL.md length
327 words
Files
1
Skills in repo
26
Repo updated
First seen
Licence
Apache-2.0

At a glance

Test Corvus.JsonSchema against the JSON Schema Test Suite using Bowtie, the cross-implementation meta-validator.

  • Works in 4 steps: Build local packages → Configure Bowtie for local development → Run the test suite → …
  • : running Bowtie conformance suites against local changes
  • SKILL.md covers Overview, Prerequisites, Full Workflow and Iteration Loop, plus 3 more sections
  • Calls python, pip and dotnet; reaches api.nuget.org

What it does

Corvus Bowtie Testing is an agent skill from corvus-dotnet/Corvus.JsonSchema. Test Corvus.JsonSchema against the JSON Schema Test Suite using Bowtie, the cross-implementation meta-validator. Covers local package building, configuring a local Bowtie checkout to use locally-built packages, running the test suite via Docker/Podman containers, interpreting results, the iteration loop, and teardown. Both V4 (dotnet-corvus-jsonschema-v4engine) and V5 (dotnet-corvus-jsonschema-v5engine) implementations are supported. USE FOR: running Bowtie conformance suites against local changes, setting up the…

Its SKILL.md is about 1.4k 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 DevOps & Cloud, covering Test generation and Containers. It works with .NET and Docker. The repository describes itself as: Support for Json Schema validation and entity generation. The licence is Apache-2.0.

When your agent uses it

  • : running Bowtie conformance suites against local changes
  • Setting up the local development loop
  • Interpreting Bowtie failure reports
  • Testing schema dialect compliance (Draft 4 through 2020-12)

Example prompts

  • “/corvus-bowtie-testing”

Requirements

  • Python 3
  • Docker

Workflow steps

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

  1. Build local packages
  2. Configure Bowtie for local development
  3. Run the test suite
  4. Teardown

What it can do on your machine

Read from SKILL.md and the folder at commit b9e3040. 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:

    • python
    • pip
    • dotnet
    • podman

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.nuget.org

    Also links to:

    • github.com
    • bowtie.report
    • docs.astral.sh

    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

Corvus Bowtie Testing loads about 1.4k tokens when it runs. Until then it costs about 207 tokens; SKILL.md has 327 words of instructions outside code blocks.

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

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 corvus-dotnet/Corvus.JsonSchema at commit b9e3040, republished under its Apache-2.0 licence (© corvus-dotnet). 327 words, ~1,431 tokens.

Download SKILL.mdSave it as .claude/skills/corvus-bowtie-testing/SKILL.md (or your agent's skills folder).
name
corvus-bowtie-testing
description
Test Corvus.JsonSchema against the JSON Schema Test Suite using Bowtie, the cross-implementation meta-validator. Covers local package building, configuring a local Bowtie checkout to use locally-built packages, running the test suite via Docker/Podman containers, interpreting results, the iteration loop, and teardown. Both V4 (dotnet-corvus-jsonschema-v4engine) and V5 (dotnet-corvus-jsonschema-v5engine) implementations are supported. USE FOR: running Bowtie conformance suites against local changes, setting up the local development loop, interpreting Bowtie failure reports, testing schema dialect compliance (Draft 4 through 2020-12). DO NOT USE FOR: running the in-repo MSTest test suite (use corvus-build-and-test), regenerating test classes from the submodule (use corvus-test-suite-regeneration).

Bowtie Testing

Overview

Bowtie is a meta-validator that runs the official JSON Schema Test Suite against multiple implementations. Corvus.JsonSchema has two Bowtie harnesses:

ImplementationPackage
dotnet-corvus-jsonschema-v4engineCorvus.Json.Validator
dotnet-corvus-jsonschema-v5engineCorvus.Text.Json.Validator

Live results: bowtie.report

Prerequisites

  • A local clone of bowtie
  • Podman or Docker on PATH
  • Python 3.13+ with uv (or pip)
Setting up the Bowtie venv

Always run bowtie from the local checkout's venv — not a system-wide install. The checkout may contain fixes not yet released.

powershell
cd D:\source\bowtie
python -m venv .venv
.\.venv\Scripts\pip.exe install -e .
$bowtie = "D:\source\bowtie\.venv\Scripts\bowtie.exe"

Full Workflow

1. Build local packages
powershell
.\build-local-packages.ps1
# Creates local-packages/ with all .nupkg files at version 5.0.0-local.1

To avoid NuGet cache hits after changes, increment the version:

powershell
.\build-local-packages.ps1 -Version 5.0.0-local.2
2. Configure Bowtie for local development
powershell
.\configure-bowtie-for-local-development.ps1 -BowtiePath D:\source\bowtie

This script:

  1. Builds local packages (or reuses existing ones)
  2. Copies .nupkg files into each Bowtie implementation directory
  3. Creates a NuGet.config pointing at the local feed
  4. Patches the .csproj to reference the local package version
  5. Patches the Dockerfile and .dockerignore
  6. Builds the container image via Podman/Docker
3. Run the test suite
powershell
cd D:\source\bowtie
$bowtie = ".\.venv\Scripts\bowtie.exe"

# Run a specific draft against the V5 engine
& $bowtie suite -i localhost/dotnet-corvus-jsonschema-v5engine 2020-12 `
    | & $bowtie summary --show failures

# Run against V4 engine
& $bowtie suite -i localhost/dotnet-corvus-jsonschema-v4engine 2020-12 `
    | & $bowtie summary --show failures

The localhost/ prefix tells Bowtie to use the locally-built image instead of pulling from the registry.

4. Teardown

Revert all Bowtie directory changes:

powershell
.\configure-bowtie-for-local-development.ps1 -BowtiePath D:\source\bowtie -Teardown

This restores original Dockerfile, .csproj, .dockerignore from backups and removes copied packages and NuGet.config.

Iteration Loop

powershell
$bowtie = "D:\source\bowtie\.venv\Scripts\bowtie.exe"

# 1. Make changes to library source

# 2. Teardown previous config
.\configure-bowtie-for-local-development.ps1 -BowtiePath D:\source\bowtie -Teardown

# 3. Rebuild and reconfigure with a new version
.\configure-bowtie-for-local-development.ps1 -BowtiePath D:\source\bowtie -Version 5.0.0-local.2

# 4. Run suite
cd D:\source\bowtie
& $bowtie suite -i localhost/dotnet-corvus-jsonschema-v5engine 2020-12 `
    | & $bowtie summary --show failures

Local Package Building (standalone)

For testing packages in consuming projects (not just Bowtie):

powershell
# Pack everything
.\build-local-packages.ps1

# Pack a single project (faster)
dotnet pack src\Corvus.Text.Json.Migration.Analyzers `
    -c Release -o local-packages /p:Version=5.0.0-local.1

# Clear NuGet cache for a specific package
Remove-Item -Recurse -Force "$env:USERPROFILE\.nuget\packages\corvus.text.json"

The consuming project needs a nuget.config with the local feed:

xml
<configuration>
  <packageSources>
    <add key="local" value="C:\full\path\to\Corvus.JsonSchema\local-packages" />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
  </packageSources>
</configuration>

Common Pitfalls

  • NuGet cache: NuGet caches packages by version. Always increment the version suffix (-local.2, -local.3) or clear the cache (Remove-Item -Recurse -Force "$env:USERPROFILE\.nuget\packages\<package-name>") when repacking.
  • System bowtie: Don't use a system-installed bowtie — always use the venv from the local checkout. It may contain critical fixes.
  • Container rebuild: The configure script builds the container image, but if you need to force a rebuild, delete the image first: podman rmi localhost/dotnet-corvus-jsonschema-v5engine.
  • Repo nuget.config: Don't modify the repo's own nuget.config (it uses <clear /> for CI isolation). Add the local source to the consuming project's config.

Cross-References

  • For in-repo test suite execution, see corvus-build-and-test
  • For regenerating test classes from the submodule, see corvus-test-suite-regeneration
  • Full guide: docs/LocalNuGetTesting.md

© corvus-dotnet, Apache-2.0. 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 .github/skills/corvus-bowtie-testing of corvus-dotnet/Corvus.JsonSchema.

Open the folder on GitHubat commit b9e3040

Compare with similar skills

Corvus Bowtie Testing 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.

Corvus Bowtie Testing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Corvus Bowtie Testing this skillcorvus-dotnet/Corvus.JsonSchema199—~1.4kAutomated safety check: PassApache-2.0
Model Download Devopen-edge-platform/edge-ai-libraries169—~2kAutomated safety check: PassApache-2.0
Dockerfile And Readme Templatingdotnet/dotnet-docker4.9k—~563Automated safety check: PassMIT
Porting Changesdotnet/dotnet-docker4.9k—~781Automated safety check: PassMIT
.NET Crash Dump Collectiondotnet/skills5.6k2 repos~1.1kAutomated safety check: PassMIT
Image Managementdotnet/dotnet-docker4.9k—~1.1kAutomated safety check: PassMIT

Similar skills

  • Model Download Dev

    open-edge-platform/edge-ai-libraries

    Extend, test, debug, or integrate the Model Download microservice codebase.

    169 GitHub stars~2k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Official

    Modify Cottle templates that generate Dockerfiles and READMEs in dotnet/dotnet-docker.

    4.9k GitHub stars~563 tokensUpdated today
    DevOps & CloudAuto-check passed
  • Porting Changes

    dotnet/dotnet-docker

    Official

    Plan and move changes between branches in dotnet/dotnet-docker.

    4.9k GitHub stars~781 tokensUpdated today
    DevOps & CloudAuto-check passed
  • Official

    Configures automatic crash dumps or captures dumps from running processes for modern .NET apps on Linux, macOS and Windows, including Docker and Kubernetes.

    5.6k GitHub starsUsed in 2 repos~1.1k tokens
    DevOps & CloudAuto-check passed
  • Image Management

    dotnet/dotnet-docker

    Official

    Manages .NET Docker images including adding images for new .NET versions, new Linux distros (Alpine, Ubuntu, Azure Linux), and new Windows versions.

    4.9k GitHub stars~1.1k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Liveblog Dev

    liveblog/liveblog

    Run a local Liveblog development environment. An agent skill from liveblog/liveblog.

    119 GitHub stars~1.9k tokensUpdated today
    DevOps & CloudAuto-check passed

More from corvus-dotnet/Corvus.JsonSchema

All 26 skills in this repo
  • Corvus Analyzers

    corvus-dotnet/Corvus.JsonSchema

    Understand and work with the Roslyn analyzers shipped with Corvus.Text.Json.

    199 GitHub stars~876 tokensUpdated today
    Auto-check passed
  • Corvus Benchmarks

    corvus-dotnet/Corvus.JsonSchema

    Run, interpret, and maintain BenchmarkDotNet benchmarks for JSON Schema validation and query languages.

    199 GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Corvus Buffer And Pooling

    corvus-dotnet/Corvus.JsonSchema

    Write allocation-efficient buffer code in Corvus.JsonSchema using the codebase's established three-tier pooling pattern: stackalloc → ArrayPool → ThreadStatic caches.

    199 GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Corvus Bytes To Bytes

    corvus-dotnet/Corvus.JsonSchema

    Eliminate hand-rolled POCO record<-document string seams — types/paths that materialize a managed string (or List<string/Dictionary) between a bytes SOURCE (a parsed UTF-8 body, a DB column, a…

    199 GitHub stars~3k tokensUpdated today
    Auto-check passed
  • Corvus Codegen

    corvus-dotnet/Corvus.JsonSchema

    Generate strongly-typed C from JSON Schema using the Roslyn source generator or the corvusjson CLI tool.

    199 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Corvus Ctj Handler Implementation

    corvus-dotnet/Corvus.JsonSchema

    Implement OpenAPI server handlers using Corvus.Text.Json generated types.

    199 GitHub stars~4.4k tokensUpdated today
    Auto-check passed

Works with

Questions about Corvus Bowtie Testing

What does Corvus Bowtie Testing do?

Test Corvus.JsonSchema against the JSON Schema Test Suite using Bowtie, the cross-implementation meta-validator. JsonSchema.JsonSchema against the JSON Schema Test Suite using Bowtie, the cross-implementation meta-validator.

When should I use Corvus Bowtie Testing?

Corvus Bowtie Testing fits situations like: : running Bowtie conformance suites against local changes; setting up the local development loop; interpreting Bowtie failure reports; testing schema dialect compliance (Draft 4 through 2020-12).

How do I install Corvus Bowtie Testing in Claude Code?

Run `npx skills add corvus-dotnet/Corvus.JsonSchema --skill corvus-bowtie-testing -a claude-code`. Or copy the skill folder (.github/skills/corvus-bowtie-testing in corvus-dotnet/Corvus.JsonSchema) into .claude/skills/corvus-bowtie-testing in your project. Claude Code loads it when a task matches its description.

How do I install Corvus Bowtie Testing in Codex?

Run `npx skills add corvus-dotnet/Corvus.JsonSchema --skill corvus-bowtie-testing -a codex`. Or copy the skill folder (.github/skills/corvus-bowtie-testing in corvus-dotnet/Corvus.JsonSchema) into .agents/skills/corvus-bowtie-testing in your project. Codex loads it when a task matches its description.

Can I use Corvus Bowtie Testing 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 corvus-dotnet/Corvus.JsonSchema --skill corvus-bowtie-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/corvus-bowtie-testing, .gemini/skills/corvus-bowtie-testing, .github/skills/corvus-bowtie-testing and .opencode/skills/corvus-bowtie-testing in your project.

What does Corvus Bowtie Testing need to run?

Going by SKILL.md and its folder, Corvus Bowtie Testing needs the command-line tools its instructions call (python, pip, dotnet and podman). Our summary lists: Python 3; Docker.

Does Corvus Bowtie Testing access the network?

SKILL.md names 4 domains. In commands or code: api.nuget.org; the agent is likely to contact it when it follows the instructions. As links in the text: github.com, bowtie.report and docs.astral.sh. This is read from the text; nothing was executed.

Is Corvus Bowtie Testing 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 Corvus Bowtie Testing use?

Corvus Bowtie Testing is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Corvus Bowtie Testing use?

About 1.4k tokens (SKILL.md is roughly 5.7k 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 Corvus Bowtie Testing?

Skills that share tags, products or a category with Corvus Bowtie Testing: Model Download Dev (open-edge-platform/edge-ai-libraries, 169 stars), Dockerfile And Readme Templating (dotnet/dotnet-docker, 4.9k stars), Porting Changes (dotnet/dotnet-docker, 4.9k stars) and .NET Crash Dump Collection (dotnet/skills, 5.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Corvus Bowtie Testing?

corvus-dotnet (a GitHub organization) maintains it in corvus-dotnet/Corvus.JsonSchema, which has 199 GitHub stars. The repository holds 26 skills in this directory. The repository was last updated on October 8, 2026.

Source: corvus-dotnet/Corvus.JsonSchema on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.