Problem
The current plugin registers 6 separate skills for language support:
planning-with-files (English)
planning-with-files-ar (Arabic)
planning-with-files-de (German)
planning-with-files-es (Spanish)
planning-with-files-zh (Chinese Simplified)
planning-with-files-zht (Chinese Traditional)
Each variant appears as a distinct entry in the user's skill list. For users who only need one language, the other 5 are dead weight — they clutter the skill list and consume system prompt tokens on every session (each skill's description is injected into context).
Analysis
After inspecting v2.33.0:
| Aspect |
Same across all 6? |
Scripts (session-catchup.py, init-session.sh, etc.) |
✅ Byte-for-byte identical |
| Templates |
✅ Identical structure |
| Core logic in SKILL.md |
✅ Same rules, same workflow |
SKILL.md prose & hook command_message |
❌ Translated per language |
The only difference is the natural-language text in SKILL.md and hook messages. The actual planning logic is identical.
Why this is unnecessary
AI coding assistants (Claude Code, Cursor, Codex, etc.) already respond in the user's configured output language regardless of the skill's source language. A user with output: zh-TW configured will get Traditional Chinese responses from an English SKILL.md — the AI handles the translation naturally.
Duplicating the entire skill per language:
- Pollutes the skill list — users see 5 skills they'll never invoke
- Wastes context tokens — each skill description is loaded into the system prompt every session
- Increases maintenance burden — any logic change must be replicated across 6 SKILL.md files
Suggestion
Consolidate into a single skill (planning-with-files) with one of these approaches:
Option A: Single SKILL.md, let the AI translate
Remove language variants entirely. The English SKILL.md already works for all languages because the AI translates its output. This is the simplest approach.
Option B: Locale parameter
Keep one skill, add an optional locale argument:
If locale-specific hook messages are important, the skill can select the appropriate message strings at runtime.
Option C: User-configurable locale in config
Add a locale field to the plugin config that controls hook message language, without duplicating the skill.
Environment
- Plugin version: 2.33.0
- Platform: Windows 11 / Claude Code CLI
Thanks for the great plugin — the core planning workflow is solid. This is purely a packaging concern.
Problem
The current plugin registers 6 separate skills for language support:
planning-with-files(English)planning-with-files-ar(Arabic)planning-with-files-de(German)planning-with-files-es(Spanish)planning-with-files-zh(Chinese Simplified)planning-with-files-zht(Chinese Traditional)Each variant appears as a distinct entry in the user's skill list. For users who only need one language, the other 5 are dead weight — they clutter the skill list and consume system prompt tokens on every session (each skill's
descriptionis injected into context).Analysis
After inspecting v2.33.0:
session-catchup.py,init-session.sh, etc.)command_messageThe only difference is the natural-language text in SKILL.md and hook messages. The actual planning logic is identical.
Why this is unnecessary
AI coding assistants (Claude Code, Cursor, Codex, etc.) already respond in the user's configured output language regardless of the skill's source language. A user with
output: zh-TWconfigured will get Traditional Chinese responses from an English SKILL.md — the AI handles the translation naturally.Duplicating the entire skill per language:
Suggestion
Consolidate into a single skill (
planning-with-files) with one of these approaches:Option A: Single SKILL.md, let the AI translate
Remove language variants entirely. The English SKILL.md already works for all languages because the AI translates its output. This is the simplest approach.
Option B: Locale parameter
Keep one skill, add an optional
localeargument:If locale-specific hook messages are important, the skill can select the appropriate message strings at runtime.
Option C: User-configurable locale in config
Add a
localefield to the plugin config that controls hook message language, without duplicating the skill.Environment
Thanks for the great plugin — the core planning workflow is solid. This is purely a packaging concern.