{
  "schema_version": 1,
  "name": "3D Frontier",
  "site_url": "https://nathangu.dev/daily/",
  "description": "Up to six new capabilities for 3D, worlds and interactive experiences, with original demos and exploration prompts.",
  "latest_url": "https://nathangu.dev/daily/latest.json",
  "markdown_url": "https://nathangu.dev/daily/feed.md",
  "archive_url": "https://nathangu.dev/daily/archive.json",
  "edition_url_template": "https://nathangu.dev/daily/editions/{YYYY-MM-DD}.json",
  "rss_url": "https://nathangu.dev/daily/feed.xml",
  "instructions_url": "https://nathangu.dev/daily/agents.md",
  "media_catalog_url": "https://nathangu.dev/daily/media.json",
  "edition_schema_url": "https://nathangu.dev/daily/issue-schema.json",
  "authentication_required": false,
  "feed_cost": "Free; external tools and reader agents may charge.",
  "publication_timezone": "America/New_York",
  "suggested_read_time": "09:00",
  "read_timezone": "Determine the reader's local IANA timezone from their settings or device context; ask if unknown. Never assume the server or publication timezone is the reader's timezone.",
  "recommended_poll_interval_hours": 24,
  "max_picks": 6,
  "deduplication": [
    "pick.change_key",
    "pick.content_version"
  ],
  "subscription_mechanism": "The reader agent must create a task using its own supported scheduler. Copying a prompt is not a completed subscription.",
  "no_new_edition": "Do not repeat delivered picks. Check status_url for a pending publication and follow the bounded follow-up policy.",
  "stale_after_hours": 36,
  "stale_behavior": "Report delayed, stale or unavailable data once per incident; never fabricate a current edition. Retain the ledger and try again at the next normal read. Freshness comes from actual updated_at, not the reader's calendar date.",
  "setup_check": "Before scheduling, successfully read the public feed and show a brief preview. Use an available HTTP client or browser tool if the web-fetch tool cannot read it. If no supported method succeeds, explain that setup is incomplete and do not claim a subscription.",
  "schedule_setup": "Ask for a daily reading time, suggesting 09:00 in the reader's own IANA timezone. Confirm time, timezone and bounded one-off follow-ups before saving unless already explicitly supplied. Update the existing reader task and retain its delivery ledger when upgrading. Re-read the subscription manifest and agent instructions at each run; do not silently expand authorized frequency or permissions.",
  "reader_protocol_version": 2,
  "status_url": "https://nathangu.dev/daily/status.json",
  "reader_helpers_url": "https://nathangu.dev/daily/reader.mjs",
  "publication_schedule": {
    "timezone": "America/New_York",
    "local_start_time": "09:00",
    "completion_time_guaranteed": false
  },
  "edition_tracking": [
    "edition.date",
    "edition.revision"
  ],
  "state_storage": "Persist the reader state with the agent across scheduled runs. Record sent picks only after successful delivery; serialize the daily read and follow-up against the same state. Never send this state to the publisher.",
  "catch_up": "First subscription starts with the latest edition; do not replay old history. On later runs walk archive_url and next_url back to the subscription baseline, fetch every unseen or revised edition, and process oldest first. Preserve pending editions when a fetch or delivery fails. Do not cap a multi-day catch-up to six total picks.",
  "follow_up": {
    "type": "conditional_one_off",
    "max_attempts_per_edition": 3,
    "backoff_minutes": [
      30,
      60,
      120
    ],
    "timing": "Use status_url retry_not_before and retry_deadline_at (UTC). Re-read status before every attempt. Keep at most one pending follow-up per subscription, share its durable state with the regular daily read, cancel when fulfilled or unsubscribed. Do not create a second recurring task.",
    "setup": "Explain and confirm the main local-time read plus conditional follow-ups at setup, subject to the reader's quiet hours and scheduler permissions.",
    "unsupported": "If durable state, one-off tasks or required authorization is unavailable, disclose the limitation. Do not claim deduplication or follow-up is active. Offer a later local daily time; keep the working main read only if the reader accepts."
  }
}
