atcoder-client
Scannednpx machina-cli add skill a5c-ai/babysitter/atcoder-client --openclawAtCoder Client Skill
Purpose
Interface with AtCoder platform for accessing Japanese competitive programming contests, problems, and submissions.
Capabilities
- Fetch contest problems with translations
- Submit solutions and track results
- Access AtCoder Problems difficulty ratings
- Virtual contest participation
- Retrieve user submission history
- Access editorial content
Target Processes
- atcoder-contest
- progress-tracking
- skill-gap-analysis
Integration
Uses AtCoder web interface and AtCoder Problems API for difficulty ratings and problem metadata.
Input Schema
{
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": ["getContestProblems", "getProblem", "getSubmissions", "getDifficulty", "getUserStats"]
},
"contestId": { "type": "string" },
"problemId": { "type": "string" },
"username": { "type": "string" }
},
"required": ["action"]
}
Output Schema
{
"type": "object",
"properties": {
"success": { "type": "boolean" },
"data": { "type": "object" },
"error": { "type": "string" }
},
"required": ["success"]
}
Usage Example
{
"action": "getContestProblems",
"contestId": "abc300"
}
Source
git clone https://github.com/a5c-ai/babysitter/blob/main/plugins/babysitter/skills/babysit/process/specializations/algorithms-optimization/skills/atcoder-client/SKILL.mdView on GitHub Overview
The atcoder-client skill interfaces with the AtCoder platform to fetch contest problems (with translations), submit solutions and track results, retrieve problem difficulties, participate in virtual contests, and access editorial content. It supports integration with processes like atcoder-contest, progress-tracking, and skill-gap-analysis by exposing a structured API for common AtCoder actions.
How This Skill Works
The skill communicates with AtCoder via the AtCoder web interface and the AtCoder Problems API to retrieve problem data, difficulty ratings, and editorials, and to fetch user submissions. Actions are driven by a defined input schema (action, contestId, problemId, username) and return a standardized output with success, data, and optional error fields.
When to Use It
- Fetch all problems for a contest with translations (getContestProblems)
- Retrieve detailed data for a specific problem (getProblem)
- Check a problem's difficulty rating (getDifficulty)
- Review a user's recent submissions (getSubmissions)
- Compile a user's overall activity and stats (getUserStats)
Quick Start
- Step 1: Choose an action (e.g., "getContestProblems") and provide required fields like contestId.
- Step 2: Call the skill to retrieve data (problems, problem details, submissions, etc.).
- Step 3: Interpret the returned data in the data field and use it for planning, progress tracking, or skill-gap analysis.
Best Practices
- Always validate required fields for the chosen action (e.g., contestId for getContestProblems, problemId for getProblem).
- Cache frequently requested data (problem metadata, difficulty) to reduce repeated calls.
- Respect rate limits and handle transient errors with retry logic and timeouts.
- Normalize and store results in a consistent structure to support skill-gap analysis.
- When available, leverage translations in getContestProblems to aid multilingual review.
Example Use Cases
- { "action": "getContestProblems", "contestId": "abc300" }
- { "action": "getProblem", "problemId": "ABC300A" }
- { "action": "getDifficulty", "problemId": "ABC300A" }
- { "action": "getSubmissions", "username": "alice" }
- { "action": "getUserStats", "username": "bob" }