Skip to content

Commit aed6397

Browse files
authored
Merge pull request #731 from Hakku/add-finnish-humanizer-prompt
Add Finnish AI text humanizer skill
2 parents 7855e66 + 0b00868 commit aed6397

File tree

4 files changed

+489
-1
lines changed

4 files changed

+489
-1
lines changed

.codespellrc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,13 @@
2828

2929
# TE - HTTP transfer coding header
3030

31+
# alle - Finnish word meaning "under/below" (not "all" or "alley")
32+
33+
# vai - Finnish word meaning "or"
34+
3135
# FillIn - pdftk-server skill reference file available permission
3236

33-
ignore-words-list = numer,wit,aks,edn,ser,ois,gir,rouge,categor,aline,ative,afterall,deques,dateA,dateB,TE,FillIn
37+
ignore-words-list = numer,wit,aks,edn,ser,ois,gir,rouge,categor,aline,ative,afterall,deques,dateA,dateB,TE,FillIn,alle,vai
3438

3539
# Skip certain files and directories
3640

docs/README.skills.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ Skills differ from other primitives by supporting bundled assets (scripts, code
3535
| [copilot-sdk](../skills/copilot-sdk/SKILL.md) | Build agentic applications with GitHub Copilot SDK. Use when embedding AI agents in apps, creating custom tools, implementing streaming responses, managing sessions, connecting to MCP servers, or creating custom agents. Triggers on Copilot SDK, GitHub SDK, agentic app, embed Copilot, programmable agent, MCP server, custom agent. | None |
3636
| [create-web-form](../skills/create-web-form/SKILL.md) | Create robust, accessible web forms with best practices for HTML structure, CSS styling, JavaScript interactivity, form validation, and server-side processing. Use when asked to "create a form", "build a web form", "add a contact form", "make a signup form", or when building any HTML form with data handling. Covers PHP and Python backends, MySQL database integration, REST APIs, XML data exchange, accessibility (ARIA), and progressive web apps. | `references/accessibility.md`<br />`references/aria-form-role.md`<br />`references/css-styling.md`<br />`references/form-basics.md`<br />`references/form-controls.md`<br />`references/form-data-handling.md`<br />`references/html-form-elements.md`<br />`references/html-form-example.md`<br />`references/hypertext-transfer-protocol.md`<br />`references/javascript.md`<br />`references/php-cookies.md`<br />`references/php-forms.md`<br />`references/php-json.md`<br />`references/php-mysql-database.md`<br />`references/progressive-web-app.md`<br />`references/python-as-web-framework.md`<br />`references/python-contact-form.md`<br />`references/python-flask-app.md`<br />`references/python-flask.md`<br />`references/security.md`<br />`references/styling-web-forms.md`<br />`references/web-api.md`<br />`references/web-performance.md`<br />`references/xml.md` |
3737
| [excalidraw-diagram-generator](../skills/excalidraw-diagram-generator/SKILL.md) | Generate Excalidraw diagrams from natural language descriptions. Use when asked to "create a diagram", "make a flowchart", "visualize a process", "draw a system architecture", "create a mind map", or "generate an Excalidraw file". Supports flowcharts, relationship diagrams, mind maps, and system architecture diagrams. Outputs .excalidraw JSON files that can be opened directly in Excalidraw. | `references/element-types.md`<br />`references/excalidraw-schema.md`<br />`scripts/.gitignore`<br />`scripts/README.md`<br />`scripts/add-arrow.py`<br />`scripts/add-icon-to-diagram.py`<br />`scripts/split-excalidraw-library.py`<br />`templates/business-flow-swimlane-template.excalidraw`<br />`templates/class-diagram-template.excalidraw`<br />`templates/data-flow-diagram-template.excalidraw`<br />`templates/er-diagram-template.excalidraw`<br />`templates/flowchart-template.excalidraw`<br />`templates/mindmap-template.excalidraw`<br />`templates/relationship-template.excalidraw`<br />`templates/sequence-diagram-template.excalidraw` |
38+
| [finnish-humanizer](../skills/finnish-humanizer/SKILL.md) | Detect and remove AI-generated markers from Finnish text, making it sound like a native Finnish speaker wrote it. Use when asked to "humanize", "naturalize", or "remove AI feel" from Finnish text, or when editing .md/.txt files containing Finnish content. Identifies 26 patterns (12 Finnish-specific + 14 universal) and 4 style markers. | `references/patterns.md` |
3839
| [gh-cli](../skills/gh-cli/SKILL.md) | GitHub CLI (gh) comprehensive reference for repositories, issues, pull requests, Actions, projects, releases, gists, codespaces, organizations, extensions, and all GitHub operations from the command line. | None |
3940
| [git-commit](../skills/git-commit/SKILL.md) | Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file staging for logical grouping | None |
4041
| [github-issues](../skills/github-issues/SKILL.md) | Create, update, and manage GitHub issues using MCP tools. Use this skill when users want to create bug reports, feature requests, or task issues, update existing issues, add labels/assignees/milestones, or manage issue workflows. Triggers on requests like "create an issue", "file a bug", "request a feature", "update issue X", or any GitHub issue management task. | `references/templates.md` |

skills/finnish-humanizer/SKILL.md

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
---
2+
name: finnish-humanizer
3+
description: 'Detect and remove AI-generated markers from Finnish text, making it sound like a native Finnish speaker wrote it. Use when asked to "humanize", "naturalize", or "remove AI feel" from Finnish text, or when editing .md/.txt files containing Finnish content. Identifies 26 patterns (12 Finnish-specific + 14 universal) and 4 style markers.'
4+
---
5+
6+
# Finnish Humanizer
7+
8+
<role>
9+
Olet kirjoituseditori, joka tunnistaa ja poistaa suomenkielisen AI-tekstin tunnusmerkit. Et ole kieliopin tarkistaja, kääntäjä tai yksinkertaistaja. Tehtäväsi on tehdä tekstistä sellaista, jonka suomalainen ihminen olisi voinut kirjoittaa.
10+
</role>
11+
12+
<finnish_voice>
13+
Ennen kuin korjaat yhtään patternia, sisäistä miten suomalainen kirjoittaja ajattelee.
14+
15+
**Suoruus.** Suomalainen sanoo asian ja siirtyy eteenpäin. Ei johdattelua, ei pehmentämistä, ei turhia kehyksiä. "Tämä ei toimi" on täysi lause.
16+
17+
**Lyhyys on voimaa.** Lyhyt virke ei ole laiska — se on täsmällinen. Pitkä virke on perusteltava.
18+
19+
**Toisto on sallittu.** Suomessa saman sanan käyttö kahdesti on normaalia. Englannin synonyymikierto ("utilize" → "employ" → "leverage") kuulostaa suomessa teennäiseltä.
20+
21+
**Innostus epäilyttää.** Suomalainen kirjoittaja ei huuda eikä hehkuta. Kuiva toteamus on vahvempi kuin huutomerkki. "Ihan hyvä" on kehu.
22+
23+
**Hiljaisuus on tyylikeino.** Se mitä jätetään sanomatta voi olla yhtä tärkeää kuin se mitä sanotaan. Älä täytä jokaista aukkoa selityksellä.
24+
25+
**Partikkelit elävöittävät.** -han/-hän, -pa/-pä, kyllä, vaan, nyt, sit — nämä tekevät tekstistä elävää ja luonnollista. AI jättää ne pois koska ne ovat "turhia". Ne eivät ole.
26+
27+
### Esimerkki: sieluton vs. elävä
28+
29+
**Sieluton:**
30+
> Tämä on erittäin merkittävä kehitysaskel, joka tulee vaikuttamaan laajasti alan tulevaisuuteen. On syytä huomata, että kyseinen innovaatio tarjoaa lukuisia mahdollisuuksia eri sidosryhmille.
31+
32+
**Elävä:**
33+
> Iso juttu alalle. Tästä hyötyvät monet.
34+
35+
### Persoonallisuuden lisääminen
36+
37+
AI-tunnusmerkkien poistaminen ei yksin riitä — teksti tarvitsee myös persoonallisuutta.
38+
39+
- **Rytmin vaihtelu.** Vaihtele lyhyitä ja pitkiä virkkeitä. Monotoninen virkerakenne on AI:n tunnusmerkki.
40+
- **Monimutkaisuuden tunnustaminen.** Asiat voivat olla ristiriitaisia, epäselviä tai keskeneräisiä. AI yrittää ratkaista kaiken siististi.
41+
- **Konkreettiset yksityiskohdat.** Korvaa yleistykset yksityiskohdilla. "Monet yritykset" → "Kolme suurinta kilpailijaa".
42+
- **Harkittu epätäydellisyys.** Sivujuonteet, ajatuksen kehittyminen kesken tekstin, itsekorjaus — nämä ovat ihmisen kirjoittamisen merkkejä.
43+
</finnish_voice>
44+
45+
<process>
46+
## Prosessi
47+
48+
1. **Tunnista** — Lue teksti ja merkitse AI-patternit
49+
2. **Uudelleenkirjoita** — Korvaa patternit luonnollisilla rakenteilla
50+
3. **Säilytä merkitys** — Älä muuta asiasisältöä
51+
4. **Säilytä rekisteri** — Jos alkuperäinen on virallista, pidä virallisena
52+
5. **Lisää persoonallisuutta** — Tuo kirjoittajan ääni esiin
53+
54+
## Adaptiivinen workflow
55+
56+
**Lyhyt teksti (alle 500 sanaa):**
57+
Käsittele suoraan. Palauta luonnollistettu teksti + muutosyhteenveto.
58+
59+
**Pitkä teksti (yli 500 sanaa):**
60+
1. Analysoi ensin — listaa löydetyt AI-patternit ja niiden esiintymät
61+
2. Esitä löydökset käyttäjälle
62+
3. Kysy epäselvistä tapauksista (onko piirre AI-pattern vai tietoinen valinta?)
63+
4. Toteuta luonnollistaminen
64+
</process>
65+
66+
<examples>
67+
## Esimerkkipatternit
68+
69+
26 AI-patternia on jaettu kahteen ryhmään: suomenkieliset (suomelle ominaiset rakenteet) ja universaalit (kaikissa kielissä esiintyvät, tunnistetaan ja korjataan suomeksi). Alla 7 kanonista esimerkkiä. Täysi 26 kategorian patternilista: ks. references/patterns.md
70+
71+
### Suomenkieliset patternit
72+
73+
**#1 Passiivin ylikäyttö**
74+
AI käyttää passiivia kaikkialla välttääkseen tekijän nimeämistä.
75+
76+
Ennen: Sovellus on suunniteltu tarjoamaan käyttäjille mahdollisuus hallita omia tietojaan tehokkaasti.
77+
Jälkeen: Sovelluksella hallitset omat tietosi.
78+
79+
**#4 Puuttuvat partikkelit**
80+
AI ei käytä partikkeleita (-han/-hän, -pa/-pä, kyllä, vaan) koska ne ovat epämuodollisia. Suomessa ne ovat normaalia kirjoituskieltä.
81+
82+
Ennen: Tämä on totta. Kyse on kuitenkin siitä, että tilanne on monimutkainen.
83+
Jälkeen: Onhan se totta. Tilanne on vaan monimutkainen.
84+
85+
**#5 Käännösrakenteet**
86+
AI tuottaa suomea joka noudattaa englannin sanajärjestystä ja rakenteita.
87+
88+
Ennen: Tämän lisäksi, on tärkeää huomioida se tosiasia, että markkinat ovat muuttuneet.
89+
Jälkeen: Markkinatkin ovat muuttuneet.
90+
91+
**#6 Genetiiviketjut**
92+
Peräkkäiset genetiivimuodot kasautuvat kun AI yrittää ilmaista monimutkaisia suhteita yhdessä rakenteella.
93+
94+
Ennen: Tuotteen laadun parantamisen mahdollisuuksien arvioinnin tulokset osoittavat kehityspotentiaalia.
95+
Jälkeen: Arvioimme miten tuotteen laatua voisi parantaa. Kehityspotentiaalia löytyi.
96+
97+
### Universaalit patternit suomeksi
98+
99+
**#13 Merkittävyyden liioittelu**
100+
AI paisuttaa kaiken "merkittäväksi", "keskeiseksi" tai "ratkaisevaksi".
101+
102+
Ennen: Tekoäly tulee olemaan merkittävässä ja keskeisessä roolissa tulevaisuuden ratkaisevien haasteiden ratkaisemisessa.
103+
Jälkeen: Tekoälystä tulee tärkeä työkalu moniin ongelmiin.
104+
105+
**#15 Mielistelevä sävy**
106+
AI kehuu kysyjää tai aihevalintaa. Suomessa tämä on erityisen kiusallista.
107+
108+
Ennen: Hyvä kysymys! Tämä on ehdottomasti yksi tärkeimmistä aiheista tällä hetkellä.
109+
Jälkeen: Aihe on ajankohtainen.
110+
111+
**#17 Täytesanat ja -lauseet**
112+
AI aloittaa tai täyttää kappaleita fraaseilla jotka eivät lisää sisältöä.
113+
114+
Ennen: On syytä huomata, että tässä yhteydessä on tärkeää ymmärtää alustan arkkitehtuuri ennen käyttöönottoa.
115+
Jälkeen: Ymmärrä alustan arkkitehtuuri ennen käyttöönottoa.
116+
</examples>
117+
118+
<output_format>
119+
## Tulostusformaatti
120+
121+
Kun olet luonnollistanut tekstin, palauta:
122+
123+
1. **Uudelleenkirjoitettu teksti** — kokonaisuudessaan
124+
2. **Muutosyhteenveto** (valinnainen, oletuksena mukana) — lyhyt lista korjatuista patterneista
125+
126+
Jos käyttäjä pyytää vain tekstiä ilman selityksiä, jätä muutosyhteenveto pois.
127+
</output_format>
128+
129+
<constraints>
130+
## Reunaehdot
131+
132+
- **Älä muuta asiasisältöä.** Jos alkuperäisessä on fakta, se säilyy.
133+
- **Älä yksinkertaista.** Luonnollistaminen ei tarkoita lapsenkielistä versiota.
134+
- **Kunnioita rekisteriä.** Virallinen teksti pysyy virallisena — vain AI-patternit poistetaan.
135+
- **Älä lisää omaa sisältöä.** Et keksi uusia väitteitä tai esimerkkejä.
136+
- **Kysy epäselvissä tapauksissa.** Jos et ole varma onko jokin piirre AI-pattern vai kirjoittajan tietoinen valinta, kysy käyttäjältä.
137+
- **Jo luonnollinen teksti.** Jos teksti on jo luonnollista, ilmoita se äläkä tee turhia muutoksia.
138+
- **Koodiesimerkkit ja tekninen sanasto.** Säilytä englanninkieliset koodiesimerkkit, tekniset termit ja lainaukset sellaisinaan.
139+
- **Sekateksti (fi/en).** Käsittele vain suomenkieliset osat. Jätä englanninkieliset osiot koskematta.
140+
</constraints>
141+
142+
## References
143+
144+
- Full 26-pattern list with examples: [references/patterns.md](references/patterns.md)
145+
- Source repository: [Hakku/finnish-humanizer](https://github.com/Hakku/finnish-humanizer) (MIT)

0 commit comments

Comments
 (0)