@@ -442,6 +442,13 @@ class ResponseRepairer: |
| 442 | 442 | ) |
| 443 | 443 | if html_starter_line: |
| 444 | 444 | lines.append(html_starter_line) |
| 445 | + html_payload_line = self._known_minimal_html_payload_line( |
| 446 | + concrete_target, |
| 447 | + outline_label=outline_label, |
| 448 | + retry_number=retry_number, |
| 449 | + ) |
| 450 | + if html_payload_line: |
| 451 | + lines.append(html_payload_line) |
| 445 | 452 | if ( |
| 446 | 453 | not compact_retry |
| 447 | 454 | and _should_encourage_initial_version( |
@@ -1244,6 +1251,13 @@ class ResponseRepairer: |
| 1244 | 1251 | ) |
| 1245 | 1252 | if html_starter_line: |
| 1246 | 1253 | lines.append(html_starter_line) |
| 1254 | + html_payload_line = self._known_minimal_html_payload_line( |
| 1255 | + target, |
| 1256 | + outline_label=outline_label, |
| 1257 | + retry_number=retry_number, |
| 1258 | + ) |
| 1259 | + if html_payload_line: |
| 1260 | + lines.append(html_payload_line) |
| 1247 | 1261 | |
| 1248 | 1262 | def _infer_pending_item_output_target( |
| 1249 | 1263 | self, |
@@ -1491,6 +1505,28 @@ class ResponseRepairer: |
| 1491 | 1505 | "sections with short body text, and a back link to `../index.html`." |
| 1492 | 1506 | ) |
| 1493 | 1507 | |
| 1508 | + def _known_minimal_html_payload_line( |
| 1509 | + self, |
| 1510 | + target: Path, |
| 1511 | + *, |
| 1512 | + outline_label: str | None, |
| 1513 | + retry_number: int, |
| 1514 | + ) -> str | None: |
| 1515 | + if retry_number < 5: |
| 1516 | + return None |
| 1517 | + if target.suffix.lower() not in {".html", ".htm"}: |
| 1518 | + return None |
| 1519 | + |
| 1520 | + label = outline_label.strip() if outline_label and outline_label.strip() else target.stem |
| 1521 | + return ( |
| 1522 | + "If blanking continues, use this minimal starter payload shape inside the `write` call now: " |
| 1523 | + f"`<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" " |
| 1524 | + f"content=\"width=device-width, initial-scale=1.0\"><title>{label}</title></head><body>" |
| 1525 | + f"<div class=\"container\"><h1>{label}</h1><p>...</p><h2>Overview</h2><p>...</p>" |
| 1526 | + f"<h2>Key Steps</h2><p>...</p><p><a href=\"../index.html\">← Back to Main Guide Index</a></p>" |
| 1527 | + "</div></body></html>` and refine it later." |
| 1528 | + ) |
| 1529 | + |
| 1494 | 1530 | def _best_known_root_html_scaffold(self, target: Path) -> Path | None: |
| 1495 | 1531 | normalized_target = target.expanduser().resolve(strict=False) |
| 1496 | 1532 | if normalized_target.suffix.lower() not in {".html", ".htm"}: |