Skip to content

skills

Agent skills for engineers who won't lower their standards to use AI.

33 skills I built for my own work and use every day, open source. Install the set, or take only the ones you want.

skills
33skills
plugins
15plugins
licensed
MITlicensed
agents
2agents

Install my skills

Installed as plugins from one marketplace. Add it once, then install the plugins you want.

Any agent — pick the skills and agents you use. The installer writes editable files into your project.

npx skills@latest add smorinlabs/smorinlabs-harness

Claude Code — add the marketplace.

/plugin marketplace add smorinlabs/smorinlabs-harness

Then install a plugin.

/plugin install repo-hygiene@smorinlabs-harness

Codex — clone the repo, then register it in ~/.codex/config.toml.

git clone https://github.com/smorinlabs/smorinlabs-harness.git

Then register it in the config.

[marketplaces.smorinlabs-harness] source_type = "local" source = "/absolute/path/to/smorinlabs-harness"
works inClaude CodeCodex

Source: smorinlabs/smorinlabs-harness

What a skill actually is

The problem

An agent will happily do the work the wrong way — skip the tests, guess at the API, commit straight to main — and sound confident doing it.

The fix

A skill is a written procedure the agent loads when it matches the work. Not a prompt you paste: a file the agent finds on its own, at the moment it applies.

What you type

A slash command, or nothing at all. Most of these fire on their own when the task fits, which is the point — you should not have to remember they exist.

The set

All 33, grouped by what you reached for them to do.

Shape the work

Turn a vague idea into decisions and tasks you can actually start.

8 skills

start with /question-walkthrough

Work the code

Review, refactor, and consolidate what is already written.

4 skills

start with /factor-scan

Ship it

Get the branch green, reviewed, merged, and released.

7 skills

start with /pr-merge-flow

Explain it

Make the thing understandable to whoever reads it next.

8 skills

start with /explain

Run the session

Orient, hand off, and clean up the agent sessions themselves.

6 skills

start with /session-recap

What changed recently

The last five releases.

full history
  1. v0.26.0Sep 15, 2026

    fusion-runner 0.2.12, a new plugin

    Two skills for a Windows GitHub Actions runner in VMware Fusion on a Mac. fusion-runner-setup walks the Broadcom download and Windows installation, verifies the Windows login, records each setup checkpoint, keeps a reusable Windows baseline distinct from the working VM, and ships hosted-compatibility smoke tests that compare the VM with GitHub-hosted Windows. fusion-runner-run starts, checks, and gracefully stops the configured VM, verifying GitHub readiness separately from VM power and preserving the working VM's files.

  2. v0.25.0Sep 10, 2026

    repo-hygiene 0.12.0 — ci-fix reproduces Linux jobs in whatever is already on the machine

    A new scripts/detect_runners.py surveys podman, docker, lima, act and the devcontainer CLI and writes ~/.config/ci-fix/runners.toml. The survey is read-only — it starts no VM, pulls no image, installs nothing — and ranks by what the machine already has: installed beats absent, since starting a stopped runner is one command while installing is a download; an image or VM already on disk beats one that must be fetched, so a stopped lima holding a VM outranks a running but empty podman; and only then does the order podman → lima → docker decide, with podman leading as the easiest (rootless, licence-free, docker's CLI) and lima the right answer when a job needs a full VM. act sits above them but is a driver, ready only when a runtime is. A machine with nothing installed is told the easiest thing to get, not the best, and a hand-written pinned value overrides the ranking and survives --refresh. Architecturally this adds no rung: a Linux runner changes *where* rungs 0 and 1 execute, so every floor and cap from 0.11.0 holds, and CI is the lab now means no local path exists at all. ladder_plan.py gains --local-env container, which doubles a step's CI-proxy estimate for its first run in a container and defers to the ledger afterwards. references/local-runners.md carries the podman/docker, act and lima recipes, the toolchain-to-image map and the architecture rule. Every start, pull and install is one AskUserQuestion, and a decline is recorded.

  3. v0.24.0Sep 10, 2026

    repo-hygiene 0.11.0 — ci-fix isolates only where it pays, with a floor per level

    A new scripts/ladder_plan.py computes the entry rung and the remote mode from the duration profile. Locally (isolating costs seconds): a failed step expected over --isolate-local (30s) runs its failing IDs first, a shorter one runs whole; the whole step (rung 1) always runs when expected within a 10-minute cap and is asked about once above it. In CI (isolating costs a marked commit, a dispatch, and a second cycle): a plain push is both rung 2 and rung 3 unless CI is the only place the failure can be seen and the job is expected over --isolate-remote (5m); then the failing workflow is dispatched alone with only the failing tests through a workflow_dispatch filter input, with a one-time offer to add the input (references/filter-input.md, newline-split through env:, never ${{ }} in run:, empty input runs the whole suite). Whole-workflow dispatch without a filter is gone from the fix path (runner minutes, not time). Local durations are recorded by scripts/local_ledger.py in a machine-level ledger so later fixes decide from local numbers. The profile reports runs per workflow and tops up starved workflows from their own listing; two workflow files with one name: are keyed by path and an unattributable run is reported as an ambiguous join. extract_failures.py reads vitest and cargo-nextest logs and recovers a pytest ID with an unmatched [. --update-versions and the pin audit name a replacement tag only after git/refs/tags/<tag> returns it (the setup-uv@v10 lesson).

  4. v0.23.0Sep 9, 2026

    repo-hygiene 0.10.0 — ci-audit is now ci-fix, and it fixes CI

    Every run measures first: the last successful runs are profiled through the REST jobs endpoint into per-job medians, queue wait, slowest step, a slow/fast/unmeasured class against --slow-threshold (default 2m), and a data-derived CI wait bound. Fix mode triages each red job, extracts the failing test IDs from the job log (pytest, jest, cargo, go; shell-safe quoted), reproduces before editing, and verifies up a ladder: the isolated tests locally, the failed step locally, a local sweep of every other fast job, then a push that dispatches only the failing workflow through workflow_dispatch with the fix commit carrying [skip ci] (the isolated tests again when the workflow declares a filter input), then every run on the pushed commit. Done means every job green on the last pushed commit. Then it offers once to add the failed check as a lefthook or pre-commit hook, staged by its measured duration. --audit reports only; --optimize dispatches a read-only sub-agent that returns ranked, evidence-backed speed changes without applying them. Three stdlib scripts (ci_profile.py, extract_failures.py, workflow_inventory.py), 55 tests with real fixtures, an end-to-end run on a scratch PR. docs/skills/ci-audit.md is a redirect stub. This repo's CI workflow now declares workflow_dispatch. (PROJECTS P42, P45 PR-1; PRs #49, #55)

  5. v0.22.0Sep 8, 2026

    clear-decision-communication plugin (0.1.2)

    Decision requests from an agent to a human during a run, as inline ASCII text: a gate that refuses to ask for facts or for anything already authorized; seven diagnostic axes sized into three tiers (Confirm, Compact brief, Full brief) with length signals and caps; representation chosen from the change type out of a 21-form ASCII catalog (F1–F21, including the span chart, layer stack, containment boxes, decision tree, threshold on a scale, and a general tree); a six-question brief rendered decision-first with verified, inferred, assumed, and not-verified evidence told apart; numbered questions and lettered options (Q1.A) with the recommended option always A and a runner-up condition; a silence default that is always the most reversible option; plain text canonical with a derived dialog rendering behind the two-turn gate; decision records keyed by question ID. Self-contained: synthesizes the owner's decision-communication framework with the clarity rules and the two standards (ISO 24495-1, ASD-STE100) behind clear-technical-communication and the text forms of show-me; names no other skill; never produces HTML. Marketplace goes from 13 plugins / 30 skills to 14 / 31. (PRs #50, #51, #52; PROJECTS P43)

Skills for your next iOS or Mac app

Explore skills, plugins, and tools for SwiftUI, testing, debugging, and App Store workflows. Includes setup notes, Apple documentation options, and articles from the developers behind them.

34 resources · 6 topics · 7 articles

Explore the iOS & Mac collection
  • SwiftUI
  • Xcode
  • Apple docs
  • App Store

Install my skills and get to work

MIT licensed, one repo, no account. Take the whole set or one plugin.

Add the marketplace.

/plugin marketplace add smorinlabs/smorinlabs-harness

Then install a plugin.

/plugin install repo-hygiene@smorinlabs-harness