{
  "title": "WP Forged local WordPress to Astro publishing experiment",
  "executed_at_utc": "2026-09-26T21:06:01.708Z",
  "environment": {
    "wordpress": "7.1.2",
    "sqlite_database_integration": "3.0.2",
    "php": "8.3.33",
    "sqlite": "3.53.2",
    "astro": "7.3.3",
    "node": "v24.13.1",
    "os": "win32",
    "hosting": "Local loopback only; no production deployment"
  },
  "method": {
    "source": "Owned synthetic WordPress install with one published post and one draft",
    "writes": "Programmatic WordPress PHP functions, not the editor UI",
    "reads": "Unauthenticated REST posts endpoint",
    "rendering": "Actual Astro static builds",
    "publishing": "Manual build with candidate/release directories",
    "recorded_runs": 1,
    "local_timezone": "UTC",
    "artifact_hash_method": "SHA-256 over sorted relative HTML filenames and their UTF-8 contents, separated with zero bytes. This hashes the HTML set, not a production deployment."
  },
  "counts": {
    "checks_passed": 8,
    "checks_failed": 0,
    "successful_astro_builds": 3,
    "intentional_failed_astro_builds": 1,
    "initial_published_posts": 1,
    "initial_draft_posts": 1
  },
  "checks": [
    {
      "id": "draft_excluded_from_public_list",
      "passed": true,
      "http_status": 200,
      "published_records": 1,
      "draft_records_in_wordpress": 1,
      "draft_marker_in_response": false
    },
    {
      "id": "direct_unauthenticated_draft_request_blocked",
      "passed": true,
      "http_status": 401,
      "response_code": "rest_forbidden",
      "draft_marker_in_response": false
    },
    {
      "id": "initial_static_build",
      "passed": true,
      "exit_code": 0,
      "html_files": [
        "index.html",
        "posts/workshop-hours/index.html"
      ],
      "html_file_count": 2,
      "published_marker_present": true,
      "draft_marker_present": false,
      "artifact_sha256": "875da55068a79f4d6bade11a08c2915288d71b65e2d3a834fd731ba7195f371e"
    },
    {
      "id": "edit_requires_rebuild_in_this_setup",
      "passed": true,
      "source_has_new_content": true,
      "retained_artifact_has_old_content": true,
      "artifact_unchanged_before_build": true
    },
    {
      "id": "edited_static_build",
      "passed": true,
      "exit_code": 0,
      "html_file_count": 2,
      "new_marker_present": true,
      "old_marker_present": false,
      "draft_marker_present": false,
      "artifact_sha256": "638845e1d237f31fb391db2ec64387058c7bd3a7d14d6d9a0743e06bced3fa0b"
    },
    {
      "id": "source_failure_rejects_build",
      "passed": true,
      "exit_code": 1,
      "source_server_stopped": true,
      "build_log_contains_fetch_failure": true
    },
    {
      "id": "runner_retains_previous_artifact",
      "passed": true,
      "before_sha256": "638845e1d237f31fb391db2ec64387058c7bd3a7d14d6d9a0743e06bced3fa0b",
      "after_sha256": "638845e1d237f31fb391db2ec64387058c7bd3a7d14d6d9a0743e06bced3fa0b",
      "identical": true,
      "mechanism": "Build to a candidate directory; promote only after successful checks. This is runner behavior, not an Astro deployment guarantee."
    },
    {
      "id": "deletion_removed_from_rebuilt_output",
      "passed": true,
      "public_rest_records": 0,
      "draft_records_in_wordpress": 1,
      "build_exit_code": 0,
      "html_files": [
        "index.html"
      ],
      "old_article_file_present": false,
      "draft_marker_present": false,
      "artifact_sha256": "4ea1bde8e18f370b32259eada025184ce247c9a5214a763cbaf7cc21b82e68d9"
    }
  ],
  "not_tested": [
    "Authenticated draft preview",
    "WordPress editor usability",
    "Scheduled publishing",
    "Webhooks or automatic rebuilds",
    "Media and custom fields",
    "Page builders or plugin compatibility",
    "Forms and analytics",
    "SEO migration or redirect behavior",
    "Production deployment and availability",
    "Performance or Core Web Vitals",
    "Security or privacy audit",
    "Large-site pagination and scale"
  ],
  "evidence_note": "Raw request snapshots, build logs, and generated HTML retained locally. This public summary excludes local credentials, filesystem paths, and unrelated environment data."
}
