agentsclimarketplace

Vloj

Skill zym9863/Vibe-LibreOJ/vloj

LibreOJ题目抓取与解题工作流。用户输入形如loj1/loj001或https://loj.ac/p/1 等题号或URL时触发;创建以题号命名的空文件夹,使用Chrome DevTools MCP读取题面并保存为md文件,最后用C++、C、C#、Python、Java、Kotlin、Pascal、Rust、Go、Haskell、F#生成解答文件。From its SKILL.md

Install
npx -y skills add zym9863/Vibe-LibreOJ --skill vloj

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • fetches URLsInstructs the agent to fetch 1 URL, including https://loj.ac/p/<id>.

SKILL.md

4.6 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it

vloj

目标

  • 解析题号,创建以题号命名的空文件夹。
  • 访问对应题目页面,抓取题面并写入Markdown。
  • 编写C++、C、C#、Python、Java、Kotlin、Pascal、Rust、Go、Haskell、F#解答文件。

触发与解析

  • 支持输入示例:loj1、loj001、https://loj.ac/p/1、http://loj.ac/p/123。
  • 提取连续数字作为题号,去除前导零后作为规范题号。
  • 题目URL格式固定为:https://loj.ac/p/<id>。

工作流

  1. 创建空文件夹

    • 在当前工作区根目录的 loj/ 目录下创建以题号命名的文件夹:loj/<id>/。
    • 若文件夹不存在,直接创建。
    • 若文件夹已存在且非空,先请求用户确认是否清空;确认后删除内容并保持空文件夹。
  2. 读取题面(Chrome DevTools MCP)

    • 打开题目URL并等待页面加载完成。
    • 使用页面快照或脚本评估获取题面主体文本:
      • 优先抓取页面主内容区域(常见为 main、article、或含“题目描述/输入格式/输出格式/样例”文本的容器)。
      • 无法精准定位时,回退使用 document.body.innerText,再按标题/小节进行整理。
    • 需要确保包含题目标题、描述、输入输出、样例与提示(如存在)。
  3. 写入Markdown

    • 在 loj/ 下的题号文件夹中创建 problem.md。
    • 内容结构:
      • 标题:# <题号> <题目标题>
      • URL:原始URL
      • 题面正文分节整理(保留原有小节标题)。
  4. 编写C++解答

    • 在 loj/<id>/ 下创建 solution.cpp。
    • 使用 C++11 标准,包含必要头文件与 main()。
    • 依据题意实现可通过的解法,并在顶部用简短注释说明思路与复杂度。
  5. 编写C解答

    • 在 loj/<id>/ 下创建 solution.c。
    • 使用 C11 标准,包含必要头文件与 main()。
    • 依据题意实现可通过的解法,并在顶部用简短注释说明思路与复杂度。
  6. 编写Python解答

    • 在 loj/<id>/ 下创建 solution.py。
    • 使用 Python 3.10,包含必要的输入输出处理。
    • 依据题意实现可通过的解法,并在顶部用简短注释说明思路与复杂度。
  7. 编写Java解答

    • 在 loj/<id>/ 下创建 solution.java。
    • 使用 Java 8 标准,类名为 Main,包含 main() 方法。
    • 依据题意实现可通过的解法,并在顶部用简短注释说明思路与复杂度。
  8. 编写Kotlin解答

    • 在 loj/<id>/ 下创建 solution.kt。
    • 使用 Kotlin 1.8 标准。
    • 依据题意实现可通过的解法,并在顶部用简短注释说明思路与复杂度。
  9. 编写Pascal解答

    • 在 loj/<id>/ 下创建 solution.pas。
    • 使用 Free Pascal 3.2 标准。
    • 依据题意实现可通过的解法,并在顶部用简短注释说明思路与复杂度。
  10. 编写Rust解答

    • 在 loj/<id>/ 下创建 solution.rs。
    • 使用 Rust 2021 标准。
    • 依据题意实现可通过的解法,并在顶部用简短注释说明思路与复杂度。
  11. 编写Go解答

    • 在 loj/<id>/ 下创建 solution.go。
    • 使用 Go 1.x 标准。
    • 依据题意实现可通过的解法,并在顶部用简短注释说明思路与复杂度。
  12. 编写Haskell解答

    • 在 loj/<id>/ 下创建 solution.hs。
    • 使用 Haskell 2010 标准。
    • 依据题意实现可通过的解法,并在顶部用简短注释说明思路与复杂度。
  13. 编写C#解答

    • 在 loj/<id>/ 下创建 solution.cs。
    • 使用 C# 9 (.NET 5) 标准。
    • 依据题意实现可通过的解法,并在顶部用简短注释说明思路与复杂度。
  14. 编写F#解答

    • 在 loj/<id>/ 下创建 solution.fs。
    • 使用 F# 5.0 (.NET 5) 标准。
    • 依据题意实现可通过的解法,并在顶部用简短注释说明思路与复杂度。

输出约束

  • 仅在 loj/<id>/ 下创建 problem.md、solution.c、solution.cpp、solution.cs、solution.fs、solution.py、solution.java、solution.kt、solution.pas、solution.rs、solution.go 与 solution.hs,不生成额外文件。
  • 保持文件夹为空创建流程的前置步骤,先在 loj/ 下建目录再抓取题面。

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.