Agent skill

Update Dotty Docs

by newrelic in newrelic/newrelic-dotnet-agent

A skill your agent uses when the user mentions a Dotty PR, dotty (package/dependency) updates, or asks to update the .NET agent compatibility docs / net-agent-compatibility-requirements after tested…

Apache-2.0Auto-check passedDevelopment

Install Update Dotty Docs

skills CLI
$ npx skills add newrelic/newrelic-dotnet-agent --skill update-dotty-docs -a claude-code

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

GitHub CLI
$ gh skill install newrelic/newrelic-dotnet-agent update-dotty-docs --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/newrelic/newrelic-dotnet-agent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/update-dotty-docs .claude/skills/update-dotty-docs && 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
update-dotty-docs
GitHub stars
117
Token cost
~2.1k tokens
SKILL.md length
1,019 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses when the user mentions a Dotty PR, dotty (package/dependency) updates, or asks to update the .NET agent compatibility docs / net-agent-compatibility-requirements after tested…

  • Works in 8 steps: Prerequisites, then sync the docs fork → Find the open Dotty PR → & 3: Intake diff + CI status (dispatch… → …
  • The user mentions a Dotty PR
  • SKILL.md covers Orchestration model, Step 0: Prerequisites, then…, Step 1: Find the open Dotty PR and Step 2 & 3: Intake diff + CI…, plus 6 more sections
  • Calls gh and git; reaches github.com

What it does

Update Dotty Docs is an agent skill from newrelic/newrelic-dotnet-agent. Use when the user mentions a Dotty PR, dotty (package/dependency) updates, or asks to update the .NET agent compatibility docs / net-agent-compatibility-requirements after tested library version bumps.

Its SKILL.md is about 2.1k 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, covering Dependency management and Subagents. It works with New Relic, .NET and Git. The repository describes itself as: The New Relic .NET language agent. The licence is Apache-2.0.

When your agent uses it

  • The user mentions a Dotty PR
  • Dotty (package/dependency) updates
  • Asks to update the .NET agent compatibility docs / net-agent-compatibility-requirements after tested library version bumps

Example prompts

  • “/update-dotty-docs”

Workflow steps

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

  1. Prerequisites, then sync the docs fork
  2. Find the open Dotty PR
  3. & 3: Intake diff + CI status (dispatch ONE subagent)
  4. Flag major version bumps
  5. Prepare the docs repo
  6. Update the docs file (dispatch ONE subagent)
  7. Present for review
  8. After approval - commit, push, PR, comment

What it can do on your machine

Read from SKILL.md and the folder at commit aca7658. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • git

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

  • Network

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

    • github.com

    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

Update Dotty Docs loads about 2.1k tokens when it runs. Until then it costs about 55 tokens; SKILL.md has 1,019 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~55
When it runs · the whole SKILL.md, loaded when a task matches
~2.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 newrelic/newrelic-dotnet-agent at commit aca7658, republished under its Apache-2.0 licence (© newrelic). 1,019 words, ~2,082 tokens.

Download SKILL.mdSave it as .claude/skills/update-dotty-docs/SKILL.md (or your agent's skills folder).
name
update-dotty-docs
description
Use when the user mentions a Dotty PR, dotty (package/dependency) updates, or asks to update the .NET agent compatibility docs / net-agent-compatibility-requirements after tested library version bumps.

Orchestration model

You orchestrate: find the PR, drive CI-failure decisions, review, create the docs PR. Delegate context-heavy work to subagents so bulk output (diffs, ~90 CI-check lines, huge job logs, the docs .mdx search) stays out of your context - you get only the slim result. Never run gh pr diff, gh pr checks, gh api .../jobs/<id>/logs, or the docs .mdx search in the main thread.

Every subagent prompt MUST tell the subagent to:

  • Run its gh/git/file commands directly.
  • NOT invoke any skill and NOT spawn further subagents.
  • Return ONLY the compact schema specified - not raw command output.

Step 0: Prerequisites, then sync the docs fork

  1. Run gh auth status; if it fails, report the error and stop (covers gh-missing and not-authenticated). Git is assumed.
  2. Capture the user's GitHub login: gh api user --jq '.login' -> $GH_USER. Verify the fork exists: gh api repos/$GH_USER/docs-website --jq '.full_name'. If no fork, stop (do not create one).
  3. Sync the fork's develop to newrelic/docs-website:develop before anything else. The fork is often hundreds of commits behind, and a stale base makes the later PR diff misleading:
    gh api --method POST repos/$GH_USER/docs-website/merge-upstream -f branch=develop
    Read merge_type in the response: fast-forward means it synced, none with "not behind the upstream" means it was already current. Both are success. Report which one to the user. Any other result - stop and report.

This API call needs no clone, so it runs before Step 5 clones the fork. Do not sync with git reset --hard: settings deny it, and it needs a clone anyway.

Step 1: Find the open Dotty PR

Run yourself (you need the PR number in Step 8):

gh pr list --repo newrelic/newrelic-dotnet-agent --search "dotty" --state open --limit 1 --json number,title,body,url

If none found, stop. Otherwise record the PR number.

Step 2 & 3: Intake diff + CI status (dispatch ONE subagent)

Dispatch one read-only subagent (Explore). Prompt (substitute the PR number):

Run these two commands directly (do not invoke any skill; do not spawn subagents):

  • gh pr diff <number> --repo newrelic/newrelic-dotnet-agent
  • gh pr checks <number> --repo newrelic/newrelic-dotnet-agent

From the diff, for each changed <PackageReference> where the Version changed, extract: package name (Include), old version, new version, and section from the Condition:

  • net4xx -> Framework
  • net8.0/net10.0/etc. -> Core
  • no Condition -> both Collapse identical package+old+new rows that differ only by TFM into one row with the combined section. Ignore NewRelic.Agent.Api bumps.

From the checks, look only at jobs matching Run IntegrationTests (*), Run Unbounded Tests (*), and Run Linux Container Tests (*). Report the overall verdict.

Return ONLY this, nothing else:

  1. A markdown table: package | old | new | section.
  2. CI: either the literal all passing, or a table of failing jobs: name | job_id | url (extract job_id from the job URL's trailing number).

If CI is all passing, skip to Step 4. Otherwise, for each failing job use AskUserQuestion with three options:

  • Analyze - see Step 3a (dispatch a log-analysis subagent).
  • Skip - exclude any package that job could implicate from the docs update; continue.
  • Stop - end the skill.

After handling all failing jobs, summarize which packages are safe to update.

Step 3a: Analyze a failing job (dispatch ONE subagent per job, in parallel)

On Analyze, dispatch one read-only subagent (Explore) per failing job, all in a single message so they run concurrently. Prompt each (substitute job_id and paste the package-change table):

Run this directly (do not invoke any skill; do not spawn subagents): gh api repos/newrelic/newrelic-dotnet-agent/actions/jobs/<job_id>/logs

The following packages were bumped in this PR: <package-change table>

Correlate the failing errors in the log with these packages. Check for transitive dependency conflicts (example: OpenAI 2.9.0 removed a type that Azure.AI.OpenAI depends on - inspect dependency chains in tests/Agent/IntegrationTests/SharedApplications/Common/MFALatestPackages/MFALatestPackages.csproj in the current repo if needed).

Return ONLY: a short list of implicated package names, each with a one-line reason. If nothing is implicated, return no packages implicated.

Aggregate the returned lists. Present implicated packages to the user and confirm which are safe to update before continuing.

Show full SKILL.md (430 more words)Show less

Step 4: Flag major version bumps

From the slim table (Step 2 & 3), for any major version change (e.g., 3.x -> 4.x), report it prominently - it may block merging the Dotty PR.

Step 5: Prepare the docs repo

Step 0 already synced the fork, so a plain clone of develop gives a current base. Clone to a known path (not a bash tempdir - the path must survive across tool calls). Use C:\tmp\docs-website-dotty-<date> or similar; record the absolute path for later steps.

git clone --branch develop https://github.com/$GH_USER/docs-website.git <path>
cd <path>
git checkout -b dotnet/dotty-updates-YYYY-MM-DD

All subsequent steps run inside the clone path.

Step 6: Update the docs file (dispatch ONE subagent)

Dispatch one edit-capable subagent (general-purpose). Prompt (substitute the clone path and paste the safe-to-update package table):

Work inside <clone-path>. Do not invoke any skill; do not spawn subagents. Edit this file only: src/content/docs/apm/agents/net-agent/getting-started/net-agent-compatibility-requirements.mdx

It has two tabbed sections: .NET Core (id="core") and .NET Framework (id="framework"). For each package below, update the version in the section(s) matching its section column (both = update both tabs).

Packages to update: <safe-to-update package table>

Package-to-docs mapping: not every package has a docs entry - skip silently if the name is not found. Always search the file for the package name. Non-obvious mappings: Microsoft.Azure.Cosmos -> Cosmos DB, CouchbaseNetClient -> Couchbase, EnyimMemcachedCore -> Memcached, AWSSDK.BedrockRuntime -> AWS Bedrock, Elastic.Clients.Elasticsearch -> Elasticsearch, MySql.Data -> MySQL, Npgsql -> PostgreSQL, AWSSDK.DynamoDBv2 -> DynamoDB. Logging/LLM/AWS-SDK packages typically map by exact name.

Version formats - change only the version number, nothing else:

  • Bullet (Datastores, Messaging): * Latest verified compatible version: 3.57.0
  • Table column (LLM, Logging - last <td> in row): the version inside the <td>.

Return ONLY: a table package | old | new | section | updated? where updated? is yes or no docs entry.

Step 7: Present for review

Present, from inside the clone path:

  1. The Step 6 summary table (package, old, new, section, updated?).
  2. Major version bumps from Step 4.
  3. The full diff - run git diff yourself (small, controlled change).

Do not commit or push without explicit approval.

Step 8: After approval - commit, push, PR, comment

Never use "Dotty" (team-specific term) in the commit message or PR title/body; use "latest supported library versions" phrasing. Branch name may keep dotty.

  1. Commit: chore(.net agent): Update compatibility docs for latest supported library versions
  2. Push the branch to origin.
  3. Create PR against upstream, ready for review (no --draft):
    gh pr create --repo newrelic/docs-website --base develop --head $GH_USER:<branch> \
      --title "chore(.net agent): Update compatibility docs for latest supported library versions" \
      --body "<brief list of packages updated>"
  4. Comment on the Dotty PR:
    gh pr comment <dotty-pr-number> --repo newrelic/newrelic-dotnet-agent \
      --body "Compatibility docs update PR created: <docs-pr-url>"
  5. Remove the clone directory (use the absolute path recorded in Step 5).

© newrelic, 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 .claude/skills/update-dotty-docs of newrelic/newrelic-dotnet-agent.

Open the folder on GitHubat commit aca7658

Compare with similar skills

Update Dotty Docs 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.

Update Dotty Docs compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Update Dotty Docs this skillnewrelic/newrelic-dotnet-agent117—~2.1kAutomated safety check: PassApache-2.0
GitVersion .NET DevelopmentGitTools/GitVersion3.1k—~1.7kAutomated safety check: PassMIT
Update .NET OS Packagesdotnet/core22k—~2.3kAutomated safety check: PassMIT
Ghostty Submodule and GhosttyKit Workflowmanaflow-ai/cmux28k1 repos~580Automated safety check: PassCustom licence
OBS Plugin Dependency Upgradesorayuki/obs-multi-rtmp5.1k—~609Automated safety check: PassGPL-2.0
Dependency UpdaterAsvarox/allkaraoke2614 repos~3.5kAutomated safety check: PassMIT

Similar skills

  • GitVersion .NET Development

    GitTools/GitVersion

    Gives repository-specific .NET guidance for GitVersion: build and test commands, central package management, project layout and coding conventions.

    3.1k GitHub stars~1.7k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Official

    Audits and updates os-packages.json files listing the Linux packages each .NET release needs per distro, then regenerates the Markdown from the JSON.

    22k GitHub stars~2.3k tokensUpdated today
    DevelopmentAuto-check passed
  • Workflow rules for the Ghostty submodule in cmux: rebuilding GhosttyKit.xcframework, pushing fork changes and updating the parent submodule pointer safely.

    28k GitHub starsUsed in 1 repo~580 tokens
    DevelopmentAuto-check passed
  • OBS Plugin Dependency Upgrade

    sorayuki/obs-multi-rtmp

    Updates the obs-multi-rtmp plugin repo to the latest upstream plugin template and OBS Studio version, including dependency metadata, then rebuilds it with CMake.

    5.1k GitHub stars~609 tokensUpdated 6 days ago
    DevelopmentAuto-check passed
  • Dependency Updater

    Asvarox/allkaraoke

    Smart dependency management for any language. An agent skill from Asvarox/allkaraoke.

    261 GitHub starsUsed in 4 repos~3.5k tokens
    DevelopmentAuto-check passed
  • Cursor Composer Task Delegate

    Chachamaru127/claude-code-harness

    Hands one implementation task to Cursor Composer in an isolated git worktree, then reviews its diff and cherry-picks the result into the main branch.

    3.2k GitHub stars~4.4k tokensUpdated 3 days ago
    DevelopmentAuto-check: notes

More from newrelic/newrelic-dotnet-agent

  • Analyze Dotnet Agent Logs

    newrelic/newrelic-dotnet-agent

    Parse and diagnose New Relic .NET agent logs (newrelicagent.log) and profiler logs (NewRelic.Profiler.<pid.log) from a support ticket.

    117 GitHub stars~1.5k tokensUpdated today
    Auto-check passed
  • Angler Dotnet Release

    newrelic/newrelic-dotnet-agent

    Open an Angler PR that adds the latest .NET agent release to metricnames.txt.

    117 GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Build Dotnet Agent

    newrelic/newrelic-dotnet-agent

    Build the New Relic .NET agent locally and validate that code changes compile.

    117 GitHub stars~871 tokensUpdated today
    Auto-check passed
  • Run Integration Tests

    newrelic/newrelic-dotnet-agent

    Run the New Relic .NET agent integration tests locally. An agent skill from newrelic/newrelic-dotnet-agent.

    117 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Dotnet Unit Test Coverage

    newrelic/newrelic-dotnet-agent

    Mandatory unit-test and code-coverage rules for the .NET agent.

    117 GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Triage Integration Test Failures

    newrelic/newrelic-dotnet-agent

    A skill your agent uses when a CI integration, unbounded, or container test job fails intermittently, passes on a rerun, fails identically across every matrix variant, or shows an infra-shaped error…

    117 GitHub stars~2.5k tokensUpdated today
    Auto-check passed

Categories

Questions about Update Dotty Docs

What does Update Dotty Docs do?

A skill your agent uses when the user mentions a Dotty PR, dotty (package/dependency) updates, or asks to update the .NET agent compatibility docs / net-agent-compatibility-requirements after tested…. Update Dotty Docs is an agent skill from newrelic/newrelic-dotnet-agent.NET agent compatibility docs / net-agent-compatibility-requirements after tested library version bumps.

When should I use Update Dotty Docs?

Update Dotty Docs fits situations like: the user mentions a Dotty PR; dotty (package/dependency) updates; asks to update the .NET agent compatibility docs / net-agent-compatibility-requirements after tested library version bumps.

How do I install Update Dotty Docs in Claude Code?

Run `npx skills add newrelic/newrelic-dotnet-agent --skill update-dotty-docs -a claude-code`. Or copy the skill folder (.claude/skills/update-dotty-docs in newrelic/newrelic-dotnet-agent) into .claude/skills/update-dotty-docs in your project. Claude Code loads it when a task matches its description.

How do I install Update Dotty Docs in Codex?

Run `npx skills add newrelic/newrelic-dotnet-agent --skill update-dotty-docs -a codex`. Or copy the skill folder (.claude/skills/update-dotty-docs in newrelic/newrelic-dotnet-agent) into .agents/skills/update-dotty-docs in your project. Codex loads it when a task matches its description.

Can I use Update Dotty Docs 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 newrelic/newrelic-dotnet-agent --skill update-dotty-docs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/update-dotty-docs, .gemini/skills/update-dotty-docs, .github/skills/update-dotty-docs and .opencode/skills/update-dotty-docs in your project.

What does Update Dotty Docs need to run?

Going by SKILL.md and its folder, Update Dotty Docs needs the command-line tools its instructions call (gh and git).

Does Update Dotty Docs access the network?

SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Update Dotty Docs 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 Update Dotty Docs use?

Update Dotty Docs 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 Update Dotty Docs use?

About 2.1k tokens (SKILL.md is roughly 8.3k 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 Update Dotty Docs?

Skills that share tags, products or a category with Update Dotty Docs: GitVersion .NET Development (GitTools/GitVersion, 3.1k stars), Update .NET OS Packages (dotnet/core, 22k stars), Ghostty Submodule and GhosttyKit Workflow (manaflow-ai/cmux, 28k stars) and OBS Plugin Dependency Upgrade (sorayuki/obs-multi-rtmp, 5.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Update Dotty Docs?

newrelic (a GitHub organization) maintains it in newrelic/newrelic-dotnet-agent, which has 117 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 7, 2026.

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