{
    "schemaVersion": 1,
    "library": "Readability/content rewrite engine",
    "estimatedProgress": 85,
    "suiteProgress": "cloned static upstream inventory counted: 1984 Mocha tests over 130 Mozilla fixture pages and 390 fixture files; upstream `npm test` passes 1984/1984 after lockfile install. Targeted upstream oracle `npm test -- --grep lifehacker-post-comment-load` passes 15/15 checks for the copied Lifehacker/Kinja fixture; the copied Mozilla `ol`, embedded-videos, mozilla-2, social-buttons, remove-extra-paragraphs, style-tags-removal, remove-script-tags, base-url, base-url-base-element, and base-url-base-element-relative fixtures remain mapped locally. 92 copied Mozilla fixtures plus focused API option semantics, retained upstream blockquote WordPress serialization, standalone retained video iframe HTML-block serialization, standalone native video/audio HTML-block serialization, retained definition-list HTML-block serialization for WordPress imports, captioned retained embed-wrapper HTML-block serialization, nested retained embed-wrapper HTML-block serialization, exact normalized expected-text parity for the Mozilla Developer Edition fixture, exact expected-text/share-widget cleanup parity for the Mozilla social-buttons fixture, exact nonempty-paragraph parity for the Mozilla remove-extra-paragraphs fixture, raw script/style tag exclusion with matching WordPress block counts for the style-tags-removal and remove-script-tags fixtures, WordPress block URL canonicalization parity for the base URL fixture family, and native class-weight rearm threshold retry behavior are mapped by native PHP tests; focused readability PHP coverage passes 154 tests / 1936 assertions / 0 failures. Root aggregate not run for this isolated micro-slice.",
    "phpPass": 154,
    "phpFail": 0,
    "wordpressScenarios": "Migration-aware article cleanup into clean WordPress blocks with page-builder navigation, comment widgets, share UI, surrounding theme chrome, ad slots, duplicate title heading cleanup, byline extraction/removal, articleBody microdata/RDFa selection, described NewsArticle root promotion, RTL/lang metadata, URL cleanup, data URI media handling, figure/image/table/code/separator/quote output, standalone retained video iframe HTML-block output, media-only list block output, Kinja text-annotation list block output, compact ordered-list block output, explicitly marked unordered list block output, retained definition-list HTML-block output, parse options, char-threshold retries, long-document chapter root promotion, table-heavy and math-heavy encyclopedia imports, publisher fixture cleanup, trailing wire-service source-credit pruning, trailing account-approval modal/ad cleanup, leading UTF-8 BOM cleanup, dev418 mixed-media/list retention, technical-article TOC imports that keep a table of contents while pruning an external interactive editor CTA, developer-product imports that keep Mozilla Developer Edition feature copy while excluding head-comment chrome, upstream share-button fixture imports where social sharing widgets are excluded while five editorial paragraph blocks remain, raw script/style tag imports where retained upstream paragraphs/headings become matching WordPress blocks without executable or style payloads, legacy post-envelope imports where a compact split headline/date wrapper is retained around a single `articleBody`, malformed empty-attribute wrapper cleanup for legacy exports, IAB/WordPress-style post header cleanup where compact date/hero media chrome is removed while the post author bio remains reviewable, Independent/Drupal articleBody imports where a share-like `gigya-share-btns` id no longer causes the real article body to be pruned in favor of Taboola chrome, legacy parser-boundary imports where script blocks contain HTML comment delimiters plus nested pseudo script tags, Kinja/Lifehacker imports where retained annotated editorial lists become list blocks while comment/ad/navigation chrome is excluded, compact Mozilla ordered-list imports where a single retained ordered item becomes a core list block without changing long encyclopedia/book list review behavior, explicit `data-wp-block-list` migration imports where simple unordered lists become core list blocks without changing unmarked upstream long-list fixtures, and retained upstream blockquotes become core quote blocks instead of paragraph-wrapped source markup. Standalone retained native video/audio elements from legacy WordPress imports now serialize as core HTML blocks instead of paragraph-wrapped media markup. Retained captioned div/section embed wrappers with direct or tightly nested media children now serialize as core HTML blocks so provider wrapper and caption text stay together for migration review, while inline paragraph embeds stay in paragraph context. Retained upstream definition lists in encyclopedia/technical imports now serialize as HTML blocks instead of paragraph-wrapped `dl` markup. Threshold retries now rearm candidate scoring without class weighting so a short high-weight teaser does not beat a longer legacy article body during WordPress import review.",
    "phase": "cloned static inventory plus upstream npm runner evidence and Mozilla fixture mappings including wikipedia-4-table-category-tracking-cleanup, wikipedia-3-math-article-shell-cleanup, wikipedia-mozilla-article-shell-cleanup, wikipedia-2-country-status-indicator-cleanup, firefox-nightly-blog-author-header-byline-extraction, medicalnewstoday-article-scoped-byline-extraction, iab-1-leading-header-chrome-cleanup-with-author-bio-retention, bug-1255978-articlebody-taboola-cleanup, comment-inside-script-parser-boundary-cleanup, lifehacker-post-comment-load-kinja-list-block-cleanup, captioned-embed-wrapper-html-block-serialization, social-buttons-share-widget-cleanup, liberation-1-wire-source-credit-cleanup, simplyfound-1-account-modal-ad-cleanup, la-nacion-leading-bom-description-lead-cleanup, dev418-media-list-retention, toc-missing-interactive-editor-cta-pruning, tmz-1-legacy-post-envelope-retention, invalid-attributes-wrapper-sanitization, and tumblr-single-post-container-promotion.",
    "audit": "verified 2026-05-26 isolated micro-slice: syntax checks pass for changed PHP files; focused `php tools/run-tests.php lanes/readability/tests/ArticleExtractorTest.php` passes 154 tests / 1936 assertions / 0 failures with WordPress block URL canonicalization coverage for base-url, base-url-base-element, and base-url-base-element-relative; `php lanes/readability/examples/wordpress-base-url-canonicalization.php` reports resolved relative base link yes, root link yes, fragment link yes, and 5 resolved image references. Root harness not run - isolated micro-slice.",
    "currentWork": "The copied Mozilla base URL fixture family now has focused WordPress block evidence proving migration output preserves upstream-resolved anchor and image URLs across source URL, absolute base, and relative base boundaries.",
    "blocker": "No focused readability blocker. Root harness not run for this isolated micro-slice by contract.",
    "latestCommit": "cd2e8a08979c2d2609f75c5a693aa1f8d31eb976 (libsqlite: consolidate json release helper suffix names)",
    "nextTask": "Map `lifehacker-working` or another remaining Kinja/comment-heavy fixture with a targeted upstream oracle when an upstream cache is available in the worktree, or add focused WordPress evidence for another already-copied fixture with user-visible migration impact."
}
