Redline docx pl
Skill matematicsolutions/awesome-matematic-skills-pl/dokumenty/skills/redline-docx-pl
Polish hub of legal-AI skills - 41 skills in 8 Claude Code / Cowork bundles (LLM output verification, PL/EU case law, DOCX redline, AI Act audit bundle). GDPR-safe, vendor-neutral, MIT.
npx -y skills add matematicsolutions/awesome-matematic-skills-pl --skill redline-docx-plAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Redlining polskich umow i pism w .docx z natywnymi Word Track Changes - bez niszczenia formatowania OOXML. Czyta .docx do Markdown (CriticMarkup) dla LLM, aplikuje zmiany jako sledzone (w:ins/w:del) + komentarze, i robi sanitize przed wyslaniem (strip metadanych autora, last-modified-by, rsid, timestampy - RODO przy wysylce pisma). Silnik = adeu (MIT). Use when the user wants to nanosic poprawki w umowie/pismie .docx, zrobic redline/tryb sledzenia zmian, czytac docx dla LLM bez utraty formatowania, przygotowac pismo do wyslania (usunac metadane autora z Worda), porownac dwie wersje .docx, lub mentions track changes / sledzenie zmian / redline / .docx / DOCX.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
9.3 KB, ~3.1k tokens by cl100k_base, as published. Nobody here has run it
Redline DOCX po polsku
Wrapper nad adeu (MIT, Dealfluence Oy) - dwukierunkowy konwerter miedzy .docx
a Markdown (CriticMarkup), z aplikacja zmian z powrotem do .docx. Robi to,
czego python-docx NIE potrafi: wstrzykuje natywne Word Track Changes
(w:ins/w:del) i komentarze, zachowujac formatowanie, fonty i marginesy.
Cala praca lokalnie (uvx, brak chmury). Silnik testowany na polskim .docx 2026-05-22 (extract/apply/sanitize - patrz THIRD_PARTY_INSPIRATIONS.md).
Wymagania
uv (jezeli brak: pip install uv). adeu pobiera sie samo przez uvx adeu przy pierwszym uzyciu (wersja sprawdzona: 1.7.5).
Safety Tiers (KRYTYCZNE)
Przed wykonaniem każdej operacji ustal tier i zastosuj regułę:
| Tier | Operacje | Reguła |
|---|---|---|
| R - Read-only | extract (czytanie .docx), skan_placeholder.py, memo_negocjacyjne.py (pisza tylko nowe pliki raportu/memo) | Bez potwierdzenia. Wykonaj od razu. |
| M - Mutating | apply, diff, apply --live | Pokaż użytkownikowi proponowane zmiany. Czekaj na potwierdzenie słowne. |
| D - Destructive | sanitize --accept-all (akceptuje wszystkie zmiany nieodwracalnie) | Użytkownik musi wpisać dosłownie: "potwierdzam" zanim wykonasz. |
Workflow (4 kroki)
1. Czytaj - .docx do Markdown dla LLM
uvx adeu extract umowa.docx -o umowa.md
Zwraca czysty Markdown (+ opcjonalny Semantic Appendix: defined terms, cross-references, typos). LLM pracuje na semantyce, nie na surowym OOXML - kilkukrotnie mniej tokenow niz wrzucenie pliku w postaci binarnej.
2. Przygotuj liste zmian - edits.json
Format to lista obiektow modify (search-and-replace na tekscie, NIE na pozycji):
[
{
"type": "modify",
"target_text": "sad wlasciwy dla siedziby Zleceniodawcy",
"new_text": "Sad Arbitrazowy przy KIG w Warszawie",
"comment": "Proponuje arbitraz zamiast sadu powszechnego."
}
]
target_text musi byc jednoznaczny - adeu blokuje niejednoznaczne dopasowania
ZANIM dotkna pliku (bramka walidacji). Jezeli fragment wystepuje kilka razy,
doprecyzuj kontekst.
Rozszerzenie schematu - pola negocjacyjne (opcjonalne)
Kazdy obiekt modify moze dostac cztery dodatkowe pola. Sluza one memo
negocjacyjnemu (krok 2a), NIE trafiaja do adeu ani do drugiej strony:
[
{
"type": "modify",
"target_text": "kara umowna w wysokosci 20% wartosci umowy",
"new_text": "kara umowna w wysokosci 5% wartosci umowy, lacznie nie wiecej niz 10%",
"comment": "Proponujemy ograniczenie kary umownej.",
"tier": 1,
"rationale": "20% bez limitu lacznego to ekspozycja nieproporcjonalna do wartosci kontraktu.",
"walkaway": "Maksymalnie 10% z limitem lacznym 15%. Powyzej tego nie podpisujemy.",
"precedent": "Umowa z kontrahentem X (2025): 5% z limitem 10% przeszlo bez sporu."
}
]
| Pole | Znaczenie |
|---|---|
tier | Priorytet 1-3 (framework nizej). |
rationale | Uzasadnienie zmiany - argument do rozmowy, nie do dokumentu. |
walkaway | Granica ustepstwa: co akceptujemy najdalej i kiedy odchodzimy od stolu. |
precedent | Odwolanie do porownywalnej umowy lub wczesniejszej negocjacji. |
Rozdzial widocznosci jest twardy: comment widzi druga strona (komentarz w
track changes), rationale/walkaway/precedent zostaja w memo wewnetrznym.
Framework Tier 1-3 - kategorie ryzyka
| Tier | Kategoria | Regula negocjacyjna |
|---|---|---|
| 1 | Warunki brzegowe (non-starter) | Bez tej zmiany umowy nie podpisujemy. Pozycja walkaway obowiazkowa - memo bez niej nie przejdzie walidacji. |
| 2 | Istotne | Realne ryzyko prawne lub finansowe. Negocjuj, ustepstwo tylko za cos. |
| 3 | Pozadane | Poprawia nasza pozycje, ale mozna odpuscic bez straty. Waluta wymienna za tier 2. |
Brak tier = pozycja nieskategoryzowana; memo wypisze ja osobno jako zaleglosc
do klasyfikacji przez prawnika.
2a. Memo negocjacyjne (opcjonalne, dokument WEWNETRZNY)
# sciezka scripts/ wzgledem katalogu tego skilla; z katalogu sprawy podaj pelna
python scripts/memo_negocjacyjne.py edits.json -o memo.md --tytul "Umowa serwisowa - kontrahent X"
python scripts/memo_negocjacyjne.py edits.json --adeu edits_adeu.json # kopia bez pol memo, do kroku 3
Generuje memo w Markdown: zmiany pogrupowane wg tierow, naglowek poufnosci,
licznik zmian per tier, przy kazdej pozycji rationale / walkaway / precedent.
Skrypt zero-dep (Python stdlib). Walidacja: tier spoza 1-3 lub tier 1 bez
walkaway = exit 1.
Granica governance: memo to draft do rozmowy, nie automat. Negocjacje
prowadzi czlowiek - skrypt przygotowuje mu mape pozycji, niczego nie wysyla
i nie rozstrzyga. Memo NIGDY nie idzie do drugiej strony (naglowek poufnosci
jest w szablonie na stale). Do adeu apply podawaj kopie z --adeu - pola
negocjacyjne nie moga trafic do pliku wymienianego z kontrahentem.
3. Aplikuj - natywne Track Changes
uvx adeu apply umowa.docx edits.json -o umowa_redline.docx --author "Kancelaria"
Daje umowa_redline.docx ze sledzonymi zmianami i komentarzami. Bez --author
adeu wpisuje nazwe konta systemowego biezacego uzytkownika - zawsze podawaj
--author jawnie, zeby nie wyciekla nazwa konta do dokumentu.
3a. Skan placeholderow - bramka "czy draft nie wychodzi z dziurami"
# sciezka scripts/ wzgledem katalogu tego skilla, jak w kroku 2a
python scripts/skan_placeholder.py umowa_redline.docx # tez .md / .txt, wiele plikow naraz
python scripts/skan_placeholder.py umowa_redline.docx --json # raport maszynowy
Wykrywa niedokonczone pola: [...], [ ], [wstaw ...], [insert ...],
TBD, DO UZUPELNIENIA, $X / $___, ciagi podkreslen ___, placeholder
sygnatury NN/RR, puste pola dat (dnia __, [data]) i kwot ([kwota] oraz
kazde 0,00 zl - czesty artefakt niewypelnionego pola; jezeli kwota zerowa
jest zamierzona, odnotuj to przy przekazaniu). Raport plik:pozycja (paragraf w .docx,
linia w tekscie) + fragment kontekstu.
Zero zaleznosci (Python stdlib, .docx czytany przez zipfile). Exit 0 = czysto,
exit 1 = znaleziska. Kazde znalezisko blokuje wysylke - najpierw uzupelnij
pole albo swiadomie zostaw (np. kwota do wpisania przez klienta) i odnotuj to
przy przekazaniu draftu czlowiekowi.
4. Sanitize PRZED wyslaniem - RODO
uvx adeu sanitize umowa_redline.docx -o umowa_clean.docx --keep-markup --author "Kancelaria" --report
Usuwa: creator, last modified by, template, rsid, custom XML parts;
normalizuje timestampy; podmienia autorow track-changes/komentarzy na jedna nazwe.
--keep-markup zachowuje sledzone zmiany (do negocjacji); bez tego (--accept-all)
akceptuje wszystko i zwraca czysty dokument. Konczy werdyktem Result: CLEAN.
Zawsze rob sanitize przed wyslaniem pisma na zewnatrz. Word zostawia w metadanych nazwiska autorow, sciezki szablonow i historie edycji - to wyciek danych.
Pozostale komendy
uvx adeu diff v1.docx v2.docx # wizualny diff dwoch wersji
uvx adeu apply --live edits.json # edycja zywego dokumentu w Word (Windows + MS Word)
Integracja z let-it-be (PII PL)
sanitize czysci metadane Worda, ale NIE tresc. Do anonimizacji tresci (PESEL,
NIP, nazwiska w fleksji) najpierw przepusc tekst przez let-it-be, potem redline:
let-it-be-> pseudonimizuj tresc pisma (PII -> tokeny)- praca/redline na zpseudonimizowanej wersji
adeu sanitize-> domkniecie metadanych przed wyslaniem
let-it-be = tresc (RODO art. 4 dane osobowe w tekscie); adeu sanitize = metadane pliku. Dwie rozne warstwy wycieku, obie trzeba domknac.
Ograniczenia
- Live MS Word tylko Windows + zainstalowany Word (backend Python).
target_textna dopasowaniu tekstu - przy duplikatach trzeba kontekstu.- adeu to narzedzie wspomagajace, NIE zastepuje weryfikacji przez prawnika.
- Silnik zewnetrzny (adeu, Dealfluence) - przy aktualizacji wersji zrob ponowny smoke test.
Atrybucja
Silnik: adeu (c) 2026 Dealfluence Oy, licencja MIT.
Wzorce memo negocjacyjnego (pola tier/rationale/walkaway/precedent, grupowanie
wg tierow) i skanera placeholderow: evolsb/legal-redline-tools
(MIT). PATTERN, nie kod - oba skrypty napisane od zera pod polskie realia
(wzorce PL: DO UZUPELNIENIA, NN/RR, dnia __, kwoty w zl) i pod format
edits.json adeu zamiast ich wlasnego formatu redlines.
Szczegoly i snapshoty licencji: THIRD_PARTY_INSPIRATIONS.md.