编写、调试与调优 Playwright 测试,涵盖定位器策略、追踪诊断与 CI 友好的超时配置。
编程
simplified-to-traditional
试用Convert a Simplified-Chinese article in ai-thoughts/docs/ into its Traditional-Chinese twin, and keep the two in sync. The Simplified article is the source of truth and lives as <YYMMDD-slug>-zh-hans.md; the Traditional twin is generated to <YYMMDD-slug>-zh-hant.md with OpenCC (s2twp) plus a permanent cross-link. Use when the user asks to make, sync, or update the Traditional (繁體) version of a Chinese article — "convert to traditional", "做繁體版", "同步繁简", "zh-hant", "繁體". Never runs automatically; acts only on an explicitly named article. Future articles only — do NOT backfill existing files unless the user explicitly orders it.
它能做什么
Simplified → Traditional (zh-hans → zh-hant)
技能文档
Simplified → Traditional (zh-hans → zh-hant)
Convert one Simplified-Chinese article into Traditional Chinese, and keep the pair in sync.
Approval gate — read before anything else
- Never convert or write without explicit user approval. This skill converts on demand only; it does not run automatically and does not pick articles on its own.
- Wait for the user to name the article. If they don't, do nothing but ask which one.
- Before writing, confirm the plan: the source file, the exact output path, and whether an existing
-zh-hant.mdshould be overwritten. Never overwrite silently. - Scope: future articles only. In this repo a bare
docs/.mdis the English article and the legacy-chn.mdfiles are the existing Simplified-Chinese articles — neither is a source here unless the user explicitly orders it.
Conventions
- Filenames. Simplified article =
docs/-zh-hans.md; Traditional twin =docs/-zh-hant.md. (In ai-thoughts a bare.mdis English and the legacy-chn.mdfiles are out of scope.) - Source of truth = the Simplified file. The Traditional file is derived from it.
- Traditional variant. OpenCC
s2twp(Taiwan, phrase-aware) — the best default for these literary articles. - Cross-link. Exactly one line, directly under the H1 and above the infographic; Chinese label; a permanent absolute URL on the
j3ffyangaccount:- In the Simplified file:
> 繁体版:[](https://github.com/j3ffyang/ai-thoughts/blob/main/docs/-zh-hant.md) - In the Traditional file:
> 簡體版:[](https://github.com/j3ffyang/ai-thoughts/blob/main/docs/-zh-hans.md) - The label is written in the file's own script (Simplified file →
繁体版; Traditional file →簡體版) so neither file mixes scripts.
- In the Simplified file:
- Infographic stays Simplified and is shared by both files (same
../imgs/...path). The README lists the Simplified article only.
Procedure
- Wait for the user to name the article, then locate
docs/-zh-hans.md(in this repo the source must be-zh-hans.md— a bare.mdis English). - Confirm the plan: source path, output path (
-zh-hant.md), and overwrite permission if the output already exists. - If an existing
-zh-hant.mdis present, stop and ask before overwriting — unless the user asked to update it. - Run the sync script:
It (a) injects/updates the Simplified file'spython3 .opencode/skills/simplified-to-traditional/scripts/sync_tra.py docs/-zh-hans.md繁體版cross-link, (b) converts the body withopencc -c s2twp, (c) injects the Traditional file's简体版cross-link, and (d) writesdocs/-zh-hant.md. - Review the generated Traditional against the Simplified. OpenCC can miss proper nouns, rare characters, or archaic terms. Surface anything suspicious to the user; do not silently hand-fix — a hand-edit is drift and will fail the next
--check. - Verify the pair is in sync:
Exit 0 = in sync; exit 1 lists what is stale.python3 .opencode/skills/simplified-to-traditional/scripts/sync_tra.py docs/-zh-hans.md --check - Report: source, output, and any review notes.
Keeping the two in sync
- After editing the Simplified article, re-run the sync to refresh its Traditional twin.
--checkregenerates the Traditional in memory and diffs it against the file (ignoring the cross-link lines); non-zero exit means out of sync.- Do not treat the Traditional file as an editable primary. Edit the Simplified and re-sync. If a term is genuinely mis-converted by OpenCC, tell the user and decide together, then pin it as a
(from, to)pair inscripts/sync_tra.py→OVERRIDES— it is applied after OpenCC on every re-sync, so it survives (a hand-edit would not).
Verification checklist
- Traditional file exists at
docs/-zh-hant.md. - Both files carry the correct cross-link line directly under the H1 (Chinese label,
j3ffyangURL, pointing at the other file). -
sync_tra.py --checkexits 0. - The infographic reference points at the shared (Simplified) image; no broken
../imgs/. - The Simplified file's body is otherwise unchanged (only the cross-link line added).
- Nothing committed (commit only on explicit approval).
Error handling
- Source not found: list
docs/*-zh-hans.mdand ask which to use; do not substitute a bare (English) or-chn.mdfile. - Output already exists: stop and ask before overwriting.
openccmissing or wrong dict: report and stop; do not guess a conversion.- Ambiguous source name (neither
-zh-hans.mdnor an explicitly ordered-chn.md): ask.
相关技能
j3ffyang 的更多技能
浏览全部技能Polish a technical blog draft into an 800–1000 word, 3–4 section zh-CN article, preserve technical terms/code, and generate consistent hero + per-section image prompts when the user asks to polish and translate a blog with images.
Generate video from supplied image using Veo-3.0 async API. Gemini vision analyzes image, Veo creates video via predictLongRunning. All outputs in ~/.openclaw/workspace/tibetanProc/ with yymmddHHMM prefix.
Read a plain Markdown file (e.g. 260321_openclawConfig.md), generate header and section images using the default OpenClaw image model and API key from ~/openclaw/.env, create a new *_img.md copy with embedded PNGs, and move all generated images into an img/ folder next to the original file.
Polish a technical blog draft into a 1000–1200 word, 4–5 section en-US article, preserve technical terms/code, and generate one consistent hero image prompt.
Help the user draft, review, and polish blog posts in Markdown, keeping the original languages and informal tone.
Generate a daily AI news newsletter from fresh web sources. Use when the user asks for a current AI digest, AI news roundup, curated newsletter, or daily AI...