Structured Data
thedaviddias/Front-End-Checklist
A skill your agent uses when auditing metadata, crawlability, structured data, or indexability related to Add structured data markup.
Use and extend the custom low-allocation data structures in Corvus.JsonSchema.
$ npx skills add corvus-dotnet/Corvus.JsonSchema --skill corvus-low-alloc-data-structures -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install corvus-dotnet/Corvus.JsonSchema corvus-low-alloc-data-structures --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-low-alloc-data-structures .claude/skills/corvus-low-alloc-data-structures && 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-low-alloc-data-structures" agent skill from https://github.com/corvus-dotnet/Corvus.JsonSchema/tree/main/.github/skills/corvus-low-alloc-data-structures into .claude/skills/corvus-low-alloc-data-structures/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "corvus-low-alloc-data-structures", 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-low-alloc-data-structuresType 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-low-alloc-data-structures -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install corvus-dotnet/Corvus.JsonSchema corvus-low-alloc-data-structures --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-low-alloc-data-structures .agents/skills/corvus-low-alloc-data-structures && 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-low-alloc-data-structures" agent skill from https://github.com/corvus-dotnet/Corvus.JsonSchema/tree/main/.github/skills/corvus-low-alloc-data-structures into .agents/skills/corvus-low-alloc-data-structures/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "corvus-low-alloc-data-structures", 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-low-alloc-data-structures -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install corvus-dotnet/Corvus.JsonSchema corvus-low-alloc-data-structures --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-low-alloc-data-structures .cursor/skills/corvus-low-alloc-data-structures && 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-low-alloc-data-structures" agent skill from https://github.com/corvus-dotnet/Corvus.JsonSchema/tree/main/.github/skills/corvus-low-alloc-data-structures into .cursor/skills/corvus-low-alloc-data-structures/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "corvus-low-alloc-data-structures", 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-low-alloc-data-structures--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-low-alloc-data-structures -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install corvus-dotnet/Corvus.JsonSchema corvus-low-alloc-data-structures --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-low-alloc-data-structures .gemini/skills/corvus-low-alloc-data-structures && 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-low-alloc-data-structures" agent skill from https://github.com/corvus-dotnet/Corvus.JsonSchema/tree/main/.github/skills/corvus-low-alloc-data-structures into .gemini/skills/corvus-low-alloc-data-structures/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "corvus-low-alloc-data-structures", 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-low-alloc-data-structuresInstalls 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-low-alloc-data-structures -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-low-alloc-data-structures .github/skills/corvus-low-alloc-data-structures && 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-low-alloc-data-structures" agent skill from https://github.com/corvus-dotnet/Corvus.JsonSchema/tree/main/.github/skills/corvus-low-alloc-data-structures into .github/skills/corvus-low-alloc-data-structures/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "corvus-low-alloc-data-structures", 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-low-alloc-data-structures -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-low-alloc-data-structures --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-low-alloc-data-structures .opencode/skills/corvus-low-alloc-data-structures && 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-low-alloc-data-structures" agent skill from https://github.com/corvus-dotnet/Corvus.JsonSchema/tree/main/.github/skills/corvus-low-alloc-data-structures into .opencode/skills/corvus-low-alloc-data-structures/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "corvus-low-alloc-data-structures", 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-low-alloc-data-structuresUse and extend the custom low-allocation data structures in Corvus.JsonSchema.
Corvus Low Alloc Data Structures is an agent skill from corvus-dotnet/Corvus.JsonSchema. Use and extend the custom low-allocation data structures in Corvus.JsonSchema. Covers ref-struct collections (Utf8KeyHashSet, UniqueItemsHashSet, ValueListBuilder, ValueStringBuilder, Utf8ValueStringBuilder, BitStack, Sequence), SIMD scanning patterns, bit manipulation tricks, and happy-path optimisations like lazy error messages. USE FOR: choosing which stack-allocated collection to use, writing new ref-struct types, adding SIMD-accelerated code paths, understanding branchless techniques, writing validation code…
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: Support for Json Schema validation and entity generation. The licence is Apache-2.0.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit b9e3040. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are csharp).
From 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 Low Alloc Data Structures loads about 2.6k tokens when it runs. Until then it costs about 181 tokens; SKILL.md has 763 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 b9e3040, republished under its Apache-2.0 licence (© corvus-dotnet). 763 words, ~2,555 tokens.
.claude/skills/corvus-low-alloc-data-structures/SKILL.md (or your agent's skills folder).Choose the right collection based on your need:
| Need | Type | Location | Heap allocation? |
|---|---|---|---|
| Deduplicate UTF-8 keys | Utf8KeyHashSet | Common/Utf8KeyHashSet.cs | No (stack + ArrayPool fallback) |
| Check JSON array uniqueness | UniqueItemsHashSet | JsonSchema/Internal/UniqueItemsHashSet.cs | No (stack + ArrayPool fallback) |
| Growable list (small) | ValueListBuilder<T> | System.Private.CoreLib/.../ValueListBuilder.cs | No (stack + ArrayPool fallback) |
| Build a UTF-16 string | ValueStringBuilder | Common/src/System/Text/ValueStringBuilder.cs | No (stack + ArrayPool fallback) |
| Build a UTF-8 string | Utf8ValueStringBuilder | Common/src/System/Text/Utf8ValueStringBuilder.cs | No (stack + ArrayPool fallback) |
| Track nesting depth | BitStack | BitStack.cs | No (ulong for ≤64 levels) |
| Return singleton/multi value | Sequence | Corvus.Text.Json.Jsonata/Sequence.cs | No for singletons; ArrayPool for multi |
| Sliding-window byte buffer | ArrayBuffer | Common/src/System/Net/ArrayBuffer.cs | ArrayPool backed |
All ref struct types must be disposed (they implement IDisposable to return pooled memory).
A ref struct separate-chaining hash set for UTF-8 byte-string keys. Used for property deduplication and JSONata merge operations.
// Typical usage — stack-allocate initial buffers, dispose to return any rented overflow
Span<int> buckets = stackalloc int[Utf8KeyHashSet.StackAllocBucketSize];
Span<byte> entries = stackalloc byte[Utf8KeyHashSet.StackAllocEntrySize];
Span<byte> keyBuffer = stackalloc byte[Utf8KeyHashSet.StackAllocKeyBufferSize];
using Utf8KeyHashSet hashSet = new(estimatedPropertyCount, buckets, entries, keyBuffer);
bool added = hashSet.Add(utf8Key);Next(4) + BufOffset(4) + Length(4) + HashCode(8)MemoryMarshal.Write/Read and [MethodImpl(AggressiveInlining)]3, 7, 11, 17, ... 521) — avoids HashHelpers dependencyArrayPool only when stack buffers overflowSame architectural pattern as Utf8KeyHashSet, but specifically for JSON Schema uniqueItems keyword validation. Compares full JSON element values (not just strings).
<T> — Stack-Backed Generic ListPorted from dotnet/runtime's internal type. A ref struct list that starts on the stack and overflows to ArrayPool.
Span<int> initialBuffer = stackalloc int[16];
ValueListBuilder<int> list = new(initialBuffer);
try
{
list.Append(42);
list.Append(99);
ReadOnlySpan<int> items = list.AsSpan();
}
finally
{
list.Dispose(); // returns any rented array
}stackalloc span — zero heap allocation for small listsArrayPool<T>.Shared.Rent()Dispose() returns the rented array and clears references if T is a reference typeUtf8YamlWriter._contextStack), JSON parsing, and path navigationTwo parallel ref struct string builders — one for char (UTF-16), one for byte (UTF-8). Both follow the stackalloc → ArrayPool growth pattern.
// UTF-16 string building
Span<char> initialChars = stackalloc char[JsonConstants.StackallocCharThreshold];
ValueStringBuilder sb = new(initialChars);
try
{
sb.Append("hello");
sb.Append(' ');
sb.Append("world");
return sb.ToString();
}
finally
{
sb.Dispose();
}
// UTF-8 string building
Span<byte> initialBytes = stackalloc byte[JsonConstants.StackallocByteThreshold];
Utf8ValueStringBuilder usb = new(initialBytes);
try
{
usb.Append("hello"u8);
ReadOnlySpan<byte> result = usb.AsSpan();
}
finally
{
usb.Dispose();
}| Feature | ValueStringBuilder | Utf8ValueStringBuilder |
|---|---|---|
| Element type | char | byte |
| Double-dispose detection | No | Yes (_pos = -1 on dispose) |
| Interpolation support | AppendSpanFormattable | No |
Tracks JSON object/array nesting using bit manipulation on a ulong. No allocation for the first 64 levels.
BitStack stack = default;
stack.PushTrue(); // entering an object
stack.PushFalse(); // entering an array
bool wasObject = stack.Pop(); // leaving — returns true if it was an objectulong _allocationFreeContainer with shift/mask operationsint[] (extremely rare in practice)Div32Rem uses & 31 instead of % 32 for the array pathThe JSONata evaluator's primary result type. Stores singleton values inline without allocation.
Layout (32 bytes):
object? payload (8 bytes) — reference-type backing for multi-value
double rawValue (8 bytes) — inline double storage
JsonElement single (12 bytes) — inline singleton element
int countAndTag (4 bytes) — bits 0-23: count, bits 24-31: tagTags: Undefined=0, Singleton=1, Multi=2, Lambda=3, Regex=4, RawDouble=7, Tuple=9.
ArrayPool<JsonElement> — must be disposedSingleton sequence with zero allocation<byte> parallel scanning (netstandard path)On platforms without SearchValues<byte>, the codebase uses explicit SIMD:
if (Vector.IsHardwareAccelerated && length >= Vector<byte>.Count * 2)
{
Vector<byte> vQuote = new((byte)'"');
Vector<byte> vBackslash = new((byte)'\\');
Vector<byte> vControlMax = new(0x1F);
Vector<byte> vData = Unsafe.ReadUnaligned<Vector<byte>>(
ref Unsafe.AddByteOffset(ref searchSpace, index));
var vMatches = Vector.BitwiseOr(
Vector.BitwiseOr(
Vector.Equals(vData, vQuote),
Vector.Equals(vData, vBackslash)),
Vector.LessThan(vData, vControlMax));
}Scans 16–32 bytes simultaneously for quotes, backslashes, or control characters.
Finding the first set bit in a SIMD match result:
ulong powerOfTwoFlag = match ^ (match - 1); // isolate lowest set bit
return (int)((powerOfTwoFlag * XorPowerOfTwoToHighByte) >> 57);O(1) branchless lookup using a precomputed De Bruijn constant.
SpanHelper.Count in the source generator processes 8 × Vector<T>.Count elements per iteration for counting matching items in spans.
public static bool IsTokenTypePrimitive(JsonTokenType tokenType) =>
(tokenType - JsonTokenType.String) <= (JsonTokenType.Null - JsonTokenType.String);Single unsigned subtraction + comparison replaces a multi-branch switch.
DbRow (12 bytes) packs token type, location, size, child count, and flags into 3 uint/int fields using bit shifts and masks. The top nibble of the third field encodes JsonTokenType.
private static readonly JsonSchemaMessageProvider ExpectedDate =
static (buffer, out written) => { /* format error message only when called */ };On the success path, EvaluatedKeyword(true, ...) records success without touching the message provider. Error strings are only materialised on failure.
ResourceManager is only created on first exception throw — UsingResourceKeys() returns early with the key itself when trimming is active.
Throw helpers set Exception.Source to a key instead of formatting a message string. The actual message is only looked up if the exception is caught and displayed.
When adding a new ref struct collection, follow these patterns:
StackAllocBucketSize)IDisposable to return any ArrayPool-rented overflow buffersMemoryMarshal.Write/Read with [MethodImpl(AggressiveInlining)] for packed entriesArrayPool<T>.Shared.Rent() with geometric (2×) sizingcorvus-buffer-and-poolingcorvus-parsed-documents-and-memory.github/copilot-instructions.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
Just SKILL.md in .github/skills/corvus-low-alloc-data-structures of corvus-dotnet/Corvus.JsonSchema.
Open the folder on GitHubat commit b9e3040
Corvus Low Alloc Data Structures 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 Low Alloc Data Structures this skillcorvus-dotnet/Corvus.JsonSchema | 199 | — | ~2.6k | Automated safety check: Pass | Apache-2.0 | |
| Structured Datathedaviddias/Front-End-Checklist | 74k | — | ~420 | Automated safety check: Pass | MIT | |
| Bio Structural Biology Modern Structure PredictionFreedomIntelligence/OpenClaw-Medical-Skills | 3.1k | 1 repos | ~2.5k | Automated safety check: Pass | None | |
| Agent Resource Allocatorruvnet/ruflo | 74k | 2 repos | ~4.9k | Automated safety check: Pass | MIT | |
| List Structurethedaviddias/Front-End-Checklist | 74k | — | ~438 | Automated safety check: Pass | MIT | |
| Bio Structural Biology Structure IoGPTomics/bioSkills | 1.2k | 1 repos | ~4k | Automated safety check: Pass | MIT |
thedaviddias/Front-End-Checklist
A skill your agent uses when auditing metadata, crawlability, structured data, or indexability related to Add structured data markup.
FreedomIntelligence/OpenClaw-Medical-Skills
Predict protein structures using modern ML models including AlphaFold3, ESMFold, Chai-1, and Boltz-1.
ruvnet/ruflo
Agent skill for resource-allocator - invoke with $agent-resource-allocator
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing rendered HTML, interactive components, or design-system patterns related to Use correct list structure.
GPTomics/bioSkills
Reads, writes, downloads, and converts macromolecular structures with Biopython Bio.PDB.
GPTomics/bioSkills
Navigate the Bio.PDB SMCRA hierarchy (Structure-Model-Chain-Residue-Atom) safely, surfacing the heterogeneity it hides by default.
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.
Use and extend the custom low-allocation data structures in Corvus.JsonSchema. JsonSchema.JsonSchema.
Corvus Low Alloc Data Structures fits situations like: : choosing which stack-allocated collection to use; writing new ref-struct types; adding SIMD-accelerated code paths; understanding branchless techniques.
Run `npx skills add corvus-dotnet/Corvus.JsonSchema --skill corvus-low-alloc-data-structures -a claude-code`. Or copy the skill folder (.github/skills/corvus-low-alloc-data-structures in corvus-dotnet/Corvus.JsonSchema) into .claude/skills/corvus-low-alloc-data-structures in your project. Claude Code loads it when a task matches its description.
Run `npx skills add corvus-dotnet/Corvus.JsonSchema --skill corvus-low-alloc-data-structures -a codex`. Or copy the skill folder (.github/skills/corvus-low-alloc-data-structures in corvus-dotnet/Corvus.JsonSchema) into .agents/skills/corvus-low-alloc-data-structures 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-low-alloc-data-structures -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-low-alloc-data-structures, .gemini/skills/corvus-low-alloc-data-structures, .github/skills/corvus-low-alloc-data-structures and .opencode/skills/corvus-low-alloc-data-structures in your project.
SKILL.md names no scripts, command-line tools or credentials: Corvus Low Alloc Data Structures is instructions for the agent only.
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 Low Alloc Data Structures 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.6k tokens (SKILL.md is roughly 10k 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 Low Alloc Data Structures: Structured Data (thedaviddias/Front-End-Checklist, 74k stars), Bio Structural Biology Modern Structure Prediction (FreedomIntelligence/OpenClaw-Medical-Skills, 3.1k stars), Agent Resource Allocator (ruvnet/ruflo, 74k stars) and List Structure (thedaviddias/Front-End-Checklist, 74k 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 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.