Files
claude-howto/vi/CLAUDE.md
Thiên Toán 561c6cbaa3 docs(vi): sync Vietnamese documentation with English source (#60)
- Fix untranslated terms in CODE_OF_CONDUCT (witness, criticism, feedback, stalking)
- Remove Arabic text accidentally left in Retaliation section
- Add missing Scope content to CODE_OF_CONDUCT
- Add Vietnamese footers to all module READMEs
- Translate footers: Last Updated → Cập Nhật Lần Cuối, Compatible Models → Các Mô Hình Tương Thích
- Add missing Vietnamese files: CLAUDE.md, LICENSE, RELEASE_NOTES.md, clean-code-rules.md, resources.md
- Add missing images: pr-slash-command.png, memory-*.png, claude-howto-logo.png
- Fix CODE_OF_CONDUCT closing message to Vietnamese
2026-04-08 15:58:16 +02:00

159 lines
6.6 KiB
Markdown

# CLAUDE.md
File này cung cấp hướng dẫn cho Claude Code (claude.ai/code) khi làm việc với code trong repository này.
## Tổng Quan Dự Án
Claude How To là một repository tutorial về các tính năng của Claude Code. Đây là **documentation-as-code** — sản phẩm chính là các file markdown được tổ chức thành các module học tập đánh số (01-10), không phải một ứng dụng thực thi.
**Kiến trúc**: Mỗi module (01-10) bao phủ một tính năng cụ thể của Claude Code với các template copy-paste, sơ đồ Mermaid, và ví dụ. Hệ thống build xác thực chất lượng documentation và tạo ebook EPUB.
## Các Lệnh Thường Dùng
### Kiểm Tra Chất Lượng Pre-commit
Tất cả documentation phải vượt qua bốn kiểm tra chất lượng trước khi commit (các kiểm tra này chạy tự động qua pre-commit hooks):
```bash
# Cài đặt pre-commit hooks (chạy trên mỗi commit)
pre-commit install
# Chạy tất cả các kiểm tra thủ công
pre-commit run --all-files
```
Bốn kiểm tra là:
1. **markdown-lint** — Cấu trúc và định dạng Markdown qua `markdownlint`
2. **cross-references** — Liên kết nội bộ, anchors, cú pháp code fence (Python script)
3. **mermaid-syntax** — Xác thực tất cả sơ đồ Mermaid parse đúng (Python script)
4. **link-check** — Các URL bên ngoài có thể truy cập được (Python script)
5. **build-epub** — EPUB tạo ra không có lỗi (khi có thay đổi `.md`)
### Thiết Lập Môi Trường Phát Triển
```bash
# Cài đặt uv (Python package manager)
pip install uv
# Tạo virtual environment và cài đặt Python dependencies
uv venv
source .venv/bin/activate
uv pip install -r scripts/requirements-dev.txt
# Cài đặt Node.js tools (markdown linter và Mermaid validator)
npm install -g markdownlint-cli
npm install -g @mermaid-js/mermaid-cli
# Cài đặt pre-commit hooks
uv pip install pre-commit
pre-commit install
```
### Testing
Các script Python trong `scripts/` có unit tests:
```bash
# Chạy tất cả tests
pytest scripts/tests/ -v
# Chạy với coverage
pytest scripts/tests/ -v --cov=scripts --cov-report=html
# Chạy test cụ thể
pytest scripts/tests/test_build_epub.py -v
```
### Chất Lượng Code
```bash
# Lint và format Python code
ruff check scripts/
ruff format scripts/
# Security scan
bandit -c scripts/pyproject.toml -r scripts/ --exclude scripts/tests/
# Type checking
mypy scripts/ --ignore-missing-imports
```
### Build EPUB
```bash
# Tạo ebook (render Mermaid diagrams qua Kroki.io API)
uv run scripts/build_epub.py
# Với các tùy chọn
uv run scripts/build_epub.py --verbose --output custom-name.epub --max-concurrent 5
```
## Cấu Trúc Thư Mục
```
├── 01-slash-commands/ # Các lối tắt do người dùng gọi
├── 02-memory/ # Ví dụ về bối cảnh liên tục
├── 03-skills/ # Các khả năng có thể tái sử dụng
├── 04-subagents/ # Các tác nhân AI chuyên dụng
├── 05-mcp/ # Ví dụ Model Context Protocol
├── 06-hooks/ # Tự động hóa dựa trên sự kiện
├── 07-plugins/ # Các tính năng được đóng gói
├── 08-checkpoints/ # Các snapshot của phiên
├── 09-advanced-features/ # Lập kế hoạch, suy nghĩ, background tasks
├── 10-cli/ # Tham chiếu CLI
├── scripts/
│ ├── build_epub.py # EPUB generator (render Mermaid qua Kroki API)
│ ├── check_cross_references.py # Xác thực liên kết nội bộ
│ ├── check_links.py # Kiểm tra các URL bên ngoài
│ ├── check_mermaid.py # Xác thực cú pháp Mermaid
│ └── tests/ # Unit tests cho scripts
├── .pre-commit-config.yaml # Định nghĩa các kiểm tra chất lượng
└── README.md # Hướng dẫn chính (cũng là index của module)
```
## Hướng Dẫn Nội Dung
### Cấu Trúc Module
Mỗi thư mục đánh số tuân theo pattern:
- **README.md** — Tổng quan về tính năng với các ví dụ
- **Các file ví dụ** — Template copy-paste (`.md` cho commands, `.json` cho configs, `.sh` cho hooks)
- Các file được tổ chức theo độ phức tạp của tính năng và dependencies
### Sơ Đồ Mermaid
- Tất cả sơ đồ phải parse thành công (được kiểm tra bởi pre-commit hook)
- EPUB build render sơ đồ qua Kroki.io API (cần internet)
- Sử dụng Mermaid cho flowcharts, sequence diagrams, và architecture visuals
### Cross-References
- Sử dụng relative paths cho internal links (ví dụ: `(01-slash-commands/README.md)`)
- Code fences phải chỉ định ngôn ngữ (ví dụ: ` ```bash `, ` ```python `)
- Anchor links sử dụng format `#heading-name`
### Link Validation
- Các URL bên ngoài phải có thể truy cập được (được kiểm tra bởi pre-commit hook)
- Tránh link đến nội dung tạm thời
- Sử dụng permalinks nếu có thể
## Các Điểm Kiến Trúc Quan Trọng
1. **Các thư mục đánh số thể hiện thứ tự học tập** — Prefix 01-10 thể hiện thứ tự được khuyến nghị để học các tính năng của Claude Code. Đánh số này có chủ đích; không tổ chức lại theo bảng chữ cái.
2. **Scripts là các tiện ích, không phải sản phẩm** — Các script Python trong `scripts/` hỗ trợ chất lượng documentation và tạo EPUB. Nội dung thực tế nằm trong các thư mục module đánh số.
3. **Pre-commit là người gác cổng** — Tất cả bốn kiểm tra chất lượng phải pass trước khi PR được chấp nhận. CI pipeline chạy các kiểm tra tương tự như lần thứ hai.
4. **Mermaid rendering cần network** — EPUB build gọi Kroki.io API để render diagrams. Các lỗi build ở đây thường là vấn đề network hoặc cú pháp Mermaid không hợp lệ.
5. **Đây là tutorial, không phải thư viện** — Khi thêm nội dung, tập trung vào giải thích rõ ràng, ví dụ copy-paste, và sơ đồ trực quan. Giá trị nằm ở việc dạy các khái niệm, không cung cấp code có thể tái sử dụng.
## Commit Conventions
Tuân theo format conventional commit:
- `feat(slash-commands): Add API documentation generator`
- `docs(memory): Improve personal preferences example`
- `fix(README): Correct table of contents link`
- `refactor(hooks): Simplify hook configuration examples`
Scope nên khớp với tên thư mục khi áp dụng.