What problem does it solve?
When the Gum tool generates code for a consumer project, it must know which runtime conventions, namespaces, and role interfaces the target runtime supports. This Skill explains how the integer syntax version stamped on each runtime assembly via GumSyntaxVersionAttribute drives that detection, and when to bump it.
Core Features & Use Cases
- Version Stamping Guidance: Identifies the four AssemblyAttributes.cs files (GumCommon, MonoGameGum, RaylibGum, SkiaGum) that must be bumped in lock step, noting that KniGum and FnaGum inherit the MonoGameGum stamp via globbing.
- Detection Logic Reference: Explains how SyntaxVersionDetectionService resolves the version from ProjectReference, PackageReference via MetadataLoadContext, or a manual .codsj override.
- Bump Criteria: Distinguishes codegen-relevant runtime surface changes (renamed role interfaces, namespace moves) from changes that do not require a bump, and documents the instance-member pattern that replaces extension-method shims.
- Use Case: When migrating a static extension like AddToRoot to an instance method on GraphicalUiElement, use this Skill to decide whether the change requires a syntax version bump and which assemblies to update.
Quick Start
Ask the AI to determine whether a planned Gum runtime API change requires bumping the syntax version and which AssemblyAttributes.cs files to update.