Vietnamese Tech Writing logo

Vietnamese Tech Writing

Organization
trussary
vietnamese-tech-writing

Writes and reviews native-quality Vietnamese (vi-VN) engineering and product documentation — commit messages, PR descriptions, code review, RFCs, design docs, postmortems, runbooks, READMEs, API docs, UI and error microcopy, i18n resource files, PRDs, user stories, release notes, changelog entries, in-app notifications, help-centre articles, surveys and research guides, and app-store listings. Use when drafting or reviewing Vietnamese technical or product content, deciding which English terms stay English, choosing the impersonal register over bạn, or handling vi-VN i18n hazards like string expansion, ICU plurals, collation, and NFC. Fixes the machine-translation tells Vietnamese engineers notice immediately.

Overview

Publishertrussary
Repositoryvietnamese-language-skill
Skill namevietnamese-tech-writing
Stars
95
Forks
19
Bundled files
16
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 16 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by trussary on GitHub. Read the source before you install it.

Installation

Install the Vietnamese Tech Writing AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/trussary/vietnamese-language-skill/tree/main/skills/vietnamese-tech-writing
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/trussary/vietnamese-language-skill.git /tmp/vietnamese-language-skill
mkdir -p .claude/skills
cp -r /tmp/vietnamese-language-skill/skills/vietnamese-tech-writing .claude/skills/vietnamese-tech-writing
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Vietnamese Tech Writing in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Vietnamese Tech Writing on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Vietnamese Tech Writing is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Vietnamese engineering and product writing (vi-VN)

Vietnamese technical writing fails differently from Vietnamese marketing writing. Marketing copy goes wrong by being too literal. Technical copy goes wrong by being too Vietnamese — translating the English terms that Vietnamese engineers keep in English, and addressing a reader in documents that describe a system.

Both defects are invisible to a non-engineer proofreader and instantly obvious to the team that has to use the document.

Step 1 — Decide what the document is before writing a word

Two decisions follow from the document type, and both are inverted from the landing-page defaults.

If you are writingRegisterTerms
RFC, design doc, postmortem, runbook, specimpersonal — no bạn at allVietnamese leans formal (bộ nhớ đệm, cơ sở dữ liệu)
README, tutorial, API docs, UI copy, release notesbạnVietnamese for user-facing nouns
PR description, code review, standup, chatmình / no addressEnglish terms throughout
Status page (customer-facing)quý kháchplain, non-technical

bạn in an RFC is a defect. Vietnamese has natural impersonal constructions — Hệ thống sẽ tự động retry, Cần cấu hình biến môi trường — and English does not, which is exactly why translated text is full of bạn.

Which document takes which register, and the impersonal constructions that replace bạn: references/doc-registers.md. The full pronoun matrix shared with the other Vietnamese skills: references/register-matrix.md.

Step 2 — Core rules (non-negotiable, no file hop needed)

  1. Keep the English terms English. deploy, commit, merge, bug, server, cache, deadline, sprint, backlog, pull request. Translating them is the single loudest machine-translation tell. cam kết for commit is the worst offender — it is a real word meaning to pledge.
  2. Never translate environment names. production, staging, dev. triển khai đến sản xuất is not a sentence any Vietnamese engineer has written.
  3. Identifiers, branch names, and commit subjects are ASCII. No diacritics, ever. The commit body may be Vietnamese; the subject line may not.
  4. Emit NFC Unicode. Precomposed ế (U+1EBF). NFD breaks font rendering, inflates character counts past platform limits, and defeats search.
  5. Vietnamese has no grammatical plural. ICU messages take other only. A one, few, many or zero branch in a vi file is always a bug. =0 selectors are fine.
  6. Pick one tone-mark style per document — kiểu mới (hoà, thuỷ) by default. Neither style is wrong; mixing them is.
  7. Never use an agree/disagree survey scale. Acquiescence bias inflates agreement by roughly 10 points. Ask about the property itself.
  8. Errors say what happened and what to do. Never quý khách in a developer-facing surface, and never blame the user.

Step 3 — Look up the term before inventing one

The blocklist of calques that mark machine translation, the terms where both an English and a Vietnamese form are live (server/máy chủ, cache/bộ nhớ đệm — pick one and hold it), and the settled Vietnamese for user-facing UI strings:

references/glossary.md — machine-readable, so every row is a lint rule.

The reasoning behind which words stay English, and the formality axis that decides the borderline cases: references/code-switching.md.

Step 4 — Handle the i18n hazards

Vietnamese text runs 25–30% longer than English, so fixed-width buttons truncate. Diacritics force SMS into UCS-2, cutting the segment from 160 characters to 70. Users search without diacritics, so matching must be accent-insensitive. Font subsets that drop stacked diacritics (ề, ộ, ữ) break rendering silently.

references/i18n-hazards.md — plus references/locale-formatting.md for numbers, dates and currency, and references/unicode-and-tone.md for NFC, collation, and input methods.

For a starter resource file: assets/messages.vi.json.template — ASCII keys, NFC values, other-only plurals, both registers.

Step 5 — Product and research writing

Release notes are benefit-led and past-tense (Đã sửa lỗi…, Đã thêm…). Agile terms stay English (sprint, backlog, roadmap — lộ trình is also fine). User stories are Là [vai trò], tôi muốn…, never Như một [vai trò].

Surveys are where this skill earns its keep, because a badly worded Vietnamese survey reads fine and returns wrong numbers: references/survey-design.md.

Step 6 — Check the claims

App-store listings and in-product claims are advertising under Luật Quảng cáo 16/2012/QH13. An unproven tốt nhất or số 1 in a subtitle is a regulated claim, not a tagline.

references/banned-phrases.md for the genre-specific list, references/compliance.md for the cross-cutting advertising, consent, and personal-data rules every Vietnamese skill shares.

Step 7 — Validate, fix, then ship

Run the validator immediately after writing. If it reports errors, fix them and run again. Only present the copy once it passes. NFC violations and ICU plural bugs are invisible to reading.

bash
python scripts/validate_copy.py path/to/doc.md --register eng-impersonal
python scripts/validate_copy.py .git/COMMIT_EDITMSG --doctype commit
python scripts/validate_copy.py messages/vi.json --doctype identifier
python scripts/validate_copy.py survey.md --doctype survey
  • --register eng-impersonal|eng-readme|saas|re|formal|consult|... enables PRO002. --list-rules prints every rule this skill can emit.
  • --doctype is what turns on the structural rules. They stay silent without it, because a 30-character limit is right for an app-store subtitle and nonsense for a design doc: commit, branch, identifier, rfc, postmortem, runbook, survey, app-store-title, app-store-subtitle, app-store-short-description, consent.
  • Exit 0 = clean or warnings only. Exit 1 = errors that must be fixed.
  • --json for machine-readable findings; --strict to fail on warnings too.
  • --fix rewrites NFC violations in place; every other rule is a human judgement call.

Check glyph coverage when a specific web font is specified:

bash
python scripts/check_font_coverage.py path/to/copy.md

Step 8 — Learn from the worked pairs, then hand it to a human

Read the bad→good corpus before writing anything long. Each pair names the failure mode it fixes, and the diagnosis generalizes further than the string does.

references/examples.md

Then run the checklist. The linter catches encoding, blocklisted calques, and the doctype-gated structural rules. It cannot tell you whether a new Vietnamese rendering of an English term reads natural, whether a survey item is leading, or whether an error message is actually actionable. Those need a native speaker who ships software: references/qa-checklist.md

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Vietnamese Tech Writing AI skill do?

Writes and reviews native-quality Vietnamese (vi-VN) engineering and product documentation — commit messages, PR descriptions, code review, RFCs, design docs, postmortems, runbooks, READMEs, API docs, UI and error microcopy, i18n resource files, PRDs, user stories, release notes, changelog entries, in-app notifications, help-centre articles, surveys and research guides, and app-store listings. Use when drafting or reviewing Vietnamese technical or product content, deciding which English terms stay English, choosing the impersonal register over bạn, or handling vi-VN i18n hazards like string...

Why use Vietnamese Tech Writing on TypingMind?

Because you install it once and use it with any model. Vietnamese Tech Writing is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Vietnamese Tech Writing in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/trussary/vietnamese-language-skill/tree/main/skills/vietnamese-tech-writing. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Vietnamese Tech Writing?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Vietnamese Tech Writing?

As many as you like. As long as a model supports skills, you can use Vietnamese Tech Writing with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Vietnamese Tech Writing AI skill free?

Yes. It is published on GitHub by trussary under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇