Linter jako element egzekucji standardu: reguły → severity → bramka → publikacja.
Luage Engine jest wartościowy wtedy, gdy „przestaje się dyskutować o stylu”.
Linter przenosi decyzje z poziomu opinii na poziom reguł .
1. Cel
Linter językowy ma wymuszać standard w sposób powtarzalny:
wykrywać naruszenia, sugerować poprawki i (gdy trzeba) blokować publikację.
2. Zakres i granice
Styl i ton : spójność marki, uprzejmość, zwięzłość.
Terminologia : słownik + preferowane formy.
Bezpieczeństwo : zakazy ujawniania danych wrażliwych.
Dowody : reguły cytowania i provenance (gdy wymagane).
Linter nie zastępuje redaktora ani audytu — ma eliminować najczęstsze błędy i wymuszać minimalny standard.
3. Klasy reguł
Strukturalne
Nagłówki, format odpowiedzi, schemat JSON, długość.
Leksalne
Zakazane frazy, słowa‑wytrychy, „wstawki” nieprofesjonalne.
Terminologiczne
Słownik pojęć, preferowane tłumaczenia, nazwy własne.
Dowodowe
Cytowania, odnośniki do źródeł, format provenance.
4. Severity i bramkowanie
Poziom Co oznacza Decyzja
INFO Wskazówka stylistyczna. Nie blokuje.
WARN Ryzyko lub niespójność. Wymaga decyzji (approve) lub poprawki.
ERROR Naruszenie standardu lub bezpieczeństwa. Blokada (fail gate).
5. Wersjonowanie i wyjątki
Reguły powinny mieć wersję (lint_policy_vX) oraz rejestr wyjątków.
Wyjątek jest dopuszczalny, ale musi mieć powód , termin i owner .
6. Przykładowe reguły
{
"lint_policy": "v1.2",
"rules": [
{ "id": "LNG-001", "severity": "ERROR", "type": "forbidden_phrase", "pattern": "na pewno", "hint": "Nie obiecuj bez dowodu." },
{ "id": "LNG-014", "severity": "WARN", "type": "term_preference", "pattern": "prompt", "replacement": "prompt (podpowiedź)" },
{ "id": "CIT-003", "severity": "ERROR", "type": "citation_required", "when": "factual_claim", "hint": "Dodaj źródło lub oznacz niepewność." }
]
}
7. Integracja z pipeline
Lint po generacji, przed publikacją.
Lint w trybie preflight (na szkicu) oraz gate (na produkcji).
Raportuj rule_id, severity, fragment i rekomendację.
8. Checklist
Reguły są wersjonowane i mają ownerów.
Severity jest spójne: ERROR blokuje, WARN wymaga decyzji.
Istnieje rejestr wyjątków i proces przeglądu.
Linter jest zintegrowany z audytem (trace_id) bez wycieku PII.
Powiązane