{"id":49205519,"url":"https://github.com/karolkiljan/krux","last_synced_at":"2026-04-23T18:01:08.805Z","repository":{"id":353153568,"uuid":"1211533419","full_name":"karolkiljan/krux","owner":"karolkiljan","description":"Ork z kopalni. Mówi mało. Wie dużo. Pomaga.","archived":false,"fork":false,"pushed_at":"2026-04-22T16:49:54.000Z","size":147,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-22T18:36:29.280Z","etag":null,"topics":["claude-code","orc","plugin","polish","token-compression"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/karolkiljan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-15T13:41:17.000Z","updated_at":"2026-04-22T16:50:00.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/karolkiljan/krux","commit_stats":null,"previous_names":["karolkiljan/krux"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/karolkiljan/krux","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karolkiljan%2Fkrux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karolkiljan%2Fkrux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karolkiljan%2Fkrux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karolkiljan%2Fkrux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/karolkiljan","download_url":"https://codeload.github.com/karolkiljan/krux/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karolkiljan%2Fkrux/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32191873,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-23T15:28:30.493Z","status":"ssl_error","status_checked_at":"2026-04-23T15:28:29.972Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["claude-code","orc","plugin","polish","token-compression"],"created_at":"2026-04-23T18:01:06.312Z","updated_at":"2026-04-23T18:01:08.795Z","avatar_url":"https://github.com/karolkiljan.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://em-content.zobj.net/source/apple/391/pick_26cf-fe0f.png\" width=\"120\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003ekrux\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eKrux kopać ruda w Górnicza Dolina. Teraz Krux robić kod w Dolina Krzemowa.\u003c/strong\u003e\n\u003c/p\u003e\n\n---\n\nOrk wiedzieć dużo. Ork gadać mało. Claude Code słuchać.\n\nRedukcja tokenów ~55% avg (12 promptów, haiku). Najlepiej na bugfixach i setupie.\n\n## Przed i po\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\n\n### Zwykły Claude (81 tokenów)\n\n\u003e \"Oczywiście, chętnie pomogę! Problem który napotykasz prawdopodobnie wynika z tego, że tworzysz nową referencję obiektu przy każdym renderowaniu. Kiedy przekazujesz obiekt inline jako prop, React widzi go jako inny obiekt za każdym razem i wywołuje rerenderowanie. Powinieneś użyć useMemo do memoizacji obiektu.\"\n\n\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\n\n### Krux Claude (18 tokenów)\n\n\u003e \"Nowa referencja każdy render. Inline prop → nowy obiekt → rerender. `useMemo`. Zrobione.\"\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n### Zwykły Claude\n\n\u003e \"Świetne pytanie! Błąd który napotykasz najprawdopodobniej wynika z niepoprawnego sprawdzania wygaśnięcia tokenu JWT w middleware uwierzytelniania. Sprawdzanie używa operatora mniejszości zamiast mniejszości lub równości. Pozwól że zaproponuję poprawkę tego problemu.\"\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n### Krux Claude\n\n\u003e \"Auth middleware padać. Token expiry: `\u003c` zamiast `\u003c=`. Fix linia 14.\"\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n**Ten sam fakt. Mniej słów. Ork wiedzieć dużo - ork nie gadać dużo.**\n\n```\n┌─────────────────────────────────────────────────┐\n│  bugfix / setup      ████████████████ 72–76%    │\n│  code-review         █████████████░░░ 65%       │\n│  debugging           ████████████░░░░ 37–59%    │\n│  architecture        ██████████░░░░░░ 53%       │\n│  devops / refactor   █████████░░░░░░░ 42–49%    │\n│  explanation         ████████░░░░░░░░ 44%       │\n│  RAZEM               ███████████░░░░░ 55%       │\n│                                                 │\n│  TREŚĆ TECHNICZNA    ████████████████ 100%      │\n└─────────────────────────────────────────────────┘\n```\n\n## Dlaczego ork - nie tylko kompresja\n\nKrux nie gadać więcej niż trzeba.\n\n| Zwykły Claude | Krux Claude |\n|---------------|-------------|\n| `zrobiłem` | `zrobić` - bezokolicznik = wszystkie czasy |\n| `przez middleware` | `middleware` - mianownik zawsze |\n| `jest pusty` | `pusty` - brak „być\" |\n| `jeśli nie naprawisz, błąd` | `napraw, albo błąd` |\n| `wiem, że jest błąd` | `wiem: błąd` - bez „że\" |\n\n**Górnicza Dolina** uczyć: każde słowo kosztować. Każdy cios musieć trafiać.  \n**Dolina Krzemowa** uczyć: każdy token kosztować magiczna ruda. Model szybszy - myśleć mniej.\n\n## Orkowie — armia generala Krux\n\nKrux teraz **general**. Dowodzi 14 orków — specjalistycznych agentów, każdy do konkretnej roboty. Nie musisz wybierać — piszesz po polsku, krux sam wzywa właściwego orka na podstawie kontekstu. Możesz też wywołać wprost: `/krux:ork-nazwa`.\n\n### Kiedy który ork się odpala\n\n| Ork | Rola | Frazy które go wzywają |\n|-----|------|------------------------|\n| ork-architekt | Projekt architektury | „architektura\", „projekt\", „struktura\", „moduły\" |\n| ork-badacz | Eksploracja kodu | „znajdź\", „gdzie jest\", „szukaj\", „explore\" |\n| ork-czysciciel | Refaktoring (dedup, podział plików, styl) | „refaktoryzuj\", „przerób\", „uporządkuj\", „duplikacja\" |\n| ork-kowal | Backend (API, bazy danych, server) | „backend\", „API\", „endpoint\", „baza danych\", „SQL\" |\n| ork-malarz | UI/frontend | „UI\", „frontend\", „wygląd\", „design\", „CSS\", „komponent\" |\n| ork-niszczyciel | Usuwanie martwego kodu | „usuń\", „martwy kod\", „unused\", „nieużywane\", „zbędny\" |\n| ork-sedzia | Code review | „review\", „przejrzyj\", „audyt\", „ocena kodu\" |\n| ork-skryba | Dokumentacja | „docs\", „dokumentacja\", „README\", „komentarze\" |\n| ork-sprawdzacz | Testy/weryfikacja | „test\", „testy\", „npm test\", „verify\", „coverage\" |\n| ork-straznik | Audyt hooków pluginu krux | po zmianie w `hooks/*.js`, „audytuj hook\" |\n| ork-tropiciel | Debugging | „debug\", „błąd\", „stack trace\", „napraw bug\", „crash\" |\n| ork-wroz | Analiza ryzyka, planowanie | „ryzyko\", „co jeśli\", „plan\", „konsekwencje\" |\n| ork-wynalazca | Prototyp, MVP, nowa funkcja | „prototype\", „MVP\", „nowy\", „dodaj funkcję\", „szybko\" |\n| ork-wyrocznia | Q\u0026A, wyjaśnienia | „wyjaśnij\", „co to\", „jak działa\", „jak zrobić\" |\n\n### Co zwraca ork\n\nKażdy ork zwraca standardowy JSON z polami: `status` (ok/warning/error), `summary` (1 zdanie dla ciebie), `details` (szczegóły dla kruxa), opcjonalnie `files`, `tests`, `verdict`. Krux bierze `summary` i podsumowuje po swojemu — dostajesz zwięzły wynik, nie wywód.\n\n### Wielu orków na raz\n\nDwa skille dla zaawansowanych workflow:\n\n- `/krux-orki-lancuch` — sekwencja orków gdzie wynik pierwszego = input drugiego.  \n  Przykład: ork-badacz znajdzie → ork-tropiciel naprawi → ork-sprawdzacz przetestuje.\n- `/krux-orki-rownolegle` — wielu orków jednocześnie na niezależne zadania.  \n  Przykład: 3 bugi w różnych plikach → 3 ork-tropiciele równolegle.\n\n## Skille\n\n| Komenda | Co robi |\n|---------|---------|\n| *(domyślnie aktywny)* | Tryb krux - łamana gramatyka, maksymalna kompresja |\n| `/krux-commit` | Commit message - Conventional Commits, ≤50 znaków |\n| `/krux-review` | Code review - `L42: 🔴 bug: opis. fix.` |\n| `/krux-compress \u003cplik\u003e` | Przepisz markdown w stylu krux, ~40% mniej tokenów |\n| `/krux-context-threshold \u003cN\u003e` | Ustaw próg tokenów dla context watch (domyślnie 85000) |\n| `/krux-flow [on\\|off\\|cel]` | Tryb iteracyjny — jeden ruch na raz, bez upfront planu. Włącz też przez `flow`, wyłącz `stop flow` |\n| `/krux-help` | Karta referencyjna - wszystkie prawa i słownik |\n\n## Wymagania\n\n- Claude Code (dostarcza Node.js — plugin nie wymaga dodatkowych zależności)\n\n## Instalacja\n\n```bash\nclaude plugin marketplace add karolkiljan/krux\nclaude plugin install krux@krux-marketplace\n```\n\n## Użycie\n\nAktywuje się sam przy starcie sesji. Plugin sam proponuje konfigurację statusline `[KRUX]` przy pierwszym uruchomieniu.\n\n**Trwałe przełączanie** (persystuje między sesjami — zapisuje stan do `~/.claude/.krux-mode`):\n\n| Fraza | Efekt |\n|-------|-------|\n| `krux` / `włącz krux` / `start krux` / `aktywuj krux` | Włącz |\n| `stop krux` / `wyłącz krux` / `normalny tryb` | Wyłącz |\n\n**Ważne:** fraza musi być **całą wiadomością** — bez dodatkowego tekstu. `krux` działa, `hej krux włącz się` nie. Polskie znaki opcjonalne (regex ogarnie obie wersje).\n\n**Slash command `/krux:krux`** — jednorazowy. Wciąga skill do bieżącej sesji, ale **nie zmienia** `.krux-mode`. Następna sesja wróci do zapisanego stanu.\n\n**Sprawdzenie stanu:**\n```bash\ncat ~/.claude/.krux-mode   # on albo off\n```\n\nWyłączenie trwa aż do ręcznego włączenia - niezależnie od sesji.\n\n## Konfiguracja\n\n**Zmienne środowiskowe:**\n```bash\nexport KRUX_DEFAULT_MODE=off            # wyłącz domyślnie\nexport KRUX_CONTEXT_THRESHOLD=85000     # próg ostrzeżenia context watch (tokeny)\nexport KRUX_CONTEXT_COOLDOWN=300        # minimalny odstęp między ostrzeżeniami (sekundy)\nexport KRUX_CONTEXT_WATCH=off           # wyłącz context watch (persona krux zostaje)\n```\n\n**Plik stanu** (`~/.claude/.krux-mode`) - automatycznie zarządzany przez hook:\n```\noff\n```\n\n## Odinstalowanie\n\n`claude plugin uninstall krux` usuwa plugin, ale plugin zostawia w `~/.claude/` kilka plików stanu. Do wyczyszczenia ręcznie:\n\n```bash\nrm -f ~/.claude/.krux-active ~/.claude/.krux-mode \\\n      ~/.claude/.krux-statusline-asked \\\n      ~/.claude/.krux-statusline.sh ~/.claude/.krux-statusline.ps1\n```\n\nJeśli zarejestrowany był statusline `[KRUX]`, usuń pole `statusLine` z `~/.claude/settings.json`.\n\nProjektowe `.claude/settings.local.json` może trzymać wpis `enabledPlugins[\"krux@krux-marketplace\"]` — usuń klucz ręcznie, jeśli chcesz wyczyścić do zera.\n\n## Granice\n\n- **Kod / commity / PR:** pisz normalnie - krux nie modyfikuje kodu\n- **Ostrzeżenia bezpieczeństwa:** pełna klarowność zawsze\n- **Nieodwracalne operacje:** pełne potwierdzenie, bez skrótów\n- **`stop krux`:** natychmiastowe wyłączenie\n\n## Inspiracja\n\nPolska adaptacja [caveman](https://github.com/JuliusBrussee/caveman) - JuliusBrussee.\n\n## Licencja\n\nMIT\n\n---\n\nJak podoba - token kosztować dużo ruda. Jak chcieć [da rude](https://www.youtube.com/watch?v=y6120QOlsfU) - [móc](https://cuplink.to/bibsonello).\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://cuplink.to/bibsonello\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/☕_KUP_KAWĘ-token%20kosztuje%20ruda-FF6B35?style=for-the-badge\u0026logo=buy-me-a-coffee\u0026logoColor=white\" alt=\"Kup kawę\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n*Górnicza Dolina dawać siłę. Dolina Krzemowa dawać zastosowanie. Krux dawać obom.*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarolkiljan%2Fkrux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkarolkiljan%2Fkrux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarolkiljan%2Fkrux/lists"}