Skip to main content

add-winforms-dialog

**EXECUTION (runbook) SKILL** — Add a new WinForms dialog/control to Git Extensions following the project's base classes and naming conventions. USE FOR: creating a new Form or UserControl, wiring it to git via UICommands. DO NOT USE FOR: editing existing dialogs' logic only, or non-UI code. Triggers: "add a new dialog", "create a form", "new WinForms control", "new settings page".

ソース情報

リポジトリ
gitextensions/gitextensions
ソースの最終更新活動
2026年7月14日 08:04
検出された SKILL.md の言語
英語
スター
8,605
フォーク
2,222

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
add-winforms-dialog
description
**EXECUTION (runbook) SKILL** — Add a new WinForms dialog/control to Git Extensions following the project's base classes and naming conventions. USE FOR: creating a new Form or UserControl, wiring it to git via UICommands. DO NOT USE FOR: editing existing dialogs' logic only, or non-UI code. Triggers: "add a new dialog", "create a form", "new WinForms control", "new settings page".
# Add a WinForms Dialog (runbook) Create a new dialog that matches the codebase's conventions. Follow in order. ## Steps 1. **Pick the base class** (see [ui-composition](../../copilot-docs/L1-conceptual/ui-composition.md)): - Repo-aware dialog → derive from `GitModuleForm` (gives `UICommands` / `Module`). - Standard dialog chrome → derive from / use `GitExtensionsDialog`. - A panel/control → derive from `GitModuleControl`. - **NEVER** derive directly from raw `Form`. 2. **Place the files** under `src/app/GitUI/CommandsDialogs/` (or a suitable subfolder): `Form<Name>.cs`, `Form<Name>.Designer.cs`, `Form<Name>.resx`. 3. **Name controls** per [ui_design_guidelines.md](../../ui_design_guidelines.md): `btn`, `lbl`, `txt`, `cbx`, `chk`, `rb`, `gbx`, `tlpnl`, `flpnl`, `lnk`, … 4. **Talk to git** only through `UICommands` / `Module`; build commands with `Commands.*` (structured `IGitCommand` preferred). **NEVER** `new` a `GitModule` or spawn `git` directly. 5. **Localize:** make every user-facing string a `TranslationString`, then run the [add-translation-strings](../add-translation-strings/SKILL.md) runbook (`update-loc.cmd`). 6. **Hotkeys (if any):** register via `HotkeySettingsManager`, not hardcoded key handling (see [hotkey-system](../../copilot-docs/L2-core-platform/hotkey-system.md)). 7. **Refresh:** after a state-changing action, call `UICommands.RepoChangedNotifier.Notify()`. ## Verify - `dotnet build /v:q` succeeds; control names follow the prefixes. - `English.xlf` updated (localization gate). - UI touched only on the UI thread ([threading-model](../../copilot-docs/L1-conceptual/threading-model.md)). ## STOP conditions - Deriving from raw `Form`, hardcoded `Color`s (use `AppColor`), or raw git command strings → fix before proceeding. - Add a unit test if the dialog builds git arguments via `Commands.*`.
GitHubで見る