home / skills / laurigates / claude-plugins / configure-editor

This skill checks and configures EditorConfig and VS Code workspace settings to ensure consistent editor environments across a project.

npx playbooks add skill laurigates/claude-plugins --skill configure-editor

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
6.2 KB
---
model: haiku
created: 2025-12-16
modified: 2026-02-10
reviewed: 2025-12-16
description: Check and configure EditorConfig and VS Code workspace settings
allowed-tools: Glob, Grep, Read, Write, Edit, Bash, AskUserQuestion, TodoWrite
argument-hint: "[--check-only] [--fix]"
name: configure-editor
---

# /configure:editor

Check and configure editor settings for consistency across the team.

## When to Use This Skill

| Use this skill when... | Use another approach when... |
|------------------------|------------------------------|
| Setting up consistent editor configuration across a team | Personal editor preferences only (configure in user settings) |
| Checking EditorConfig or VS Code workspace compliance | Just viewing existing .editorconfig (use Read tool) |
| Configuring format-on-save for detected languages | Project doesn't use VS Code (configure for other editors manually) |
| Adding recommended VS Code extensions for project tools | Extensions are already properly configured |
| Setting up debug configurations and tasks | Simple project with no debugging needs |

## Context

- EditorConfig: !`test -f .editorconfig && echo "EXISTS" || echo "MISSING"`
- VS Code settings: !`test -f .vscode/settings.json && echo "EXISTS" || echo "MISSING"`
- VS Code extensions: !`test -f .vscode/extensions.json && echo "EXISTS" || echo "MISSING"`
- VS Code launch: !`test -f .vscode/launch.json && echo "EXISTS" || echo "MISSING"`
- VS Code tasks: !`test -f .vscode/tasks.json && echo "EXISTS" || echo "MISSING"`
- Project languages: !`find . -maxdepth 1 \( -name 'package.json' -o -name 'tsconfig.json' -o -name 'pyproject.toml' -o -name 'Cargo.toml' -o -name 'biome.json' \) 2>/dev/null`
- Project standards: !`test -f .project-standards.yaml && echo "EXISTS" || echo "MISSING"`

## Parameters

Parse from `$ARGUMENTS`:

- `--check-only`: Report compliance status without modifications
- `--fix`: Apply all fixes automatically without prompting

## Execution

Execute this editor configuration workflow:

### Step 1: Detect project languages and tools

Check for language indicators:

| Indicator | Language/Tool | Configuration Needed |
|-----------|---------------|---------------------|
| `package.json` | JavaScript/TypeScript | Biome |
| `tsconfig.json` | TypeScript | TypeScript extension |
| `pyproject.toml` | Python | Ruff, Python extension |
| `Cargo.toml` | Rust | rust-analyzer |
| `biome.json` | Biome formatter/linter | Biome extension |

### Step 2: Analyze current editor configuration

Check existing configuration against these requirements:

**EditorConfig:**
1. Verify `.editorconfig` exists
2. Check root directive, charset, end-of-line, final newline, trim whitespace
3. Check language-specific sections match detected languages

**VS Code Settings:**
1. Verify `.vscode/settings.json` exists
2. Check format-on-save, default formatters per language, language-specific settings

**VS Code Extensions:**
1. Verify `.vscode/extensions.json` exists
2. Check recommended extensions match project tools

### Step 3: Generate compliance report

Print a formatted compliance report showing status of each check:

```
Editor Configuration Compliance Report
=======================================
Project: [name]
Languages: [detected]
Detected Tools: [detected]

EditorConfig:     [status per check]
VS Code Settings: [status per check]
VS Code Extensions: [status per check]

Overall: [X issues found]
Recommendations: [list specific fixes]
```

If `--check-only`, stop here.

### Step 4: Configure editor files (if --fix or user confirms)

Apply fixes based on detected languages. Use configurations from [REFERENCE.md](REFERENCE.md).

1. Create or update `.editorconfig` with language-specific sections
2. Create or update `.vscode/settings.json` with format-on-save and per-language formatters
3. Create or update `.vscode/extensions.json` with recommended extensions for detected tools
4. Add language-specific settings (TypeScript import preferences, Python interpreter, Rust clippy)

### Step 5: Create launch and task configurations

1. Create `.vscode/launch.json` with debug configurations for detected languages
2. Create `.vscode/tasks.json` with build/test/lint tasks

### Step 6: Update standards tracking

Update `.project-standards.yaml`:

```yaml
components:
  editor: "2025.1"
  editor_config: true
  vscode_settings: true
  vscode_extensions: true
```

### Step 7: Create documentation

Create `docs/EDITOR_SETUP.md` with quick start instructions for the team covering VS Code setup, recommended extensions, and troubleshooting.

### Step 8: Print completion report

Print a summary of all changes made, including files created/updated, extensions recommended, and next steps for the team.

For detailed configuration templates and language-specific settings, see [REFERENCE.md](REFERENCE.md).

## Agentic Optimizations

| Context | Command |
|---------|---------|
| Check if EditorConfig exists | `test -f .editorconfig && echo "exists" \|\| echo "missing"` |
| Validate EditorConfig syntax | `editorconfig-checker .editorconfig 2>&1` (if installed) |
| Check VS Code settings exist | `test -f .vscode/settings.json && jq empty .vscode/settings.json 2>&1` |
| List detected languages | `find . -maxdepth 1 \( -name 'package.json' -o -name 'pyproject.toml' -o -name 'Cargo.toml' \) -exec basename {} \;` |
| Quick compliance check | `/configure:editor --check-only` |
| Auto-fix all issues | `/configure:editor --fix` |

## Flags

| Flag | Description |
|------|-------------|
| `--check-only` | Report status without offering fixes |
| `--fix` | Apply all fixes automatically without prompting |

## Examples

```bash
# Check compliance and offer fixes
/configure:editor

# Check only, no modifications
/configure:editor --check-only

# Auto-fix all issues
/configure:editor --fix
```

## Error Handling

- **No language detected**: Create minimal EditorConfig
- **Conflicting formatters**: Warn about duplicate formatter configs
- **Invalid JSON**: Report parse error, offer to replace with template

## See Also

- `/configure:formatting` - Configure code formatting
- `/configure:linting` - Configure linting tools
- `/configure:all` - Run all compliance checks
- **EditorConfig documentation**: https://editorconfig.org
- **VS Code settings reference**: https://code.visualstudio.com/docs/getstarted/settings

Overview

This skill checks and configures EditorConfig and VS Code workspace settings to enforce consistent editor behavior across a project. It detects project languages and tools, reports compliance, and can create or update .editorconfig and .vscode workspace files to apply recommended settings. Use it to standardize format-on-save, default formatters, recommended extensions, and basic debug/tasks for the team.

How this skill works

The skill inspects the repository for language indicators (package.json, tsconfig.json, pyproject.toml, Cargo.toml, biome.json) to infer required formatters and extensions. It then verifies the presence and contents of .editorconfig, .vscode/settings.json, .vscode/extensions.json, .vscode/launch.json, and .vscode/tasks.json and generates a compliance report. When asked to fix, it applies templates to create or update those files and updates a project standards tracking file and a short onboarding doc.

When to use it

  • Onboarding a new repository to enforce consistent editor rules across contributors
  • During CI or pre-merge checks to verify editor settings and recommended extensions
  • When introducing a new language or tool that requires specific formatter or extension
  • Before a release to ensure workspace settings and tasks are present for debugging and builds
  • To generate a quick, team-friendly Editor setup document for contributors

Best practices

  • Run the skill with --check-only in CI to surface configuration drift without modifying files
  • Review recommended extensions before auto-applying them to avoid personal preference conflicts
  • Keep language-specific sections in .editorconfig aligned to detected project files
  • Prefer workspace settings for project conventions and leave personal preferences to user settings
  • Use the generated docs/EDITOR_SETUP.md to communicate required steps to the team

Example use cases

  • A TypeScript monorepo needs consistent format-on-save, import formatting, and the TypeScript extension recommended
  • A Python project requires Ruff as the formatter/linter and a workspace setting for the interpreter and formatter
  • A Rust service should include rust-analyzer recommendation and debug launch tasks for local runs
  • A new project with no editor files gets minimal .editorconfig and basic VS Code tasks and launch configs
  • A CI job runs the skill in --check-only mode to ensure no repository deviates from project standards

FAQ

What does --check-only do?

It runs all detection and validation steps and prints a compliance report without creating or modifying any files.

Can the skill overwrite existing personal settings?

By default it updates workspace files under .vscode and project files like .editorconfig. Personal user settings are not modified.