← Back to Skills Marketplace
andyjjrt

NCCU OJ

by andyjjrt · GitHub ↗ · v1.0.2 · MIT-0
cross-platform ✓ Security Clean
269
Downloads
0
Stars
0
Active Installs
3
Versions
Install in OpenClaw
/install nccuoj
Description
Solve competitive programming problems on NCCUOJ (https://nccuoj.ebg.tw). Use when: solving OJ problems, reading problem statements, writing solutions in C/C...
Usage Guidance
This skill appears to be what it claims — it fetches problems and can submit/check solutions for NCCUOJ. Before installing or running it, consider: - Password exposure: the examples use CLI arguments for username/password, which can be visible to other users/processes on the same machine; prefer typing credentials interactively or using a guarded mechanism if available. - Cookie storage: session cookies are saved to .nccuoj/cookies.txt in the workspace; remove this file when you no longer want the session kept. - Base URL override: an environment variable (NCCUOJ_BASE_URL) can redirect API calls — ensure it is not set to an untrusted host in your environment. - Run in a trusted environment: because the scripts perform network operations and write files, run them in your expected workspace and review the scripts if you have concerns. If you need stronger protections, consider creating a throwaway account for submissions and manually reviewing or sandboxing the scripts before use.
Capability Analysis
Type: OpenClaw Skill Name: nccuoj Version: 1.0.2 The skill bundle is a legitimate tool for interacting with the NCCUOJ competitive programming platform. It provides scripts (get_problem.py, submit.py, check_result.py) to fetch problems, submit solutions, and track results using the platform's API. While the scripts require user credentials for authenticated actions, they are passed via command-line arguments and used solely for the intended NCCUOJ endpoints, with no evidence of data exfiltration, malicious execution, or obfuscation.
Capability Assessment
Purpose & Capability
Name/description match the included Python scripts (get_problem, submit, check_result, session). All network calls target the NCCUOJ API and the stored files (.nccuoj/* and solution files) align with the described functionality.
Instruction Scope
SKILL.md instructs the agent to request usernames/passwords when needed and to run the included scripts. The scripts read/write only the .nccuoj workspace directory and call the NCCUOJ API. Note: the workflow instructs passing passwords as CLI arguments (exposed to the process list) and the scripts persist cookies to .nccuoj/cookies.txt; these are privacy/security considerations but are expected for a CLI-based OJ helper.
Install Mechanism
There is no install step or remote download. This is an instruction+script bundle using only Python stdlib. No external package installs or unknown URLs are used.
Credentials
The skill declares no required env vars. The code supports an override NCCUOJ_BASE_URL environment variable (useful for testing); this is reasonable but means a user or environment could redirect requests to a different server if set. Credentials are supplied at runtime (CLI args) rather than via a declared primary credential — this matches the described behavior but has the usual CLI-password exposure risk. The scripts persist session cookies locally (.nccuoj/cookies.txt), which is expected but worth noting.
Persistence & Privilege
always:false and the skill does not request system-wide changes or modify other skills. It creates/uses only its own .nccuoj directory for cookies and solution files (normal and scoped).
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install nccuoj
  3. After installation, invoke the skill by name or use /nccuoj
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.2
- Adds explicit workspace directory structure under `.nccuoj/`, organizing solutions and problem files for both public and contest problems. - Updates all example commands to use an absolute `$SCRIPTS` path and clarifies that scripts should resolve their directory relative to the SKILL.md file. - Instructs to always place solution code in the appropriate `.nccuoj/solution/public/` or `.nccuoj/solution/contest/` directory and references helper utilities for this. - No changes to command syntax, API details, or solution templates.
v1.0.1
- Updated example script paths from `.github/skills/nccuoj/scripts/` to `scripts/` throughout all usage instructions - No behavior or functional changes; only documentation and command path fixes for clarity and consistency
v1.0.0
- Initial release of the nccuoj skill for solving competitive programming problems on NCCUOJ. - Supports fetching and reading problem statements (public and contest), writing and submitting solutions in C/C++/Python/Java/Go/JavaScript. - Includes scripts for problem retrieval, code submission, and checking submission results; all scripts manage CSRF tokens and sessions automatically. - Guides users through solving, testing, and debugging problems, and clarifies required credentials for private or contest problems. - Provides language templates and details on usage for both public and contest problem-solving modes.
Metadata
Slug nccuoj
Version 1.0.2
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 3
Frequently Asked Questions

What is NCCU OJ?

Solve competitive programming problems on NCCUOJ (https://nccuoj.ebg.tw). Use when: solving OJ problems, reading problem statements, writing solutions in C/C... It is an AI Agent Skill for Claude Code / OpenClaw, with 269 downloads so far.

How do I install NCCU OJ?

Run "/install nccuoj" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is NCCU OJ free?

Yes, NCCU OJ is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does NCCU OJ support?

NCCU OJ is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created NCCU OJ?

It is built and maintained by andyjjrt (@andyjjrt); the current version is v1.0.2.

💬 Comments