CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

aspire-configuration

Configure Aspire AppHost to emit explicit app config via environment variables; keep app code free of Aspire clients and service discovery.

Quality

78%

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

Fix and improve this skill with Tessl

tessl review fix ./skills/aspire-configuration/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

75%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 well-structured, code-forward skill body that provides executable patterns for both AppHost and app sides with a clear configuration flow. Main improvement areas are reducing the fourfold repetition of the no-Aspire-clients rule and clarifying which referenced skill paths exist versus are external.

Suggestions

State the 'no Aspire clients in app code' rule once (e.g. in Core Principles) and let the checklist reference it rather than restating it in four sections.

Add a short verification step, such as confirming injected values via configuration debugging or a smoke test that reads the bound IOptions, to close the workflow loop.

Clarify that related-skill paths like 'skills/aspire/integration-testing/SKILL.md' are external repository skills, or trim them if they are not guaranteed to exist.

DimensionReasoningScore

Conciseness

The body is tight and code-forward with no explanation of concepts Claude already knows. The 'no Aspire clients in app code' rule is restated four times across 'When to Use', Core Principles, the inline note, and the Don't checklist, which is minor repetition that could be trimmed; this keeps it below the lean anchor 5 but above anchor 3's unnecessary explanations.

4 / 5

Actionability

The AppHost/Program.cs example is complete and executable, and the feature-toggle snippet is concrete. The app-side snippet depends on undefined types (BlobStorageOptions, S3BlobStorageService), leaving minor gaps versus the fully copy-paste-ready anchor 5, but it is well clear of the pseudocode-level anchor 3.

4 / 5

Workflow Clarity

The configuration flow 'AppHost resource -> WithEnvironment(...) -> app config keys -> IOptions<T> in app' gives an unambiguous single-direction sequence, reinforced by ValidateDataAnnotations/ValidateOnStart as a validation checkpoint. It is a pattern skill with no destructive or batch operations, so no validation cap applies; it misses anchor 5 only because there is no step for verifying that injected config actually reaches the app.

4 / 5

Progressive Disclosure

Sections are well organized and easy to navigate with no bundle files to split further, and the body appropriately stays at overview depth. Minor gaps: the related-skill paths (e.g. 'skills/aspire/integration-testing/SKILL.md') are external to this bundle and not clearly resolvable, and the ~155-line body could offload detailed patterns to reference files, keeping it below anchor 5.

4 / 5

Total

16

/

20

Passed

Description

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

A specific, distinctive description with concrete actions in third person, but it omits any 'Use when...' trigger guidance, capping completeness. Adding an explicit usage clause with a few more natural trigger terms would lift it substantially.

Suggestions

Append a trigger clause, e.g. 'Use when wiring up AppHost resources, adding connection strings or environment variables for services, or deciding where Aspire client packages belong.'

Include a few more natural trigger terms users would say, such as 'connection strings', 'service defaults', or 'IOptions binding', to broaden keyword coverage.

Mention the dev/test parity angle ('feature toggles without changing app code') as an additional capability users may search for.

DimensionReasoningScore

Specificity

Two concrete, mechanism-level actions are stated: 'emit explicit app config via environment variables' and 'keep app code free of Aspire clients and service discovery'. These are more precise than the anchor-3 example's generic actions, but coverage is limited to two actions (no mention of connection strings or options binding), so it falls short of the comprehensive anchor 5.

4 / 5

Completeness

The 'what' is clearly and concretely answered, but there is no 'Use when...' clause or any equivalent explicit trigger guidance; the judging guideline caps completeness at 3 in that case. Not a 2 because the 'what' is specific rather than vague.

3 / 5

Trigger Term Quality

Natural terms a .NET/Aspire developer would say are present: 'Aspire AppHost', 'environment variables', 'app config', 'service discovery'. A few natural variations are missing ('connection strings', 'IOptions', 'service defaults'), so it does not reach comprehensive anchor 5 but is well above the partial-coverage anchor 3.

4 / 5

Distinctiveness Conflict Risk

'Aspire AppHost', 'Aspire clients', and 'service discovery' define a clear niche with distinct triggers and minimal overlap risk with other skills. No meaningful conflict scenarios come to mind, matching anchor 5.

5 / 5

Total

16

/

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

Aaronontheweb/dotnet-skills

Path

skills/aspire-configuration/SKILL.md

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.