- 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>
31 lines
1.4 KiB
Markdown
31 lines
1.4 KiB
Markdown
# 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.
|