Esmfold2
JimLiu/science-skills
Biohub ESMFold2 / ESMFold2-Fast all-atom co-folding (Candido et al.
Write allocation-efficient buffer code in Corvus.JsonSchema using the codebase's established three-tier pooling pattern: stackalloc → ArrayPool → ThreadStatic caches.
$ npx skills add corvus-dotnet/Corvus.JsonSchema --skill corvus-buffer-and-pooling -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install corvus-dotnet/Corvus.JsonSchema corvus-buffer-and-pooling --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-buffer-and-pooling .claude/skills/corvus-buffer-and-pooling && 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-buffer-and-pooling" agent skill from https://github.com/corvus-dotnet/Corvus.JsonSchema/tree/main/.github/skills/corvus-buffer-and-pooling into .claude/skills/corvus-buffer-and-pooling/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "corvus-buffer-and-pooling", 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-buffer-and-poolingType 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-buffer-and-pooling -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install corvus-dotnet/Corvus.JsonSchema corvus-buffer-and-pooling --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-buffer-and-pooling .agents/skills/corvus-buffer-and-pooling && 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-buffer-and-pooling" agent skill from https://github.com/corvus-dotnet/Corvus.JsonSchema/tree/main/.github/skills/corvus-buffer-and-pooling into .agents/skills/corvus-buffer-and-pooling/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "corvus-buffer-and-pooling", 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-buffer-and-pooling -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install corvus-dotnet/Corvus.JsonSchema corvus-buffer-and-pooling --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-buffer-and-pooling .cursor/skills/corvus-buffer-and-pooling && 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-buffer-and-pooling" agent skill from https://github.com/corvus-dotnet/Corvus.JsonSchema/tree/main/.github/skills/corvus-buffer-and-pooling into .cursor/skills/corvus-buffer-and-pooling/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "corvus-buffer-and-pooling", 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-buffer-and-pooling--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-buffer-and-pooling -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install corvus-dotnet/Corvus.JsonSchema corvus-buffer-and-pooling --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-buffer-and-pooling .gemini/skills/corvus-buffer-and-pooling && 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-buffer-and-pooling" agent skill from https://github.com/corvus-dotnet/Corvus.JsonSchema/tree/main/.github/skills/corvus-buffer-and-pooling into .gemini/skills/corvus-buffer-and-pooling/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "corvus-buffer-and-pooling", 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-buffer-and-poolingInstalls 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-buffer-and-pooling -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-buffer-and-pooling .github/skills/corvus-buffer-and-pooling && 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-buffer-and-pooling" agent skill from https://github.com/corvus-dotnet/Corvus.JsonSchema/tree/main/.github/skills/corvus-buffer-and-pooling into .github/skills/corvus-buffer-and-pooling/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "corvus-buffer-and-pooling", 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-buffer-and-pooling -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-buffer-and-pooling --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-buffer-and-pooling .opencode/skills/corvus-buffer-and-pooling && 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-buffer-and-pooling" agent skill from https://github.com/corvus-dotnet/Corvus.JsonSchema/tree/main/.github/skills/corvus-buffer-and-pooling into .opencode/skills/corvus-buffer-and-pooling/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "corvus-buffer-and-pooling", 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-buffer-and-poolingWrite allocation-efficient buffer code in Corvus.JsonSchema using the codebase's established three-tier pooling pattern: stackalloc → ArrayPool → ThreadStatic caches.
Corvus Buffer And Pooling is an agent skill from 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. Covers threshold constants, the rent/return pattern, UTF-8-first processing, thread-local writer and workspace caches, and PooledByteBufferWriter. USE FOR: writing any code that needs temporary byte/char buffers, adding new pooled caches, working with UTF-8 data, avoiding heap allocation on hot paths. DO NOT USE FOR: choosing which ref-struct…
Its SKILL.md is about 2.9k 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 AI & LLM Engineering, covering AI interpretability. The repository describes itself as: Support for Json Schema validation and entity generation. The licence is Apache-2.0.
5 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 Buffer And Pooling loads about 2.9k tokens when it runs. Until then it costs about 166 tokens; SKILL.md has 984 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). 984 words, ~2,923 tokens.
.claude/skills/corvus-buffer-and-pooling/SKILL.md (or your agent's skills folder).All temporary buffers in this codebase follow a strict three-tier allocation strategy. Use the cheapest tier that fits.
Tier 1: stackalloc — ≤ threshold bytes, zero cost, no cleanup needed
Tier 2: ArrayPool<T>.Shared — larger buffers, must return in finally block
Tier 3: [ThreadStatic] cache — expensive-to-create objects (writers, workspaces), reused per threadThis is the single most common pattern in the codebase. Every temporary buffer follows it exactly.
byte[]? rentedArray = null;
Span<byte> buffer = length <= JsonConstants.StackallocByteThreshold
? stackalloc byte[JsonConstants.StackallocByteThreshold]
: (rentedArray = ArrayPool<byte>.Shared.Rent(length));
try
{
DoWork(buffer.Slice(0, length));
}
finally
{
if (rentedArray != null)
{
ArrayPool<byte>.Shared.Return(rentedArray);
}
}Defined in Common/src/System/Text/Json/JsonConstants.cs:
| Constant | Value | Use for |
|---|---|---|
JsonConstants.StackallocByteThreshold | 256 | byte / UTF-8 buffers |
JsonConstants.StackallocCharThreshold | 128 | char buffers |
JsonConstants.StackallocNonRecursiveByteThreshold | 4096 | Non-recursive contexts (e.g., top-level parse) |
JsonConstants.StackallocNonRecursiveCharThreshold | 2048 | Non-recursive char contexts |
Use NonRecursive variants only when you can prove the call site is not recursive — otherwise stack overflow is possible.
rentedArray before the ternary — it must be in scope for the finally blockstackalloc sizelength — ArrayPool.Rent() returns an array that may be larger than requestedtry/finally to guarantee the rented array is returnedstackalloc without pool fallback is acceptableGetMaxByteCount, not GetByteCountWhen the length that sizes a transient UTF-8 scratch buffer comes from a string/char span, size it with
Encoding.UTF8.GetMaxByteCount(chars.Length) (a multiply — chars.Length * 3 + 3), not
Encoding.UTF8.GetByteCount(chars) (a full transcoding scan of every code point). GetMaxByteCount returns a
safe upper bound, so the buffer is never under-sized; the exact filled length is whatever the subsequent
Encoding.UTF8.GetBytes(chars, buffer) (or your assemble routine) returns, and you slice the buffer by that
return value. The pattern is already "rent ≥ requested, then slice to actual", so an over-estimate of a few bytes
costs nothing and skips the scan. Assembling several parts: sum each part's GetMaxByteCount plus exact-width
separators.
// ✅ multiply, not a scan — buffer is an upper bound; `written` is the exact length the rest of the code uses
int max = Encoding.UTF8.GetMaxByteCount(text.Length);
byte[]? rented = max > Threshold ? ArrayPool<byte>.Shared.Rent(max) : null;
Span<byte> buffer = rented ?? stackalloc byte[Threshold];
int written = Encoding.UTF8.GetBytes(text, buffer);
Use(buffer[..written]); // never the `max`A public "how big a buffer do I need" helper that uses this should be named for the upper bound it returns
(GetMaxEncodedLength, not GetEncodedLength) and documented as a safe size, not an exact count — otherwise a
caller may trust it as exact. Pair it with a writer that reports what it actually wrote
(EncodeToUtf8(out written)), so the caller sizes from the bound and then trims to the truth.
GetByteCount (exact) is still required — do NOT switch these to GetMaxByteCount: an exact single-shot
output allocation (new byte[total] where total is the precise serialized size, e.g. WorkflowPackage.PackPooled),
a structural length field written into a format (a ushort entry-name length), an offset you then copy at
(dest[exactPrefixLen..]), or IBufferWriter.AppendSpan(n) / GetSpan(n)-style APIs that commit exactly n
(over-sizing commits uninitialised trailing bytes). The rule is: transient scratch sliced by the actual written
length → GetMaxByteCount; a value that is itself exact output, a committed length, or a copy offset → GetByteCount.
char[]? rentedChars = null;
Span<char> charBuffer = length <= JsonConstants.StackallocCharThreshold
? stackalloc char[JsonConstants.StackallocCharThreshold]
: (rentedChars = ArrayPool<char>.Shared.Rent(length));
try
{
DoWork(charBuffer.Slice(0, length));
}
finally
{
if (rentedChars != null)
{
ArrayPool<char>.Shared.Return(rentedChars);
}
}Several core types rent directly from ArrayPool<T>.Shared:
| Type | What it rents | Pool type | Return trigger |
|---|---|---|---|
MetadataDb | Token metadata array | ArrayPool<byte> | Dispose() |
ParsedJsonDocument | UTF-8 value buffer | ArrayPool<byte> | Dispose() via Interlocked.Exchange |
JsonWorkspace | Document index array | ArrayPool<IJsonDocument> | Dispose() with 2× growth on expand |
Utf8KeyHashSet | Buckets, entries, key buffer | ArrayPool<int> + ArrayPool<byte> | Dispose() |
PooledByteBufferWriter | Write buffer | ArrayPool<byte> | ClearAndReturnBuffers() |
When writing Dispose logic for pooled types, use Interlocked.Exchange(ref _array, null) to prevent double-return.
For objects that are expensive to construct but frequently needed, the codebase uses [ThreadStatic] caches with a depth-counter pattern:
[ThreadStatic]
private static ThreadLocalState? t_threadLocalState;
public static ExpensiveObject Rent(...)
{
ThreadLocalState state = t_threadLocalState ??= new();
if (state.RentedCount++ == 0)
{
// First (non-recursive) call — return the cached instance
state.CachedObject.Reset(...);
return state.CachedObject;
}
// Recursive call — allocate a fresh instance
return new ExpensiveObject(...);
}
public static void Return(ExpensiveObject obj)
{
ThreadLocalState state = t_threadLocalState!;
if (--state.RentedCount == 0)
{
state.CachedObject.ResetAllStateForCacheReuse();
// Cached object stays in thread-local for next Rent
}
else
{
obj.Dispose(); // Recursive instance — dispose immediately
}
}Three caches follow this pattern:
| Cache class | What it pools | Key file |
|---|---|---|
Utf8JsonWriterCache | Utf8JsonWriter + PooledByteBufferWriter pair | Writer/Utf8JsonWriterCache.cs |
JsonWorkspaceCache | JsonWorkspace instances | DocumentBuilder/Internal/JsonWorkspaceCache.cs |
JsonSchemaResultsCollectorCache | Schema validation result collectors | JsonSchema/Internal/JsonSchemaResultsCollectorCache.cs |
ResetAllStateForCacheReuse() must clear all mutable state without reallocating internal buffersThe entire parsing and validation pipeline operates on ReadOnlySpan<byte> (UTF-8). Strings are only created when the user explicitly requests them.
System.String on hot pathsUtf8Uri is a readonly ref struct that stores integer offsets into the original UTF-8 byte span — component accessors return Slice() calls, not substringsReadOnlySpan<byte>PropertyMap hashes UTF-8 bytes directly via Utf8Hash.GetHashCode() — no string at any point"..."u8) for static byte arrays (character sets, fixed tokens)Use JsonReaderHelper.TranscodeHelper — four overloads with zero allocation except when a string is genuinely needed:
| Signature | Allocation |
|---|---|
string TranscodeHelper(ReadOnlySpan<byte>) | One string (unavoidable) |
int TranscodeHelper(ReadOnlySpan<byte>, Span<char>) | Zero — writes to caller's buffer |
bool TryTranscode(ReadOnlySpan<byte>, Span<char>, out int) | Zero — non-throwing variant |
int TranscodeHelper(ReadOnlySpan<char>, Span<byte>) | Zero — reverse direction |
Use SearchValues<byte> for character class matching:
private static readonly SearchValues<byte> s_controlQuoteBackslash =
SearchValues.Create("\u0000\u0001...\u001F\"\\"u8);This is vectorised by the JIT. On older TFMs, fall back to manual Span.IndexOfAny().
The bridge between ArrayPool and IBufferWriter<byte>. Wraps an ArrayBuffer that rents from the shared pool.
Utf8JsonWriterCache to provide pre-allocated write buffersClearAndReturnBuffers() returns memory to the pool without disposing the writer itselfArrayBuffer uses a sliding-window pattern: Discard(n) advances read position, Commit(n) extends write position, growth doubles capacity| Mistake | Consequence | Fix |
|---|---|---|
Missing try/finally on rented array | Memory leak from ArrayPool | Always wrap in try/finally |
Using magic number 256 instead of JsonConstants.StackallocByteThreshold | Inconsistency, harder to change | Use the named constant |
| Forgetting to slice rented buffer | Processing garbage bytes beyond length | Always buffer.Slice(0, length) |
| Returning rented array twice | Pool corruption | Use Interlocked.Exchange(ref arr, null) |
Creating string from UTF-8 on a hot path | Unnecessary GC pressure | Use ReadOnlySpan<byte> throughout, transcode only at the boundary |
GetByteCount(chars) to size a transient scratch buffer | A full transcoding scan where a multiply would do | GetMaxByteCount(chars.Length), slice by the actual GetBytes return — but keep GetByteCount for an exact output allocation, a length field, or a copy offset |
Using NonRecursive threshold in recursive code | Stack overflow | Only use when call site is provably non-recursive |
corvus-low-alloc-data-structurescorvus-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-buffer-and-pooling of corvus-dotnet/Corvus.JsonSchema.
Open the folder on GitHubat commit b9e3040
Corvus Buffer And Pooling 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 Buffer And Pooling this skillcorvus-dotnet/Corvus.JsonSchema | 199 | — | ~2.9k | Automated safety check: Pass | Apache-2.0 | |
| Esmfold2JimLiu/science-skills | 227 | 4 repos | ~2.5k | Automated safety check: Pass | Apache-2.0 | |
| ObliteratusRedWoodOG/Hermes-Desktop | 177 | 6 repos | ~3.8k | Automated safety check: Pass | MIT | |
| Sparse Autoencoder Training with SAELensOrchestra-Research/AI-Research-SKILLs | 13k | 6 repos | ~3.2k | Automated safety check: Pass | MIT | |
| TransformerLens InterpretabilityOrchestra-Research/AI-Research-SKILLs | 13k | 4 repos | ~3k | Automated safety check: Pass | MIT | |
| Nnsight Remote InterpretabilityOrchestra-Research/AI-Research-SKILLs | 13k | 3 repos | ~3.3k | Automated safety check: Pass | MIT |
JimLiu/science-skills
Biohub ESMFold2 / ESMFold2-Fast all-atom co-folding (Candido et al.
RedWoodOG/Hermes-Desktop
Remove refusal behaviors from open-weight LLMs using OBLITERATUS — mechanistic interpretability techniques (diff-in-means, SVD, whitened SVD, LEACE, SAE decomposition, etc.) to excise guardrails…
Orchestra-Research/AI-Research-SKILLs
Guides training and analyzing sparse autoencoders with SAELens to break neural network activations into interpretable features, including superposition and monosemanticity studies.
Orchestra-Research/AI-Research-SKILLs
Guides mechanistic interpretability work with TransformerLens: loading models, caching activations, using HookPoints, activation patching and attention-pattern analysis.
Orchestra-Research/AI-Research-SKILLs
Provides guidance for interpreting and manipulating neural network internals using nnsight with optional NDIF remote execution.
Orchestra-Research/AI-Research-SKILLs
Guides causal experiments on PyTorch models with pyvene, such as causal tracing, activation patching and interchange intervention training, to test how a model works.
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
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.
corvus-dotnet/Corvus.JsonSchema
Implement OpenAPI server handlers using Corvus.Text.Json generated types.
Categories
Write allocation-efficient buffer code in Corvus.JsonSchema using the codebase's established three-tier pooling pattern: stackalloc → ArrayPool → ThreadStatic caches. JsonSchema.JsonSchema using the codebase's established three-tier pooling pattern: stackalloc → ArrayPool → ThreadStatic caches.
Corvus Buffer And Pooling fits situations like: : writing any code that needs temporary byte/char buffers; adding new pooled caches; working with UTF-8 data; avoiding heap allocation on hot paths.
Run `npx skills add corvus-dotnet/Corvus.JsonSchema --skill corvus-buffer-and-pooling -a claude-code`. Or copy the skill folder (.github/skills/corvus-buffer-and-pooling in corvus-dotnet/Corvus.JsonSchema) into .claude/skills/corvus-buffer-and-pooling in your project. Claude Code loads it when a task matches its description.
Run `npx skills add corvus-dotnet/Corvus.JsonSchema --skill corvus-buffer-and-pooling -a codex`. Or copy the skill folder (.github/skills/corvus-buffer-and-pooling in corvus-dotnet/Corvus.JsonSchema) into .agents/skills/corvus-buffer-and-pooling 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-buffer-and-pooling -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-buffer-and-pooling, .gemini/skills/corvus-buffer-and-pooling, .github/skills/corvus-buffer-and-pooling and .opencode/skills/corvus-buffer-and-pooling in your project.
SKILL.md names no scripts, command-line tools or credentials: Corvus Buffer And Pooling 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 Buffer And Pooling 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.9k tokens (SKILL.md is roughly 12k 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 Buffer And Pooling: Esmfold2 (JimLiu/science-skills, 227 stars), Obliteratus (RedWoodOG/Hermes-Desktop, 177 stars), Sparse Autoencoder Training with SAELens (Orchestra-Research/AI-Research-SKILLs, 13k stars) and TransformerLens Interpretability (Orchestra-Research/AI-Research-SKILLs, 13k 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.