CtrlK
BlogDocsLog inGet started
Tessl Logo

agui-dotnet-cross-language-tests

Author cross-language interop tests that verify the AG-UI .NET SDK is wire-compatible with the TypeScript SDK — a Vitest TS client driving a C# CrossLanguage.TestServer over HTTP, both directions, including protobuf byte-parity against @ag-ui/proto. USE FOR: adding or modifying cross-language interop coverage, CrossLanguage.TestServer routes, the CrossLanguage.Vitest suite, protobuf wire parity tests, TS-client-to-C#-server or C#-client-to-TS-server scenarios. DO NOT USE FOR: .NET-only unit tests (use agui-dotnet-unit-tests), ASP.NET Core hosting integration tests (use agui-dotnet-integration-tests).

74

Quality

91%

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

82%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, expert-level body: every instruction is repo-specific and executable, workflows for both test directions are well sequenced, and anti-patterns encode real gotchas. The main costs are mild redundancy (byte-parity rules restated across sections), validation checkpoints that live outside rather than inside the step sequences, and inlined harness detail that the referenced design doc could carry.

Suggestions

Fold the validation loop into the step sequences: end each 'Adding a scenario' list with an explicit step to run the suite (e.g. '5. Run `pnpm test` — the new test must pass before moving on') so checkpoints sit inside the workflow rather than in a separate section.

Deduplicate the byteParity strict/roundtrip rules: state them once in the protobuf wire-parity section and let anti-pattern #1 be a one-line cross-reference, trimming redundant tokens.

Move the Phase 1 spawn mechanics (dotnet build, .exe spawning, PID teardown rationale, fileParallelism) into the referenced cross-language-testing.md 'Harness reference' and keep only a one-line summary in SKILL.md, tightening the body toward the lean level-5 conciseness anchor.

DimensionReasoningScore

Conciseness

The body is dense with non-obvious, repo-specific knowledge (ports, fixture-key semantics, the gotcha that the default HttpAgent hardcodes Accept 'after spreading headers', the single-PID teardown rationale) and wastes nothing on concepts Claude already knows. It sits just below level 5 because some rules are stated twice — the byteParity strict/roundtrip rules appear fully in the protobuf section and again in anti-pattern #1, and the harness mechanism detail slightly exceeds what the body needs given the referenced external doc.

4 / 5

Actionability

Guidance is fully executable: numbered steps with exact file paths (CrossLanguageJsonSerializerContext.cs, fixtures/parallel-tool-calls.json, server/fakeAgents.ts), concrete route patterns, a copy-paste-ready describe.each Vitest block, and exact run commands ("cd sdks/dotnet/tests/CrossLanguage.Vitest; pnpm test"). Specific examples cover the common cases (ParallelToolCallsRoute.cs, agentic-chat.test.ts), matching the 'fully executable, copy-paste ready' anchor.

5 / 5

Workflow Clarity

Both phases have clearly sequenced numbered workflows (add route → register in Program.cs → register payload types → add aimock fixture → add test; and the fake-agent → mount → test sequence), and the Running-the-suites section provides the commands. It falls short of level 5 because validation is implicit: no step says to run the new test or re-run the suite after each addition, and there is no fix-and-retry loop — checkpoints exist as a separate section rather than embedded in the sequence, which is the 'clear sequence with most checkpoints present; minor validation gaps' anchor.

4 / 5

Progressive Disclosure

Structure is good: a concise overview delegates full background to a clearly signaled one-level-deep external reference (sdks/dotnet/docs/cross-language-testing.md, cited twice with section pointers) and cross-references the sibling skill agui-cross-sdk-parity. It is not level 5 because the body inlines substantial detail (harness spawn mechanics, transport negotiation internals) that plausibly belongs in that referenced doc — the bundle has no references/ of its own, so all inlined depth lives in SKILL.md, fitting 'good structure; most content is appropriately placed; minor organization gaps'.

4 / 5

Total

17

/

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.

An exemplary description: concrete capabilities, comprehensive natural trigger terms, explicit positive and negative scope, and third-person voice. The only conceivable improvement is mentioning the underlying harness path, but that would add tokens without improving triggering.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions with full specificity: "Author cross-language interop tests", "a Vitest TS client driving a C# CrossLanguage.TestServer over HTTP, both directions, including protobuf byte-parity against @agui/proto". These are comprehensive, concrete capabilities with no vague filler — it matches the anchor 'Lists multiple specific concrete actions; comprehensive coverage' and exceeds the level-4 anchor, which allows minor coverage gaps.

5 / 5

Completeness

It explicitly answers both what ("Author cross-language interop tests that verify the AG-UI .NET SDK is wire-compatible with the TypeScript SDK...") and when ("USE FOR: adding or modifying cross-language interop coverage..."), plus negative scope ("DO NOT USE FOR: .NET-only unit tests..."). This clearly matches the level-5 anchor 'Clearly and explicitly answers both what AND when with concrete trigger phrases'; level 4 would require the 'when' to be less explicit.

5 / 5

Trigger Term Quality

Natural trigger terms are comprehensive for the domain: "cross-language interop coverage", "CrossLanguage.TestServer routes", "the CrossLanguage.Vitest suite", "protobuf wire parity tests", "TS-client-to-C#-server or C#-client-to-TS-server scenarios". A developer requesting this work would naturally say these exact phrases; no meaningful synonyms are missing, fitting the 'comprehensive coverage of natural terms including synonyms' anchor rather than level 4's 'a few natural terms missing'.

5 / 5

Distinctiveness Conflict Risk

A clear niche (cross-language wire interop between the .NET and TypeScript SDKs) with distinct triggers, and the DO NOT USE clause actively disambiguates against the two closest sibling skills by name (agui-dotnet-unit-tests, agui-dotnet-integration-tests). Minimal conflict risk — the level-5 anchor is the best fit since level 4 permits 'minor overlap risk with closely related skills', which the explicit exclusions eliminate.

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.