{"schema":"agent-loadout/search-index@1","generated_at":"2026-10-16T23:04:44.275Z","site":"https://loadout.jnw-it.com","agents":[{"id":"claude-code","name":"Claude Code","instructions":"CLAUDE.md (imports AGENTS.md with @AGENTS.md)","skills_dir":".claude/skills","mcp":{"native":true,"path":".mcp.json","note":"Project-scoped MCP servers live in .mcp.json. Claude Code asks you to approve them the first time."},"docs":"https://docs.claude.com/en/docs/claude-code/overview"},{"id":"codex","name":"Codex CLI","instructions":"AGENTS.md","skills_dir":".agents/skills","mcp":{"native":false,"path":null,"note":"Codex reads MCP servers from ~/.codex/config.toml (TOML, not JSON). Add each server with `codex mcp add` or copy the URL into an [mcp_servers.<name>] table."},"docs":"https://developers.openai.com/codex"},{"id":"cursor","name":"Cursor","instructions":"AGENTS.md + .cursor/rules/*.mdc","skills_dir":".agents/skills","mcp":{"native":true,"path":".cursor/mcp.json","note":"Enable the server in Cursor Settings → MCP after installing."},"docs":"https://cursor.com/docs"},{"id":"gemini-cli","name":"Gemini CLI","instructions":"GEMINI.md (imports AGENTS.md with @./AGENTS.md)","skills_dir":".agents/skills","mcp":{"native":false,"path":null,"note":"Gemini CLI reads MCP servers from the mcpServers block of .gemini/settings.json. Merge the servers in by hand, and use httpUrl instead of url for HTTP servers."},"docs":"https://github.com/google-gemini/gemini-cli"},{"id":"copilot","name":"GitHub Copilot","instructions":"AGENTS.md","skills_dir":".agents/skills","mcp":{"native":false,"path":null,"note":"In VS Code, MCP servers go in .vscode/mcp.json under a \"servers\" key (not \"mcpServers\"). Copilot CLI uses ~/.copilot/mcp-config.json."},"docs":"https://docs.github.com/en/copilot"}],"categories":{"web-app":"Web apps","gamedev":"Game dev","security":"Security","bots":"Bots","browser-extension":"Browser extensions","data":"Data","workflow":"Workflow","ai-agents":"AI agents"},"loadouts":[{"id":"discord-bot-ts","title":"Discord bot (TypeScript)","summary":"discord.js v14 rules and an add-a-slash-command skill for building a Discord bot that registers commands properly and never leaks its token.","description":"Discord bots are a classic first agent project and a classic way to leak a token to GitHub.\nThis loadout sets up a clean discord.js v14 structure (one file per slash command, a loader, a deploy\nscript), teaches the agent the three-second interaction rule and the intents model, and gives it a\nskill for adding new commands end to end.","highlights":["One-file-per-command structure with a separate command deploy script","The three-second rule: defer, then edit the reply","Minimal intents; no privileged Message Content intent unless you really need it","Skill that adds, registers and documents a new slash command"],"version":"1.1.0","license":"MIT","author":"Agent Loadout","categories":["bots"],"stacks":["discord","nodejs","typescript"],"featured":true,"deprecated":false,"last_checked":"2026-10-16","compatibility":{"claude-code":"native","codex":"native","cursor":"native","gemini-cli":"native","copilot":"native"},"counts":{"rules":2,"skills":1,"mcp":0},"requires":{"tools":["node"],"env":["DISCORD_TOKEN","DISCORD_CLIENT_ID","DISCORD_GUILD_ID"],"mcp":[]},"verification":{"status":"verified","checked_at":"2026-10-16T22:54:03Z","passed":9,"failed":0,"not_applicable":1,"skipped":0},"agent_tests":{"status":"untested","last_run":null,"per_agent":{"claude-code":"untested","codex":"untested","cursor":"untested","gemini-cli":"untested","copilot":"untested"}},"files":[{"path":"AGENTS.md","role":"instructions","description":"Discord bot project rules.","skill":null,"agent":null,"bytes":3625,"lines":63,"install_to":{"claude-code":"AGENTS.md","codex":"AGENTS.md","cursor":"AGENTS.md","gemini-cli":"AGENTS.md","copilot":"AGENTS.md"}},{"path":"CLAUDE.md","role":"adapter","description":"Imports AGENTS.md for Claude Code.","skill":null,"agent":"claude-code","bytes":376,"lines":10,"install_to":{"claude-code":"CLAUDE.md","codex":null,"cursor":null,"gemini-cli":null,"copilot":null}},{"path":"GEMINI.md","role":"adapter","description":"Imports AGENTS.md for Gemini CLI.","skill":null,"agent":"gemini-cli","bytes":377,"lines":10,"install_to":{"claude-code":null,"codex":null,"cursor":null,"gemini-cli":"GEMINI.md","copilot":null}},{"path":".cursor/rules/discord-commands.mdc","role":"rules","description":"Rule for files in src/commands/.","skill":null,"agent":null,"bytes":1144,"lines":28,"install_to":{"claude-code":null,"codex":null,"cursor":".cursor/rules/discord-commands.mdc","gemini-cli":null,"copilot":null}},{"path":"skills/add-slash-command/SKILL.md","role":"skill","description":"Adds and registers a new slash command.","skill":"add-slash-command","agent":null,"bytes":1650,"lines":24,"install_to":{"claude-code":".claude/skills/add-slash-command/SKILL.md","codex":".agents/skills/add-slash-command/SKILL.md","cursor":".agents/skills/add-slash-command/SKILL.md","gemini-cli":".agents/skills/add-slash-command/SKILL.md","copilot":".agents/skills/add-slash-command/SKILL.md"}}]},{"id":"godot-4-game-jam","title":"Godot 4 game jam","summary":"GDScript conventions, jam-scope discipline and a ship-to-itch.io skill so your agent helps you finish a Godot 4 game in 48 hours.","description":"Game jams are lost to scope creep and a broken web build at hour 47. This loadout teaches your agent\ntyped GDScript and Godot 4 scene conventions, makes it protect the core loop before adding features,\nand gives it a step-by-step skill for exporting a web build and pushing it to itch.io with butler.","highlights":["Typed GDScript 4 conventions, signals over hard references, scenes as the unit of reuse","Jam rules: playable loop first, feature freeze, a cut list instead of crunch","Ship skill covering headless web export, the single-threaded vs threaded trap, and butler pushes","Cursor rule scoped to .gd files"],"version":"1.0.0","license":"MIT","author":"Agent Loadout","categories":["gamedev"],"stacks":["godot","gdscript"],"featured":true,"deprecated":false,"last_checked":"2026-10-15","compatibility":{"claude-code":"native","codex":"native","cursor":"native","gemini-cli":"native","copilot":"native"},"counts":{"rules":2,"skills":1,"mcp":0},"requires":{"tools":["godot-4","butler"],"env":["BUTLER_API_KEY"],"mcp":[]},"verification":{"status":"verified","checked_at":"2026-10-16T22:54:03Z","passed":9,"failed":0,"not_applicable":1,"skipped":0},"agent_tests":{"status":"untested","last_run":null,"per_agent":{"claude-code":"untested","codex":"untested","cursor":"untested","gemini-cli":"untested","copilot":"untested"}},"files":[{"path":"AGENTS.md","role":"instructions","description":"Godot 4 project and game jam rules.","skill":null,"agent":null,"bytes":2956,"lines":45,"install_to":{"claude-code":"AGENTS.md","codex":"AGENTS.md","cursor":"AGENTS.md","gemini-cli":"AGENTS.md","copilot":"AGENTS.md"}},{"path":"CLAUDE.md","role":"adapter","description":"Imports AGENTS.md for Claude Code.","skill":null,"agent":"claude-code","bytes":367,"lines":10,"install_to":{"claude-code":"CLAUDE.md","codex":null,"cursor":null,"gemini-cli":null,"copilot":null}},{"path":"GEMINI.md","role":"adapter","description":"Imports AGENTS.md for Gemini CLI.","skill":null,"agent":"gemini-cli","bytes":368,"lines":10,"install_to":{"claude-code":null,"codex":null,"cursor":null,"gemini-cli":"GEMINI.md","copilot":null}},{"path":".cursor/rules/gdscript.mdc","role":"rules","description":"GDScript style rule, applied to .gd files.","skill":null,"agent":null,"bytes":875,"lines":15,"install_to":{"claude-code":null,"codex":null,"cursor":".cursor/rules/gdscript.mdc","gemini-cli":null,"copilot":null}},{"path":"skills/godot-jam-ship/SKILL.md","role":"skill","description":"Exports a web build and publishes it to itch.io.","skill":"godot-jam-ship","agent":null,"bytes":2662,"lines":51,"install_to":{"claude-code":".claude/skills/godot-jam-ship/SKILL.md","codex":".agents/skills/godot-jam-ship/SKILL.md","cursor":".agents/skills/godot-jam-ship/SKILL.md","gemini-cli":".agents/skills/godot-jam-ship/SKILL.md","copilot":".agents/skills/godot-jam-ship/SKILL.md"}}]},{"id":"mcp-server-typescript","title":"MCP server (TypeScript)","summary":"Rules and an add-a-tool skill for building a Model Context Protocol server in TypeScript that agents can actually use well — clear tools, safe inputs, no stdout noise.","description":"Building your own MCP server is the fastest way to give agents a new superpower, and the easiest way to\ngive them a confusing one. This loadout teaches your agent the official TypeScript SDK patterns, how to\ndesign tools that models pick correctly, how to keep a stdio server's output clean, and how to test with\nthe MCP Inspector before plugging it into Claude Code, Cursor or Codex.","highlights":["Tool design rules: verb-first names, descriptions written for the model, small typed inputs","stdio hygiene — logs to stderr only, or the protocol breaks","Input validation with zod and errors returned as tool results, not crashes","Add-a-tool skill with an Inspector test loop"],"version":"1.0.0","license":"MIT","author":"Agent Loadout","categories":["ai-agents"],"stacks":["mcp","typescript","nodejs"],"featured":true,"deprecated":false,"last_checked":"2026-10-15","compatibility":{"claude-code":"native","codex":"native","cursor":"native","gemini-cli":"native","copilot":"native"},"counts":{"rules":2,"skills":1,"mcp":0},"requires":{"tools":["node"],"env":[],"mcp":[]},"verification":{"status":"verified","checked_at":"2026-10-16T22:54:03Z","passed":9,"failed":0,"not_applicable":1,"skipped":0},"agent_tests":{"status":"untested","last_run":null,"per_agent":{"claude-code":"untested","codex":"untested","cursor":"untested","gemini-cli":"untested","copilot":"untested"}},"files":[{"path":"AGENTS.md","role":"instructions","description":"MCP server project rules.","skill":null,"agent":null,"bytes":2948,"lines":43,"install_to":{"claude-code":"AGENTS.md","codex":"AGENTS.md","cursor":"AGENTS.md","gemini-cli":"AGENTS.md","copilot":"AGENTS.md"}},{"path":"CLAUDE.md","role":"adapter","description":"Imports AGENTS.md for Claude Code.","skill":null,"agent":"claude-code","bytes":377,"lines":10,"install_to":{"claude-code":"CLAUDE.md","codex":null,"cursor":null,"gemini-cli":null,"copilot":null}},{"path":"GEMINI.md","role":"adapter","description":"Imports AGENTS.md for Gemini CLI.","skill":null,"agent":"gemini-cli","bytes":378,"lines":10,"install_to":{"claude-code":null,"codex":null,"cursor":null,"gemini-cli":"GEMINI.md","copilot":null}},{"path":".cursor/rules/mcp-tools.mdc","role":"rules","description":"Rule applied to tool definition files.","skill":null,"agent":null,"bytes":832,"lines":15,"install_to":{"claude-code":null,"codex":null,"cursor":".cursor/rules/mcp-tools.mdc","gemini-cli":null,"copilot":null}},{"path":"skills/add-mcp-tool/SKILL.md","role":"skill","description":"Designs, implements and tests a new MCP tool.","skill":"add-mcp-tool","agent":null,"bytes":2635,"lines":56,"install_to":{"claude-code":".claude/skills/add-mcp-tool/SKILL.md","codex":".agents/skills/add-mcp-tool/SKILL.md","cursor":".agents/skills/add-mcp-tool/SKILL.md","gemini-cli":".agents/skills/add-mcp-tool/SKILL.md","copilot":".agents/skills/add-mcp-tool/SKILL.md"}}]},{"id":"nextjs-supabase-saas","title":"Next.js + Supabase SaaS","summary":"Rules, an RLS audit skill and a read-only Supabase MCP config for vibe-coding a Next.js App Router SaaS without leaking your database.","description":"The stack most vibe-coded SaaS apps end up on, with the guard rails agents usually forget.\nYour agent learns where server code ends and client code begins, how to use Supabase auth\nwith cookies, and that every table needs row level security before it holds real data.","highlights":["Clear server/client boundary rules for the App Router","Migrations-only schema changes, with RLS enabled on every new table","A skill that audits every table's RLS policies and reports gaps in plain English","Read-only Supabase MCP config so the agent can inspect, not drop, your database"],"version":"1.0.0","license":"MIT","author":"Agent Loadout","categories":["web-app"],"stacks":["nextjs","react","typescript","supabase","postgres"],"featured":true,"deprecated":false,"last_checked":"2026-10-15","compatibility":{"claude-code":"native","codex":"adapter","cursor":"native","gemini-cli":"adapter","copilot":"adapter"},"counts":{"rules":2,"skills":1,"mcp":1},"requires":{"tools":["node","supabase-cli"],"env":["NEXT_PUBLIC_SUPABASE_URL","NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY"],"mcp":["supabase"]},"verification":{"status":"verified","checked_at":"2026-10-16T22:54:03Z","passed":10,"failed":0,"not_applicable":0,"skipped":0},"agent_tests":{"status":"untested","last_run":null,"per_agent":{"claude-code":"untested","codex":"untested","cursor":"untested","gemini-cli":"untested","copilot":"untested"}},"files":[{"path":"AGENTS.md","role":"instructions","description":"Project rules for any agent that reads AGENTS.md.","skill":null,"agent":null,"bytes":3421,"lines":55,"install_to":{"claude-code":"AGENTS.md","codex":"AGENTS.md","cursor":"AGENTS.md","gemini-cli":"AGENTS.md","copilot":"AGENTS.md"}},{"path":"CLAUDE.md","role":"adapter","description":"Imports AGENTS.md for Claude Code.","skill":null,"agent":"claude-code","bytes":509,"lines":11,"install_to":{"claude-code":"CLAUDE.md","codex":null,"cursor":null,"gemini-cli":null,"copilot":null}},{"path":"GEMINI.md","role":"adapter","description":"Imports AGENTS.md for Gemini CLI.","skill":null,"agent":"gemini-cli","bytes":383,"lines":10,"install_to":{"claude-code":null,"codex":null,"cursor":null,"gemini-cli":"GEMINI.md","copilot":null}},{"path":".cursor/rules/supabase-migrations.mdc","role":"rules","description":"Scoped Cursor rule that applies when editing SQL migrations.","skill":null,"agent":null,"bytes":1768,"lines":43,"install_to":{"claude-code":null,"codex":null,"cursor":".cursor/rules/supabase-migrations.mdc","gemini-cli":null,"copilot":null}},{"path":"skills/supabase-rls-audit/SKILL.md","role":"skill","description":"Audits row level security across every table and reports gaps.","skill":"supabase-rls-audit","agent":null,"bytes":3131,"lines":72,"install_to":{"claude-code":".claude/skills/supabase-rls-audit/SKILL.md","codex":".agents/skills/supabase-rls-audit/SKILL.md","cursor":".agents/skills/supabase-rls-audit/SKILL.md","gemini-cli":".agents/skills/supabase-rls-audit/SKILL.md","copilot":".agents/skills/supabase-rls-audit/SKILL.md"}},{"path":"mcp.json","role":"mcp","description":"Supabase hosted MCP server in read-only mode, scoped to one project.","skill":null,"agent":null,"bytes":160,"lines":9,"install_to":{"claude-code":".mcp.json","codex":null,"cursor":".cursor/mcp.json","gemini-cli":null,"copilot":null}}]},{"id":"secure-before-you-ship","title":"Secure before you ship","summary":"A launch-check skill and always-on security rules that catch leaked keys, open databases and missing auth before your vibe-coded app goes live.","description":"Most vibe-coded apps that get burnt at launch fail on the same ten things: a secret key in the\nfront end, a database anyone can read, an admin route with no auth check, or a free API endpoint\nsomeone scripts to run up your bill. This loadout gives your agent a repeatable pre-launch audit\nand a set of rules that stop the worst mistakes being written in the first place.\nStack-agnostic: works for Next.js, Vite, Astro, Express, Flask, Supabase, Firebase and friends.","highlights":["Launch-check skill that produces a plain-English, severity-ranked fix list","Checklist reference covering secrets, auth, data access, abuse, headers and dependencies","Always-on rule that stops agents hard-coding or logging secrets","Read-only by design — the skill reports and proposes fixes, it does not rewrite your app unasked"],"version":"1.0.0","license":"MIT","author":"Agent Loadout","categories":["security","web-app"],"stacks":["any","javascript","typescript","python"],"featured":true,"deprecated":false,"last_checked":"2026-10-15","compatibility":{"claude-code":"native","codex":"native","cursor":"native","gemini-cli":"native","copilot":"native"},"counts":{"rules":2,"skills":1,"mcp":0},"requires":{"tools":["git"],"env":[],"mcp":[]},"verification":{"status":"verified","checked_at":"2026-10-16T22:54:03Z","passed":8,"failed":0,"not_applicable":2,"skipped":0},"agent_tests":{"status":"untested","last_run":null,"per_agent":{"claude-code":"untested","codex":"untested","cursor":"untested","gemini-cli":"untested","copilot":"untested"}},"files":[{"path":"AGENTS.md","role":"instructions","description":"Security baseline rules for any agent that reads AGENTS.md.","skill":null,"agent":null,"bytes":2212,"lines":38,"install_to":{"claude-code":"AGENTS.md","codex":"AGENTS.md","cursor":"AGENTS.md","gemini-cli":"AGENTS.md","copilot":"AGENTS.md"}},{"path":"CLAUDE.md","role":"adapter","description":"Imports AGENTS.md for Claude Code.","skill":null,"agent":"claude-code","bytes":377,"lines":10,"install_to":{"claude-code":"CLAUDE.md","codex":null,"cursor":null,"gemini-cli":null,"copilot":null}},{"path":"GEMINI.md","role":"adapter","description":"Imports AGENTS.md for Gemini CLI.","skill":null,"agent":"gemini-cli","bytes":378,"lines":10,"install_to":{"claude-code":null,"codex":null,"cursor":null,"gemini-cli":"GEMINI.md","copilot":null}},{"path":".cursor/rules/no-secrets.mdc","role":"rules","description":"Always-on Cursor rule about secrets and environment variables.","skill":null,"agent":null,"bytes":727,"lines":12,"install_to":{"claude-code":null,"codex":null,"cursor":".cursor/rules/no-secrets.mdc","gemini-cli":null,"copilot":null}},{"path":"skills/launch-check/SKILL.md","role":"skill","description":"Runs a pre-launch security and readiness audit.","skill":"launch-check","agent":null,"bytes":2631,"lines":54,"install_to":{"claude-code":".claude/skills/launch-check/SKILL.md","codex":".agents/skills/launch-check/SKILL.md","cursor":".agents/skills/launch-check/SKILL.md","gemini-cli":".agents/skills/launch-check/SKILL.md","copilot":".agents/skills/launch-check/SKILL.md"}},{"path":"skills/launch-check/references/checklist.md","role":"reference","description":"The full checklist the launch-check skill works through.","skill":"launch-check","agent":null,"bytes":2783,"lines":52,"install_to":{"claude-code":".claude/skills/launch-check/references/checklist.md","codex":".agents/skills/launch-check/references/checklist.md","cursor":".agents/skills/launch-check/references/checklist.md","gemini-cli":".agents/skills/launch-check/references/checklist.md","copilot":".agents/skills/launch-check/references/checklist.md"}}]},{"id":"vibe-coding-guardrails","title":"Vibe-coding guard rails","summary":"A stack-agnostic working style for coding agents — plan first, small diffs, never delete tests to go green — plus handoff notes and up-to-date docs via MCP.","description":"The general-purpose loadout to drop into any project you vibe-code. It fixes the habits that make\nagent sessions go wrong: diving in without a plan, 40-file diffs, \"fixing\" a failing test by deleting\nit, inventing APIs from stale training data, and losing all context when the session ends. Pairs well\nwith any stack-specific loadout.","highlights":["Plan-then-build skill that writes a short plan and waits for a thumbs up","Small, reviewable changes with a commit after each working step","Hard rules against weakening tests, silencing errors or adding surprise dependencies","Session-handoff skill that leaves a NOTES.md the next session (or agent) can pick up","Context7 MCP config for current library docs instead of guesses"],"version":"1.0.0","license":"MIT","author":"Agent Loadout","categories":["workflow"],"stacks":["any"],"featured":true,"deprecated":false,"last_checked":"2026-10-15","compatibility":{"claude-code":"native","codex":"adapter","cursor":"native","gemini-cli":"adapter","copilot":"adapter"},"counts":{"rules":2,"skills":2,"mcp":1},"requires":{"tools":["git"],"env":[],"mcp":["context7"]},"verification":{"status":"verified","checked_at":"2026-10-16T22:54:03Z","passed":9,"failed":0,"not_applicable":1,"skipped":0},"agent_tests":{"status":"untested","last_run":null,"per_agent":{"claude-code":"untested","codex":"untested","cursor":"untested","gemini-cli":"untested","copilot":"untested"}},"files":[{"path":"AGENTS.md","role":"instructions","description":"Working-style rules for any coding agent.","skill":null,"agent":null,"bytes":2199,"lines":31,"install_to":{"claude-code":"AGENTS.md","codex":"AGENTS.md","cursor":"AGENTS.md","gemini-cli":"AGENTS.md","copilot":"AGENTS.md"}},{"path":"CLAUDE.md","role":"adapter","description":"Imports AGENTS.md for Claude Code.","skill":null,"agent":"claude-code","bytes":527,"lines":11,"install_to":{"claude-code":"CLAUDE.md","codex":null,"cursor":null,"gemini-cli":null,"copilot":null}},{"path":"GEMINI.md","role":"adapter","description":"Imports AGENTS.md for Gemini CLI.","skill":null,"agent":"gemini-cli","bytes":401,"lines":10,"install_to":{"claude-code":null,"codex":null,"cursor":null,"gemini-cli":"GEMINI.md","copilot":null}},{"path":".cursor/rules/guardrails.mdc","role":"rules","description":"Always-on Cursor rule with the hard guard rails.","skill":null,"agent":null,"bytes":631,"lines":13,"install_to":{"claude-code":null,"codex":null,"cursor":".cursor/rules/guardrails.mdc","gemini-cli":null,"copilot":null}},{"path":"skills/plan-then-build/SKILL.md","role":"skill","description":"Writes a short plan for non-trivial work and waits for approval.","skill":"plan-then-build","agent":null,"bytes":1648,"lines":40,"install_to":{"claude-code":".claude/skills/plan-then-build/SKILL.md","codex":".agents/skills/plan-then-build/SKILL.md","cursor":".agents/skills/plan-then-build/SKILL.md","gemini-cli":".agents/skills/plan-then-build/SKILL.md","copilot":".agents/skills/plan-then-build/SKILL.md"}},{"path":"skills/session-handoff/SKILL.md","role":"skill","description":"Leaves a handoff note at the end of a session.","skill":"session-handoff","agent":null,"bytes":1278,"lines":32,"install_to":{"claude-code":".claude/skills/session-handoff/SKILL.md","codex":".agents/skills/session-handoff/SKILL.md","cursor":".agents/skills/session-handoff/SKILL.md","gemini-cli":".agents/skills/session-handoff/SKILL.md","copilot":".agents/skills/session-handoff/SKILL.md"}},{"path":"mcp.json","role":"mcp","description":"Context7 hosted MCP server for current library documentation.","skill":null,"agent":null,"bytes":116,"lines":9,"install_to":{"claude-code":".mcp.json","codex":null,"cursor":".cursor/mcp.json","gemini-cli":null,"copilot":null}}]},{"id":"astro-static-site","title":"Astro static site","summary":"Astro conventions for fast, zero-JS-by-default sites with content collections, plus a skill for deploying to Cloudflare Pages with headers and redirects.","description":"Astro is a great fit for portfolios, docs, blogs and landing pages, but agents love to turn it into a\nReact app with a hydrated component on every line. This loadout keeps pages static and fast, uses\ncontent collections for anything that looks like content, and finishes with a reliable Cloudflare\nPages deploy. (This very site is built on the same approach.)","highlights":["Zero JavaScript by default; islands only where there is real interactivity","Typed content collections with schemas instead of ad-hoc markdown imports","Images through astro:assets, semantic HTML and accessibility basics","Cloudflare Pages deploy skill: build settings, _headers, _redirects and custom domains"],"version":"1.0.0","license":"MIT","author":"Agent Loadout","categories":["web-app"],"stacks":["astro","typescript","cloudflare"],"featured":false,"deprecated":false,"last_checked":"2026-10-15","compatibility":{"claude-code":"native","codex":"native","cursor":"native","gemini-cli":"native","copilot":"native"},"counts":{"rules":2,"skills":1,"mcp":0},"requires":{"tools":["node","wrangler"],"env":[],"mcp":[]},"verification":{"status":"verified","checked_at":"2026-10-16T22:54:03Z","passed":9,"failed":0,"not_applicable":1,"skipped":0},"agent_tests":{"status":"untested","last_run":null,"per_agent":{"claude-code":"untested","codex":"untested","cursor":"untested","gemini-cli":"untested","copilot":"untested"}},"files":[{"path":"AGENTS.md","role":"instructions","description":"Astro static site rules.","skill":null,"agent":null,"bytes":2630,"lines":46,"install_to":{"claude-code":"AGENTS.md","codex":"AGENTS.md","cursor":"AGENTS.md","gemini-cli":"AGENTS.md","copilot":"AGENTS.md"}},{"path":"CLAUDE.md","role":"adapter","description":"Imports AGENTS.md for Claude Code.","skill":null,"agent":"claude-code","bytes":378,"lines":10,"install_to":{"claude-code":"CLAUDE.md","codex":null,"cursor":null,"gemini-cli":null,"copilot":null}},{"path":"GEMINI.md","role":"adapter","description":"Imports AGENTS.md for Gemini CLI.","skill":null,"agent":"gemini-cli","bytes":379,"lines":10,"install_to":{"claude-code":null,"codex":null,"cursor":null,"gemini-cli":"GEMINI.md","copilot":null}},{"path":".cursor/rules/astro-components.mdc","role":"rules","description":"Rule applied to .astro files.","skill":null,"agent":null,"bytes":815,"lines":14,"install_to":{"claude-code":null,"codex":null,"cursor":".cursor/rules/astro-components.mdc","gemini-cli":null,"copilot":null}},{"path":"skills/cloudflare-pages-deploy/SKILL.md","role":"skill","description":"Deploys a static build to Cloudflare Pages.","skill":"cloudflare-pages-deploy","agent":null,"bytes":2336,"lines":52,"install_to":{"claude-code":".claude/skills/cloudflare-pages-deploy/SKILL.md","codex":".agents/skills/cloudflare-pages-deploy/SKILL.md","cursor":".agents/skills/cloudflare-pages-deploy/SKILL.md","gemini-cli":".agents/skills/cloudflare-pages-deploy/SKILL.md","copilot":".agents/skills/cloudflare-pages-deploy/SKILL.md"}}]},{"id":"chrome-extension-mv3","title":"Chrome extension (Manifest V3)","summary":"Manifest V3 rules for service workers, messaging and minimal permissions, plus a skill that gets your extension through Chrome Web Store review.","description":"Agents trained on years of Manifest V2 tutorials will happily write background pages, remote code and\n\"<all_urls>\" permissions — all of which either break in Manifest V3 or get you rejected from the Chrome\nWeb Store. This loadout keeps your agent on MV3, keeps permissions tight, and walks through store\nsubmission so the review goes smoothly first time.","highlights":["Service worker lifecycle rules (no global state, use chrome.storage and alarms)","Least-privilege permissions with activeTab and optional host permissions","Clear message-passing pattern between content scripts, popup and service worker","Store-prep skill: permission justifications, privacy disclosures, zip packaging"],"version":"1.0.0","license":"MIT","author":"Agent Loadout","categories":["browser-extension"],"stacks":["chrome","javascript","typescript"],"featured":false,"deprecated":false,"last_checked":"2026-10-15","compatibility":{"claude-code":"native","codex":"native","cursor":"native","gemini-cli":"native","copilot":"native"},"counts":{"rules":2,"skills":1,"mcp":0},"requires":{"tools":["node","chrome"],"env":[],"mcp":[]},"verification":{"status":"verified","checked_at":"2026-10-16T22:54:03Z","passed":9,"failed":0,"not_applicable":1,"skipped":0},"agent_tests":{"status":"untested","last_run":null,"per_agent":{"claude-code":"untested","codex":"untested","cursor":"untested","gemini-cli":"untested","copilot":"untested"}},"files":[{"path":"AGENTS.md","role":"instructions","description":"Manifest V3 extension project rules.","skill":null,"agent":null,"bytes":3246,"lines":51,"install_to":{"claude-code":"AGENTS.md","codex":"AGENTS.md","cursor":"AGENTS.md","gemini-cli":"AGENTS.md","copilot":"AGENTS.md"}},{"path":"CLAUDE.md","role":"adapter","description":"Imports AGENTS.md for Claude Code.","skill":null,"agent":"claude-code","bytes":391,"lines":10,"install_to":{"claude-code":"CLAUDE.md","codex":null,"cursor":null,"gemini-cli":null,"copilot":null}},{"path":"GEMINI.md","role":"adapter","description":"Imports AGENTS.md for Gemini CLI.","skill":null,"agent":"gemini-cli","bytes":392,"lines":10,"install_to":{"claude-code":null,"codex":null,"cursor":null,"gemini-cli":"GEMINI.md","copilot":null}},{"path":".cursor/rules/manifest.mdc","role":"rules","description":"Rule applied when editing manifest.json.","skill":null,"agent":null,"bytes":831,"lines":15,"install_to":{"claude-code":null,"codex":null,"cursor":".cursor/rules/manifest.mdc","gemini-cli":null,"copilot":null}},{"path":"skills/extension-store-prep/SKILL.md","role":"skill","description":"Prepares a Chrome Web Store submission.","skill":"extension-store-prep","agent":null,"bytes":2357,"lines":38,"install_to":{"claude-code":".claude/skills/extension-store-prep/SKILL.md","codex":".agents/skills/extension-store-prep/SKILL.md","cursor":".agents/skills/extension-store-prep/SKILL.md","gemini-cli":".agents/skills/extension-store-prep/SKILL.md","copilot":".agents/skills/extension-store-prep/SKILL.md"}}]},{"id":"python-data-script","title":"Python data script","summary":"Rules for reproducible, single-file Python data scripts with uv and inline dependencies, plus a skill that sanity-checks a dataset before anyone trusts the numbers.","description":"For the scripts that turn a CSV export into a chart, a report or a cleaned file. Agents tend to write\none-off notebooks that only run on their machine and silently drop half the rows. This loadout makes\nevery script runnable with one command, keeps raw data untouched, and adds a sanity-check skill that\nlooks for the classic data mistakes before results get shared.","highlights":["Single-file scripts with PEP 723 inline dependencies, run with `uv run`","Raw data is read-only; outputs go to their own folder","Row counts and assumptions logged at each step, so silent data loss shows up","Sanity-check skill: types, nulls, duplicates, ranges, join explosions, date and currency traps"],"version":"1.0.0","license":"MIT","author":"Agent Loadout","categories":["data"],"stacks":["python","uv","polars","pandas"],"featured":false,"deprecated":false,"last_checked":"2026-10-15","compatibility":{"claude-code":"native","codex":"native","cursor":"native","gemini-cli":"native","copilot":"native"},"counts":{"rules":2,"skills":1,"mcp":0},"requires":{"tools":["uv","python"],"env":[],"mcp":[]},"verification":{"status":"verified","checked_at":"2026-10-16T22:54:03Z","passed":9,"failed":0,"not_applicable":1,"skipped":0},"agent_tests":{"status":"untested","last_run":null,"per_agent":{"claude-code":"untested","codex":"untested","cursor":"untested","gemini-cli":"untested","copilot":"untested"}},"files":[{"path":"AGENTS.md","role":"instructions","description":"Python data scripting rules.","skill":null,"agent":null,"bytes":2282,"lines":43,"install_to":{"claude-code":"AGENTS.md","codex":"AGENTS.md","cursor":"AGENTS.md","gemini-cli":"AGENTS.md","copilot":"AGENTS.md"}},{"path":"CLAUDE.md","role":"adapter","description":"Imports AGENTS.md for Claude Code.","skill":null,"agent":"claude-code","bytes":374,"lines":10,"install_to":{"claude-code":"CLAUDE.md","codex":null,"cursor":null,"gemini-cli":null,"copilot":null}},{"path":"GEMINI.md","role":"adapter","description":"Imports AGENTS.md for Gemini CLI.","skill":null,"agent":"gemini-cli","bytes":375,"lines":10,"install_to":{"claude-code":null,"codex":null,"cursor":null,"gemini-cli":"GEMINI.md","copilot":null}},{"path":".cursor/rules/python-scripts.mdc","role":"rules","description":"Rule applied to Python files.","skill":null,"agent":null,"bytes":593,"lines":14,"install_to":{"claude-code":null,"codex":null,"cursor":".cursor/rules/python-scripts.mdc","gemini-cli":null,"copilot":null}},{"path":"skills/data-sanity-check/SKILL.md","role":"skill","description":"Profiles a dataset and flags data quality problems.","skill":"data-sanity-check","agent":null,"bytes":2262,"lines":38,"install_to":{"claude-code":".claude/skills/data-sanity-check/SKILL.md","codex":".agents/skills/data-sanity-check/SKILL.md","cursor":".agents/skills/data-sanity-check/SKILL.md","gemini-cli":".agents/skills/data-sanity-check/SKILL.md","copilot":".agents/skills/data-sanity-check/SKILL.md"}}]},{"id":"roblox-luau","title":"Roblox Luau (Rojo)","summary":"Luau conventions for Rojo projects with a server-authoritative mindset, plus a skill that reviews every RemoteEvent for exploits before you publish.","description":"On Roblox, the client is the exploiter's playground: anything a LocalScript sends can be faked. Agents\nroutinely write remotes like \"GiveCoins(amount)\" that hand the game to the first script kiddie. This\nloadout teaches your agent typed Luau, the Rojo file layout, server authority and safe DataStore use,\nand adds a skill that audits every remote in the place.","highlights":["Server-authoritative rules: clients request, the server decides","--!strict typed Luau, task library, no deprecated wait/spawn","DataStore patterns with pcall, UpdateAsync and session-safe saving","Remote security review skill with a per-remote verdict"],"version":"1.0.0","license":"MIT","author":"Agent Loadout","categories":["gamedev","security"],"stacks":["roblox","luau","rojo"],"featured":false,"deprecated":false,"last_checked":"2026-10-15","compatibility":{"claude-code":"native","codex":"native","cursor":"native","gemini-cli":"native","copilot":"native"},"counts":{"rules":2,"skills":1,"mcp":0},"requires":{"tools":["rojo","roblox-studio"],"env":[],"mcp":[]},"verification":{"status":"verified","checked_at":"2026-10-16T22:54:03Z","passed":9,"failed":0,"not_applicable":1,"skipped":0},"agent_tests":{"status":"untested","last_run":null,"per_agent":{"claude-code":"untested","codex":"untested","cursor":"untested","gemini-cli":"untested","copilot":"untested"}},"files":[{"path":"AGENTS.md","role":"instructions","description":"Roblox Luau project rules for Rojo layouts.","skill":null,"agent":null,"bytes":2720,"lines":41,"install_to":{"claude-code":"AGENTS.md","codex":"AGENTS.md","cursor":"AGENTS.md","gemini-cli":"AGENTS.md","copilot":"AGENTS.md"}},{"path":"CLAUDE.md","role":"adapter","description":"Imports AGENTS.md for Claude Code.","skill":null,"agent":"claude-code","bytes":372,"lines":10,"install_to":{"claude-code":"CLAUDE.md","codex":null,"cursor":null,"gemini-cli":null,"copilot":null}},{"path":"GEMINI.md","role":"adapter","description":"Imports AGENTS.md for Gemini CLI.","skill":null,"agent":"gemini-cli","bytes":373,"lines":10,"install_to":{"claude-code":null,"codex":null,"cursor":null,"gemini-cli":"GEMINI.md","copilot":null}},{"path":".cursor/rules/luau-remotes.mdc","role":"rules","description":"Rule applied to server scripts that handle remotes.","skill":null,"agent":null,"bytes":1172,"lines":33,"install_to":{"claude-code":null,"codex":null,"cursor":".cursor/rules/luau-remotes.mdc","gemini-cli":null,"copilot":null}},{"path":"skills/remote-security-review/SKILL.md","role":"skill","description":"Audits every RemoteEvent and RemoteFunction for exploitable trust.","skill":"remote-security-review","agent":null,"bytes":2545,"lines":41,"install_to":{"claude-code":".claude/skills/remote-security-review/SKILL.md","codex":".agents/skills/remote-security-review/SKILL.md","cursor":".agents/skills/remote-security-review/SKILL.md","gemini-cli":".agents/skills/remote-security-review/SKILL.md","copilot":".agents/skills/remote-security-review/SKILL.md"}}]},{"id":"unity-game-jam","title":"Unity C# game jam","summary":"Unity C# conventions that respect the editor, .meta files and serialisation, plus a skill for scripted web builds ready for itch.io.","description":"Agents are good at C# and bad at Unity. They rename files without their .meta, break serialised\nfields, allocate every frame and forget that half the game lives in scenes and prefabs they cannot see.\nThis loadout fixes that, adds jam-scope discipline, and gives the agent a batch-mode build script for\nweb builds so you are not fighting the build window at the deadline.","highlights":["Rules for .meta files, serialised fields and prefab-first design","Performance habits that matter for web builds (no per-frame allocations or Find calls)","Batch-mode build skill with a ready-to-paste BuildScript.cs and itch.io compression settings","Cursor rule scoped to C# files under Assets/"],"version":"1.0.0","license":"MIT","author":"Agent Loadout","categories":["gamedev"],"stacks":["unity","csharp"],"featured":false,"deprecated":false,"last_checked":"2026-10-15","compatibility":{"claude-code":"native","codex":"native","cursor":"native","gemini-cli":"native","copilot":"native"},"counts":{"rules":2,"skills":1,"mcp":0},"requires":{"tools":["unity-editor"],"env":[],"mcp":[]},"verification":{"status":"verified","checked_at":"2026-10-16T22:54:03Z","passed":8,"failed":0,"not_applicable":2,"skipped":0},"agent_tests":{"status":"untested","last_run":null,"per_agent":{"claude-code":"untested","codex":"untested","cursor":"untested","gemini-cli":"untested","copilot":"untested"}},"files":[{"path":"AGENTS.md","role":"instructions","description":"Unity project and game jam rules.","skill":null,"agent":null,"bytes":2534,"lines":35,"install_to":{"claude-code":"AGENTS.md","codex":"AGENTS.md","cursor":"AGENTS.md","gemini-cli":"AGENTS.md","copilot":"AGENTS.md"}},{"path":"CLAUDE.md","role":"adapter","description":"Imports AGENTS.md for Claude Code.","skill":null,"agent":"claude-code","bytes":367,"lines":10,"install_to":{"claude-code":"CLAUDE.md","codex":null,"cursor":null,"gemini-cli":null,"copilot":null}},{"path":"GEMINI.md","role":"adapter","description":"Imports AGENTS.md for Gemini CLI.","skill":null,"agent":"gemini-cli","bytes":368,"lines":10,"install_to":{"claude-code":null,"codex":null,"cursor":null,"gemini-cli":"GEMINI.md","copilot":null}},{"path":".cursor/rules/unity-csharp.mdc","role":"rules","description":"Unity C# rule, applied to scripts under Assets/.","skill":null,"agent":null,"bytes":782,"lines":15,"install_to":{"claude-code":null,"codex":null,"cursor":".cursor/rules/unity-csharp.mdc","gemini-cli":null,"copilot":null}},{"path":"skills/unity-web-build/SKILL.md","role":"skill","description":"Builds a web (WebGL) player from the command line, ready for itch.io.","skill":"unity-web-build","agent":null,"bytes":2586,"lines":63,"install_to":{"claude-code":".claude/skills/unity-web-build/SKILL.md","codex":".agents/skills/unity-web-build/SKILL.md","cursor":".agents/skills/unity-web-build/SKILL.md","gemini-cli":".agents/skills/unity-web-build/SKILL.md","copilot":".agents/skills/unity-web-build/SKILL.md"}}]}]}