Agent Skillslyqht/mini-qr › context-extraction

context-extraction

GitHub

为Crowdin JSONL文件中缺乏上下文的字符串生成ai_context,辅助翻译。通过文本、键和源文件分析歧义内容,编写面向译者的UI说明,严格仅修改ai_context字段以确保文件安全。

.agents/skills/context-extraction/SKILL.md lyqht/mini-qr

触发场景

提取上下文 填充ai_context字段 为歧义字符串添加上下文 处理Crowdin JSONL上下文文件

安装

npx skills add lyqht/mini-qr --skill context-extraction -g -y
更多选项

非标准路径

npx skills add https://github.com/lyqht/mini-qr/tree/main/.agents/skills/context-extraction -g -y

不安装直接使用

npx skills use lyqht/mini-qr@context-extraction

指定 Agent (Claude Code)

npx skills add lyqht/mini-qr --skill context-extraction -a claude-code -g -y

安装 repo 全部 skill

npx skills add lyqht/mini-qr --all -g -y

预览 repo 内 skill

npx skills add lyqht/mini-qr --list

SKILL.md

Frontmatter
{
    "name": "context-extraction",
    "description": "Writes meaningful ai_context values in Crowdin JSONL files for strings that need translator context. Use when extracting context, filling ai_context fields, adding context to ambiguous strings, or working with Crowdin JSONL context files."
}

Context Extraction

Information sources (priority order)

For each string, use these JSONL fields in order - stop when you have enough to write a confident ai_context:

  1. text - the source string itself; always the primary signal
  2. key - often encodes structure (e.g. button.save, modal.title.delete_user, error.network.timeout)
  3. context - may contain a free-text description, a translator comment, a source file reference, or be empty; treat as supplementary and don't assume any specific format
  4. Source files - only if context contains a parseable file path + line number and the string is still ambiguous; read ±10–15 lines around the reference to identify UI element type, surrounding component, and props

Strings that need context

Prioritize these - skip strings that are already clear from text + key alone:

  • Ambiguous short words - single verbs, nouns, or adjectives that change meaning depending on UI placement
  • Color / status names - words that name a color, state, or category; could be a label, badge, or filter
  • ICU / message format strings - strings with plural forms or named parameters whose meaning depends on what's being counted or substituted
  • Strings with inline tags - text containing markup tags where the role of the tagged portion isn't clear from the string alone
  • Short phrases with unclear scope - brief imperative or standalone phrases that could belong to multiple UI contexts

Writing good ai_context values

  • 1–3 sentences, written for a translator - not a developer
  • State the UI element type (button, label, tab, tooltip, modal title, dropdown option, etc.) and where it appears
  • For plurals: what entity is counted, what # is replaced with
  • For inline tags: what the tagged portion renders as (link, code, bold text, etc.)
  • For color/status names: whether it's a selectable option, badge, filter label, etc.
  • Avoid file names and variable names unless they clarify meaning

Examples

String Key Good ai_context
"Red" color.red "Color option label in a color picker. Refers to the color red as a selectable choice."
"Blue" (none) "Color name used as a selectable option or status label. Clarify based on surrounding UI."
"{count, plural, one {# month} other {# months}}" duration.months "Displays a duration in months. '#' is replaced by the numeric count."
"Edit <0>src/App.tsx</0> and save to test HMR" (none) "Instructional UI message. The tagged portion is rendered as an inline code element highlighting a filename."
"New" button.new "Label for a button that creates a new item. The exact entity depends on the current page context."

JSONL file safety rules

Only ever edit the ai_context field value. Never touch id, key, text, file, or context.

Editing procedure

Single-string (1–5 lines): Use StrReplace scoped to the exact line. Target the "ai_context":"" substring (or the full current value if already set):

old: "ai_context":""
new: "ai_context":"Your context here."

Batch (many strings): When dozens or hundreds of lines need context, work in batches instead of one string at a time.

  • Read a portion of the file (or the whole file if manageable), identify lines that need ai_context, fill context for a batch of those lines (parse line as JSON, set ai_context, serialize back to a single line), then write or apply that batch of changes. Repeat for the next batch until done.
  • Prefer writing (or applying edits) in batches of lines rather than a single global read-then-write or hundreds of single-line replacements. Batch size is up to the implementer (e.g. tens or a hundred lines per batch).
  • When batching, still apply the validity checklist below to a sample of changed lines before saving.

Validity checklist (verify before saving)

  • The line is still a single valid JSON object
  • ai_context value is a quoted string
  • No unescaped double quotes inside the value - use \"
  • No literal newlines inside the value - keep it on one line
  • No fields added, removed, or reordered

Character escaping

  • "\"
  • \\\
  • Newline → avoid; use a space instead

版本历史

  • 1d71eff 当前 2026-07-11 16:58

元信息

文件数
0
版本
1d71eff
Hash
b7e5f348
收录时间
2026-07-11 16:58

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-11 23:12
浙ICP备14020137号-1 $访客地图$