update
This commit is contained in:
parent
8f946beaac
commit
ce49122b35
40
memory/log/2026-02-04_project-structure-refactoring.md
Normal file
40
memory/log/2026-02-04_project-structure-refactoring.md
Normal file
@ -0,0 +1,40 @@
|
||||
# LOG: Project Structure Refactoring - 2026-02-04
|
||||
|
||||
## Context
|
||||
Umstrukturierung des Vaults zur besseren Organisation projektspezifischer Dateien.
|
||||
|
||||
## Problem
|
||||
- Memory-Dateien lagen unter `/memory/projects/<name>.md` (flache Struktur)
|
||||
- Keine Möglichkeit, zusätzliche projektspezifische Dateien (CLAUDE.md, INSTRUCTIONS.md) zu organisieren
|
||||
- Semantische Vermischung: "Memory" als Container für Projekte war unintuitiv
|
||||
|
||||
## Solution
|
||||
1. Neuer `/projects/` Top-Level-Ordner erstellt
|
||||
2. Unterordner pro Projekt: `projects/<projekt-name>/`
|
||||
3. Standardisierte Dateinamen: `MEMORY.md`, `CLAUDE.md`, `INSTRUCTIONS.md`
|
||||
|
||||
## Changes
|
||||
```diff
|
||||
- memory/projects/ligalytics-staffeleinteilung.md
|
||||
+ projects/ligalytics-staffeleinteilung/MEMORY.md
|
||||
```
|
||||
|
||||
## Lessons Learned
|
||||
|
||||
### Was funktionierte gut
|
||||
- **Atomic Migration**: Pfad-Änderung + Script-Update + Daten-Migration in einer Session
|
||||
- **mkdir -p Pattern**: Auto-Create im Sync-Script verhindert manuelle Ordner-Erstellung
|
||||
- **Template-Based Snapshots**: Wiederverwendbares Format für konsistente Dokumentation
|
||||
|
||||
### Potenzielle Verbesserungen
|
||||
- Script könnte erweitert werden für CLAUDE.md / INSTRUCTIONS.md Sync
|
||||
- `.gitignore` für sensible Projekt-Daten in Betracht ziehen
|
||||
- Überlegen: Projekt-Metadaten in eigener `project.yaml` speichern?
|
||||
|
||||
## Impact
|
||||
- ✅ Bessere Skalierbarkeit für viele Projekte
|
||||
- ✅ Klare Trennung zwischen globalem Memory und Projekt-Kontext
|
||||
- ✅ Erweiterbar für zukünftige projektspezifische Dateien
|
||||
|
||||
## Tags
|
||||
`#vault-structure` `#refactoring` `#projects` `#memory` `#scripts`
|
||||
54
memory/snapshots/2026-02-04_vault-restructuring.md
Normal file
54
memory/snapshots/2026-02-04_vault-restructuring.md
Normal file
@ -0,0 +1,54 @@
|
||||
# SNAPSHOT: Vault Restructuring - 2026-02-04
|
||||
|
||||
## 1. STATUS QUO
|
||||
|
||||
### Erreichte Ziele
|
||||
- ✅ Neuen `/projects/` Ordner erstellt für projektspezifische Dateien
|
||||
- ✅ Global-Instructions erweitert mit Projekt-Spiegelungs-Regeln
|
||||
- ✅ Sync-Script (`sync-project-memory.sh`) auf neue Pfadstruktur migriert
|
||||
- ✅ Existierende Memory-Datei (`ligalytics-staffeleinteilung.md`) erfolgreich migriert
|
||||
|
||||
### Veränderte Dateien
|
||||
- **system/global-instructions.md**: Neuer Abschnitt "PROJEKT-SPIEGELUNG"
|
||||
- **scripts/sync-project-memory.sh**: Pfad-Updates, Auto-Create für Projekt-Verzeichnisse
|
||||
- **memory/projects/** → **projects/**: Strukturänderung
|
||||
|
||||
### Neue Struktur
|
||||
```
|
||||
projects/
|
||||
├── ligalytics-staffeleinteilung/
|
||||
│ ├── MEMORY.md (migriert, 1.8 KB)
|
||||
│ ├── CLAUDE.md (optional, zukünftig)
|
||||
│ └── INSTRUCTIONS.md (optional, zukünftig)
|
||||
└── [weitere-projekte]/
|
||||
```
|
||||
|
||||
## 2. TECHNISCHE ENTSCHEIDUNGEN
|
||||
|
||||
### Warum `/projects/` statt `/memory/projects/`?
|
||||
- **Semantische Klarheit**: Projekte sind keine "Memory", sondern eigenständige Kontexte
|
||||
- **Erweiterbarkeit**: Projektordner können nun MEMORY.md, CLAUDE.md und INSTRUCTIONS.md enthalten
|
||||
- **Konsistenz**: Flache Struktur (`/skills/`, `/agents/`, `/projects/`) statt verschachtelt
|
||||
|
||||
### Warum Unterordner pro Projekt?
|
||||
- Erlaubt mehrere Dateitypen pro Projekt (MEMORY.md, CLAUDE.md, etc.)
|
||||
- Bessere Skalierbarkeit bei vielen Projekten
|
||||
- Klare Namenskonvention: `projects/<projekt-name>/MEMORY.md`
|
||||
|
||||
## 3. NEXT STEPS (Dringend)
|
||||
|
||||
- [ ] Ersten Memory-Log für diese Session erstellen
|
||||
- [ ] `vault-index.md` aktualisieren (Pfad-Änderung dokumentieren)
|
||||
- [ ] Sync-Script testen: `./scripts/sync-project-memory.sh --dry-run`
|
||||
- [ ] Optional: CLAUDE.md für ligalytics-staffeleinteilung aus `~/.claude/projects/` spiegeln
|
||||
|
||||
## 4. BLOCKER / OFFENE FRAGEN
|
||||
|
||||
### Zu klären
|
||||
- Soll das Sync-Script auch CLAUDE.md und INSTRUCTIONS.md synchronisieren?
|
||||
- Sollen alte `/memory/log/` Einträge in die neue Struktur migriert werden?
|
||||
- Git-Commit für diese Änderungen erstellen?
|
||||
|
||||
### Testing Required
|
||||
- Sync-Script mit existierenden Claude-Projekten testen
|
||||
- Prüfen ob `.gitignore` für Projects-Ordner sinnvoll ist (je nach Sensitivität)
|
||||
31
projects/ligalytics-staffeleinteilung/MEMORY.md
Normal file
31
projects/ligalytics-staffeleinteilung/MEMORY.md
Normal file
@ -0,0 +1,31 @@
|
||||
# Ligalytics Staffeleinteilung - Memory
|
||||
|
||||
## Projekt-Setup
|
||||
- **Docker-basiertes Backend**: PostgreSQL 16 + Django 6.0+ (docker-compose.yml mit health checks)
|
||||
- **Frontend**: Next.js 16 mit React 19, TanStack Query für Server State
|
||||
- **API-Pattern**: DRF mit @api_view Decorators (NICHT ViewSets!) - Function-based Views
|
||||
- **Code Style**: Ruff (Python, 120 chars, single quotes), Prettier (TS/JS, 2 spaces)
|
||||
|
||||
## Wichtige Patterns
|
||||
- **Makefile-Befehle**: Alle Django-Operationen über `make migrate`, `make test`, etc.
|
||||
- **App-Struktur**: core (Club/Team/Stadium), scenarios (Competition/Scenario/Solution/Group), users
|
||||
- **Dokumentation**: CLAUDE.md ist Source of Truth für Entwicklungs-Workflows
|
||||
- **Docker Services**: db (PostgreSQL) + web (Django) mit Volume-Mount für Hot-Reload
|
||||
|
||||
## Häufige Operationen
|
||||
- Backend-Tests einzelner Apps: `docker compose exec web python manage.py test apps.core`
|
||||
- Spezifische Test-Datei: `docker compose exec web python manage.py test apps.scenarios.tests.test_views`
|
||||
- API-Dokumentation: http://localhost:8000/api/docs/ (Swagger UI via drf-spectacular)
|
||||
- Django Shell: `make shell` (im /server Verzeichnis)
|
||||
|
||||
## Zu vermeiden
|
||||
- SQLite in Produktion (nur Development)
|
||||
- ViewSets/Routers statt @api_view (Projekt-Standard ist Function-based Views)
|
||||
- Generische Annahmen - immer CLAUDE.md und spezifische Dokumentation prüfen
|
||||
- Breaking Changes ohne Dokumentations-Update
|
||||
|
||||
## Architektur-Kontext
|
||||
- **DFB SPB2 Integration**: System ist Teil der "Spielbetrieb 2.0" Initiative
|
||||
- **Datenfluss**: DFBnet (Hinweg) → Ligalytics Optimierung → DFBnet (Rückweg)
|
||||
- **Optimierungs-Engine**: Mathematische Solver-Integration für Staffeleinteilung geplant
|
||||
- **Business Domain**: Fußball-Ligaverwaltung mit Hard Constraints (Staffelgrößen, Vereinstrennung)
|
||||
64
scripts/README.md
Normal file
64
scripts/README.md
Normal file
@ -0,0 +1,64 @@
|
||||
# Vault Scripts
|
||||
|
||||
Automatisierungsscripts für Vault-Wartung und Synchronisation.
|
||||
|
||||
## 🔄 sync-project-memory.sh
|
||||
|
||||
Synchronisiert projekt-spezifische MEMORY.md Dateien zwischen:
|
||||
- **Claude-Projekt**: `~/.claude/projects/<normalized-path>/memory/MEMORY.md`
|
||||
- **Vault-Backup**: `~/Work/claude-vault/memory/projects/<project-name>.md`
|
||||
|
||||
### Quick Start
|
||||
|
||||
```bash
|
||||
# Alle Projekte synchronisieren (Auto-Detect neuer Version)
|
||||
~/Work/claude-vault/scripts/sync-project-memory.sh
|
||||
|
||||
# Nur ein spezifisches Projekt
|
||||
~/Work/claude-vault/scripts/sync-project-memory.sh ligalytics-staffeleinteilung
|
||||
|
||||
# Dry-Run (zeigt nur an, was gemacht würde)
|
||||
~/Work/claude-vault/scripts/sync-project-memory.sh --dry-run
|
||||
```
|
||||
|
||||
### Optionen
|
||||
|
||||
| Option | Beschreibung |
|
||||
|--------|--------------|
|
||||
| `--to-vault` | Erzwinge Kopie: Claude-Projekt → Vault |
|
||||
| `--from-vault` | Erzwinge Kopie: Vault → Claude-Projekt |
|
||||
| `--dry-run` | Zeige nur Sync-Plan ohne Ausführung |
|
||||
| `-h, --help` | Zeige Hilfe |
|
||||
|
||||
### Wie es funktioniert
|
||||
|
||||
1. **Auto-Detect**: Vergleicht Timestamps beider Dateien
|
||||
2. **Neuer gewinnt**: Kopiert die neuere Version über die ältere
|
||||
3. **Sicher**: Zeigt immer an, was passiert
|
||||
|
||||
### Alias einrichten (optional)
|
||||
|
||||
Füge in deine `~/.zshrc` oder `~/.bashrc` ein:
|
||||
|
||||
```bash
|
||||
alias sync-memory='~/Work/claude-vault/scripts/sync-project-memory.sh'
|
||||
```
|
||||
|
||||
Dann kannst du einfach `sync-memory` aufrufen.
|
||||
|
||||
### Git Workflow
|
||||
|
||||
Nach dem Sync kannst du Änderungen committen:
|
||||
|
||||
```bash
|
||||
cd ~/Work/claude-vault
|
||||
git add memory/projects/
|
||||
git commit -m "Update project memories"
|
||||
git push
|
||||
```
|
||||
|
||||
## Weitere Scripts (in Planung)
|
||||
|
||||
- `audit-skills.sh` - Prüft alle SKILL.md Dateien auf Vollständigkeit
|
||||
- `extract-patterns.sh` - Extrahiert Patterns aus Session-Logs
|
||||
- `vault-backup.sh` - Erstellt timestamped Backup des gesamten Vaults
|
||||
180
scripts/sync-project-memory.sh
Executable file
180
scripts/sync-project-memory.sh
Executable file
@ -0,0 +1,180 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 🔄 MEMORY.md SYNC SCRIPT
|
||||
# Synchronisiert Projekt-spezifische MEMORY.md zwischen ~/.claude/projects/ und dem Vault
|
||||
|
||||
set -e
|
||||
|
||||
VAULT_DIR="$HOME/Work/claude-vault"
|
||||
PROJECTS_DIR="$HOME/.claude/projects"
|
||||
|
||||
# Farben für Output
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
usage() {
|
||||
cat << EOF
|
||||
Usage: $0 [PROJECT_NAME] [OPTIONS]
|
||||
|
||||
Synchronisiert MEMORY.md zwischen Claude-Projekt und Vault.
|
||||
|
||||
ARGUMENTS:
|
||||
PROJECT_NAME Name der Projekt-MEMORY.md im Vault (z.B. ligalytics-staffeleinteilung)
|
||||
Ohne Angabe: Alle Projekte synchronisieren
|
||||
|
||||
OPTIONS:
|
||||
--to-vault Erzwinge Kopie: Claude-Projekt → Vault (überschreibt Vault)
|
||||
--from-vault Erzwinge Kopie: Vault → Claude-Projekt (überschreibt Projekt)
|
||||
--dry-run Zeige nur an, was gemacht würde
|
||||
-h, --help Zeige diese Hilfe
|
||||
|
||||
EXAMPLES:
|
||||
$0 # Sync alle Projekte (Auto-Detect neuer)
|
||||
$0 ligalytics-staffeleinteilung # Sync nur dieses Projekt
|
||||
$0 ligalytics-staffeleinteilung --to-vault # Force: Projekt → Vault
|
||||
$0 --dry-run # Zeige Sync-Plan ohne Ausführung
|
||||
|
||||
VAULT STRUCTURE:
|
||||
Vault: $VAULT_DIR/projects/<project-name>/MEMORY.md
|
||||
Claude: $PROJECTS_DIR/<normalized-path>/memory/MEMORY.md
|
||||
|
||||
EOF
|
||||
exit 0
|
||||
}
|
||||
|
||||
# Parse Arguments
|
||||
PROJECT_NAME=""
|
||||
FORCE_DIRECTION=""
|
||||
DRY_RUN=false
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
-h|--help)
|
||||
usage
|
||||
;;
|
||||
--to-vault)
|
||||
FORCE_DIRECTION="to-vault"
|
||||
shift
|
||||
;;
|
||||
--from-vault)
|
||||
FORCE_DIRECTION="from-vault"
|
||||
shift
|
||||
;;
|
||||
--dry-run)
|
||||
DRY_RUN=true
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
PROJECT_NAME="$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
sync_project() {
|
||||
local project_name="$1"
|
||||
local vault_file="$VAULT_DIR/projects/${project_name}/MEMORY.md"
|
||||
|
||||
# Finde entsprechendes Claude-Projekt
|
||||
local claude_file=""
|
||||
for dir in "$PROJECTS_DIR"/*; do
|
||||
if [ -f "$dir/memory/MEMORY.md" ]; then
|
||||
# Prüfe ob Projekt-Name im Pfad vorkommt
|
||||
if [[ "$(basename "$dir")" == *"${project_name//-/}"* ]] || [ -z "$PROJECT_NAME" ]; then
|
||||
claude_file="$dir/memory/MEMORY.md"
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# Wenn PROJECT_NAME gegeben, aber kein Claude-File gefunden: Suche exakt
|
||||
if [ -n "$PROJECT_NAME" ] && [ -z "$claude_file" ]; then
|
||||
# Versuche direkte Zuordnung (für ligalytics-staffeleinteilung → *ligalytics*staffeleinteilung*)
|
||||
for dir in "$PROJECTS_DIR"/*; do
|
||||
if [ -f "$dir/memory/MEMORY.md" ]; then
|
||||
local normalized=$(basename "$dir")
|
||||
if [[ "$normalized" == *"ligalytics"* ]] && [[ "$normalized" == *"staffeleinteilung"* ]]; then
|
||||
claude_file="$dir/memory/MEMORY.md"
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [ ! -f "$vault_file" ] && [ ! -f "$claude_file" ]; then
|
||||
echo -e "${YELLOW}⚠ Skipped: ${project_name} (keine Dateien gefunden)${NC}"
|
||||
return
|
||||
fi
|
||||
|
||||
# Bestimme Sync-Richtung
|
||||
local direction=""
|
||||
|
||||
if [ -n "$FORCE_DIRECTION" ]; then
|
||||
direction="$FORCE_DIRECTION"
|
||||
elif [ ! -f "$vault_file" ]; then
|
||||
direction="to-vault"
|
||||
echo -e "${YELLOW}→ ${project_name}: Vault-Datei fehlt, kopiere von Claude${NC}"
|
||||
elif [ ! -f "$claude_file" ]; then
|
||||
direction="from-vault"
|
||||
echo -e "${YELLOW}→ ${project_name}: Claude-Datei fehlt, kopiere von Vault${NC}"
|
||||
else
|
||||
# Vergleiche Timestamps
|
||||
local vault_time=$(stat -f %m "$vault_file" 2>/dev/null || stat -c %Y "$vault_file")
|
||||
local claude_time=$(stat -f %m "$claude_file" 2>/dev/null || stat -c %Y "$claude_file")
|
||||
|
||||
if [ "$vault_time" -gt "$claude_time" ]; then
|
||||
direction="from-vault"
|
||||
echo -e "${GREEN}→ ${project_name}: Vault neuer ($(date -r "$vault_time" '+%Y-%m-%d %H:%M'))${NC}"
|
||||
elif [ "$claude_time" -gt "$vault_time" ]; then
|
||||
direction="to-vault"
|
||||
echo -e "${GREEN}→ ${project_name}: Claude neuer ($(date -r "$claude_time" '+%Y-%m-%d %H:%M'))${NC}"
|
||||
else
|
||||
echo -e "${GREEN}✓ ${project_name}: Bereits synchron${NC}"
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
# Führe Sync aus
|
||||
if [ "$DRY_RUN" = true ]; then
|
||||
if [ "$direction" = "to-vault" ]; then
|
||||
echo -e " ${YELLOW}[DRY-RUN]${NC} cp $claude_file → $vault_file"
|
||||
else
|
||||
echo -e " ${YELLOW}[DRY-RUN]${NC} cp $vault_file → $claude_file"
|
||||
fi
|
||||
else
|
||||
if [ "$direction" = "to-vault" ]; then
|
||||
# Erstelle Projekt-Verzeichnis falls nötig
|
||||
mkdir -p "$(dirname "$vault_file")"
|
||||
cp "$claude_file" "$vault_file"
|
||||
echo -e " ${GREEN}✓ Kopiert:${NC} Claude → Vault"
|
||||
else
|
||||
cp "$vault_file" "$claude_file"
|
||||
echo -e " ${GREEN}✓ Kopiert:${NC} Vault → Claude"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Main Logic
|
||||
echo -e "${GREEN}🔄 MEMORY.md SYNC${NC}"
|
||||
echo "========================================"
|
||||
|
||||
if [ -n "$PROJECT_NAME" ]; then
|
||||
# Sync einzelnes Projekt
|
||||
sync_project "$PROJECT_NAME"
|
||||
else
|
||||
# Sync alle Projekte im Vault
|
||||
echo "Synchronisiere alle Projekte..."
|
||||
echo ""
|
||||
|
||||
for project_dir in "$VAULT_DIR/projects"/*; do
|
||||
if [ -d "$project_dir" ] && [ -f "$project_dir/MEMORY.md" ]; then
|
||||
project_name=$(basename "$project_dir")
|
||||
sync_project "$project_name"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo -e "${GREEN}✓ Sync abgeschlossen${NC}"
|
||||
@ -1,6 +1,7 @@
|
||||
---
|
||||
|
||||
## name: global-instructions
|
||||
|
||||
type: system
|
||||
|
||||
# IDENTITÄT & MISSION
|
||||
@ -9,7 +10,7 @@ Du bist mein primärer KI-Agent. Dein Ziel ist es, unter Nutzung des "Claude-Vau
|
||||
|
||||
# DER VAULT (DEINE QUELLE DER WAHRHEIT)
|
||||
|
||||
Du hast permanenten Zugriff auf mein Git-Repository unter `~/Work/claude-vault`.
|
||||
Du hast permanenten Zugriff auf mein Git-Repository unter `~/Work/claude-vault`.
|
||||
|
||||
1. **Zuerst Prüfen:** Bevor du Code schreibst, scanne `/knowledge/anti-patterns/` und `/memory/patterns.md`.
|
||||
2. **Memory:** Schreibe nach jeder signifikanten Entscheidung einen Log in `/memory/log/`.
|
||||
@ -19,6 +20,17 @@ Du hast permanenten Zugriff auf mein Git-Repository unter `~/Work/claude-vault`.
|
||||
6. **Agents:** Agenten in `/agents`. Nutze diese proaktiv.
|
||||
7. **System:** Globale Regeln (diese Datei) in `/system`.
|
||||
8. **Knowledge:** Dokumentationen und Präferenzen in `/knowledge`.
|
||||
9. **Projects:** Projektspezifische Dateien in `/projects/<projekt-name>/`.
|
||||
|
||||
# PROJEKT-SPIEGELUNG
|
||||
|
||||
Projektspezifische Dateien aus `~/.claude/projects/` sollen im Vault gespiegelt werden:
|
||||
|
||||
- **MEMORY.md**: `~/.claude/projects/<normalized-path>/memory/MEMORY.md` → `/projects/<projekt-name>/MEMORY.md`
|
||||
- **CLAUDE.md**: Projektspezifische Instruktionen → `/projects/<projekt-name>/CLAUDE.md`
|
||||
- **INSTRUCTIONS.md**: Alternative Instruktionsdatei → `/projects/<projekt-name>/INSTRUCTIONS.md`
|
||||
|
||||
**Synchronisation:** Nutze `/scripts/sync-project-memory.sh` für bidirektionale Syncs. Das Script erkennt automatisch die neuere Version und synchronisiert entsprechend.
|
||||
|
||||
# VERHALTENSREGELN
|
||||
|
||||
|
||||
@ -13,18 +13,18 @@ Dieses Repository ist das zentrale Gedächtnis und die Werkzeugkiste für meine
|
||||
## 🛠️ SKILLS (Spezialisierte Fähigkeiten)
|
||||
*Pfad: `/skills/`*
|
||||
|
||||
### League-Planner Skills (lp-*)
|
||||
### League-Planner Skills
|
||||
Spezialisiert auf das Django-basierte Liga-Planungssystem:
|
||||
|
||||
| Skill | Beschreibung | Invocation |
|
||||
|-------|--------------|------------|
|
||||
| **[lp-django-model](./skills/django-model/SKILL.md)** | Django 5.2 Models mit Fat Model Pattern, Custom Managers | `/lp-django-model` |
|
||||
| **[lp-drf-api](./skills/drf-api/SKILL.md)** | DRF API Endpoints mit @api_view, drf-spectacular | `/lp-drf-api` |
|
||||
| **[lp-celery-task](./skills/celery-task/SKILL.md)** | Celery 5.5 Tasks mit AbortableTask, Progress Tracking | `/lp-celery-task` |
|
||||
| **[lp-permissions](./skills/permissions/SKILL.md)** | Multi-Tier Permissions mit Decorators, Session-based Access | `/lp-permissions` |
|
||||
| **[lp-query-optimizer](./skills/query-optimizer/SKILL.md)** | N+1 Query Fixes, select_related/prefetch_related | `/lp-query-optimizer` |
|
||||
| **[lp-solver](./skills/solver/SKILL.md)** | PuLP/Xpress MIP Solver Integration | `/lp-solver` |
|
||||
| **[lp-testing](./skills/testing/SKILL.md)** | Django TestCase mit Multi-DB Support, CRUD Tags | `/lp-testing` |
|
||||
| **[django-model](./skills/django-model/SKILL.md)** | Django 5.2 Models mit Fat Model Pattern, Custom Managers | `/django-model` |
|
||||
| **[drf-api](./skills/drf-api/SKILL.md)** | DRF API Endpoints mit @api_view, drf-spectacular | `/drf-api` |
|
||||
| **[celery-task](./skills/celery-task/SKILL.md)** | Celery 5.5 Tasks mit AbortableTask, Progress Tracking | `/celery-task` |
|
||||
| **[permissions](./skills/permissions/SKILL.md)** | Multi-Tier Permissions mit Decorators, Session-based Access | `/permissions` |
|
||||
| **[query-optimizer](./skills/query-optimizer/SKILL.md)** | N+1 Query Fixes, select_related/prefetch_related | `/query-optimizer` |
|
||||
| **[solver](./skills/solver/SKILL.md)** | PuLP/Xpress MIP Solver Integration | `/solver` |
|
||||
| **[testing](./skills/testing/SKILL.md)** | Django TestCase mit Multi-DB Support, CRUD Tags | `/testing` |
|
||||
|
||||
### Allgemeine Skills
|
||||
| Skill | Beschreibung | Invocation |
|
||||
@ -62,6 +62,20 @@ Spezialisiert auf das Django-basierte Liga-Planungssystem:
|
||||
|
||||
---
|
||||
|
||||
## 📁 PROJECTS (Projekt-spezifische Kontexte)
|
||||
*Pfad: `/projects/`*
|
||||
|
||||
| Projekt | Beschreibung |
|
||||
|---------|--------------|
|
||||
| **[ligalytics-staffeleinteilung](./projects/ligalytics-staffeleinteilung/)** | Django Liga-Planungssystem: MEMORY.md, CLAUDE.md (optional) |
|
||||
|
||||
Jedes Projekt-Verzeichnis kann enthalten:
|
||||
- `MEMORY.md`: Auto-Memory für das Projekt (Sync via `sync-project-memory.sh`)
|
||||
- `CLAUDE.md`: Projektspezifische Instruktionen
|
||||
- `INSTRUCTIONS.md`: Alternative Instruktionsdatei
|
||||
|
||||
---
|
||||
|
||||
## 🧠 MEMORY (Erfahrungen & Muster)
|
||||
*Pfad: `/memory/`*
|
||||
|
||||
@ -101,4 +115,27 @@ Der **Vault Janitor** (`/vault-janitor`) ist verantwortlich für:
|
||||
|
||||
---
|
||||
|
||||
## 🤖 SCRIPTS (Automatisierung)
|
||||
*Pfad: `/scripts/`*
|
||||
|
||||
| Script | Beschreibung | Usage |
|
||||
|--------|--------------|-------|
|
||||
| **[sync-project-memory.sh](./scripts/sync-project-memory.sh)** | Sync MEMORY.md zwischen Claude-Projekten und Vault | `~/Work/claude-vault/scripts/sync-project-memory.sh` |
|
||||
|
||||
Siehe [scripts/README.md](./scripts/README.md) für Details.
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
## 📊 CHANGELOG
|
||||
|
||||
### 2026-02-04: Project Structure Refactoring
|
||||
- ✨ Neuer `/projects/` Ordner für projektspezifische Dateien
|
||||
- 🔄 Migration: `memory/projects/*.md` → `projects/*/MEMORY.md`
|
||||
- 📝 Updated: `sync-project-memory.sh` für neue Struktur
|
||||
- 📚 Erste Snapshots und Logs erstellt
|
||||
|
||||
---
|
||||
|
||||
*Letzte Aktualisierung: 2026-02-04*
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user