SIGN IN SIGN UP

GEO wave 3: HowTo schema on 3 blog posts + fix blog 500

The blog was silently 500'ing every /blog/<slug>/ URL in production
— caught while wiring the HowTo schema. Root cause: astro.config
sets output:'server' globally (needed for Stripe webhook + auth),
which makes getStaticPaths() a no-op unless the individual route
opts into prerender. Astro warned at build time; nothing caught the
runtime crash because HEAD returned the Cloudflare 500 page HTML
(itself a 200 to a HEAD-checking crawler).

Fixes:

  1. src/pages/blog/[...slug].astro
     Added `export const prerender = true` so getStaticPaths runs
     and every blog post ships as a static page.

  2. HowTo schema on 3 top answer-engine-value blog posts:
     - indirect-prompt-injection-examples: 6 defensive steps
       (enumerate tools reading untrusted content → taint labels →
       tool-call gateway → sensitive-sink policies → human review
       queue → tamper-evident audit).
     - what-is-ai-agent-runtime-safety: 6 setup steps
       (instrument framework → decide allow/block/pending → 3-layer
       cascade → route pending → tamper-evident audit → alerts).
     - hipaa-compliant-ai-agents: 7 §164.312 implementation steps
       (map tools to specs → audit gateway → minimum-necessary →
       integrity hash → auth → transmission TLS → BAA enforcement).

  Combined with existing HowTo on prompt-injection-langchain,
  llm-tool-call-auditing-setup, and stablecoin-agent-security-travel-rule,
  that's 6 blog posts now shipping HowTo rich results — the schema
  answer engines (Google AI Overviews, ChatGPT SGE, Perplexity) use
  most aggressively for "how do I ..." queries.

Verified: all 6 posts return HTTP 200 and include "@type":"HowTo"
in their JSON-LD.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
J
Justin Yuan committed
411bdcdac9bcbe7aeca76ee80cd001f34849ed6f
Parent: 705c1bc