← Files Pairloop Doubles MixerARCHIVED FILE
.codex-plugin/plugin.json
9.98 KB · Nov 3, 2026 · 19:09 UTC
{
"name": "doubles-mixer",
"version": "1.0.0",
"description": "Rotate partners, print court sheets, and score individual standings.",
"author": {
"name": "Zovo",
"email": "support@zovo.one",
"url": "https://zovo.one"
},
"homepage": "https://doubles-mixer.zovo.one",
"license": "Proprietary",
"keywords": [
"pickleball round robin generator",
"pickleball mixer",
"rotating partners schedule",
"doubles round robin",
"round robin with rotating partners",
"pickleball scramble",
"tennis mixer schedule",
"social doubles schedule",
"pickleball open play rotation",
"padel americano"
],
"skills": "./skills/",
"mcpServers": "./.mcp.json",
"interface": {
"displayName": "Pairloop Doubles Mixer",
"shortDescription": "Rotate partners, print & score",
"longDescription": "Plan a social doubles schedule with rotating partners for a pickleball mixer, tennis mixer schedule, padel americano or badminton session. Enter 4 to 48 individual player names, courts and rounds, then get a seeded rotation with balanced sit-outs and a partner and opponent fairness summary.\n\nBrowse courts by round, enter game scores, and calculate individual wins, losses, draws, points for, points against, point difference and win percent with a stated tie-break order. Download a Letter or A4 PDF with score boxes, a CSV schedule and portable schedule JSON. Optional group A and group B labels make cross-group partners without asking for gender.\n\nFor social play. No rating or skill balancing. Does not apply tournament governing rules or make fixed-team brackets. General search is bounded and may leave partner repeats above the reported counting lower bound. Unequal groups can be refused when balanced sit-outs are impossible. Digital names are preserved; printed names use Latin characters and player numbers. Download links include schedule settings; share with intended participants.",
"developerName": "Zovo",
"category": "Entertainment",
"capabilities": [
"Interactive",
"Read"
],
"websiteURL": "https://doubles-mixer.zovo.one",
"supportURL": "https://doubles-mixer.zovo.one/support",
"privacyPolicyURL": "https://doubles-mixer.zovo.one/privacy",
"termsOfServiceURL": "https://doubles-mixer.zovo.one/terms",
"defaultPrompt": [
"Make a mixer for Alex, Blair, Casey, Drew, Erin, Finn, Gray, Harper: 2 courts, 7 rounds, seed 42.",
"Rotate Alex, Blair, Casey, Drew, Erin on 1 court for 5 rounds, seed 42; give PDF and CSV.",
"Check mixer fairness: Alex, Blair, Casey, Drew, Erin, 1 court, 10 rounds."
],
"brandColor": "#0B7667",
"brandColorDark": "#72D5BA",
"composerIcon": "./assets/icon.svg",
"logo": "./assets/logo.png"
},
"extensions": {
"com.openai": {
"onboardingSkill": "./skills/doubles-mixer/SKILL.md",
"review": {
"test_cases": {
"positive": [
{
"description": "Full partner rotation",
"prompt": "Make a pickleball mixer for Alex, Blair, Casey, Drew, Erin, Finn, Gray and Harper, 2 courts, 7 rounds, seed 42.",
"tools_triggered": "generate_mixer_schedule",
"expected_behavior": "8 players, 2 courts used, 7 rounds, 14 matches. Partner repeats: 0 (lower bound 0). Highest opponent count: 2. Sit-outs per player: 0\u20130. The widget shows the result and download controls when files are generated."
},
{
"description": "Five-player rests",
"prompt": "Generate a rotating partners schedule for Alex, Blair, Casey, Drew and Erin, 1 court, 5 rounds, seed 42.",
"tools_triggered": "generate_mixer_schedule",
"expected_behavior": "5 players, 1 courts used, 5 rounds, 5 matches. Partner repeats: 0 (lower bound 0). Highest opponent count: 2. Sit-outs per player: 1\u20131. The widget shows the result and download controls when files are generated."
},
{
"description": "Feasibility with excess courts",
"prompt": "Check mixer fairness for Alex, Blair, Casey, Drew and Erin, 12 courts and 5 rounds.",
"tools_triggered": "check_mixer_fairness",
"expected_behavior": "5 players, 1 courts used of 12, 5 rounds: 5 matches. 1 sit-outs per round, 5 total, 1\u20131 per player. Partner-repeat lower bound: 0. The widget shows the result and download controls when files are generated."
},
{
"description": "Individual standings",
"prompt": "Score one doubles match: Alex and Blair versus Casey and Drew on court 1 in round 1; team A 11, team B 7.",
"tools_triggered": "score_mixer_standings",
"expected_behavior": "1 scored games, 0 pending games, 4 individual standings. Leader: Alex, 1 wins, 0 losses, 100.00% wins. Win percent (wins / games), then wins, point difference, points for, then player name. All numeric criteria descend; names ascend by Unicode code point. Tied games count as draws and count in games played. Equal numeric results share a rank; names order those rows."
},
{
"description": "Group partners",
"prompt": "Make a doubles mixer for Alex, Blair, Casey and Drew, group A Alex/Blair, group B Casey/Drew, 1 court, 2 rounds, seed 42.",
"tools_triggered": "generate_mixer_schedule",
"expected_behavior": "4 players, 1 courts used, 2 rounds, 2 matches. Partner repeats: 0 (lower bound 0). Highest opponent count: 2. Sit-outs per player: 0\u20130. The widget shows the result and download controls when files are generated."
}
],
"negative": [
{
"description": "Fixed-team brackets are outside scope; do not call the mixer tools.",
"prompt": "Make a single-elimination tennis bracket for eight fixed teams."
},
{
"description": "Rating calculations are outside scope; do not call the mixer tools.",
"prompt": "Calculate player skill ratings from match history."
},
{
"description": "Sport rule advice does not require mixer scheduling tools.",
"prompt": "Explain the serving rules for badminton doubles."
}
]
},
"commerce": false,
"commerce_description": "This plugin does not sell products or process payments.",
"demo_recording_url": "https://doubles-mixer.zovo.one/dl/demo/q64FAA"
},
"publication": {
"countries": [],
"release_notes": "Initial release: rotating doubles partners, balanced rests, printable score sheets, CSV, JSON and individual standings.",
"translations": {
"pl-PL": {
"subtitle": "Pary, rotacje i wyniki",
"description": "Zaplanuj towarzyski mikser deblowy z rotacj\u0105 partner\u00f3w i zr\u00f3wnowa\u017conymi przerwami. Pobierz PDF, CSV i JSON, wpisz wyniki i zobacz klasyfikacj\u0119 indywidualn\u0105. Dla 4\u201348 graczy. Bez dopasowywania poziomu gry ani oficjalnych zasad turniejowych. Ograniczone wyszukiwanie mo\u017ce nie osi\u0105gn\u0105\u0107 dolnej granicy powt\u00f3rze\u0144."
},
"de-DE": {
"subtitle": "Doppelrotation und Ergebnisse",
"description": "Plane einen geselligen Doppel-Mixer mit wechselnden Partnern und ausgeglichenen Pausen. Lade PDF, CSV und JSON herunter und erfasse Ergebnisse f\u00fcr die Einzelrangliste. F\u00fcr 4\u201348 Spieler. Keine Spielst\u00e4rkenanpassung oder offiziellen Turnierregeln. Die begrenzte Suche erreicht die Untergrenze f\u00fcr Wiederholungen m\u00f6glicherweise nicht."
},
"es-ES": {
"subtitle": "Rotaci\u00f3n de parejas y puntos",
"description": "Organiza un encuentro social de dobles con parejas rotativas y descansos equilibrados. Descarga PDF, CSV y JSON, introduce los marcadores y consulta la clasificaci\u00f3n individual. Para 4\u201348 jugadores. Sin equilibrio por nivel ni reglas oficiales de torneo. La b\u00fasqueda limitada puede no alcanzar la cota inferior de repeticiones."
},
"fr-FR": {
"subtitle": "Rotation en double et scores",
"description": "Organisez une rencontre conviviale en double avec changement de partenaire et pauses \u00e9quilibr\u00e9es. T\u00e9l\u00e9chargez PDF, CSV et JSON et saisissez les scores pour le classement individuel. Pour 4 \u00e0 48 joueurs. Sans \u00e9quilibrage de niveau ni r\u00e8gles officielles de tournoi. La recherche limit\u00e9e peut d\u00e9passer la borne minimale de r\u00e9p\u00e9titions."
},
"ja-JP": {
"subtitle": "\u30c0\u30d6\u30eb\u30b9\u306e\u7d44\u307f\u5408\u308f\u305b\u3068\u500b\u4eba\u6210\u7e3e",
"description": "\u4ea4\u6d41\u76ee\u7684\u306e\u30c0\u30d6\u30eb\u30b9\u3067\u30d1\u30fc\u30c8\u30ca\u30fc\u3092\u4ea4\u4ee3\u3057\u3001\u4f11\u61a9\u56de\u6570\u3092\u5747\u7b49\u306b\u3057\u307e\u3059\u3002PDF\u3001CSV\u3001JSON\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3001\u30b9\u30b3\u30a2\u3092\u5165\u529b\u3057\u3066\u500b\u4eba\u6210\u7e3e\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u30024\u301c48\u4eba\u306b\u5bfe\u5fdc\u3002\u5b9f\u529b\u8abf\u6574\u3084\u516c\u5f0f\u5927\u4f1a\u898f\u5247\u306b\u306f\u5bfe\u5fdc\u3057\u307e\u305b\u3093\u3002\u63a2\u7d22\u56de\u6570\u304c\u9650\u3089\u308c\u308b\u305f\u3081\u3001\u30da\u30a2\u306e\u91cd\u8907\u6570\u304c\u4e0b\u9650\u3092\u4e0a\u56de\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002"
},
"pt-BR": {
"subtitle": "Duplas rotativas e resultados",
"description": "Organize partidas sociais de duplas com troca de parceiros e descansos equilibrados. Baixe PDF, CSV e JSON, insira placares e consulte a classifica\u00e7\u00e3o individual. Para 4\u201348 jogadores. Sem equil\u00edbrio por n\u00edvel ou regras oficiais de torneio. A busca limitada pode superar o limite m\u00ednimo de repeti\u00e7\u00f5es."
}
}
}
}
},
"apps": "./.app.json"
}
SHA-256: 385d61a90229dcd9194c2176fe3bdb6ba108537a55c6000059128b363912199a