CtrlK
BlogDocsLog inGet started
Tessl Logo

agui-dotnet-unit-tests

Author unit tests for the AG-UI .NET SDK (the *.UnitTests projects), following the SDK's serialization and compatibility conventions. USE FOR: adding unit-test coverage for a new type/method in AGUI.Abstractions/Formatting/Protobuf/Client/Server, event serialization round-trips, JsonDocument property-name assertions, backward-compatibility fixtures against TypeScript JSON, protobuf codec round-trips, client builder/handler tests, server ChatResponseUpdate conversion tests, SSE formatter tests. DO NOT USE FOR: HTTP pipeline / WebApplicationFactory end-to-end tests (use the agui-dotnet-integration-tests skill), cross-language TS↔C# server-parity tests (use the cross-language test skill).

76

Quality

94%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

88%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong, dense conventions skill: nearly every line encodes project-specific knowledge Claude could not guess (source-gen serializer context, JsonDocument camelCase assertions, FixtureLoader compatibility pattern, one test per event shape), and the anti-patterns section directly counters the failure modes named in the intro. The only soft spots are the code-less later patterns and everything living inline in a single file.

Suggestions

Add a short executable snippet to Pattern 4 or 5 (e.g. a ToolCallBuilder feed/flush/assert or an Assert.Collection example) so all high-frequency patterns are copy-paste ready, not just Patterns 1–3.

Consider moving the per-project pattern details (e.g. Protobuf/Server/Formatting specifics) into references/ files (one per project) and keeping a one-line pointer per pattern in SKILL.md, which would tighten progressive disclosure.

State where FixtureLoader lives (project/namespace) so a new test file can resolve it without searching the repo.

DimensionReasoningScore

Conciseness

Every section carries non-obvious, project-specific knowledge: the table of the five test projects, naming conventions ("{TypeUnderTest}Test", "{Category}CompatibilityTest"), the rule to serialize via "AGUIJsonSerializerContext.Default.{Type}", and the rationale "This is what catches [JsonPropertyName] bugs". No basic-concept padding (e.g. no explanation of what xunit or JSON is); assumes Claude's competence throughout.

5 / 5

Actionability

Patterns 1–3 are copy-paste-ready executable C# with concrete assertions ("Assert.Equal(\"RUN_STARTED\", doc.RootElement.GetProperty(\"type\")...)", "FixtureLoader.LoadFixture(\"run-events.json\")"), and the run command "dotnet test tests/AGUI.Abstractions.UnitTests/" is given. Patterns 4–6 (client, server, SSE formatter) are concrete at the API level ("Assert.Collection", "MediaType", "CanRead(contentType)") but prose-only without code snippets — a minor gap versus the level-5 anchor.

4 / 5

Workflow Clarity

This is a single-task conventions skill (write a unit test for a type), and the single action is unambiguous: the project table maps a type to its test project, the Conventions section fixes file placement ("directly under the project root"), class naming, and fact/theory style, and "Run one project: dotnet test tests/AGUI.Abstractions.UnitTests/" gives the verification step. Under the simple-skill guidance, an unambiguous single action scores 5; the work is itself validation, so no destructive/batch cap applies.

5 / 5

Progressive Disclosure

The body is well organized (project table, conventions, six labeled patterns, anti-patterns section) with clear section navigation and no nested references; the one external pointer ("sdks/dotnet/AGENTS.md") is clearly signaled. However, at ~120 lines with per-project detail (Patterns 3–6) all inlined in SKILL.md and no bundle files to offload to, it sits just below the level-5 'appropriately split' anchor — good structure with minor organization gaps.

4 / 5

Total

18

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

Excellent description: it states precisely what it does, gives an explicit USE FOR list of concrete test categories with project names, and a DO NOT USE FOR clause that redirects to sibling skills. Voice is imperative/third-person, no fluff, no over-claims.

DimensionReasoningScore

Specificity

The description names the exact target ("Author unit tests for the AG-UI .NET SDK (the *.UnitTests projects)") and enumerates many concrete actions: "event serialization round-trips, JsonDocument property-name assertions, backward-compatibility fixtures against TypeScript JSON, protobuf codec round-trips, client builder/handler tests, server ChatResponseUpdate conversion tests, SSE formatter tests" — comprehensive, concrete coverage matching the level-5 anchor.

5 / 5

Completeness

Both questions are answered explicitly: the 'what' ("Author unit tests for the AG-UI .NET SDK ... following the SDK's serialization and compatibility conventions") and a strong explicit 'when' via "USE FOR: adding unit-test coverage for a new type/method ..." plus a "DO NOT USE FOR" exclusion clause — this matches the level-5 anchor with concrete trigger phrases.

5 / 5

Trigger Term Quality

Natural terms a user would say when needing this skill are covered: "unit tests", "unit-test coverage", project names (AGUI.Abstractions/Formatting/Protobuf/Client/Server), and per-category phrases like "round-trips", "compatibility fixtures", "SSE formatter tests". Both the USE FOR and DO NOT USE FOR lists add the synonyms and adjacent phrasings (e.g. "WebApplicationFactory end-to-end tests") that route correctly.

5 / 5

Distinctiveness Conflict Risk

The skill carves a clear niche (unit tests for the .NET SDK's five *.UnitTests projects) and explicitly disambiguates from adjacent skills by name: "DO NOT USE FOR: HTTP pipeline / WebApplicationFactory end-to-end tests (use the agui-dotnet-integration-tests skill), cross-language TS↔C# server-parity tests". Minimal conflict risk.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
ag-ui-protocol/ag-ui
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.