Use when adding a new app-owned enum with [derive(forge::AppEnum)] — a typed finite set of string-keyed variants used across Rust models / DTOs / services and auto-exported to TypeScript as a union type + Options + Values + Meta. Typical phrasings: "add a TopUpStatus enum", "new enum for order status", "add a Priority enum with Low / Medium / High", "add a user tier enum". Covers the shared-vs-file-private placement decision, the [forge(key = "...")] attribute for custom wire keys, the required i18n label keys (enum. . ), and the make types regeneration + how the generated TS bindings are consumed on the frontend. Do NOT use for: enum-typed fields added to an existing model (that's part of new-model's field composition — invoke new-model, and this skill when the enum itself is new); Forge-provided enums (import from forge::; never redeclare); generic Rust enums that are not user-facing / database-persisted / TS-exported (plain enum X {} without AppEnum is fine for internal use).
Install with
Claude CodeCodexCursorGitHub CopilotGemini CLI
Supported by the Atlas install prompt. Skill-specific requirements vary.
Skill stats
Skills1CategoryEngineeringStars0
About this skill
Use when adding a new app-owned enum with [derive(forge::AppEnum)] — a typed finite set of string-keyed variants used across Rust models / DTOs / services and auto-exported to TypeScript as a union type + Options + Values + Meta. Typical phrasings: "add a TopUpStatus enum", "new enum for order status", "add a Priority enum with Low / Medium / High", "add a user tier enum". Covers the shared-vs-file-private placement decision, the [forge(key = "...")] attribute for custom wire keys, the required i18n label keys (enum. . ), and the make types regeneration + how the generated TS bindings are consumed on the frontend. Do NOT use for: enum-typed fields added to an existing model (that's part of new-model's field composition — invoke new-model, and this skill when the enum itself is new); Forge-provided enums (import from forge::; never redeclare); generic Rust enums that are not user-facing / database-persisted / TS-exported (plain enum X {} without AppEnum is fine for internal use).
Quick start
Copy the install prompt. Use the green button above this README.
Send it to your agent. Paste it into your coding agent’s chat and send.
Review the setup. Your agent checks the skill’s instructions, requirements, and installation scope.
Use when adding a new app-owned enum with `#[derive(forge::AppEnum)]` — a typed finite set of string-keyed variants used across Rust models / DTOs / services and auto-exported to TypeScript as a union type + Options + Values + Meta. Typical phrasings: "add a TopUpStatus enum", "new enum for order status", "add a Priority enum with Low / Medium / High", "add a user tier enum". Covers the shared-vs-file-private placement decision, the `#[forge(key = "...")]` attribute for custom wire keys, the required i18n label keys (`enum.<snake_name>.<variant>`), and the `make types` regeneration + how the generated TS bindings are consumed on the frontend. Do NOT use for: enum-typed fields added to an existing model (that's part of `new-model`'s field composition — invoke `new-model`, and this skill when the enum itself is new); Forge-provided enums (import from `forge::`; never redeclare); generic Rust enums that are not user-facing / database-persisted / TS-exported (plain `enum X {}` without AppEnum is fine for internal use).
About this listing
Category
Engineering
Reported license
Not specified
Listing language (estimated)
English
Review status
Not individually reviewed
Agent compatibility
Atlas installation supports Claude Code, Codex, and Cursor. Skill-specific dependencies and features are checked during setup.