{
    "checks": 21630,
    "suites": 83,
    "measured": "2026-10-08",
    "bySuite": [
        {
            "name": "unit",
            "file": "tests/unit.test.php",
            "checks": 395,
            "kind": "unit",
            "about": "The unit suite: pure classes proven without a site, a database, or an oracle."
        },
        {
            "name": "http",
            "file": "tests/http.test.php",
            "checks": 18,
            "kind": "engine",
            "about": "Minn\\Http over a real wire: starts tests/fixtures/http/server.php on a free loopback port and sends to it through curl, proving what the unit cases cannot: the private-address refusal after DNS, the size cap with and without a…"
        },
        {
            "name": "style",
            "file": "tests/style.test.php",
            "checks": 7388,
            "kind": "rules",
            "about": "Style suite: the rules in docs/style.md, enforced over src/Minn/."
        },
        {
            "name": "hooks",
            "file": "tests/hooks.test.php",
            "checks": 114,
            "kind": "wordpress",
            "about": "Hook-API suite: runs tests/tools/hooks-probe.php on the engine's facade and diffs the transcript, row by row, against the one captured from the reference."
        },
        {
            "name": "api",
            "file": "tests/api.test.php",
            "checks": 10349,
            "kind": "wordpress",
            "about": "Runtime API suite: runs tests/tools/api-probe.php on the engine's facade and diffs the transcript row by row against the one captured from the reference."
        },
        {
            "name": "runtime",
            "file": "tests/runtime.test.php",
            "checks": 30,
            "kind": "engine",
            "about": "Runtime suite: switches the fixture plugin tests/fixtures/runtime/ minn-test-plugin on through active_plugins, then reads the marks it leaves on real engine pages: lifecycle order, wp_head output, enqueued assets, body_class, the_content…"
        },
        {
            "name": "ajax",
            "file": "tests/ajax.test.php",
            "checks": 77,
            "kind": "wordpress",
            "about": "admin-ajax.php and the sign-in chain, engine vs oracle."
        },
        {
            "name": "hook-trace",
            "file": "tests/hook-trace.test.php",
            "checks": 58,
            "kind": "wordpress",
            "about": "Hook-trace parity: what plugins are told about a write."
        },
        {
            "name": "front-lifecycle",
            "file": "tests/front-lifecycle.test.php",
            "checks": 21,
            "kind": "wordpress",
            "about": "Front lifecycle parity: what plugins are told on a page request, and the headers it ends with."
        },
        {
            "name": "rest-gate",
            "file": "tests/rest-gate.test.php",
            "checks": 9,
            "kind": "wordpress",
            "about": "REST gate suite: what plugin code may decide about REST requests before and beside the engine's own routes, proven against the reference with the same fixture plugin active on the shared database."
        },
        {
            "name": "abilities",
            "file": "tests/abilities.test.php",
            "checks": 16,
            "kind": "wordpress",
            "about": "Abilities: the catalogue an agent reads before it asks a site to do anything, and the running of one."
        },
        {
            "name": "rest-posts",
            "file": "tests/rest-posts.test.php",
            "checks": 18,
            "kind": "wordpress",
            "about": "Milestone 1 suite: the engine's wp/v2 posts surface matches the fixtures captured from a reference WordPress running against the same database."
        },
        {
            "name": "auth",
            "file": "tests/auth.test.php",
            "checks": 16,
            "kind": "wordpress",
            "about": "Auth suite: cookie + nonce compatibility, both directions."
        },
        {
            "name": "identity",
            "file": "tests/identity.test.php",
            "checks": 22,
            "kind": "wordpress",
            "about": "Identity parity: a plugin that says who the request is."
        },
        {
            "name": "application-passwords",
            "file": "tests/application-passwords.test.php",
            "checks": 34,
            "kind": "wordpress",
            "about": "Application passwords, engine vs oracle: the same sequence on both stacks, responses diffed with the values that cannot match masked."
        },
        {
            "name": "caps",
            "file": "tests/caps.test.php",
            "checks": 7,
            "kind": "wordpress",
            "about": "Capabilities + login suite."
        },
        {
            "name": "writes",
            "file": "tests/writes.test.php",
            "checks": 19,
            "kind": "wordpress",
            "about": "Writes suite: create, update, delete for posts, gated by capabilities."
        },
        {
            "name": "login-endpoint",
            "file": "tests/login-endpoint.test.php",
            "checks": 16,
            "kind": "wordpress",
            "about": "Login-endpoint suite: the browser sign-in surface."
        },
        {
            "name": "login-hooks",
            "file": "tests/login-hooks.test.php",
            "checks": 34,
            "kind": "wordpress",
            "about": "Login-hooks parity: a plugin on the sign-in page, as captcha, two-factor, branding and redirect plugins are."
        },
        {
            "name": "rest-parity",
            "file": "tests/rest-parity.test.php",
            "checks": 43,
            "kind": "wordpress",
            "about": "Live parity suite: diff the engine against a running reference WordPress on the SAME database, request by request."
        },
        {
            "name": "allow",
            "file": "tests/allow.test.php",
            "checks": 3,
            "kind": "wordpress",
            "about": "The Allow header, engine against the reference on the same database: the methods the caller may use on the matched route, judged per caller, and no header when nothing is allowed, for the routes' reads, a few writes, and an OPTIONS request…"
        },
        {
            "name": "embed",
            "file": "tests/embed.test.php",
            "checks": 45,
            "kind": "wordpress",
            "about": "The _embed decoration and the embed context: author, featured media, terms, replies, parents, in lists and singles, with and without _fields, as the reference answers them."
        },
        {
            "name": "minn-v1",
            "file": "tests/minn-v1.test.php",
            "checks": 40,
            "kind": "wordpress",
            "about": "minn-admin/v1 dashboard slice: overview, notifications, notifications/read."
        },
        {
            "name": "comments",
            "file": "tests/comments.test.php",
            "checks": 50,
            "kind": "wordpress",
            "about": "wp/v2/comments: reads in live parity with the reference, and the write lifecycle proven CROSS-STACK: engine-created comments read back through WordPress and vice versa, moderation flips mirrored, trash bookkeeping, force delete."
        },
        {
            "name": "media",
            "file": "tests/media.test.php",
            "checks": 35,
            "kind": "wordpress",
            "about": "wp/v2/media: reads in live parity with the reference, uploads over both transports with GD sub-sizes, the serialized metadata blob proven cross-stack, field edits, and force delete including the files."
        },
        {
            "name": "settings",
            "file": "tests/settings.test.php",
            "checks": 18,
            "kind": "wordpress",
            "about": "wp/v2/settings: payload parity, the manage_options gate, and write round trips proven cross-stack."
        },
        {
            "name": "users",
            "file": "tests/users.test.php",
            "checks": 28,
            "kind": "wordpress",
            "about": "wp/v2/users management: edit-context list/single parity, ordering, and the full lifecycle proven cross-stack: an engine-created user carries a real WordPress password hash, role edits mirror, and delete reassigns authorship."
        },
        {
            "name": "terms",
            "file": "tests/terms.test.php",
            "checks": 21,
            "kind": "wordpress",
            "about": "Term management: list parameters in parity, the editor's tag-on-the-fly create flow, category CRUD with the hierarchy links, and the refusal ladder: cross-stack in both directions."
        },
        {
            "name": "write-fields",
            "file": "tests/write-fields.test.php",
            "checks": 18,
            "kind": "wordpress",
            "about": "Extended write fields: scheduling, sticky, format, author, password, featured media, footnotes meta, page attributes: every write proven by reading it back through real WordPress."
        },
        {
            "name": "editor",
            "file": "tests/editor.test.php",
            "checks": 31,
            "kind": "wordpress",
            "about": "The editor-support surface: revisions and autosaves cross-stack, the edit lock feeding minn_lock, and the small minn-admin/v1 routes the editor and Settings views load."
        },
        {
            "name": "templates",
            "file": "tests/templates.test.php",
            "checks": 45,
            "kind": "wordpress",
            "about": "wp/v2/templates and wp/v2/template-parts: the Design > Templates screen's reads, diffed against the oracle request by request, plus the write lifecycle proven cross-stack."
        },
        {
            "name": "navigation",
            "file": "tests/navigation.test.php",
            "checks": 43,
            "kind": "wordpress",
            "about": "wp/v2/navigation: the Design > Navigation screen's reads, diffed against the oracle request by request, plus the create / rename / edit / delete lifecycle proven cross-stack."
        },
        {
            "name": "permalinks",
            "file": "tests/permalinks.test.php",
            "checks": 450,
            "kind": "wordpress",
            "about": "Permalink suite: every public URL shape the front end resolves."
        },
        {
            "name": "blocks",
            "file": "tests/blocks.test.php",
            "checks": 8,
            "kind": "wordpress",
            "about": "Block rendering suite: one battery post per block family in the shared database."
        },
        {
            "name": "theme",
            "file": "tests/theme.test.php",
            "checks": 30,
            "kind": "wordpress",
            "about": "Theme suite: the public pages the block theme renders, diffed against the reference's <body> after both are normalised."
        },
        {
            "name": "classic",
            "file": "tests/classic.test.php",
            "checks": 23,
            "kind": "wordpress",
            "about": "Classic-theme suite: the fixture classic PHP theme renders on both stacks and the bodies diff byte for byte after the theme-suite normalisation, plus a head battery compared line for line."
        },
        {
            "name": "styles",
            "file": "tests/styles.test.php",
            "checks": 9,
            "kind": "wordpress",
            "about": "Styles suite: the generated global stylesheet against the reference's."
        },
        {
            "name": "probes",
            "file": "tests/probes.test.php",
            "checks": 77,
            "kind": "wordpress",
            "about": "Probe suite: feeds, sitemaps, robots.txt, xmlrpc, cron, the admin entry, and the REST index, compared with the reference on status, content type, and body after host and generator normalisation."
        },
        {
            "name": "dogfood",
            "file": "tests/dogfood.test.php",
            "checks": 24,
            "kind": "wordpress",
            "about": "Live parity against a real site's WordPress copy: the dogfood site runs the engine, its parked wp-reference runs the reference on the same database, and every path below must render the same <body>."
        },
        {
            "name": "cli",
            "file": "tests/cli.test.php",
            "checks": 154,
            "kind": "wordpress",
            "about": "WP-CLI on the engine: the same `wp` binary runs against the engine's webroot and against the parked WordPress on the same database; stdout and the exit code must match."
        },
        {
            "name": "layout",
            "file": "tests/layout.test.php",
            "checks": 28,
            "kind": "wordpress",
            "about": "The file layout tooling reads: the shape files at the webroot, their templates under minn/layout, and the WP-CLI commands that depend on them compared with the reference on the same database."
        },
        {
            "name": "hardening",
            "file": "tests/hardening.test.php",
            "checks": 21,
            "kind": "wordpress",
            "about": "The internet-facing hardening: sign-in throttling, the security headers the reference sends on its sign-in page, and the failure pages that stand in for stack traces."
        },
        {
            "name": "security",
            "file": "tests/security.test.php",
            "checks": 34,
            "kind": "wordpress",
            "about": "The 2026-08-28 security review, pinned."
        },
        {
            "name": "install",
            "file": "tests/install.test.php",
            "checks": 49,
            "kind": "engine",
            "about": "The swap, both ways, on a scratch webroot shaped like a WordPress install: install parks core and lays the engine down, wp-cli answers through the engine, eject restores the tree byte for byte and leaves nothing behind."
        },
        {
            "name": "cron-mail",
            "file": "tests/cron-mail.test.php",
            "checks": 27,
            "kind": "wordpress",
            "about": "Milestone 25: scheduled posts go live the way the reference publishes them, and the password-reset loop runs end to end through real mail (Mailpit, Cove's catcher, receives what mail sends)."
        },
        {
            "name": "cron",
            "file": "tests/cron.test.php",
            "checks": 33,
            "kind": "wordpress",
            "about": "`wp cron` on the engine, and the cron option's due hooks firing through every trigger."
        },
        {
            "name": "reader",
            "file": "tests/reader.test.php",
            "checks": 38,
            "kind": "wordpress",
            "about": "Milestones 22 and 23: the front-end comment form's target, the post-password cookie, private posts for signed-in readers, previews, a post whose slug is a number, and a personal data request's confirmation link."
        },
        {
            "name": "extensions",
            "file": "tests/extensions.test.php",
            "checks": 30,
            "kind": "engine",
            "about": "The extension contract: manifests found and activated, every seam firing, unknown shortcodes left alone, a failing extension skipped, and the first port deciding blocks the way the plugin's output showed for each device, reader, and screen…"
        },
        {
            "name": "front-method",
            "file": "tests/front-method.test.php",
            "checks": 41,
            "kind": "wordpress",
            "about": "Non-GET methods on the public site."
        },
        {
            "name": "recovery",
            "file": "tests/recovery.test.php",
            "checks": 17,
            "kind": "engine",
            "about": "Recovery: an extension that kills a request is paused, the next request comes back without it, and nothing loads it again until it is resumed."
        },
        {
            "name": "front-page",
            "file": "tests/front-page.test.php",
            "checks": 113,
            "kind": "wordpress",
            "about": "Front-page settings: a static front page and a posts page, live against the oracle."
        },
        {
            "name": "menus",
            "file": "tests/menus.test.php",
            "checks": 47,
            "kind": "wordpress",
            "about": "Classic nav_menu storage: wp/v2/menus, menu-items, menu-locations at live parity with the reference, and the front-end navigation block falling back to those items when no wp_navigation post is published."
        },
        {
            "name": "declared-types",
            "file": "tests/declared-types.test.php",
            "checks": 14,
            "kind": "wordpress",
            "about": "Extra post types declared in minn.json: they join wp/v2/types and get a collection at their rest_base, at live parity with a WordPress plugin that register_post_type's the same slug."
        },
        {
            "name": "global-styles",
            "file": "tests/global-styles.test.php",
            "checks": 62,
            "kind": "wordpress",
            "about": "wp/v2/global-styles: the site editor's saved styles by id and the active theme's own styles and variations, diffed request by request against the oracle for an admin, an editor, an author and an anonymous caller, plus a write round trip…"
        },
        {
            "name": "reusable-blocks",
            "file": "tests/reusable-blocks.test.php",
            "checks": 59,
            "kind": "wordpress",
            "about": "wp/v2/blocks and wp/v2/wp_pattern_category: synced patterns and reusable blocks, and the taxonomy that files them."
        },
        {
            "name": "admin-surfaces",
            "file": "tests/admin-surfaces.test.php",
            "checks": 105,
            "kind": "wordpress",
            "about": "The admin surfaces Minn Admin's Manage views ride: Structure, Extensions, System, sessions, the changelog and guide, appearance, wp/v2 search + taxonomies, and the front-end Minn bar."
        },
        {
            "name": "updates",
            "file": "tests/updates.test.php",
            "checks": 13,
            "kind": "wordpress",
            "about": "Updates on the dogfood site: wordpress.org offers, directory meta, the forced check, notification rows, the auto-update lists, and a real update of an inactive plugin, engine vs the site's own reference."
        },
        {
            "name": "upgrades",
            "file": "tests/upgrades.test.php",
            "checks": 13,
            "kind": "engine",
            "about": "The engine's own installs and updates through WordPress's upgraders, on the test site with the runtime booted and no network: throwaway zips are installed, uploaded and offered as updates."
        },
        {
            "name": "site",
            "file": "tests/site.test.php",
            "checks": 96,
            "kind": "wordpress",
            "about": "The Minn site theme: the engine's own front page, a block theme rendered by the engine and by the reference alike."
        },
        {
            "name": "code-size",
            "file": "tests/code-size.test.php",
            "checks": 38,
            "kind": "engine",
            "about": "The code-size report tests/tools/code-size.php writes to contracts/code-size.json."
        },
        {
            "name": "l10n",
            "file": "tests/l10n.test.php",
            "checks": 21,
            "kind": "wordpress",
            "about": "Translations that need language files in place before a request starts: stages them, runs tests/tools/l10n-staged-probe.php on the reference and on the engine, diffs the two transcripts row by row, and removes what it staged."
        },
        {
            "name": "dropins",
            "file": "tests/dropins.test.php",
            "checks": 10,
            "kind": "wordpress",
            "about": "Drop-ins: stages the files in tests/fixtures/dropins into both stacks' wp-content, runs tests/tools/dropins-probe.php through WP-CLI on the reference and on the engine with WP_CACHE on, compares, and removes everything it staged, also when…"
        },
        {
            "name": "feeds",
            "file": "tests/feeds.test.php",
            "checks": 121,
            "kind": "wordpress",
            "about": "Reading other sites' feeds: stages the documents in tests/fixtures/feeds into the test site's uploads, runs tests/tools/feeds-probe.php through WP-CLI on the reference and on the engine, diffs the two transcripts row by row, and removes…"
        },
        {
            "name": "mail",
            "file": "tests/mail.test.php",
            "checks": 107,
            "kind": "wordpress",
            "about": "Mail as plugins send it: PHPMailer, its SMTP client on the wire, and wp_mail with its filters and actions."
        },
        {
            "name": "html-api",
            "file": "tests/html-api.test.php",
            "checks": 31,
            "kind": "wordpress",
            "about": "The HTML API as plugins and core blocks drive it: WP_HTML_Processor, its helper classes, and the tag processor underneath."
        },
        {
            "name": "comment-form",
            "file": "tests/comment-form.test.php",
            "checks": 97,
            "kind": "wordpress",
            "about": "The comment form, engine vs oracle, signed out: the same form posted to both stacks, compared on the status, where it sends the reader, the cookies it sets, the refusal's words, and the comment it stored."
        },
        {
            "name": "feed-hooks",
            "file": "tests/feed-hooks.test.php",
            "checks": 51,
            "kind": "wordpress",
            "about": "Feed-hooks parity: a plugin on every seam of the site's feeds, as podcast, SEO and syndication plugins are."
        },
        {
            "name": "sitemap-hooks",
            "file": "tests/sitemap-hooks.test.php",
            "checks": 93,
            "kind": "wordpress",
            "about": "Sitemap-hooks parity: a plugin on every seam of the core sitemaps and robots.txt, as SEO plugins are."
        },
        {
            "name": "embed-template",
            "file": "tests/embed-template.test.php",
            "checks": 34,
            "kind": "wordpress",
            "about": "Embed-template parity: a post's /embed/ page, the card another site's iframe shows, with a plugin on every seam of it."
        },
        {
            "name": "attachment-pages",
            "file": "tests/attachment-pages.test.php",
            "checks": 36,
            "kind": "wordpress",
            "about": "Attachment-page parity: the addresses an attachment's page answers to, on both stacks."
        },
        {
            "name": "canonical-hooks",
            "file": "tests/canonical-hooks.test.php",
            "checks": 32,
            "kind": "wordpress",
            "about": "Canonical-redirect parity with a plugin on it: the move to an address's canonical form is redirect_canonical's at template_redirect on both stacks, so the fixture mu-plugin tests/fixtures/mu-plugins/minn-test-canonical.php can note what it…"
        },
        {
            "name": "request-vars",
            "file": "tests/request-vars.test.php",
            "checks": 30,
            "kind": "wordpress",
            "about": "Request-parse parity: what the reference's request parse amounts to, as plugins read it at template_redirect."
        },
        {
            "name": "plugin-rules",
            "file": "tests/plugin-rules.test.php",
            "checks": 16,
            "kind": "wordpress",
            "about": "Plugin-rules parity: rewrite rules a plugin changes rather than adds, on both stacks."
        },
        {
            "name": "rewrite-endpoints",
            "file": "tests/rewrite-endpoints.test.php",
            "checks": 15,
            "kind": "wordpress",
            "about": "Rewrite-endpoint parity: endpoints a plugin adds, on both stacks."
        },
        {
            "name": "rest-envelope",
            "file": "tests/rest-envelope.test.php",
            "checks": 49,
            "kind": "wordpress",
            "about": "The REST server's envelope, engine vs oracle: what a plugin can do to a request through the server's filters, on the core routes Minn answers itself and on a plugin's own route."
        },
        {
            "name": "round-trip",
            "file": "tests/round-trip.test.php",
            "checks": 55,
            "kind": "wordpress",
            "about": "The round trip: a real site, the same day of work on each stack, and WordPress taking the result back."
        },
        {
            "name": "woo",
            "file": "tests/woo.test.php",
            "checks": 59,
            "kind": "wordpress",
            "about": "WooCommerce parity on the lab: the store's addresses, the Store API's reads, and a guest checkout taken on each stack through the Store API the block checkout uses: the cart after each step, the coupon, the checkout's answer, the order…"
        },
        {
            "name": "browser: minn-admin boot",
            "file": "tests/browser/boot.test.js",
            "checks": 11,
            "kind": "engine",
            "about": "Minn Admin boots on Minn Engine: the milestone-7 proof, in a real browser."
        },
        {
            "name": "browser: geometry (dev site)",
            "file": "tests/browser/geometry.test.js",
            "checks": 15,
            "kind": "wordpress",
            "about": "Geometry parity: the engine and the reference must lay out every visible element of a page at the same place and size with the same computed typography."
        },
        {
            "name": "browser: geometry (dogfood)",
            "file": "tests/browser/geometry.test.js",
            "checks": 11,
            "kind": "wordpress",
            "about": "Geometry parity: the engine and the reference must lay out every visible element of a page at the same place and size with the same computed typography."
        },
        {
            "name": "browser: interactivity (dogfood)",
            "file": "tests/browser/interactivity.test.js",
            "checks": 22,
            "kind": "engine",
            "about": "Interactivity suite: the engine's MIT client runtime drives the navigation block's mobile overlay and a third-party plugin's view module on the dogfood site, with no page errors."
        }
    ],
    "known": [
        {
            "name": "requests",
            "file": "tests/requests.test.php"
        },
        {
            "name": "browser: admin views (dogfood)",
            "file": "tests/browser/admin-views.test.js"
        }
    ]
}
