Resume Builder
StoneLL1/resume-builder
简历制作流水线:为求职 / 比赛 / 升学新建、完善或重组简历(中文 / 英文,1–2 页),覆盖对话收集→事实核对→撰写→画廊选模板→Typst 排版→浏览器可视化精修→导出 PDF,强调事实可溯源、不编造。触发词:简历、resume、CV、投简历、改简历。
简历生成与美化。两种入口:把已有简历(PDF/Word/文本)解析、诊断、套用模板美化;或者还没有简历时,通过 LinkedIn 导入或一问一答的对话帮你从零建出一份。输出单页打印优化的 HTML(浏览器里 Cmd+P 直接存成 PDF),提供 12 套模板,覆盖 ATS 友好、侧栏、衬线、编辑、时间轴与头像版式。关键词:resume, CV, 简历, 美化简历, 做简历, 简历模板…
$ npx skills add yanliudesign/offer-toolkit-skill --skill resume-skill -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install yanliudesign/offer-toolkit-skill resume-skill --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/yanliudesign/offer-toolkit-skill.git skills-src && mkdir -p .claude/skills && cp -r skills-src/resume-skill .claude/skills/resume-skill && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "resume-skill" agent skill from https://github.com/yanliudesign/offer-toolkit-skill/tree/main/resume-skill into .claude/skills/resume-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "resume-skill", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/yanliudesign/offer-toolkit-skill/tree/main/resume-skillType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add yanliudesign/offer-toolkit-skill --skill resume-skill -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install yanliudesign/offer-toolkit-skill resume-skill --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yanliudesign/offer-toolkit-skill.git skills-src && mkdir -p .agents/skills && cp -r skills-src/resume-skill .agents/skills/resume-skill && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "resume-skill" agent skill from https://github.com/yanliudesign/offer-toolkit-skill/tree/main/resume-skill into .agents/skills/resume-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "resume-skill", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add yanliudesign/offer-toolkit-skill --skill resume-skill -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install yanliudesign/offer-toolkit-skill resume-skill --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yanliudesign/offer-toolkit-skill.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/resume-skill .cursor/skills/resume-skill && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "resume-skill" agent skill from https://github.com/yanliudesign/offer-toolkit-skill/tree/main/resume-skill into .cursor/skills/resume-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "resume-skill", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/yanliudesign/offer-toolkit-skill.git --path resume-skill--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add yanliudesign/offer-toolkit-skill --skill resume-skill -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install yanliudesign/offer-toolkit-skill resume-skill --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yanliudesign/offer-toolkit-skill.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/resume-skill .gemini/skills/resume-skill && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "resume-skill" agent skill from https://github.com/yanliudesign/offer-toolkit-skill/tree/main/resume-skill into .gemini/skills/resume-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "resume-skill", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install yanliudesign/offer-toolkit-skill resume-skillInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add yanliudesign/offer-toolkit-skill --skill resume-skill -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/yanliudesign/offer-toolkit-skill.git skills-src && mkdir -p .github/skills && cp -r skills-src/resume-skill .github/skills/resume-skill && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "resume-skill" agent skill from https://github.com/yanliudesign/offer-toolkit-skill/tree/main/resume-skill into .github/skills/resume-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "resume-skill", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add yanliudesign/offer-toolkit-skill --skill resume-skill -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install yanliudesign/offer-toolkit-skill resume-skill --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yanliudesign/offer-toolkit-skill.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/resume-skill .opencode/skills/resume-skill && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "resume-skill" agent skill from https://github.com/yanliudesign/offer-toolkit-skill/tree/main/resume-skill into .opencode/skills/resume-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "resume-skill", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
resume-skill简历生成与美化。两种入口:把已有简历(PDF/Word/文本)解析、诊断、套用模板美化;或者还没有简历时,通过 LinkedIn 导入或一问一答的对话帮你从零建出一份。输出单页打印优化的 HTML(浏览器里 Cmd+P 直接存成 PDF),提供 12 套模板,覆盖 ATS 友好、侧栏、衬线、编辑、时间轴与头像版式。关键词:resume, CV, 简历, 美化简历, 做简历, 简历模板…
Resume Skill is an agent skill from yanliudesign/offer-toolkit-skill. 简历生成与美化。两种入口:把已有简历(PDF/Word/文本)解析、诊断、套用模板美化;或者还没有简历时,通过 LinkedIn 导入或一问一答的对话帮你从零建出一份。输出单页打印优化的 HTML(浏览器里 Cmd+P 直接存成 PDF),提供 12 套模板,覆盖 ATS 友好、侧栏、衬线、编辑、时间轴与头像版式。关键词:resume, CV, 简历, 美化简历, 做简历, 简历模板, resume template, LinkedIn 简历, 求职简历, ATS, 改简历, polish resume。
Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 45 other files (for example `README.md` and `README.zh.md`).
It sits in Business, Finance & HR, covering Resume and CV writing and PDF. It works with LinkedIn. The repository describes itself as: Full job-hunt Claude skill bundle — Job Description decoder + Resume builder (11 templates) + Behavioral Interview / story bank. Three self-contained sub-skills with a top-level… The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit f66c4b7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
claudeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Resume Skill loads about 1.1k tokens when it runs. Until then it costs about 67 tokens; SKILL.md has 275 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from yanliudesign/offer-toolkit-skill at commit f66c4b7, republished under its MIT licence (© yanliudesign). 275 words, ~1,099 tokens.
.claude/skills/resume-skill/SKILL.md (or your agent's skills folder). This skill also uses 42 other files; get the full folder from GitHub.把"我需要一份好看的简历"变成一条稳定流程:所有素材先汇入一份标准化的结构化数据,再套模板渲染。这样换模板只是换皮,内容不丢;美化和从零创建走的是同一条后半段。
[待确认] 而不是猜一个。schema/resume-data.md 定义的字段,确认无误后才套模板出 HTML。| 用户说的话 | 走哪条流程 |
|---|---|
| "帮我美化简历" / "改简历" / 上传了一份已有简历(PDF/docx/txt/md) | 美化已有简历 → prompts/beautify.md |
| "我还没简历,这是我 LinkedIn" / 贴出 linkedin.com 链接 | LinkedIn 导入 → prompts/linkedin-import.md |
| "我没有简历,帮我做一份" / "通过聊天帮我做" | 对话式建简历 → prompts/interview.md |
| "换个模板" / "这套不好看" | 已有结构化数据时,直接重渲染(见下方渲染流程) |
判断不了就问一句:
"你是已经有一份简历想美化,还是从零开始做一份?从零的话,你更想贴 LinkedIn 链接让我导,还是咱们聊一聊我帮你问出来?"
详见 prompts/beautify.md。要点:
schema/resume-data.md 的字段,缺失项标 [缺失]。guides/writing-tips.md):哪些 bullet 没有量化结果、哪些是职责堆砌而非成果、排版/长度/时间线问题、ATS 风险。给出一份简短诊断清单。详见 prompts/linkedin-import.md。要点:现实是 LinkedIn 有登录墙,直接抓公开 URL 经常被拦。流程会先尝试 WebFetch,拿不到就引导用户用 LinkedIn 的"Save to PDF"导出个人资料或复制粘贴各板块内容,再解析进 schema。
详见 prompts/interview.md。一问一答,按 联系方式 → 目标岗位 → 每段经历(公司/职位/时间 → 做了什么 → 成果数字) → 教育 → 技能 的顺序,挖一段结构化一段,最后汇总进 schema。
确认结构化数据:把整理好的 resume-data 内容回显给用户,确认无误(尤其数字)。
选模板:12 套,问用户偏好(默认推荐 Classic/ATS,因为海投最稳):
| 模板 | 文件 | 适合 | ATS |
|---|---|---|---|
| Classic / ATS | templates/classic-ats.html | 单栏无花哨,机器可解析,大公司海投最稳 | ✅ 友好 |
| Ledger 学术工程 | templates/ledger.html | LaTeX 风衬线,公司/日期两端对齐,嵌套子弹,软件/数据/工程岗 | ✅ 友好 |
| Modern 侧栏 | templates/modern-sidebar.html | 双栏+深色侧边栏,现代感强 | 🟡 一般 |
| Pillar 信息卡 | templates/pillar.html | Enhancv 风,蓝点缀+技能胶囊+图标成就+语言进度点,产品/市场/PM | 🟡 一般 |
| Elegant 衬线 | templates/elegant-serif.html | 衬线居中编辑风,设计/咨询/市场等偏人文岗 | 🟡 一般 |
| Atelier 极简 | templates/atelier.html | 大量留白+细字大写名+竖线分栏,设计/创意/审美岗 | 🟡 一般 |
| Timeline 时间轴 | templates/timeline.html | 左侧竖向时间轴脊柱,一眼看出职业成长轨迹 | 🟡 一般 |
| Swiss 栅格 | templates/swiss.html | 瑞士栅格,粗体 Helvetica + 红点缀,设计/品牌/创意 | 🟡 一般 |
| Executive 高管 | templates/executive.html | 藏青衬线,稳重有分量,金融/咨询/高管/资深领导 | 🟡 一般 |
| Editorial 刊物 | templates/editorial-banner.html | 三栏刊物式顶部 + 红衬线 + 底部已名巨型色带,品牌/内容/编辑 | 🟡 一般 |
| Photo Corporate 公司头像 | templates/photo-corporate.html | 深色 banner + 圆形头像,侧栏带技能进度条 + 竖向时间轴 + References,营销/项目/商务 | 🟡 一般 |
| Photo Minimal 红点约头像 | templates/photo-minimal.html | 红点缀 + 分体衬线名字 + 圆形头像,侧栏 Awards + Skills,设计/创作/portfolio | 🟡 一般 |
选模板提示:海投/过机器筛 → Classic/ATS 或 Ledger;人直接看/内推/作品集向 → 其余几套更出彩。
渲染:读取选定模板,保留其 <style> 不动,把示例内容替换成用户的真实数据,删掉用不到的板块(模板里每个 <section> 可整块删)。生成一个自包含的单文件 HTML。
同时输出可编辑版:再生成一份 <姓名>-resume-<模板>-editable.html,加上 contenteditable + 浮动工具条(详见 prompts/editable-version.md)。打印时编辑高亮和工具条自动隐藏,PDF 输出干净。
输出:两个文件都保存为 <姓名>-resume-<模板>.html 和 <姓名>-resume-<模板>-editable.html。按用户全局偏好默认存到 /Users/yanliu/Desktop/Claude skills/(其他用户则存当前目录或询问)。
告诉用户怎么转 PDF:浏览器打开 → Cmd+P → 目标选"另存为 PDF" → 边距设 None/Default、勾选背景图形 → 保存。editable 版可以先在浏览器里点字微调再 Cmd+P,工具条上有现成按钮。
可换模板重渲染:结构化数据已在手,用户说"换 Modern 试试"就直接读另一套模板重渲染,无需重新采集。
<section> 一起删,不要留空标题。[待确认],绝不把模板示例数字留在成品里。schema/resume-data.md — 标准结构化字段(所有流程的中转格式)prompts/interview.md — 对话式采集脚本prompts/linkedin-import.md — LinkedIn 导入与降级方案prompts/beautify.md — 已有简历解析与诊断prompts/editable-version.md — 把成品升级成浏览器可编辑版的注入片段guides/writing-tips.md — bullet 写法、量化、ATS 关键词、常见错误templates/*.html — 12 套打印优化模板© yanliudesign, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 42 other files in resume-skill of yanliudesign/offer-toolkit-skill.
Open the folder on GitHubat commit f66c4b7
Resume Skill next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Resume Skill this skillyanliudesign/offer-toolkit-skill | 520 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Resume BuilderStoneLL1/resume-builder | 109 | — | ~862 | Automated safety check: Pass | MIT | |
| Application OptimiserZal4DW/career-helper | 111 | — | ~2.8k | Automated safety check: Pass | Custom licence | |
| Tailor Resumeandrew-shwetzer/career-ops-plugin-do-not-fork-currently-updating-v2- | 502 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Resume Optimizersundial-org/awesome-openclaw-skills | 663 | — | ~1.2k | Automated safety check: Pass | None | |
| Email Searchextruct-ai/gtm-skills | 109 | — | ~1.3k | Automated safety check: Pass | None |
StoneLL1/resume-builder
简历制作流水线:为求职 / 比赛 / 升学新建、完善或重组简历(中文 / 英文,1–2 页),覆盖对话收集→事实核对→撰写→画廊选模板→Typst 排版→浏览器可视化精修→导出 PDF,强调事实可溯源、不编造。触发词:简历、resume、CV、投简历、改简历。
Zal4DW/career-helper
A skill your agent uses when the user is applying for a specific role and wants help with the application itself, such as tailoring or fixing a CV for ATS, researching the company and role, planning…
andrew-shwetzer/career-ops-plugin-do-not-fork-currently-updating-v2-
Generate an ATS-optimized resume tailored to a specific job posting.
sundial-org/awesome-openclaw-skills
Professional resume builder with PDF export, ATS optimization, and analysis capabilities.
extruct-ai/gtm-skills
Get verified emails and phones for contacts found by people-search.
SankaiAI/ats-optimized-resume-agent-skill
A skill your agent uses whenever the user wants to create a tailored resume for a specific job posting.
yanliudesign/offer-toolkit-skill
批量发现、整理和持续维护求职岗位清单。根据用户的简历、目标方向或种子 JD,搜索 LinkedIn 与公开网页,去重并建立尽量完整的候选池,用证据区分已核验事实和方向性推断,最后生成可搜索、可筛选的单文件 HTML job-hunt-skill 报告。用户说‘帮我批量找岗位’、‘整理职位清单’、‘使用 job-hunt-skill’、‘根据简历搜工作’、‘把这些 LinkedIn…
yanliudesign/offer-toolkit-skill
行为面试 skill。帮求职者挖掘真实经历、用 STAR/CAR 结构化、映射能力标签、构建可复用的中英双语故事库(Story Bank);并能接入 JD + 简历,针对具体岗位生成 Top 20 BQ 选题 + 基于真实经历的 STAR 准备模板(HTML 报告)。不是背答案,而是建立可复用的职业叙事体系,让任何行为面试题都能自然作答。关键词:behavioral question, BQ…
yanliudesign/offer-toolkit-skill
LinkedIn 岗位发现与匹配排序。根据用户给的一份种子 JD 和简历,提取目标岗位画像,自动生成多组 LinkedIn Jobs 搜索,采集、去重并按证据给岗位分层,最终输出可直接投递的 shortlist。用户说‘帮我找工作’、‘在 LinkedIn 搜适合我的岗位’、‘找相似职位’、‘根据简历推荐岗位’、‘job search’、‘find jobs like…
yanliudesign/offer-toolkit-skill
Offer 对比决策器。用户同时拿到两份(或多份)offer 纠结怎么选时,扮演 Senior Career Decision Advisor:结构化对比 comp / 成长 / AI 敞口 / 公司强度 / 团队风险 / 晋升速度 / 生活方式,识别 front-loaded vs long-term upside、resume value、switch-out 难度、hidden…
yanliudesign/offer-toolkit-skill
求职工具包。把「找岗位 → 签 offer」拆成六个独立子 skill:⓪ Job Hunt 批量发现岗位,① Job Description 解码具体 JD,② Resume 定向简历,③ BQ 准备行为面试,④ Offer Compare 对比多份 offer,⑤ Salary Negotiation 谈 package。任何求职相关请求(找工作、该不该投、改简历、准备面试、选…
yanliudesign/offer-toolkit-skill
薪资谈判教练。模拟前 FAANG 招聘官 + 薪酬策略师,把「拿到 offer → 签字」这一步拆成 6 个动作:Offer 诊断(Base / RSU / Sign-on / Bonus 每项标 LOW/MED/HIGH leverage)→ 谈判杠杆图(我的力量 / 招聘官的力量 / 弱点)→ 策略排序(Base → RSU → Sign-on → Bonus,按 context 调整)→…
Works with
Categories
简历生成与美化。两种入口:把已有简历(PDF/Word/文本)解析、诊断、套用模板美化;或者还没有简历时,通过 LinkedIn 导入或一问一答的对话帮你从零建出一份。输出单页打印优化的 HTML(浏览器里 Cmd+P 直接存成 PDF),提供 12 套模板,覆盖 ATS 友好、侧栏、衬线、编辑、时间轴与头像版式。关键词:resume, CV, 简历, 美化简历, 做简历, 简历模板…. Resume Skill is an agent skill from yanliudesign/offer-toolkit-skill.
Resume Skill fits situations like: tasks that involve Resume and CV writing; tasks that involve PDF.
Run `npx skills add yanliudesign/offer-toolkit-skill --skill resume-skill -a claude-code`. Or copy the skill folder (resume-skill in yanliudesign/offer-toolkit-skill) into .claude/skills/resume-skill in your project. Claude Code loads it when a task matches its description.
Run `npx skills add yanliudesign/offer-toolkit-skill --skill resume-skill -a codex`. Or copy the skill folder (resume-skill in yanliudesign/offer-toolkit-skill) into .agents/skills/resume-skill in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add yanliudesign/offer-toolkit-skill --skill resume-skill -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/resume-skill, .gemini/skills/resume-skill, .github/skills/resume-skill and .opencode/skills/resume-skill in your project.
Going by SKILL.md and its folder, Resume Skill needs the command-line tools its instructions call (claude).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Resume Skill is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.1k tokens (SKILL.md is roughly 4.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Resume Skill: Resume Builder (StoneLL1/resume-builder, 109 stars), Application Optimiser (Zal4DW/career-helper, 111 stars), Tailor Resume (andrew-shwetzer/career-ops-plugin-do-not-fork-currently-updating-v2-, 502 stars) and Resume Optimizer (sundial-org/awesome-openclaw-skills, 663 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
yanliudesign (a GitHub user) maintains it in yanliudesign/offer-toolkit-skill, which has 520 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on September 29, 2026.
Source: yanliudesign/offer-toolkit-skill on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.