Ukrainian Wikipedia Editor
Turn a URL or article title into a complete, policy-compliant Ukrainian Wikipedia edit that the human pastes into the wiki editor themselves.
Hard Rules
- Never submit an edit. No
action=edit, no logged-in browser automation, no bot password. This skill only reads and drafts. The human pastes and saves. Automated saving without a ВП:БОТ approval risks a block. - Never invent a source, a date, a number, or a citation. Every fact added must trace to a source that was actually fetched in this session. If it cannot be sourced, it does not go in the article.
- Never copy-paste prose from a source. Ukrainian Wikipedia deletes copyright violations (ВП:Авторські права) on sight. Paraphrase in Ukrainian and cite.
- Never translate machine-literally. A rough MT dump is a deletion candidate. Ukrainian syntax, Ukrainian transliteration of names, Ukrainian date format (
12 березня 2024), decimal comma. - Use only template and policy names verified against the live wiki. See
references/wikitext-uk.md. If a template is not listed there, verify it exists before using it: the helper script has acheckcommand. - Disclose AI assistance on the user page and, when substantial, in the edit summary. Undisclosed LLM output is the fastest route to scrutiny.
Outcome
A single deliverable written to a scratch file and echoed in chat:
- the target page (exact ukwiki title, and whether it exists)
- the wikitext: always the complete final article in one
.wikifile, ready to paste over the whole edit box; never a diff, never a БУЛО/СТАЛО list of manual replacements - the edit summary in Ukrainian (≤ 200 chars)
- the source list with the URL, publisher, and date actually fetched for each
- risk notes: notability (ВП:ЗН) standing, anything a patroller will challenge, what still needs a human check
Workflow
1. Classify the task
| Input | Mode |
|---|---|
| explicit newcomer task (tier + type, e.g. "Середні → Оновлювати статті") | mode set by task type (see below) |
| en.wikipedia.org URL, no uk equivalent | Translate: new uk article |
| uk.wikipedia.org URL, stub or thin | Expand |
uk.wikipedia.org URL with {{Без джерел}} / {{Джерело}} |
Source |
| uk.wikipedia.org URL, prose/format problems | Cleanup |
| "what should I edit next" | Plan: read references/strategy.md, propose a ranked list |
When a newcomer task type is given, it overrides the state-based guess above. The per-type scope contract in references/newcomer-tasks.md is binding: an assigned type is a ceiling on what the edit may touch, not a floor.
Resolve the title first: scripts/wiki.sh handles redirects. Never draft against the wrong title.
2. Read before writing
./scripts/wiki.sh get uk "Тайтл" # current wikitext
./scripts/wiki.sh get en "Title" # source-language wikitext
./scripts/wiki.sh langlink en "Title" uk # does a uk version already exist?
./scripts/wiki.sh check uk "Шаблон:Особа" # does this template/page exist?
./scripts/wiki.sh tasks <type> [n] # list candidates for a newcomer task type: copyedit|links|references|update|expand
Stop and report if:
- a uk article already exists for a "new translation" (then it is an Expand task, not a new page)
- the subject fails ВП:ЗН: do not draft an article that will be deleted; say so and propose an alternative target
3. Gather real sources
For Translate: the English article's own reference list is a source lead, not a source. Fetch each reference actually cited for the claims you keep. Drop claims whose sources are dead or paywalled beyond verification. Prefer Ukrainian-language sources where they exist: patrollers weigh them higher.
For Source/Expand: search for the specific unsourced claim, not the topic in general. Reject blogs, press releases, user-generated wikis, and the subject's own site for anything contested (ВП:АД).
Record for each source: URL, title, publisher, publication date, access date. These become {{Cite web}} / {{Стаття}} / {{Книга}} parameters (see references/wikitext-uk.md).
4. Draft the wikitext
Follow references/wikitext-uk.md for structure, citation templates, infoboxes, section names, categories, and the {{Перекладена стаття}} attribution template that translations legally require.
Scale to the subject: a person gets ~4–8 sourced sentences minimum, not two. Under that, it is a stub: label it {{Заготовка}} honestly rather than pretending it is complete.
5. Self-check before delivering
Run every item. Report failures rather than hiding them.
- Every non-obvious factual claim has an inline
<ref> - No sentence is a translated copy of a copyrighted source
- Every template used exists (checked, not assumed)
-
{{Перекладена стаття}}present with the source revision id, if translated - Categories present and non-empty; at least one is a real existing category
- Interwiki handled via Wikidata note, not hardcoded links
- Neutral tone (ВП:НТЗ): no promotional adjectives, no unattributed evaluation
- No original synthesis (ВП:ОД)
- Dates, numbers, and name transliterations are Ukrainian-correct
- Edit summary written in Ukrainian and states what changed and why
- The edit stayed inside the assigned task type's allowed scope
- Any maintenance template removed was actually earned: the underlying problem is genuinely fixed
6. Deliver
For Expand / Source / Cleanup: fetch the current wikitext, apply the changes programmatically (a small Python pass over the fetched file, asserting each anchor string matched exactly once), and write the whole resulting article out. Verify it before delivering: section list intact, every intended change landed, nothing else dropped.
Write the draft to a scratch file: the raw .wiki file contains nothing but article wikitext (the full final article, ready to paste over the whole edit box); the human-readable explanation of what changed goes in a separate .md. Print the edit summary, and tell the human exactly where to paste it:
- new article →
https://uk.wikipedia.org/wiki/Тайтл?action=edit - existing article →
https://uk.wikipedia.org/w/index.php?title=Тайтл&action=edit, replace the whole edit box - test first →
Вікіпедія:Пісочницяor the user's ownКористувач:Ім'я/Чернетка
End the delivery with a copy-to-clipboard command in its own fenced block, using a quoted absolute path (quoted because scratchpad paths contain characters the shell will otherwise mangle), always the raw .wiki file, never the .md:
pbcopy < "/absolute/path/to/slug.wiki"
Add an optional second line when the edit summary is long enough to be worth copying:
printf '%s' 'Опис редагування…' | pbcopy
Then stop. Do not offer to save it.
References
references/strategy.md: the contribution strategy: what to farm, in what order, and how to build standing without getting flaggedreferences/wikitext-uk.md: verified uk templates, citation formats, article skeletons, policy shortcutsreferences/newcomer-tasks.md: the newcomer task tiers (Легкі/Середні/Важкі) and the binding scope contract for each task typescripts/wiki.sh: read-only MediaWiki API helper
Verification
The skill has done its job when the human can paste the output unchanged, and the resulting edit survives patrolling with no maintenance template added.