Fix 403 on tutorial section directory indexes

Summary

Directory indexes under the developer portal return 403 for tutorial section roots while child pages return 200. Agents and crawlers that follow nav/llms.txt links to folder URLs hit a dead end.

Related context: agentic onboarding audit (Work Item #84 (closed) / MR !180 (merged)).

Observed (prod developers.hive.io)

  • GET /tutorials-recipes/ → 403
  • GET /tutorials-javascript/ → 403
  • Child tutorial HTML pages under those trees → 200

Please re-verify on staging/prod when triaging; paths may include other tutorial section roots with the same pattern.

Why it matters

  • llms.txt, sitemap, and Quickstart/nav link people (and agents) at section roots.
  • 403 looks like “docs missing” rather than “pick a child page,” and breaks naive URL following.

Proposed fix

  1. Confirm which Jekyll / nginx / Cloudflare rule returns 403 for directory URLs without index.html.
  2. Prefer one of:
    • Publish a real section index (listing) at each tutorial root, or
    • 301/302 redirect directory → a canonical first page or /tutorials/, or
    • Serve a lightweight index instead of 403.
  3. Add a CI/smoke assertion that documented section roots return 200 (or an intentional redirect), not 403.
  4. Align sitemap/llms.txt links with whatever canonical URL you choose.

Acceptance

  • Tutorial section roots previously returning 403 now 200 or intentional redirect
  • Child pages unchanged
  • Smoke/CI covers the fixed roots
  • Nav / sitemap / llms.txt point at the canonical URLs

Out of scope

  • Rewriting tutorial content
  • OpenAPI/OpenRPC (#85 (closed)) or MCP