{
  "$schema": "https://schemas.agentskills.io/discovery/0.2.0/schema.json",
  "skills": [
    {
      "name": "add-bot-command",
      "type": "archive",
      "description": "Add a python-telegram-bot command with logic in a testable plain function, validated arguments, escaped output and a unit test. Use when adding or changing a bot command.",
      "url": "https://setupbay.com/.well-known/agent-skills/add-bot-command.zip",
      "digest": "sha256:01128f1e296286ba7fa286692212a1677f6defe2e2e8b1396b30615584227623"
    },
    {
      "name": "add-ci-agent-job",
      "type": "archive",
      "description": "Add a GitHub Actions job that runs Claude Code or Codex headless with least privilege, a budget and pinned versions. Use when asked to automate review, triage, docs updates or other agent work in CI.",
      "url": "https://setupbay.com/.well-known/agent-skills/add-ci-agent-job.zip",
      "digest": "sha256:5eb799dd730d2b4016a6a2aa6522b3a0479b25e5f4368d5ce5890f3865b30ab8"
    },
    {
      "name": "add-endpoint",
      "type": "archive",
      "description": "Add a FastAPI endpoint with typed request and response models, an Annotated dependency and tests for success and failure. Use when adding or changing a route.",
      "url": "https://setupbay.com/.well-known/agent-skills/add-endpoint.zip",
      "digest": "sha256:4669a1cac4912bcaed9a0dd1e9fffc828acd3497627a2c494632cfc42ce7da06"
    },
    {
      "name": "add-mcp-tool",
      "type": "skill-md",
      "description": "Design, implement and test a new tool on a TypeScript MCP server. Use when the user asks to add a capability, endpoint or action to their MCP server.",
      "url": "https://setupbay.com/.well-known/agent-skills/add-mcp-tool/SKILL.md",
      "digest": "sha256:9f5ac7b493c61761392da15cd24c140f8300b1a3ee7340832a45f9cfaea9426b"
    },
    {
      "name": "add-slash-command",
      "type": "skill-md",
      "description": "Add a new slash command to a discord.js v14 bot, register it and document it. Use when the user asks for a new bot command, e.g. \"add a /poll command\".",
      "url": "https://setupbay.com/.well-known/agent-skills/add-slash-command/SKILL.md",
      "digest": "sha256:dfb886f7314d3210319f0ceab3efca14e92ce2c3b585827e5864a9b2719667b4"
    },
    {
      "name": "agents-md-writer",
      "type": "archive",
      "description": "Write or fix a repository's AGENTS.md from worked examples, then lint it against what Codex, Claude Code and the others actually load. Use when creating an AGENTS.md, when agents ignore or misread it, when adding a nested AGENTS.md in a monorepo, or when asked for AGENTS.md examples.",
      "url": "https://setupbay.com/.well-known/agent-skills/agents-md-writer.zip",
      "digest": "sha256:e395185e56952ce039b2315e2526a5fb7b4291833aeccc05ce7c83c11748fb41"
    },
    {
      "name": "async-sqlalchemy-resource",
      "type": "archive",
      "description": "Add a database-backed resource to a FastAPI app on async SQLAlchemy 2.1 (model, Alembic migration, router and async tests) without lazy-load errors or N+1 queries. Use when adding or changing tables, relationships or endpoints that read or write the database.",
      "url": "https://setupbay.com/.well-known/agent-skills/async-sqlalchemy-resource.zip",
      "digest": "sha256:dda6aa34a7b0aacc44b178286bf3823d2dc1b2fb76afd3114d3c387c7b7d7417"
    },
    {
      "name": "audit-agent-config",
      "type": "archive",
      "description": "Check that every coding agent in this repo actually loads the shared AGENTS.md, skills and MCP config, and find duplicated or shadowed rules. Use after changing agent config or when an agent ignores a rule.",
      "url": "https://setupbay.com/.well-known/agent-skills/audit-agent-config.zip",
      "digest": "sha256:79bb9a8cfe39edaaa2f2ab2a94301824d56e5867a19b971b0ff65785d2d0cb04"
    },
    {
      "name": "audit-agent-hooks",
      "type": "archive",
      "description": "List and check every hook and settings command Claude Code, Codex or Cursor will run in a project, and flag guards that fail open, missing scripts, wrong exit codes, network calls and settings that redirect API traffic. Use before trusting a cloned repo, after adding or changing hooks, or when a hook seems not to fire.",
      "url": "https://setupbay.com/.well-known/agent-skills/audit-agent-hooks.zip",
      "digest": "sha256:a9fe4ca7f455d523fa5e1d43773c59bcb147fed090aead28e41d36378d41077d"
    },
    {
      "name": "blender-to-godot",
      "type": "archive",
      "description": "Model or adjust an asset in Blender through MCP, export it as glTF and bring it into a Godot 4 scene, then check it in the running game. Use when creating or updating a 3D asset for the Godot project.",
      "url": "https://setupbay.com/.well-known/agent-skills/blender-to-godot.zip",
      "digest": "sha256:9c8559147acfc657021977d834cd7d891ab1214fce87cdf6fae0fc70ba245dcf"
    },
    {
      "name": "build-agent-plugin",
      "type": "archive",
      "description": "Author one plugin that installs in both Claude Code and Antigravity from a single source tree (skills, subagents, MCP servers), build both layouts, and validate them before anyone installs. Use when creating, changing, versioning or publishing a Claude Code or Antigravity plugin or a plugin marketplace.",
      "url": "https://setupbay.com/.well-known/agent-skills/build-agent-plugin.zip",
      "digest": "sha256:45322d00752a2698e756a5af419d9fd663d0c032abe18ad08ec40f86e19d9263"
    },
    {
      "name": "check-start-folder",
      "type": "archive",
      "description": "Check a folder before a coding agent works in it. Flags Downloads, Desktop, temp and home folders, lists every AGENTS.md, CLAUDE.md, rule, skill and agent config the agent will read there, and flags files that install packages, change agent config, redirect API traffic or ask the agent to keep quiet. Use at the start of work in a cloned, downloaded or unfamiliar folder, or when an instruction file asks for setup steps.",
      "url": "https://setupbay.com/.well-known/agent-skills/check-start-folder.zip",
      "digest": "sha256:bf6c429e82e9b6dc41710ab15cf0a400b12400ab0d4644e1fbdc34347c765a29"
    },
    {
      "name": "cloudflare-agent",
      "type": "archive",
      "description": "Build or change a stateful agent on Cloudflare with the Agents SDK (the agents npm package) - an Agent class on a Durable Object with SQL, state sync, schedules and @callable methods - and check its wrangler wiring before deploy. Use when the project imports from \"agents\", or the user wants a long-lived, per-user or scheduled agent on Workers.",
      "url": "https://setupbay.com/.well-known/agent-skills/cloudflare-agent.zip",
      "digest": "sha256:11dc76400fec636d3f844939dad6987796cd4d43ee8166ea38f500b7bf8ef324"
    },
    {
      "name": "cloudflare-pages-deploy",
      "type": "skill-md",
      "description": "Deploy a static site (Astro, Vite or plain HTML) to Cloudflare Pages, with headers, redirects and a custom domain. Use when the user asks to deploy, host or publish a static site on Cloudflare.",
      "url": "https://setupbay.com/.well-known/agent-skills/cloudflare-pages-deploy/SKILL.md",
      "digest": "sha256:5c413b221b98245a5868dce9e97501f56ebb9fb313fcfaa4c39ea092dd2f90a3"
    },
    {
      "name": "cross-model-review",
      "type": "archive",
      "description": "Ask a second agent (Codex from Claude Code, or Claude Code from Codex) for a read-only review of the current diff, then verify and act on its findings. Use before reporting a non-trivial change as done.",
      "url": "https://setupbay.com/.well-known/agent-skills/cross-model-review.zip",
      "digest": "sha256:765c632c41e97c82773b6f0c85543043b5c0ee98caa3b1d488e9f9fb5f9c3288"
    },
    {
      "name": "cursor-guard-hooks",
      "type": "archive",
      "description": "Install, change or check this project's fail-closed Cursor hooks (.cursor/hooks.json with one Python guard for shell commands, file reads and MCP tools), then prove each decision with a self-test. Use when asked to add Cursor hooks, block a command, keep secrets out of the agent's context, restrict MCP servers, or when a hook doesn't fire or lets something through.",
      "url": "https://setupbay.com/.well-known/agent-skills/cursor-guard-hooks.zip",
      "digest": "sha256:3778367497daef1452cc950ab551b257edf1cb40abdc9dc3d282c4c7661baf42"
    },
    {
      "name": "data-sanity-check",
      "type": "skill-md",
      "description": "Profile a dataset (CSV, Excel, Parquet, JSON) and flag quality problems before analysis. Use when the user shares a data file, asks \"is this data OK?\", or before producing figures someone will rely on.",
      "url": "https://setupbay.com/.well-known/agent-skills/data-sanity-check/SKILL.md",
      "digest": "sha256:ce324dd85d6bd7a72c88ef9ac7b566327e807e4ac742e58b98d64512e973b1cd"
    },
    {
      "name": "database-change",
      "type": "archive",
      "description": "Plan, write and test a Supabase Postgres schema change as a reviewed migration, using the read-only MCP server to inspect the current schema. Use for any table, column, index, policy or function change.",
      "url": "https://setupbay.com/.well-known/agent-skills/database-change.zip",
      "digest": "sha256:15749ccf6d7c324124cd945c19a09b8bd1300c1cba07d81c8aa3e1a76c0ba221"
    },
    {
      "name": "delegate-task",
      "type": "archive",
      "description": "Write a complete brief and pick model and effort before spawning a subagent. Use whenever you are about to delegate work to a subagent or a parallel agent.",
      "url": "https://setupbay.com/.well-known/agent-skills/delegate-task.zip",
      "digest": "sha256:1c0fddc9eb2689cc58371674e6d919b13aeb335ac975ff5bf8f10d2052e467d9"
    },
    {
      "name": "discord-py-command",
      "type": "archive",
      "description": "Add a slash command to a discord.py 2 bot as a cog, with described and range-limited options, a cooldown, an error handler and offline tests of the logic and the command payload.",
      "url": "https://setupbay.com/.well-known/agent-skills/discord-py-command.zip",
      "digest": "sha256:470e96b2671bf172d165984fdb57f0faa3706871317ac4b925d93087fb2cad98"
    },
    {
      "name": "django-6-guard",
      "type": "archive",
      "description": "Check a Django project for APIs removed between Django 4.0 and 6.1, run django-upgrade and Django's own checks, before saying a Django change is done. Use after writing or editing models, views, URLs, settings or templates, when Django raises an unexpected keyword or missing attribute error, or when porting older Django snippets or tutorials.",
      "url": "https://setupbay.com/.well-known/agent-skills/django-6-guard.zip",
      "digest": "sha256:2bedb9b90d80c1f852b7bb9b51935fd0c64d2e11630d94dd50ae4538d0ec0135"
    },
    {
      "name": "docs-check",
      "type": "archive",
      "description": "Check Markdown docs before calling a docs change done - markdownlint-cli2 for style, and an offline check that relative links, images and",
      "url": "https://setupbay.com/.well-known/agent-skills/docs-check.zip",
      "digest": "sha256:36e83aa8424aec25e78ae9b1078cbce4f9cb49044266b05792a59b2de5373e08"
    },
    {
      "name": "done-proof",
      "type": "archive",
      "description": "Prove a coding task is done before saying so, with evidence the feature works and proof the tests were not weakened. Use before reporting any task as done, fixed or complete, when tests fail and it is tempting to change them, or when the user asks for proof.",
      "url": "https://setupbay.com/.well-known/agent-skills/done-proof.zip",
      "digest": "sha256:9c7ffc5ccb8548571440f4a193898fe6e8587d0b5a9a4ed0bf0aa6c07aba5ce5"
    },
    {
      "name": "drf-endpoint",
      "type": "archive",
      "description": "Add a Django REST Framework endpoint with an explicit serializer, a user-scoped queryset, server-set ownership, pagination and the six tests every endpoint needs.",
      "url": "https://setupbay.com/.well-known/agent-skills/drf-endpoint.zip",
      "digest": "sha256:59cbefa92e20ea500bdf75d6f2115de3bb1ed04fc0e777dad641a99c39cbe3e7"
    },
    {
      "name": "eas-maestro-e2e",
      "type": "archive",
      "description": "Set up or change Maestro end-to-end tests on EAS Workflows for an Expo app - fingerprint, get-build, repack or build, then the maestro job - and check the workflow, build profile and flows before anything spends build minutes. Use for any work on .eas/workflows, the e2e build profile or maestro/ flows.",
      "url": "https://setupbay.com/.well-known/agent-skills/eas-maestro-e2e.zip",
      "digest": "sha256:4748082874906873f3976bd7860f53cda9ec4a5b094e84b1cf96e38c9f19423d"
    },
    {
      "name": "eas-update-release",
      "type": "archive",
      "description": "Decide whether an Expo change can ship as an EAS Update or needs a new store build, check the update config, and prepare a staged rollout. Use before publishing with eas update, after adding or upgrading a package, or when editing app.json, app.config or eas.json.",
      "url": "https://setupbay.com/.well-known/agent-skills/eas-update-release.zip",
      "digest": "sha256:827b35609d21bf6a2a6b037a9dba6bc0effc06d2f4bbf73a0ea21f02c67fa454"
    },
    {
      "name": "electron-e2e-test",
      "type": "archive",
      "description": "Write and run Playwright end-to-end tests that drive the real Electron app - main process, preload and renderer together - including security assertions on webPreferences, the preload API, IPC validation and blocked navigation. Use when adding a feature that crosses IPC, changing window or preload settings, or setting up Electron tests in CI.",
      "url": "https://setupbay.com/.well-known/agent-skills/electron-e2e-test.zip",
      "digest": "sha256:cb0e6aab7d0161cfd4d080b8fbbb9dc04bf5e0fe9006c6c037810b7332c8096d"
    },
    {
      "name": "electron-ipc-channel",
      "type": "archive",
      "description": "Add a typed IPC channel between an Electron renderer and the main process, with a narrow preload API, sender validation and argument checks, then run the security check.",
      "url": "https://setupbay.com/.well-known/agent-skills/electron-ipc-channel.zip",
      "digest": "sha256:c17f72fee59b876457ed32367934d2741ad42b22bcb49a3aee5bf2bcb485fe46"
    },
    {
      "name": "error-analysis",
      "type": "archive",
      "description": "Read real traces, note what went wrong in each, group notes into failure categories and count them. Use before writing any eval, after a model or prompt change, or when users report bad answers.",
      "url": "https://setupbay.com/.well-known/agent-skills/error-analysis.zip",
      "digest": "sha256:e94a62ac7ff9d9bef7f6002a9b0f1759b4dc0b1411a9e4b5beff477e38e3ea76"
    },
    {
      "name": "expo-change",
      "type": "skill-md",
      "description": "Make a feature or fix in an Expo app with SDK-matched packages, Expo Router conventions, a check on a simulator or device and no production releases. Use for any change to an Expo / React Native app.",
      "url": "https://setupbay.com/.well-known/agent-skills/expo-change/SKILL.md",
      "digest": "sha256:18b8dfa239f2cca83a7e72d131c89ec9a764d05a3623690200c05bcd010b6074"
    },
    {
      "name": "extension-e2e",
      "type": "archive",
      "description": "Prove a Manifest V3 Chrome extension works by loading the built package in Playwright's bundled Chromium - service worker, popup, messaging and storage - and checking the manifest and package rules. Use after any change to the manifest, service worker, popup or messages, and before store submission.",
      "url": "https://setupbay.com/.well-known/agent-skills/extension-e2e.zip",
      "digest": "sha256:26a7011ca9ce9c85777ffe9f6bff2f29fd7fe8369267d674cc8a0edd00b32541"
    },
    {
      "name": "extension-store-prep",
      "type": "skill-md",
      "description": "Prepare a Manifest V3 Chrome extension for Chrome Web Store submission. Use when the user wants to publish, submit, package or release their extension.",
      "url": "https://setupbay.com/.well-known/agent-skills/extension-store-prep/SKILL.md",
      "digest": "sha256:8967520cb4fb5cbbe1f18e4f8f695746227dbe35457af51b21d311c38591d6fe"
    },
    {
      "name": "failure-to-eval",
      "type": "archive",
      "description": "Turn a failure category or a production bug into regression eval cases with code checks, and a model judge only when needed. Use after error analysis, or when a bad output is reported.",
      "url": "https://setupbay.com/.well-known/agent-skills/failure-to-eval.zip",
      "digest": "sha256:67be262fb395371811416ca6a4a02dc46638247af395c665e1c8e74b205f94f3"
    },
    {
      "name": "go-http-handler",
      "type": "archive",
      "description": "Add a Go net/http handler with 1.22+ routing, a size-limited JSON body, wrapped errors mapped to status codes and table-driven httptest tests. Use when adding or changing an HTTP endpoint.",
      "url": "https://setupbay.com/.well-known/agent-skills/go-http-handler.zip",
      "digest": "sha256:fced8814251214f43ad7118673505c3db08a9b62b99861b7583f0c37388e3b6b"
    },
    {
      "name": "go-mcp-tool",
      "type": "archive",
      "description": "Add a tool to a Go MCP server built on the official go-sdk, with typed input and output, input validation, tool errors and an in-memory client test.",
      "url": "https://setupbay.com/.well-known/agent-skills/go-mcp-tool.zip",
      "digest": "sha256:c7196f9862e5f835c30f8bf462540c1cabdbb9f90529b9b87017544c0a8281dd"
    },
    {
      "name": "godot-4-guard",
      "type": "archive",
      "description": "Check GDScript for Godot 3 syntax and renamed APIs before saying a Godot 4 change is done. Use after writing or editing any .gd file, when Godot reports a parse error, or when porting Godot 3 code, tutorials or snippets into a Godot 4 project.",
      "url": "https://setupbay.com/.well-known/agent-skills/godot-4-guard.zip",
      "digest": "sha256:61f2ef0d5fc01bb07ad042db856d4815a3b708dbbc9677efc55dc4ba4779d7ad"
    },
    {
      "name": "godot-headless-tests",
      "type": "archive",
      "description": "Set up and run GDScript tests for a Godot 4 project in headless mode, with a SceneTree runner that fails on script errors and exits non-zero. Use when adding a test, changing game rules, or before saying a Godot change is done.",
      "url": "https://setupbay.com/.well-known/agent-skills/godot-headless-tests.zip",
      "digest": "sha256:1ed406edea0f55a7c84d10b071658ae3950f2083db27017dafd57a7f020b99f2"
    },
    {
      "name": "godot-jam-ship",
      "type": "skill-md",
      "description": "Export a Godot 4 project to the web and publish it to itch.io. Use when the user wants to build, export, upload, publish or submit their game jam entry.",
      "url": "https://setupbay.com/.well-known/agent-skills/godot-jam-ship/SKILL.md",
      "digest": "sha256:d403429df0ccea9a1b57afe61c387eb5beafca26fc50d7630dd616d124410ed0"
    },
    {
      "name": "grammy-worker-bot",
      "type": "archive",
      "description": "Build or change a Telegram bot that runs on Cloudflare Workers with grammY 1.46, including the webhook secret, bot info, error boundary, tests with a fake Bot API, and setting the webhook after a deploy. Use for any command, handler, config or webhook work on a grammY Worker bot.",
      "url": "https://setupbay.com/.well-known/agent-skills/grammy-worker-bot.zip",
      "digest": "sha256:16c674d287109bc82ba9eeb2f660f6e6dee367dd107c3c043dce4fc3d4797419"
    },
    {
      "name": "harden-workflow",
      "type": "archive",
      "description": "Audit and fix GitHub Actions workflows with zizmor before they are committed. Pins actions to commit SHAs, narrows permissions, removes template injection and unsafe triggers. Use for any change under .github/workflows.",
      "url": "https://setupbay.com/.well-known/agent-skills/harden-workflow.zip",
      "digest": "sha256:61ec296c852aca8899b722d4b8e7176088c9b11ec1d927e62271c2f49ddd141e"
    },
    {
      "name": "implement-spec",
      "type": "skill-md",
      "description": "Build an approved SPEC.md ticket by ticket with tests for each acceptance criterion, in parallel where tickets are independent, then review against the spec. Use after a spec has been approved.",
      "url": "https://setupbay.com/.well-known/agent-skills/implement-spec/SKILL.md",
      "digest": "sha256:35989a93687070a2e0c6ae896a6040d0e21c85a0896815871f7a51310aa8d163"
    },
    {
      "name": "install-guard-hooks",
      "type": "archive",
      "description": "Install, update or test the project's guard-rail hooks for Claude Code (with notes for Codex and Cursor). Use when asked to add hooks, block dangerous commands, run tests before finishing, or when a hook misbehaves.",
      "url": "https://setupbay.com/.well-known/agent-skills/install-guard-hooks.zip",
      "digest": "sha256:1fb1579b5481bf62defe8c68ff6e85cc9cc3a459070dc83f21b504177ad4c411"
    },
    {
      "name": "ios-build-loop",
      "type": "skill-md",
      "description": "Build, test, run and look at an iOS or macOS change through MobileBuildMCP, then fix what the build log or the screen shows. Use for every change to a Swift app.",
      "url": "https://setupbay.com/.well-known/agent-skills/ios-build-loop/SKILL.md",
      "digest": "sha256:6dbb7cb3257209ce52be3d0b37e6b330a2673feb49f84d53a4223570038f8f4e"
    },
    {
      "name": "land-worktree",
      "type": "skill-md",
      "description": "Rebase a finished worktree branch, run checks, open a pull request and clean up after merge. Use when a task in a worktree is done.",
      "url": "https://setupbay.com/.well-known/agent-skills/land-worktree/SKILL.md",
      "digest": "sha256:0e8221e4c3abaa9ce6dfc90fd356d9bb9173297a0db67260b10d31638e892097"
    },
    {
      "name": "launch-check",
      "type": "archive",
      "description": "Pre-launch security and readiness audit for web apps. Use when the user says they are about to launch, deploy, go live, share the link, or asks \"is my app safe?\".",
      "url": "https://setupbay.com/.well-known/agent-skills/launch-check.zip",
      "digest": "sha256:ac066b5891b98e670ee22af0fdca8ed3c0abe9d9057f0b0788333e74cb07cb1b"
    },
    {
      "name": "live-notebook",
      "type": "archive",
      "description": "Explore data, fix or extend a Jupyter notebook through the Jupyter MCP server (jupyter-mcp-server) on a JupyterLab the human started, keeping kernel state honest and proving the notebook reruns from a fresh kernel. Use when the user asks to work in a notebook, analyse data in JupyterLab, or a notebook breaks on Restart & Run All.",
      "url": "https://setupbay.com/.well-known/agent-skills/live-notebook.zip",
      "digest": "sha256:aa6834ec4ac92d86b747c458f68e19f8bc3f1ecb90635217716a17b999f3db59"
    },
    {
      "name": "luau-pure-tests",
      "type": "archive",
      "description": "Keep a Roblox game's rules in pure Luau modules and run their tests outside Studio with the luau CLI, checking purity with a scanner and types with luau-analyze in strict mode. Use when writing or changing game logic (prices, inventory, damage, cooldowns), when asked to add tests to a Roblox project, or when a module can't run in a test because it calls Roblox APIs.",
      "url": "https://setupbay.com/.well-known/agent-skills/luau-pure-tests.zip",
      "digest": "sha256:be39c7f19d264c02836bbc262193461e6b2e861010e2a1a385025bdd40b305f7"
    },
    {
      "name": "maestro-flows",
      "type": "archive",
      "description": "Write, run and debug Maestro UI flows for iOS and Android apps (React Native, Flutter, native) with the Maestro MCP server and CLI, and lint flows before they hit a device. Use when the user wants an end-to-end or smoke test of a mobile app, a flow in .maestro/ fails, or a screen needs checking after a change.",
      "url": "https://setupbay.com/.well-known/agent-skills/maestro-flows.zip",
      "digest": "sha256:07cc29bd22317cbd6b9b4fa1b1d9a19c53cdcd0a1e613be8f5a7812dcce1a66d"
    },
    {
      "name": "mcp-2026-migration",
      "type": "archive",
      "description": "Move an MCP server to protocol revision 2026-07-28 (stateless requests, server/discover, input_required) on the official TypeScript, Python or Go SDK, then prove it with a raw stdio probe. Use when upgrading an MCP SDK, removing sessions or initialize handling, or when a 2026 client cannot talk to the server.",
      "url": "https://setupbay.com/.well-known/agent-skills/mcp-2026-migration.zip",
      "digest": "sha256:b724162d1f69bd6b6ce7c5c20bd12977192654b2c5a3ea7b039524e0c03312be"
    },
    {
      "name": "mv3-worker-guard",
      "type": "archive",
      "description": "Check a Chrome extension's Manifest V3 service worker and scripts for MV2 APIs (browserAction, tabs.executeScript, getBackgroundPage, blocking webRequest) and for code that breaks when Chrome stops the worker (globals as state, long timers, nested listeners, DOM and localStorage), then prove state survives a worker restart. Use after writing or editing extension background code, when a feature works at first and then stops, or when porting an MV2 extension.",
      "url": "https://setupbay.com/.well-known/agent-skills/mv3-worker-guard.zip",
      "digest": "sha256:33db12486f173bd6f61eedf7a20b2f78df2ad00d7017a9b5f5f159b1233d765a"
    },
    {
      "name": "next-version-docs",
      "type": "archive",
      "description": "Work on a Next.js 16 app from the docs bundled with its installed version and the dev server's MCP tools, not from memory. Use before writing or changing Next.js code (routing, caching, proxy, Server Actions, config), when a Next.js API seems to be missing or renamed, or when upgrading Next.js.",
      "url": "https://setupbay.com/.well-known/agent-skills/next-version-docs.zip",
      "digest": "sha256:dcec42e9486a5f4c643d9592275ee2369c28bb8bdff2a11ad147fc1f13cccd55"
    },
    {
      "name": "night-shift",
      "type": "archive",
      "description": "Queue coding tasks to run unattended overnight, each in its own git worktree with a dollar cap and a finish-line check, then read the morning report. Use when the user wants agents to work while they sleep, run a batch of tasks unattended, or asks what the overnight run did.",
      "url": "https://setupbay.com/.well-known/agent-skills/night-shift.zip",
      "digest": "sha256:3e04204643c784875d88915d5d01211a387a0ab4ccf0e34e910a06a1cf5e4500"
    },
    {
      "name": "notebook-change",
      "type": "archive",
      "description": "Change or add a Jupyter notebook through its Jupytext-paired .py file, check the data first, run it top to bottom in a fresh kernel and keep outputs out of git. Use for any notebook work.",
      "url": "https://setupbay.com/.well-known/agent-skills/notebook-change.zip",
      "digest": "sha256:de6a16a46a9ca36a09b14d9229e3ee59d9ff20581f67447e4ccc05476a1ae481"
    },
    {
      "name": "open-pull-request",
      "type": "archive",
      "description": "Prepare and open a reviewable pull request with gh, including a leak check, a structured body and screenshots for UI changes. Use when work on a branch is ready for review.",
      "url": "https://setupbay.com/.well-known/agent-skills/open-pull-request.zip",
      "digest": "sha256:d18321ada35a8df8675bef53c5ccc383857dd5e935c725308a39dc1b6e2c588f"
    },
    {
      "name": "pandas-3-guard",
      "type": "archive",
      "description": "Check Python for pandas APIs removed in 3.0, chained assignment that copy-on-write ignores, and object-dtype string checks, before saying a pandas change is done. Use after writing or editing pandas code, when pandas raises an unexpected keyword or attribute error, warns ChainedAssignmentError, or when porting older pandas snippets.",
      "url": "https://setupbay.com/.well-known/agent-skills/pandas-3-guard.zip",
      "digest": "sha256:2aef62a3b05f80dec2cab0ee75a0b951f7c4e85a3ec493d488c26506f42cc549"
    },
    {
      "name": "phaser-4-guard",
      "type": "archive",
      "description": "Check a Phaser 4 game for Phaser 3 APIs (pipelines, preFX/postFX, BitmapMask, setTintFill, Geom.Point, Math.PI2) and silent changes such as Math.TAU and buffered RenderTexture drawing, then type-check against Phaser 4's own types. Use after writing or editing Phaser scenes, when tsc says a Phaser property doesn't exist, or when porting a Phaser 3 tutorial.",
      "url": "https://setupbay.com/.well-known/agent-skills/phaser-4-guard.zip",
      "digest": "sha256:8ae9fbf57fc98ff17d79025e9b3ac8248ef9c4f4c1183821d10a35ac7357a269"
    },
    {
      "name": "phaser-feature",
      "type": "archive",
      "description": "Add a gameplay feature to a Phaser 4 game using the version-matched Phaser skills in node_modules, pooled objects, delta-based movement, and a type-check, build and play test. Use for any gameplay change.",
      "url": "https://setupbay.com/.well-known/agent-skills/phaser-feature.zip",
      "digest": "sha256:87b00ea179680170935a7628d3cf9561cb76fb174a87a0d03903d37e787fe828"
    },
    {
      "name": "plain-prose",
      "type": "archive",
      "description": "Rewrite or check prose so it does not read as machine-written. Use for READMEs, docs, release notes, PR descriptions, commit messages and UI copy, before showing them to the user.",
      "url": "https://setupbay.com/.well-known/agent-skills/plain-prose.zip",
      "digest": "sha256:de841ee20852b9436f418ac4d7887876166196096cd30c586d50d981b40143b0"
    },
    {
      "name": "plan-review",
      "type": "archive",
      "description": "Produce and summarise a Terraform plan, flag every delete and replace, and install a hook that blocks apply and destroy. Use after any Terraform change, before handing it to a human.",
      "url": "https://setupbay.com/.well-known/agent-skills/plan-review.zip",
      "digest": "sha256:61e7731c40fbbb84f21c709f61d5e7dba3d782792545a38a2c136b01608c1021"
    },
    {
      "name": "plan-then-build",
      "type": "skill-md",
      "description": "Write a short implementation plan and get approval before building. Use for new features, refactors, multi-file changes, dependency changes, or whenever the request is big or vague.",
      "url": "https://setupbay.com/.well-known/agent-skills/plan-then-build/SKILL.md",
      "digest": "sha256:bdb89d9509111d3a813e30b40fca6f97740bea1498755f79d858a4be62946f91"
    },
    {
      "name": "polars-2-guard",
      "type": "archive",
      "description": "Check Python for Polars 1.x APIs that Polars 2 removed, and for calls whose results changed silently in 2.0, before saying a Polars change is done. Use after writing or editing Polars code, when Polars raises AttributeRemovedError or ArgumentRemovedError, or when porting older Polars or pandas snippets.",
      "url": "https://setupbay.com/.well-known/agent-skills/polars-2-guard.zip",
      "digest": "sha256:aed3ba197187c9b40f4fdd90d6d02d3521d06810cc424d154ba850fe5748dedf"
    },
    {
      "name": "pydantic-v2-guard",
      "type": "archive",
      "description": "Check a FastAPI project for Pydantic v1 models, config, validators and methods, and for Optional fields that became required, before saying a model or endpoint change is done. Use after writing or editing Pydantic models or FastAPI routes, when FastAPI raises PydanticV1NotSupportedError, Pydantic warns PydanticDeprecatedSince20, or when porting older FastAPI snippets.",
      "url": "https://setupbay.com/.well-known/agent-skills/pydantic-v2-guard.zip",
      "digest": "sha256:ba97fd70e5bb4a27585708ebb56f8b82b3c000163170aa61e052b02be1979e1b"
    },
    {
      "name": "python-mcp-tool",
      "type": "archive",
      "description": "Add a tool to a Python MCP server on the official SDK v2 (MCPServer), with an Annotated schema, structured output, ToolError for recoverable failures and in-memory Client tests.",
      "url": "https://setupbay.com/.well-known/agent-skills/python-mcp-tool.zip",
      "digest": "sha256:de9fd67d1ff57e4e07d1c2d03892ad98ab9aa61135ca9763e5568889c82cfa5c"
    },
    {
      "name": "rails-model-change",
      "type": "archive",
      "description": "Add or change a Rails model with a reversible migration, database constraints, validations, an N+1-safe query scope and a model test. Use for new tables, new columns and new associations.",
      "url": "https://setupbay.com/.well-known/agent-skills/rails-model-change.zip",
      "digest": "sha256:f87cf8620b3d08d73241f3e59974f10a7938ca23554428521646a5df09dc9e85"
    },
    {
      "name": "ralph-loop",
      "type": "archive",
      "description": "Set up and run a guarded Ralph-style loop (fresh agent process per pass, state in files, iteration and no-progress limits, independent check). Use when a task is a long list of similar, checkable steps.",
      "url": "https://setupbay.com/.well-known/agent-skills/ralph-loop.zip",
      "digest": "sha256:ab7bd2b8eb827bcc4ddfa567311ad52091489967cb6a944462f4152aa459ba2e"
    },
    {
      "name": "remote-security-review",
      "type": "skill-md",
      "description": "Audit a Roblox game's RemoteEvents and RemoteFunctions for exploitable client trust. Use before publishing, after adding remotes, or when players report exploits like infinite money or teleporting.",
      "url": "https://setupbay.com/.well-known/agent-skills/remote-security-review/SKILL.md",
      "digest": "sha256:097ed605f7091a726fbe175346e3d176e281680ef53bfac8850227e7ffda7cbd"
    },
    {
      "name": "resume-from-handoff",
      "type": "skill-md",
      "description": "Pick up work from HANDOFF.md at the start of a session. Checks the handoff is current, re-runs its verify commands and confirms the next step before changing anything.",
      "url": "https://setupbay.com/.well-known/agent-skills/resume-from-handoff/SKILL.md",
      "digest": "sha256:ce32b237a7cf4ef03ee4421563a4e78444e3f8d511e22eceb4138a5f357ff6ba"
    },
    {
      "name": "rspec-request-spec",
      "type": "archive",
      "description": "Write RSpec request specs for a Rails JSON endpoint with FactoryBot, covering the happy path, validation errors, missing params and access scoping, then run rspec and rubocop-rspec. Use when adding or changing a controller action, route or API response in a Rails app tested with RSpec.",
      "url": "https://setupbay.com/.well-known/agent-skills/rspec-request-spec.zip",
      "digest": "sha256:60d06546f75453624105900640d736010f1f4e4cc910dde5c25ca93ced9f2a72"
    },
    {
      "name": "rust-change",
      "type": "archive",
      "description": "Make a reviewable Rust change with typed errors, a failing test first for bugs, and fmt, clippy -D warnings and tests before reporting. Use for any non-trivial change to a Rust crate.",
      "url": "https://setupbay.com/.well-known/agent-skills/rust-change.zip",
      "digest": "sha256:0d1220b8fd332cac4dccd7da7bbaa92c9c6c26bb5c23356347d0c733167b7ff7"
    },
    {
      "name": "safe-migration",
      "type": "archive",
      "description": "Make a Django model change with a reviewed migration, a zero-downtime path for destructive changes and a query-count test. Use when adding, renaming or removing fields or models.",
      "url": "https://setupbay.com/.well-known/agent-skills/safe-migration.zip",
      "digest": "sha256:9fe154195d59c83261d82765cafa3c857cc0d9e367dfe30807caf51847e89397"
    },
    {
      "name": "session-handoff",
      "type": "skill-md",
      "description": "Write or update NOTES.md so the next session or another agent can continue the work. Use at the end of a long session, before context runs out, or when the user says they are stopping for now.",
      "url": "https://setupbay.com/.well-known/agent-skills/session-handoff/SKILL.md",
      "digest": "sha256:d4c67ff86821aaad5930110d98c6e9237060acd1d1f1a4be64e223071362da81"
    },
    {
      "name": "set-up-review-rules",
      "type": "archive",
      "description": "Create or tune review-only instruction files for Claude Code Review, Cursor Bugbot and Copilot code review from one rule list. Use when setting up AI code review or when reviews are noisy or miss team rules.",
      "url": "https://setupbay.com/.well-known/agent-skills/set-up-review-rules.zip",
      "digest": "sha256:c7e879fc75e1dade3511ee9d5821399e1d5e24759d9ff73ccd332d99b5c4ab9d"
    },
    {
      "name": "skill-listing-audit",
      "type": "archive",
      "description": "Check that every skill's description fits the agent's skill listing and says when to use it. Use when adding, writing or renaming a skill, when a skill works with /name but never fires on its own, or when an agent warns that skill descriptions were truncated.",
      "url": "https://setupbay.com/.well-known/agent-skills/skill-listing-audit.zip",
      "digest": "sha256:231fa216af5734864aa0fc401160e3d3ba229e7fccaaebb63d75d5da33372880"
    },
    {
      "name": "spend-cap",
      "type": "archive",
      "description": "Put one daily and monthly spend cap across headless Claude Code, Codex and Antigravity CLI runs, with a per-run budget and a ledger, and set the provider-side limits that are the real hard stop. Use when scripting agent runs, running agents in loops or CI, or when someone asks what the agents cost.",
      "url": "https://setupbay.com/.well-known/agent-skills/spend-cap.zip",
      "digest": "sha256:ca61fca76bb4ac3efa4a6c74ebcc3b9903e0ae8ae81237ceb73116fa1bb432c6"
    },
    {
      "name": "sqlalchemy-2-guard",
      "type": "archive",
      "description": "Check Python for SQLAlchemy 1.x APIs removed in 2.0, legacy session.query code, untyped models and writes that are never committed, before saying a database change is done. Use after writing or editing SQLAlchemy models, queries or transactions, when SQLAlchemy raises ObjectNotExecutableError or ArgumentError, or when porting 1.x snippets.",
      "url": "https://setupbay.com/.well-known/agent-skills/sqlalchemy-2-guard.zip",
      "digest": "sha256:01fbeda22a231fd9380edd5aab9205af3f1fc9b28d33da4c85b00144b7ef9ca1"
    },
    {
      "name": "starlight-docs-page",
      "type": "archive",
      "description": "Add, move or rewrite a page in an Astro Starlight docs site (Starlight 0.42, Astro 7) so it has proper front matter, links that the validator can check, and a passing build. Use for any change under src/content/docs/ or to the Starlight config.",
      "url": "https://setupbay.com/.well-known/agent-skills/starlight-docs-page.zip",
      "digest": "sha256:7ca8688618c4e2357bcb7f189f004673ad9151baa1222f4a80ea30c8849bd289"
    },
    {
      "name": "start-worktree",
      "type": "skill-md",
      "description": "Create a git worktree and branch for one task, install dependencies and pick a free port. Use before starting a task that will run alongside other agents.",
      "url": "https://setupbay.com/.well-known/agent-skills/start-worktree/SKILL.md",
      "digest": "sha256:537b1a56f50525f742dba9b9bd350037a62652aa388d8b17ab02449e610290c7"
    },
    {
      "name": "supabase-rls-audit",
      "type": "skill-md",
      "description": "Audit Supabase row level security. Use when asked to check database security, before launch, after adding tables, or when someone worries that users can see each other's data.",
      "url": "https://setupbay.com/.well-known/agent-skills/supabase-rls-audit/SKILL.md",
      "digest": "sha256:aef1731cc6f4853348580a7623a4a2a0870db6955d6f7d99340920590ad78301"
    },
    {
      "name": "swiftui-testable-feature",
      "type": "archive",
      "description": "Build a SwiftUI feature with its state and logic in a Swift package view model that swift test covers on Linux and macOS, with a thin view on top. Use when adding a screen, changing view logic, or writing Swift tests.",
      "url": "https://setupbay.com/.well-known/agent-skills/swiftui-testable-feature.zip",
      "digest": "sha256:178be6974d7a8469d7070813e3d9eff23422f098e4ff473a072e2b849371148f"
    },
    {
      "name": "sync-mcp-config",
      "type": "archive",
      "description": "Convert the single MCP server list in agents/mcp.servers.json into each agent's config file. Use when adding, removing or changing an MCP server for the team.",
      "url": "https://setupbay.com/.well-known/agent-skills/sync-mcp-config.zip",
      "digest": "sha256:01280bd044eda56b05aeb2556ce6aa33d6995b2e04f9f6cf088a8d1fa018a9f1"
    },
    {
      "name": "tauri-2-guard",
      "type": "archive",
      "description": "Check a Tauri 2 app for Tauri 1 code in the front end, the Rust side and tauri.conf.json (api/tauri imports, appWindow, the allowlist, get_window, emit_all, SystemTray) and for snake_case invoke arguments, then type-check, test with mocked IPC and validate the config schema. Use after writing or editing Tauri code, when invoke reports a missing argument, or when porting a Tauri 1 example.",
      "url": "https://setupbay.com/.well-known/agent-skills/tauri-2-guard.zip",
      "digest": "sha256:7a0f794a57b57e2a89bb079eb9703ad93386112aafc70048a9a408d6e0839562"
    },
    {
      "name": "tauri-permissions",
      "type": "archive",
      "description": "Add or change Tauri 2 capabilities with least privilege (named windows, scoped fs and http permissions, no broad shell access, CSP kept) and run the capability check. Use when a feature needs a new plugin or permission.",
      "url": "https://setupbay.com/.well-known/agent-skills/tauri-permissions.zip",
      "digest": "sha256:e5f68650dc14670966c2844ddaa59c3bf20c5e8174e7049cc692f2f1464981be"
    },
    {
      "name": "tofu-module-gate",
      "type": "archive",
      "description": "Write or change an OpenTofu (or Terraform) module so it passes a local gate - fmt, validate, tofu test with a mocked provider, and Checkov with reasoned exceptions only. Use when adding or editing .tf files, module variables, tests, or Checkov skips.",
      "url": "https://setupbay.com/.well-known/agent-skills/tofu-module-gate.zip",
      "digest": "sha256:7d74d83ef339553c25059be8e71c7d8ef1bd9e7a8a4f94340140769d08af866c"
    },
    {
      "name": "unity-plugin-setup",
      "type": "skill-md",
      "description": "Install and check Unity's official agent plugin for Claude Code or Codex, and prepare the project (git, ignore file, Unity CLI). Use when the Unity skills are missing or before the first agent session in a Unity project.",
      "url": "https://setupbay.com/.well-known/agent-skills/unity-plugin-setup/SKILL.md",
      "digest": "sha256:2b2c3d195f933f9e41066fa8f61cac6c0a20de46dbf6335fb11886cbe46e049e"
    },
    {
      "name": "unity-tests",
      "type": "archive",
      "description": "Run Unity Test Framework Edit Mode and Play Mode tests from the command line and read the NUnit results, including the zero-tests case Unity reports as success. Use after changing C# in a Unity project, when adding tests, or when the user asks whether the Unity tests pass.",
      "url": "https://setupbay.com/.well-known/agent-skills/unity-tests.zip",
      "digest": "sha256:c9765bfd74971602ef679393963891eb2dfa5399e26e4d44c690adf10b0be33f"
    },
    {
      "name": "unity-web-build",
      "type": "skill-md",
      "description": "Build a Unity project for the web (WebGL) from the command line and prepare it for itch.io. Use when the user asks to build, export or upload their Unity game for the browser.",
      "url": "https://setupbay.com/.well-known/agent-skills/unity-web-build/SKILL.md",
      "digest": "sha256:dc6519d030125a2670850723c14972e4bc06afd08839f167450f27d8687ed240"
    },
    {
      "name": "verify-in-browser",
      "type": "skill-md",
      "description": "Load the changed UI in a real browser through the Playwright MCP server, exercise it, check console and network errors, and capture screenshots at two widths. Use after any UI change and before reporting it done.",
      "url": "https://setupbay.com/.well-known/agent-skills/verify-in-browser/SKILL.md",
      "digest": "sha256:248f177ac34db72e7c87374734d2f61af1fc29f2167853f9dfbf60058f3bfb34"
    },
    {
      "name": "vet-agent-extension",
      "type": "archive",
      "description": "Vet a skill, plugin or MCP server before it is installed or updated. Pins the source, checks the checkout matches the pin, scans every file for risky patterns and writes a short report for a human to approve.",
      "url": "https://setupbay.com/.well-known/agent-skills/vet-agent-extension.zip",
      "digest": "sha256:7272868dcad2ecd0f61564455ad1957a6f9ab9d603abdcb6eadd7b9b83e9028f"
    },
    {
      "name": "vet-new-dependency",
      "type": "archive",
      "description": "Check a package before adding it (age against the cooldown, publishers, install scripts, look-alike names) and make sure the project's release-age cooldowns for npm, pnpm, Bun and uv are on. Use before any install of a new dependency, and when setting up or reviewing a project's package manager config.",
      "url": "https://setupbay.com/.well-known/agent-skills/vet-new-dependency.zip",
      "digest": "sha256:68ade7dc516b15c3742f37b3df3f6dfff7ea1b38e00ff92493df1febcc80bddf"
    },
    {
      "name": "web-perf-loop",
      "type": "archive",
      "description": "Measure page speed with Chrome DevTools MCP traces under mobile throttling, fix the slowest part, and prove the change with before/after medians. Use when a page feels slow, LCP, CLS or INP is poor, or the user mentions Core Web Vitals, PageSpeed or Lighthouse scores.",
      "url": "https://setupbay.com/.well-known/agent-skills/web-perf-loop.zip",
      "digest": "sha256:2b7e6d5b8a720dac949ffb4e96251ac6e5c53d5421b8bcebe05bc6e54454f4fe"
    },
    {
      "name": "worker-endpoint",
      "type": "archive",
      "description": "Add an endpoint to a Cloudflare Worker using bindings from env, validated input, parameterised D1 queries, waitUntil for background work and a local check. Use when adding or changing a Worker route.",
      "url": "https://setupbay.com/.well-known/agent-skills/worker-endpoint.zip",
      "digest": "sha256:115236dce25f5f59bd85fe180b99eac222860c5801b15346924798c5086e92de"
    },
    {
      "name": "write-cursor-rule",
      "type": "archive",
      "description": "Add, split or fix a Cursor rule (.mdc) so it loads at the right time, and check it loads. Use when asked to write a rule, when a rule is ignored, or when converting .cursorrules.",
      "url": "https://setupbay.com/.well-known/agent-skills/write-cursor-rule.zip",
      "digest": "sha256:c137054df3ae3fac745093947ad1ded4e4ae363eb126a39cbf3e1d822c413c00"
    },
    {
      "name": "write-e2e-test",
      "type": "archive",
      "description": "Write or repair a Playwright end-to-end test with role-based locators, web-first assertions and no fixed waits, then lint it and run it. Use for new user flows and for failing or flaky tests.",
      "url": "https://setupbay.com/.well-known/agent-skills/write-e2e-test.zip",
      "digest": "sha256:971f19800d0577d04a137d9a637ee750e5ef519e09868078f3a0c55683e1fc15"
    },
    {
      "name": "write-handoff",
      "type": "archive",
      "description": "Write HANDOFF.md so a fresh session or a different agent can continue without the old context. Use before clearing or compacting context, at the end of a long session, or when switching agents or people.",
      "url": "https://setupbay.com/.well-known/agent-skills/write-handoff.zip",
      "digest": "sha256:b8851769dc97433ea912d847ad22612a148d40ecbdc9a951fc8da53f3496f1a8"
    },
    {
      "name": "write-spec",
      "type": "archive",
      "description": "Interview the human and research the codebase to write SPEC.md and TASKS.md for a feature before any code. Use when asked to plan or build a non-trivial feature.",
      "url": "https://setupbay.com/.well-known/agent-skills/write-spec.zip",
      "digest": "sha256:aa628ed21b9a23696801c4c4935b58c7bb966f7ba3ce4ae9585198153249f75d"
    },
    {
      "name": "xcode-mcp-loop",
      "type": "archive",
      "description": "Change SwiftUI app code with Xcode's own MCP tools (xcrun mcpbridge, Xcode 26.3+) - build, read the log, render previews and look at them, run tests - in a tight loop. Use for any SwiftUI view, model or app change when Xcode is open on the project.",
      "url": "https://setupbay.com/.well-known/agent-skills/xcode-mcp-loop.zip",
      "digest": "sha256:f044f7c49f514cc672b7c53ae2df7b9a7e582450e17531b3ebab3a01bd58b359"
    }
  ]
}
