diff --git a/docs/regression_manifest.sample.json b/docs/regression_manifest.sample.json
index 7eea5b8..4864be9 100644
--- a/docs/regression_manifest.sample.json
+++ b/docs/regression_manifest.sample.json
@@ -10,6 +10,43 @@
"require_engine_success": true,
"min_score_after": 90,
"min_score_improvement": 3
+ },
+ {
+ "name": "minimal_paper_case",
+ "format_file": "examples/fixtures/synthetic_format_guide.docx",
+ "paper_file": "examples/fixtures/synthetic_paper.docx",
+ "engine": "python",
+ "strict_required_sections": false,
+ "require_content_unchanged": true,
+ "require_engine_success": true,
+ "min_score_after": 50,
+ "min_score_improvement": 1,
+ "validation_command": "python -m paper_format_agent.cli --format examples/fixtures/synthetic_format_guide.docx --paper examples/fixtures/synthetic_paper.docx --output /tmp/test_output"
+ },
+ {
+ "name": "strict_sections_case",
+ "format_file": "examples/fixtures/synthetic_format_guide.docx",
+ "paper_file": "examples/fixtures/synthetic_paper.docx",
+ "engine": "python",
+ "strict_required_sections": true,
+ "require_content_unchanged": true,
+ "require_engine_success": true,
+ "min_score_after": 80,
+ "min_score_improvement": 2,
+ "validation_command": "python -m paper_format_agent.cli --format examples/fixtures/synthetic_format_guide.docx --paper examples/fixtures/synthetic_paper.docx --strict-sections --output /tmp/test_output"
+ },
+ {
+ "name": "no_engine_case",
+ "format_file": "examples/fixtures/synthetic_format_guide.docx",
+ "paper_file": "examples/fixtures/synthetic_paper.docx",
+ "engine": "none",
+ "strict_required_sections": false,
+ "require_content_unchanged": true,
+ "require_engine_success": false,
+ "min_score_after": 40,
+ "min_score_improvement": 0,
+ "validation_command": "python -m paper_format_agent.cli --format examples/fixtures/synthetic_format_guide.docx --paper examples/fixtures/synthetic_paper.docx --no-engine --output /tmp/test_output",
+ "expected_output": "format_report.json with score >= 40 and no engine_report.json"
}
]
-}
+}
\ No newline at end of file
diff --git a/paper_format_agent/scorer.py b/paper_format_agent/scorer.py
index d0242b3..a8c57cd 100644
--- a/paper_format_agent/scorer.py
+++ b/paper_format_agent/scorer.py
@@ -564,17 +564,17 @@ def save_reports(report: dict[str, Any], out_json: str | Path, out_html: str | P
".score-box{display:inline-block;padding:15px 30px;background:#667eea;color:white;border-radius:8px;font-size:24px;font-weight:bold}"
"
"
""
- "
๐ ่ฎบๆๆ ผๅผ่ดจ้่ฏๅๆฅๅ
"
+ "
๐ Format Quality Score Report
Review the penalties and diagnostics below to understand what failed and what to fix next.
"
+ comparison_html +
- f"
ๆ็ปๅพๅ๏ผ{score_display} / 100
"
- f"
ๅๅง่ดจ้ๅ๏ผ{report.get('raw_quality_score', report['score'])}
"
- "
โ ๏ธ ๆฃๅ้กน
| ้กน | ๆฃๅ |
"
+ f"Final Score: {score_display} / 100
"
+ f"Raw Quality Score: {report.get('raw_quality_score', report['score'])}
"
+ "โ ๏ธ Penalties โ What Failed
| Check | Points Deducted |
"
+ "".join(rows)
+ "
"
- + "Actionable diagnostics
| Severity | Check | Problem | Suggested fix |
"
+ + "๐ง Diagnostics โ What to Fix Next
| Severity | Check | Problem | Suggested Fix |
"
+ "".join(diag_rows)
+ "
"
- + "๐ ็นๅพ่ฏฆๆ
| ้กน | ๅผ |
"
+ + "๐ Feature Details
| Feature | Value |
"
+ "".join(feat_rows)
+ "