← スキル一覧に戻る

club-arena-system
by Smarter-Poker
Smarter-Poker-World-Hub
⭐ 0🍴 0📅 2026年1月26日
SKILL.md
name: Club Arena System description: Build private poker club management and gameplay
Club Arena System Skill
Overview
Build private poker clubs with membership, table management, and settlement systems (Orb #2 - Yellow Ball).
Features
Club Management
- Create/manage private clubs
- Invite members
- Set club rules and stakes
- Agent management (club hosts)
Table System
- Multiple tables per club
- Variable stakes
- Waiting lists
- Session tracking
Settlement
- Club credit system
- Session reports
- Rake tracking
- Agent payouts
Database Schema
clubs
CREATE TABLE clubs (
id UUID PRIMARY KEY,
name TEXT,
owner_id UUID REFERENCES auth.users(id),
logo_url TEXT,
description TEXT,
settings JSONB, -- Stakes, rules, etc.
is_public BOOLEAN,
member_count INTEGER,
created_at TIMESTAMPTZ
);
club_members
CREATE TABLE club_members (
id UUID PRIMARY KEY,
club_id UUID REFERENCES clubs(id),
user_id UUID REFERENCES auth.users(id),
role TEXT, -- 'owner', 'agent', 'member'
credits DECIMAL,
joined_at TIMESTAMPTZ,
UNIQUE(club_id, user_id)
);
club_tables
CREATE TABLE club_tables (
id UUID PRIMARY KEY,
club_id UUID REFERENCES clubs(id),
name TEXT,
stakes TEXT,
max_players INTEGER,
current_players INTEGER,
is_active BOOLEAN
);
Club Creation Flow
async function createClub(ownerId, clubData) {
// 1. Create club
const { data: club } = await supabase
.from('clubs')
.insert({
name: clubData.name,
owner_id: ownerId,
settings: {
default_stakes: '1/2',
rake_percent: 5,
max_buy_in: 200
}
})
.select()
.single();
// 2. Add owner as member
await supabase.from('club_members').insert({
club_id: club.id,
user_id: ownerId,
role: 'owner',
credits: 0
});
return club;
}
Credit System
Add Credits
async function addCredits(clubId, userId, amount, agentId) {
// Transaction
await supabase.rpc('add_club_credits', {
p_club_id: clubId,
p_user_id: userId,
p_amount: amount,
p_agent_id: agentId
});
}
Settle Session
async function settleSession(sessionId) {
const { data: session } = await getSession(sessionId);
for (const player of session.players) {
const profit = player.end_stack - player.buy_in;
await supabase.from('club_members')
.update({ credits: supabase.sql`credits + ${profit}` })
.eq('club_id', session.club_id)
.eq('user_id', player.user_id);
}
}
UI Components
ClubLobby.jsx
- Club list/grid
- Create club button
- Search/filter
ClubDashboard.jsx
- Member list
- Active tables
- Credit management
- Settings
ClubTable.jsx
- Extends PokerTable
- Club-specific branding
- Credit display
Integration Points
- Orb #1 (Social): Club chat, announcements
- Orb #4 (GTO Trainer): Training tables within clubs
- Horse AI: Fill empty seats with club horses
スコア
総合スコア
50/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
レビュー
💬
レビュー機能は近日公開予定です