Code Review
dotnet/macios
Review dotnet/macios PRs against established rules. An agent skill from dotnet/macios.
Work on the Go port of the V5 standalone schema evaluator (src-go/corvus-json-schema, module github.com/corvus-dotnet/Corvus.JsonSchema/src-go/corvus-json-schema, package jsonschema): loader…
$ npx skills add corvus-dotnet/Corvus.JsonSchema --skill corvus-go-evaluator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install corvus-dotnet/Corvus.JsonSchema corvus-go-evaluator --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-go-evaluator .claude/skills/corvus-go-evaluator && rm -rf skills-srcUse ~/.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/
Install the "corvus-go-evaluator" agent skill from https://github.com/corvus-dotnet/Corvus.JsonSchema/tree/main/.github/skills/corvus-go-evaluator into .claude/skills/corvus-go-evaluator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "corvus-go-evaluator", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/corvus-dotnet/Corvus.JsonSchema/tree/main/.github/skills/corvus-go-evaluatorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add corvus-dotnet/Corvus.JsonSchema --skill corvus-go-evaluator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install corvus-dotnet/Corvus.JsonSchema corvus-go-evaluator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/corvus-dotnet/Corvus.JsonSchema.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/corvus-go-evaluator .agents/skills/corvus-go-evaluator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "corvus-go-evaluator" agent skill from https://github.com/corvus-dotnet/Corvus.JsonSchema/tree/main/.github/skills/corvus-go-evaluator into .agents/skills/corvus-go-evaluator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "corvus-go-evaluator", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add corvus-dotnet/Corvus.JsonSchema --skill corvus-go-evaluator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install corvus-dotnet/Corvus.JsonSchema corvus-go-evaluator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/corvus-dotnet/Corvus.JsonSchema.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/corvus-go-evaluator .cursor/skills/corvus-go-evaluator && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "corvus-go-evaluator" agent skill from https://github.com/corvus-dotnet/Corvus.JsonSchema/tree/main/.github/skills/corvus-go-evaluator into .cursor/skills/corvus-go-evaluator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "corvus-go-evaluator", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/corvus-dotnet/Corvus.JsonSchema.git --path .github/skills/corvus-go-evaluator--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add corvus-dotnet/Corvus.JsonSchema --skill corvus-go-evaluator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install corvus-dotnet/Corvus.JsonSchema corvus-go-evaluator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/corvus-dotnet/Corvus.JsonSchema.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/corvus-go-evaluator .gemini/skills/corvus-go-evaluator && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "corvus-go-evaluator" agent skill from https://github.com/corvus-dotnet/Corvus.JsonSchema/tree/main/.github/skills/corvus-go-evaluator into .gemini/skills/corvus-go-evaluator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "corvus-go-evaluator", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install corvus-dotnet/Corvus.JsonSchema corvus-go-evaluatorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add corvus-dotnet/Corvus.JsonSchema --skill corvus-go-evaluator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/corvus-dotnet/Corvus.JsonSchema.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/corvus-go-evaluator .github/skills/corvus-go-evaluator && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "corvus-go-evaluator" agent skill from https://github.com/corvus-dotnet/Corvus.JsonSchema/tree/main/.github/skills/corvus-go-evaluator into .github/skills/corvus-go-evaluator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "corvus-go-evaluator", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add corvus-dotnet/Corvus.JsonSchema --skill corvus-go-evaluator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install corvus-dotnet/Corvus.JsonSchema corvus-go-evaluator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/corvus-dotnet/Corvus.JsonSchema.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/corvus-go-evaluator .opencode/skills/corvus-go-evaluator && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "corvus-go-evaluator" agent skill from https://github.com/corvus-dotnet/Corvus.JsonSchema/tree/main/.github/skills/corvus-go-evaluator into .opencode/skills/corvus-go-evaluator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "corvus-go-evaluator", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
corvus-go-evaluatorWork on the Go port of the V5 standalone schema evaluator (src-go/corvus-json-schema, module github.com/corvus-dotnet/Corvus.JsonSchema/src-go/corvus-json-schema, package jsonschema): loader…
Corvus Go Evaluator is an agent skill from corvus-dotnet/Corvus.JsonSchema. Work on the Go port of the V5 standalone schema evaluator (src-go/corvus-json-schema, module github.com/corvus-dotnet/Corvus.JsonSchema/src-go/corvus-json-schema, package jsonschema): loader, compiler, the fail-fast plans and fused object plans, results collector and annotations, the document parser, the ECMA-262 regular expression engine, the allocation tests, the conformance and annotation suites, the jsonschema-benchmark and Bowtie integrations, and performance measurement. USE FOR: changing or debugging the…
Its SKILL.md is about 2.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 Development. It works with C#, Java, TypeScript and GitHub. The repository describes itself as: Support for Json Schema validation and entity generation. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 973097f. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
gopwshFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Corvus Go Evaluator loads about 2.2k tokens when it runs. Until then it costs about 236 tokens; SKILL.md has 991 words of instructions outside code blocks.
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.
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.
The full file from corvus-dotnet/Corvus.JsonSchema at commit 973097f, republished under its Apache-2.0 licence (© corvus-dotnet). 991 words, ~2,246 tokens.
.claude/skills/corvus-go-evaluator/SKILL.md (or your agent's skills folder).src-go/corvus-json-schema ports the Corvus.Text.Json.RuntimeEvaluator pipeline to Go, by way of the Rust port
(src-rs/corvus-json-schema), which it follows file for file. loader.go and compiler.go build the node graph
(schemaNode) and its analyses (marking, in-place cycles, discriminators). plan.go compiles each node to a
fail-fast plan, and fused.go fuses an object's keywords across $ref, allOf, if/then/else, dependencies
and oneOf/anyOf into one pass. eval.go is the general evaluator: it serves results collection, and the nodes
that track evaluated properties or items. Document (document.go) is the instance model: the UTF-8 text plus a
flat tape, two words per value. names.go is the property name lookup, pattern.go the regex-free pattern
matchers, and internal/ecmaregex the ECMA-262 engine behind every other pattern. internal/ucd holds the Unicode
tables that the engine and the formats read.
The module has no dependencies outside the standard library. Keep it that way: the benchmark and Bowtie harnesses are modules of their own for that reason.
The package README describes the design. OPTIMIZATIONS.md maps every optimisation to its counterpart in the C#,
Rust and Java evaluators, and its Todo list is the order of the performance work. Keep it current: a technique added
to any of the other evaluators should be checked off (or ruled out, with the reason) there.
Go 1.25 or later. From src-go/corvus-json-schema:
go vet ./...
gofmt -l . # prints nothing when the code is formatted
go test -p 4 ./... # every test
go test -p 4 -race ./... # as CI does on Linux and macOS (needs a C compiler; CC=clang works)
JSONSCHEMA_BENCHMARK=<jsonschema-benchmark> go test -p 4 -run TestPlansAgree . # plans against the general evaluatorThe suites read the repository's JSON-Schema-Test-Suite submodule (or JSON_SCHEMA_TEST_SUITE). Every required,
optional and format test must pass (draft4/optional/zeroTerminatedFloats.json is excluded, as in the C# runner),
and all annotation assertions. Each case runs fail-fast as a document, as bytes and as a string, and through a
collector at each level, and the verdicts must agree. SUITE_DRAFT and SUITE_FILTER narrow the run.
TestEmbeddedMetaschemasAreCurrent checks the embedded metaschemas (metaschemas/) against
src/Corvus.Text.Json/metaschema. UPDATE_METASCHEMAS=1 copies them again.
src-go/corvus-json-schema-bowtie runs the Bowtie harness over IHOP on the required and annotation suites
(go test -p 4 ./... there). CI (.github/workflows/go.yml) runs all of these on Linux x64 and arm64, Windows and
macOS, with the oldest Go the module accepts, Go 1.26, Go 1.27 and the latest.
go.mod says go 1.25.0. CI tests that exact toolchain, Go 1.26, Go 1.27 and the latest release. Use no language
or library feature newer than Go 1.25.
The module takes no Unicode data from the toolchain, so it gives the same results with every Go release. The
standard library's unicode package is Unicode 15 in Go 1.25 and 1.26 and Unicode 17 in Go 1.27, and the \p
classes and case folding of regexp and the case functions of strings and bytes read it. Never use any of them
outside a test file. TestNoToolchainUnicodeData (unicode_test.go) scans the module and fails if one appears.
Use internal/ucd instead. ucd.Category, ucd.Script, ucd.ScriptExtensions and ucd.Binary return a
*ucd.Table (Contains, AppendRanges), ucd.Letter() and its siblings are the general category groups, and
ucd.Fold and ucd.ToUpper are the simple case mappings. For ASCII-only case rules use asciiLower (uri.go). A
regular expression given to regexp must spell out ranges from the tables, as idnEmailLocalRegexp in formats.go
and writeRE2 in internal/ecmaregex do.
internal/ucd/tables_gen.go holds Unicode 17, the version V8 answered with in internal/ecmaregex/testdata/v8_oracle.json.
internal/ucd/gen_tables.ps1 writes it from the Unicode data of the regress crate that the Rust port depends on,
already formatted as gofmt formats it:
pwsh src-go/corvus-json-schema/internal/ucd/gen_tables.ps1 -RegressTables ~/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regress-0.12.0/src/unicodetables.rsTo move to a later Unicode version, generate the tables from a regress release that carries it (pass
-UnicodeVersion), record the V8 oracle again with a V8 of the same version (testdata/gen_oracle.js), and update
TestTheDataIsUnicode17 in internal/ucd. Do the three together.
Validation must allocate nothing in the steady state, from a *Document, a []byte or a string.
TestValidationAllocatesNothingInTheSteadyState measures each case with testing.AllocsPerRun. Add a case for
every new keyword path. The evaluator is a value on the stack. Its buffers are a scratch, taken from the
validator's sync.Pool only when first needed (evaluator.state). Evaluated-property sets come from the scratch's
arena (newBits), and fused passes are reused through it. The race detector makes sync.Pool drop values, so the
allocation tests skip under -race (raceEnabled).
OPTIMIZATIONS.md in its Todo order. Measure each change before keeping it.src-go/corvus-json-schema-bench (see its README) runs the jsonschema-benchmark corpora with corvus
and santhosh-tekuri/jsonschema, interleaving the engines' passes. Profile with go test -cpuprofile or pprof on
that program.pwsh Build-Image.ps1 in
src-go/corvus-json-schema-bench/jsonschema-benchmark) and run Compare-Images.ps1, pinned with -CpuSet. Every
harness must warm up by time (2 seconds, at least 100 passes) and report the last warm-up pass, timed inside the
loop. Compare like with like.go build -gcflags='-m -d=ssa/check_bce' .When the C# collecting mode changes (paths, messages, row order, which subschema results are kept), update the
collecting paths of eval.go and results_test.go, which reproduces the C# ResultsTests/ResultPathTests
expectations. Format recognition follows SchemaCompiler.GetFormatKind (formatKind in formats.go). A change to
a plan in the Rust crate (eval/plan.rs, eval/plan/fused.rs) usually ports line for line to plan.go and
fused.go. Patterns have ECMA-262 semantics through internal/ecmaregex, which is tested against answers recorded
from V8 (see corvus-ecma-regex for the .NET translator).
Versioned independently, with its history in src-go/corvus-json-schema/VERSIONHISTORY.md. Bump Version in
version.go, add the history entry, and merge. .github/workflows/go-publish.yml runs the tests, tags
src-go/corvus-json-schema/v<version> and asks the Go module proxy for the version. See docs/ReleaseProcess.md,
"The Go module". Never push that tag by hand, and never move one: the checksum database has recorded it.
src-go/corvus-json-schema-bench/jsonschema-benchmark/: the implementations/corvus-go directory for
jsonschema-benchmark. It requires the published module, so local builds use a workspace
(go work init . ../../corvus-json-schema).src-go/corvus-json-schema-bowtie/: the Bowtie harness and its image.docs/JsonSchemaForGo.md, its row in docs/OtherLanguages.md, and the home page's language list. The code
samples in the docs and the README are example tests (example_test.go). Change both together.© 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
Just SKILL.md in .github/skills/corvus-go-evaluator of corvus-dotnet/Corvus.JsonSchema.
Open the folder on GitHubat commit 973097f
Corvus Go Evaluator 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Corvus Go Evaluator this skillcorvus-dotnet/Corvus.JsonSchema | 199 | — | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| Code Reviewdotnet/macios | 2.9k | — | ~1.7k | Automated safety check: Pass | Custom licence | |
| Code Reviewjonathanpeppers/dotnes | 780 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Release Roslynatordotnet/roslynator | 3.5k | — | ~1k | Automated safety check: Pass | Custom licence | |
| Gh Stackdotnet/macios | 2.9k | 3 repos | ~10k | Automated safety check: Pass | Custom licence | |
| Git HooksProrise-cool/Claude-Code-Multi-Agent | 305 | — | ~3.6k | Automated safety check: Notes | None |
dotnet/macios
Review dotnet/macios PRs against established rules. An agent skill from dotnet/macios.
jonathanpeppers/dotnes
Review dotnes pull requests against established repository rules.
dotnet/roslynator
A skill your agent uses when shipping a roslynator release, rolling CHANGELOG.md [Unreleased], updating the VS Code extension changelog, creating a GitHub v release, or optionally tagging cli-v.
dotnet/macios
Manage stacked branches and pull requests with the gh-stack GitHub CLI extension.
Prorise-cool/Claude-Code-Multi-Agent
Central authority on git hook implementations, modern best practices, and tooling for .NET/C, JavaScript/TypeScript, Python, and polyglot repositories.
QwenLM/qwen-code
Answers questions about code structure, history, bugs and PR risk using a CodeScope knowledge graph and semantic index built from the repository.
corvus-dotnet/Corvus.JsonSchema
Understand and work with the Roslyn analyzers shipped with Corvus.Text.Json.
corvus-dotnet/Corvus.JsonSchema
Run, interpret, and maintain BenchmarkDotNet benchmarks for JSON Schema validation and query languages.
corvus-dotnet/Corvus.JsonSchema
Test Corvus.JsonSchema against the JSON Schema Test Suite using Bowtie, the cross-implementation meta-validator.
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.
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…
corvus-dotnet/Corvus.JsonSchema
Generate strongly-typed C from JSON Schema using the Roslyn source generator or the corvusjson CLI tool.
Works with
Categories
Work on the Go port of the V5 standalone schema evaluator (src-go/corvus-json-schema, module github.com/corvus-dotnet/Corvus.JsonSchema/src-go/corvus-json-schema, package jsonschema): loader…. JsonSchema.JsonSchema/src-go/corvus-json-schema, package jsonschema): loader, compiler, the fail-fast plans and fused object plans, results collector and annotations, the document parser, the ECMA-262 regular expression engine, the allocation tests, the conformance and annotation suites, the jsonschema-benchmark and Bowtie integrations, and performance measurement.
Corvus Go Evaluator fits situations like: debugging the Go evaluator; measuring it against santhosh-tekuri/jsonschema; blaze and the other Corvus evaluators; running its Bowtie harness.
Run `npx skills add corvus-dotnet/Corvus.JsonSchema --skill corvus-go-evaluator -a claude-code`. Or copy the skill folder (.github/skills/corvus-go-evaluator in corvus-dotnet/Corvus.JsonSchema) into .claude/skills/corvus-go-evaluator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add corvus-dotnet/Corvus.JsonSchema --skill corvus-go-evaluator -a codex`. Or copy the skill folder (.github/skills/corvus-go-evaluator in corvus-dotnet/Corvus.JsonSchema) into .agents/skills/corvus-go-evaluator in your project. Codex loads it when a task matches its description.
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-go-evaluator -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-go-evaluator, .gemini/skills/corvus-go-evaluator, .github/skills/corvus-go-evaluator and .opencode/skills/corvus-go-evaluator in your project.
Going by SKILL.md and its folder, Corvus Go Evaluator needs the command-line tools its instructions call (go and pwsh).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
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.
Corvus Go Evaluator 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.
About 2.2k tokens (SKILL.md is roughly 9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Corvus Go Evaluator: Code Review (dotnet/macios, 2.9k stars), Code Review (jonathanpeppers/dotnes, 780 stars), Release Roslynator (dotnet/roslynator, 3.5k stars) and Gh Stack (dotnet/macios, 2.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
corvus-dotnet (a GitHub organization) maintains it in corvus-dotnet/Corvus.JsonSchema, which has 199 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 9, 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.