Agent skill

Angler Dotnet Release

by newrelic in newrelic/newrelic-dotnet-agent

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

Apache-2.0Auto-check passed

Install Angler Dotnet Release

skills CLI
$ npx skills add newrelic/newrelic-dotnet-agent --skill angler-dotnet-release -a claude-code

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

GitHub CLI
$ gh skill install newrelic/newrelic-dotnet-agent angler-dotnet-release --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/angler-dotnet-release .claude/skills/angler-dotnet-release && 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
angler-dotnet-release
GitHub stars
117
Token cost
~2.3k tokens
SKILL.md length
1,210 words
Files
2 (incl. scripts)
Skills in repo
7
Repo updated
First seen
Licence
Apache-2.0

At a glance

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

  • Works in 6 steps: Prerequisites → Check what would change (dry run) → Sync main, build the agent, and discover… → …
  • The user asks to add a .NET agent version to Angler
  • SKILL.md covers What the change looks like, Step 0: Prerequisites, Step 1: Check what would… and Step 2: Sync main, build the…, plus 3 more sections
  • Runs Shell scripts from its folder; calls git, bash and dotnet; reaches source.datanerd.us

What it does

Angler Dotnet Release is an agent skill from newrelic/newrelic-dotnet-agent. Open an Angler PR that adds the latest .NET agent release to metricnames.txt. Use when the user asks to add a .NET agent version to Angler, update Angler for a new agent release, or "create the Angler PR" after a .NET agent release ships.

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/create_angler_pr.sh`).

It works with .NET and Slack. The repository describes itself as: The New Relic .NET language agent. The licence is Apache-2.0.

When your agent uses it

  • The user asks to add a .NET agent version to Angler
  • Update Angler for a new agent release
  • Create the Angler PR after a .NET agent release ships

Example prompts

  • “create the Angler PR”
  • “/angler-dotnet-release”

Requirements

  • A Bash shell

Workflow steps

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

  1. Prerequisites
  2. Check what would change (dry run)
  3. Sync main, build the agent, and discover new supportability metrics
  4. Open the PR
  5. Notify #dotnet-team on Slack
  6. Report the result

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

    Ships 1 file in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • git
    • bash
    • dotnet
    • gh

    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:

    • source.datanerd.us

    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

Angler Dotnet Release loads about 2.3k tokens when it runs. Until then it costs about 65 tokens; SKILL.md has 1,210 words of instructions outside code blocks.

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

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); the scripts in this folder 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,210 words, ~2,296 tokens.

Download SKILL.mdSave it as .claude/skills/angler-dotnet-release/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
angler-dotnet-release
description
Open an Angler PR that adds the latest .NET agent release to metric_names.txt. Use when the user asks to add a .NET agent version to Angler, update Angler for a new agent release, or "create the Angler PR" after a .NET agent release ships.
disable-model-invocation
true

Add latest .NET agent release to Angler

When a new .NET agent version ships, Angler needs a one-line addition to its metric_names.txt so the new Supportability/AgentVersion/<version> metric is recognized. This skill discovers the latest release, makes that edit, opens the PR end-to-end via the GitHub API (no local clone of Angler is needed), and -- for a ready-for-review PR -- posts an approval request to the #dotnet-team Slack channel if a Slack tool is connected.

Reference for the shape of the change: Angler PR #837 (https://source.datanerd.us/agents/angler/pull/837) -- a single line added to src/main/resources/metric_names.txt.

The bundled script scripts/create_angler_pr.sh does the work. It needs only gh plus standard shell tools (awk, base64, grep) that ship with the same Git Bash that runs gh -- no extra runtime to install. It manipulates the ~7,600-line file inside the shell, so that content never enters context.

What the change looks like

The latest release tag (e.g. v10.51.1) becomes a 4-part version 10.51.1.0 (a 3-part tag gets a trailing .0). That line is inserted at the top of the // .NET agent version metrics section, which is ordered newest-first:

// .NET agent version metrics
Supportability/AgentVersion/10.51.1.0   <- inserted
Supportability/AgentVersion/10.51.0.0

The PR targets master and is titled Add .NET Agent v<version> to Angler. It is opened ready for review by default, or as a draft when the release also adds supportability metrics that must be added by hand (see Step 2).

Step 0: Prerequisites

Run gh auth status. It must report authentication for both github.com (to read the latest release) and source.datanerd.us (to open the Angler PR). If either is missing, stop and tell the user which host needs auth.

Step 1: Check what would change (dry run)

bash
bash .claude/skills/angler-dotnet-release/scripts/create_angler_pr.sh --dry-run

If it reports status: PRESENT, Angler is already up to date; stop and report that (a normal outcome, not an error).

To target a specific version instead of the latest release, add --version X.Y.Z.

Step 2: Sync main, build the agent, and discover new supportability metrics

The discovery tool reflects over the compiled agent, and the scan is only meaningful if that build reflects the released code on main. A stale checkout or a feature branch produces misleading candidates. So before building, check the checkout state:

bash
git rev-parse --abbrev-ref HEAD
git status --porcelain
git fetch origin main && git rev-list --left-right --count HEAD...origin/main

If the checkout is not on main, is behind origin/main, or has uncommitted changes, tell the user and ask:

The metric scan reflects the compiled agent, so it should be built from the latest main. You are currently on <branch> (<N> commits behind origin/main, with uncommitted changes). Switch to main and pull latest before building? (Answer no to build the current checkout as-is.)

Only switch branches / pull when the user agrees and the working tree is clean -- never discard uncommitted work. If the user declines, build the current checkout and note in the final report that the scan reflects <branch>, not main.

Then build -- the discovery tool needs a current FullAgent.sln build to run. Ask the user for permission before building:

Check whether src/Agent/newrelichome_x64_coreclr/NewRelic.Agent.Core.dll exists:

  • File is absent: tell the user the agent has not been built and ask:

    FullAgent.sln has not been built yet. Build it now so the discovery tool can run? This may take a few minutes.

  • File is present: ask:

    FullAgent.sln was built previously. Rebuild now to make sure the discovery tool reflects the latest agent code? (Skip if you know the build is already current.)

If the user says yes (or the default): run the build, then proceed:

bash
dotnet build FullAgent.sln

If the user says no and the DLL is absent: skip discovery entirely and proceed to Step 3, opening the PR ready-for-review.

If the user says no and the DLL is present: proceed with the existing build -- the discovery results may not reflect uncommitted changes.

Once the build is confirmed, fetch the Angler file and run the tool:

bash
# Fetch Angler file if not already on disk from Step 1
gh api --hostname source.datanerd.us \
  "repos/agents/angler/contents/src/main/resources/metric_names.txt?ref=master" \
  --jq .content | base64 -d > /tmp/angler_current.txt

dotnet run --project build/MetricNameDiscovery/MetricNameDiscovery.csproj \
  -- --diff /tmp/angler_current.txt 2>/dev/null

Parse every line from the === Candidate additions === section (lines starting with +). Strip the leading + to get the bare metric name.

If no candidates are found: proceed to Step 3 and open ready-for-review.

If candidates are found: present the numbered list to the user and ask them to categorize each one:

The discovery tool found the following supportability metrics that are in the agent code but not yet in Angler:

  1. <metric name>
  2. <metric name>
    ...

For each metric, reply with one of:

  • A -- add to Angler (include in this PR)
  • E -- add to the exclusions list (creates a separate dotnet-agent PR)
  • S -- skip for now (take no action)

Example: "1=A, 2=E, 3=S"

Show full SKILL.md (485 more words)Show less
If any metrics are classified E (add to exclusions)

Before opening the Angler PR, commit the exclusions to the dotnet-agent repo:

  1. Edit build/MetricNameDiscovery/exclusions.txt -- append each metric with a # comment (ask the user for the reason if they did not provide one, or use "triaged <date>" as a default).
  2. Create a branch (e.g. chore/metric-discovery-exclusions-<version>), commit the file, and open a draft PR in the dotnet-agent repo:
    • Title: chore: Add metric discovery exclusions for v<version>
    • Body: list the excluded names
  3. Report the exclusions PR URL to the user before continuing.

Then proceed to Step 3 for the Angler PR.

Step 3: Open the PR

Determine the flags:

  • Add one --extra-metric "NAME" for each metric the user classified A in Step 2. Omit the flag entirely if none were classified A. Extra metrics are inserted under the // .NET MISC section (not alongside the version line).
  • Add --draft only if there are no A metrics AND the user explicitly asked for a draft. If any A metrics exist, the PR can be ready-for-review (the script commits everything in one shot).
bash
# No extra metrics -- ready for review
bash .claude/skills/angler-dotnet-release/scripts/create_angler_pr.sh

# With extra metrics -- still ready for review (all lines committed by the script)
bash .claude/skills/angler-dotnet-release/scripts/create_angler_pr.sh \
  --extra-metric "Supportability/Dotnet/NetFramework/net481" \
  --extra-metric "Supportability/DotNET/AppDomainCaching/Disabled"

Pass the same --version X.Y.Z here if one was used in Step 1.

Step 4: Notify #dotnet-team on Slack

A ready-for-review PR needs a teammate's approval, so let the team know. Do this only when the PR was opened ready for review -- a draft is not ready for approval yet, so skip this for a draft and notify once the PR is marked ready.

First check whether a Slack send-message tool is available in this session (e.g. slack_send_message). The plugin that provides it may not be connected -- that is fine and not a failure.

In both cases the message is:

An Angler PR for .NET Agent v<version> has been created and needs review/approval: <PR URL>

  • Slack tool available -> post to the private channel #dotnet-team. Resolve its id by searching channels for dotnet-team with private channels included, and pick the exact-name match (the public #dotnet-agent also matches that search -- do not post there). Do not use @here / @channel unless the user asks. Report the link to the message you posted.

  • Slack tool not available -> not a failure. Give the user the message text above to post manually.

Step 5: Report the result

Relay what the script printed: the PR URL, and for a draft, the web-edit URL plus a reminder to add the extra metrics and mark the PR ready when done. If you posted to Slack in Step 4, include the message link; if the Slack tool was unavailable, include the suggested text for the user to post manually.

If the script fails, surface the message verbatim. Common causes: not authenticated to one of the two hosts, or a branch/PR from a prior attempt already exists (the script reuses an existing branch, but the GitHub API rejects a duplicate open PR for the same head) -- point the user at the existing branch/PR rather than retrying blindly.

© 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

SKILL.md and 1 other file (scripts) in .claude/skills/angler-dotnet-release of newrelic/newrelic-dotnet-agent.

  • SKILL.md
  • scripts/create_angler_pr.sh

Open the folder on GitHubat commit aca7658

Compare with similar skills

Angler Dotnet Release 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.

Angler Dotnet Release compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Angler Dotnet Release this skillnewrelic/newrelic-dotnet-agent117—~2.3kAutomated safety check: PassApache-2.0
Azure Mgmt Botservice Dotnetaiskillstore/marketplace4334 repos~2.5kAutomated safety check: PassNone
Azure Mgmt Botservice Dotnetmicrosoft/skills3.1k—~2.6kAutomated safety check: PassMIT
Agent Browser CLIvercel-labs/agent-browser44k24 repos~864Automated safety check: PassApache-2.0
Slack GIF Creatoranthropics/skills180k29 repos~2kAutomated safety check: PassApache-2.0
Minimax DOCXpoco-ai/poco-claw1.4k7 repos~3.9kAutomated safety check: PassMIT

Similar skills

  • Azure Mgmt Botservice Dotnet

    aiskillstore/marketplace

    Azure Resource Manager SDK for Bot Service in .NET. An agent skill from aiskillstore/marketplace.

    433 GitHub starsUsed in 4 repos~2.5k tokens
    DevOps & CloudAuto-check passed
  • Official

    Azure Resource Manager SDK for Bot Service in .NET. An agent skill from microsoft/skills.

    3.1k GitHub stars~2.6k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Agent Browser CLI

    vercel-labs/agent-browser

    Official

    Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking…

    44k GitHub starsUsed in 24 repos~864 tokens
    Productivity & AutomationAuto-check passed
  • Slack GIF Creator

    anthropics/skills

    Official

    Provides Slack size and frame limits, Python animation helpers and validators for building animated GIFs sized for emoji and messages.

    180k GitHub starsUsed in 29 repos~2k tokens
    Media & CreativeAuto-check passed
  • Minimax DOCX

    poco-ai/poco-claw

    Professional DOCX document creation, editing, and formatting using OpenXML SDK (.NET).

    1.4k GitHub starsUsed in 7 repos~3.9k tokens
    Documents & OfficeAuto-check passed
  • Official

    Digs into why code is shaped the way it is by checking git history, pull requests and connected tools in parallel, then reporting a cited read on the tradeoffs.

    11k GitHub starsUsed in 9 repos~2.6k tokens
    DevelopmentAuto-check passed

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 yesterday
    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 yesterday
    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 yesterday
    Auto-check passed
  • Update Dotty Docs

    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…

    117 GitHub stars~2.1k tokensUpdated yesterday
    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 yesterday
    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 yesterday
    Auto-check passed

Works with

Questions about Angler Dotnet Release

What does Angler Dotnet Release do?

Open an Angler PR that adds the latest .NET agent release to metricnames.txt. Angler Dotnet Release is an agent skill from newrelic/newrelic-dotnet-agent.txt.

When should I use Angler Dotnet Release?

Angler Dotnet Release fits situations like: the user asks to add a .NET agent version to Angler; update Angler for a new agent release; create the Angler PR after a .NET agent release ships.

How do I install Angler Dotnet Release in Claude Code?

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

How do I install Angler Dotnet Release in Codex?

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

Can I use Angler Dotnet Release 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 angler-dotnet-release -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/angler-dotnet-release, .gemini/skills/angler-dotnet-release, .github/skills/angler-dotnet-release and .opencode/skills/angler-dotnet-release in your project.

What does Angler Dotnet Release need to run?

Going by SKILL.md and its folder, Angler Dotnet Release needs a shell for the scripts in its folder and the command-line tools its instructions call (git, bash, dotnet and gh). Our summary lists: A Bash shell.

Does Angler Dotnet Release access the network?

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

Is Angler Dotnet Release 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Angler Dotnet Release use?

Angler Dotnet Release 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 Angler Dotnet Release use?

About 2.3k tokens (SKILL.md is roughly 9.2k 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 Angler Dotnet Release?

Skills that share tags, products or a category with Angler Dotnet Release: Azure Mgmt Botservice Dotnet (aiskillstore/marketplace, 433 stars), Azure Mgmt Botservice Dotnet (microsoft/skills, 3.1k stars), Agent Browser CLI (vercel-labs/agent-browser, 44k stars) and Slack GIF Creator (anthropics/skills, 180k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Angler Dotnet Release?

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 9, 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.