agentsclimarketplace

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.

Install
npx -y skills add matematicsolutions/awesome-matematic-skills-pl --skill redline-docx-pl

Assembled 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łę:

TierOperacjeReguła
R - Read-onlyextract (czytanie .docx), skan_placeholder.py, memo_negocjacyjne.py (pisza tylko nowe pliki raportu/memo)Bez potwierdzenia. Wykonaj od razu.
M - Mutatingapply, diff, apply --livePokaż użytkownikowi proponowane zmiany. Czekaj na potwierdzenie słowne.
D - Destructivesanitize --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."
  }
]
PoleZnaczenie
tierPriorytet 1-3 (framework nizej).
rationaleUzasadnienie zmiany - argument do rozmowy, nie do dokumentu.
walkawayGranica ustepstwa: co akceptujemy najdalej i kiedy odchodzimy od stolu.
precedentOdwolanie 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

TierKategoriaRegula negocjacyjna
1Warunki brzegowe (non-starter)Bez tej zmiany umowy nie podpisujemy. Pozycja walkaway obowiazkowa - memo bez niej nie przejdzie walidacji.
2IstotneRealne ryzyko prawne lub finansowe. Negocjuj, ustepstwo tylko za cos.
3PozadanePoprawia 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:

  1. let-it-be -> pseudonimizuj tresc pisma (PII -> tokeny)
  2. praca/redline na zpseudonimizowanej wersji
  3. 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_text na 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.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.