Agent skill

Corvus Mutable Documents

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

Create and manipulate mutable JSON documents using JsonWorkspace, JsonDocumentBuilder, and the builder pattern.

Apache-2.0Auto-check passed

Install Corvus Mutable Documents

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

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

GitHub CLI
$ gh skill install corvus-dotnet/Corvus.JsonSchema corvus-mutable-documents --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-mutable-documents .claude/skills/corvus-mutable-documents && 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-mutable-documents
GitHub stars
199
Token cost
~1.1k tokens
SKILL.md length
210 words
Files
1
Skills in repo
26
Repo updated
First seen
Licence
Apache-2.0

At a glance

Create and manipulate mutable JSON documents using JsonWorkspace, JsonDocumentBuilder, and the builder pattern.

  • : writing code that creates
  • SKILL.md covers JsonWorkspace, Canonical Mutation Pattern, Multiple Builders Per Workspace and Empty Builder, plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Understanding the V5 mutation model

What it does

Corvus Mutable Documents is an agent skill from corvus-dotnet/Corvus.JsonSchema. Create and manipulate mutable JSON documents using JsonWorkspace, JsonDocumentBuilder, and the builder pattern. Covers workspace creation (rented vs unrented), the canonical parse-build-mutate-serialize pattern, deep property mutation, array operations, cloning, and RFC 6902 JSON Patch via PatchBuilder. USE FOR: writing code that creates or modifies JSON, understanding the V5 mutation model, implementing JSON Patch operations, working with JsonWorkspace. DO NOT USE FOR: read-only parsing (use…

Its SKILL.md is about 1.1k 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.

When your agent uses it

  • : writing code that creates
  • Understanding the V5 mutation model
  • Implementing JSON Patch operations
  • Working with JsonWorkspace

Example prompts

  • “/corvus-mutable-documents”

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

    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.

  • Network

    No URLs in SKILL.md.

    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 Mutable Documents loads about 1.1k tokens when it runs. Until then it costs about 152 tokens; SKILL.md has 210 words of instructions outside code blocks.

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

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). 210 words, ~1,125 tokens.

Download SKILL.mdSave it as .claude/skills/corvus-mutable-documents/SKILL.md (or your agent's skills folder).
name
corvus-mutable-documents
description
Create and manipulate mutable JSON documents using JsonWorkspace, JsonDocumentBuilder, and the builder pattern. Covers workspace creation (rented vs unrented), the canonical parse-build-mutate-serialize pattern, deep property mutation, array operations, cloning, and RFC 6902 JSON Patch via PatchBuilder. USE FOR: writing code that creates or modifies JSON, understanding the V5 mutation model, implementing JSON Patch operations, working with JsonWorkspace. DO NOT USE FOR: read-only parsing (use corvus-parsed-documents-and-memory), V4 mutation patterns (use corvus-v4-migration).

Mutable Documents

JsonWorkspace

A scoped container for pooled memory used during mutable JSON operations.

csharp
// Preferred — rents from thread-local cache
using JsonWorkspace workspace = JsonWorkspace.Create();

// When you need explicit lifetime control
JsonWorkspace workspace = JsonWorkspace.CreateUnrented();

Always use a using block. Dispose() returns the workspace to the thread-local cache (rented) or disposes all child documents and returns backing arrays to ArrayPool (unrented).

Canonical Mutation Pattern

csharp
using JsonWorkspace workspace = JsonWorkspace.Create();
using ParsedJsonDocument<JsonElement> sourceDoc = ParsedJsonDocument<JsonElement>.Parse(json);

// Convert immutable → mutable
using JsonDocumentBuilder<JsonElement.Mutable> builder =
    sourceDoc.RootElement.CreateBuilder(workspace);

JsonElement.Mutable root = builder.RootElement;

// Mutate
root.SetProperty("name"u8, "new value"u8);
root.RemoveProperty("oldProp"u8);

// Serialize
string result = root.ToString();

Multiple Builders Per Workspace

csharp
using JsonWorkspace workspace = JsonWorkspace.Create();
using var builder1 = doc1.RootElement.CreateBuilder(workspace);
using var builder2 = doc2.RootElement.CreateBuilder(workspace);
// Both share the same workspace memory pool

Empty Builder

csharp
using JsonDocumentBuilder<JsonElement.Mutable> builder =
    workspace.CreateBuilder<JsonElement.Mutable>(initialCapacity: 30, initialValueBufferSize: 8192);

Cloning

Clone() produces an immutable ParsedJsonDocument-backed element that outlives the builder:

csharp
JsonElement clone;
using (JsonWorkspace workspace = JsonWorkspace.Create())
using (ParsedJsonDocument<JsonElement> parsedDoc = ParsedJsonDocument<JsonElement>.Parse("[[[]]]"))
using (JsonDocumentBuilder<JsonElement.Mutable> doc = parsedDoc.RootElement.CreateBuilder(workspace))
{
    clone = doc.RootElement[0].Clone();
}
// clone is still valid after the workspace is disposed
Assert.AreEqual("[[]]", clone.GetRawText());

Version Tracking

JsonDocumentBuilder<T> tracks a ulong _version. When the builder is mutated, the version increments. Stale element references (from before the mutation) throw InvalidOperationException.

JSON Patch (RFC 6902)

csharp
using JsonWorkspace workspace = JsonWorkspace.Create();
using var doc = ParsedJsonDocument<JsonElement>.Parse(json);
using var builder = doc.RootElement.CreateBuilder(workspace);

// Build a patch
JsonPatchDocument patch = builder.RootElement.BeginPatch(workspace)
    .Add("/name"u8, "Alice")
    .Remove("/obsolete"u8)
    .Replace("/version"u8, 2)
    .GetPatchAndDispose();

// Apply the patch (returns bool — true if all operations succeed)
bool success = builder.RootElement.TryApplyPatch(patch);

All six RFC 6902 operations: Add, Remove, Replace, Move, Copy, Test.

Performance tip: Use UTF-8 byte literal paths ("/name"u8) for zero-allocation path handling.

Atomicity: TryApplyPatch returns false on the first failing operation, leaving partial state. For atomic semantics, snapshot the builder state before applying.

Common Pitfalls

  • Forgetting to dispose workspace/builder: Both rent from pools. Missing using leaks memory.
  • Using stale element references: After mutating a builder, any previously-obtained element references are invalidated.
  • Not using using with BeginPatch(): The patch builder must be disposed via GetPatchAndDispose(). The returned JsonPatchDocument is backed by the workspace — keep the workspace alive for the lifetime of the patch.

Cross-References

  • For read-only parsing, see corvus-parsed-documents-and-memory
  • For dispose analyzers (CTJ004-006), see corvus-analyzers
  • For V4→V5 mutation model changes, see corvus-v4-migration

© 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-mutable-documents of corvus-dotnet/Corvus.JsonSchema.

Open the folder on GitHubat commit b9e3040

Compare with similar skills

Corvus Mutable Documents 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 Mutable Documents compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Corvus Mutable Documents this skillcorvus-dotnet/Corvus.JsonSchema199—~1.1kAutomated safety check: PassApache-2.0
Team Builderaffaan-m/ECC275k1 repos~1.8kAutomated safety check: PassMIT
Team Builderaffaan-m/ECC275k1 repos~808Automated safety check: PassMIT
Dashboard Builderaffaan-m/ECC275k—~221Automated safety check: PassMIT
Dashboard Builderaffaan-m/ECC275k—~279Automated safety check: PassMIT
Team Builderaffaan-m/ECC275k—~1.1kAutomated safety check: PassMIT

Similar skills

  • Team Builder

    affaan-m/ECC

    Interactive picker that discovers available agent personas via the claude agents command and agents/ markdown globs, groups them into domains, has the user select up to five, dispatches them in…

    275k GitHub starsUsed in 1 repo~1.8k tokens
    Agent WorkflowsAuto-check passed
  • Team Builder

    affaan-m/ECC

    用于组合和派遣并行团队的交互式代理选择器

    275k GitHub starsUsed in 1 repo~808 tokens
    Auto-check passed
  • Dashboard Builder

    affaan-m/ECC

    Grafana、SigNoz、および同様のプラットフォーム用の実際のオペレータ質問に答える監視ダッシュボードを構築します。メトリクスを虚栄ボードではなく機能するダッシュボードに変える場合に使用します。

    275k GitHub stars~221 tokensUpdated 3 days ago
    DevOps & CloudAuto-check passed
  • Dashboard Builder

    affaan-m/ECC

    为 Grafana、SigNoz 等平台构建能够回答实际运维人员问题的监控仪表板。适用于将指标转化为可用的仪表板,而非华而不实的展示板。

    275k GitHub stars~279 tokensUpdated 3 days ago
    DevOps & CloudAuto-check passed
  • Team Builder

    affaan-m/ECC

    並列チームを構成して派遣するためのインタラクティブなエージェント選択ツール

    275k GitHub stars~1.1k tokensUpdated 3 days ago
    Auto-check passed
  • Official

    Load before calling build-workflow. An agent skill from n8n-io/n8n.

    207k GitHub stars~15k tokensUpdated today
    Productivity & AutomationAuto-check: warnings

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

    corvus-dotnet/Corvus.JsonSchema

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

    199 GitHub stars~1.4k 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

Questions about Corvus Mutable Documents

What does Corvus Mutable Documents do?

Create and manipulate mutable JSON documents using JsonWorkspace, JsonDocumentBuilder, and the builder pattern. JsonSchema. Create and manipulate mutable JSON documents using JsonWorkspace, JsonDocumentBuilder, and the builder pattern.

When should I use Corvus Mutable Documents?

Corvus Mutable Documents fits situations like: : writing code that creates; understanding the V5 mutation model; implementing JSON Patch operations; working with JsonWorkspace.

How do I install Corvus Mutable Documents in Claude Code?

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

How do I install Corvus Mutable Documents in Codex?

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

Can I use Corvus Mutable Documents 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-mutable-documents -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-mutable-documents, .gemini/skills/corvus-mutable-documents, .github/skills/corvus-mutable-documents and .opencode/skills/corvus-mutable-documents in your project.

What does Corvus Mutable Documents need to run?

SKILL.md names no scripts, command-line tools or credentials: Corvus Mutable Documents is instructions for the agent only.

Does Corvus Mutable Documents access the network?

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.

Is Corvus Mutable Documents 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 Mutable Documents use?

Corvus Mutable Documents 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 Mutable Documents use?

About 1.1k tokens (SKILL.md is roughly 4.5k 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 Mutable Documents?

Skills that share tags, products or a category with Corvus Mutable Documents: Team Builder (affaan-m/ECC, 275k stars), Team Builder (affaan-m/ECC, 275k stars), Dashboard Builder (affaan-m/ECC, 275k stars) and Dashboard Builder (affaan-m/ECC, 275k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Corvus Mutable Documents?

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.