Conventions for writing .mdc rule and skill files distributed by the plugin
php artisan boost:add-skill symkit/bundle-ai-kit
Save this content to: .cursor/rules/mdc-content.mdc
# MDC Content Conventions
These rules govern `.mdc` files under `ai/cursor/rules/` and `ai/cursor/skills/*/SKILL.mdc`. Agent prompts in `ai/cursor/agents/` are plain `.md`. `ai/AGENTS.md` is plain Markdown at project root after sync.
## Frontmatter — Rules
```yaml
---
description: Short description of what the rule covers
globs: src/**/*.php
alwaysApply: false
---
```
- `description` (required): one-line summary, no quotes needed unless it contains colons
- `alwaysApply: true`: rule loads in every interaction (use for the main project rule only)
- `alwaysApply: false` + `globs`: rule activates when matching files are edited
- `globs` supports CSV: `Makefile, grumphp.yml, .github/**/*.yml`
## Frontmatter — Skills
```yaml
---
name: skill-name
description: "Detailed trigger description with keywords in quotes"
---
```
- `name` (required): kebab-case, matches the directory name
- `description` (required): include trigger phrases so the AI activates the skill at the right time
- Wrap description in quotes when it contains colons or special YAML characters
## Body Format
- Markdown with `#` headings (H1 for title, H2+ for sections)
- Code examples in fenced blocks with language tag
- Anti-patterns in tables: `| Anti-Pattern | Impact |`
- Concrete, actionable rules — no prose or filler
- Each section should be self-contained
## Conversion Compatibility
The body must render correctly as plain Markdown (for Claude Code and Windsurf):
- No Cursor-specific syntax in the body (frontmatter is stripped for other editors)
- No references to `.mdc` format or Cursor features
- Skill cross-references: plain text, e.g. "see the `quality-install` skill"
## File Naming
- Rules: `kebab-case.mdc` (e.g. `architecture.mdc`, `symfony-bundle.mdc`)
- Skills: `SKILL.mdc` as main file, additional files in kebab-case (e.g. `advanced-patterns.mdc`)
- Non-`.mdc` files in skills (e.g. templates under `quality-install/templates/`) are copied as-is without conversion
## Content Guidelines
- One rule per concern (code style, tests, quality, etc.)
- Skills cover workflows (feature pipeline, quality-install, onboard, etc.)
- Include an "After Every Change" section with the relevant `make` targets
- Include a "Forbidden" or "Anti-Patterns" section for common mistakes
These rules govern .mdc files under ai/cursor/rules/ and ai/cursor/skills/*/SKILL.mdc. Agent prompts in ai/cursor/agents/ are plain .md. ai/AGENTS.md is plain Markdown at project root after sync.
---
description: Short description of what the rule covers
globs: src/**/*.php
alwaysApply: false
---
description (required): one-line summary, no quotes needed unless it contains colonsalwaysApply: true: rule loads in every interaction (use for the main project rule only)alwaysApply: false + globs: rule activates when matching files are editedglobs supports CSV: Makefile, grumphp.yml, .github/**/*.yml---
name: skill-name
description: "Detailed trigger description with keywords in quotes"
---
name (required): kebab-case, matches the directory namedescription (required): include trigger phrases so the AI activates the skill at the right time# headings (H1 for title, H2+ for sections)| Anti-Pattern | Impact |The body must render correctly as plain Markdown (for Claude Code and Windsurf):
.mdc format or Cursor featuresquality-install skill"kebab-case.mdc (e.g. architecture.mdc, symfony-bundle.mdc)SKILL.mdc as main file, additional files in kebab-case (e.g. advanced-patterns.mdc).mdc files in skills (e.g. templates under quality-install/templates/) are copied as-is without conversionmake targetsHow can I help you explore Laravel packages today?