Skip to content

Commit 31f7cd5

Browse files
Refactor: Unified overrides directory (0.7.1) (#3)
* refactor: replace custom fields with unified overrides directory Replace individual customization config fields with single overrides directory: **Before (0.7.0):** - paths.custom_instructions: ~/music-projects/CUSTOM_CLAUDE.md - paths.custom_pronunciation: ~/music-projects/CUSTOM_PRONUNCIATION.md **After (0.7.1):** - paths.overrides: ~/music-projects/overrides/ - CLAUDE.md (workflow instructions) - pronunciation-guide.md (phonetic spellings) - explicit-words.md (future) - lyric-writing-guide.md (future) **Benefits:** - Single config field for all customizations - Self-documenting (file names match what they override) - Easy discovery (ls overrides/) - Future-proof (new overrides without config changes) - Convention over configuration **Changes:** - config/config.example.yaml: Replace two fields with paths.overrides - config/README.md: Replace two sections with "Overrides System" guide - CLAUDE.md: Update session start to load from overrides directory - skills/configure/SKILL.md: Single prompt for overrides directory - skills/pronunciation-specialist/SKILL.md: Load from {overrides}/pronunciation-guide.md **Migration:** Automatic - skills check {overrides}/[file].md with fallback to base. Old config fields removed from examples but would still work in user configs. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * chore: release 0.7.1 --------- Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent ba0ab93 commit 31f7cd5

8 files changed

Lines changed: 178 additions & 148 deletions

File tree

.claude-plugin/marketplace.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
{
88
"name": "bitwize-music",
99
"description": "AI music generation workflow for Suno - album concepts, lyrics, prompts, mastering, release",
10-
"version": "0.7.0",
10+
"version": "0.7.1",
1111
"source": "./"
1212
}
1313
]

.claude-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "bitwize-music",
33
"description": "AI music generation workflow for Suno - album concepts, lyrics, prompts, mastering, release",
4-
"version": "0.7.0",
4+
"version": "0.7.1",
55
"author": {
66
"name": "bitwize-music"
77
},

CHANGELOG.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,21 @@ This project uses [Conventional Commits](https://conventionalcommits.org/) and [
1212

1313
### Fixed
1414

15-
## [0.7.0] - 2026-01-26
15+
## [0.7.1] - 2026-01-26
16+
17+
### Changed
18+
- **BREAKING**: Refactored customization system to use unified overrides directory
19+
- Replaced `paths.custom_instructions` with `paths.overrides`
20+
- Replaced `paths.custom_pronunciation` with `paths.overrides`
21+
- Single directory now contains all override files: `~/music-projects/overrides/`
22+
- Override files: `CLAUDE.md`, `pronunciation-guide.md`, `explicit-words.md` (future), etc.
23+
- Benefits: self-documenting, easy discovery, future-proof, convention over configuration
24+
- **Note**: Released immediately after 0.7.0 to fix design before user adoption
25+
26+
### Fixed
27+
- Config design now scales for future overrides without new config fields
28+
29+
## [0.7.0] - 2026-01-26 **[DEPRECATED - Use 0.7.1]**
1630

1731
### Added
1832
- Custom instructions support (`paths.custom_instructions` config field)

CLAUDE.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -178,12 +178,12 @@ At the beginning of a fresh session:
178178
Option 2: mkdir -p ~/.bitwize-music && cp config/config.example.yaml ~/.bitwize-music/config.yaml
179179
```
180180

181-
1b. **Load custom instructions (if present)** - Check for user's custom Claude instructions:
182-
- Read `paths.custom_instructions` from config
183-
- If not set, check default location: `{content_root}/CUSTOM_CLAUDE.md`
184-
- If file exists, read and incorporate the instructions immediately
185-
- If file doesn't exist, skip silently (this is optional)
186-
- Custom instructions supplement base CLAUDE.md (they don't override)
181+
1b. **Load overrides (if present)** - Check for user's override files:
182+
- Read `paths.overrides` from config (default: `{content_root}/overrides`)
183+
- Check for `{overrides}/CLAUDE.md` - if exists, read and incorporate instructions immediately
184+
- Check for `{overrides}/pronunciation-guide.md` - if exists, merge with base pronunciation guide
185+
- If override files don't exist, skip silently (overrides are optional)
186+
- Override instructions supplement (don't replace) base files
187187

188188
2. **Check skill models** - Run `/bitwize-music:skill-model-updater check` to verify all skills use current Claude models. If any are outdated, offer to update them.
189189
3. **Check IDEAS.md** - Check `{content_root}/IDEAS.md` for pending album ideas
@@ -269,7 +269,7 @@ Report all issues with proposed fixes, then proceed.
269269

270270
**Pronunciation guides:**
271271
- Base guide: `/reference/suno/pronunciation-guide.md` (universal rules, common homographs, tech terms)
272-
- Custom guide: `{content_root}/CUSTOM_PRONUNCIATION.md` (artist names, album-specific terms) - optional, merged at session start
272+
- Override guide: `{overrides}/pronunciation-guide.md` (artist names, album-specific terms) - optional, merged at session start
273273

274274
**Mandatory**: When using "live" in lyrics, ask which pronunciation (LYVE vs LIV).
275275

@@ -359,11 +359,11 @@ For deep research, `/bitwize-music:researcher` coordinates specialists:
359359
360360
Skills can update their own reference documentation when new issues are discovered:
361361
362-
- `/bitwize-music:pronunciation-specialist` → Adds artist/album-specific pronunciations to custom guide (`{content_root}/CUSTOM_PRONUNCIATION.md`), never edits base guide
362+
- `/bitwize-music:pronunciation-specialist` → Adds artist/album-specific pronunciations to override guide (`{overrides}/pronunciation-guide.md`), never edits base guide
363363
- `/bitwize-music:suno-engineer` → Updates `/reference/suno/*.md` with new tips, techniques, version changes
364364
- `/bitwize-music:skill-model-updater` → Updates model references across all skills when new Claude models release
365365
366-
**The rule**: When a skill discovers something new, it should add it to the relevant reference file so future invocations benefit. User-specific content (pronunciations) goes to custom guide to avoid plugin update conflicts.
366+
**The rule**: When a skill discovers something new, it should add it to the relevant reference file so future invocations benefit. User-specific content (pronunciations) goes to overrides directory to avoid plugin update conflicts.
367367
368368
### Model Strategy
369369

config/README.md

Lines changed: 105 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@ paths:
4040
content_root: "~/music-projects" # Albums, artists, research
4141
audio_root: "~/music-projects/audio" # Mastered audio output
4242
documents_root: "~/music-projects/docs" # PDFs, primary sources
43-
custom_instructions: "~/music-projects/CUSTOM_CLAUDE.md" # Optional custom workflow instructions
44-
custom_pronunciation: "~/music-projects/CUSTOM_PRONUNCIATION.md" # Optional custom phonetic spellings
43+
overrides: "~/music-projects/overrides" # Optional overrides directory
4544

4645
# Platform URLs
4746
urls:
@@ -82,8 +81,7 @@ The `~/.bitwize-music/` directory also contains:
8281
| `paths.content_root` | Yes | Where albums and artists live |
8382
| `paths.audio_root` | Yes | Where mastered audio goes |
8483
| `paths.documents_root` | Yes | Where PDFs/sources go |
85-
| `paths.custom_instructions` | No | Path to markdown file with custom Claude instructions. Defaults to `{content_root}/CUSTOM_CLAUDE.md` if not set. |
86-
| `paths.custom_pronunciation` | No | Path to markdown file with custom phonetic spellings. Defaults to `{content_root}/CUSTOM_PRONUNCIATION.md` if not set. Merges with base pronunciation guide. |
84+
| `paths.overrides` | No | Directory containing override files for skills and workflows. Defaults to `{content_root}/overrides` if not set. |
8785
| `urls.soundcloud` | No | SoundCloud profile URL |
8886
| `urls.spotify` | No | Spotify artist URL |
8987
| `urls.bandcamp` | No | Bandcamp URL |
@@ -100,72 +98,106 @@ Config not found. Run:
10098
Then edit ~/.bitwize-music/config.yaml with your settings.
10199
```
102100

103-
## Custom Instructions
104-
105-
You can provide custom Claude instructions to supplement the base CLAUDE.md workflow:
106-
107-
**Setup:**
108-
1. Set `paths.custom_instructions` in config (or use default)
109-
2. Create the file with your custom instructions:
110-
```bash
111-
touch ~/music-projects/CUSTOM_CLAUDE.md
112-
```
113-
3. Add your preferences:
114-
```markdown
115-
# My Custom Workflow Preferences
116-
117-
- Always ask before creating new albums
118-
- Prefer aggressive industrial sound for electronic tracks
119-
- Use British spelling in all documentation
120-
```
121-
122-
**When it loads:**
123-
- At session start, Claude reads this file if it exists
124-
- Instructions supplement (don't override) base CLAUDE.md
125-
- If file doesn't exist, no error - it's optional
126-
127-
**Version control:**
128-
- Default location (`~/music-projects/CUSTOM_CLAUDE.md`) can be committed with your content
129-
- Or point to separate repo for shared workflow across projects
130-
131-
## Custom Pronunciation Guide
132-
133-
You can provide custom phonetic spellings to supplement the base pronunciation guide:
134-
135-
**Setup:**
136-
1. Set `paths.custom_pronunciation` in config (or use default)
137-
2. Create the file with your custom pronunciations:
138-
```bash
139-
touch ~/music-projects/CUSTOM_PRONUNCIATION.md
140-
```
141-
3. Add your phonetic spellings:
142-
```markdown
143-
# Custom Pronunciation Guide
144-
145-
## Artist-Specific Terms
146-
| Word | Standard | Phonetic | Notes |
147-
|------|----------|----------|-------|
148-
| BitWize | bitwize | Bit-Wize | Artist name |
149-
| ShellNo | shellno | Shell-No | Album title |
150-
151-
## Album-Specific Names
152-
| Word | Standard | Phonetic | Notes |
153-
|------|----------|----------|-------|
154-
| Larocca | larocca | Luh-rock-uh | Character name |
155-
| Finnerty | finnerty | Finn-er-tee | Character name |
156-
```
157-
158-
**When it loads:**
159-
- At session start, Claude reads this file if it exists
160-
- Merges with base pronunciation guide from `/reference/suno/pronunciation-guide.md`
161-
- Your custom entries take precedence over base guide
162-
- If file doesn't exist, no error - it's optional
163-
164-
**Why separate from base guide:**
165-
- Plugin updates won't overwrite your additions
166-
- Version control your custom pronunciations with your music content
167-
- Share artist-specific pronunciations across projects
168-
169-
**Version control:**
170-
- Default location (`~/music-projects/CUSTOM_PRONUNCIATION.md`) can be committed with your content
171-
- Avoids merge conflicts when plugin updates the base guide
101+
## Overrides System
102+
103+
The overrides directory lets you customize any skill or workflow without plugin update conflicts.
104+
105+
### How It Works
106+
107+
**Single directory, per-skill files:**
108+
```bash
109+
~/music-projects/overrides/
110+
├── CLAUDE.md # Override base workflow instructions
111+
├── pronunciation-guide.md # Override base pronunciation guide
112+
├── explicit-words.md # Custom explicit word list (future)
113+
├── lyric-writing-guide.md # Custom lyric writing preferences (future)
114+
└── mastering-presets.yaml # Custom mastering settings (future)
115+
```
116+
117+
**Each skill checks for its own override:**
118+
1. Skill reads `~/.bitwize-music/config.yaml``paths.overrides`
119+
2. Checks for `{overrides}/[filename].md`
120+
3. If exists: merge with base (or replace, depending on skill)
121+
4. If not exists: use base only (no error)
122+
123+
### Setup
124+
125+
```bash
126+
# Create overrides directory
127+
mkdir -p ~/music-projects/overrides
128+
129+
# Add any override files you want
130+
touch ~/music-projects/overrides/CLAUDE.md
131+
touch ~/music-projects/overrides/pronunciation-guide.md
132+
```
133+
134+
### Available Overrides
135+
136+
#### `CLAUDE.md` - Workflow Instructions
137+
Supplements base CLAUDE.md with your personal workflow preferences.
138+
139+
**Example:**
140+
```markdown
141+
# My Custom Workflow Preferences
142+
143+
- Always ask before creating new albums
144+
- Prefer aggressive industrial sound for electronic tracks
145+
- Use British spelling in all documentation
146+
```
147+
148+
**Behavior:** Loaded at session start, supplements (doesn't override) base instructions.
149+
150+
#### `pronunciation-guide.md` - Phonetic Spellings
151+
Merges with base pronunciation guide for artist-specific terms.
152+
153+
**Example:**
154+
```markdown
155+
# Custom Pronunciation Guide
156+
157+
## Artist-Specific Terms
158+
| Word | Standard | Phonetic | Notes |
159+
|------|----------|----------|-------|
160+
| BitWize | bitwize | Bit-Wize | Artist name |
161+
| ShellNo | shellno | Shell-No | Album title |
162+
163+
## Album-Specific Names
164+
| Word | Standard | Phonetic | Notes |
165+
|------|----------|----------|-------|
166+
| Larocca | larocca | Luh-rock-uh | Character name |
167+
| Finnerty | finnerty | Finn-er-tee | Character name |
168+
```
169+
170+
**Behavior:** Loaded by pronunciation-specialist, merged with base guide, custom takes precedence.
171+
172+
#### Future Overrides
173+
174+
These don't exist yet but will follow the same pattern:
175+
176+
- **`explicit-words.md`** - Custom explicit word list for your content
177+
- **`lyric-writing-guide.md`** - Personal lyric writing style preferences
178+
- **`mastering-presets.yaml`** - Custom mastering EQ/compression settings
179+
- **`suno-genre-mappings.md`** - Your preferred Suno genre combinations
180+
181+
### Benefits
182+
183+
**For users:**
184+
- **One directory** - All customizations in one place
185+
- **Self-documenting** - File names match what they override
186+
- **Version control** - Commit overrides with your music content
187+
- **No conflicts** - Plugin updates won't overwrite your files
188+
- **Easy discovery** - `ls overrides/` shows what's overrideable
189+
190+
**For skills:**
191+
- **Convention over configuration** - Skills know where to look
192+
- **No config proliferation** - No new config field per customization
193+
- **Future-proof** - New overrides added without touching config
194+
195+
### Version Control
196+
197+
```bash
198+
# .gitignore (in your content repo)
199+
# Commit overrides with your content
200+
!overrides/
201+
```
202+
203+
Default location (`~/music-projects/overrides/`) can be committed with your music content to share preferences across projects.

config/config.example.yaml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,17 +39,17 @@ paths:
3939
# Structure: {documents_root}/[artist]/[album]/
4040
documents_root: "~/music-projects/documents"
4141

42-
# Custom Claude instructions (optional)
43-
# File containing additional workflow instructions for Claude
44-
# If not set, Claude will check for ~/music-projects/CUSTOM_CLAUDE.md
45-
# Set to your content_root or separate repo for version control
46-
custom_instructions: "~/music-projects/CUSTOM_CLAUDE.md"
47-
48-
# Custom pronunciation guide (optional)
49-
# File containing your custom phonetic spellings for artist names, album-specific terms
50-
# If not set, Claude will check for ~/music-projects/CUSTOM_PRONUNCIATION.md
51-
# Merges with base pronunciation guide at session start
52-
custom_pronunciation: "~/music-projects/CUSTOM_PRONUNCIATION.md"
42+
# Overrides directory (optional)
43+
# Directory containing override files for skills and workflows
44+
# Each skill checks this directory for its own override file
45+
# Examples:
46+
# - CLAUDE.md (overrides base workflow instructions)
47+
# - pronunciation-guide.md (merges with base pronunciation guide)
48+
# - explicit-words.md (custom explicit word list)
49+
# - lyric-writing-guide.md (custom lyric writing preferences)
50+
# If not set, defaults to ~/music-projects/overrides
51+
# If directory doesn't exist, skills use base files only (no error)
52+
overrides: "~/music-projects/overrides"
5353

5454
# tools_root is always ~/.bitwize-music (where this config lives)
5555
# Contains: mastering-env/, cache/, etc.

0 commit comments

Comments
 (0)