connorads
- 56 skills
- 0 followers
- 1 week ago last updated
- ▌ Event Driven Architecture · connorads bundleDesign messaging across service and process boundaries - when to go async, how events propagate between contexts, reliable publication (outbox/inbox, dual-write), delivery semantics (at-least-once, idempotent consumers, DLQ, ordering), and event/schema versioning. Use when work crosses a service boundary with queues, brokers, or streams (Kafka/RabbitMQ/SQS), integration events, or an evolving event schema.
- ▌ Task Loop · connorads bundleScaffolds a loop directory for automated agent task execution. Use when asked to "create a task loop", "set up a loop", "scaffold a loop directory", "prepare tasks for rl", or "set up automated execution" for a backlog. Takes an existing backlog and generates PROMPT.md (loop contract), run-log.md (execution history), and .gitignore for ephemeral loop-state.md.
- ▌ Task Plan · connorads bundleDecompose input into a structured task backlog for automated agent loops. Use when asked to "create a task plan", "break this into tasks", "decompose this PRD", "turn this into a backlog", or "plan tasks from" any input source (PRD, Figma feedback, GitHub issues, user requirements). Also use when the user provides a PRD, design doc, or requirements and wants executable tasks, even if they don't mention "task plan" explicitly.
- ▌ Deciding Under Uncertainty · connorads bundleHardens a recommendation on a consequential, hard-to-reverse call into a calibrated bet with a pre-agreed exit, instead of a single confident verdict. Use when advising or deciding: build vs buy, adopt or swap a dependency or platform, migrate now or wait, rewrite vs refactor, quit or double down, ship or delay - any "should we / should I" where being wrong is expensive to undo. Also for judging a past decision fairly. Not for generating design alternatives - the design-forking skill owns widening the option set; this skill disciplines the commitment once a leading option exists.
- ▌ Distilling Domain Language · connoradsChoose or distil canonical domain language through structured interrogation. Use when naming a new domain concept, pinning down a project's ubiquitous language, when a term fights its own definition, several words compete for one concept, a glossary has bloated, or a hidden concept needs surfacing before terms are written into CONTEXT.md.
- ▌ Homebrew Formula Authoring · connorads bundleCreate, update, validate, and submit Homebrew formulae (homebrew-core, built from source). Use when the user mentions a Homebrew formula, Homebrew/homebrew-core, adding/updating a formula, brew create, building from source, a build system in a brew context (cargo/rust, go, cmake, meson, autotools/configure, make, python virtualenv, node/npm, ruby gem), resource blocks, depends_on/keg_only/uses_from_macos, the mandatory test do block, bottles, livecheck, brew bump-formula-pr, or when asked to run brew audit --new / brew test / brew style for a formula. For macOS GUI apps and prebuilt binaries use the homebrew-cask-authoring skill instead.
- ▌ Playwright Interactive · connorads bundlePersistent browser and Electron interaction through `js_repl` for fast iterative UI debugging.
- ▌ Cross Review · connoradsGets an adversarial, report-only code review of the current change from a different AI model (Claude, Codex or opencode), run headless and read-only, and relays the findings. Use when the user asks for a second opinion, a cross-model or adversarial review, to "have another model check this", red-team a diff, or review working-tree changes, unpushed commits, or a branch before committing or opening a PR - especially to pair a review rubric skill (e.g. thermo-nuclear-code-quality-review, code-review) with a different model via skl. Not for shipping a session to another host (that is agent-teleport / atp), branching your own session into a pane (tmux Alt+b), or auto-applying fixes - this reports only.
- ▌ Disk Reclaim · connoradsFinds what is consuming disk space on this Mac and reclaims it safely. Use when the disk is low or full, or the user asks to analyse disc usage, find what's eating space, free up space, or clean up their Mac - including mentions of ncdu, du, dust, or "startup disk full". Not for pruning a single project's build output, or for disk on a remote server.
- ▌ Capture Brand · connorads bundleCaptures a brand kit from a company or product name, domain, URL, website, or brand-guidelines link: official source resolution, logos, favicons, social images, screenshots, colours, typography, visual style notes, design tokens, and a basic on-brand page brief. Use when the user asks to copy, capture, match, recreate, clone the vibe of, extract tokens/assets from, or make a page feel on-brand from a web link or just a brand name. Not for phishing, fake affiliation, counterfeit pages, or exact replicas of protected flows.
- ▌ Coding Agents · connoradsObserve and drive coding agents (Claude Code, Codex) running in tmux panes: list live agents, wait for one to finish or need input, send it a prompt, or name a pane. Use whenever a task involves another agent's pane - "is the agent done", "when it finishes", "send this to the other agent", waiting on an agent before a follow-up step, or scripting multi-agent hand-offs. Owns the `agent` CLI and the `@agent_state` vocabulary. For driving any other TUI (REPLs, wizards, editors) use the tmux skill.
- ▌ Github Images · connoradsDownloads images from GitHub issues and PRs using authenticated signed URLs. Use when a user shares a GitHub issue/PR URL and the agent needs to view screenshots or image attachments, especially from private repos, or asks to "grab the screenshots from that issue" or similar.
- ▌ Cloudflare Workers Deployments · connorads bundleSet up, deploy, and troubleshoot Cloudflare Workers projects using Wrangler, Workers Builds Git integrations, custom domains/routes, static assets, and Cloudflare Access. Use this skill whenever the user mentions Cloudflare Workers deployment, Workers Builds, GitHub-connected or GitLab-connected Workers, Wrangler static assets, Worker custom domains, build branches, preview builds, build watch paths, monorepo Workers Builds, build triggers, build logs, pnpm/npm/yarn/bun deploy commands in Workers Builds, creating a Worker project without deploying locally, or protecting a Worker hostname with Cloudflare Access.
- ▌ Hetzner Server · connoradsCreate and manage Hetzner Cloud servers. Use when creating VPS/cloud servers, managing Hetzner infrastructure, or setting up dev/remote servers. Requires hcloud CLI.
- ▌ Website Mirror · connoradsPicks the right local tool and command to mirror, archive, or snapshot a website or page for offline use, and avoids the silent failure where a saved page renders blank with no network. Use when asked to mirror, archive, download, save, or snapshot a site or page for offline viewing, make a browseable offline copy, or grab a page as a single self-contained file - covering wget, monolith, firecrawl and yt-dlp, robots and soft-block handling, and the JS/API offline-content trap. Not for live web extraction into markdown when no local copy is wanted - use firecrawl directly for that.
- ▌ Loop Supervisor · connorads bundleScaffolds a SUPERVISOR.md runbook for watching a long-running agent loop in tmux. Use when asked to "supervise a loop", "watch a loop", "babysit a loop", "set up a supervisor", or when a task-loop / rl run needs someone operating the harness around it.
- ▌ Skill Freshness · connoradsSweep the authored skill catalogue for truth decay - re-verify dated caveats, version literals, counts, and executable claims against live sources, and re-baseline skills against what the model now does unaided. Use when asked to check skills for staleness, run a freshness sweep, re-verify skill claims, or after a major model upgrade; also for a single skill when revising it feels risky. Not for vendored skills (update-vendored-skills owns upstream refresh) and not a lint (writing-skills' check.sh owns phrasing).
- ▌ Single HTML Page · connorads bundleBundles an HTML page or URL into one self-contained, shareable HTML file by embedding images, icons, CSS, JavaScript, fonts, and other page assets as data URIs. Use when the user asks to make a webpage portable, offline, standalone, single-file, self-contained, shareable, or not depend on an assets folder. Not for rebuilding or redesigning the page.
- ▌ Video Thumbnails · connorads bundleCreates video thumbnails (YouTube, LinkedIn) from a talk or screen recording: scouts frames with ffmpeg contact sheets, cuts out the speaker with rembg, composites panels/logos/big text as HTML/CSS and screenshots with playwright-cli. Use when the user asks for a thumbnail, cover image, or social preview for a video, talk, or upload, or wants to match a reference thumbnail's style. Not for image edits with no video source.
- ▌ Brand Positioning · connorads bundleProduct positioning, customer-research-driven messaging and website copy, and brand identity briefs, informed by the work of April Dunford, Georgiana Laudi, Claire Suellentrop, Michael Johnson and Alina Wheeler. Use when positioning or repositioning a product, choosing a market category or target segment, planning customer or JTBD research, writing or rewriting homepage, landing-page or sales copy, a value proposition or tagline, naming a product or company, briefing a rebrand, logo, visual identity or brand architecture decision, or critiquing existing positioning, messaging, a name or a brand against expert criteria. Not for ad campaigns, SEO, or channel/growth tactics.
- ▌ Writing Precisely · connorads bundleRenders investigation findings as honest tickets, issues, bug reports, and incident writeups filed in the user's name: every claim carries its evidence, hedges mark real uncertainty instead of smoothing over gaps, and proposed fixes never outrun the diagnosis. Use when drafting or reviewing a ticket or writeup, when deciding how confident a claim may sound, when the user asks whether a ticket overclaims or is bullshitting, or when writing first-person prose on the user's behalf. Not for conducting the investigation itself - that is prove-it; this skill owns how the result is written down.
- ▌ Terminal Fabricate · connorads bundleAuthors fake terminal sessions and coding-agent TUIs that render to SVG, PNG, or MP4 via termctrl, without running the real program. Use when you need a fabricated, idealised terminal image or recording - a mocked-up Claude Code / Codex session, or a fake shell / REPL / CLI transcript for a slide, doc, README, or blog - instead of capturing a real run. Covers authoring raw ANSI stills and hand-built .termctrl timelines. To capture or render a REAL running program, use the terminal-control skill instead.
- ▌ UI Design Playbook · connorads bundleConcrete rules for building or restyling UI in code: visual hierarchy, spacing and layout, type scales, colour palettes, depth and shadows, images, and finishing flourishes. Consult WHILE building, styling, restyling, or design-reviewing an interface - whenever something needs to "look better", feel more polished, or when setting up spacing / type / colour systems. Framework-agnostic, with a separate Tailwind v4 mapping.
- ▌ Tmux Plugin Updates · connoradsSafely review and update sha-pinned tmux plugins. Use whenever the user mentions tmux-upstream, tmux plugin pins or updates, a tmux plugin being commits behind upstream, pin_tmux_plugin in home-shared.nix, asks whether a tmux plugin update is dodgy/compromised/safe, or asks to bump/update a tmux plugin. Default to review-only and ask before bumping unless the user explicitly requested automatic safe updates.
- ▌ Update Vendored Skills · connoradsSafely refresh the vendored third-party agent skills in this dotfiles repo. Use whenever the user wants to update, refresh, upgrade, or re-pull vendored skills (`skills update`), or asks to check whether a skill refresh is safe / dodgy / compromised before committing. `skills update` is an unauthenticated git clone with no quarantine, no signature, and no scan - and skill files are instructions injected into every agent session - so this skill gates each refresh by reading the diff and only commits clean ones, holding dodgy diffs for sign-off.
- ▌ Opencode Conversation Analysis · connorads bundleAnalyze OpenCode conversation history to identify themes and patterns in user messages. Use when asked to analyze conversations, find themes, review how a user steers agents, or extract insights from session history.
- ▌ Hk · connorads bundleSet up and maintain hk git hook manager in any repository. Use when adding pre-commit hooks, configuring linters, setting up code quality automation, working with hk.pkl, or maintaining existing hook configurations. Triggers on tasks involving hk, git hooks, pre-commit checks, commit-msg validation, or linting pipelines.
- ▌ Adr · connorads bundleWrites and maintains architecture decision records (ADRs) for a decision that has already been taken, and reads existing records before touching what they govern. Use when asked to "write an ADR", "record this decision", "document why we chose X", "why did we do it this way", "supersede an ADR", "add this to docs/adr", or to write up a call after it was made - and when about to change a subsystem whose repo has an ADR directory. Not for reaching the decision: design-forking widens and compares the options, deciding-under-uncertainty commits to one as a calibrated bet, and architecture designs the target shape.
- ▌ Utm · connorads bundleControl UTM virtual machines on macOS programmatically - create and configure VMs via AppleScript, manage lifecycle with utmctl, run commands and transfer files in guests, and set up Windows 11 ARM for headless automation (SSH, not the guest agent). Use whenever the user mentions UTM, utmctl, VMs on Apple Silicon, creating/cloning/scripting a virtual machine on a Mac, or wants to run commands inside a local Windows or Linux VM - even if they don't name UTM explicitly.
- ▌ Python · connorads bundleWrite idiomatic, type-safe Python: errors as values (Result/typed errors) and composing them, parse-don't-validate with pydantic, frozen kw-only dataclass value objects, unions with match and assert_never (structural pattern matching), Protocol vs ABC ports, persistence-ignorant domain models, package layout, import discipline and circular imports, config parsed once at a composition root that is a scope (DI/bootstrap), structured concurrency with asyncio task groups and retries, smart constructors, which interpreter and library versions to target, basedpyright, and the Any/cast/type-ignore discipline. Use when designing or reviewing Python specifically. Routing: architecture for agnostic design, mechanical-enforcement for lint and type-checker config, testing for test strategy.
- ▌ Testing · connorads bundleDesign and write effective tests for behavioural changes, bug fixes, and refactors. Use when choosing a test layer, practising TDD, picking doubles/fakes, designing scenario or e2e suites for critical journeys, reducing brittle or flaky tests, designing the characterisation tests that make refactoring safe, or applying property-based, snapshot/approval, differential/metamorphic, or contract testing. For coverage, thresholds, mutation testing, fuzzing, and CI/hook enforcement, use the test-coverage skill; for legacy migration and refactoring strategy, use the refactoring skill.
- ▌ Prove It · connorads bundleTests whether evidence warrants an empirical claim at its stated strength and scope. Use when declaring a bug fixed or a root cause found, closing an investigation, validating or verifying a factual conclusion, auditing the factual premises of a plan, or when the user says prove it, are we sure, or asks whether evidence really supports a claim in any domain. Not for mathematical or formal proof, type-system guarantees, choosing among forward-looking options, or designing the test itself.
- ▌ Web Perf · connorads bundleDiagnoses and fixes what a user sees on a route's first load - font-swap flashes, image decode pop-in, layout shift (CLS), slow LCP/FCP, blank-then-paint, hydration/theme flips, streamed-SSR skeletons that flash or pop, Lighthouse/PageSpeed complaints - on static (Astro/SSG), Vite SPA, SSR, or streamed routes (Next.js App Router/PPR, TanStack Start); a soft navigation is that route's first load. Use on "flash", "shimmer", "pop", "jump", "flicker", "skeleton", or slow first paint; when the LCP is webfont text or content fades in after JS; for font loading (self-hosted, Google Fonts, Adobe Fonts, next/font), image loading (next/image), Suspense boundary placement, skeleton swaps, subsetting fixed copy, resource hints, metric fallbacks; or to assert first-load invariants on built HTML, a booted route, or a streamed shell. Not for bundle-size analysis, steady-state INP, SEO, or backend latency past the TTFB-vs-skeleton trade-off; where a framework automates the fix, defer to its output but inspect wrapping code.
- ▌ Typescript · connorads bundleWrite idiomatic, type-safe TypeScript: errors as values and composing them, parse-don't-validate, branded and domain types, the record-type choice (interface, type, class, brand, readonly, as const satisfies), deep domain modules and import cycles, cancellation with AbortSignal and structured concurrency, resource and transaction scopes with using and AsyncDisposableStack, the composition root, retries and the injected clock, exhaustiveness and the cast/`any`/`!` discipline, the Effect adoption boundary, and which compiler and runtime to target (TS 7, Node, Bun, Deno, erasable syntax). Use when designing or reviewing TypeScript specifically. Routing: architecture for agnostic design, mechanical-enforcement for lint and tsconfig config, testing for test strategy, the vendored effect skill for programs written in Effect.
- ▌ C4 Diagrams · connorads bundleC4 architecture diagrams - System Context, Container, Component, Code, plus Dynamic and Deployment views (Simon Brown's C4 model). Use whenever the user wants to draw, update, or review an architecture diagram, model or visualise a system's structure, reverse-engineer C4 from an existing codebase or repo, write or edit a Structurizr DSL workspace (workspace.dsl), or produce a Mermaid / PlantUML / D2 architecture diagram - even when they don't say "C4" (e.g. "diagram how this service fits together", "draw the containers for this repo").
- ▌ Granted AWS · connoradsSets up and uses AWS credentials through granted.dev's `assume`. Use when configuring AWS CLI or console access with granted, adding IAM-user access keys to the OS keychain, running `granted sso populate` for Identity Center, choosing between the IAM-user and SSO flows, opening the AWS console in a specific browser profile, or debugging `assume` / `granted credentials add` errors like "no such file or directory" on ~/.aws/config or "region not set on profile". Not for plain aws-cli profile config unrelated to granted.
- ▌ Holistic UX · connorads bundleProduces evidence-led UX decisions from research and behaviour data. Use to diagnose user-facing drop-off, confusion, trust or recovery, synthesise UX research, or create a new analytical UX artefact before a solution is chosen. Supports experience-over-time maps, frontstage and backstage service maps, task decision and recovery maps, principle reviews and low-fidelity wireframes. The task must contain an unresolved experience question.
- ▌ Refactoring · connorads bundleRefactor and restructure existing code safely without stopping delivery. Use when inheriting a legacy, untested, or vibe-coded/AI-generated codebase, deciding where to start on a ball of mud, planning an incremental migration to a new architecture, ORM, framework, or provider, replacing a dependency without a feature freeze, making zero-downtime database schema changes, escaping a long-lived rewrite branch, or paying down technical debt. Owns the migration path and its sequencing; the architecture skill owns the target shape, the testing skill owns test design.
- ▌ Architecture · connorads bundleDesign the target structure of software: clear boundaries, typed domain models, and testable flows. Use for substantial design work, hard-to-test code, domain modelling, module organisation, API and endpoint contract design, ports/adapters, functional core / imperative shell, explicit error handling, observability, or when code structure is fighting the change. Defines the target shape; the refactoring skill owns the migration path that moves existing code there safely.
- ▌ Accessibility · connorads bundleAudit, implement, and fix web accessibility with a screen-reader-first lens. Use when building or reviewing UI components, forms, dialogs, navigation, dynamic content, or any interactive element. Covers WCAG 2.2 AA compliance, ARIA patterns, keyboard navigation, focus management, and assistive technology compatibility (NVDA, JAWS, VoiceOver). Trigger on: "accessible", "a11y", "screen reader", "WCAG", "ARIA", or when adding any interactive UI.
- ▌ Browser Video · connorads bundleRecords demo and verification videos of web pages using playwright-cli's screencast, and checks the result by inspecting extracted frames. Use when asked to record a video, screen recording, demo, or walkthrough of a web app or page; to show a flow working end to end; or to capture visual proof that a UI change behaves correctly. Not for making a thumbnail from an existing video (video-thumbnails), or for terminal recordings (terminal-control, terminal-fabricate).
- ▌ Test Coverage · connorads bundleSystematically audit, improve, and enforce test coverage, and gate test quality in CI - across any ecosystem (TypeScript, Python, Go, Rust). Use to raise coverage, set thresholds, audit gaps, manage exclusions, merge reports, wire coverage into CI/hooks, or add mutation testing and fuzzing as quality gates. Composes with the hk skill for pre-commit enforcement. For how to design and write good tests - property-based, snapshot/approval, differential, contract, flaky-test handling - use the testing skill.
- ▌ Design Forking · connorads bundleForks a design decision into genuinely different alternatives before committing - divergent thinking for software design. Use when facing an architecture or design decision, weighing approaches, or planning a non-trivial refactor; when the user asks for options, alternatives or trade-offs; when about to implement the first approach that came to mind for anything hard to reverse; or when reviewing a plan that considered only one design. This skill widens and compares the option set; committing to the winner as a calibrated bet with a pre-agreed exit is deciding-under-uncertainty's job.
- ▌ Writing Skills · connorads bundleGuides creating, editing, reviewing, and debugging Agent Skills and SKILL.md directories. Use when writing a new skill, improving or reviewing an existing skill, fixing a skill description or frontmatter, structuring references, scripts, assets or evals, packaging a skill, or diagnosing a skill that does not trigger or does not change agent behaviour. Covers portable Agent Skills spec, progressive disclosure, eval design, and client compatibility notes. Not for using an existing skill to perform its domain task.
- ▌ Bootstrap Project · connorads bundleBootstrap or harden a project into a verified repository with official scaffolders and house conventions. Use for a new app, service, library or CLI; requests to scaffold, spin up or start a repo; and requests to bring an existing repository up to house standard. Also use in advisory mode when the user asks for a bootstrap plan or prompt. Do not use for feature work, deployment-only work, architecture selection before a stack is chosen, or an isolated lint, test or hook change in an established project.
- ▌ Product Discovery · connorads bundleDecide what to build before committing to a named solution: reframe outputs as measurable behaviour-change outcomes, map alternative opportunities, and find the cheapest test of the riskiest assumption. Use when a feature request names a solution with no stated outcome, when prioritising or choosing what to build next - "what should I build", "roadmap", "which of these ideas", "is this feature worth building" - or before writing a PRD for a product-facing feature. Sits upstream of PRD/spec writing, which specs a committed feature; for journey maps, wireframes, or service blueprints use holistic-ux; for forking software-design alternatives use design-forking.
- ▌ Raycast Extensions · connorads bundleBuild, maintain, and review Raycast extensions (the @raycast/api / TypeScript apps published to github.com/raycast/extensions). Use whenever the user mentions a Raycast extension, command, or tool; the @raycast/api or @raycast/utils packages; List/Detail/Form/ActionPanel/MenuBarExtra UI; useCachedPromise/useFetch/useForm hooks; getPreferenceValues; the ray CLI (ray develop/build/lint/evals); an AI extension or AI tools; preparing/publishing an extension to the Raycast Store; or reviewing an existing extension against store guidelines. Also use for "scaffold a Raycast command", "my Raycast extension errors", "fix the manifest", "add a preference", "add an OAuth login", or porting a CLI/app idea to Raycast - even if they don't say "@raycast/api" explicitly.
- ▌ Reverse Engineering · connorads bundlePerforms static-first reverse engineering and binary decompilation without launching the target. Use when the user asks to inspect, decompile, triage, recover symbols/types/strings, identify endpoints/models/dependencies, explain executable behaviour, or recover implementation patterns from an unknown, stripped, packed, or obfuscated binary, CLI, DMG, macOS app bundle, Mach-O, ELF, PE, WASM, firmware image, Go binary, Android APK/XAPK/AAB, or packaged JavaScript/TypeScript executable. Also use for jadx, apktool, Ghidra, IDA, Binary Ninja, radare2, strings, xrefs, Swift/Objective-C metadata, Bun compile, Node SEA, pkg/nexe, and Deno compile analysis. Not for source-only code review or ordinary archive extraction where executable behaviour is irrelevant.
- ▌ Prd · connorads bundleCreate Product Requirements Documents (PRDs) that define the end state of a feature through iterative design interview. Use when asked to "write a PRD", "spec this feature", write a requirements doc or RFC, or when planning new features, migrations, or refactors that need a reviewable spec. Generates structured PRDs with acceptance criteria, testing strategy, and architectural decisions.
- ▌ Living Documentation · connorads bundleWrites durable, trustworthy documentation that does not rot - for AI agents (AGENTS.md/CLAUDE.md, skills) and humans (ADRs, READMEs, knowledge bases). Distilled from Cyrille Martraire's "Living Documentation". Use when authoring or reviewing an AGENTS.md/CLAUDE.md, writing a skill, writing an ADR or doc, deciding whether something is worth documenting, or when docs keep going stale. Triggers: "living documentation", "is this doc trustworthy", "should this be documented", "why does this doc keep going stale", "doc rot", "documenting a legacy or inherited codebase", "rescuing a codebase nobody understands".
- ▌ Tmux · connorads bundleControl interactive CLIs and TUIs via tmux - safely target panes, send keystrokes, scrape output, and operate modal prompts with observe-before-commit guardrails. Use when a command needs a real PTY (REPLs like python/psql, debuggers like gdb/lldb), when an installer or wizard presents modal prompts or menus, when a long-running interactive command must be watched without blocking, when something asks for confirmation or a permission prompt mid-run, or when a tool has no non-interactive flag and the only path is driving its TUI. For observing or prompting coding-agent panes, use the coding-agents skill.
- ▌ Logging Best Practices · connorads bundleDesign, review, or refactor logging for a service so it works as an observability primitive - the canonical wide-event / structured-log pattern. Use when the user is setting up logging for a new service, adding or auditing middleware, building a logger config (structlog, pino, winston), enabling Cloudflare Workers observability or Analytics Engine, instrumenting OpenTelemetry logs, planning sampling strategy, proposing logging schema changes, or saying things like "our logs are noisy", "we can't find anything in the logs", "improve our logging", or "add proper logging". Do NOT trigger for single casual `console.log`/`print`/`logger.info` additions during unrelated work.
- ▌ Mechanical Enforcement · connorads bundleCatalogue of preferred linter rules, TypeScript flags, clippy thresholds, import-boundary checks, contract-compat gates, and architecture tests for making bug classes and design drift mechanically impossible. Use when setting up linting in a new project, hardening an existing project, responding to a class of bug by encoding a rule, or deciding which linter to reach for on a given stack. Pairs with the `hk` skill which handles wiring hooks.
- ▌ Supply Chain Hardening · connorads bundleHarden software supply chains across ecosystems (npm/pnpm/bun/yarn/aube, uv/pip, Cargo, GitHub Actions/aqua) by reasoning about what installing or importing a dependency actually executes, then choosing controls: release-age quarantine gates, install-script and load-time trigger removal, lockfile pinning and checksums, provenance/SLSA verification, and osv-scanner malware detection. Use when hardening a project or machine/global config (new or incremental); when converting age-gate settings/units between package managers; when a gate fires mid-task - a blocked install or build script, an age-gate or provenance refusal, a slopsquatted or unfamiliar package - and you must decide whether to allowlist; when adding a dependency you have not vetted; or when auditing a suspected compromised package. For linter rules, gitleaks, and zizmor use the mechanical-enforcement skill; for wiring checks into git hooks use the hk skill; for code-level vulnerability review of your own code use security-review.
- ▌ Summon · connorads bundleChannel the mental models, decision frameworks, and communication style of real experts (Steve Jobs, DHH, Rich Hickey, etc.) to approach problems the way they would. Use when the user says "summon", "channel", "what would [name] think", "ask [name]", or wants an expert perspective on a problem.
- ▌ Homebrew Cask Authoring · connorads bundleCreate, update, validate, and submit Homebrew Casks (macOS and Linux/AppImage). Use when the user mentions Homebrew cask/cask, Homebrew/homebrew-cask, adding a new cask, updating a cask, cask token naming, sha256, url verified:, livecheck, zap/uninstall, AppImage/app_image, on_linux/on_macos, cross-platform cask, or when asked to run brew style/audit for a cask.