All authors

Claude Skills by itsnin
github.com/itsnin22 skills0 installs56 views
- Code Review ChecklistEvery JavaScript change must pass this review.Votes: 0GitHub stars: 14
- Defensive ProgrammingKeep behavior predictable and safe when external systems or user input fail.Votes: 0GitHub stars: 14
- Extension Best PracticesUse lib for library code organized by concern, such as lib/ui, lib/core and lib/utils. The src prefix implies a build step so use lib for extensions that do not need compilation.Votes: 0GitHub stars: 14
- Extension Debugging`journalctl -b /usr/bin/gnome-shell | grep extensionname`Votes: 0GitHub stars: 14
- Extension Esm Imports`import Name from 'gi://Gio'` `import {Exported} from './relative/path.js'`Votes: 0GitHub stars: 14
- Extension Getting Started`extension.js`, `metadata.json`Votes: 0GitHub stars: 14
- Extension GsettingsThe schemas directory sits at the extension root. Filenames must match the schema ID pattern.Votes: 0GitHub stars: 14
- Extension GuidelineShell: no Gtk, Gdk, Adw. Prefs: no St, Clutter, Meta, Shell.Votes: 0GitHub stars: 14
- Extension Lifecycle`enable()` and `disable()` must be adjacent in `extension.js`.Votes: 0GitHub stars: 14
- Extension Metadata`uuid`, `name`, `description`, `shell-version`, `url`.Votes: 0GitHub stars: 14
- Extension Overview Search StealingSpotlight permanently takes over the GNOME Overview search infrastructure on enable. This is not a temporary reparenting on open and close. The widgets stay stolen for the entire lifetime of the extension.Votes: 0GitHub stars: 14
- Extension Popup Close DefenseThe multi-layer close defense lives in `lib/popup/behavior/defense.js` as `installCloseDefense()` and `uninstallCloseDefense()` functions. It installs on each popup open and uninstalls on each close. Spotlight uses a multi-layer defense to ensure the popup closes reliably when any result is activated. This solves the problem where some activations create new windows, some open URLs in browsers, and some copy to clipboard without any window creation.Votes: 0GitHub stars: 14
- Extension Prefs`prefs.js` at root. Exports default class extending `ExtensionPreferences`.Votes: 0GitHub stars: 14
- Extension Review Guidelines- Module-scope instances or signals - Process isolation violations (Gtk in shell, St in prefs) - Deprecated imports (`imports.misc.lang` etc.) - Missing cleanup (objects created in `enable()` not destroyed in `disable()`) - CSS line comments (`//`) - GObject constructor with JS-only propertiesVotes: 0GitHub stars: 14
- Extension Signal CleanupThis is the preferred pattern for all objects that support it. Pass this as the final argument and calling disconnectObject on this in destroy or disable cleans all handlers at once.Votes: 0GitHub stars: 14
- Extension Stylingstylesheet.css at the extension root gets auto-loaded by GNOME Shell.Votes: 0GitHub stars: 14
- Extension Writing StandardsComments should explain why a decision exists, not restate what the code does. Use natural grammar, sentence case, and light punctuation. Do not add banners, JSDoc, references to other projects, or phrases such as "here we", "let's", and "note that". Keep comment blocks short and adjacent to the code they explain.Votes: 0GitHub stars: 14
- Guidance MaintenanceKeep agent guidance and skills stable enough that ordinary implementation changes do not require documentation churn.Votes: 0GitHub stars: 14
- Security Anti Patterns`eval()` or `Function()` on user-controlled data becomes code execution. Safe alternatives: parse structured input explicitly, use allowlisted values, or dispatch through a lookup table. Never pass untrusted strings through a shell. Use direct API calls instead. When spawning subprocesses is genuinely needed, pass arguments as an array, not as a shell command string. User-supplied paths must be validated against an allowlist or canonicalized before use. ```js // DANGEROUS — user input can reacVotes: 0GitHub stars: 14
- Testing And LintingThese are non-negotiable for every change. ```bash for f in $(find . -name "*.js" -not -path "./.git/*" -not -path "./.agent/skills/*"); do node --check "$f" done glib-compile-schemas --strict schemas/ yamllint .github/ -c .yamllint shellcheck scripts/*.sh ``` The GitHub Actions workflow in `.github/workflows/ci.yml` runs these checks plus additional validators: metadata integrity, process isolation, deprecated import detection, GObject constructor property scan, CSS comment style, and Votes: 0GitHub stars: 14
- Verification DisciplineUse evidence appropriate to the claim and the risk of the change.Votes: 0GitHub stars: 14
- Writing ToneWrite like a sharp, sophisticated person explaining something to a peer, not like a document generator producing a legal notice. Precision and economy of words matter more than capitalization density or punctuation flourish.Votes: 0GitHub stars: 14