@olegkoval/agent-skills 1.21.1 → 1.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/.claude-plugin/plugin.json +3 -2
  2. package/.cursor-plugin/index.json +5 -0
  3. package/.grok-plugin/index.json +5 -0
  4. package/.kiro/steering/wikipedia-uk-editor.md +105 -0
  5. package/.windsurf/rules/wikipedia-uk-editor.md +104 -0
  6. package/README.md +2 -1
  7. package/catalog/skills.json +26 -0
  8. package/collections/software-development.json +2 -1
  9. package/package.json +1 -1
  10. package/packages/software-development/wikipedia-uk-editor/SKILL.md +116 -0
  11. package/packages/software-development/wikipedia-uk-editor/adapters/claude/plugin.json +5 -0
  12. package/packages/software-development/wikipedia-uk-editor/adapters/claude/skills/wikipedia-uk-editor/SKILL.md +117 -0
  13. package/packages/software-development/wikipedia-uk-editor/adapters/claude/skills/wikipedia-uk-editor/references/strategy.md +97 -0
  14. package/packages/software-development/wikipedia-uk-editor/adapters/claude/skills/wikipedia-uk-editor/references/wikitext-uk.md +121 -0
  15. package/packages/software-development/wikipedia-uk-editor/adapters/claude/skills/wikipedia-uk-editor/scripts/wiki.sh +98 -0
  16. package/packages/software-development/wikipedia-uk-editor/adapters/codex/README.md +20 -0
  17. package/packages/software-development/wikipedia-uk-editor/adapters/cursor/plugin.json +6 -0
  18. package/packages/software-development/wikipedia-uk-editor/adapters/cursor/skills/wikipedia-uk-editor/SKILL.md +117 -0
  19. package/packages/software-development/wikipedia-uk-editor/adapters/cursor/skills/wikipedia-uk-editor/references/strategy.md +97 -0
  20. package/packages/software-development/wikipedia-uk-editor/adapters/cursor/skills/wikipedia-uk-editor/references/wikitext-uk.md +121 -0
  21. package/packages/software-development/wikipedia-uk-editor/adapters/cursor/skills/wikipedia-uk-editor/scripts/wiki.sh +98 -0
  22. package/packages/software-development/wikipedia-uk-editor/adapters/grok/plugin.json +6 -0
  23. package/packages/software-development/wikipedia-uk-editor/adapters/grok/skills/wikipedia-uk-editor/SKILL.md +117 -0
  24. package/packages/software-development/wikipedia-uk-editor/adapters/grok/skills/wikipedia-uk-editor/references/strategy.md +97 -0
  25. package/packages/software-development/wikipedia-uk-editor/adapters/grok/skills/wikipedia-uk-editor/references/wikitext-uk.md +121 -0
  26. package/packages/software-development/wikipedia-uk-editor/adapters/grok/skills/wikipedia-uk-editor/scripts/wiki.sh +98 -0
  27. package/packages/software-development/wikipedia-uk-editor/adapters/hermes/README.md +3 -0
  28. package/packages/software-development/wikipedia-uk-editor/adapters/kiro/steering/wikipedia-uk-editor.md +105 -0
  29. package/packages/software-development/wikipedia-uk-editor/adapters/pi/README.md +3 -0
  30. package/packages/software-development/wikipedia-uk-editor/adapters/windsurf/rules/wikipedia-uk-editor.md +104 -0
  31. package/packages/software-development/wikipedia-uk-editor/references/strategy.md +97 -0
  32. package/packages/software-development/wikipedia-uk-editor/references/wikitext-uk.md +121 -0
  33. package/packages/software-development/wikipedia-uk-editor/scripts/wiki.sh +98 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "olko-agent-skills",
3
3
  "description": "Agent-agnostic skill catalog for Codex, Claude, Cursor, Grok, Copilot, Windsurf, Kiro, and other skill-aware tools.",
4
- "version": "1.21.0",
4
+ "version": "1.21.1",
5
5
  "author": {
6
6
  "name": "Oleg Koval"
7
7
  },
@@ -37,6 +37,7 @@
37
37
  "./packages/software-development/coderabbitloop",
38
38
  "./packages/software-development/add-to-my-skills",
39
39
  "./packages/software-development/ai-tools-setup",
40
- "./packages/software-development/changelog-generator"
40
+ "./packages/software-development/changelog-generator",
41
+ "./packages/software-development/wikipedia-uk-editor"
41
42
  ]
42
43
  }
@@ -135,6 +135,11 @@
135
135
  "name": "olko:changelog-generator",
136
136
  "source": "./packages/software-development/changelog-generator/adapters/cursor",
137
137
  "description": "Create user-facing changelogs from git history by categorising commits and rewriting them for readers rather than developers."
138
+ },
139
+ {
140
+ "name": "olko:wikipedia-uk-editor",
141
+ "source": "./packages/software-development/wikipedia-uk-editor/adapters/cursor",
142
+ "description": "Draft policy-compliant Ukrainian Wikipedia edits — translate an English article into uk, expand or source an existing uk article, or fix a maintenance backlog item — and return ready-to-paste wikitext plus an edit summary."
138
143
  }
139
144
  ]
140
145
  }
@@ -145,6 +145,11 @@
145
145
  "name": "olko:changelog-generator",
146
146
  "source": "./packages/software-development/changelog-generator/adapters/grok",
147
147
  "description": "Create user-facing changelogs from git history by categorising commits and rewriting them for readers rather than developers."
148
+ },
149
+ {
150
+ "name": "olko:wikipedia-uk-editor",
151
+ "source": "./packages/software-development/wikipedia-uk-editor/adapters/grok",
152
+ "description": "Draft policy-compliant Ukrainian Wikipedia edits — translate an English article into uk, expand or source an existing uk article, or fix a maintenance backlog item — and return ready-to-paste wikitext plus an edit summary."
148
153
  }
149
154
  ]
150
155
  }
@@ -0,0 +1,105 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
4
+ inclusion: manual
5
+ description: "Draft policy-compliant Ukrainian Wikipedia edits — translate an English article into uk, expand or source an existing uk article, or fix a maintenance backlog item — and return ready-to-paste wikitext plus an edit summary."
6
+ ---
7
+
8
+ # Ukrainian Wikipedia Editor
9
+
10
+ Turn a URL or article title into a complete, policy-compliant Ukrainian Wikipedia edit that the human pastes into the wiki editor themselves.
11
+
12
+ ## Hard Rules
13
+
14
+ 1. **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.
15
+ 2. **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.
16
+ 3. **Never copy-paste prose from a source.** Ukrainian Wikipedia deletes copyright violations (ВП:Авторські права) on sight. Paraphrase in Ukrainian and cite.
17
+ 4. **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.
18
+ 5. **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 a `check` command.
19
+ 6. **Disclose AI assistance** on the user page and, when substantial, in the edit summary. Undisclosed LLM output is the fastest route to scrutiny.
20
+
21
+ ## Outcome
22
+
23
+ A single deliverable written to a scratch file and echoed in chat:
24
+
25
+ - the **target page** (exact ukwiki title, and whether it exists)
26
+ - the **wikitext** — full article, or an exact-replacement section, or a precise before/after diff for small fixes
27
+ - the **edit summary** in Ukrainian (≤ 200 chars)
28
+ - the **source list** with the URL, publisher, and date actually fetched for each
29
+ - **risk notes**: notability (ВП:ЗН) standing, anything a patroller will challenge, what still needs a human check
30
+
31
+ ## Workflow
32
+
33
+ ### 1. Classify the task
34
+
35
+ | Input | Mode |
36
+ |---|---|
37
+ | en.wikipedia.org URL, no uk equivalent | **Translate** — new uk article |
38
+ | uk.wikipedia.org URL, stub or thin | **Expand** |
39
+ | uk.wikipedia.org URL with `{{Без джерел}}` / `{{Джерело}}` | **Source** |
40
+ | uk.wikipedia.org URL, prose/format problems | **Cleanup** |
41
+ | "what should I edit next" | **Plan** — read `references/strategy.md`, propose a ranked list |
42
+
43
+ Resolve the title first — `scripts/wiki.sh` handles redirects. Never draft against the wrong title.
44
+
45
+ ### 2. Read before writing
46
+
47
+ ```sh
48
+ ./scripts/wiki.sh get uk "Тайтл" # current wikitext
49
+ ./scripts/wiki.sh get en "Title" # source-language wikitext
50
+ ./scripts/wiki.sh langlink en "Title" uk # does a uk version already exist?
51
+ ./scripts/wiki.sh check uk "Шаблон:Особа" # does this template/page exist?
52
+ ```
53
+
54
+ Stop and report if:
55
+ - a uk article already exists for a "new translation" (then it is an **Expand** task, not a new page)
56
+ - the subject fails ВП:ЗН — do not draft an article that will be deleted; say so and propose an alternative target
57
+
58
+ ### 3. Gather real sources
59
+
60
+ 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.
61
+
62
+ 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 (ВП:АД).
63
+
64
+ Record for each source: URL, title, publisher, publication date, access date. These become `{{Cite web}}` / `{{Стаття}}` / `{{Книга}}` parameters — see `references/wikitext-uk.md`.
65
+
66
+ ### 4. Draft the wikitext
67
+
68
+ Follow `references/wikitext-uk.md` for structure, citation templates, infoboxes, section names, categories, and the `{{Перекладена стаття}}` attribution template that translations legally require.
69
+
70
+ 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.
71
+
72
+ ### 5. Self-check before delivering
73
+
74
+ Run every item. Report failures rather than hiding them.
75
+
76
+ - [ ] Every non-obvious factual claim has an inline `<ref>`
77
+ - [ ] No sentence is a translated copy of a copyrighted source
78
+ - [ ] Every template used exists (checked, not assumed)
79
+ - [ ] `{{Перекладена стаття}}` present with the source revision id, if translated
80
+ - [ ] Categories present and non-empty; at least one is a real existing category
81
+ - [ ] Interwiki handled via Wikidata note, not hardcoded links
82
+ - [ ] Neutral tone (ВП:НТЗ) — no promotional adjectives, no unattributed evaluation
83
+ - [ ] No original synthesis (ВП:ОД)
84
+ - [ ] Dates, numbers, and name transliterations are Ukrainian-correct
85
+ - [ ] Edit summary written in Ukrainian and states what changed and why
86
+
87
+ ### 6. Deliver
88
+
89
+ Write the draft to a scratch file (`.md` alongside the raw `.wiki` text so paste is clean), print the edit summary, and tell the human exactly where to paste it:
90
+
91
+ - new article → `https://uk.wikipedia.org/wiki/Тайтл?action=edit`
92
+ - section replace → name the section and its exact current heading
93
+ - test first → `Вікіпедія:Пісочниця` or the user's own `Користувач:Ім'я/Чернетка`
94
+
95
+ Then stop. Do not offer to save it.
96
+
97
+ ## References
98
+
99
+ - `references/strategy.md` — the contribution strategy: what to farm, in what order, and how to build standing without getting flagged
100
+ - `references/wikitext-uk.md` — verified uk templates, citation formats, article skeletons, policy shortcuts
101
+ - `scripts/wiki.sh` — read-only MediaWiki API helper
102
+
103
+ ## Verification
104
+
105
+ 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.
@@ -0,0 +1,104 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
4
+ description: "Draft policy-compliant Ukrainian Wikipedia edits — translate an English article into uk, expand or source an existing uk article, or fix a maintenance backlog item — and return ready-to-paste wikitext plus an edit summary."
5
+ ---
6
+
7
+ # Ukrainian Wikipedia Editor
8
+
9
+ Turn a URL or article title into a complete, policy-compliant Ukrainian Wikipedia edit that the human pastes into the wiki editor themselves.
10
+
11
+ ## Hard Rules
12
+
13
+ 1. **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.
14
+ 2. **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.
15
+ 3. **Never copy-paste prose from a source.** Ukrainian Wikipedia deletes copyright violations (ВП:Авторські права) on sight. Paraphrase in Ukrainian and cite.
16
+ 4. **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.
17
+ 5. **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 a `check` command.
18
+ 6. **Disclose AI assistance** on the user page and, when substantial, in the edit summary. Undisclosed LLM output is the fastest route to scrutiny.
19
+
20
+ ## Outcome
21
+
22
+ A single deliverable written to a scratch file and echoed in chat:
23
+
24
+ - the **target page** (exact ukwiki title, and whether it exists)
25
+ - the **wikitext** — full article, or an exact-replacement section, or a precise before/after diff for small fixes
26
+ - the **edit summary** in Ukrainian (≤ 200 chars)
27
+ - the **source list** with the URL, publisher, and date actually fetched for each
28
+ - **risk notes**: notability (ВП:ЗН) standing, anything a patroller will challenge, what still needs a human check
29
+
30
+ ## Workflow
31
+
32
+ ### 1. Classify the task
33
+
34
+ | Input | Mode |
35
+ |---|---|
36
+ | en.wikipedia.org URL, no uk equivalent | **Translate** — new uk article |
37
+ | uk.wikipedia.org URL, stub or thin | **Expand** |
38
+ | uk.wikipedia.org URL with `{{Без джерел}}` / `{{Джерело}}` | **Source** |
39
+ | uk.wikipedia.org URL, prose/format problems | **Cleanup** |
40
+ | "what should I edit next" | **Plan** — read `references/strategy.md`, propose a ranked list |
41
+
42
+ Resolve the title first — `scripts/wiki.sh` handles redirects. Never draft against the wrong title.
43
+
44
+ ### 2. Read before writing
45
+
46
+ ```sh
47
+ ./scripts/wiki.sh get uk "Тайтл" # current wikitext
48
+ ./scripts/wiki.sh get en "Title" # source-language wikitext
49
+ ./scripts/wiki.sh langlink en "Title" uk # does a uk version already exist?
50
+ ./scripts/wiki.sh check uk "Шаблон:Особа" # does this template/page exist?
51
+ ```
52
+
53
+ Stop and report if:
54
+ - a uk article already exists for a "new translation" (then it is an **Expand** task, not a new page)
55
+ - the subject fails ВП:ЗН — do not draft an article that will be deleted; say so and propose an alternative target
56
+
57
+ ### 3. Gather real sources
58
+
59
+ 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.
60
+
61
+ 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 (ВП:АД).
62
+
63
+ Record for each source: URL, title, publisher, publication date, access date. These become `{{Cite web}}` / `{{Стаття}}` / `{{Книга}}` parameters — see `references/wikitext-uk.md`.
64
+
65
+ ### 4. Draft the wikitext
66
+
67
+ Follow `references/wikitext-uk.md` for structure, citation templates, infoboxes, section names, categories, and the `{{Перекладена стаття}}` attribution template that translations legally require.
68
+
69
+ 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.
70
+
71
+ ### 5. Self-check before delivering
72
+
73
+ Run every item. Report failures rather than hiding them.
74
+
75
+ - [ ] Every non-obvious factual claim has an inline `<ref>`
76
+ - [ ] No sentence is a translated copy of a copyrighted source
77
+ - [ ] Every template used exists (checked, not assumed)
78
+ - [ ] `{{Перекладена стаття}}` present with the source revision id, if translated
79
+ - [ ] Categories present and non-empty; at least one is a real existing category
80
+ - [ ] Interwiki handled via Wikidata note, not hardcoded links
81
+ - [ ] Neutral tone (ВП:НТЗ) — no promotional adjectives, no unattributed evaluation
82
+ - [ ] No original synthesis (ВП:ОД)
83
+ - [ ] Dates, numbers, and name transliterations are Ukrainian-correct
84
+ - [ ] Edit summary written in Ukrainian and states what changed and why
85
+
86
+ ### 6. Deliver
87
+
88
+ Write the draft to a scratch file (`.md` alongside the raw `.wiki` text so paste is clean), print the edit summary, and tell the human exactly where to paste it:
89
+
90
+ - new article → `https://uk.wikipedia.org/wiki/Тайтл?action=edit`
91
+ - section replace → name the section and its exact current heading
92
+ - test first → `Вікіпедія:Пісочниця` or the user's own `Користувач:Ім'я/Чернетка`
93
+
94
+ Then stop. Do not offer to save it.
95
+
96
+ ## References
97
+
98
+ - `references/strategy.md` — the contribution strategy: what to farm, in what order, and how to build standing without getting flagged
99
+ - `references/wikitext-uk.md` — verified uk templates, citation formats, article skeletons, policy shortcuts
100
+ - `scripts/wiki.sh` — read-only MediaWiki API helper
101
+
102
+ ## Verification
103
+
104
+ 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.
package/README.md CHANGED
@@ -140,7 +140,7 @@ packages/{category}/{skill}/SKILL.md
140
140
 
141
141
  Each entry links to its `SKILL.md`. Reference any skill by its `olko:*` lookup name in a new agent session.
142
142
 
143
- ### Software development (24)
143
+ ### Software development (25)
144
144
 
145
145
  | Skill | What it does | Use when |
146
146
  |-------|-------------|----------|
@@ -168,6 +168,7 @@ Each entry links to its `SKILL.md`. Reference any skill by its `olko:*` lookup n
168
168
  | [semantic-release-beta](packages/software-development/semantic-release-beta/SKILL.md) | Sets up `semantic-release` with stable `main` releases and beta prereleases on a `beta` branch | A Node package needs stable npm publishing plus beta prereleases |
169
169
  | [skill-budget-audit](packages/software-development/skill-budget-audit/SKILL.md) | Diagnoses and fixes Claude Code's skill context budget overflow — identifies heavy plugin bundles that exceed the 2% budget | Skills failing to load or Claude hitting context limits from plugin bundles |
170
170
  | [starter-rules](packages/software-development/starter-rules/SKILL.md) | Loads and enforces hard rules for every oleg-koval/* starter | Ensuring 300-line files, E2E tests, pre-commit hooks, Vertical Slice architecture, and KISS/DRY/SOLID |
171
+ | [wikipedia-uk-editor](packages/software-development/wikipedia-uk-editor/SKILL.md) | Drafts policy-compliant Ukrainian Wikipedia edits — en→uk translation, stub expansion, sourcing, backlog cleanup — returning ready-to-paste wikitext, an edit summary, and a verified source list | Editing, translating, or sourcing a uk.wikipedia.org article, or planning what to contribute next |
171
172
 
172
173
  ### Marketing (2)
173
174
 
@@ -672,6 +672,32 @@
672
672
  "kiro",
673
673
  "grok"
674
674
  ]
675
+ },
676
+ {
677
+ "name": "wikipedia-uk-editor",
678
+ "lookupName": "olko:wikipedia-uk-editor",
679
+ "category": "software-development",
680
+ "path": "packages/software-development/wikipedia-uk-editor",
681
+ "description": "Draft policy-compliant Ukrainian Wikipedia edits \u2014 translate an English article into uk, expand or source an existing uk article, or fix a maintenance backlog item \u2014 and return ready-to-paste wikitext plus an edit summary.",
682
+ "tags": [
683
+ "wikipedia",
684
+ "ukrainian",
685
+ "wikitext",
686
+ "translation",
687
+ "sourcing",
688
+ "editing"
689
+ ],
690
+ "adapters": [
691
+ "codex",
692
+ "claude",
693
+ "cursor",
694
+ "copilot",
695
+ "grok",
696
+ "windsurf",
697
+ "kiro",
698
+ "hermes",
699
+ "pi"
700
+ ]
675
701
  }
676
702
  ]
677
703
  }
@@ -10,6 +10,7 @@
10
10
  "promptctl",
11
11
  "open-source-publisher",
12
12
  "product-builder",
13
- "mvp-oneshot"
13
+ "mvp-oneshot",
14
+ "wikipedia-uk-editor"
14
15
  ]
15
16
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@olegkoval/agent-skills",
3
- "version": "1.21.1",
3
+ "version": "1.22.0",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -0,0 +1,116 @@
1
+ ---
2
+ name: wikipedia-uk-editor
3
+ description: Draft policy-compliant Ukrainian Wikipedia edits — translate an English article into uk, expand or source an existing uk article, or fix a maintenance backlog item — and return ready-to-paste wikitext plus an edit summary. Use when given a uk.wikipedia.org or en.wikipedia.org URL or article title to edit, translate, source, or improve, or when planning what to contribute to ukwiki next.
4
+ license: MIT
5
+ allowed-tools: Bash, Read, Write, Edit, WebFetch, WebSearch
6
+ compatibility: Codex, Claude Code, Cursor, GitHub Copilot, Windsurf, Kiro, Hermes, and other Agent Skills compatible tools. Requires curl and python3 for the read-only MediaWiki API helper.
7
+ metadata:
8
+ targets: [_source-only]
9
+ author: Oleg Koval
10
+ tags:
11
+ - wikipedia
12
+ - ukrainian
13
+ - wikitext
14
+ - translation
15
+ - sourcing
16
+ - editing
17
+ ---
18
+
19
+ # Ukrainian Wikipedia Editor
20
+
21
+ Turn a URL or article title into a complete, policy-compliant Ukrainian Wikipedia edit that the human pastes into the wiki editor themselves.
22
+
23
+ ## Hard Rules
24
+
25
+ 1. **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.
26
+ 2. **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.
27
+ 3. **Never copy-paste prose from a source.** Ukrainian Wikipedia deletes copyright violations (ВП:Авторські права) on sight. Paraphrase in Ukrainian and cite.
28
+ 4. **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.
29
+ 5. **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 a `check` command.
30
+ 6. **Disclose AI assistance** on the user page and, when substantial, in the edit summary. Undisclosed LLM output is the fastest route to scrutiny.
31
+
32
+ ## Outcome
33
+
34
+ A single deliverable written to a scratch file and echoed in chat:
35
+
36
+ - the **target page** (exact ukwiki title, and whether it exists)
37
+ - the **wikitext** — full article, or an exact-replacement section, or a precise before/after diff for small fixes
38
+ - the **edit summary** in Ukrainian (≤ 200 chars)
39
+ - the **source list** with the URL, publisher, and date actually fetched for each
40
+ - **risk notes**: notability (ВП:ЗН) standing, anything a patroller will challenge, what still needs a human check
41
+
42
+ ## Workflow
43
+
44
+ ### 1. Classify the task
45
+
46
+ | Input | Mode |
47
+ |---|---|
48
+ | en.wikipedia.org URL, no uk equivalent | **Translate** — new uk article |
49
+ | uk.wikipedia.org URL, stub or thin | **Expand** |
50
+ | uk.wikipedia.org URL with `{{Без джерел}}` / `{{Джерело}}` | **Source** |
51
+ | uk.wikipedia.org URL, prose/format problems | **Cleanup** |
52
+ | "what should I edit next" | **Plan** — read `references/strategy.md`, propose a ranked list |
53
+
54
+ Resolve the title first — `scripts/wiki.sh` handles redirects. Never draft against the wrong title.
55
+
56
+ ### 2. Read before writing
57
+
58
+ ```sh
59
+ ./scripts/wiki.sh get uk "Тайтл" # current wikitext
60
+ ./scripts/wiki.sh get en "Title" # source-language wikitext
61
+ ./scripts/wiki.sh langlink en "Title" uk # does a uk version already exist?
62
+ ./scripts/wiki.sh check uk "Шаблон:Особа" # does this template/page exist?
63
+ ```
64
+
65
+ Stop and report if:
66
+ - a uk article already exists for a "new translation" (then it is an **Expand** task, not a new page)
67
+ - the subject fails ВП:ЗН — do not draft an article that will be deleted; say so and propose an alternative target
68
+
69
+ ### 3. Gather real sources
70
+
71
+ 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.
72
+
73
+ 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 (ВП:АД).
74
+
75
+ Record for each source: URL, title, publisher, publication date, access date. These become `{{Cite web}}` / `{{Стаття}}` / `{{Книга}}` parameters — see `references/wikitext-uk.md`.
76
+
77
+ ### 4. Draft the wikitext
78
+
79
+ Follow `references/wikitext-uk.md` for structure, citation templates, infoboxes, section names, categories, and the `{{Перекладена стаття}}` attribution template that translations legally require.
80
+
81
+ 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.
82
+
83
+ ### 5. Self-check before delivering
84
+
85
+ Run every item. Report failures rather than hiding them.
86
+
87
+ - [ ] Every non-obvious factual claim has an inline `<ref>`
88
+ - [ ] No sentence is a translated copy of a copyrighted source
89
+ - [ ] Every template used exists (checked, not assumed)
90
+ - [ ] `{{Перекладена стаття}}` present with the source revision id, if translated
91
+ - [ ] Categories present and non-empty; at least one is a real existing category
92
+ - [ ] Interwiki handled via Wikidata note, not hardcoded links
93
+ - [ ] Neutral tone (ВП:НТЗ) — no promotional adjectives, no unattributed evaluation
94
+ - [ ] No original synthesis (ВП:ОД)
95
+ - [ ] Dates, numbers, and name transliterations are Ukrainian-correct
96
+ - [ ] Edit summary written in Ukrainian and states what changed and why
97
+
98
+ ### 6. Deliver
99
+
100
+ Write the draft to a scratch file (`.md` alongside the raw `.wiki` text so paste is clean), print the edit summary, and tell the human exactly where to paste it:
101
+
102
+ - new article → `https://uk.wikipedia.org/wiki/Тайтл?action=edit`
103
+ - section replace → name the section and its exact current heading
104
+ - test first → `Вікіпедія:Пісочниця` or the user's own `Користувач:Ім'я/Чернетка`
105
+
106
+ Then stop. Do not offer to save it.
107
+
108
+ ## References
109
+
110
+ - `references/strategy.md` — the contribution strategy: what to farm, in what order, and how to build standing without getting flagged
111
+ - `references/wikitext-uk.md` — verified uk templates, citation formats, article skeletons, policy shortcuts
112
+ - `scripts/wiki.sh` — read-only MediaWiki API helper
113
+
114
+ ## Verification
115
+
116
+ 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.
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "olko-wikipedia-uk-editor",
3
+ "description": "Draft policy-compliant Ukrainian Wikipedia edits — translate an English article into uk, expand or source an existing uk article, or fix a maintenance backlog item — and return ready-to-paste wikitext plus an edit summary.",
4
+ "skills": "./skills"
5
+ }
@@ -0,0 +1,117 @@
1
+ ---
2
+ name: wikipedia-uk-editor
3
+ description: Draft policy-compliant Ukrainian Wikipedia edits — translate an English article into uk, expand or source an existing uk article, or fix a maintenance backlog item — and return ready-to-paste wikitext plus an edit summary. Use when given a uk.wikipedia.org or en.wikipedia.org URL or article title to edit, translate, source, or improve, or when planning what to contribute to ukwiki next.
4
+ license: MIT
5
+ allowed-tools: Bash, Read, Write, Edit, WebFetch, WebSearch
6
+ compatibility: Codex, Claude Code, Cursor, GitHub Copilot, Windsurf, Kiro, Hermes, and other Agent Skills compatible tools. Requires curl and python3 for the read-only MediaWiki API helper.
7
+ metadata:
8
+ targets: [_source-only]
9
+ author: Oleg Koval
10
+ tags:
11
+ - wikipedia
12
+ - ukrainian
13
+ - wikitext
14
+ - translation
15
+ - sourcing
16
+ - editing
17
+ ---
18
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
19
+
20
+ # Ukrainian Wikipedia Editor
21
+
22
+ Turn a URL or article title into a complete, policy-compliant Ukrainian Wikipedia edit that the human pastes into the wiki editor themselves.
23
+
24
+ ## Hard Rules
25
+
26
+ 1. **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.
27
+ 2. **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.
28
+ 3. **Never copy-paste prose from a source.** Ukrainian Wikipedia deletes copyright violations (ВП:Авторські права) on sight. Paraphrase in Ukrainian and cite.
29
+ 4. **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.
30
+ 5. **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 a `check` command.
31
+ 6. **Disclose AI assistance** on the user page and, when substantial, in the edit summary. Undisclosed LLM output is the fastest route to scrutiny.
32
+
33
+ ## Outcome
34
+
35
+ A single deliverable written to a scratch file and echoed in chat:
36
+
37
+ - the **target page** (exact ukwiki title, and whether it exists)
38
+ - the **wikitext** — full article, or an exact-replacement section, or a precise before/after diff for small fixes
39
+ - the **edit summary** in Ukrainian (≤ 200 chars)
40
+ - the **source list** with the URL, publisher, and date actually fetched for each
41
+ - **risk notes**: notability (ВП:ЗН) standing, anything a patroller will challenge, what still needs a human check
42
+
43
+ ## Workflow
44
+
45
+ ### 1. Classify the task
46
+
47
+ | Input | Mode |
48
+ |---|---|
49
+ | en.wikipedia.org URL, no uk equivalent | **Translate** — new uk article |
50
+ | uk.wikipedia.org URL, stub or thin | **Expand** |
51
+ | uk.wikipedia.org URL with `{{Без джерел}}` / `{{Джерело}}` | **Source** |
52
+ | uk.wikipedia.org URL, prose/format problems | **Cleanup** |
53
+ | "what should I edit next" | **Plan** — read `references/strategy.md`, propose a ranked list |
54
+
55
+ Resolve the title first — `scripts/wiki.sh` handles redirects. Never draft against the wrong title.
56
+
57
+ ### 2. Read before writing
58
+
59
+ ```sh
60
+ ./scripts/wiki.sh get uk "Тайтл" # current wikitext
61
+ ./scripts/wiki.sh get en "Title" # source-language wikitext
62
+ ./scripts/wiki.sh langlink en "Title" uk # does a uk version already exist?
63
+ ./scripts/wiki.sh check uk "Шаблон:Особа" # does this template/page exist?
64
+ ```
65
+
66
+ Stop and report if:
67
+ - a uk article already exists for a "new translation" (then it is an **Expand** task, not a new page)
68
+ - the subject fails ВП:ЗН — do not draft an article that will be deleted; say so and propose an alternative target
69
+
70
+ ### 3. Gather real sources
71
+
72
+ 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.
73
+
74
+ 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 (ВП:АД).
75
+
76
+ Record for each source: URL, title, publisher, publication date, access date. These become `{{Cite web}}` / `{{Стаття}}` / `{{Книга}}` parameters — see `references/wikitext-uk.md`.
77
+
78
+ ### 4. Draft the wikitext
79
+
80
+ Follow `references/wikitext-uk.md` for structure, citation templates, infoboxes, section names, categories, and the `{{Перекладена стаття}}` attribution template that translations legally require.
81
+
82
+ 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.
83
+
84
+ ### 5. Self-check before delivering
85
+
86
+ Run every item. Report failures rather than hiding them.
87
+
88
+ - [ ] Every non-obvious factual claim has an inline `<ref>`
89
+ - [ ] No sentence is a translated copy of a copyrighted source
90
+ - [ ] Every template used exists (checked, not assumed)
91
+ - [ ] `{{Перекладена стаття}}` present with the source revision id, if translated
92
+ - [ ] Categories present and non-empty; at least one is a real existing category
93
+ - [ ] Interwiki handled via Wikidata note, not hardcoded links
94
+ - [ ] Neutral tone (ВП:НТЗ) — no promotional adjectives, no unattributed evaluation
95
+ - [ ] No original synthesis (ВП:ОД)
96
+ - [ ] Dates, numbers, and name transliterations are Ukrainian-correct
97
+ - [ ] Edit summary written in Ukrainian and states what changed and why
98
+
99
+ ### 6. Deliver
100
+
101
+ Write the draft to a scratch file (`.md` alongside the raw `.wiki` text so paste is clean), print the edit summary, and tell the human exactly where to paste it:
102
+
103
+ - new article → `https://uk.wikipedia.org/wiki/Тайтл?action=edit`
104
+ - section replace → name the section and its exact current heading
105
+ - test first → `Вікіпедія:Пісочниця` or the user's own `Користувач:Ім'я/Чернетка`
106
+
107
+ Then stop. Do not offer to save it.
108
+
109
+ ## References
110
+
111
+ - `references/strategy.md` — the contribution strategy: what to farm, in what order, and how to build standing without getting flagged
112
+ - `references/wikitext-uk.md` — verified uk templates, citation formats, article skeletons, policy shortcuts
113
+ - `scripts/wiki.sh` — read-only MediaWiki API helper
114
+
115
+ ## Verification
116
+
117
+ 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.