{"id":50472366,"url":"https://github.com/semcod/redsl","last_synced_at":"2026-06-01T11:03:14.611Z","repository":{"id":349787820,"uuid":"1203909188","full_name":"semcod/redsl","owner":"semcod","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-14T07:33:01.000Z","size":94749,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-14T09:41:20.960Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/semcod.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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-07T13:58:35.000Z","updated_at":"2026-05-14T07:33:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/semcod/redsl","commit_stats":null,"previous_names":["wronai/redsl","semcod/redsl"],"tags_count":70,"template":false,"template_full_name":null,"purl":"pkg:github/semcod/redsl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semcod%2Fredsl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semcod%2Fredsl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semcod%2Fredsl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semcod%2Fredsl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/semcod","download_url":"https://codeload.github.com/semcod/redsl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semcod%2Fredsl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33771630,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-01T02:00:06.963Z","response_time":115,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2026-06-01T11:03:14.133Z","updated_at":"2026-06-01T11:03:14.601Z","avatar_url":"https://github.com/semcod.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## AI Cost Tracking\n\n![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-1.2.63-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)\n![AI Cost](https://img.shields.io/badge/AI%20Cost-$7.50-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-46.2h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fopenai%2Fgpt--5--mini-lightgrey)\n\n- 🤖 **LLM usage:** $7.5000 (114 commits)\n- 👤 **Human dev:** ~$4622 (46.2h @ $100/h, 30min dedup)\n\nGenerated on 2026-05-14 using [openrouter/openai/gpt-5-mini](https://openrouter.ai/openai/gpt-5-mini)\n\n---\n\n**Re**factor + **DSL** + **S**elf-**L**earning — AI-Native DevOps \u0026 Refactoring OS\n\n\u003e ⚠️ **To nie jest zwykły DSL do wymagań. To autonomiczny system operacyjny dla AI-driven software engineering.**\n\nReDSL to eksperymentalny framework łączący LLM, \nformalny runtime DSL, CI/CD i pętlę samorefaktoryzacji w jeden autonomiczny cykl życia kodu.\n\n![Version](https://img.shields.io/badge/version-1.2.63-blue) ![Python](https://img.shields.io/badge/python-%3E%3D3.11-blue) ![Tests](https://img.shields.io/badge/tests-776%20passing-green) ![E2E](https://img.shields.io/badge/e2e-18%20tests-green) [![Docs](https://img.shields.io/badge/docs-29%20projektów-green)](./docs/)\n\n---\n\n## Aktualny stan projektu\n\nNa podstawie analizy `code2llm` z 2026-04-09:\n\n- **Pliki**: 114\n- **Funkcje**: 781\n- **Klasy**: 112\n- **Linie kodu**: 19 151\n- **Średnia złożoność**: CC̄ = 4.1\n- **Hotspoty krytyczne**: 3\n- **Duplikacje / cykle**: 0 / 0\n- **Największy hotspot**: `redsl/formatters.py` (517 LOC, CC=28)\n- **Następny refactor**: rozbić 3 metody o CC \u003e 15:\n  - `format_cycle_report_markdown()`\n  - `format_batch_report_markdown()`\n  - `LLMLayer.call()`\n\n---\n\n## 🧠 Co to naprawdę jest ReDSL?\n\n**Nie jest to tylko DSL do wymagań. To AI-driven software lifecycle system:**\n\n| Komponent | Rola w systemie |\n|-----------|-----------------|\n| **SUMD** | Opis systemu (high-level spec) |\n| **DOQL** | Runtime definicja aplikacji (CLI, workflows) |\n| **taskfile** | Operacje DevOps |\n| **testQL** | Walidacja |\n| **pyqual** | System jakości kodu |\n| **LLM** | Refaktoryzacja + automatyzacja (gpt-5-mini przez litellm) |\n\n### 🔥 KLUCZOWA ZMIANA PARADYGMATU\n\n❌ **Wcześniej (typowy DSL)**: opisujesz wymagania → generujesz dokumentację → ręczna interpretacja\n\n✅ **Tutaj**: opisujesz system → system ma CI/CD, testy, linting, deployment, refactor pipeline → **LLM może ingerować w kod**\n\n**To jest autonomiczny system developmentu.**\n\n## 🏗️ Architektura: Autonomiczna Pętla\n\n```\nSUMD → DOQL → taskfile → pyqual → testQL → LLM refactor loop → deployment\n```\n\n### Szczegółowy flow:\n\n```\n┌─────────────────────────────────────────────────────────────────────┐\n│                    AUTONOMICZNY CYKL ŻYCIA KODU                     │\n│                                                                     │\n│   🧾 SUMD ──► ⚙️ DOQL ──► 🔄 taskfile ──► 🧪 pyqual ──► 🤖 LLM         │\n│       │          │           │            │           │             │\n│       ▼          ▼           ▼            ▼           ▼             │\n│   [Spec]    [Runtime]   [DevOps]    [Quality]   [Refactor]          │\n│       │          │           │            │           │             │\n│       └──────────┴───────────┴────────────┴───────────┘             │\n│                            │                                        │\n│                            ▼                                        │\n│   ┌─────────────────────────────────────────┐                       │\n│   │  REFACTOR ORCHESTRATOR                  │                       │\n│   │  PERCEIVE → DECIDE → PLAN → EXECUTE     │                       │\n│   │       ↓                    ↓            │                       │\n│   │  REFLECT → REMEMBER → IMPROVE           │                       │\n│   └─────────────────────────────────────────┘                       │\n│                          │                                          │\n│                          ▼                                          │\n│   ┌─────────────────────────────────────────┐                       │\n│   │  VALIDATION LAYER                       │                       │\n│   │  regix (regresja) │ vallm │ sandbox     │                       │\n│   └─────────────────────────────────────────┘                       │\n│                          │                                          │\n│                          ▼                                          │\n│   [deployment] ◄── CI/CD ◄── quality gates ◄── auto-PR              │\n│                                                                     │\n└─────────────────────────────────────────────────────────────────────┘\n```\n\n## 🚨 CO TU JEST NAPRAWDĘ NOWEGO\n\n### 🧠 A. \"Code as controllable system\"\nTo NIE jest: kod + AI\nTo jest: **system operacyjny dla kodu**\n\n### 🔁 B. Self-learning loop\nMasz: testy, lint, quality gates, refactor pipeline, LLM model\n👉 System, który może **sam poprawiać swój kod**\n\n### 🧩 C. DSL = interfejs sterowania\nDOQL to nie język deklaratywny - to **orkiestrator systemu**:\n```yaml\nworkflow[name=\"test\"] {\n  run pytest\n}\n```\n\n## Kluczowe Funkcje\n\n- 🔍 **Analiza statyczna** - Integracja z code2llm, toon.yaml, linterami (ruff, mypy, bandit)\n- 🧠 **LLM z refleksją** - Generowanie propozycji refaktoryzacji z pętlą samorefleksji\n- ⚡ **Hybrydowy silnik** - Bezpośrednie refaktoryzacje (bez LLM) dla prostych zmian\n- 📊 **DSL Engine** - Definicja reguł refaktoryzacji w czytelnym formacie YAML\n- 💾 **System pamięci** - Trzy warstwy: epizodyczna, semantyczna, proceduralna\n- 🛡️ **Walidacja regresji** - Automatyczne wykrywanie degradacji metryk przez regix\n- 🚀 **Skalowalność** - Przetwarzanie wielu projektów (semcod) jednocześnie\n- 🐳 **Sandbox** - Bezpieczne testowanie refaktoryzacji w Docker\n- 🔄 **Autonomy loop** - Perceive → Decide → Plan → Execute → Reflect → Memory Update\n\n# Ze źródeł\ngit clone https://github.com/wronai/redsl\ncd redsl\npip install -e .\n```\n\n### Wymagania\n\n- Python \u003e= 3.11\n- Opcjonalnie: Docker (dla sandbox testing)\n- Opcjonalnie: Narzędzia semcod ecosystem (code2llm, regix, pyqual, planfile)\n\n# Refaktoryzacja pojedynczego projektu (dry-run → markdown)\nredsl refactor ./my-project --max-actions 5 --dry-run\n\n# Dry-run → bezpośrednio jako zadania w planfile.yaml\nredsl refactor ./my-project --max-actions 5 --dry-run --to-planfile\n\n# Wykonaj decyzje zapisane w planfile.yaml\nredsl refactor ./my-project --from-planfile --from-planfile-path ./planfile.yaml\n\n# Refaktoryzacja z walidacją regresji\nredsl refactor ./my-project --max-actions 10 --validate-regix --rollback\n\n# Refaktoryzacja z sandbox testing (Docker)\nredsl refactor ./my-project --max-actions 5 --sandbox\n\n# Analiza jakości kodu bez refaktoryzacji\nredsl pyqual analyze ./my-project --format yaml\n\n# Automatyczne naprawy jakościowe (bez LLM)\nredsl pyqual fix ./my-project\n```\n\n# Hybrydowa refaktoryzacja (bez LLM) - szybka\nredsl batch hybrid /path/to/semcod --max-changes 50\n\n# Pełna refaktoryzacja z LLM i refleksją\nredsl batch semcod /path/to/semcod --max-actions 10\n\n# Z wykrywaniem regresji metryk przez regix\nredsl batch semcod /path/to/semcod --max-actions 5 --validate-regix\n```\n\nKażde uruchomienie `refactor` oraz `batch` zapisuje też raport Markdown obok projektu lub katalogu root:\n\n- `redsl_refactor_plan.md` — wynik `--dry-run` (domyślnie markdown)\n- `redsl_refactor_report.md` — wykonany cykl refaktoryzacji\n- `redsl_batch_semcod_report.md` — raport zbiorczy dla `batch semcod`\n- `redsl_batch_hybrid_report.md` — raport zbiorczy dla `batch hybrid`\n\n### Workflow planfile (rekomendowany)\n\nZamiast natychmiastowego wykonania, możesz przeglądnąć i zatwierdzić decyzje w planfile:\n\n```bash\n# 1. Generuj decyzje jako zadania planfile\nredsl refactor ./my-project --dry-run --to-planfile -n 10\n\n# 2. Sprawdź aktualność ticketów (czy plik istnieje, CC nadal przekroczony, czy nie wykonano już)\nredsl planfile validate ./my-project\n\n# 3. Opcjonalnie: usuń tickety już nieaktualne\nredsl planfile validate ./my-project --fix\n\n# 4. Przejrzyj i edytuj ./my-project/planfile.yaml (odznacz lub usuń niechciane zadania)\n\n# 5. Wykonaj tylko zatwierdzone zadania\nredsl refactor ./my-project --from-planfile\n```\n\n### Walidacja ticketów (`redsl planfile validate`)\n\nSprawdza czy każde otwarte zadanie w `planfile.yaml` jest nadal aktualne:\n\n| Werdykt | Znaczenie |\n|---|---|\n| `OK` | Plik istnieje, metryka wciąż przekroczona |\n| `STALE_FILE_MISSING` | Plik wskazany w tickecie nie istnieje |\n| `STALE_FIXED` | CC pliku jest teraz poniżej progu (problem sam się rozwiązał) |\n| `STALE_APPLIED` | Akcja już wykonana i zapisana w `history.jsonl` |\n\n```bash\nredsl planfile validate ./my-project           # raport\nredsl planfile validate ./my-project --fix     # oznacza stale jako 'stale' w planfile.yaml\nredsl planfile validate ./my-project --json    # output JSON do pipe/jq\n```\n\n# Sprawdź konfigurację i zmienne środowiskowe\nredsl debug config --show-env\n\n# Zobacz decyzje DSL dla projektu\nredsl debug decisions ./my-project --limit 20\n\n# Profiluj wydajność cyklu refaktoryzacji\nredsl perf ./my-project\n\n# Szacuj koszt LLM przed uruchomieniem\nredsl cost ./my-project --max-actions 10\n```\n\n## Przykłady\n\n| Katalog | Opis | Link |\n|---------|------|------|\n| `examples/01-basic-analysis/` | Analiza projektu z plików toon.yaml | [Przejdź](./examples/01-basic-analysis/) |\n| `examples/02-custom-rules/` | Definiowanie własnych reguł DSL | [Przejdź](./examples/02-custom-rules/) |\n| `examples/03-full-pipeline/` | Pełny cykl: analyze → decide → refactor → reflect | [Przejdź](./examples/03-full-pipeline/) |\n| `examples/04-memory-learning/` | System pamięci: episodic, semantic, procedural | [Przejdź](./examples/04-memory-learning/) |\n| `examples/05-api-integration/` | Użycie REST API i WebSocket | [Przejdź](./examples/05-api-integration/) |\n| `examples/06-awareness/` | Świadomość zmian i adaptacja | [Przejdź](./examples/06-awareness/) |\n| `examples/07-pyqual/` | Quality gates i analiza jakości | [Przejdź](./examples/07-pyqual/) |\n| `examples/08-audit/` | One-click Audit → ocena A+ do F | [Przejdź](./examples/08-audit/) |\n| `examples/09-pr-bot/` | PR Bot z metrykami delta | [Przejdź](./examples/09-pr-bot/) |\n| `examples/10-badge/` | Generator badge'i jakości | [Przejdź](./examples/10-badge/) |\n\n# Uruchomienie przykładu przez CLI\nredsl example 01-basic-analysis\n\n# Lub bezpośrednio\npython examples/01-basic-analysis/main.py\n```\n\n## REST API\n\nReDSL udostępnia REST API (FastAPI) do programatycznego dostępu do wszystkich funkcji:\n\n# Wbudowany serwer (uvicorn)\nredsl server --host 0.0.0.0 --port 8000\n\n# Lub bezpośrednio\npython -m redsl.server\n```\n\n### Endpointy\n\n| Endpoint | Metoda | Opis |\n|----------|--------|------|\n| `/health` | GET | Health check + wersja + statystyki pamięci |\n| `/refactor` | POST | Uruchom refaktoryzację projektu |\n| `/analyze` | POST | Analiza projektu — zwraca metryki i alerty |\n| `/decide` | POST | Ewaluacja reguł DSL — decyzje bez wykonania |\n| `/rules` | POST | Dodaj niestandardowe reguły DSL |\n| `/memory/stats` | GET | Statystyki pamięci agenta |\n| `/debug/config` | GET | Konfiguracja agenta (z opcjonalnym `?show_env=true`) |\n| `/debug/decisions` | GET | Decyzje DSL dla projektu (`?project_path=\u0026limit=`) |\n| `/examples` | GET | Lista dostępnych przykładów |\n| `/examples/{name}/yaml` | GET | Surowe dane YAML scenariusza |\n\n# Health check\ncurl http://localhost:8000/health\n\n# Analiza projektu\ncurl -X POST http://localhost:8000/analyze \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"project_dir\": \"./my-project\"}'\n\n# Refaktoryzacja (dry-run)\ncurl -X POST http://localhost:8000/refactor \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"project_path\": \"./my-project\", \"max_actions\": 3, \"dry_run\": true, \"format\": \"yaml\"}'\n\n# Dodaj własną regułę DSL\ncurl -X POST http://localhost:8000/rules \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"rules\": [{\"name\": \"my-rule\", \"condition\": {\"metric\": \"cc\", \"operator\": \"\u003e\", \"threshold\": 10}, \"action\": \"refactor\", \"priority\": 0.9}]}'\n```\n\n### Skanowanie zdalnego repozytorium (Marketing / Outreach)\n\n```bash\n# Skan repozytorium przez URL — zwraca metryki i top issues\ncurl -s -X POST http://localhost:8000/scan/remote \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"repo_url\":\"https://github.com/semcod/pyqual\",\"branch\":\"main\",\"depth\":1}' | jq .\n\n# CQRS: asynchroniczny skan (zwraca correlation_id, status via query)\ncurl -s -X POST http://localhost:8000/cqrs/scan/remote \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"repo_url\":\"https://github.com/semcod/pyqual\",\"branch\":\"main\",\"async_mode\":true}' | jq .\n\n# Query status skanu\ncurl -s \"http://localhost:8000/cqrs/query/scan/status?repo_url=https://github.com/semcod/pyqual\" | jq .\n\n# CQRS: rozpocznij refaktoryzację\ncurl -s -X POST http://localhost:8000/cqrs/refactor \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"project_dir\":\"./my-project\",\"dry_run\":true,\"max_actions\":5}' | jq .\n\n# WebSocket: stream zdarzeń w czasie rzeczywistym (wymaga wscat lub websocat)\nwebsocat ws://localhost:8000/ws/cqrs/events\n```\n\n## Marketing Hub (Cold Email \u0026 LinkedIn Outreach)\n\nReDSL zawiera stronę marketingową (`www/marketing/`) do generowania personalizowanych wiadomości outreach na podstawie skanu repozytorium:\n\n| Funkcja | Endpoint | Opis |\n|---------|----------|------|\n| **Formularz skanu** | `POST /marketing/` | Wklej URL repo → generuje szablony email/LinkedIn/GitHub |\n| **Tech Lead** | Email | \"Znalazłem 3 rzeczy w [repo] które spowalniają development\" |\n| **CEO** | Email | \"Wasz projekt — znalazłem coś co spowalnia team\" |\n| **PM Agencji** | Email | \"Jak pokazujecie klientom postęp w jakości kodu?\" |\n| **LinkedIn** | Post | Hook na ból, kontrintuicja AI, case study przed/po |\n| **GitHub** | Issue | Cold outreach do OSS project |\n\n```bash\n# Uruchomienie lokalne (wymaga PHP + ReDSL API na porcie 8001)\ncd www \u0026\u0026 php -S localhost:9999 -t .\n# Otwórz: http://localhost:9999/marketing/\n```\n\n**Testy Marketing Hub:**\n```bash\n# E2E Playwright (3 przeglądarki × 17 testów)\ncd www/tests/e2e \u0026\u0026 npx playwright test marketing-hub.spec.js --reporter=line\n\n# PHP Unit tests (wymaga rozszerzeń dom, xml, xmlwriter)\nphp vendor/bin/phpunit tests/MarketingHubTest.php\n```\n\n## ⚖️ Markdown + AI vs ReDSL — Porównanie\n\nTwoje wcześniejsze porównanie trzeba zmienić.\n\n### 📝 Markdown + AI\n- input: luźny tekst\n- AI interpretuje\n- brak twardej struktury systemu\n- **To jest asystent**\n\n### 🧠 ReDSL (ten projekt)\n- input: strukturalny system (SUMD + DOQL)\n- AI działa w **kontrolowanym runtime**\n- ma pipeline jakości + CI/CD + refactor loop\n- **To jest autonomiczny system zarządzania cyklem życia kodu**\n\n| Kryterium | Markdown + AI | ReDSL |\n|-----------|---------------|-------|\n| **UX** | ✅ Wygrywa | ⚠️ Złożony |\n| **Adopcja** | ✅ Łatwy start | ⚠️ Wysoki koszt wejścia |\n| **Prostota** | ✅ Intuicyjny | ⚠️ Wiele abstrakcji |\n| **Kontrola systemu** | ❌ Brak | ✅ Deterministyczny runtime |\n| **Automatyzacja lifecycle** | ❌ Manualna | ✅ Auto-pipeline |\n| **CI/CD + AI integration** | ❌ Brak | ✅ Natywne |\n| **Deterministyczność** | ❌ Niedeterministyczna | ✅ DSL-driven |\n\n**Wniosek**: Markdown + AI wygrywa w produktywności i UX. ReDSL wygrywa **tylko jeśli** AI development stanie się w pełni autonomiczny i firmy zaakceptują \"system DSL jako runtime devops\".\n\n## 🧾 Realna Ocena Projektu\n\n| Kryterium | Ocena | Uzasadnienie |\n|-----------|-------|--------------|\n| 🧠 **Innowacyjność** | **9/10** | Blisko Devin, Auto-refactoring systems, AI CI/CD pipelines |\n| ⚙️ **Techniczna spójność** | **8.5/10** | Pełny pipeline dev, quality system, docker + CI + LLM |\n| 🚧 **Praktyczna adopcja** | **6/10** | Bardzo złożony, wysoki koszt wejścia, brak standardu rynkowego |\n| 📉 **Ryzyko** | **Wysokie** | Dużo abstrakcji DSL, dependency na LLM, brak dowodów produkcyjnego użycia |\n\n### 🎯 FINALNA KONKLUZJA\n\n👉 **To NIE jest już \"DSL do wymagań\"**\n\n👉 **To jest: eksperymentalny system operacyjny dla AI-driven software engineering**\n\n- ❌ To nie jest zwykły DSL\n- ❌ To nie jest konkurencja do Markdown (inna kategoria)\n- 🟢 To jest **AI-native DevOps + refactoring OS**\n- 🟡 Bardzo ambitne, ale ciężkie do wdrożenia\n\n## Architektura Szczegółowa\n\n```\n┌─────────────────────────────────────────────────────────────────┐\n│                     REFACTOR ORCHESTRATOR                       │\n│         PERCEIVE → DECIDE → PLAN → EXECUTE → REFLECT            │\n│                    ↓                    ↓                       │\n│              REMEMBER → IMPROVE (auto-learning)                 │\n├─────────────────┬───────────────────┬───────────────────────────┤\n│    ANALYZER     │    DSL ENGINE     │     REFACTOR ENGINES      │\n│  ─ toon.yaml    │  ─ rule scoring   │  ┌─────────────────────┐  │\n│  ─ code2llm     │  ─ decisions      │  │ DirectRefactorEngine│  │\n│  ─ linters      │  ─ auto-learning  │  │ (bez LLM)           │  │\n│  ─ redup        │                   │  ├─────────────────────┤  │\n│                 │                   │  │ LLM RefactorEngine  │  │\n│                 │                   │  │ (z refleksją)       │  │\n│                 │                   │  └─────────────────────┘  │\n├─────────────────┴───────────────────┴───────────────────────────┤\n│                     VALIDATION LAYER                            │\n│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────────┐  │\n│  │ regix       │  │ vallm       │  │ sandbox (Docker)        │  │\n│  │ (regression)│  │ (pactfix)   │  │ (bezpieczne testowanie) │  │\n│  └─────────────┘  └─────────────┘  └─────────────────────────┘  │\n├─────────────────────────────────────────────────────────────────┤\n│                     ECOSYSTEM BRIDGES                           │\n│  code2llm │ regix │ pyqual │ planfile │ vallm │ redup │ llx     │\n├─────────────────────────────────────────────────────────────────┤\n│                     LLM LAYER (LiteLLM)                         │\n│  ─ model routing (llx_router)  ─ cost estimation  ─ reflection  │\n├─────────────────────────────────────────────────────────────────┤\n│                     MEMORY SYSTEM                               │\n│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐      │\n│  │ episodic    │  │ semantic    │  │ procedural          │      │\n│  │ (historia)  │  │ (wzorce)    │  │ (strategie)         │      │\n│  └─────────────┘  └─────────────┘  └─────────────────────┘      │\n└─────────────────────────────────────────────────────────────────┘\n```\n\n### Proste akcje (bez LLM)\n- `REMOVE_UNUSED_IMPORTS` - Usuwanie nieużywanych importów\n- `FIX_MODULE_EXECUTION_BLOCK` - Poprawa bloków wykonania modułu\n- `EXTRACT_CONSTANTS` - Ekstrakcja magic numbers do stałych\n- `ADD_RETURN_TYPES` - Dodawanie adnotacji typów zwracanych\n\n\u003e **Uwaga implementacyjna:** deterministyczne helpery AST znajdują się teraz w `redsl/refactors/ast_transformers.py`, a `redsl.refactors` oraz `redsl.refactors.direct` re-exportują je dla zachowania kompatybilności.\n\n### Złożone akcje (z LLM)\n- `EXTRACT_FUNCTIONS` - Ekstrakcja funkcji o wysokiej złożoności\n- `SPLIT_MODULE` - Podział dużych modułów\n- `REDUCE_COMPLEXITY` - Redukcja złożoności cyklomatycznej\n- `SIMPLIFY_CONDITIONALS` - Upraszczanie warunków\n- `DEDUPLICATE` - Usuwanie duplikacji kodu\n\n### Szybki smoke test\n\nJeśli chcesz szybko sprawdzić, czy ReDSL uruchamia się poprawnie w nowym projekcie, użyj minimalnego projektu z jednym plikiem:\n\n```bash\nmkdir -p /tmp/redsl-smoke\ncat \u003e /tmp/redsl-smoke/main.py \u003c\u003c'PY'\nimport os\n\n\ndef main() -\u003e None:\n    return None\n\n\nmain()\nPY\n\npython3 -m redsl analyze /tmp/redsl-smoke\npython3 -m redsl refactor /tmp/redsl-smoke --dry-run --max-actions 5\n```\n\n# Tylko szybkie testy (\u003c 5s każdy)\npytest -m 'not slow'\n\n# Tylko testy e2e (full workflows na realnych projektach)\npytest tests/test_e2e.py -v\n```\n\n**Struktura testów:**\n- **776+ collected tests** — testy jednostkowe i integracyjne (~20s z pytest-xdist)\n- **18 e2e tests** — pełne przepływy CLI i API na realnych projektach\n- **20 integration tests** — integracja z semcod ecosystem (code2llm, regix, pyqual)\n- **15 Playwright tests** — E2E GUI (Marketing Hub, 3 przeglądarki)\n\n**Pokrycie e2e:**\n- CLI: `refactor`, `history`, `ecosystem`, `scan`, `batch pyqual-run`\n- API: `/health`, `/refactor`, `/analyze`, `/decide`, `/rules`, `/memory/stats`, `/debug/config`, `/debug/decisions`, `/examples`, `/scan/remote`, CQRS commands/queries\n- Autonomy: quality gate workflow\n- GUI: Marketing Hub form, tabs, copy buttons, responsive design\n\n## Obserwowalność i historia decyzji\n\nKażdy cykl refaktoryzacji zapisuje zdarzenia do pliku `.redsl/history.jsonl` w katalogu projektu. Jest to append-only log JSON Lines.\n\n### Typy zdarzeń\n\n| Zdarzenie | Kiedy | Kluczowe pola |\n|-----------|-------|---------------|\n| `cycle_started` | Start cyklu | `llm_model`, `workflow_source`, `max_actions`, `flags` |\n| `cycle_completed` | Koniec cyklu | `status`, `proposals_applied`, `proposals_generated`, `proposals_rejected`, `errors` |\n| `validator_gates_passed` | Wszystkie quality gates OK | `metrics` |\n| `validator_gates_failed` | Przynajmniej jedna brama nie przeszła | `failed_gates` |\n| `validator_tune_applied` | Tune auto-fix zastosowany | `retries_used` |\n| `validator_tune_failed` | Tune nieudany po max retries | `retries_used`, `reason` |\n| `validator_tune_no_metrics` | Brak metryk, uruchomiono `pyqual run` | — |\n| `cycle_rollback` | Wyjątek w cyklu → rollback plików | `files_rolled_back` |\n\n```bash\n# Przeglądaj historię projektu\nredsl history show ./my-project\n\n# Tylko cykl_completed zdarzenia\ncat ./my-project/.redsl/history.jsonl | grep '\"cycle_completed\"' | jq .\n```\n\n## Konfiguracja workflow (`redsl.yaml`)\n\nPlik `redsl.yaml` w katalogu projektu steruje pełnym pipeline'em. Kluczowe sekcje:\n\n```yaml\ndecide:\n  max_actions: 10\n  llm_model: auto          # lub np. \"openrouter/anthropic/claude-3.5-sonnet\"\n  llm_temperature: null    # null = domyślny model default\n\ntune:\n  strategy: auto           # auto | aggressive\n  retry: 2                 # liczba prób auto-fix\n  run_on_missing_metrics: true      # uruchom pyqual run gdy brak metryk\n  create_planfile_task_on_failure: true  # utwórz task w planfile po nieudanym tune\n```\n\nPole `llm_model: auto` oznacza, że redsl korzysta z ustawień środowiskowych (`LLM_MODEL` lub domyślnego routera llx). Można nadpisać per-projekt.\n\n## Ekosystem Semcod (opcjonalne narzędzia)\n\nReDSL integruje się z ekosystemem semcod dla wzmocnionej analizy:\n\n| Narzędzie | Bridge | Funkcja |\n|-----------|--------|---------|\n| `code2llm` | `code2llm_bridge.py` | Generowanie plików toon.yaml z metrykami |\n| `regix` | `regix_bridge.py` | Wykrywanie regresji metryk po refaktoryzacji |\n| `pyqual` | `pyqual_bridge.py` | Analiza jakości kodu (ruff, mypy, bandit) |\n| `planfile` | `planfile_bridge.py` | Tworzenie ticketów dla refactoring tasks |\n| `vallm` | `vallm_bridge.py` | Walidacja poprawności kodu przez LLM |\n| `redup` | `redup_bridge.py` | Detekcja duplikacji kodu (`redup==0.4.18`) |\n| `llx` | `llx_router.py` | Inteligentny routing modeli LLM |\n| `sumd` | `sumd_bridge.py` | Natywna analiza AST (CC, fan-out, hotspoty) - alternatywa dla code2llm |\n| `testql` | `testql_bridge.py` | Walidacja API po refaktoryzacji - testy regresyjne |\n\n# Klucz API dla LLM (wymagany dla akcji z LLM)\nOPENROUTER_API_KEY (set in your environment)\n\n# Model LLM (domyślnie: openrouter/moonshotai/kimi-k2.5)\nLLM_MODEL=openrouter/moonshotai/kimi-k2.5\n\n# Zachowanie refaktoryzacji\nREFACTOR_DRY_RUN=false\nREFACTOR_AUTO_APPROVE=false\nREFACTOR_MAX_REFLECTION_ROUNDS=1\n\n# Pamięć agenta\nMEMORY_PERSIST_DIR=.redsl_memory\n\n# Lokalne modele (Ollama) - wymagają ollama serve\nOLLAMA_HOST=http://localhost:11434\n\n# Timeout dla narzędzi zewnętrznych\nREDSL_REGIX_TIMEOUT=300\n```\n\n### Plik `redsl.yaml` (reguły DSL)\n\n```yaml\nproject:\n  name: my-project\n  source: ./\n  output: ./docs/\n\n# Reguły refaktoryzacji\nrules:\n  - name: high_complexity\n    condition: cyclomatic_complexity \u003e 15\n    action: EXTRACT_FUNCTIONS\n    priority: 0.9\n  \n  - name: unused_imports\n    condition: unused_import_count \u003e 5\n    action: REMOVE_UNUSED_IMPORTS\n    priority: 0.8\n\n# Wykluczenia z analizy\nexclude:\n  - .venv/\n  - venv/\n  - node_modules/\n  - .git/\n  - tests/\n```\n\n## Opcje CLI\n\n```bash\nredsl refactor --help\n\nOptions:\n  -n, --max-actions INTEGER      Maksymalna liczba akcji\n  --dry-run                      Pokaż plan bez aplikowania zmian\n  -f, --format [text|yaml|json]  Format wyjścia\n  --use-code2llm                 Użyj code2llm do percepcji\n  --validate-regix               Walidacja regresji po wykonaniu\n  --rollback                     Auto-rollback przy regresji\n  --sandbox                      Testuj w Docker sandbox\n```\n\n## Struktura projektu\n\n```\nredsl/\n├── redsl/\n│   ├── analyzers/       # Analiza kodu, metryki, code2llm/redup bridge\n│   ├── commands/        # Komendy CLI: batch, pyqual, planfile bridge\n│   ├── dsl/             # Silnik reguł DSL i scoring\n│   ├── llm/             # Warstwa LLM (LiteLLM) + llx router\n│   ├── memory/          # System pamięci (3 warstwy)\n│   ├── refactors/       # Silniki: Direct + LLM + body_restorer\n│   ├── validation/      # regix, vallm, test_runner, sandbox\n│   ├── diagnostics/     # Profilowanie: perf_bridge (metrun)\n│   ├── orchestrator.py  # Główny koordynator pipeline\n│   ├── cli.py           # Punkt wejścia CLI\n│   └── config.py        # AgentConfig, LLMConfig\n├── tests/               # 776+ testów (fast + e2e + integration + Playwright)\n├── examples/            # Przykłady użycia\n├── config/              # Domyślna konfiguracja reguł DSL\n└── pyproject.toml       # Packaging i zależności\n```\n\n## Dokumentacja\n\nSzczegółowa dokumentacja projektów ekosystemu **semcod** dostępna w katalogu [`docs/`](./docs/):\n\n### Narzędzia Core (Pipeline)\n\n| Projekt | Dokumentacja | Opis |\n|---------|--------------|------|\n| **ReDSL** | [`docs/README.md`](./docs/README.md) | Autonomiczny system refaktoryzacji (ten projekt) |\n| **Config Standard** | [`docs/CONFIG_STANDARD.md`](./docs/CONFIG_STANDARD.md) | Bezpieczna konfiguracja YAML + sekrety |\n| **Config Migration** | [`docs/CONFIG_MIGRATION.md`](./docs/CONFIG_MIGRATION.md) | Przewodnik migracji z env vars |\n| **Config Cheatsheet** | [`docs/CONFIG_CHEATSHEET.md`](./docs/CONFIG_CHEATSHEET.md) | Ściągawka komend i referencji |\n| [code2llm](https://github.com/semcod/code2llm) | [`docs/code2llm-analiza-przeplywu-kodu.md`](./docs/code2llm-analiza-przeplywu-kodu.md) | Analiza przepływu kodu, generowanie TOON |\n| [code2logic](https://github.com/semcod/code2logic) | [`docs/code2logic-analiza-nlp.md`](./docs/code2logic-analiza-nlp.md) | NLP dla zapytań o kod (polski/angielski) |\n| [regix](https://github.com/semcod/regix) | [`docs/regix-indeks-regresji.md`](./docs/regix-indeks-regresji.md) | Wykrywanie regresji metryk między commitami |\n| [redup](https://github.com/semcod/redup) | [`docs/redup-detekcja-duplikacji.md`](./docs/redup-detekcja-duplikacji.md) | Detekcja duplikacji na poziomie AST |\n| [pyqual](https://github.com/semcod/pyqual) | [`docs/pyqual-quality-gates.md`](./docs/pyqual-quality-gates.md) | Quality gates: ruff + mypy + bandit |\n| [vallm](https://github.com/semcod/vallm) | [`docs/vallm-walidacja-kodu-llm.md`](./docs/vallm-walidacja-kodu-llm.md) | Walidacja kodu LLM |\n\n### Automatyzacja i CI/CD\n\n| Projekt | Dokumentacja | Opis |\n|---------|--------------|------|\n| [planfile](https://github.com/semcod/planfile) | [`docs/planfile-automatyzacja-sdlc.md`](./docs/planfile-automatyzacja-sdlc.md) | Automatyzacja cyklu SDLC |\n| [goal](https://github.com/semcod/goal) | [`docs/goal-automatyczny-git-push.md`](./docs/goal-automatyczny-git-push.md) | Automatyczne commity i release'y |\n| [domd](https://github.com/semcod/domd) | [`docs/domd-walidacja-komend-markdown.md`](./docs/domd-walidacja-komend-markdown.md) | Walidacja komend w Markdown |\n| [qualbench](https://github.com/semcod/qualbench) | [`docs/qualbench-ci-dla-kodu-ai.md`](./docs/qualbench-ci-dla-kodu-ai.md) | Benchmarki CI dla kodu AI |\n| [weekly](https://github.com/semcod/weekly) | [`docs/weekly-analizator-jakosci.md`](./docs/weekly-analizator-jakosci.md) | Analizator jakości projektu |\n\n### Infrastruktura LLM\n\n| Projekt | Dokumentacja | Opis |\n|---------|--------------|------|\n| [proxym](https://github.com/semcod/proxym) | [`docs/proxym-proxy-ai.md`](./docs/proxym-proxy-ai.md) | Proxy AI z cache'm semantycznym |\n| [llx](https://github.com/semcod/llx) | [`docs/llx-routing-modeli-llm.md`](./docs/llx-routing-modeli-llm.md) | Routing modeli LLM |\n| [prellm](https://github.com/semcod/prellm) | [`docs/prellm-preprocessing-llm.md`](./docs/prellm-preprocessing-llm.md) | Preprocessing zapytań LLM |\n| [algitex](https://github.com/semcod/algitex) | [`docs/algitex-progresywna-algorytmizacja.md`](./docs/algitex-progresywna-algorytmizacja.md) | Progresywna algorytmizacja |\n\n### Narzędzia Deweloperskie\n\n| Projekt | Dokumentacja | Opis |\n|---------|--------------|------|\n| [pfix](https://github.com/semcod/pfix) | [`docs/pfix-self-healing-python.md`](./docs/pfix-self-healing-python.md) | Self-healing Python |\n| [prefact](https://github.com/semcod/prefact) | [`docs/prefact-linter-llm-aware.md`](./docs/prefact-linter-llm-aware.md) | Linter świadomy LLM |\n| [pactfix](https://github.com/semcod/pactfix) | [`docs/pactfix-bash-analyzer.md`](./docs/pactfix-bash-analyzer.md) | Analizator Bash |\n| [clickmd](https://github.com/semcod/clickmd) | [`docs/clickmd-markdown-terminal.md`](./docs/clickmd-markdown-terminal.md) | Markdown w terminalu |\n| [toonic](https://github.com/semcod/toonic) | [`docs/toonic-format-toon.md`](./docs/toonic-format-toon.md) | Format TOON |\n\n### Monitoring i Koszty\n\n| Projekt | Dokumentacja | Opis |\n|---------|--------------|------|\n| [costs](https://github.com/semcod/costs) | [`docs/cost-kalkulator-kosztow-ai.md`](./docs/cost-kalkulator-kosztow-ai.md) | Kalkulator kosztów AI |\n| [nfo](https://github.com/semcod/nfo) | [`docs/nfo-automatyczne-logowanie-funkcji.md`](./docs/nfo-automatyczne-logowanie-funkcji.md) | Auto-logowanie funkcji |\n| [metrun](https://github.com/semcod/metrun) | [`docs/metrun-profilowanie-wydajnosci.md`](./docs/metrun-profilowanie-wydajnosci.md) | Profilowanie wydajności |\n| [ats-benchmark](https://github.com/semcod/ats-benchmark) | [`docs/ats-benchmark.md`](./docs/ats-benchmark.md) | Benchmarki automatyzacji |\n\n### Ekosystem i Biznes\n\n| Projekt | Dokumentacja | Opis |\n|---------|--------------|------|\n| [Ekosystem](https://github.com/semcod) | [`docs/ekosystem-semcod-przeglad.md`](./docs/ekosystem-semcod-przeglad.md) | Przegląd ekosystemu (29 narzędzi) |\n| [Biznes](https://github.com/semcod) | [`docs/zautomatyzowany-biznes-semcod.md`](./docs/zautomatyzowany-biznes-semcod.md) | Model biznesowy Semcod |\n| [code2docs](https://github.com/semcod/code2docs) | [`docs/code2docs-automatyczna-dokumentacja.md`](./docs/code2docs-automatyczna-dokumentacja.md) | Auto-dokumentacja |\n\n### Inne projekty\n\n- [heal](./docs/heal-zdrowie-wellness.md) — Wellness z LLM\n\n---\n\n## License\n\nLicensed under Apache-2.0.\n## Status\n\n_Last updated by [taskill](https://github.com/oqlos/taskill) at 2026-04-25 13:46 UTC_\n\n| Metric | Value |\n|---|---|\n| HEAD | `ddbf5bb` |\n| Coverage | — |\n| Failing tests | — |\n| Commits in last cycle | 50 |\n\n\u003e Mostly documentation fixes and broad refactorings; autonomy_pr was restructured into a package with new analyzer/reporter modules, i18n pricing text improved, and test tooling updated (pytest-xdist / test optimizations).\n\n\u003c!-- taskill:status:end --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsemcod%2Fredsl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsemcod%2Fredsl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsemcod%2Fredsl/lists"}