All categories
Tools & Automation
CLI tools, utilities, converters, workflow automation, and productivity helpers
- 47,645
- 1,986
Security grades appear on each card once the skill has been scanned. Newly imported skills may briefly show without a grade until the backfill job runs.
Open in full browserBrowse tools & automation skills
Showing 7,945–7,968 of 47,645 skills
- Dr Execute StepExecute exactly one unchecked step from CHECKLIST.md, prove its done-criterion, record the output, and stop. The only skill in the change workflow allowed to modify the tree. Invoke repeatedly, once per step.Votes: 0GitHub stars: 142
- Dr Audit DeadAudit dimension - find code that is no longer used, via a reference census over every top-level symbol, one package per invocation. Invoked by dr-audit-orchestrator when dead.md is missing or has pending package rows.Votes: 0GitHub stars: 142
- 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
- Verification DisciplineUse evidence appropriate to the claim and the risk of the change.Votes: 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
- 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
- Guidance MaintenanceKeep agent guidance and skills stable enough that ordinary implementation changes do not require documentation churn.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
- Extension Stylingstylesheet.css at the extension root gets auto-loaded by GNOME Shell.Votes: 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 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 Prefs`prefs.js` at root. Exports default class extending `ExtensionPreferences`.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 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 Metadata`uuid`, `name`, `description`, `shell-version`, `url`.Votes: 0GitHub stars: 14
- Extension Lifecycle`enable()` and `disable()` must be adjacent in `extension.js`.Votes: 0GitHub stars: 14
- Extension GuidelineShell: no Gtk, Gdk, Adw. Prefs: no St, Clutter, Meta, Shell.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 Getting Started`extension.js`, `metadata.json`Votes: 0GitHub stars: 14
- Extension Esm Imports`import Name from 'gi://Gio'` `import {Exported} from './relative/path.js'`Votes: 0GitHub stars: 14
- Extension Debugging`journalctl -b /usr/bin/gnome-shell | grep extensionname`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
- Defensive ProgrammingKeep behavior predictable and safe when external systems or user input fail.Votes: 0GitHub stars: 14
- Code Review ChecklistEvery JavaScript change must pass this review.Votes: 0GitHub stars: 14