Fix OAuth PKCE "Session not found" or "No code verifier" errors in SPAs after redirect from external auth server. Use when: (1) OAuth callback fails with session/verifier not found despite flow starting correctly, (2) PKCE code_verifier stored in sessionStorage is missing after redirect back from auth server, (3) Error only happens in production or cross-origin redirects, not in local dev. Root cause: sessionStorage is lost when the browser opens a new tab, changes browsing context, or certain browsers clear it during cross-origin navigation. Fix: use localStorage instead (clean up after exchange).
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Investigate a GitHub issue and produce a structured implementation plan. Fetches issue details, explores the codebase, identifies affected layers (UI, BLoC, Repository, Client), and outputs a step-by-step plan with files to modify, testing strategy, and risk assessment. Works for bugs, features, and tasks. Invoke with /plan.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Fix Monte Carlo project completion simulations that give identical dates for all sub-groups (milestones, priorities, epics). Use when: (1) All sub-group predictions converge to the same date despite different remaining counts, (2) Proportional throughput scaling produces flat/identical results, (3) Applying overall scope rate to individual sub-groups causes simulations to hit max_weeks cap and never converge, (4) Building project forecasting tools that predict completion for sub-groups of a larger backlog. Covers hypergeometric draw model for milestones and cumulative priority model for sequential priorities.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Fix iOS AVPlayer "CoreMediaErrorDomain error -12939 - byte range length mismatch" or similar video streaming failures when a proxy/edge/CDN service sits between the client and object storage (GCS, S3, R2). Use when: (1) iOS video fails with -12939 "byte range length mismatch - should be length 2 is length N", (2) curl with Range: bytes=0-1 returns full file instead of 2 bytes, (3) one URL path works with Range but another path to the same storage doesn't, (4) proxy advertises Accept-Ranges: bytes but returns 200 with full file for range requests. The root cause is typically a proxy handler that constructs a new request to the backend without forwarding the client's Range header.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Fix black camera/microphone preview in Flutter macOS apps launched via `flutter run` from a terminal emulator (cmux, iTerm, Terminal.app, VS Code integrated terminal, Cursor, etc.). Use when: (1) camera plugin reports initialized but preview is black with no frames, (2) logs show "initialization completed via timeout" or similar first-frame timeout fallback, (3) AVCaptureSession.startRunning() returns without error but zero frames arrive, (4) the app's Info.plist has NSCameraUsageDescription and entitlements (com.apple.security.device.camera, audio-input) are correctly set, (5) no permission dialog ever appears, (6) same failure mode for microphone. Root cause is macOS TCC attributing camera/mic requests to the *responsible process* (the parent terminal) rather than the Flutter app itself. TCC refuses to prompt because the terminal is hardened-runtime without a camera entitlement, and silently denies. Not a bug in the camera plugin — would reproduce with ANY camera code.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Fix psycopg2 "IndexError: tuple index out of range" when using LIKE with parameterized queries. Use when: (1) cursor.execute() fails with IndexError on a query containing LIKE '%pattern%', (2) SQL LIKE wildcards conflict with psycopg2 %s parameter placeholders, (3) Query works in psql but fails in Python. The % character has dual meaning: SQL LIKE wildcard AND psycopg2's parameter substitution marker.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Fix NIP-98 HTTP authentication 401 errors caused by URL mismatch between the `u` tag and what the server expects. Use when: (1) NIP-98 auth returns 401 with "URL mismatch" error, (2) Token creation succeeds but server rejects authentication, (3) Server logs show expected vs actual URL difference. CRITICAL: Server implementations vary - some strip query params, some don't. Check the actual error message to determine which behavior applies.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Fix macOS app hard crashes (EXC_CRASH / SIGKILL) caused by accessing TCC-protected APIs without the matching Info.plist usage description key. Use when: (1) App crashes immediately when touching Photos, Contacts, Calendar, Reminders, Location, Microphone, Camera, Screen Recording, etc., (2) Crash report shows `Exception: EXC_CRASH (SIGKILL)` with `Termination namespace: TCC`, (3) Crash stack includes `TCC.__TCC_CRASHING_DUE_TO_PRIVACY_VIOLATION__`, (4) Termination details contain "This app has crashed because it attempted to access privacy-sensitive data without a usage description", (5) Flutter macOS publish / gallery-save flow crashes on Gal.putVideo, PHPhotoLibrary, CNContactStore, etc. Critical distinction: macOS does NOT return a deny error — it SIGKILLs the process. This skill also covers the NSPhotoLibraryUsageDescription vs NSPhotoLibraryAddUsageDescription distinction that trips many apps.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Fix "Failed to load video" errors when network requests succeed (200/206 status). Use when: (1) Video element shows error but DevTools shows successful requests, (2) Videos download correctly via curl but fail in browser, (3) Range requests work but video won't play, (4) Building CDN/media server for video streaming. The root cause is often missing Accept-Ranges header which browsers need for video seeking and streaming.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Fix content serving failures caused by metadata (KV store, database) being out of sync with actual storage (GCS, S3, filesystem). Use when: (1) Content exists in storage but API returns "processing" or "not ready", (2) Webhook callbacks that update metadata failed silently, (3) Backfill scripts generated content but didn't update status records, (4) HLS/transcoded content exists but transcode_status is not "Complete", (5) Handler checks metadata status BEFORE checking if content actually exists in storage.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Fix duplicate Nostr events (Kind 30000+ parameterized replaceable events) caused by missing d-tag. Use when: (1) Same content appears multiple times on relay for same pubkey, (2) Events aren't being replaced/updated as expected, (3) Publishing NIP-71 video events (Kind 34236) or other addressable events and seeing duplicates. The d-tag is REQUIRED for addressability - without it, each publish creates a new non-replaceable event.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Create well-structured GitHub issues following the Epic > Feature > Task/Bug hierarchy. Uses GitHub issue types (not labels) and relationships to connect related issues. Invoke with /github-issue.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Fix git pre-commit hook failures in Flutter projects when using git worktrees. Use when: (1) Pre-commit hook with `flutter analyze` fails during `git commit` but passes when run manually, (2) Hook output shows "Resolving dependencies..." then immediately fails with no actual analysis errors, (3) Working in a git worktree (created via `git worktree add`). Root cause: git sets GIT_DIR to a worktree-style path during hook execution, which breaks `flutter pub get` (called internally by `flutter analyze`). Fix: unset GIT_DIR, GIT_INDEX_FILE, and GIT_WORK_TREE before flutter/dart commands in the hook.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Fix Gorse 0.5.x recommendation engine silently disabled or degraded due to config incompatibility with 0.4. Use when: (1) Gorse 0.5 recommendations are poor/empty despite having data, (2) collaborative filtering appears disabled even though [recommend.collaborative] section exists, (3) migrating Gorse config from 0.4 to 0.5, (4) old config keys like [recommend.popular], [recommend.neighbors], [recommend.online], [recommend.offline] are being used with Gorse 0.5. Critical: type="mf" must be explicitly set in [recommend.collaborative] or CF is silently disabled (default "none").
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Select appropriate Ollama models for processing sensitive but legal content. Use when: (1) llama3.2 or deepseek-r1 refuses to process content with "I cannot assist" responses, (2) Local LLM returns generic safety disclaimers instead of following instructions, (3) Need to process adult content, sex work data, or other legal-but-sensitive material through a local LLM. Also covers using /api/chat vs /api/generate for system prompt support, and structuring prompts for consistent format compliance.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Fix Cloudflare Workers Error 1101 "Worker threw exception" caused by Hono sub-app route handlers returning undefined instead of a Response. Use when: (1) Error 1101 on a specific hostname but not others sharing the same worker, (2) "the Promise did not resolve to 'Response'" in wrangler dev logs, (3) Hono sub-app route handler uses bare `return` to skip handling for non-matching hostnames or conditions. The fix is to add `next` parameter and call `return next()` instead of bare `return` in route handlers that conditionally skip.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Fix JavaScript regex failures when matching CJK (Chinese/Japanese/Korean) text using \b word boundaries. Use when: (1) Regex pattern with \b silently fails to match Japanese, Chinese, or Korean text, (2) Pattern works for Latin/ASCII text but not CJK, (3) hasDriverLicenceCue or similar text-detection function returns false for CJK input despite correct characters, (4) inferIssuerFromTitleText or pattern-matching functions fail on non-Latin scripts. Root cause: JavaScript \b only recognizes [a-zA-Z0-9_] as "word characters" — CJK characters are classified as \W (non-word), so \b before/after CJK always sees a non-word/non-word boundary and fails to match.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Use database cache when external APIs aren't reliably idempotent. Use when: (1) External API claims idempotency but returns different values for same input, (2) Re-running a script creates duplicate resources, (3) Need stable identifiers across runs but external service generates new ones. Pattern: check database cache first, only call external API for genuinely new items, cache the result.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Debug 404 errors for API endpoints in microservice architectures where code exists but routing sends requests to wrong service. Use when: (1) API endpoint returns 404 despite code being deployed, (2) Multiple services share same hostname via HTTPRoute/Ingress, (3) Service logs show "Health server" but you expected API endpoints, (4) Monorepo deploys multiple images and endpoint might be in different service than expected. Covers: verifying which service handles which paths, HTTPRoute path precedence, testing endpoints directly from inside cluster, matching image tags across services.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Fix misleading Flutter/Dart test failures where expected data is empty ([]) or default values instead of the mocked response, caused by stale Mockito generated mocks or missing stubs being silently swallowed by try/catch in provider/repository code. Use when: (1) Test expects non-empty data but gets [], (2) Mock stubs for a method are set up but the code under test returns fallback/empty results, (3) A PR added new methods to a service class and tests that previously passed now fail with misleading "expected X, actual: empty" assertions, (4) "Generated files are out of date" CI error alongside test failures. The root cause is MissingStubError thrown by unstubbed mock methods, caught by production try/catch blocks, causing silent fallback to empty state.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Debug "API returns data that doesn't exist in database" when multiple Kubernetes clusters exist (production, staging, POC). Use when: (1) REST API returns records that direct database queries can't find, (2) Data counts match approximately but specific records don't overlap, (3) kubectl context points to a different cluster than the one serving the public domain, (4) ClickHouse/Postgres queries return stale or different data than the API, (5) "completely different datasets" despite same table names and schemas. Root cause: querying the wrong cluster's database.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Optimize Nostr relay queries using NDK batch fetching. Use when: (1) Checking existence of many events one-by-one is slow, (2) Loop with individual fetchEvents calls causing N+1 query problem, (3) Need to verify multiple addressable events (Kind 30000+) exist. NDK's fetchEvents accepts arrays for tag filters (#d, #p, #e, authors), enabling batch queries that reduce hundreds of round-trips to a single request.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Fix Gorse recommendation engine pods crashing with "user: unknown userid 65532" error. Use when: (1) Gorse master/server/worker pods show CrashLoopBackOff or Error status, (2) Logs show "failed to get user directory" with unknown userid, (3) Running gorse containers with runAsNonRoot security context and custom UID. The gorse images call os.UserHomeDir() at startup which requires the UID to exist in /etc/passwd.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트
Fix "DownloadObjectRequest not found" error in google-cloud-storage Rust crate. Use when: (1) Trying to download objects from GCS using the Rust SDK, (2) Looking for a download request type in http::objects::download module, (3) Compile error about missing type. The download_object method uses GetObjectRequest from the get module, not a separate DownloadObjectRequest type.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
divinevideo/divine-mobile☆ 2662026년 10월 20일 업데이트