Một tin nhắn tốt nên kết thúc công việc, không tạo thêm một cuộc hội thoại /* Toàn bộ style được scope trong .kp-article để dán vào Kari không đụng CSS của trang */ .kp-article{ --ink:#1b2430; --soft:#5b6675; --line:#e3e8ef; --bg:#f7f8fa; --card:#fff; --brand:#1d4e89; --brand-2:#2f6fb5; --navy:#10233f; --bad:#c0392b; --bad-bg:#fdecea; --bad-line:#f3c5bf; --good:#23845a; --good-bg:#e6f4ec; --good-line:#bfe1cd; --amber:#b7791f; --amber-bg:#fdf6e3; --amber-line:#f1dfb0; --info-bg:#eaf2fc; --info-line:#c6dcf5; font-family:"Be Vietnam Pro","Noto Sans JP",system-ui,sans-serif; color:var(--ink); background:var(--bg); line-height:1.7; font-size:16px; -webkit-font-smoothing:antialiased; } .kp-article *{box-sizing:border-box} .kp-article p{margin:0 0 1rem} .kp-article code{font-family:"JetBrains Mono",monospace;font-size:.86em;background:#eef1f5;color:#b03a5b;padding:.1rem .35rem;border-radius:4px} .kp-article .jp{font-family:"Noto Sans JP",sans-serif} /* HERO */ .kp-hero{background:linear-gradient(135deg,#0d1f3a 0%,#1d4e89 60%,#2f6fb5 100%);color:#fff;text-align:center;padding:4.5rem 1.25rem 4rem;position:relative;overflow:hidden} .kp-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(600px 300px at 80% 20%,rgba(255,255,255,.12),transparent 70%);pointer-events:none} .kp-hero .pill{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;border:1px solid rgba(255,255,255,.35);border-radius:99px;padding:.3rem .9rem;margin-bottom:1.2rem;background:rgba(255,255,255,.08)} .kp-hero h1{font-size:clamp(1.8rem,4.5vw,2.8rem);font-weight:800;line-height:1.2;margin:0 0 1rem;letter-spacing:-.01em} .kp-hero .author{position:relative;z-index:1;font-size:.95rem;opacity:.88;margin-top:.2rem} .kp-hero .author b{font-weight:600;opacity:1} .kp-hero .sub{max-width:40rem;margin:0 auto;opacity:.88;font-size:1.02rem} /* LAYOUT */ .kp-wrap{max-width:1120px;margin:0 auto;padding:2.5rem 1rem 4rem;display:grid;grid-template-columns:200px minmax(0,720px);gap:3rem;justify-content:center} .kp-toc{position:sticky;top:1.5rem;align-self:start;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1.1rem .9rem 1rem} .kp-toc .t{font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#8a94a3;font-size:.66rem;margin:0 0 .8rem .2rem} .kp-toc a{display:block;color:var(--soft);text-decoration:none;font-size:.8rem;line-height:1.4;padding:.45rem .6rem;margin-bottom:.15rem;border-left:2px solid transparent;border-radius:0 6px 6px 0;transition:background .15s,color .15s} .kp-toc a .num{font-size:.66rem;color:#9aa4b2;margin-right:.35rem;font-variant-numeric:tabular-nums;letter-spacing:.02em} .kp-toc a:hover{color:var(--brand);background:#f3f6fa} .kp-toc a.active{color:var(--brand);background:var(--info-bg);border-left-color:var(--brand);font-weight:600} .kp-toc a.active .num{color:var(--brand)} @media(max-width:980px){.kp-wrap{grid-template-columns:minmax(0,720px)}.kp-toc{position:static;margin-bottom:.5rem}} /* CHAPTER */ .kp-ch{margin-bottom:3.2rem;scroll-margin-top:1rem} .kp-ch .label{display:inline-block;background:var(--navy);color:#fff;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.25rem .6rem;border-radius:4px;margin-bottom:.7rem} .kp-ch h2{font-size:1.45rem;font-weight:800;line-height:1.3;margin:0 0 1rem} .kp-ch h3{font-size:1.08rem;font-weight:700;margin:1.8rem 0 .7rem} .kp-ch ul.list{padding-left:1.2rem;margin:0 0 1rem} .kp-ch ul.list li{margin-bottom:.35rem} /* TLDR */ .kp-tldr{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--brand);border-radius:10px;padding:1.2rem 1.4rem;margin-bottom:3rem;box-shadow:0 8px 24px -16px rgba(16,35,63,.35)} .kp-tldr .h{font-weight:800;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--brand);margin-bottom:.5rem} .kp-tldr ul{margin:0;padding-left:1.2rem} .kp-tldr li{margin-bottom:.3rem} /* CALLOUTS */ .kp-quote{border-left:3px solid var(--amber);background:var(--amber-bg);padding:.9rem 1.2rem;border-radius:0 8px 8px 0;font-style:italic;color:#6b5320;margin:1.2rem 0} .kp-warn{background:var(--amber-bg);border:1px solid var(--amber-line);border-radius:8px;padding:.9rem 1.1rem;margin:1.2rem 0;font-size:.95rem} .kp-info{background:var(--info-bg);border:1px solid var(--info-line);border-radius:8px;padding:.9rem 1.1rem;margin:1.2rem 0;font-size:.95rem} .kp-box{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1rem 1.2rem;margin:1.2rem 0} .kp-box p{margin:.35rem 0;font-size:.95rem} /* CHAT BUBBLES */ .kp-chat{display:flex;flex-direction:column;gap:.7rem;margin:1.1rem 0 1.4rem} .kp-b{border:1px solid;border-radius:14px;padding:.8rem 1rem;font-size:.95rem;line-height:1.55;max-width:92%} .kp-b .tag{display:inline-block;font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#fff;border-radius:99px;padding:.12rem .55rem;margin-bottom:.4rem} .kp-b.bad{background:var(--bad-bg);border-color:var(--bad-line);align-self:flex-start;border-bottom-left-radius:4px} .kp-b.bad .tag{background:var(--bad)} .kp-b.good{background:var(--good-bg);border-color:var(--good-line);align-self:flex-end;border-bottom-right-radius:4px} .kp-b.good .tag{background:var(--good)} .kp-b ul{margin:.35rem 0 0;padding-left:1.1rem} .kp-b ul li{margin-bottom:.15rem} /* PRINCIPLE HEADER */ .kp-p{display:flex;align-items:center;gap:.8rem;margin:2rem 0 .6rem} .kp-p .n{flex:none;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.95rem} .kp-p h3{margin:0} /* TABLE */ .kp-tbl{width:100%;border-collapse:collapse;font-size:.9rem;margin:1rem 0 1.4rem;background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden} .kp-tbl th{background:#f0f3f7;text-align:left;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);padding:.65rem .85rem;border-bottom:1px solid var(--line)} .kp-tbl td{padding:.65rem .85rem;border-bottom:1px solid var(--line);vertical-align:top} .kp-tbl tr:last-child td{border-bottom:none} .kp-tbl td:first-child{font-weight:600} /* DIAGRAM */ .kp-dia{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1.3rem;margin:1.2rem 0 .5rem} .kp-dia .g{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem} .kp-dia .c{border:1px solid var(--line);border-radius:8px;padding:.75rem .85rem;background:#fafbfc} .kp-dia .c .h{font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-2);margin-bottom:.4rem} .kp-dia .c div{font-size:.88rem} .kp-dia .arrow{text-align:center;color:var(--brand);font-size:1.4rem;line-height:1;margin:.6rem 0} .kp-dia .target{background:linear-gradient(135deg,var(--navy),var(--brand-2));color:#fff;border-radius:10px;text-align:center;padding:.9rem} .kp-dia .target b{font-size:1.05rem;display:block} .kp-dia .target span{font-size:.85rem;opacity:.9} .kp-cap{text-align:center;font-size:.8rem;color:var(--soft);margin-bottom:1.2rem} @media(max-width:600px){.kp-dia .g{grid-template-columns:1fr}} /* STEPS */ .kp-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin:1.2rem 0} .kp-steps .s{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.9rem;text-align:center} .kp-steps .s .n{width:1.8rem;height:1.8rem;margin:0 auto .4rem;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem} .kp-steps .s b{display:block;font-size:.92rem;margin-bottom:.2rem} .kp-steps .s span{font-size:.8rem;color:var(--soft);line-height:1.45;display:block} @media(max-width:600px){.kp-steps{grid-template-columns:1fr}} /* CODE */ .kp-code{background:#141a24;color:#d6deeb;font-family:"JetBrains Mono",monospace;font-size:.82rem;line-height:1.65;border-radius:10px;padding:1rem 1.2rem;overflow-x:auto;white-space:pre;margin:1rem 0 1.4rem} .kp-code .c{color:#7f8ea3} /* COMPARE */ .kp-cmp{display:grid;grid-template-columns:1fr 1fr;gap:0;border-radius:10px;overflow:hidden;border:1px solid var(--line);margin:1.2rem 0} .kp-cmp>div{padding:1rem 1.2rem} .kp-cmp .l{background:var(--bad-bg)} .kp-cmp .r{background:var(--good-bg)} .kp-cmp .k{font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.3rem} .kp-cmp .l .k{color:var(--bad)} .kp-cmp .r .k{color:var(--good)} .kp-cmp .v{font-weight:800;font-size:1.15rem;margin-bottom:.3rem} .kp-cmp p{font-size:.88rem;margin:0;color:var(--soft)} @media(max-width:600px){.kp-cmp{grid-template-columns:1fr}} /* CTA */ .kp-cta{background:linear-gradient(135deg,#0d1f3a,#1d4e89);color:#fff;border-radius:14px;padding:2rem 1.6rem;text-align:center;margin-top:1rem} .kp-cta h3{margin:0 0 .6rem;font-size:1.3rem;font-weight:800} .kp-cta ol{text-align:left;max-width:30rem;margin:1rem auto;padding-left:1.3rem;font-size:.92rem} .kp-cta ol li{margin-bottom:.4rem} .kp-cta code{background:rgba(255,255,255,.14);color:#fff} .kp-cta .final{font-size:1.15rem;font-weight:700;margin-top:1.4rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.2)} /* DOWNLOAD */ .kp-dl{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--brand);border-radius:14px;padding:2rem 1.6rem 1.8rem;text-align:center;margin:1.4rem 0 1.2rem;box-shadow:0 8px 24px -16px rgba(16,35,63,.35)} .kp-dl .name{font-size:.9rem;color:var(--soft);margin-bottom:1.1rem} .kp-dl .name code{font-size:.95em} .kp-dl-btn{display:inline-block;min-width:min(100%,22rem);background:linear-gradient(135deg,#0d1f3a,#1d4e89 60%,#2f6fb5);color:#fff !important;text-decoration:none;font-weight:800;font-size:1.2rem;line-height:1.3;padding:1.15rem 2.2rem;border-radius:12px;box-shadow:0 12px 28px -12px rgba(29,78,137,.7);transition:transform .15s,box-shadow .15s} .kp-dl-btn small{display:block;font-weight:500;font-size:.8rem;opacity:.85;margin-top:.25rem} .kp-dl-btn:hover{transform:translateY(-2px);box-shadow:0 16px 32px -12px rgba(29,78,137,.8)} .kp-dl-btn:focus-visible{outline:3px solid var(--brand-2);outline-offset:3px} .kp-dl .note{font-size:.82rem;color:var(--soft);margin:1rem 0 0} .kp-react{background:var(--amber-bg);border:1px solid var(--amber-line);border-radius:12px;padding:1.3rem 1.4rem;text-align:center;margin-top:1.4rem} .kp-react b.big{display:block;font-size:1.1rem;color:#6b5320;margin-bottom:.35rem} .kp-react p{margin:0;font-size:.95rem;color:#6b5320} @media(max-width:600px){.kp-dl-btn{display:block;min-width:0;padding:1.1rem 1.2rem}} /* FIX MÀU: chặn CSS của web công ty ghi đè màu tiêu đề trên nền tối */ .kp-article .kp-hero h1, .kp-article .kp-cta h3{color:#fff !important;-webkit-text-fill-color:#fff !important;opacity:1 !important} .kp-article .kp-hero .pill, .kp-article .kp-hero .author, .kp-article .kp-hero .author b{color:#fff !important;-webkit-text-fill-color:#fff !important} Skill AI #06: Chat Message Review Một tin nhắn tốt nên kết thúc công việc,không tạo thêm một cuộc hội thoại Tác giả: Trịnh Minh Hùng (HungTM) - SBU5 Mục lục 00Lời mở đầu 01Vấn đề thực tế: “Tin nhắn lúc 15h chiều” 02Vì sao chat vẫn là công cụ tốt nhất 03Sáu nguyên tắc viết chat 04Quy tắc 1 chạm 05Chuẩn hoá cách làm bằng AI 06Không phải lúc nào cũng cần “1 chạm” 07Tự luyện tập 08Tải skill Lời mở đầu Vì sao mình viết bài này Năm 2022, mình nhận nhiệm vụ mở rộng một team infra toàn fresher. Thực tế cái tốn thời gian nhất không phải kỹ thuật, mà là những vòng hỏi đi hỏi lại trên chat. Từ đó cả team áp dụng một quan điểm cho mọi trao đổi công việc: người nhận đọc một lần là hiểu và làm được — đó là Quy tắc 1 chạm. Sau này, kiến thức được củng cố thêm từ khoá đào tạo nội bộ Kỹ năng giao tiếp qua chat của anh Phạm Quang Định, nơi các nguyên tắc được hệ thống hoá thành 6 nguyên tắc (Chương 3). Bài này không chỉ để giới thiệu một AI skill — vì skill thì ai cũng có thể tự tạo. Điều mình muốn chia sẻ là một cách làm việc đã được kiểm chứng trong thực tế. Skill chỉ giúp chuẩn hoá cách làm đó thành thói quen.Vì vậy, mỗi bạn hãy tự xây dựng skill chuẩn hoá message và humanizer theo phong cách của mình — để AI hỗ trợ, nhưng tin nhắn vẫn là chính bạn. Đọc nhanh trong 30 giây Vấn đề: một tin nhắn mơ hồ kéo theo cả chuỗi tin hỏi lại — tốn thời gian hơn cả gọi điện. Cách làm: 6 nguyên tắc — người đọc, kết luận trước, mật độ thông tin, format, ghi chép, tái sử dụng. Kết quả: “Quy tắc 1 chạm” — người nhận đọc một lần là hiểu và hành động được. AI: dùng để review và chỉnh câu chữ; còn ý muốn nói gì và trách nhiệm về nội dung vẫn là của bạn. Lưu ý: không phải lúc nào cũng cần “1 chạm” — công việc cần rõ ràng; còn lại cần cảm xúc, chậm lại một chút. Chương 1 Vấn đề thực tế: “Tin nhắn lúc 15h chiều” Bạn là PM của dự án KA. 18h phải gửi báo cáo test case cho khách Nhật. Anh Tuấn — QA Lead — đã nhận file từ sáng, nhưng đến 15h vẫn chưa phản hồi. Bạn mở chat và gõ: Tin định gửi“Anh ơi cái kia xong chưa?” Anh Tuấn đang giữ 4 dự án. “Cái kia” là cái nào? Gấp đến đâu? Xong thì làm gì tiếp? Anh sẽ phải hỏi lại — và bạn sẽ phải trả lời lại. Mỗi vòng hỏi–đáp như thế trong lúc hai người đều bận có thể mất cả tiếng đồng hồ. Người viết mất 3 giây để gõ tin mơ hồ. Người đọc mất vài phút để đoán — và cả hai mất thêm nhiều vòng để làm rõ. Cùng tình huống đó, viết lại như sau: Viết lại“Anh Tuấn ơi, báo cáo test case dự án KA (em gửi sáng nay) anh review xong chưa ạ? Em cần chốt trước 17h để kịp gửi khách lúc 18h. Vướng chỗ nào anh báo em sửa luôn nhé!” Tin dài hơn vài chữ, nhưng anh Tuấn đọc một lần là biết: việc gì, hạn nào, vì sao gấp, và mình cần làm gì. Không cần hỏi lại. Bài viết này đi qua cách để mọi tin nhắn công việc đều đạt được điều đó. Chương 2 Chat vẫn là công cụ hiệu quả nhất — khi viết đúng Đọc đến đây, có bạn sẽ nghĩ: “Vậy chạy sang bàn anh Tuấn hỏi một câu là xong, cần gì chat?” Thực tế, anh Tuấn đang giữ 4 dự án. Chạy sang là cắt ngang việc của anh, còn nếu anh đang họp thì bạn phải chờ. Với chat, bạn gửi lúc nào cũng được, anh trả lời khi rảnh tay — đó là bất đồng bộ (async): không cần rảnh cùng lúc mà việc vẫn chạy, lại có lịch sử để tra lại. Đặt cạnh các kênh khác, chat nhanh hơn email và tốn ít thời gian của cả nhóm hơn meeting: Tiêu chíChatEmailMeeting Tốc độ phản hồiNhanhChậmPhải hẹn Bất đồng bộTốtTốtKhông — đồng bộ Lưu vết, tìm lạiCóCóPhải ghi notes Chia sẻ rộngTheo channelTheo CCKhó Chi phí thời gian nhómThấpTrung bìnhCao nhất Nhưng: lợi thế đó biến mất ngay khi tin nhắn mơ hồ. Một tin viết ẩu kéo theo cả chuỗi tin hỏi lại, và chat trở nên chậm hơn cả một cuộc gọi. Vấn đề không nằm ở công cụ, mà ở cách viết. Chương 3 Sáu nguyên tắc viết chat Sáu nguyên tắc chia làm ba nhóm. Tất cả cùng hướng về một đích: giảm tải cho người đọc. Tư duy người gửi① Ý thức người đọc② Kết luận trước③ Mật độ thông tin Hình thức④ Format rõ ràng Tận dụng lâu dài⑤ Ghi chép để ghi nhớ⑥ Tái sử dụng thông tin ↓ Quy tắc 1 chạmNgười đọc hiểu & hành động trong một lần — không phải hỏi lại 6 nguyên tắc là cách làm — “1 chạm” là kết quả 1Ý thức về người đọc Trước khi bấm gửi, tự hỏi: “Người này có đủ thông tin để hiểu ngay không?” Người đọc không ở trong đầu bạn — “cái kia”, “vụ hôm trước” chỉ rõ ràng với chính bạn. Nêu đủ Ai – Việc gì – Cần gì. Người bận sẽ đọc lướt. Viết cho người đọc lướt, không phải người đọc kỹ. 2Viết kết luận trước (結論ファースト) Người đọc muốn biết kết quả hoặc yêu cầu trước, lý do để sau. Cấu trúc quen thuộc là PREP: Point (kết luận) → Reason (lý do) → Example (dẫn chứng) → Point (chốt / hành động). Trước“Hôm qua em họp với team, rồi bàn chuyện server, sau đó kiểm tra log, thấy có lỗi, cuối cùng là server staging bị down nên hôm nay chưa deploy được.” Sau❗Hôm nay chưa deploy được (staging down). Nguyên nhân: hết dung lượng disk trên stagingHành động: em đang dọn log, dự kiến 14h xongCần anh: xác nhận có lùi lịch demo sang chiều mai? 3Tăng mật độ thông tin Mỗi câu phải mang thông tin có giá trị. Cắt chữ thừa, thay từ mơ hồ bằng con số, tên riêng, mốc thời gian: “sớm” → “trước 15h”, “vài” → “3”, “dự án đó” → “dự án PD”. Trước“Em nghĩ là chắc cũng sắp xong rồi, để em xem lại tí nữa rồi báo anh sau nhé, chắc không lâu đâu.” Sau“Còn ~2 task (API + unit test), em hoàn thành trước 16h hôm nay và sẽ báo lại.” Mật độ cao không phải là viết tắt khó hiểu. Mục tiêu là nhiều thông tin trên ít chữ, mà vẫn dễ đọc. 4Dùng format cho rõ ràng Gạch đầu dòng và ký hiệu giúp mắt người đọc “quét” được trong 2 giây. Quy ước đơn giản: - cho danh sách song song, 1. 2. 3. cho các bước tuần tự, ✅ xong · 🔲 chưa · ❗ gấp · ⚠️ rủi ro, và một ý trên một dòng. Trước“Hôm nay em làm xong phần login, phần báo cáo thì chưa, còn lỗi export thì đang fix gần xong rồi.” SauBáo cáo cuối ngày: ✅ Màn hình login🔲 Màn hình báo cáo (bắt đầu sáng mai)⚠️ Lỗi export PDF — đang fix, ~80% 5Ghi chép giúp ghi nhớ Chốt quyết định ngay trong channel, kèm lý do, để sau này search là thấy — ví dụ: “📌 Chốt: dùng PostgreSQL cho dự án X (lý do: …)”. Viết ra cũng là một cách suy nghĩ: phải viết rõ thì mới nghĩ rõ. 6Tái sử dụng thông tin Chat tốt là tài sản tri thức, không phải dùng một lần rồi trôi mất. Pin tin quan trọng, tạo một “canonical message” làm nguồn chân lý duy nhất. Dùng template cho việc lặp lại: báo cáo ngày, thông báo release. Trả lời một lần ở channel chung thay vì năm lần qua DM. Sáu nguyên tắc nghe thì nhiều, nhưng khi ngồi viết một tin nhắn cụ thể, bạn không cần nhớ từng điều. Chỉ cần tự hỏi một câu: “Người nhận đọc xong có phải hỏi lại gì không?” Câu hỏi đó chính là Quy tắc 1 chạm. Chương 4 Quy tắc 1 chạm (ワンタッチ) Quay lại tin nhắn gửi anh Tuấn ở Chương 1. Bản viết lại không có câu chữ gì đặc biệt — mỗi phần chỉ làm đúng một nguyên tắc: Tin 1 chạm“Anh Tuấn ơi, báo cáo test case dự án KA (em gửi sáng nay) (a) anh review xong chưa ạ? (b) Em cần chốt trước 17h để kịp gửi khách lúc 18h (c). Vướng chỗ nào anh báo em sửa luôn nhé! (d)” Phần trong tinNguyên tắcTác dụng (a) “báo cáo test case dự án KA (em gửi sáng nay)”① Ý thức người đọcAnh Tuấn giữ 4 dự án — gọi đúng tên việc thay vì “cái kia”, khỏi phải đoán (b) “anh review xong chưa ạ?”② Kết luận trướcCâu hỏi nằm ngay câu đầu, đọc là biết mình được hỏi gì (c) “trước 17h… gửi khách lúc 18h”③ Mật độ thông tinMốc giờ cụ thể thay cho “gấp”, kèm lý do để anh tự ưu tiên (d) “Vướng chỗ nào anh báo em sửa luôn”① Ý thức người đọcNói trước bước tiếp theo — anh không phải hỏi “sửa xong thì sao” Anh Tuấn đọc một lần là biết phải làm gì — đó là “1 chạm”: không hỏi lại, không phải đi tìm. Nó không phải nguyên tắc thứ bảy, mà là kết quả khi áp đúng các nguyên tắc. Tin này ngắn nên không cần format (④), cũng không phải tin chốt quyết định nên chưa cần ⑤⑥ — không phải tin nào cũng cần đủ sáu nguyên tắc, chỉ cần đủ để người đọc không phải hỏi lại. Tổng quát, mỗi nguyên tắc đóng góp một phần: Nguyên tắcĐóng góp cho tin “1 chạm” ① Ý thức người đọcBiết người đọc thiếu gì → bổ sung đủ ② Kết luận trướcNắm ngay việc cần làm ở dòng đầu ③ Mật độ thông tinĐủ số, tên, mốc trong một tin ④ Format rõ ràngQuét được trong 2 giây ⑤⑥ Ghi chép & tái dùngCó ngữ cảnh + template → viết nhanh, đều Chương 5 Chuẩn hoá cách làm bằng AI Biết 6 nguyên tắc chưa đủ; cái khó là áp dụng đều đặn, kể cả lúc vội. Với tin quan trọng — gửi khách, báo cáo cấp trên, viết bằng tiếng Nhật hay tiếng Anh — AI là một biên tập viên cá nhân rất tốt. Nhưng dùng AI kiểu “viết giúp tôi tin này” thường ra kết quả rỗng và có “mùi AI”. Cách đơn giản nhất để chuẩn hoá là viết chính cách làm của bạn thành một skill. Dưới đây là skill chat-message-review mình dùng — hãy coi nó là ví dụ tham khảo. Giá trị nằm ở các nguyên tắc bên trong, và skill tốt nhất là skill bạn tự viết theo cách làm việc của team mình. Skill hoạt động theo 3 bước 1Đọc bối cảnhTin công việc, tin quan hệ hay tin nhạy cảm? Chỉ tin công việc mới áp “1 chạm”. 2Chẩn đoánSoi qua 6 nguyên tắc, chỉ nêu điểm thực sự khiến người đọc phải hỏi lại. 3Viết lạiGọn hơn, kết luận trước, giữ nguyên giọng văn của bạn. Hai ranh giới cứng của skill: (1) Không bịa thông tin — thiếu deadline, tên người, link thì để placeholder […] và hỏi lại bạn. (2) Giữ giọng người dùng — bản viết lại phải nghe như bạn viết lúc tỉnh táo, không phải như chatbot. Output luôn theo một khuôn cố định # Input: "Anh ơi cái kia xong chưa?" 🔍 Chẩn đoán - "cái kia" mơ hồ → người đọc không biết hỏi việc gì - thiếu deadline → không biết mức độ gấp ✅ Viết lại (1 chạm) > Anh ơi, [tên việc] anh review xong chưa ạ? > Em cần [mốc giờ] để [mục đích]. 📌 Cần bạn bổ sung - tên việc? mốc giờ? mục đích? Nếu chưa cài skill, một prompt đơn giản cũng dùng được: Review tin nhắn sau theo quy tắc 1 chạm. Chỉ ra chỗ thiếu thông tin khiến người đọc phải hỏi lại, rồi viết lại bản rút gọn — giữ giọng tự nhiên của tôi: <dán tin của bạn> Không “mùi AI”, không phụ thuộc AI Tự nháp ý chính trước, AI chỉ review và trau chuốt câu chữ. Tin gấp, tin ngắn: tự viết — nhanh hơn mở AI. Tránh câu dập khuôn rỗng nghĩa (“Tôi rất vui được hỗ trợ…”) và emoji thừa. Luôn tự kiểm số liệu, tên người, deadline — AI có thể sai. Đọc lại to một lần: nghe có giống bạn nói không? Cần thì hãy thổi hồn thêm vào cho nó. Tư duy là của bạn, AI chỉ giúp diễn đạt. Tin nhắn do bạn chịu trách nhiệm, không phải AI. Chương 6 Không phải lúc nào cũng cần “1 chạm” Những quy tắc trên tối ưu cho giao tiếp công việc. Bê nguyên sang đời sống thường ngày, bạn dễ bị xem là lạnh lùng, máy móc. Nhắn vợ / chồng“Tối nay 19h ăn cơm. Em mua gì? Trả lời A/B.” Tự nhiên hơn“Tối nay anh về sớm nè, mình ăn gì ngon ngon nhỉ? 😄 Em thèm gì không?” Bối cảnhVì sao không hợp “1 chạm” Nhắn người thân, bạn bèCần cảm xúc và sự nhẩn nha, không cần “tối ưu” An ủi người đang buồnHọ cần được lắng nghe, không cần giải pháp tức thì Chúc mừng, cảm ơnSự ấm áp, “rườm rà” mới chính là nội dung Tranh luận nhạy cảmBullet và “❗gấp” dễ thành cộc lốc, gây tổn thương Skill chat-message-review cũng được thiết kế theo đúng tinh thần này: gặp tin quan hệ hay tin nhạy cảm, nó sẽ cảnh báo thay vì tối ưu, chỉ sửa lỗi rõ ràng và giữ nguyên sự ấm áp. Kỹ năng thật sự là biết chuyển chế độ: việc công ưu tiên hiệu quả; quan hệ con người ưu tiên cảm xúc và kết nối. Chương 7 Tự luyện tập Chọn một đề, tự viết một tin “1 chạm” trước, sau đó mới cho AI review và so sánh. 📝 Đề 1 — Báo cáo trễ tiến độ. Báo PM rằng dự án trễ 2 ngày do chờ phản hồi từ khách, và đề xuất phương án xử lý. 📝 Đề 2 — Xin đi muộn. Sáng mai đưa con đi khám, muốn đến muộn 2 tiếng (đến 11h). Có daily lúc 9h30 và đang giữ một task fix bug gấp. Nhắn Team Leader sao cho đọc xong duyệt được ngay. Câu lệnh hay dùng với skill Tình huốngCách gọi Kiểm tin trước khi gửiTin này gửi được chưa: … Rút gọn tin dàiRút gọn tin nhắn này: … Soạn tin theo tình huốngSoạn tin xin đi muộn: [bối cảnh] Tin gửi khách NhậtReview tin tiếng Nhật này (keigo): … Bắt đầu ngay Viết 6 nguyên tắc + quy tắc 1 chạm thành skill của riêng bạn (hoặc bắt đầu từ chat-message-review rồi chỉnh theo team). Với tin quan trọng tiếp theo: tự viết nháp trước, rồi gõ “review tin này”. Khi thấy AI bỏ sót điều gì, bổ sung quy tắc đó vào skill. Chương 8 Tải skill về dùng thử Đọc đến đây mà muốn thử ngay thì không cần tự viết từ con số 0. Bạn cứ tải skill chat-message-review về, dùng vài hôm, rồi chỉnh dần cho hợp với cách nói chuyện của team mình. Cả quá trình chỉ mất khoảng 5 phút. 1Tải vềBấm nút bên dưới để mở trang skill trên Kari, tải file skill về máy. 2Cài vào công cụ AIMở công cụ AI bạn đang dùng (ví dụ Claude), vào phần Skills và tải file vừa tải lên. 3Gọi thửDán một tin nhắn thật và gõ Tin này gửi được chưa: … Skill chat-message-review trên Kari Tải skill ngayMở trang tải trên Kari Dùng một thời gian mà thấy AI hay bỏ sót điều gì, hãy thêm quy tắc đó vào skill. Skill sẽ ngày càng giống cách bạn làm việc. Thấy bài viết hữu ích? Thả tim cho mình nhé Chỉ cần bớt được một vòng hỏi lại trên chat là bài này đã đáng đọc rồi. Nếu bạn thấy vậy, hãy thả tim hoặc để lại một reaction. Mình sẽ dựa vào đó để biết nên viết tiếp chủ đề nào. (function(){ var links=[].slice.call(document.querySelectorAll('.kp-toc a')); if(!links.length||!('IntersectionObserver' in window))return; var map={};links.forEach(function(a){map[a.getAttribute('href').slice(1)]=a;}); var obs=new IntersectionObserver(function(entries){ entries.forEach(function(e){ if(e.isIntersecting&&map[e.target.id]){ links.forEach(function(a){a.classList.remove('active');}); map[e.target.id].classList.add('active'); } }); },{rootMargin:'-20% 0px -70% 0px'}); Object.keys(map).forEach(function(id){var el=document.getElementById(id);if(el)obs.observe(el);}); })();