Files
Luong NGUYEN 2230a6ef10 fix(i18n): correct logo image paths in translated root-level files (#124)
Follow-up to #123 — that PR fixed module README logo paths but missed
root-level translated files (README, INDEX, CATALOG, CONTRIBUTING,
STYLE_GUIDE, etc.) which had the same broken-path pattern: they used
`resources/logos/...` (root-relative) but live one directory deep, so
they resolved to `{lang}/resources/logos/...` and 404'd.

Fix: `resources/logos/...` → `../resources/logos/...` in the top
`<picture>` block of each translated root-level file.

For STYLE_GUIDE files, the in-code-fence `<picture>` example was left
as `resources/logos/...` to mirror the English source — it documents
the canonical pattern, not the path the file itself uses.

Files: zh/ (×9), uk/ (×4), vi/ (×2). ja/STYLE_GUIDE.md was already
correct.
2026-05-20 11:15:36 +02:00

638 lines
26 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- i18n-source: STYLE_GUIDE.md -->
<!-- i18n-source-sha: 63a1416 -->
<!-- i18n-date: 2026-04-09 -->
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../resources/logos/claude-howto-logo-dark.svg">
<img alt="Claude How To" src="../resources/logos/claude-howto-logo.svg">
</picture>
# Гайд зі стилю
> Конвенції та правила форматування для внеску в Claude How To. Дотримуйтесь цього гайду, щоб тримати контент консистентним, професійним та зручним для підтримки.
---
## Зміст
- [Іменування файлів та каталогів](#іменування-файлів-та-каталогів)
- [Структура документа](#структура-документа)
- [Заголовки](#заголовки)
- [Форматування тексту](#форматування-тексту)
- [Списки](#списки)
- [Таблиці](#таблиці)
- [Блоки коду](#блоки-коду)
- [Посилання та перехресні посилання](#посилання-та-перехресні-посилання)
- [Діаграми](#діаграми)
- [Використання емодзі](#використання-емодзі)
- [YAML Frontmatter](#yaml-frontmatter)
- [Зображення та медіа](#зображення-та-медіа)
- [Тон та голос](#тон-та-голос)
- [Повідомлення комітів](#повідомлення-комітів)
- [Чеклист для авторів](#чеклист-для-авторів)
---
## Іменування файлів та каталогів
### Каталоги уроків
Каталоги уроків використовують **двозначний числовий префікс** з **kebab-case** описом:
```
01-slash-commands/
02-memory/
03-skills/
04-subagents/
05-mcp/
```
Номер відображає порядок навчального шляху від початківця до просунутого.
### Імена файлів
| Тип | Конвенція | Приклади |
|-----|-----------|---------|
| **README уроку** | `README.md` | `01-slash-commands/README.md` |
| **Файл функції** | Kebab-case `.md` | `code-reviewer.md`, `generate-api-docs.md` |
| **Shell-скрипт** | Kebab-case `.sh` | `format-code.sh`, `validate-input.sh` |
| **Конфіг-файл** | Стандартні назви | `.mcp.json`, `settings.json` |
| **Файл пам'яті** | З префіксом области | `project-CLAUDE.md`, `personal-CLAUDE.md` |
| **Документи верхнього рівня** | UPPER_CASE `.md` | `CATALOG.md`, `QUICK_REFERENCE.md`, `CONTRIBUTING.md` |
| **Зображення** | Kebab-case | `pr-slash-command.png`, `claude-howto-logo.svg` |
### Правила
- Використовуйте **нижній регістр** для всіх імен файлів та каталогів (крім документів верхнього рівня як `README.md`, `CATALOG.md`)
- Використовуйте **дефіси** (`-`) як розділювачі слів, ніколи підкреслення або пробіли
- Тримайте назви описовими, але стислими
---
## Структура документа
### Кореневий README
Кореневий `README.md` дотримується порядку:
1. Логотип (елемент `<picture>` з варіантами dark/light)
2. Заголовок H1
3. Вступна цитата (однорядкова ціннісна пропозиція)
4. Секція "Чому цей довідник?" з таблицею порівняння
5. Горизонтальна лінія (`---`)
6. Зміст
7. Каталог функцій
8. Швидка навігація
9. Навчальний шлях
10. Секції функцій
11. Початок роботи
12. Найкращі практики / Усунення проблем
13. Внесок / Ліцензія
### README уроку
Кожен `README.md` уроку дотримується порядку:
1. Заголовок H1 (напр., `# Slash Commands`)
2. Короткий вступний абзац
3. Таблиця швидкого довідника (опціонально)
4. Архітектурна діаграма (Mermaid)
5. Детальні секції (H2)
6. Практичні приклади (нумеровані, 4-6 прикладів)
7. Найкращі практики (таблиці Do's and Don'ts)
8. Усунення проблем
9. Пов'язані гайди / Офіційна документація
10. Метадані документа у футері
### Файл функції/прикладу
Окремі файли функцій (напр., `optimize.md`, `pr.md`):
1. YAML frontmatter (якщо потрібно)
2. Заголовок H1
3. Призначення / опис
4. Інструкції з використання
5. Приклади коду
6. Поради з налаштування
### Розділювачі секцій
Використовуйте горизонтальні лінії (`---`) для відділення основних регіонів документа:
```markdown
---
## Нова основна секція
```
Розміщуйте їх після вступної цитати та між логічно окремими частинами документа.
---
## Заголовки
### Ієрархія
| Рівень | Використання | Приклад |
|--------|-------------|---------|
| `#` H1 | Заголовок сторінки (один на документ) | `# Slash Commands` |
| `##` H2 | Основні секції | `## Best Practices` |
| `###` H3 | Підсекції | `### Adding a Skill` |
| `####` H4 | Під-підсекції (рідко) | `#### Configuration Options` |
### Правила
- **Один H1 на документ** — лише заголовок сторінки
- **Ніколи не пропускайте рівні** — не стрибайте з H2 на H4
- **Тримайте заголовки стислими** — прагніть до 2-5 слів
- **Використовуйте sentence case** — великі літери тільки для першого слова та власних назв (виняток: назви функцій залишаються як є)
- **Додавайте емодзі-префікси тільки в кореневому README** для заголовків секцій (див. [Використання емодзі](#використання-емодзі))
---
## Форматування тексту
### Виділення
| Стиль | Коли використовувати | Приклад |
|-------|---------------------|---------|
| **Жирний** (`**text**`) | Ключові терміни, мітки в таблицях, важливі поняття | `**Installation**:` |
| *Курсив* (`*text*`) | Перше згадування технічного терміну, назви книг/документів | `*frontmatter*` |
| `Код` (`` `text` ``) | Імена файлів, команди, значення конфігурації, посилання на код | `` `CLAUDE.md` `` |
### Цитати для виносок
Використовуйте цитати з жирними префіксами для важливих нотаток:
```markdown
> **Note**: Custom slash commands have been merged into skills since v2.0.
> **Important**: Never commit API keys or credentials.
> **Tip**: Combine memory with skills for maximum effectiveness.
```
Підтримувані типи виносок: **Note**, **Important**, **Tip**, **Warning**.
### Абзаци
- Тримайте абзаци короткими (2-4 речення)
- Додавайте порожній рядок між абзацами
- Починайте з ключового моменту, потім надавайте контекст
- Пояснюйте «чому», а не тільки «що»
---
## Списки
### Ненумеровані списки
Використовуйте дефіси (`-`) з 2-пробіловим відступом для вкладеності:
```markdown
- First item
- Second item
- Nested item
- Another nested item
- Deep nested (avoid going deeper than 3 levels)
- Third item
```
### Нумеровані списки
Використовуйте нумеровані списки для послідовних кроків, інструкцій та ранжованих елементів:
```markdown
1. First step
2. Second step
- Sub-point detail
- Another sub-point
3. Third step
```
### Описові списки
Використовуйте жирні мітки для списків ключ-значення:
```markdown
- **Performance bottlenecks** - identify O(n^2) operations, inefficient loops
- **Memory leaks** - find unreleased resources, circular references
- **Algorithm improvements** - suggest better algorithms or data structures
```
### Правила
- Підтримуйте консистентні відступи (2 пробіли на рівень)
- Додавайте порожній рядок перед та після списку
- Тримайте елементи списку паралельними за структурою
- Уникайте вкладеності глибше 3 рівнів
---
## Таблиці
### Стандартний формат
```markdown
| Column 1 | Column 2 | Column 3 |
|----------|----------|----------|
| Data | Data | Data |
```
### Поширені патерни таблиць
**Порівняння функцій (3-4 колонки):**
```markdown
| Feature | Invocation | Persistence | Best For |
|---------|-----------|------------|----------|
| **Slash Commands** | Manual (`/cmd`) | Session only | Quick shortcuts |
| **Memory** | Auto-loaded | Cross-session | Long-term learning |
```
**Do's and Don'ts:**
```markdown
| Do | Don't |
|----|-------|
| Use descriptive names | Use vague names |
| Keep files focused | Overload a single file |
```
**Швидкий довідник:**
```markdown
| Aspect | Details |
|--------|---------|
| **Purpose** | Generate API documentation |
| **Scope** | Project-level |
| **Complexity** | Intermediate |
```
### Правила
- **Жирний для заголовків таблиці**, коли вони є мітками рядків (перша колонка)
- Вирівнюйте пайпи для читабельності у вихідному коді (опціонально, але бажано)
- Тримайте вміст комірок стислим; використовуйте посилання для деталей
- Використовуйте `форматування коду` для команд та шляхів файлів у комірках
---
## Блоки коду
### Теги мов
Завжди вказуйте тег мови для підсвічування синтаксису:
| Мова | Тег | Використання |
|------|-----|-------------|
| Shell | `bash` | Команди CLI, скрипти |
| Python | `python` | Код Python |
| JavaScript | `javascript` | Код JS |
| TypeScript | `typescript` | Код TS |
| JSON | `json` | Конфігураційні файли |
| YAML | `yaml` | Frontmatter, конфіг |
| Markdown | `markdown` | Приклади Markdown |
| SQL | `sql` | Запити до бази даних |
| Звичайний текст | (без тегу) | Очікуваний вивід, дерева каталогів |
### Конвенції
```bash
# Comment explaining what the command does
claude mcp add notion --transport http https://mcp.notion.com/mcp
```
- Додавайте **рядок коментаря** перед неочевидними командами
- Робіть всі приклади **готовими до копіювання та вставки**
- Показуйте **і прості, і просунуті** версії де доречно
- Включайте **очікуваний вивід** коли це допомагає розумінню (використовуйте блок коду без тегу)
### Блоки встановлення
Використовуйте цей патерн для інструкцій з встановлення:
```bash
# Copy files to your project
cp 01-slash-commands/*.md .claude/commands/
```
### Багатокрокові робочі процеси
```bash
# Step 1: Create the directory
mkdir -p .claude/commands
# Step 2: Copy the templates
cp 01-slash-commands/*.md .claude/commands/
# Step 3: Verify installation
ls .claude/commands/
```
---
## Посилання та перехресні посилання
### Внутрішні посилання (відносні)
Використовуйте відносні шляхи для всіх внутрішніх посилань:
```markdown
[Slash Commands](01-slash-commands/)
[Skills Guide](03-skills/)
[Memory Architecture](02-memory/#memory-architecture)
```
З каталогу уроку назад до кореня або сусіда:
```markdown
[Back to main guide](../README.md)
[Related: Skills](../03-skills/)
```
### Зовнішні посилання (абсолютні)
Використовуйте повні URL з описовим текстом якоря:
```markdown
[Anthropic's official documentation](https://code.claude.com/docs/en/overview)
```
- Ніколи не використовуйте "click here" або "this link" як текст якоря
- Використовуйте описовий текст, що має сенс поза контекстом
### Якорі секцій
Посилайтесь на секції в тому ж документі за допомогою GitHub-style якорів:
```markdown
[Feature Catalog](#-feature-catalog)
[Best Practices](#best-practices)
```
### Патерн пов'язаних гайдів
Завершуйте уроки секцією пов'язаних гайдів:
```markdown
## Related Guides
- [Slash Commands](../01-slash-commands/) - Quick shortcuts
- [Memory](../02-memory/) - Persistent context
- [Skills](../03-skills/) - Reusable capabilities
```
---
## Діаграми
### Mermaid
Використовуйте Mermaid для всіх діаграм. Підтримувані типи:
- `graph TB` / `graph LR` — архітектура, ієрархія, потік
- `sequenceDiagram` — потоки взаємодії
- `timeline` — хронологічні послідовності
### Стильові конвенції
Застосовуйте консистентні кольори за допомогою блоків стилів:
```mermaid
graph TB
A["Component A"] --> B["Component B"]
B --> C["Component C"]
style A fill:#e1f5fe,stroke:#333,color:#333
style B fill:#fce4ec,stroke:#333,color:#333
style C fill:#e8f5e9,stroke:#333,color:#333
```
**Палітра кольорів:**
| Колір | Hex | Використання |
|-------|-----|-------------|
| Світло-блакитний | `#e1f5fe` | Основні компоненти, входи |
| Світло-рожевий | `#fce4ec` | Обробка, проміжне ПЗ |
| Світло-зелений | `#e8f5e9` | Виходи, результати |
| Світло-жовтий | `#fff9c4` | Конфігурація, опціональне |
| Світло-фіолетовий | `#f3e5f5` | Користувацький інтерфейс |
### Правила
- Використовуйте `["Label text"]` для міток вузлів (дозволяє спеціальні символи)
- Використовуйте `<br/>` для переносу рядків у мітках
- Тримайте діаграми простими (максимум 10-12 вузлів)
- Додавайте короткий текстовий опис під діаграмою для доступності
- Використовуйте зверху вниз (`TB`) для ієрархій, зліва направо (`LR`) для робочих процесів
---
## Використання емодзі
### Де використовуються емодзі
Емодзі використовуються **рідко та цілеспрямовано** — тільки в певних контекстах:
| Контекст | Емодзі | Приклад |
|----------|--------|---------|
| Заголовки секцій кореневого README | Іконки категорій | `## 📚 Learning Path` |
| Індикатори рівня навичок | Кольорові кола | 🟢 Початківець, 🔵 Середній, 🔴 Просунутий |
| Do's and Don'ts | Галочки/хрестики | ✅ Робіть це, ❌ Не робіть це |
| Рейтинги складності | Зірки | ⭐⭐⭐ |
### Стандартний набір емодзі
| Емодзі | Значення |
|--------|---------|
| 📚 | Навчання, гайди, документація |
| ⚡ | Початок роботи, швидкий довідник |
| 🎯 | Функції, швидкий довідник |
| 🎓 | Навчальні шляхи |
| 📊 | Статистика, порівняння |
| 🚀 | Встановлення, швидкі команди |
| 🟢 | Рівень початківця |
| 🔵 | Середній рівень |
| 🔴 | Просунутий рівень |
| ✅ | Рекомендована практика |
| ❌ | Уникати / анти-патерн |
| ⭐ | Одиниця рейтингу складності |
### Правила
- **Ніколи не використовуйте емодзі в основному тексті** або абзацах
- **Використовуйте емодзі в заголовках тільки** в кореневому README (не в README уроків)
- **Не додавайте декоративних емодзі** — кожне емодзі повинно нести значення
- Тримайте використання емодзі консистентним з таблицею вище
---
## YAML Frontmatter
### Файли функцій (навички, команди, агенти)
```yaml
---
name: unique-identifier
description: What this feature does and when to use it
allowed-tools: Bash, Read, Grep
---
```
### Опціональні поля
```yaml
---
name: my-feature
description: Brief description
argument-hint: "[file-path] [options]"
allowed-tools: Bash, Read, Grep, Write, Edit
model: opus # opus, sonnet, or haiku
disable-model-invocation: true # User-only invocation
user-invocable: false # Hidden from user menu
context: fork # Run in isolated subagent
agent: Explore # Agent type for context: fork
---
```
### Правила
- Розміщуйте frontmatter на самому початку файлу
- Використовуйте **kebab-case** для поля `name`
- Тримайте `description` в одне речення
- Включайте тільки необхідні поля
---
## Зображення та медіа
### Патерн логотипу
Усі документи, що починаються з логотипу, використовують елемент `<picture>` для підтримки dark/light режимів:
```html
<picture>
<source media="(prefers-color-scheme: dark)" srcset="resources/logos/claude-howto-logo-dark.svg">
<img alt="Claude How To" src="resources/logos/claude-howto-logo.svg">
</picture>
```
### Скріншоти
- Зберігайте у відповідному каталозі уроку (напр., `01-slash-commands/pr-slash-command.png`)
- Використовуйте kebab-case імена файлів
- Включайте описовий alt-текст
- Віддавайте перевагу SVG для діаграм, PNG для скріншотів
### Правила
- Завжди вказуйте alt-текст для зображень
- Тримайте розмір файлів зображень розумним (< 500KB для PNG)
- Використовуйте відносні шляхи для посилань на зображення
- Зберігайте зображення в тому ж каталозі, що й документ, який на них посилається, або в `assets/` для спільних зображень
---
## Тон та голос
### Стиль написання
- **Професійний, але доступний** — технічна точність без перевантаження жаргоном
- **Активний стан** — "Create a file", а не "A file should be created"
- **Прямі інструкції** — "Run this command", а не "You might want to run this command"
- **Дружній до початківців** — припускаємо, що читач новий у Claude Code, але не новий у програмуванні
### Принципи контенту
| Принцип | Приклад |
|---------|---------|
| **Показуйте, а не розповідайте** | Надавайте працюючі приклади, а не абстрактні описи |
| **Прогресивна складність** | Починайте просто, додавайте глибину в наступних секціях |
| **Пояснюйте «чому»** | "Use memory for... because...", а не просто "Use memory for..." |
| **Готове до копіювання** | Кожен блок коду повинен працювати при безпосередній вставці |
| **Реальний контекст** | Використовуйте практичні сценарії, а не штучні приклади |
### Словник
- Використовуйте "Claude Code" (не "Claude CLI" або "the tool")
- Використовуйте "skill" (не "custom command" — застарілий термін)
- Використовуйте "lesson" або "guide" для нумерованих секцій
- Використовуйте "example" для окремих файлів функцій
---
## Повідомлення комітів
Дотримуйтесь [Conventional Commits](https://www.conventionalcommits.org/):
```
type(scope): description
```
### Типи
| Тип | Використання |
|-----|-------------|
| `feat` | Нова функція, приклад або гайд |
| `fix` | Виправлення помилки, корекція, зламане посилання |
| `docs` | Покращення документації |
| `refactor` | Реструктуризація без зміни поведінки |
| `style` | Тільки зміни форматування |
| `test` | Додавання або зміни тестів |
| `chore` | Збірка, залежності, CI |
### Скоупи
Використовуйте назву уроку або області файлу як скоуп:
```
feat(slash-commands): Add API documentation generator
docs(memory): Improve personal preferences example
fix(README): Correct table of contents link
docs(skills): Add comprehensive code review skill
```
---
## Метадані документа у футері
README уроків завершуються блоком метаданих:
```markdown
---
**Last Updated**: March 2026
**Claude Code Version**: 2.1.97
**Compatible Models**: Claude Sonnet 4.6, Claude Opus 4.6, Claude Haiku 4.5
```
- Використовуйте формат місяць + рік (напр., "March 2026")
- Оновлюйте версію при зміні функцій
- Перелічуйте всі сумісні моделі
---
## Чеклист для авторів
Перед відправкою контенту перевірте:
- [ ] Імена файлів/каталогів використовують kebab-case
- [ ] Документ починається з заголовку H1 (один на файл)
- [ ] Ієрархія заголовків коректна (без пропущених рівнів)
- [ ] Усі блоки коду мають теги мов
- [ ] Приклади коду готові до копіювання та вставки
- [ ] Внутрішні посилання використовують відносні шляхи
- [ ] Зовнішні посилання мають описовий текст якоря
- [ ] Таблиці правильно відформатовані
- [ ] Емодзі відповідають стандартному набору (якщо використовуються)
- [ ] Mermaid-діаграми використовують стандартну палітру кольорів
- [ ] Немає чутливої інформації (API-ключі, облікові дані)
- [ ] YAML frontmatter валідний (якщо використовується)
- [ ] Зображення мають alt-текст
- [ ] Абзаци короткі та зосереджені
- [ ] Секція пов'язаних гайдів посилається на відповідні уроки
- [ ] Повідомлення коміту відповідає формату conventional commits
---
**Останнє оновлення**: Квітень 2026