Install any skill in seconds. Free to start, no credit card required.
Get Started Free →本技能专门处理 **Category D:溢出与对齐缺陷**,包括:
.claude/skills/openraiser-overflow-repair-skill/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -28% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -15% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 240% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 96% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 5% | 0% |
本技能专门处理 Category D:溢出与对齐缺陷,包括:
该技能由 code-surgeon-agent 调用,执行对 .tex 源码的精确修改,以消除或缓解溢出问题。所有修复遵循 最小修改原则,不改变学术内容。
当 layout-detective-agent 或 rule-engine-agent 报告中出现以下缺陷 ID 时,路由至本技能:
| 缺陷 ID | 描述 | 优先级 | |---------|------|--------| | D1 | Overfull hbox(段落/表格/公式) | High | | D2 | 长公式未断行 | High | | D3 | URL/长标识符溢出 | Medium |
| 输入项 | 来源 | 说明 | |--------|------|------| | 主 .tex 文件路径 | 项目上下文 | 需修改的源文件 | | 规则引擎报告 | rule-engine-agent 输出 | 包含溢出位置(行号)、溢出量、对象 | | 排版侦探报告 | layout-detective-agent 输出 | 包含视觉确认的溢出页面和对象 | | 当前编译日志 | .log 文件 | 用于验证修复后溢出是否消除 |
修改完成后,必须返回以下信息:
json{ "skill": "overflow-repair", "status": "success | partial | failed", "modified_files": ["main.tex", "tables/table1.tex"], "changes": [ { "defect_id": "D1", "object": "Table 2", "action": "替换 tabular 为 tabularx,设置列宽比例", "before": "\\begin{tabular}{|l|c|c|}", "after": "\\begin{tabularx}{\\linewidth}{|l|X|X|}" } ], "unresolved": [] }
orchestrator-agent 触发重新编译以验证效果。问题特征:
Overfull \hbox (Xpt too wide) in paragraph at lines A--B修复策略(按优先级):
在溢出单词的合适位置添加 \- 连字符,使 LaTeX 能在该处断行。 latex % 修改前 This is a verylongwordthatdoesnotbreak. % 修改后 This is a very\-long\-word\-that\-does\-not\-break.
在段落前临时增加 \emergencystretch 或调整 \tolerance。 latex {\emergencystretch=1em % 允许额外拉伸 1em This is the problematic paragraph content... } 注意:修改后需恢复默认值,避免影响全局。
semantic-polish-agent 介入) 若排版手段无法解决,可替换为稍短的近义词或调整语序。 latex % 修改前 the implementation of the proposed methodology % 修改后 the implementation of our method
问题特征:
Overfull \hbox (Xpt too wide) in alignment at lines A--B修复策略(按优先级):
tabularx 环境 将 tabular 替换为 tabularx,并为文本列分配 X 列类型以允许自动换行。 latex % 修改前 \begin{tabular}{|l|c|c|} \hline Method & Description & Score \\ \hline Ours & A very long description that causes overflow & 0.95 \\ \hline \end{tabular}
% 修改后 \usepackage{tabularx} % 确保导言区已引入 ... \begin{tabularx}{\linewidth}{|l|X|X|} \hline Method & Description & Score \\ \hline Ours & A very long description that causes overflow & 0.95 \\ \hline \end{tabularx} *规则*:多个文本列应共同使用 X 列,避免单列过宽。
使用 p{宽度} 列类型固定文本列宽度。 latex \begin{tabular}{|l|p{4cm}|c|}
若表头过长导致溢出,可缩写表头或使用换行。 latex % 修改前 \textbf{Mean Average Precision at IoU 0.5} % 修改后 \textbf{mAP@0.5}
在表格环境内使用 \small 或 \footnotesize,但需确保与全篇表格风格一致。 latex \begin{table} \small \begin{tabular}{...} ... \end{tabular} \end{table}
对于列数过多的宽表,使用 \rotatebox 或 sidewaystable 环境。 latex \usepackage{rotating} ... \begin{sidewaystable} ... \end{sidewaystable}
问题特征:
Overfull \hbox 在公式环境修复策略(按优先级):
multline:首行左对齐,末行右对齐,中间行居中。align 或 aligned:在等号或运算符处对齐。latex % 修改前(equation 环境) \begin{equation} f(x) = a_1 x^1 + a_2 x^2 + a_3 x^3 + a_4 x^4 + a_5 x^5 + a_6 x^6 \end{equation}
% 修改后(multline 环境) \begin{multline} f(x) = a_1 x^1 + a_2 x^2 + a_3 x^3 \\ + a_4 x^4 + a_5 x^5 + a_6 x^6 \end{multline}
% 或 align 环境(在等号处对齐) \begin{align} f(x) &= a_1 x^1 + a_2 x^2 + a_3 x^3 \nonumber \\ &\quad + a_4 x^4 + a_5 x^5 + a_6 x^6 \end{align}
split 环境嵌套在 equation 中 保留单个公式编号,但内部换行。 latex \begin{equation} \begin{split} f(x) &= a_1 x^1 + a_2 x^2 + a_3 x^3 \\ &\quad + a_4 x^4 + a_5 x^5 + a_6 x^6 \end{split} \end{equation}
若公式过长且无明显断点,可拆分为多个子公式。 latex % 修改前 P(y|x) = \frac{\exp(\sum_i w_i f_i(x,y))}{\sum_{y'}\exp(\sum_i w_i f_i(x,y'))}
% 修改后 Let $S(x,y) = \sum_i w_i f_i(x,y)$, then \begin{equation} P(y|x) = \frac{\exp(S(x,y))}{\sum_{y'}\exp(S(x,y'))} \end{equation}
问题特征:
Overfull \hbox 在参考文献区域修复策略(按优先级):
\url 命令 \url 命令(由 hyperref 或 url 宏包提供)能自动在合适位置断行。 latex % 修改前 https://github.com/very/long/url/that/overflows/the/margin % 修改后 \url{https://github.com/very/long/url/that/overflows/the/margin}
在导言区添加: latex \usepackage{url} \def\UrlBreaks{\do\/\do-} % 允许在 / 和 - 处断行 或对于 biblatex: latex \usepackage[backend=biber, url=true]{biblatex} \setcounter{biburlnumpenalty}{100} \setcounter{biburlucpenalty}{100} \setcounter{biburllcpenalty}{100}
在 URL 中允许断行处插入 \linebreak[0] 或使用 \path 命令。 latex \path{https://github.com/very/long/url/\linebreak[0]that/overflows}
每执行一项修复后,必须:
orchestrator-agent 重新编译。Overfull \hbox 是否消除或溢出量显著减少。partial 或 failed,并在报告中说明原因(如“公式语义复杂,无法自动断行,建议人工调整”)。tabularx 后,确保全篇表格风格仍统一(参见 consistency-polisher 技能)。\url 时自动包含超链接(若加载 hyperref)。consistency-polisher 技能。semantic-polish-agent 处理。quality-gatekeeper-agent 验收。Overflow Repair Skill 就绪。 等待 code-surgeon-agent 调用,执行溢出类修复任务。
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 32,350 | 5,402 | -83% | 1 | 1 | 0% | 5,408 | 3,905 | -28% | 0 | 0 | — |
case-02 | pass→pass | 18,150 | 5,558 | -69% | 1 | 1 | 0% | 3,626 | 3,812 | +5% | 0 | 0 | — |
case-03 | fail→pass | 29,079 | 5,848 | -80% | 1 | 1 | 0% | 4,732 | 4,028 | -15% | 0 | 0 | — |
case-04 | pass→pass | 12,678 | 3,676 | -71% | 1 | 1 | 0% | 936 | 3,427 | +266% | 0 | 0 | — |
case-09 | pass→pass | 4,907 | 2,953 | -40% | 1 | 1 | 0% | 735 | 3,364 | +358% | 0 | 0 | — |
case-05 | pass→pass | 14,765 | 6,968 | -53% | 1 | 1 | 0% | 2,228 | 3,866 | +74% | 0 | 0 | — |
case-06 | pass→pass | 17,771 | 7,666 | -57% | 1 | 1 | 0% | 2,043 | 4,204 | +106% | 0 | 0 | — |
case-07 | pass→pass | 5,784 | 4,469 | -23% | 1 | 1 | 0% | 1,006 | 3,621 | +260% | 0 | 0 | — |
case-08 | pass→pass | 3,392 | 3,568 | +5% | 1 | 1 | 0% | 539 | 3,491 | +548% | 0 | 0 | — |
case-10 | pass→pass | 4,880 | 4,608 | -6% | 1 | 1 | 0% | 946 | 3,677 | +289% | 0 | 0 | — |
case-11 | pass→pass | 15,613 | 12,147 | -22% | 1 | 1 | 0% | 2,672 | 4,775 | +79% | 0 | 0 | — |
case-12 | pass→pass | 4,180 | 2,986 | -29% | 1 | 1 | 0% | 559 | 3,327 | +495% | 0 | 0 | — |
case-13 | pass→pass | 8,678 | 3,328 | -62% | 1 | 1 | 0% | 1,415 | 3,461 | +145% | 0 | 0 | — |
case-14 | fail→pass | 6,672 | 4,641 | -30% | 1 | 1 | 0% | 1,092 | 3,709 | +240% | 0 | 0 | — |
case-15 | pass→pass | 12,197 | 8,453 | -31% | 1 | 1 | 0% | 1,957 | 3,945 | +102% | 0 | 0 | — |
case-16 | pass→pass | 12,570 | 7,575 | -40% | 1 | 1 | 0% | 2,083 | 4,002 | +92% | 0 | 0 | — |
case-17 | fail→pass | 11,196 | 3,575 | -68% | 1 | 1 | 0% | 1,739 | 3,406 | +96% | 0 | 0 | — |
case-18 | pass→pass | 8,304 | 4,373 | -47% | 1 | 1 | 0% | 1,319 | 3,564 | +170% | 0 | 0 | — |
case-19 | pass→pass | 15,930 | 5,247 | -67% | 1 | 1 | 0% | 2,578 | 3,721 | +44% | 0 | 0 | — |
case-20 | fail→fail | 4,136 | 6,149 | +49% | 1 | 1 | 0% | 557 | 3,864 | +594% | 0 | 0 | — |
case-21 | fail→fail | 5,891 | 22,919 | +289% | 1 | 1 | 0% | 508 | 6,183 | +1117% | 0 | 0 | — |
case-22 | fail→fail | 11,272 | 25,042 | +122% | 1 | 1 | 0% | 1,908 | 5,153 | +170% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +18 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.