event-pool-and-matching-operations

Manages event pool lifecycle, pool stats, match-run operations, and group outcome validation.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Event pool features mix two concerns that are easy to blur: pool-layer signals (registrations, capacity estimates) and formed-group outcomes (match scores, theme titles). This Skill keeps those layers separate so pool routes, admin match runs, and group outcome submissions stay correct without accidentally altering scoring logic. ## Core Features & Use Cases - Pool lifecycle and stats semantics: Create or update event pool routes and registration rules while keeping estimatedGroups conservative (floor-based, capped by configured group limits). - Admin match-run operations: Wire the admin surface that runs matching for a pool with execution guards preventing concurrent runs, persisted results before notifications, and proper auth and telemetry. - Group outcome validation: Enforce that outcome submissions come from authenticated group members and that connectionRadar targets only reference members of the same group, with explicit duplicate-submission behavior. - Use Case: When adding a new pool stats field, use this Skill to decide whether it is a pool-layer signal or a historical group outcome, then name and document it so the layers do not blur together. ## Quick Start Ask the assistant to review or modify the event pool routes in apps/server/src/routes/domains/eventPools.ts while keeping scoring logic untouched.

Frequently Asked Questions about event-pool-and-matching-operations

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

FAQPage Schema
How do I add a new field to event pool stats?▼

First decide whether the field is a pool-layer signal (registrations, archetype mix, capacity) or a historical formed-group outcome (match scores, theme titles). Name and document it so the two layers stay separate, and update buildEventPoolStatsResponse in eventPools.ts.

How is estimatedGroups calculated for an event pool?▼

estimatedGroups uses Math.floor of registrations divided by minGroupSize, capped by the pool's configured targetGroups limit. It must stay conservative; optimistic rounding or counting partial groups as formable overstates capacity.

Why is a group outcome submission rejected with 403 or 400?▼

A 403 means the submitting user is not an authenticated member of the target group for that pool. A 400 usually means connectionRadar targets point to the submitter or to non-members; only other members of the same group are accepted.

Can matching run concurrently for the same event pool?▼

No. Pool matching must use an execution guard so only one match run executes per pool at a time. The matching result is persisted before notifications fire, and the guard must be released in a finally block on error.

When should I use matching-domain instead of this skill?▼

Use matching-domain when the task changes pair scoring, group scoring, chemistry logic, weight distribution, thresholds, or explanation boundaries. This skill only owns pool state, stats semantics, admin operations, and group outcome handling.