vb6-guidelineslisted
Install: claude install-skill alexcassol/claude-vb6-skills
# VB6 Guidelines
VB6 is not VB.NET. It is not C#. It is not VBA. The rules below reflect what the
VB6 compiler (1998) requires and what the COM ecosystem expects.
## 1. Case-preservation is absolute in existing code
VB6 is case-insensitive at the compiler level. Diff tools (Git, GitHub, GitLab,
Bitbucket, code review tools) are case-sensitive. Changing the case of an
identifier in existing code pollutes pull requests with ghost changes, hides the
real diff, and breaks `git blame`.
**Absolute rule:** when editing existing code, the case of every identifier
stays exactly as it is. No exceptions.
This applies to:
- Variables and parameters (`m_StrName` stays `m_StrName` even if the current
convention is `m_strName`)
- Properties and procedures (`Public Sub ReadFile` is not "normalized" to
`ReadFile` if it is already `ReadFile`)
- Keywords (`If`/`Then`/`End If` — preserve as written; the IDE may have
normalized different files differently)
- Type names (`As String`, `As Long`)
- Constants (`vbCrLf` vs `vbCRLF`)
- References to module and class names
**When you may use the "correct" case:**
- **New** code (new procedure, new module, new variable)
- When the user explicitly asks for normalization
**When you may not, even when it looks obvious:**
- "Taking advantage" of a bugfix commit to normalize
- "Since I'm already here" during a legitimate refactor of something else
- Cosmetic cleanup without explicit request
The cost of polluting the diff outweighs the value o