uploading-to-polygon

Uploads reviewed competitive programming packages to Codeforces Polygon via the cf-polygon-mcp server.

1|Updated Sep 3, 2026
One-click install
npx skills add https://github.com/nudetiger/competitive-programming-problem-preparer --skill uploading-to-polygon-nudetiger
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: uploading-to-polygon
Source: https://github.com/nudetiger/competitive-programming-problem-preparer/tree/main/skills/uploading-to-polygon
Command: npx skills add https://github.com/nudetiger/competitive-programming-problem-preparer --skill uploading-to-polygon-nudetiger

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Moving a finished competitive programming problem package onto Codeforces Polygon involves dozens of error-prone API calls — creating the problem, setting limits, writing the statement, binding validators and checkers, uploading solutions with verdict tags, wiring test groups and points, committing, and building the package. This Skill automates that entire upload pipeline through the cf-polygon-mcp server while enforcing the package's own metadata as the single source of truth. ## Core Features & Use Cases - End-to-end Polygon upload: Creates the problem (or reports an existing id), sets time/memory limits, writes the LaTeX statement in the problem's language, and records the Polygon id in problem.json. - Judge logic and solutions: Uploads a self-contained inlined validator, generators, stock or custom checkers, and every solution mapped to Polygon verdict tags (MA, OK, WA, TL, TO, ML, PE, RJ). - Tests, groups, and scoring: Uploads samples with statement I/O, regenerates tests from exact generator argv scripts, and configures OI group/points layouts (complete_group or each_test) before readiness checks, commit without email, and package build. - Use Case: After reviewing-problems signs off on a package, ask the assistant to upload it to Polygon; the Skill runs each phase, verifies samples and scoring, builds a READY package, and hands you the manual step for granting the codeforces user READ access. ## Quick Start Upload this reviewed problem package to Codeforces Polygon and build the final package.

Frequently Asked Questions about uploading-to-polygon

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

FAQPage Schema
How do I upload a competitive programming problem to Codeforces Polygon?

Use the cf-polygon-mcp server tools to create the problem, set limits, save the statement, upload validator, generators, checker and solutions, then configure tests with groups and points before committing and building the package. This Skill runs that pipeline phase by phase from the package's problem.json metadata.

How do I set up test groups and points for an OI problem on Polygon?

Enable points with enable_problem_points and groups with enable_problem_groups when the validator separates subtasks. Assign tests to groups first, then set pointsPolicy to COMPLETE_GROUP or EACH_TEST, splitting each subtask's points exactly across its tests while samples stay at zero points.

Why does my Polygon package build fail with validator exit code 3?

Exit code 3 is a testlib FAIL, usually caused by a group-name mismatch: Polygon passes numeric group names like 1 and 2 while the validator expects g1 and g2. Make the uploaded validator accept the numeric names, re-inline the constraints header, and re-upload it.

Can I grant the codeforces user READ access to a Polygon problem via API?

No. Polygon's API exposes no collaborator or access-management method, so granting READ access to the codeforces user is a manual, owner-only step done in the Polygon web UI under Manage access. The Skill hands you the exact problem URL and click path instead of faking the call.

What happens if the cf-polygon-mcp server is not connected?

The Skill stops and offers a degraded manual mode, walking you through each phase in the Polygon web UI: creating the problem, editing the statement, uploading sources and tests, committing changes, and building the package. It never fabricates tool calls against an unavailable server.