skills-writer
$
npx mdskill add vchelaru/Gum/skills-writerGenerate and refine comprehensive skill documentation by analyzing source code and distilling complex system knowledge.
- Creates structured reference guides for new or existing agent capabilities.
- Requires access to source code files and the local skill directory structure.
- Determines content by identifying architectural relationships and undocumented behaviors.
- Outputs markdown files adhering to strict formatting rules for agent context.
SKILL.md
.github/skills/skills-writerView on GitHub ↗
--- name: skills-writer description: Creates and updates skill files (.claude/skills/*/SKILL.md) by reading source code and condensing knowledge into concise reference guides. Use when asked to create a new skill, update an existing skill, or document a subsystem for Claude Code agent context. --- # Skills Writer ## Process 1. Read all source files relevant to the skill topic. 2. Check `.claude/skills/` for existing skill files to match style and depth. 3. Distill non-obvious behaviors, relationships, and gotchas into SKILL.md. Obvious things (property names, method signatures) do not belong. ## Skill File Rules - **Length**: Under 500 lines; aim for under 100 for focused topics. - **Naming**: Kebab-case noun phrases for the directory (e.g., `gum-tool-undo`). - **Frontmatter**: `name`, `description` (third person, specific — state what the skill covers AND when to load it). - **Structure**: `##` sections. Tables for key-file maps and event/class lists. Prose for relationships and non-obvious behavior. - **Progressive disclosure**: High-level architecture at the top. Link to separate detail files for advanced content (e.g., `[xnafiddle.md](xnafiddle.md)`) rather than inlining everything. ## What to Include - Architecture: how major pieces fit together and why. - Non-obvious gotchas: surprising behavior, ordering dependencies, naming mismatches. - Key file map: table of file to purpose (one-liners only). - Specific identifiers only when behavior is surprising or the name is misleading. ## What to Exclude - Full class outlines or property lists — readable directly from source. - Code examples unless a snippet captures an irreplaceable non-obvious pattern. - Time-sensitive info (versions, dates, migration notes). - Anything Claude already knows from general C# or .NET knowledge. ## Output Write the skill file to `.claude/skills/<skill-name>/SKILL.md`. Create the directory if needed. Only create additional files if the content is large enough to warrant referenced detail files.
More from vchelaru/Gum
- bump-nuget-versionBump the NuGet package versions for all 12 Gum projects (11 libraries + GumCli). Queries NuGet to check if a version exists for today, then sets the new version to YYYY.M.D.V where V increments from the latest published version today (or starts at 1). Creates a release branch named ReleaseCode_YYYY_M_D_V, commits the changes, and pushes. Run this before triggering the nuget release workflow.
- gum-cliReference guide for GumCli — the headless command-line tool for Gum projects. Load this when working on gumcli commands (new, check, codegen, codegen-init), Gum.ProjectServices, HeadlessErrorChecker, ProjectLoader, HeadlessCodeGenerationService, CodeGenerationAutoSetupService, or the FormsTemplateCreator.
- gum-docs-writingReference guide for writing Gum documentation in GitBook markdown. Load when writing or editing docs/ files, adding pages to SUMMARY.md, using GitBook hints/figures, linking between pages, or adding images.
- gum-forms-behaviorsCovers Gum's behaviors system and the design-time → runtime Forms wrapping lifecycle. Load this when working on BehaviorSave, ElementBehaviorReference, StandardFormsBehaviorNames, FormsUtilities.RegisterFromFileFormRuntimeDefaults, DefaultFromFileXxxRuntime classes, or when investigating why Forms properties cannot be set at design time in the Gum tool.
- gum-forms-controlsReference guide for Forms controls — classes inheriting from FrameworkElement. Load this when working on Button, CheckBox, ListBox, ComboBox, TextBox, ScrollViewer, or any class in Gum.Forms.Controls (or FlatRedBall.Forms.Controls). Also load when working on FrameworkElement itself, the Visual/InteractiveGue relationship, state machines, DefaultVisuals, or ReactToVisualChanged.
- gum-forms-default-visualsReference guide for Forms DefaultVisuals — the code-only visual classes that back Forms controls. Load when working on ButtonVisual, any *Visual class in DefaultVisuals/, Styling, DefaultFormsTemplates registration, or building custom code-only Forms visuals.
- gum-forms-itemscontrolReference guide for ItemsControl and ListBox — the Items/ListBoxItems relationship, templates, InnerPanel sync, and gotchas. Load this when working on ItemsControl, ListBox, ListBoxItem, VisualTemplate, FrameworkElementTemplate, Items collection behavior, ListBoxItems desync, or adding/removing items from a list box.
- gum-layout>
- gum-layout-engine>
- gum-localizationReference guide for Gum's runtime localization system — ILocalizationService, CSV/RESX loading, Text vs TextNoTranslate paths, Forms control localization patterns, and gotchas.