- SimpleEnglish là một Agent Skill buộc LLM viết tài liệu kỹ thuật ngắn gọn, không mơ hồ theo ngôn ngữ kiểm soát ASD-STE100, vốn được dùng trong ngành hàng không vũ trụ từ năm 1983
- Công cụ này áp dụng 53 quy tắc như giới hạn độ dài câu, thể chủ động, thì đơn, đặt điều kiện trước, một chỉ dẫn cho mỗi câu, đồng thời hỗ trợ tài liệu, thông báo lỗi, runbook, báo cáo sự cố, ghi chú phát hành, prompt và chuẩn bị dịch
- Trong 96 lượt đánh giá so sánh 6 mô hình Claude trên 8 tác vụ dưới 2 điều kiện, số vi phạm STE trên mỗi 100 từ giảm trung bình 72,9%, và số token đầu ra cũng giảm ở mọi mô hình
- Có thể cài đặt không phụ thuộc trong Claude Code, Cursor, VS Code Copilot, OpenAI Codex, Gemini CLI và các công cụ khác hỗ trợ tiêu chuẩn Agent Skills; ở môi trường chưa hỗ trợ, có thể áp dụng qua system prompt hoặc chỉ dẫn người dùng
- Kết quả không phải chứng nhận chính thức của ASD, và không áp dụng cho marketing, blog hay văn phong thương hiệu. Chế độ mặc định kết hợp quy tắc cấu trúc với từ vựng miền, còn việc đánh giá từ ngữ ở chế độ nghiêm ngặt cần tiêu chuẩn chính thức
Vấn đề mà dự án giải quyết
- SimpleEnglish là một Agent Skill biến các câu văn cường điệu và mơ hồ do LLM tạo ra thành câu kỹ thuật gần với ASD-STE100 Simplified Technical English
- ASD-STE100 là một ngôn ngữ kiểm soát đã được dùng trong lĩnh vực hàng không vũ trụ từ năm 1983 để kỹ thuật viên bảo trì đang mệt không hiểu sai chỉ dẫn
- Khác biệt giữa văn bản gốc do Claude tạo và kết quả áp dụng Skill nằm ở tính cụ thể và khả năng thực thi
- Câu “tận dụng kiến trúc vững chắc để đồng bộ liền mạch” được đổi thành nội dung sao chép bảng Postgres sang S3 và cần một tệp cấu hình
- Thông báo lỗi kết nối chung chung được đổi thành lỗi mật khẩu của người dùng
app và hành động sửa DB_PASSWORD
- Câu mô tả sự cố rằng có thể đã ảnh hưởng đến người dùng không xác định được đổi thành thời điểm lỗi, 12% yêu cầu thất bại, nguyên nhân triển khai và thời điểm rollback
- Có thêm các ví dụ so sánh cho README, thông báo lỗi, báo cáo sự cố và ghi chú phát hành tại
examples/before-after.md
Cài đặt và môi trường hỗ trợ
- Hoạt động trên khoảng 25 harness như Claude Code, Cursor, VS Code Copilot, OpenAI Codex, Gemini CLI, Goose, OpenCode... có hỗ trợ tiêu chuẩn Agent Skills
- Dự án chỉ gồm một thư mục, không có phụ thuộc ngoài và dùng giấy phép MIT
- Lệnh cài đặt như sau
npx skills add AminBlg/SimpleEnglish
- skills CLI phát hiện agent đã cài và cài Skill vào đích mà người dùng chọn
- Có thể thử trước khi cài bằng lệnh sau
npx skills use AminBlg/SimpleEnglish@simple-english
- Trong môi trường không hỗ trợ
SKILL.md, có thể đưa prompts/system-prompt.md vào system prompt, AGENTS.md hoặc .cursorrules
- Cũng có phiên bản khoảng 60 token cho môi trường có ngân sách token nhỏ
- Có thể dùng bằng cách yêu cầu viết tài liệu kỹ thuật hoặc chỉ dẫn “rewrite this with simple-english”
Sử dụng trong môi trường không có terminal
- Gói trả phí Claude.ai hỗ trợ Skill sẵn
- Lưu
SKILL.md
- Bật thực thi mã tại
Settings → Capabilities
- Tải tệp lên tại
Settings → Customize → Skills → Upload
- Khi bật Skill, nó sẽ được áp dụng cho các yêu cầu viết tài liệu kỹ thuật
- ChatGPT không hỗ trợ Skill, nên dùng bản prompt
- Đưa khối trong
prompts/system-prompt.md vào Settings → Personalization → Custom Instructions, Project hoặc chỉ dẫn của Custom GPT
- Trong Gemini, tạo Gem rồi dán cùng prompt đó vào phần chỉ dẫn
- Với chatbot khác, đính kèm tệp prompt hoặc dán nội dung rồi chỉ dẫn áp dụng cho mọi đầu ra
Quy tắc viết lấy từ ASD-STE100
- Skill áp dụng 53 quy tắc trong 9 mục được tạo ra năm 1983 cho tài liệu kỹ thuật
- Các quy tắc chính như sau
- Câu chỉ dẫn tối đa 20 từ, câu giải thích tối đa 25 từ
- Trong toàn bộ tài liệu, mỗi từ chỉ dùng với một nghĩa để tránh lẫn lộn giữa các cách diễn đạt như
check, verify, confirm, validate
- Chỉ dùng thì đơn, và viết trực tiếp ai đã cập nhật cái gì thay vì “has been updated”
- Không dùng dạng động từ
-ing và các mệnh đề phụ gắn với nó
- Dùng thể chủ động để bỏ các cách diễn đạt gián tiếp như “it should be noted that”
- Cấm
should, would, may, might, nhưng cho phép can, will, must
- Đặt điều kiện trước mệnh lệnh để người dùng không đọc điều kiện quá muộn
- Mỗi câu chỉ chứa một chỉ dẫn
- Giữ mạo từ và
that, không biến câu thành kiểu điện tín dù có ngắn
- Toàn bộ quy tắc diễn đạt lại, bao gồm ví dụ phần mềm, có trong
SKILL.md
- Vì marketing nằm ngoài phạm vi áp dụng STE, các câu marketing trong README không áp dụng các quy tắc này, và Skill cũng chỉ áp dụng cho việc viết tài liệu
Phạm vi áp dụng ngoài tài liệu kỹ thuật
use-cases.md cung cấp quy tắc cho nhiều định dạng khác nhau
- Thông báo lỗi được viết theo thứ tự: điều gì đã xảy ra, nguyên nhân, người dùng cần làm gì
- Runbook tương tự sổ tay bảo trì nên áp dụng STE trực tiếp
- Báo cáo sự cố dùng quá khứ đơn để bỏ cách diễn đạt mơ hồ và vòng vo
- Các thay đổi breaking trong ghi chú phát hành được cấu thành như cảnh báo: mệnh lệnh trước, rủi ro sau
AGENTS.md và system prompt được xem là quy trình cho độc giả không thể đặt câu hỏi, nên cấm should vì mô hình có thể hiểu là tùy chọn
- Tài liệu được chỉnh trước khi dịch thành dạng dễ đọc cho người không phải bản ngữ và giảm chi phí bản địa hóa
- Không áp dụng cho câu chữ marketing, văn phong blog, viết lách thương hiệu, và việc giọng văn phẳng là đặc tính có chủ đích
Kết quả benchmark
- Trong đánh giá, 6 mô hình Claude thực hiện 8 tác vụ viết trước và sau khi áp dụng Skill, đo tổng cộng 96 kết quả sinh
- Vi phạm STE trên mỗi 100 từ giảm trung bình 72,9% trên toàn bộ
claude-opus-4-8: giảm từ 1.05 xuống 0.62, cải thiện 41%
claude-opus-4-7: giảm từ 2.28 xuống 0.42, cải thiện 82%
claude-opus-4-6: giảm từ 2.24 xuống 0.40, cải thiện 82%
claude-opus-4-5: giảm từ 2.55 xuống 0.57, cải thiện 78%
claude-sonnet-5: giảm từ 2.67 xuống 0.53, cải thiện 80%
claude-sonnet-4-6: giảm từ 2.06 xuống 0.52, cải thiện 75%
- Ở mọi mô hình, số token đầu ra đều giảm, và độ dài câu trung bình giảm từ 11,2 từ xuống 9,7 từ
- Dùng một regex linter tất định áp dụng cùng quy tắc cho cả hai điều kiện, còn toàn bộ phương pháp và giới hạn được mô tả tại
evals/results/RESULTS.md
- Chỉ cần Claude Code CLI đã đăng nhập là có thể tái lập bằng lệnh sau
python3 evals/run_bench.py
Cách kiểm chứng quy tắc
- Skill được xây dựng theo cách test-driven dựa trên nguyên bản Issue 9 năm 2025, không phải bản tóm tắt blog
- Agent chuẩn không có Skill có thể viết câu dài 40 từ và thậm chí tạo ra số quy tắc không tồn tại
- Một kết quả đã viện dẫn quy tắc câu ngắn là “Rule 3.1”, nhưng thực tế Rule 3.1 là quy tắc về dạng động từ
- Không giống một số tài liệu thứ cấp, PDF chính thức cho phép
can và will
- Sau khi ghi nhận từng lỗi của baseline, tác giả viết Skill để chặn từng lỗi một rồi kiểm thử lại cho đến khi agent vượt qua; các kịch bản và kết quả có trong
evals/pressure-tests.md
Giới hạn áp dụng và trạng thái tiêu chuẩn
- Kết quả tạo ra không phải tài liệu được chứng nhận STE
- ASD không chứng nhận bất kỳ công cụ nào
- Chế độ mặc định kết hợp quy tắc cấu trúc với từ vựng miền của người dùng
- Chế độ nghiêm ngặt gần với tiêu chuẩn hơn, nhưng việc đánh giá theo từng từ cần tiêu chuẩn chính thức
- Kết quả được viết theo kiểu phẳng và khó hiểu sai như sổ tay của Airbus, và được thiết kế để dành văn phong có cá tính cho mục đích khác như blog
- Khác với chỉ dẫn chủ quan kiểu “hãy viết rõ ràng”, yêu cầu “hãy viết câu không quá 20 từ” là đặc tả có thể kiểm chứng nên agent có thể tuân theo
- ASD-STE100 là tiêu chuẩn hơn 40 năm tuổi, nhưng vẫn được duy trì và cập nhật đến Issue 9 tháng 1/2025, có đánh số và có thể kiểm thử
Giấy phép và vị thế không chính thức
- Toàn bộ kho mã được cung cấp theo giấy phép MIT
- Dự án diễn đạt lại các quy tắc cho mục đích giáo dục và không sao chép câu chữ đặc tả chính thức hay nội dung từ điển
- Đây không phải dự án liên kết hay được ASD hoặc STEMG phê duyệt, và ASD-STE100 là nhãn hiệu đã đăng ký của ASD
1 bình luận
Các ý kiến trên Hacker News
Chỉ cần thêm câu “hãy viết lại bằng tiếng Anh kỹ thuật giản lược ASD-STE100” vào trước một ví dụ là đã cho kết quả khá ổn. Có lẽ chỉ cần một hai câu hướng dẫn là đủ, nên tôi thắc mắc vì sao lại cần một skill khổng lồ, trong khi ASD-STE100 rất có khả năng đã nằm trong dữ liệu huấn luyện
Tôi đã tạo một skill áp dụng hướng dẫn phong cách của The Economist cho câu do LLM sinh ra: https://github.com/TAJD/economist-style-guide-plugin
Nó tạo ra văn bản có cấu trúc tương đối tốt và dễ biên tập
Đây là nội dung về việc dùng sai STE và mức độ áp dụng hạn chế: https://en.wikipedia.org/wiki/Simplified_Technical_English#M...
Tôi thích ý tưởng này nhưng chưa tin chắc vào chính skill đó. Thay vào đó, tôi đã tìm thấy https://vale.sh và vài linter khác, nên định thử nghiệm
Có vẻ nó làm quá nhiều việc; một dòng system prompt là đủ để hoạt động khá tốt: “Token đầu ra rất quý, hãy trả lời ngắn gọn và dùng tiếng Anh kỹ thuật giản lược ASD-STE100”
CLAUDE.md, cuối cùng mô hình vẫn đi chệch hướng và nhồi đầy docstring cùng phần giải thích bằng thuật ngữ kỹ thuật chuyên mônTôi sẵn sàng thử bất cứ cách nào giúp phần giải thích mã dễ hiểu và đơn giản hơn, nên cũng kỳ vọng vào cách này
Thật mỉa mai là ngay từ README đã lộ rõ văn phong đặc trưng của LLM, kiểu “9 mục, 53 quy tắc được viết năm 1983 bởi những người mà chỉ một câu mơ hồ cũng có thể khiến độc giả thiệt mạng”. Đây không phải tín hiệu mấy hứa hẹn cho một skill viết lách
Mỗi câu còn có emoji kèm theo, đã bị HN loại bỏ
Câu ngắn hơn, các đoạn mở đầu cường điệu hoặc tiêu đề mục rỗng tuếch như slide thuyết trình giảm đi, nên chất lượng cải thiện đáng kể; nhưng không mang tính đột phá và cũng không giải quyết triệt để vấn đề
Ngay ví dụ đầu tiên của chuẩn Issue 9 đã tự mâu thuẫn.
Testlà danh từ được chấp thuận nhưng không được chấp thuận như động từ, vậy mà câu ví dụ STE lại là “Test B is an alternative to test A”Nếu không biết quy tắc riêng của STE, đây rõ ràng là một câu mơ hồ, rất xa với sự rõ ràng. Vì trang chính thức giấu bản tải xuống sau Google Form, tôi để lại cả liên kết có thể tải trực tiếp: https://www.asd-ste100.org/assets/files/ASD-STE100_ISSUE9.pd...
Testở đầu là động từ thì phải hiểu rằngthatđã bị lược trong câu “hãy kiểm tra xem B có phải là phương án thay thế cho A không”, nhưng khi đó ở đầu là động từ còn ở sau là danh từ, làm phá vỡ tính song songHơn nữa, cách hiểu rằng câu đó đang ra lệnh cho ai đó thực hiện hành động như vậy tự thân đã rất khó xảy ra
Tôi thắc mắc liệu lý do ASD-STE100 đột nhiên được chú ý có phải là một tweet viral không. Tôi nghe từ bạn bè và đã đăng đặc tả vài ngày trước: https://asd-web-be-prod.azurewebsites.net/media/wunhmi5y/asd...
PDF bị cấm sao chép, dù có thể dễ dàng vượt qua, nên tôi không hiểu vì sao họ làm vậy. Nếu muốn chặn các từ không được phép, cần một linter kiểu
ruffcho tiếng Anh; nếu không, agent gần như chắc chắn sẽ quên hướng dẫn một dòng đóTôi tò mò những hướng dẫn như thế này ảnh hưởng thế nào đến trí tuệ hay năng lực suy luận của mô hình. Nếu chúng thay đổi đầu ra hoặc quá trình suy nghĩ, năng lực của mô hình cũng có thể thay đổi, đặc biệt nếu trong quá trình huấn luyện nó không được rèn để dùng ngôn ngữ như vậy
Trong https://youtu.be/uJblcC4lKYw, người ta so sánh và đánh giá nhiều skill/prompt, gồm cả skill STE, với 6 nguyên tắc viết của George Orwell, và tổng thể Orwell cho kết quả tốt nhất
Số token thêm vào ngữ cảnh đầu vào cũng không nhiều; khi so sánh prompt văn xuôi có áp dụng các quy tắc này với prompt không áp dụng, tôi thích kết quả hơn. Nội dung là tránh ẩn dụ quen thuộc, không dùng từ dài nếu từ ngắn đã đủ, bỏ mọi từ có thể bỏ, dùng chủ động thay vì bị động, tránh từ nước ngoài, thuật ngữ khoa học hoặc thuật ngữ chuyên môn nếu có từ thường ngày, và hãy phá vỡ các quy tắc này thay vì viết một câu man rợ
Có quá nhiều sáo ngữ và cách diễn đạt đặc trưng của AI, như “nói thật thì cải thiện dịch thuật là có thật nhưng nhỏ”, “giờ đến phần thành thật”, “cùng một căn bệnh nhưng triệu chứng khác nhau”, “con số 3% tàn nhẫn đó không phải quy luật tự nhiên mà là đặc tính của Claude”