Official agent skill

Smithy Ast Model

by aws in aws/aws-sdk-net

The Smithy JSON AST facts and model invariants the SmithyDotNet generator relies on.

OfficialApache-2.0Auto-check passed

Install Smithy Ast Model

skills CLI
$ npx skills add aws/aws-sdk-net --skill smithy-ast-model -a claude-code

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

GitHub CLI
$ gh skill install aws/aws-sdk-net smithy-ast-model --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/aws/aws-sdk-net.git skills-src && mkdir -p .claude/skills && cp -r skills-src/generator/SmithyDotNet/skills/smithy-ast-model .claude/skills/smithy-ast-model && 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
smithy-ast-model
GitHub stars
145
Token cost
~1.4k tokens
SKILL.md length
701 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
Apache-2.0

At a glance

The Smithy JSON AST facts and model invariants the SmithyDotNet generator relies on.

  • Touching Model/ (shapes
  • SKILL.md covers Shape IDs, Shapes and Traits, Prelude Shapes and Key Invariants, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • The service index)

What it does

Smithy Ast Model is an agent skill from aws/aws-sdk-net, published by the product's own GitHub organization. The Smithy JSON AST facts and model invariants the SmithyDotNet generator relies on. Use when touching Model/ (shapes, traits, the service index).

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It works with Amazon Web Services. The repository describes itself as: The official AWS SDK for .NET. For more information on the AWS SDK for .NET, see our web site:. The licence is Apache-2.0.

When your agent uses it

  • Touching Model/ (shapes
  • The service index)

Example prompts

  • “/smithy-ast-model”

What it can do on your machine

Read from SKILL.md and the folder at commit f36df89. 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

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • smithy.io

    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

Smithy Ast Model loads about 1.4k tokens when it runs. Until then it costs about 41 tokens; SKILL.md has 701 words of instructions outside code blocks.

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

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from aws/aws-sdk-net at commit f36df89, republished under its Apache-2.0 licence (© aws). 701 words, ~1,353 tokens.

Download SKILL.mdSave it as .claude/skills/smithy-ast-model/SKILL.md (or your agent's skills folder).
name
smithy-ast-model
description
The Smithy JSON AST facts and model invariants the SmithyDotNet generator relies on. Use when touching Model/ (shapes, traits, the service index).

Skill: Smithy AST Model

The model layer is a typed, read-only view of the Smithy JSON AST: smithy (version "2.0"), shapes (keyed by absolute shape ID), metadata. How it is deserialized is an implementation detail documented in the code; this skill records what the rest of the generator may assume.

Shape IDs

Every shape has an absolute ID, com.amazonaws.cloudtraildata#AuditEvent; members append $member (...#AuditEvent$id). Parsing follows the spec: exactly one #, an optional $member, every segment non-empty. The trap is the two string forms: the absolute name omits $member (it is the shapes dictionary key), while the canonical string form includes it.

A shape ID appears as a value in two JSON forms: a plain string ("target": "..." inside a member) and a wrapper object ("input": { "target": "..." } for operation input/output and service operation lists). Both resolve to the same shape ID type.

Shapes and Traits

  • union derives from structure (same members) and is generated as a plain structure, unless it is @streaming (an event stream, see sdk-conventions).
  • enum/intEnum member traits carry @enumValue; the wire value, not the member name, drives generation. A string shape carrying the legacy smithy.api#enum trait is normalized to an enum shape at load; nothing downstream sees smithy.api#enum.
  • An unknown shape type deserializes to null with a stderr warning (forward compatibility).
  • Every top-level shape carries its own id (Shape.Id), its shapes dictionary key, assigned as soon as the model deserializes; prelude shapes get theirs from the table. Members have none. Reading it on a shape built by hand without one throws.
  • Traits stay as raw JSON on every shape, keyed by full trait ID (smithy.api#required, aws.api#service), and are read through typed accessors. Annotation traits have an empty object as their value. Structured trait records tolerate unknown properties.
  • After load, only the customization transform mutates the model, and it runs before the service index is built. It applies only hooks with a Smithy trait equivalent (a rename pins @jsonName, renameShape adds a service rename entry) or a structural edit (a member-keyed renameShape copies the member's target); every other hook is validated there and looked up by shape and member name where the member is resolved, never stored on a shape. Downstream of the index the model is read-only.
Show full SKILL.md (334 more words)Show less

Prelude Shapes

Shapes in namespace smithy.api (smithy.api#String, smithy.api#Integer, ...) are implicit: not in the model JSON, skipped by the service index's traversal (they are not part of a service's own closure), but still resolvable, so a member's target maps without special-casing. The Smithy 1.0 Primitive* shapes (PrimitiveLong, PrimitiveBoolean, ...) resolve to the same shapes as their plain counterparts; 1.0-era models reference them and the SDK types both identically.

smithy.api#Unit is the one prelude shape that can emit code: when a union member targets it, a per-service empty Unit model class is generated (C2J ships one, and member properties reference it). Operation input/output references to Unit do not count; those emit empty {Op}Request/{Op}Response classes.

Key Invariants

  • A valid model has exactly one service shape.
  • Operation input and output default to smithy.api#Unit when absent.
  • Member names in a structure's member map are the Smithy member names (camelCase), not .NET names.
  • @jsonName overrides the wire name; the member key stays the model name.
  • Mixins are not resolved (production models arrive pre-flattened). A shape reachable from the service that declares mixins fails loud; unreachable consumers (the smithy.test/aws.protocols trait definitions in the raw protocol-test models) are ignored. The restJson1 test model has no reachable consumers; the restXml one does, so it needs flattening or mixin support before it can generate.
  • Enum collection skips enums that are unreachable and outside the service's namespace, so trait-definition enums like smithy.test#AppliesTo don't become ConstantClasses. Unreachable enums in the service's own namespace still emit, matching C2J's orphan *ExceptionReason enums.
  • Input/output structures are recognized two ways, and both matter: the @input/@output traits keep a structure out of the plain model classes, and the reference from an operation's input/output identifies the request/response pair (some models lack the traits). Error shapes are identified by @error.

Validating Models with the Smithy CLI

smithy validate --allow-unknown-traits <model.json> validates a model; smithy select --selector '<sel>' --show type --allow-unknown-traits <model.json> queries shapes (selectors, e.g. service > operation, structure > member > string). --allow-unknown-traits is needed because the AWS trait definitions are not bundled with the CLI.

© aws, 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

Just SKILL.md in generator/SmithyDotNet/skills/smithy-ast-model of aws/aws-sdk-net.

Open the folder on GitHubat commit f36df89

Compare with similar skills

Smithy Ast Model 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.

Smithy Ast Model compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Smithy Ast Model this skillaws/aws-sdk-net145—~1.4kAutomated safety check: PassApache-2.0
SageMaker IAM Role Preflighthuggingface/skills11k1 repos~1.8kAutomated safety check: PassApache-2.0
SageMaker Serving Image Selectionhuggingface/skills11k1 repos~4.6kAutomated safety check: PassApache-2.0
Cloud Cost Optimizationwshobson/agents40k14 repos~1.7kAutomated safety check: PassMIT
Agent Squad Python Guide2FastLabs/agent-squad7.8k—~4.7kAutomated safety check: PassApache-2.0
Paperclip Pagepaperclipai/paperclip99k—~1kAutomated safety check: PassMIT

Similar skills

  • Official

    Finds or validates a usable SageMaker execution role before deploying or training, so scripts do not try to create IAM roles they lack permission to create.

    11k GitHub starsUsed in 1 repo~1.8k tokens
    DevOps & CloudAuto-check passed
  • Official

    Chooses the right serving container and current image URI for deploying a Hugging Face model to a SageMaker endpoint, preferring Hugging Face images over generic ones.

    11k GitHub starsUsed in 1 repo~4.6k tokens
    AI & LLM EngineeringAuto-check passed
  • Cuts cloud spend across AWS, Azure, GCP and OCI with cost tagging, rightsizing, commitment and spot pricing models, and architecture changes.

    40k GitHub starsUsed in 14 repos~1.7k tokens
    DevOps & CloudAuto-check passed
  • Agent Squad Python Guide

    2FastLabs/agent-squad

    Map of the agent-squad Python framework for async multi-agent orchestration: which agent, classifier, storage and tool provider to pick, and the pitfalls to avoid.

    7.8k GitHub stars~4.7k tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • Paperclip Page

    paperclipai/paperclip

    Publish static HTML pages and asset folders to the Paperclip S3/CloudFront page host.

    99k GitHub stars~1k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Review Docs

    hashicorp/terraform-provider-aws

    Official

    Review a Terraform AWS Provider PR's end-user documentation (website/docs//.markdown): whether docs are needed, description openings, argument/attribute style, section structure, tags wording, code…

    11k GitHub stars~1.3k tokensUpdated today
    DevOps & CloudAuto-check passed

More from aws/aws-sdk-net

  • Official

    A skill your agent uses when validating that a C2J-to-Smithy migrated AWS SDK service builds, packages, and stays API-compatible with the shipping SDK, or before reporting such a migration as done…

    145 GitHub stars~4k tokensUpdated today
    Auto-check passed
  • AWS SDK Net Maintainer

    aws/aws-sdk-net

    Official

    A skill your agent uses when working on the AWS SDK for .NET source code itself, including Core runtime changes, service client implementations, generator or model changes, repo-specific build and…

    145 GitHub stars~503 tokensUpdated today
    Auto-check passed
  • Type Mapping

    aws/aws-sdk-net

    Official

    Smithy shape to .NET type mapping, nullability, collection element rules, and error-shape naming/member rules.

    145 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Marshalling

    aws/aws-sdk-net

    Official

    What the SmithyDotNet generator must emit for request marshallers and response/error unmarshallers, per Smithy binding trait and protocol.

    145 GitHub stars~8.2k tokensUpdated today
    Auto-check passed
  • SDK Conventions

    aws/aws-sdk-net

    Official

    The public-API contract SmithyDotNet-generated code must match against the shipping AWS SDK for .NET - what must match vs.

    145 GitHub stars~6.3k tokensUpdated today
    Auto-check passed

Questions about Smithy Ast Model

What does Smithy Ast Model do?

The Smithy JSON AST facts and model invariants the SmithyDotNet generator relies on. Smithy Ast Model is an agent skill from aws/aws-sdk-net, published by the product's own GitHub organization. The Smithy JSON AST facts and model invariants the SmithyDotNet generator relies on.

When should I use Smithy Ast Model?

Smithy Ast Model fits situations like: touching Model/ (shapes; the service index).

How do I install Smithy Ast Model in Claude Code?

Run `npx skills add aws/aws-sdk-net --skill smithy-ast-model -a claude-code`. Or copy the skill folder (generator/SmithyDotNet/skills/smithy-ast-model in aws/aws-sdk-net) into .claude/skills/smithy-ast-model in your project. Claude Code loads it when a task matches its description.

How do I install Smithy Ast Model in Codex?

Run `npx skills add aws/aws-sdk-net --skill smithy-ast-model -a codex`. Or copy the skill folder (generator/SmithyDotNet/skills/smithy-ast-model in aws/aws-sdk-net) into .agents/skills/smithy-ast-model in your project. Codex loads it when a task matches its description.

Can I use Smithy Ast Model 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 aws/aws-sdk-net --skill smithy-ast-model -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/smithy-ast-model, .gemini/skills/smithy-ast-model, .github/skills/smithy-ast-model and .opencode/skills/smithy-ast-model in your project.

What does Smithy Ast Model need to run?

SKILL.md names no scripts, command-line tools or credentials: Smithy Ast Model is instructions for the agent only.

Does Smithy Ast Model access the network?

SKILL.md names 1 domain. As links in the text: smithy.io. This is read from the text; nothing was executed.

Is Smithy Ast Model 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. Review the folder before installing.

What licence does Smithy Ast Model use?

Smithy Ast Model 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 Smithy Ast Model use?

About 1.4k tokens (SKILL.md is roughly 5.4k 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 Smithy Ast Model?

Skills that share tags, products or a category with Smithy Ast Model: SageMaker IAM Role Preflight (huggingface/skills, 11k stars), SageMaker Serving Image Selection (huggingface/skills, 11k stars), Cloud Cost Optimization (wshobson/agents, 40k stars) and Agent Squad Python Guide (2FastLabs/agent-squad, 7.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Smithy Ast Model?

aws (a GitHub organization, an official publisher) maintains it in aws/aws-sdk-net, which has 145 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 8, 2026.

Source: aws/aws-sdk-net on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.