Bỏ qua để đến nội dung

Đóng Gói Giọng Văn Thành Skill Tái Sử Dụng

Level: L4 — AI Skills (Bài 9/12)

Sau bài này, bạn có thể:

  • Giải thích sự khác biệt giữa “có 1 file hồ sơ giọng văn” (bài 26) và “có 1 Skill tự động áp dụng hồ sơ đó” (bài này).
  • Đóng gói 1 file giọng văn có sẵn thành SKILL.md đúng cấu trúc đã học (bài 31-34), áp dụng đúng nguyên tắc progressive disclosure (không copy nguyên nội dung hồ sơ vào SKILL.md).
  • Viết description để Skill chỉ kích hoạt đúng lúc (tác vụ viết), không kích hoạt nhầm ở tác vụ không liên quan.
  • Cân nhắc đánh đổi giữa “tính di động đa nền tảng” (bài 26) và “tự động kích hoạt” (Skill).

Nhắc lại đúng 1 câu từ bài 26 (không giải thích lại): hồ sơ giọng văn là 1 file text (about-me.md hoặc file Voice Compiler nâng cao, nén tới 2.000-4.000 token) chứa quy tắc về cách bạn muốn AI viết, có thể dán thủ công vào bất kỳ AI nào (Claude, ChatGPT, Gemini…) [bài 26, nguồn gốc S10].

Điều MỚI ở bài này: thay vì dán thủ công, bạn đóng gói file đó thành 1 Skill — khi đó, mỗi khi bạn yêu cầu Claude viết 1 thứ gì đó (email, bài đăng, báo cáo…), Claude tự nhận diện đây là tác vụ viết và tự áp dụng hồ sơ giọng văn, không cần bạn nhắc.

Cấu trúc Skill cụ thể (áp dụng đúng bài 31-34):

viet-theo-giong-cua-toi/
├── SKILL.md # Instructions: "khi viết, áp dụng file profile"
└── voice-profile.md # Chính là file hồ sơ giọng văn từ bài 26
(copy nguyên, không viết lại)

Điểm mấu chốt — đúng nguyên tắc progressive disclosure (bài 33): hồ sơ giọng văn KHÔNG nên dán trực tiếp vào nội dung SKILL.md — nên để thành 1 file resource riêng (voice-profile.md), và SKILL.md chỉ tham chiếu tới nó. Lý do: SKILL.md (Tầng 2) load mỗi khi Skill kích hoạt; nếu hồ sơ giọng văn 4.000 token nằm thẳng trong đó, mọi lần kích hoạt đều tốn đúng từng đó token — trong khi để riêng thành resource (Tầng 3), vẫn load đủ khi cần nhưng tách bạch rõ ràng “phần điều khiển” (SKILL.md) và “phần dữ liệu” (voice-profile.md), dễ cập nhật hồ sơ mà không đụng vào Skill.

Đây là bài thực hành trọn vẹn đầu tiên áp dụng cả 4 khái niệm kiến trúc (31-34) vào 1 ví dụ đã quen thuộc từ trước (bài 26) — thay vì học 1 ví dụ hoàn toàn mới. Đồng thời, đây là ví dụ rõ nhất cho thấy Skill và Project/file cá nhân không loại trừ nhau (bài 30): bạn không “bỏ” cách làm ở bài 26, mà thêm 1 lớp mới lên trên nó.

Khi bạn gõ 1 yêu cầu như “viết cho tôi 1 email xin nghỉ phép”, nếu description của Skill được viết đủ cụ thể (ví dụ: “Applies your personal writing voice. Use when writing emails, posts, reports, or any content where tone and style matter.”), Claude tự nhận diện tác vụ viết và kích hoạt Skill — đọc SKILL.md, thấy hướng dẫn “đọc voice-profile.md và áp dụng”, rồi mới đọc tiếp file đó — đúng trình tự progressive disclosure đã học ở bài 31 (Tầng 1 → Tầng 2 → Tầng 3), không có gì khác biệt về cơ chế so với Skill thông thường.

Tiếp nối toàn bộ chuỗi ẩn dụ: nếu bài 26 dạy bạn viết ra 1 tờ hồ sơ cá nhân để sẵn trên bàn, thì bài này dạy bạn thuê 1 trợ lý luôn tự động mở đúng tờ hồ sơ đó mỗi khi có việc viết lách, thay vì bạn phải tự đưa tờ hồ sơ ra mỗi lần.

  1. Xác nhận bạn đã có file hồ sơ giọng văn từ bài 26 (about-me.md hoặc file Voice Compiler nâng cao).
  2. Tạo thư mục Skill mới (đúng quy trình bài 35, tùy nền tảng bạn dùng).
  3. Copy nguyên file hồ sơ giọng văn vào thư mục Skill, đặt tên rõ ràng (ví dụ voice-profile.md) — không viết lại nội dung, chỉ copy.
  4. Viết SKILL.md:
    ---
    description: Applies your personal writing voice and tone. Use when
    writing emails, posts, reports, or any content where tone and style
    matter. Do NOT use for code, data analysis, or factual Q&A.
    ---
    ## Instructions
    Read voice-profile.md and apply its rules to the writing task.
  5. Test bằng 1 yêu cầu viết thật — xác nhận Claude có đọc và áp dụng đúng hồ sơ giọng văn không (đúng phong cách bạn mong đợi).
  6. Test thêm 1 yêu cầu KHÔNG liên quan tới viết (ví dụ hỏi 1 câu factual) — xác nhận Skill KHÔNG kích hoạt nhầm.

Minh họa đầy đủ, kết hợp đúng nội dung đã có từ bài 26:

---
name: viet-theo-giong-toi
description: Applies your personal writing voice, tone, and style
preferences. Use when writing emails, LinkedIn posts, reports, or any
content where matching your personal voice matters. Do NOT use for code,
spreadsheets, or purely factual lookups.
---
## Instructions
1. Read voice-profile.md in this skill's directory.
2. Apply its tone, vocabulary preferences, and structural habits to the
writing task.
3. If the task doesn't clearly need a personal voice (e.g. a formal legal
document), ask the user whether to apply the profile or write neutrally.

voice-profile.md chính là file đã tạo ở bài 26 — không viết lại 1 chữ nào ở đây, chỉ copy nguyên và tham chiếu.

[ ] Đã có file hồ sơ giọng văn hoàn chỉnh từ bài 26?
[ ] Đã tạo thư mục Skill, copy nguyên file vào làm resource riêng (không
dán vào SKILL.md)?
[ ] description có nêu rõ "khi nào dùng" (tác vụ viết) VÀ có negative
trigger (khi nào KHÔNG dùng, ví dụ code/data) không?
[ ] Đã test cả 2 chiều: kích hoạt đúng lúc viết, KHÔNG kích hoạt nhầm lúc
không liên quan?
Trước — bài 26Tự đính kèm file mỗi lầnThao tác thủ côngSau — bài 37Skill tự động kích hoạtKhông cần thao tác tay
Hình 4.9 — Trước (bài 26 — tự dán file mỗi lần) → Sau (bài 37 — Skill tự động kích hoạt).
  1. Lấy file hồ sơ giọng văn bạn đã tạo ở bài tập bài 26 (nếu chưa có, quay lại bài 26 trước).
  2. Đóng gói thành 1 Skill theo đúng 6 bước ở mục 6.
  3. Test với 3 tình huống: (a) 1 yêu cầu viết rõ ràng, (b) 1 yêu cầu viết mơ hồ (không chắc có cần giọng văn cá nhân không), (c) 1 yêu cầu hoàn toàn không liên quan tới viết.
  4. Ghi lại: Skill có xử lý đúng cả 3 tình huống không? Nếu (b) hoặc (c) sai, quay lại bài 32 để chỉnh description/instructions.
  • Viết lại nội dung hồ sơ giọng văn thay vì tái sử dụng file bài 26 — vi phạm trực tiếp ranh giới đã phê duyệt, gây trùng lặp nội dung.
  • Dán nguyên hồ sơ giọng văn vào SKILL.md thay vì để thành resource riêng — vi phạm nguyên tắc progressive disclosure (bài 33), làm SKILL.md quá dài (dễ vượt 500 dòng nếu dùng bản Voice Compiler đầy đủ).
  • Description quá rộng, không có negative trigger — Skill kích hoạt cả ở tác vụ không cần giọng văn cá nhân (viết code, phân tích số liệu).

13. Giới hạn & khi nào KHÔNG nên áp dụng

Phần tiêu đề “13. Giới hạn & khi nào KHÔNG nên áp dụng”
  • Nếu bạn chỉ thỉnh thoảng cần giọng văn cá nhân (không thường xuyên), việc dán thủ công như bài 26 có thể vẫn đơn giản hơn — đóng gói thành Skill chỉ đáng công nếu bạn viết thường xuyên (tiêu chí “lặp lại ≥ 3 lần” ở bài 29).
  • Đánh đổi quan trọng cần biết: hồ sơ giọng văn ở dạng file text thuần (bài 26) có thể dán vào bất kỳ AI nào (Claude, ChatGPT, Gemini — tính di động đã nhấn mạnh ở bài 26, nguồn S10). Khi đóng gói thành Agent Skill theo đúng bài này, Skill đó chỉ chạy trên hệ sinh thái Claude (ranh giới nền tảng đã học ở bài 31) — bạn đánh đổi 1 phần tính di động đa nền tảng để lấy tính tự động kích hoạt. File voice-profile.md gốc vẫn còn đó và vẫn dùng được ở nơi khác nếu cần — bạn không “mất” tính di động, chỉ là Skill (lớp bọc bên ngoài) không di động được.

Hồ sơ giọng văn thường chứa thông tin cá nhân khá chi tiết (thói quen viết, đôi khi cả thông tin về công việc/khách hàng nếu bạn dùng file mở rộng). Khi đóng gói thành Skill và chia sẻ nó (đẩy lên 1 project dùng chung, hoặc plugin), áp dụng đúng nguyên tắc quản lý dữ liệu nhạy cảm đã học từ L1 bài 2, xuyên suốt tới L3 bài 19/28 — rà soát lại nội dung file trước khi chia sẻ ra ngoài phạm vi cá nhân.

  1. Luôn giữ file hồ sơ giọng văn (voice-profile.md) tách biệt khỏi SKILL.md — dễ cập nhật hồ sơ (khuyến nghị “1 quý/lần” từ bài 26) mà không cần sửa logic Skill.
  2. Viết negative trigger rõ ràng ngay từ đầu — đây là Skill có rủi ro kích hoạt nhầm cao (vì “viết” là 1 hành động rất phổ biến, dễ khớp description mơ hồ).
  3. Nếu bạn dùng cả AI khác ngoài Claude thường xuyên, giữ nguyên thói quen dán thủ công file gốc ở những nơi đó — Skill chỉ giải quyết vấn đề trong hệ sinh thái Claude.
16. Nội dung nâng cao (không bắt buộc)

Với hồ sơ giọng văn dạng Voice Compiler đầy đủ (2.000-4.000 token, từ bài 26 §16), có thể áp dụng thêm pattern “conditional details” (bài 33): giữ 1 bản tóm tắt ngắn trong voice-profile.md cho tác vụ viết thông thường, và tách riêng 1 file voice-profile-detailed.md cho tác vụ cần độ chính xác giọng văn cao hơn (ví dụ: viết thay mặt 1 thương hiệu cá nhân) — Skill chỉ đọc bản chi tiết khi thực sự cần, tiết kiệm token cho phần lớn tác vụ hàng ngày.

Dẫn chiếu (không trích dẫn mới): Level 3 bài 26 (Thiết lập AI cho cá nhân) — nguồn gốc S10 cho nội dung hồ sơ giọng văn · [S74] Extend Claude with skills, Anthropic — cấu trúc đóng gói Skill, cross-surface availability (căn cứ cho nhận định “không di động đa nền tảng” ở mục 13) · [S77] Skill authoring best practices, Anthropic — nguyên tắc description 2 vế, negative trigger.

Claim kỹ thuật về cấu trúc Skill kiểm chứng qua nguồn Tier 1 (S74, S77) ngày 2026-07-12. Nội dung về hồ sơ giọng văn kế thừa nguyên trạng kiểm chứng từ bài 26 (cùng ngày), không re-verify lại vì không có claim mới.