CLAUDE.md · git:20260712.4a77b45 · 2026-07-12 · sha256 6f07c054a0501844

CLAUDE.md git:20260712.4a77b45A

Immutable. This exact content is served forever at /api/v1/blob/6f07c054a0501844.

# Claude Godot Tools - Development Guidelines

## Project Overview

This repository contains Claude plugins for Godot Engine development, including:

- **gdscript-toolkit** - GDScript utilities for file management, validation, and formatting
- **gdunit4-toolkit** - gdUnit4 testing framework integration with test runners, writers, and analyzers

## Plugin Validation

**IMPORTANT**: After modifying any plugin-related files, always validate the marketplace and plugin configurations.

### Required Validation Steps

**Validate the marketplace manifest**:
```bash
claude plugin validate .claude-plugin/marketplace.json
```

This validates the entire marketplace configuration including all plugins, skills, and agents.

### When to Validate

Run validation after:
- Modifying `.claude-plugin/marketplace.json`
- Adding/removing skills or agents
- Updating skill manifests (SKILL.md files)
- Changing plugin metadata or structure
- Modifying agent configurations

This ensures all plugin configurations are properly formatted and compatible with Claude Code before committing changes.

## Version Bumping

**IMPORTANT**: Whenever you modify anything under a plugin (skills, scripts, agents, SKILL.md, bundled binaries, etc.), you MUST bump the version numbers in `.claude-plugin/marketplace.json` in the same PR — both the affected plugin's `version` and the top-level `metadata.version` for the marketplace itself.

### How to pick the bump level

Follow semver. Match the plugin bump to the biggest change in that plugin:

- **patch** — bug fix, dependency `patch` version update, doc-only tweak that doesn't change how the skill is used
- **minor** — new skill / new agent / new feature, dependency `minor` version update, SKILL.md usage surface change (e.g. renamed commands, dropped wrapper scripts, added flags in the recommended examples)
- **major** — removed skill/agent, breaking change to how existing users must invoke things, migration to a different backing tool

Then bump the top-level `metadata.version` one level *below* the plugin bump (patch when a sub-plugin got a minor, patch when a sub-plugin got a patch, minor when a sub-plugin got a major or multiple plugins changed at once).

### Historical patterns for reference

- Formatter `0.19.x → 0.20.0` (upstream minor) → `gdscript-toolkit 1.5.x → 1.6.0` + `marketplace 1.0.0 → 1.0.1` (#23)
- Formatter `0.20.0 → 0.20.1` (upstream patch) → `gdscript-toolkit 1.6.0 → 1.6.1` (#24)
- New skill added to gdscript-toolkit + gdUnit4 v6 API update → `gdscript-toolkit 1.6.1 → 1.7.0`, `gdunit4-toolkit 2.2.0 → 2.3.0` + `marketplace 1.0.1 → 1.1.0` (#25)

### What to also check

- `README.md` intentionally does NOT list per-plugin versions (marketplace.json is the single source since #25) — do not add version numbers back to README.
- If a plugin has its own `.claude-plugin/plugin.json` (currently only `gdscript-lsp/`), keep its `version` in sync with the marketplace entry.