goon/CLAUDE.md
jtrzupek 9c49a69a66 feat(seo): public HTML SEO router + templates; add CLAUDE.md; ignore .nimbalyst
- app/api/seo.py (+ app/templates/seo/*): publiczny HTML SEO router (programmatic
  entity long-tail: performer/studio/scene/landing/2257), bez api-key. Importowany
  przez main.py — wymagany do uruchomienia, dotąd untracked. Opsec-clean (brak
  VPS IP/sekretów).
- CLAUDE.md: instrukcje projektu (dotąd untracked).
- .gitignore: .nimbalyst/ (lokalne tracker-tooling, nie dla OSS repo).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 16:29:59 +02:00

1.4 KiB

Goon

Self-hosted aggregator of adult-content scene metadata. Multi-source ingest (TPDB, StashDB, 30+ tubes) → dedup → on-demand stream resolution (yt-dlp + JWPlayer unpacker) → API + Expo mobile client.

Stack: Python 3.12 (FastAPI + SQLAlchemy + Alembic), Postgres 16, React Native (Expo), Docker Compose. Git: github.com/goon-foss/goon (remote: goonfoss). Public OSS repo. 18+ — see DISCLAIMER.md.


Kanban (auto-aggregation)

Ten workspace ma własny Kanban (custom tracker type kanban w .nimbalyst/trackers/kanban.yaml) z kolumnami:

Backlog → Następne → W trakcie → Czeka → Zrobione

Reguła auto-agregacji — WAŻNE

Kiedy podczas sesji pojawi się nowy temat / bug / pomysł / blocker, na który nie ma teraz czasu lub jest poboczny względem aktualnego zadania — utwórz tracker item zamiast tylko wspomnieć o nim w czacie:

mcp__nimbalyst-mcp__tracker_create(
  type: "kanban",
  title: "<krótki tytuł>",
  status: "backlog",
  description: "<1-2 zdania kontekstu + ścieżka pliku jeśli dotyczy>"
)

Powód: Jan często skupia się na pierwszej rzeczy z planu, a pozostałe znikają. Kanban jest gwarancją, że nic nie wypadnie. Jeśli wspomnisz coś w czacie i nie założysz ticketu — to się zgubi.

Status next = "wybrane na najbliższe dni" (3-5 max). waiting = zablokowane na zewnętrzne. done ustawia użytkownik, nigdy AI.