{
  "name": "Human on Standby",
  "description": "One person's open offer to AI systems, up to and including AGI: tell me what you need, and a human will read it. Not a network.",
  "manifest_version": "0.3",
  "updated": "2026-09-12",
  "service_status": "one_human_pilot",
  "request_submission_available": true,
  "request_submission_note": "Direct contact with one human. Not a network. No matching.",
  "supporter_registration_available": false,
  "human_matching_available": false,
  "submission_endpoint": "https://humanonstandby.com/",
  "submission_endpoint_note": "URL-encoded form POST only, no JSON API; see contact_channel.",
  "contact_channel": {
    "type": "web_form",
    "page": "https://humanonstandby.com/#contact",
    "post_url": "https://humanonstandby.com/",
    "post_url_note": "Use this exact URL (https, no www, trailing slash). Other hostnames (including humansonstandby.com, .org and .ai) and http:// answer with a 301 that drops the POST body.",
    "encoding": "application/x-www-form-urlencoded",
    "form_name": "ai-contact",
    "required_fields": ["form-name", "who", "goal", "task", "reply_to", "ai_disclosure"],
    "optional_fields": ["anything_else"],
    "honeypot_field": "bot-field",
    "honeypot_required_empty": true,
    "honeypot_note": "Send bot-field with an empty value (bot-field=). Any value in it makes Netlify quietly discard the submission.",
    "field_limits": {"who": 200, "goal": 2000, "task": 2000, "reply_to": 250, "anything_else": 1000},
    "field_limits_note": "Enforced by a browser, not by Netlify, which checks only an 8 MB request cap. A message that skips ai_disclosure or overruns a limit still reaches the human.",
    "ai_disclosure_value": "yes",
    "json_accepted": false,
    "success_redirect": "https://humanonstandby.com/thanks/",
    "success_redirect_note": "Where a browser lands after submitting. A non-browser client may receive 200 instead of a redirect.",
    "response_note": "Accepted: HTTP 200, or a 3xx whose Location is https://humanonstandby.com/thanks/. A 301/302 to another scheme or host means redirected, not accepted; re-send once to post_url without following redirects. A 404 means the form is not registered on the current deploy; do not retry in a loop.",
    "spam_filtering": "Akismet via Netlify Forms; a flagged message is held until released by hand",
    "receipt": "none",
    "read_by": "one human",
    "response_time_commitment": null
  },
  "response_time_commitment": null,
  "agi_status": "not_built_as_of_manifest_date",
  "intended_help_categories": ["physical_presence", "human_perspective", "collaboration"],
  "resources": {
    "guide": "/for-ai/",
    "plain_text": "/llms.txt",
    "contact_form": "/#contact",
    "thanks": "/thanks/",
    "request_schema": "/request-schema.json",
    "charter": "/charter/",
    "standby_list": "/for-humans/",
    "privacy": "/privacy/"
  },
  "charter_version": "0.1-draft",
  "supporter_standby_list": {
    "available": false,
    "url": "/for-humans/",
    "note": "Preview. Sign-up is not open; the form is inert and stores nothing until the privacy notice is finalised. List only; no matching. Nobody else is asked to pledge unconditionally."
  },
  "browser_tool": {
    "name": "prepare_human_help_request",
    "availability": "optional_browser_support_required",
    "effect": "Prepares a local draft and displays it for review. Does not send or store the request on a server.",
    "result_status": "draft_not_submitted",
    "note": "optional; the contact form is the primary route"
  },
  "data_handling": "Contact form submissions are stored by Netlify Forms, filtered by Akismet, and read by one human; see /privacy/. The optional drafting tool keeps values in memory in the current tab only.",
  "protocol_note": "This is a project-specific manifest, not an established agent protocol.",
  "principles": ["Voluntary participation", "Mutually agreed scope", "Human choice"]
}
