Use when reading or writing any ShoMetrics log.
Use when changing or reviewing code that crosses major application boundaries such as settings, Property Inspector, actions, runtime sources/helpers, rendering, persistence, validation, generated contracts, IPC, version-skewed helper/plugin APIs, or adapters. Keep boundaries explicit and avoid over-engineered plumbing, option bags, duplicated models, and defensive code for impossible states.
Use when writing, reviewing, or changing code in this repo for language-neutral naming, ownership boundaries, comments/documentation, test structure, exception scope, and avoiding speculative abstractions; pair with language-specific skills such as typescript-coding-style or csharp-coding-style when applicable.
Use when writing, reviewing, or changing C#/.NET code in this repo, especially packages/source-windows Core, Helper, ControlPanel, .csproj, .editorconfig, NativeAOT, nullable, async/threading, and modern C# feature decisions. Pair with coding-style for language-neutral naming, comments, tests, and ownership rules.
Use when changing Sho Metrics Hub internationalization, including Property Inspector user-visible copy, Stream Deck manifest locale JSON, i18n message groups, locale resolution, generated i18n scripts, supported locales, translation wording, or dev locale override behavior.
Use when making or reviewing naming changes in this repo, including function verb choices, domain vocabulary, boundary vocabulary, file/type/export names, stored/resolved/settings field names, renderer contract names, and historical vocabulary cleanup.
Use when changing lifecycle hooks, polling, rendering, caching, startup, IPC, benchmarks, throttling, queueing, or any code that may run often enough to affect responsiveness or resource usage.
Read this before designing/writing .proto files. Do not read if you are simply consuming proto.