social-icebreaker-domain

Manages social icebreaker session lifecycle, phase transitions, and host authority across REST routes.

Updated Dec 24, 2025
One-click install
npx skills add https://github.com/JoyJoin-Tech-Limited/JoyJoin_app_v0.1 --skill social-icebreaker-domain-joyjoin-tech-limited
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: social-icebreaker-domain
Source: https://github.com/JoyJoin-Tech-Limited/JoyJoin_app_v0.1/tree/main/.github/skills/social-icebreaker-domain
Command: npx skills add https://github.com/JoyJoin-Tech-Limited/JoyJoin_app_v0.1 --skill social-icebreaker-domain-joyjoin-tech-limited

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Building or debugging the in-event Social Icebreaker requires coordinating a phase-ordered session state machine, host/player authority boundaries, rejoin semantics, and AI generation fallbacks across server routes and two client platforms, which is error-prone without a single source of truth. ## Core Features & Use Cases - Session Lifecycle Governance: Documents the full flow from POST /start through phase advance, bonus gate, recap, and 6-hour TTL sweep, including rejoin via upsertParticipant and 410 SESSION_EXPIRED semantics. - Authority & Phase Guards: Defines host-only actions (advance, generate, tier change) versus player self-state mutations, plus per-phase advance guards and cleanup rules. - AI Integration Boundaries: Maps every LLM generator to its route, promptVersion, logAITrace domain, 6-second raceWithTimeout wrapper, and curated fallback behavior. - Use Case: When adding a new phase between warmup and micro_challenge, follow the checklist to update PHASE_ORDER, advance guards, both client registries, and feature flags without breaking cross-platform parity. ## Quick Start Ask the AI to walk through adding a new phase to the social icebreaker session flow using this skill's phase order, advance guards, and review checklist.

Frequently Asked Questions about social-icebreaker-domain

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new phase to the social icebreaker session flow?▼

Add the phase to PHASE_ORDER and socialIcebreakerPhaseConfig.ts, update getNextEligiblePhase and advance guards, register it in both the web registry and mini-program phaseViews.tsx, and add an env flag to getServerEnabledPhases if feature-gated.

How is host authority enforced in icebreaker session routes?▼

Host-only routes validate userId === state.hostUserId and fail closed with 403. The host owns phase transitions, generative triggers, and tier/vibe selection, while players only mutate their own state such as ready, votes, and bids.

What happens when an icebreaker session expires or a player rejoins?▼

Sessions have a 6-hour TTL cleaned by a 5-minute sweep, and expired access returns 410 SESSION_EXPIRED. Rejoin uses upsertParticipant, making repeated rejoins idempotent, with concurrent start races resolved by unique-constraint catch-and-resolve.

Why does an icebreaker phase hang while generating AI content?▼

A hang usually means an unwrapped LLM call in a generator. All icebreaker LLM calls must use raceWithTimeout with a 6-second bound from socialIcebreakerAICore.ts, returning a deterministic fallback and logging fallbackUsed: true via logAITrace on timeout.

When should I not use the social-icebreaker-domain skill?▼

Use a phase-specific vertical skill for game logic inside one phase, llm-runtime-safety-and-integration for provider routing and prompt versioning, and frontend skills for pure UI or Taro layout work unrelated to session state.