CtrlK
BlogDocsLog inGet started
Tessl Logo

agui-dotnet-shared-state

Share structured, evolving state between an AG-UI agent and its client with the AG-UI .NET SDK — the client seeds state on the request, the server reads it, mutates it, and streams the updated state back as snapshots or deltas alongside the chat. USE FOR: sending initial/working state from the client via ChatOptions.RawRepresentationFactory -> RunAgentInput.State; reading inbound state on the server with ChatOptions.TryGetRunAgentInput and RunAgentInput.State; emitting a full state object as a StateSnapshotEvent (or incremental JSON-Patch changes as a StateDeltaEvent) from a DelegatingChatClient via ChatResponseUpdate.RawRepresentation; reading state back on the client from update.RawRepresentation as StateSnapshotEvent. DO NOT USE FOR: passing one-off tool arguments (use agui-dotnet-server-tools); rendering UI components from tool calls (use agui-dotnet-generative-ui); plain chat (use agui-dotnet-streaming-chat); approvals/interrupts, multimodal, or protobuf.

68

Quality

81%

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

86%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.

The body is highly actionable with complete executable examples, a clear sequenced workflow, and a verification checklist, all kept concise and free of basic-concept padding. Only minor tightening and an explicit error-recovery loop would raise it further.

DimensionReasoningScore

Conciseness

The body is lean and assumes Claude's competence — it does not re-explain basic concepts — with a few explanatory sentences (e.g., the TryGetRunAgentInput paragraph) that earn their place but could be tightened slightly.

4 / 5

Actionability

Two complete, copy-paste-ready C# examples (client seeding/reading state and a server DelegatingChatClient emitting StateSnapshotEvent) plus the DI registration snippet cover the common cases.

5 / 5

Workflow Clarity

The Client → Server → Snapshots-vs-deltas → Verify flow is clearly sequenced with a numbered Verify checklist (including delta-patch verification), but there is no explicit error-recovery feedback loop.

4 / 5

Progressive Disclosure

Self-contained with well-organized section headers and no nested or buried references; no bundle files exist, so the well-structured single file is appropriate.

5 / 5

Total

18

/

20

Passed

Description

77%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.

The description is specific, complete, and sharply distinguished from sibling skills, but its trigger-term quality is weighed down by API-jargon-laden phrasing rather than natural user language. Strong what/when guidance; weaker natural discoverability.

Suggestions

Lead with a natural-language summary a user might actually say (e.g., 'keep a form, document, or plan in sync between the client and the agent') before the API-type detail.

Add common synonyms / file-shape terms users would mention (e.g., 'shared state', 'state sync', 'live state') near the USE FOR clause.

Move the long chain of qualified type names into the body and keep the description's USE FOR triggers closer to plain user phrasing.

DimensionReasoningScore

Specificity

Lists multiple concrete actions across both sides — 'the client seeds state on the request, the server reads it, mutates it, and streams the updated state back as snapshots or deltas' and 'emitting a full state object as a StateSnapshotEvent (or incremental JSON-Patch changes as a StateDeltaEvent)' — giving comprehensive coverage.

5 / 5

Completeness

Explicit 'USE FOR:' and 'DO NOT USE FOR:' clauses answer both what the skill does and when to use it with concrete trigger phrases.

5 / 5

Trigger Term Quality

The description leans heavily on API type names users would not naturally say ('ChatOptions.RawRepresentationFactory', 'RunAgentInput.State', 'StateSnapshotEvent', 'DelegatingChatClient') with only a few natural phrases like 'shared state' and 'snapshots or deltas'. It is noticeably below the midpoint for natural trigger terms.

2 / 5

Distinctiveness Conflict Risk

Clear niche (structured evolving state shared between AG-UI agent and client) plus an explicit 'DO NOT USE FOR' list redirecting approvals, generative UI, server-tools, and plain-chat to sibling skills, minimizing conflict risk.

5 / 5

Total

17

/

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.

Validation16 / 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.