Uproszczenie wszystkich przykładów w examples/* do jednolitej, prostej postaci opartej na komendach LLX.
- Przykłady używają rozbudowanych skryptów bash
- Każdy przykład ma własną logikę i konfigurację
- Brak spójności między przykładami
- Wszystkie przykłady używają prostych skryptów (max 30 linii)
- Cała logika jest w LLX, nie w skryptach
- Spójny interfejs i użytkowanie
examples/[example-name]/
├── run.sh # Prosty skrypt uruchomieniowy (max 30 linii)
├── README.md # Dokumentacja przykładu
├── QUICKSTART.md # Krótki przewodnik (opcjonalnie)
├── setup-aliases.sh # Alias dla powłoki (opcjonalnie)
└── [example-files] # Pliki specyficzne dla przykładu
Maksymalnie 30 linii, zawiera:
#!/bin/bash
# Kolory i zmienne
DESCRIPTION="${1:-}"
#### 3.1. Komenda `llx plan all`
Musi obsługiwać:
- Dowolny typ projektu (nie tylko API)
- Konfigurację przez zmienne środowiskowe
- Różne profile modeli
- Opcjonalne uruchomienie i monitorowanie
#### 3.2. Konfiguracja domyślna
Wszystkie przykłady powinny używać:
```bash
LLX_DEFAULT_PROFILE=cheap
LLX_DEFAULT_SPRINTS=8
LLX_DEFAULT_FOCUS=[typ-zależny-od-przykładu]Komendy LLX muszą akceptować:
- Różne typy generowanych projektów
- Konfigurację specyficzną dla przykładu
- Opcjonalne parametry przez CLI lub .env
python-api/(już zrefaktoryzowany)fastapi-crud/graphql-api/microservice/
Wymagania:
- Domyślny focus:
api - 8 sprintów (projekt, CRUD, testy, deployment, CI/CD, monitoring, docs, optymalizacja)
- Generowanie: FastAPI, Express, etc.
react-app/vue-dashboard/nextjs-blog/
Wymagania:
- Domyślny focus:
webapp - 6 sprintów (setup, components, routing, state, deployment, optimization)
- Generowanie: React, Vue, Next.js
cli-tool/data-processor/automation-script/
Wymagania:
- Domyślny focus:
cli - 4 sprinty (setup, core logic, cli interface, packaging)
- Generowanie: Python Click, Node.js commander, etc.
data-pipeline/ml-model/analytics-dashboard/
Wymagania:
- Domyślny focus:
datalubml - 6-8 sprintów (data ingestion, processing, model, validation, deployment, monitoring)
- Generowanie: Pandas, Scikit-learn, TensorFlow, etc.
@plan_app.command("all")
def plan_all(
description: str,
output_dir: str = "./my-project",
profile: str = "cheap",
project_type: Optional[str] = None, # NOWE!
framework: Optional[str] = None, # NOWE!
# ... istniejące parametry
):Nowy plik: llx/configs/project_types.yaml
project_types:
api:
default_focus: "api"
default_sprints: 8
frameworks: ["fastapi", "express", "flask", "django"]
webapp:
default_focus: "webapp"
default_sprints: 6
frameworks: ["react", "vue", "nextjs", "angular"]
cli:
default_focus: "cli"
default_sprints: 4
frameworks: ["click", "commander", "clap"]
data:
default_focus: "data"
default_sprints: 6
frameworks: ["pandas", "polars", "spark"]Rozszerzenie llx/configs/planfile_config.yaml:
code:
templates:
api:
sprint_files:
1: {file: "main.py", prompt: "..."}
# ...
webapp:
sprint_files:
1: {file: "App.jsx", prompt: "..."}
# ...Automatyczne wykrywanie na podstawie:
- Nazwy katalogu (
*-api,*-app,*-cli) - Zawartości plików (package.json, requirements.txt)
- Konfiguracji w
.llx-project-type
- Rozszerzyć
llx plan allo parametryproject_typeiframework - Dodać konfigurację typów projektów
- Zaktualizować szablony generowania
- Testy jednostkowe
- Stworzyć listę wszystkich przykładów
- Skategoryzować każdy przykład
- Zrefaktoryzować po 2-3 przykłady dziennie
- Testy integracyjne
- Zaktualizować dokumentację
- Stworzyć przewodnik dla twórców przykładów
- Code review wszystkich zmian
- Wersja 1.0 uproszczonych przykładów
- Wszystkie przykłady mają run.sh < 30 linii
- 100% przykładów używa
llx plan all - Brak logiki biznesowej w skryptach
- Wszystkie konfiguracje w .env lub LLX
- Spójny interfejs we wszystkich przykładach
- Łatwe dodawanie nowych przykładów
- Czytelna dokumentacja
- Przykłady działają "out of the box"
set -e DESCRIPTION="${1:-}" if [ -n "$DESCRIPTION" ]; then llx plan all "$DESCRIPTION" --run else echo "Usage: $0 "description"" fi
### Ryzyko 1: Utrata funkcjonalności
- Mitygacja: Wszystkie funkcje przenoszone do LLX
- Testy: Porównanie output przed/po refaktoryzacji
### Ryzyko 2: Zbyt duże zmiany w LLX
- Mitygacja: Iteracyjne wprowadzanie zmian
- Testy: Comprehensive test suite
### Ryzyko 3: Niekompatybilność wsteczna
- Mitygacja: Zachowanie stych komend jako deprecated
- Dokumentacja: Przewodnik migracji
## Podsumowanie
Refaktoryzacja do uproszczonej postaci zapewni:
1. **Spójność** - wszystkie przykłady działają tak samo
2. **Prostota** - łatwe zrozumienie i modyfikacja
3. **Skalowalność** - łatwo dodawać nowe przykłady
4. **Utrzymanie** - cała logika w LLX, nie w skryptach
Kluczowe jest przeniesienie logiki ze skryptów do LLX i zapewnienie, że `llx plan all` obsługuje wszystkie potrzebne przypadki użycia.