AI Skill StudioAI Skill Studio
Skills
Presets:

Windsurf rules generator: Cascade rules for your stack

Pick a preset, set when the rule should apply, and download the Markdown file for .windsurf/rules/. Runs in your browser; nothing is uploaded.

Target Standard & File Format

AI Agent Rules & Skills
Context Shields & Privacy (Ignore Files)
Integrations & Machine Documentation
AI Governance & Multi-Agent Planning Suite

Identity & Activation Rules

3 chips
Scoped domain keywords evaluated in real time
api-routescode-auditsrefactoring
Suggested Chips:

Technology Stack Context

Engineering Philosophy

Flexible & Adaptable

Architectural & Code Quality Conventions

Less rigid & configurable

Agent Behavioral Guardrails

Select active rules
Security & Trust Boundaries
Always included
  • Untrusted Content Is Data
  • Encoded Payloads
  • Least-Privilege File Access
  • Confirm Irreversible Actions
  • Secret Handling
  • Validation Failures
  • Conflicting Requests

Step-by-Step Workflow Procedures

Windsurf Cascade Rules: how it works

Windsurf's Cascade agent reads workspace rules from Markdown files in .windsurf/rules/. Each rule has an activation mode set by trigger in its frontmatter: always on, on a glob match, when the model decides the rule's description is relevant, or only when you @-mention it. Global rules that apply to every workspace are kept in Windsurf's settings. Windsurf limits the length of each rule file, so short, specific rules work better than one long file.

Where the file goes

  • .windsurf/rules/nextjs.mdtrigger: globFramework conventions attached when route or component files are in play.
  • .windsurf/rules/testing.mdtrigger: model_decisionLoaded when Cascade judges the description relevant, such as when you ask for tests.
  • Global rules (Windsurf settings)All workspacesPersonal preferences that should apply in every project.

What goes in it

ActivationThe frontmatter sets when Cascade applies the rule.
---
trigger: glob
globs: src/**/*.test.ts
---
Rule bodyConcrete instructions Cascade can follow and check.
- Use Vitest; never add Jest.
- One describe block per module, named after the file.
- Run `pnpm vitest run <file>` after editing a test.

Tips

  • Use always_on only for rules every request needs.
  • Give model-decision rules a clear description; Cascade decides from it.
  • Split rules by concern (styling, data access, tests) to stay within the length limit.
  • Commit .windsurf/rules/ so the whole team gets the same rules.

Windsurf presets (32)

Each one opens the generator with that file filled in for the stack. Change what you need, then copy or download it.

Which file do I need?

Each AI coding tool reads its own file from its own place. Find your tool, put the file where the table says, and check when it actually gets loaded. Every file name opens a generator for that format.

AI instruction files by tool, with location and load timing
Agent rules and tool config
Cursor<rule-name>.mdcGoes in: .cursor/rules/Loaded: Per rule: always, when globs match the files in play, when the agent finds the description relevant, or on @-mention.
Claude CodeSKILL.mdGoes in: .claude/skills/<skill-name>/, or ~/.claude/skills/ for all projectsLoaded: Name and description at startup. The full file only when a task matches or you run /skill-name.
Claude CodeCLAUDE.mdGoes in: Repo root, or ~/.claude/CLAUDE.md for all projectsLoaded: Every session, in full. A CLAUDE.md in a subfolder loads when Claude works there.
Codex, Cursor, Copilot coding agent and othersAGENTS.mdGoes in: Repo root. Nested files cover their subfolder.Loaded: At the start of each task. For Claude Code, add @AGENTS.md to CLAUDE.md.
Claude Code, Claude Desktop, Cursor.mcp.jsonGoes in: Repo root for Claude Code. Claude Desktop uses claude_desktop_config.json; Cursor uses .cursor/mcp.json.Loaded: At startup, so restart after editing. Claude Code asks before using servers from .mcp.json.
Windsurf<rule-name>.mdGoes in: .windsurf/rules/Loaded: Per rule trigger: always on, glob match, model decision, or manual @-mention.
GitHub Copilotcopilot-instructions.mdGoes in: .github/Loaded: With every Copilot Chat, code review and coding agent request in the repo. Not used for inline completions.
ChatGPT / OpenAI APIopenai-custom-instructions.mdGoes in: prompts/, as a copy you versionLoaded: Only when pasted into ChatGPT custom instructions or sent as the system message.
Gemini API / AI Studiogemini-system-instructions.jsonGoes in: prompts/, as a copy you versionLoaded: Only when passed as systemInstruction or pasted into AI Studio.
Ignore files
Cursor.cursorignoreGoes in: Repo rootLoaded: Always. Indexing and AI features skip matching files (best effort: terminal commands can still read them).
Claude Code.claudeignoreGoes in: Repo rootLoaded: Keep it as your pattern list, and mirror secret paths in permissions.deny in .claude/settings.json, the setting Claude Code documents for blocking reads.
Reference docs
Any LLM or crawlerllms.txtGoes in: Repo root, or your site root as /llms.txtLoaded: Only when a tool or person fetches it. Nothing loads it automatically.
Any agentARCHITECTURE.mdGoes in: Repo rootLoaded: When your rules file points to it, or when the agent explores the repo.
Planning docs
Any agentPRD.mdGoes in: Repo rootLoaded: When your rules file tells the agent to read it.
Any agentDESIGN.mdGoes in: Repo rootLoaded: When your rules file tells the agent to read it, usually before UI work.
Any agentTASK.mdGoes in: Repo rootLoaded: At the start and end of a task, if your rules say to read and update it.
Any agentMEMORY.mdGoes in: Repo rootLoaded: At session start, if your rules say so. Agents add lessons as they go.

What a good rule looks like

Agents follow rules they can check. Swap advice for commands, paths and explicit “never” lines.

Give commands, not wishes

CLAUDE.md or AGENTS.md
Vague
## Guidelines
- Write clean code.
- Follow best practices.
- Make sure tests pass.
Specific
## Commands
- Test one file: pnpm vitest run src/lib/date.test.ts
- Typecheck: pnpm tsc --noEmit
- Never run pnpm db:reset. It wipes the shared dev database.

Why it works: The agent can run each line as written, and the "never" rule names the exact command and the reason.

Scope rules to the files they cover

.cursor/rules/components.mdc
Vague
---
alwaysApply: true
---
Use React best practices.
Specific
---
globs: src/components/**/*.tsx
alwaysApply: false
---
- Reuse Button and Input from @/components/ui; never add a UI library.
- One component per file, named export, props typed with an interface.

Why it works: It loads only when a component file is in play, and every line is something the model can check.

Tell a skill when to run

SKILL.md
Vague
---
name: helper
description: Helps with code.
---
Specific
---
name: db-migration
description: Writes and reviews Prisma migrations. Use when schema.prisma changes or the user asks for a migration.
---

Why it works: Claude picks a skill by its description, so say what it does and when to use it.

Copy-ready starters

Complete files from the preset library. Copy one as it is, or open it to change the stack, commands and rules before you download it.

Browse the full preset library

Frequently asked questions

Where are Windsurf rules stored?

Workspace rules are Markdown files in .windsurf/rules/ in your project. Global rules apply to every workspace and are edited in Windsurf's settings.

Does Windsurf load every rule automatically?

Only rules with trigger: always_on. Others load on a glob match, when Cascade decides the description fits the task, or when you @-mention them.

Can I reuse my Cursor rules in Windsurf?

The rule text carries over; the frontmatter does not. Cursor uses globs and alwaysApply, Windsurf uses trigger and globs. The rules converter in AI Skill Studio rewrites one into the other.

CLAUDE.md vs AGENTS.md: which do I need?

Claude Code reads CLAUDE.md. AGENTS.md is the shared file that OpenAI Codex, Cursor, GitHub Copilot's coding agent and a growing list of other agents read. If your team uses more than one tool, put the rules in AGENTS.md and add the line @AGENTS.md to CLAUDE.md so Claude Code imports the same file.

Why is Cursor ignoring my rules?

Usually it's the frontmatter. A rule with alwaysApply: false and no globs only loads when the agent decides its description is relevant, or when you @-mention it. Check that the file is in .cursor/rules/, that globs match the files you are editing, and that the description says when the rule applies. Rules don't affect Tab autocomplete at all.

How long should CLAUDE.md be?

Aim for under 200 lines. Claude Code loads the whole file into every session, so each line costs context and competes with the others for attention. Keep build and test commands, the folder layout and hard "never" rules in it. Move long procedures into skills or separate docs that the file points to.

Where do Claude Code skills go?

Each skill is a folder with a SKILL.md inside: .claude/skills/<skill-name>/SKILL.md for one project, or ~/.claude/skills/<skill-name>/SKILL.md for all of your projects. Claude Code keeps only each skill's name and description in context, and loads the full file when a task matches it or when you type /skill-name.

How do I stop AI tools from reading my .env files?

For Cursor, list secrets such as .env*, *.pem and *.key in .cursorignore at the repo root. For Claude Code, add deny rules like Read(./.env) and Read(./.env.*) under permissions.deny in .claude/settings.json, which is the setting Claude Code documents for blocking file reads. Neither replaces keeping secrets out of the repo.

Do AI tools read PRD.md, TASK.md or ARCHITECTURE.md automatically?

No. Agents load their own rules file (CLAUDE.md, AGENTS.md or Cursor rules) and nothing else on their own. Name the other docs in that file, for example "Read PRD.md and TASK.md before you start", and the agent opens them when it needs them. In CLAUDE.md you can also write @PRD.md, but that loads the file into every session.

Can it write rules from my existing code?

Yes. Click Read your code and point it at a GitHub repository or a local folder. Besides the manifest, it reads a sample of your source files and any existing CLAUDE.md, AGENTS.md or Cursor rules, then writes only the conventions most of the code follows, such as test layout, file naming, import alias, error classes and logger, each with how many files back it. The examples in the file quote a real function from your code.

Does AI Skill Studio upload my code?

No. Presets, code reading, editing and ZIP export all run in your browser, and nothing you type or import is sent to DevScratchpad. Reading a local folder happens entirely in your browser. Reading a GitHub repository is the only network call, and your browser sends it straight to GitHub.