Lov Any2pdf
lovstudio/any2pdf
Convert Markdown documents to professionally typeset PDF files with reportlab.
“修复 GitHub Issue 的完整工作流”
$ npx skills add open-guji/luatex-cn --skill fix-github-issue -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install open-guji/luatex-cn fix-github-issue --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/open-guji/luatex-cn.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/fix-github-issue .claude/skills/fix-github-issue && 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 "fix-github-issue" agent skill from https://github.com/open-guji/luatex-cn/tree/main/.claude/skills/fix-github-issue into .claude/skills/fix-github-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-github-issue", 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/open-guji/luatex-cn/tree/main/.claude/skills/fix-github-issueType 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 open-guji/luatex-cn --skill fix-github-issue -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install open-guji/luatex-cn fix-github-issue --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/open-guji/luatex-cn.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/fix-github-issue .agents/skills/fix-github-issue && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "fix-github-issue" agent skill from https://github.com/open-guji/luatex-cn/tree/main/.claude/skills/fix-github-issue into .agents/skills/fix-github-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-github-issue", 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 open-guji/luatex-cn --skill fix-github-issue -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install open-guji/luatex-cn fix-github-issue --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/open-guji/luatex-cn.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/fix-github-issue .cursor/skills/fix-github-issue && 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 "fix-github-issue" agent skill from https://github.com/open-guji/luatex-cn/tree/main/.claude/skills/fix-github-issue into .cursor/skills/fix-github-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-github-issue", 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/open-guji/luatex-cn.git --path .claude/skills/fix-github-issue--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 open-guji/luatex-cn --skill fix-github-issue -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install open-guji/luatex-cn fix-github-issue --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/open-guji/luatex-cn.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/fix-github-issue .gemini/skills/fix-github-issue && 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 "fix-github-issue" agent skill from https://github.com/open-guji/luatex-cn/tree/main/.claude/skills/fix-github-issue into .gemini/skills/fix-github-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-github-issue", 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 open-guji/luatex-cn fix-github-issueInstalls 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 open-guji/luatex-cn --skill fix-github-issue -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/open-guji/luatex-cn.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/fix-github-issue .github/skills/fix-github-issue && 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 "fix-github-issue" agent skill from https://github.com/open-guji/luatex-cn/tree/main/.claude/skills/fix-github-issue into .github/skills/fix-github-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-github-issue", 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 open-guji/luatex-cn --skill fix-github-issue -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install open-guji/luatex-cn fix-github-issue --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/open-guji/luatex-cn.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/fix-github-issue .opencode/skills/fix-github-issue && 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 "fix-github-issue" agent skill from https://github.com/open-guji/luatex-cn/tree/main/.claude/skills/fix-github-issue into .opencode/skills/fix-github-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-github-issue", 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.
fix-github-issueFix GitHub Issue is a skill in open-guji/luatex-cn (118 stars). Its SKILL.md is about 2k tokens. Licence: Apache-2.0.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 8c48bdc. 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:
python3gitghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.
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.
Fix GitHub Issue loads about 2k tokens when it runs. Until then it costs about 10 tokens; SKILL.md has 382 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 open-guji/luatex-cn at commit 8c48bdc, republished under its Apache-2.0 licence (© open-guji). 382 words, ~2,035 tokens.
.claude/skills/fix-github-issue/SKILL.md (or your agent's skills folder).当需要修复 GitHub issue 时,请遵循以下完整流程以确保代码质量和正确性。
// turbo
首先,使用 gh CLI 工具获取 issue 的完整信息:
gh issue view <issue-number> --repo open-guji/luatex-cn目的:
使用搜索工具找到相关的代码文件:
// turbo 按关键词搜索(中英文关键词):
# 使用 Grep 工具搜索 issue 中提到的关键词
# 支持中英文混合搜索// turbo 按文件类型搜索:
# 使用 Glob 工具查找相关文件
# 例如:**/*.lua, **/*.sty, **/*.tex关键文件结构:
tex/core/ - 核心渲染逻辑tex/guji/ - 古籍特定功能tex/banxin/ - 版心相关功能tex/decorate/ - 装饰元素test/regression_test/tex/ - 测试文件// turbo 阅读相关文件:
系统架构:
关键概念:
关键步骤:在修复前,必须先成功重现问题。
使用 /home/lishaodong/workspace/luatex-cn/test_example 目录创建最小复现用例:
cd /home/lishaodong/workspace/luatex-cn/test_example
# 创建测试文件 issue_<number>.tex
cat > issue_<number>.tex << 'EOF'
\documentclass{ltc-guji} % 或 ltc-cn-vbook 等
% 根据 issue 描述添加相关配置
\begin{document}
% 最小化的测试内容
\end{document}
EOF
# 编译测试
lualatex -interaction=nonstopmode issue_<number>.tex目的:
成功重现后,根据用法频率选择测试位置:
test/regression_test/basic/tex/如果是常用功能或核心特性,在已有测试文件中添加测试用例:
# 例如:标点相关 → punctuation.tex
# 例如:夹注相关 → jiazhu.tex
# 例如:版心相关 → page.tex特点:
test/regression_test/past_issue/tex/如果是边缘场景或特定字体/配置,创建独立测试文件:
# 命名格式:<feature>_issue<number>.tex
# 例如:vert_font_kinsoku_issue71.tex特点:
判断标准:
| 条件 | 位置 |
|---|---|
| 使用通用字体(Source Han Serif SC/TW-Kai) | basic |
| 使用特殊字体(KingHwa_OldSong + vert) | past_issue |
| 核心功能的常见用法(句读、夹注、版心) | basic |
| 特殊组合或边缘场景 | past_issue |
| 简单示例(< 30 行) | basic(合并到已有文件) |
| 复杂示例(> 30 行) | past_issue(独立文件) |
在 basic 中添加(合并到已有文件):
% 在 test/regression_test/basic/tex/punctuation.tex 中添加
\newpage
% Test for issue #71: PUA punctuation positioning
\setmainfont[RawFeature={vert}]{KingHwa_OldSong}
测试标点位置,。、在 past_issue 中创建(独立文件):
cd test/regression_test/past_issue/tex
cat > vert_font_kinsoku_issue71.tex << 'EOF'
\documentclass{ltc-cn-vbook}
\setmainfont[RawFeature={vert}]{KingHwa_OldSong}
\begin{document}
\begin{正文}
% 从 test_example 复制已验证的最小复现用例
\end{正文}
\end{document}
EOF修改代码时注意:
常见问题类型及修复思路:
期望:修复后,regression test 应该在相关测试文件上显示变化。
// turbo 找到或创建相关的测试文件并编译:
lualatex --interaction=nonstopmode test/regression_test/basic/tex/<test-file>.tex
# 或
lualatex --interaction=nonstopmode test/regression_test/past_issue/tex/<test-file>.tex// turbo
texlua test/run_all.lua必须先通过 unit tests,再运行 regression tests。
// turbo 运行完整的回归测试以确保没有破坏现有功能:
python3 test/regression_test.py check关键验证点:
✅ 修复的测试文件应该显示差异(FAIL 或像素差异)
✅ 其他测试文件应该保持通过(PASSED,0 像素差异)
期望输出示例:
FAIL: vert_font_kinsoku_issue71.tex differs on pages: [1] ← 修复生效!
PASSED: punctuation.tex (0 pixels diff) ← 其他测试不受影响
PASSED: jiazhu.tex (0 pixels diff)
...检查修复效果:
# 查看生成的 PDF
okular test/regression_test/basic/pdf/<test-file>.pdf
# 或
okular test/regression_test/past_issue/pdf/<test-file>.pdf
# 查看差异图像
ls -lh test/regression_test/basic/diff/
# 或
ls -lh test/regression_test/past_issue/diff/确认要点:
使用 overlay_compare.py 对比修复前后(可选):
python3 scripts/overlay_compare.py \
test/regression_test/past_issue/baseline/<test>-1.png \
test/regression_test/past_issue/current/<test>-1.png \
/tmp/overlay.png
# 查看叠加对比图
okular /tmp/overlay.png每个 issue 修复必须在 test/regression_test/past_issue/tex/ 中创建对应的回归测试文件,防止问题复发。
# 命名格式:<feature>_issue<number>.tex
cat > test/regression_test/past_issue/tex/<feature>_issue<number>.tex << 'EOF'
% Issue #<number>: <问题简要描述>
% https://github.com/open-guji/luatex-cn/issues/<number>
%
% 修复前: <修复前的错误行为>
% 修复后: <修复后的正确行为>
\documentclass{ltc-guji}
\setmainfont{TW-Kai}
\关闭分页
\无标点模式
\title{测试}
\chapter{Issue <number>}
\begin{document}
\begin{正文}
% 从 test_example 复制已验证的最小复现用例
% 包含多个测试场景(正常用法 + 边缘情况)
\end{正文}
\end{document}
EOF测试文件要求:
# 生成 past_issue suite 的 baseline
python3 test/regression_test.py save --past-issues# 确认新测试能通过
python3 test/regression_test.py check --past-issues仅当修复导致了预期的视觉变化时更新基线:
// turbo
# 更新所有有差异的测试文件
python3 test/regression_test.py save
# 或只更新特定测试文件
python3 test/regression_test.py save test/regression_test/past_issue/tex/<test-file>.tex注意事项:
验证更新:
# 再次运行 regression test,应该全部 PASSED
python3 test/regression_test.py check// turbo
git status
git diff预期应该看到:
只暂存需要提交的文件:
git add <modified-source-files> # .lua, .sty 等
git add test/regression_test/basic/baseline/*.png # 如果更新了 basic 基线
git add test/regression_test/past_issue/baseline/*.png # 如果更新了 past_issue 基线
git add test/regression_test/past_issue/tex/<new-test>.tex # 如果创建了新测试常见错误(不要提交):
test/regression_test/*/pdf/*.pdf - PDF 文件(自动生成)test/regression_test/*/diff/*.png - 差异图(临时文件)test/regression_test/*/current/*.png - 当前输出(临时文件)*.aux, *.log, *.out - LaTeX 辅助文件test_example/ 下的任何文件(仅用于本地测试)使用规范的提交信息格式。标题必须包含 fix #<number>(不是 (#number)),这样 GitHub Actions 才能自动关联 issue:
git commit -m "fix #<issue-number>: <简短标题>
<详细描述原问题是什么,为什么会出现>
Changes:
- <具体改动点1>
- <具体改动点2>
<如有必要,说明技术实现细节>
Co-Authored-By: Claude <model> <noreply@anthropic.com>
"提交信息要素:
fix #<number>: 开头(不要 用 (#number) — GitHub 不会识别)// turbo 提交后再次运行回归测试确保一切正常:
python3 test/regression_test.py check所有测试应该显示 PASSED(基线已更新,不应再有差异)
# 推送到远程 dev 分支
git push origin dev推送成功后,在 issue 中添加修复总结 comment。
流程:
gh issue comment 命令发布:gh issue comment <issue-number> --repo open-guji/luatex-cn --body "$(cat <<'COMMENT'
✅ 修复已推送到 dev 分支。
## 问题总结
<简要说明问题是什么>
## 根本原因
<解释为什么会出现这个问题>
## 解决方案
<说明如何修复的>
## 测试验证
- ✓ unit tests 通过
- ✓ regression tests 通过
- ✓ 新增/更新测试: <test-file-name>
## 相关提交
- <commit-hash>: <commit-title>
COMMENT
)"重要:
© open-guji, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/fix-github-issue of open-guji/luatex-cn.
Open the folder on GitHubat commit 8c48bdc
Fix GitHub Issue 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 |
|---|---|---|---|---|---|---|
| Fix GitHub Issue this skillopen-guji/luatex-cn | 118 | — | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Lov Any2pdflovstudio/any2pdf | 211 | — | ~2.4k | Automated safety check: Notes | MIT | |
| Opendocsioteverythin/OpenDocs | 233 | — | ~746 | Automated safety check: Notes | MIT | |
| Using Streamlit Markdowniusztinpaul/designing-real-world-ai-agents-workshop | 513 | — | ~1.8k | Automated safety check: Pass | Apache-2.0 | |
| Thu ThesisLeoYeAI/openclaw-master-skills | 2.2k | — | ~4k | Automated safety check: Pass | MIT | |
| Editor Updateqwrtln/Homm3BG-mission-book | 110 | — | ~1.2k | Automated safety check: Pass | Custom licence |
lovstudio/any2pdf
Convert Markdown documents to professionally typeset PDF files with reportlab.
ioteverythin/OpenDocs
Generates multi-format documentation (Word, PDF, PPTX, Markdown blog post, JIRA ticket, FAQ, changelog, LaTeX, social snippet, architecture diagram) from a GitHub README, npm package, local Markdown…
iusztinpaul/designing-real-world-ai-agents-workshop
Covers all Markdown features in Streamlit including GitHub-flavored syntax plus Streamlit extensions like colored text, badges, Material icons, and LaTeX.
LeoYeAI/openclaw-master-skills
清华大学毕业论文 Word → PDF 一键格式规范化工具。输入任意 Word (.docx) 格式的清华毕业论文,自动转换为符合清华 thuthesis 官方 LaTeX 模板规范的高质量 PDF。适用于所有清华学位论文(MBA/学硕/专硕),一条命令搞定。功能:自动提取章节结构、中英文摘要、参考文献(自动生成 BibTeX)、图片(含…
qwrtln/Homm3BG-mission-book
Build a feature or fix a bug in the browser scenario builder under web/ — app, shared parsers, compile/PDF preview, GitHub pull-request flow, picker, search, routes — with tests and every…
zly2006/zhihu-plus-plus
Release the LaTeX fork used by Zhihu++. An agent skill from zly2006/zhihu-plus-plus.
open-guji/luatex-cn
比较 Original (ltc-guji.cls) 和 Digital (ltc-guji-digital.cls) TeX 文件的 layout 输出
open-guji/luatex-cn
将 ltc-guji.cls 文件转换为 ltc-guji-digital 格式. An agent skill from open-guji/luatex-cn.
open-guji/luatex-cn
准备下一个补丁版本 (Prepare next patch version release). An agent skill from open-guji/luatex-cn.
open-guji/luatex-cn
运行视觉回归测试验证代码更改是否正确,支持 basic/pastissue/complete 套件及基线更新. An agent skill from open-guji/luatex-cn.
open-guji/luatex-cn
通过回归测试框架编译并查看 TeX 文件的渲染效果,避免在工作目录生成多余 PDF. An agent skill from open-guji/luatex-cn.
open-guji/luatex-cn
清理重构代码 (Code cleanup and refactoring)
Works with
Categories
Run `npx skills add open-guji/luatex-cn --skill fix-github-issue -a claude-code`. Or copy the skill folder (.claude/skills/fix-github-issue in open-guji/luatex-cn) into .claude/skills/fix-github-issue in your project. Claude Code loads it when a task matches its description.
Run `npx skills add open-guji/luatex-cn --skill fix-github-issue -a codex`. Or copy the skill folder (.claude/skills/fix-github-issue in open-guji/luatex-cn) into .agents/skills/fix-github-issue 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 open-guji/luatex-cn --skill fix-github-issue -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fix-github-issue, .gemini/skills/fix-github-issue, .github/skills/fix-github-issue and .opencode/skills/fix-github-issue in your project.
Going by SKILL.md and its folder, Fix GitHub Issue needs the command-line tools its instructions call (python3, git and gh).
SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. 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.
Fix GitHub Issue is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 8.1k 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 Fix GitHub Issue: Lov Any2pdf (lovstudio/any2pdf, 211 stars), Opendocs (ioteverythin/OpenDocs, 233 stars), Using Streamlit Markdown (iusztinpaul/designing-real-world-ai-agents-workshop, 513 stars) and Thu Thesis (LeoYeAI/openclaw-master-skills, 2.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
open-guji (a GitHub organization) maintains it in open-guji/luatex-cn, which has 118 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 2, 2026.
Source: open-guji/luatex-cn on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.