Kehittäjäohje

March 7, 2026 · View on GitHub

Rakenne

finnish-humanizer/
├── README.md
├── LICENSE
├── DEVELOPMENT.md
├── build.py                            ← Build-skripti (generoi dist/)
├── tests/
│   └── test_build.py                  ← Yksikkötestit (stdlib unittest)
├── docs/
│   └── PLAN-distribution.md          ← Jakelustrategia (sisäinen)
├── finnish-humanizer/                  ← Kanoninen skill-sisältö
│   ├── SKILL.md                        ← Unified (portatiiviinen)
│   └── references/
│       └── patterns.md                 ← Täysi 27 kategorian patternilista + 5 tyylimerkintää
└── dist/                               ← Alustakohtaiset paketit (build-generoitu)
    ├── finnish-humanizer.skill          ← Claude.ai skill-upload
    ├── cursor/
    │   └── finnish-humanizer.mdc       ← Cursor (.cursor/rules/)
    ├── copilot/
    │   └── finnish-humanizer.instructions.md  ← GitHub Copilot (.github/instructions/)
    ├── windsurf/
    │   └── finnish-humanizer.md        ← Windsurf (.windsurf/rules/)
    ├── cline/
    │   └── finnish-humanizer.md        ← Cline (.clinerules/)
    ├── continue/
    │   └── finnish-humanizer.md        ← Continue (.continue/rules/)
    ├── jetbrains/
    │   └── finnish-humanizer.md        ← JetBrains AI (.junie/guidelines.md)
    ├── generic/
    │   └── finnish-humanizer.md        ← Aider, Bolt, Amazon Q, chat-alustat
    ├── agents/
    │   └── AGENTS.md                   ← Projektitason AI-agenttiohje
    └── chatgpt/
        ├── instructions.md             ← Custom GPT ohjeet (MANUAALINEN)
        ├── patterns.md                 ← Patternilista (build-generoitu)
        ├── GPT-SPEC.md                 ← GPT-konfiguraatio
        └── test-texts.md              ← Testiaineisto

Arkkitehtuuripäätökset

Unified skill

Yksi kanoninen SKILL.md toimii kaikissa ympäristöissä (Claude.ai, Claude Code, API). CC-spesifiset kentät (kuten argument-hint) lisätään vain deployed CC-versioon. Alustakohtaiset paketit dist/-kansiossa muuttavat frontmatterin mutta säilyttävät bodyn.

Unified (kanoninen)CC deployedCursorCopilotWindsurfClineContinueJetBrainsGenericAgents
Frontmattername, description, license, allowed-tools, metadataidenttinendescription, globs, alwaysApplyname, applyTo, descriptionEiEiname, globs, alwaysApply, descriptionEiEiEi
BodyIdenttinen kaikillaIdenttinenIdenttinen (GitHub-linkit)Identtinen (GitHub-linkit)Identtinen (GitHub-linkit)Identtinen (GitHub-linkit)Identtinen (GitHub-linkit)Identtinen (GitHub-linkit)Identtinen (GitHub-linkit)Identtinen (GitHub-linkit)
references/SisällytettySisällytettyLinkki GitHubiinLinkki GitHubiinLinkki GitHubiinLinkki GitHubiinLinkki GitHubiinLinkki GitHubiinLinkki GitHubiinLinkki GitHubiin

Esimerkkien valinta (SKILL.md)

3 kanonista esimerkkiä valittu kattamaan:

  • #1 Passiivin ylikäyttö — suomalaisin pattern, korkein frekvenssi
  • #4 Puuttuvat partikkelit — kielikohtainen, AI jättää nämä aina pois
  • #17 Täytesanat ja -lauseet — universaali, helppo tunnistaa

Muut patternit ovat references/patterns.md:ssä.

XML-tagit

SKILL.md käyttää XML-tageja ylätason jäsentelyyn (<role>, <finnish_voice>, <process>, <examples>, <output_format>, <constraints>). Claude tulkitsee nämä rakenteellisina ohjeina, mikä parantaa ohjeiden noudattamista verrattuna pelkkiin markdown-otsikoihin. Cursor ja Copilot hyötyvät myös XML-tageista koska niiden LLM:t (GPT-4, Claude) ymmärtävät ne.

Muokkaaminen

Patternin lisääminen

  1. Lisää pattern references/patterns.md:hen oikeaan kategoriaan (suomenkielinen / universaali)
  2. Lisää Ennen/Jälkeen-esimerkit (vähintään yksi pari)
  3. Päivitä sisällysluettelo
  4. Jos pattern on erityisen yleinen tai tärkeä, harkitse sen lisäämistä SKILL.md:n 3 esimerkin joukkoon (#1, #4, #17)

Patternin muokkaaminen

Muokkaa suoraan relevanttia tiedostoa. Jos pattern esiintyy sekä SKILL.md:ssä että references/patterns.md:ssä, päivitä molemmat.

Dist-pakettien päivitys

Kaikki dist-paketit generoidaan automaattisesti build.py-skriptillä:

py build.py       # Windows
python3 build.py  # macOS/Linux

Vaatii Python 3.x. Ei ulkoisia riippuvuuksia (vain stdlib).

Testit:

py -m unittest discover -s tests -v

Skripti lukee finnish-humanizer/SKILL.md:n, erottaa frontmatterin ja bodyn, ja generoi alustakohtaiset tiedostot dist/-kansioon. Ainoa body-muutos: ks. references/patterns.md korvataan GitHub-URL:lla.

Poikkeus — manuaaliset tiedostot dist/chatgpt/:

TiedostoSyy
instructions.mdErilainen rakenne, ei XML-tageja, Kriittiset säännöt -osio
GPT-SPEC.mdGPT-konfiguraatio
test-texts.mdTestiaineisto

Nämä eivät päivity build.py:llä. Tarkista synkroni manuaalisesti kun SKILL.md:n body muuttuu.

build.py arkkitehtuuri

  • Lähde: finnish-humanizer/SKILL.md (frontmatter + body)
  • Description: Luetaan SKILL.md:n frontmatterista, lyhennetään 2 lauseeseen dist-käyttöön
  • Transformaatio: ks. references/patterns.md → GitHub URL
  • ChatGPT patterns: Kopioidaan references/patterns.md, poistetaan sisällysluettelo
  • ZIP: Pakataan finnish-humanizer/SKILL.md + finnish-humanizer/references/patterns.md
  • Merkkirajojen tarkistus: Windsurf max 12 000 merkkiä

CC deployed version päivitys

Kopioi unified SKILL.md → ~/.claude/skills/finnish-humanizer/SKILL.md. Kopioi references/patterns.md vastaavasti.

Verifiointi ennen julkaisua

TarkistusKriteeri
SKILL.md rivimäärä< 160
references/patterns.md27 patternia + 5 tyylimerkintää
Frontmatter-kentätname, description, license, allowed-tools, metadata
SKILL.md description (raw)< 1024 merkkiä
Dist description (desc_short)< 200 merkkiä (build rajoittaa automaattisesti)
XML-tagitJokainen avattu tagi suljetaan
Ei finnish-naturalizer-viittauksia0 osumaa koko projektissa
Ei reference/-viittauksia (yksikkö)0 osumaa koko projektissa
.skill sisältöfinnish-humanizer/SKILL.md + finnish-humanizer/references/patterns.md
Cursor .mdc frontmatterdescription, globs, alwaysApply
Copilot .instructions.md frontmattername, applyTo, description
Continue frontmattername, globs, alwaysApply, description
Windsurf merkkimäärä< 12 000
Dist body synkroniBody identtinen SKILL.md:n kanssa (paitsi references-linkki)
py build.pyAjo onnistuu, ei virheitä
ChatGPT instructions synkroniManuaalinen tarkistus kun SKILL.md body muuttuu