[PASS] version 0.9.0
[WARN] admin password hash is still a launch placeholder (deployment blocker, not source-release blocker)
[PASS] php-lint 43 files
[PASS] architecture-guard
ARCHITECTURE GUARD PASS: reusable core is free of 9 instance/destination identity values
[PASS] theme-guard
THEME GUARD PASS: reusable core is free of 73 instance theme values
[PASS] regression
[PASS] php-binary -- PHP 8.4.23 (cli) (built: Jul  3 2026 12:26:56) (NTS)
[PASS] yaml-parse -- 3 files parse with the frozen parser
[PASS] json-parse -- 14 files valid
[PASS] destinations-contract -- 1 active (rf); base_paths unique, unreserved
[PASS] frontmatter-type -- 16 pages carry frontmatter type:
[PASS] manifest-clean-contract -- build reads manifest as an object map; --clean can remove stale generated outputs
[PASS] hardcode-scan -- 18 PHP files free of destination literals
[PASS] required-files -- 13 files present
[PASS] shim-byte-equality -- 3 deployed shims byte-identical to generator template
[PASS] admin-no-tables -- 0 <table> tags; cards/lists used
[PASS] func-crossref -- 166 called helpers all defined
[PASS] brace-balance -- 43 PHP files balanced (heuristic; php -l deferred)
[PASS] feed-redirects -- legacy /rss.xml and /rising.xml rows present
[PASS] build-features -- manifest, --clean, graph, story feeds, robots, sitemap, reserved validation
[PASS] discovery-emitter -- eg_emit_robots_txt
[PASS] discovery-emitter -- eg_render_human_sitemap
[PASS] discovery-emitter -- eg_emit_graph_json
[PASS] test-dest-residue -- no data/test or content/test
[PASS] newsletter-global-note -- admin documents the global-list limitation
[PASS] media-records -- 14 coded records; src/alt_text/rights/status present, files exist, responsive codes resolve
[PASS] social-hardcode -- social: config key parses; no hardcoded social profile URLs in templates
[PASS] sidebar-config -- sidebar: sections present; all item paths site-absolute
[PASS] chrome-no-tables -- no <table> in layout.php / chrome.php / content-page.php
[PASS] media-folders -- media/ folders exist; build.php copies media/ to assets/media/
[PASS] breakpoint-consistency -- drawer: CSS max-width 60rem == JS min-width 60rem; picture: 36rem portrait / 56rem landscape
[PASS] server-config-dynamic-surfaces -- htaccess serves index.html+index.php; eg_mkdir_p enforces 0755 on created dirs
[PASS] servable-file-modes -- written/copied files get explicit 0644; site.css/site.js copy failure is fatal
[PASS] landing-body-class -- body_class includes 'landing'
[PASS] landing-media-codes -- 3 configured asset codes resolve; reusable template has none
[PASS] chrome-no-hardcoded-social -- no hardcoded social profile URLs in chrome/landing
[PASS] css-no-unshipped-assets -- stylesheet self-contained (0 url() refs, all shipped or data:)
[PASS] chrome-single-source -- shared helpers defined once in media.php; layout.php + chrome.php consume the same entry points
[PASS] asset-slash-guard -- trailing-slash rule carries a %{REQUEST_URI} extension guard (css/js/img/fonts/json/xml/txt/pdf); /assets/site.css provably not redirected; page URLs still canonicalized
[SKIP] php-lint -- PHP present but live-run checks need the sandbox deployment; run there
[SKIP] build-run -- PHP present but live-run checks need the sandbox deployment; run there
[SKIP] test-dest-live -- PHP present but live-run checks need the sandbox deployment; run there
[SKIP] contract-suite -- PHP present but live-run checks need the sandbox deployment; run there

Summary: 33 PASS, 0 FAIL, 0 DEFERRED, 4 SKIP (37 checks)
[PASS] auth-regression
PASS site admin can access assigned site
PASS site admin cannot access unassigned site
PASS super admin can access all sites
PASS destination registry is filtered by assignment
PASS super admin sees complete registry
PASS distribution ships with no enabled administrator credentials
[PASS] operations-regression
PASS site creation succeeds
PASS site storage created without core copy
PASS site contains no engine fork
PASS site status mutation succeeds
PASS site status stored as mutable JSON override
PASS site feature mutation succeeds
PASS feature overrides store explicit global registry state
PASS duplicate base path rejected
PASS failed site leaves no partial directory
PASS site administrator creation succeeds
PASS password stored as verifiable hash
PASS plaintext password not stored
PASS unknown site assignment rejected
PASS super admin can disable another account
PASS self-disable is rejected when account exists or unknown safely
PASS privileged mutations are audited
[PASS] config-validate
PASS site_url is a URL
PASS at least one destination configured
PASS valid destination id rf
PASS unique base path /rockport-fulton/
PASS timezone rf
[PASS] clean-build
--clean: removed 110 previously emitted file(s).
WARN: data/rf/venues.json missing or empty; no venues pages emitted
Enjoy Gulf Coast static build complete.
  destinations: 1
  content_pages: 16
  object_pages: 31
  api_files: 32
  shims: 3
  skipped: 0
  sitemap urls: 49
  search entries: 46
  redirect rules: 2
  warnings: 1
Warnings:
  - data/rf/venues.json missing or empty; no venues pages emitted

RELEASE VERIFY PASS — source is eligible for a versioned release.
