{
  "$schema": "https://playground.wordpress.net/blueprint-schema.json",
  "meta": {
    "title": "ArchivioMD — Cryptographic Content Integrity",
    "description": "Live preview of ArchivioMD: content hashing, Ed25519 document signing, RFC 3161 timestamps, Canary Token fingerprinting, and compliance exports for WordPress.",
    "author": "mountainviewprovisions",
    "categories": ["security", "compliance", "cryptography"]
  },
  "landingPage": "/wp-admin/admin.php?page=archiviomd-verification",
  "preferredVersions": {
    "php": "8.2",
    "wp": "latest"
  },
  "features": {
    "networking": true
  },
  "login": true,
  "siteOptions": {
    "blogname": "ArchivioMD Demo Site",
    "blogdescription": "Cryptographic content integrity for WordPress"
  },
  "plugins": [
    "archiviomd"
  ],
  "steps": [
    {
      "step": "login",
      "username": "admin",
      "password": "password"
    },
    {
      "step": "installPlugin",
      "pluginZipFile": {
        "resource": "wordpress.org/plugins",
        "slug": "archiviomd"
      },
      "options": {
        "activate": true
      }
    },
    {
      "step": "setSiteOptions",
      "options": {
        "blogname": "ArchivioMD Demo Site",
        "blogdescription": "Cryptographic content integrity for WordPress",
        "permalink_structure": "/%postname%/"
      }
    },
    {
      "step": "runPHP",
      "code": "<?php\nrequire_once 'wordpress/wp-load.php';\n\n// Enable content hashing with SHA-256\nupdate_option('archiviomd_enabled', true);\nupdate_option('archiviomd_algorithm', 'sha256');\nupdate_option('archiviomd_badge_visible', true);\nupdate_option('archiviomd_post_types', ['post', 'page']);\n\n// Create a demo post that gets hashed and signed\n$post_id = wp_insert_post([\n  'post_title'   => 'Demo: Cryptographic Integrity in Action',\n  'post_content' => '<p>This post was hashed and signed automatically on publish by ArchivioMD.</p>\n<p>The SHA-256 hash below is a deterministic fingerprint of this content. If even a single character were changed after publishing, the hash would no longer match and the verification badge would display \\u2717 Unverified.</p>\n<p>Navigate to <strong>Meta Docs &amp; SEO</strong> in the sidebar to manage compliance documents, or visit <strong>Tools &rarr; ArchivioMD</strong> to run compliance exports and view the audit log.</p>\n<p>You can also enable Ed25519 document signing, RFC 3161 trusted timestamps, Sigstore/Rekor transparency log anchoring, DANE/DNS key corroboration, and steganographic Canary Token fingerprinting from the plugin settings.</p>',\n  'post_status'  => 'publish',\n  'post_author'  => 1,\n]);\n\n// Create a demo page\nwp_insert_post([\n  'post_title'   => 'About This Demo',\n  'post_content' => '<p>This is a live WordPress Playground running ArchivioMD. Everything here is temporary and isolated to your browser session.</p>\n<h2>What to explore</h2>\n<ul>\n<li><strong>Meta Docs &amp; SEO</strong> &mdash; Create and manage security.txt, privacy policy, robots.txt, llms.txt, and other compliance documents with automatic UUID assignment and append-only changelogs.</li>\n<li><strong>Tools &rarr; ArchivioMD</strong> &mdash; Run compliance exports (CSV, JSON, ZIP), view the anchor activity log, and manually verify document checksums.</li>\n<li><strong>Cryptographic Verification settings</strong> &mdash; Enable HMAC integrity mode, Ed25519 document signing, SLH-DSA post-quantum signing, RFC 3161 timestamps, Rekor transparency log, and DANE/DNS key corroboration.</li>\n<li><strong>Canary Tokens</strong> &mdash; Configure steganographic content fingerprinting across Unicode, semantic, and structural encoding channels.</li>\n</ul>',\n  'post_status'  => 'publish',\n  'post_type'    => 'page',\n  'post_author'  => 1,\n]);\n\n// Flush rewrite rules so .well-known/ endpoints work\nflush_rewrite_rules();\n?>"
    },
    {
      "step": "runPHP",
      "code": "<?php\nrequire_once 'wordpress/wp-load.php';\n\n// Create the meta-docs directory and a sample security.txt document\n$upload_dir = wp_upload_dir();\n$meta_docs  = $upload_dir['basedir'] . '/meta-docs';\nif (!file_exists($meta_docs)) {\n  wp_mkdir_p($meta_docs);\n}\n\n$security_txt = $meta_docs . '/security.txt.md';\nif (!file_exists($security_txt)) {\n  file_put_contents($security_txt,\n    \"# Security Policy\\n\\n\" .\n    \"Contact: mailto:security@example.com\\n\" .\n    \"Expires: 2026-12-31T23:59:59Z\\n\" .\n    \"Preferred-Languages: en\\n\\n\" .\n    \"This file was created and is managed by ArchivioMD.\\n\" .\n    \"Every save generates a new SHA-256 checksum and an append-only changelog entry.\\n\"\n  );\n}\n?>"
    },
    {
      "step": "runPHP",
      "progress": {
        "caption": "Flushing permalinks..."
      },
      "code": "<?php\nrequire_once 'wordpress/wp-load.php';\nupdate_option('rewrite_rules', '');\nflush_rewrite_rules(true);\n?>"
    }
  ]
}
