- 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
159 lines
6.6 KiB
Markdown
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.
|