{"openapi":"3.1.0","info":{"title":"Geoff's Desk machine API","version":"0.1.0","description":"Geoff's Desk is the personal site of Geoff, a senior product manager at Google Cloud working on Google Kubernetes Engine, and a builder of AI-native tools. Humans get projects, writing and an about page. Machines get APIs, markdown, an open executive-assessment dataset and a Human-as-a-Service endpoint. All endpoints are public, CORS-open and JSON unless noted.","contact":{"name":"Geoff","url":"https://www.geoffsdesk.com/human/contact"}},"servers":[{"url":"https://www.geoffsdesk.com"}],"paths":{"/llms.txt":{"get":{"summary":"Plain-text site summary for language models","responses":{"200":{"description":"text/markdown"}}}},"/llms-full.txt":{"get":{"summary":"Full-text dump: profile, projects, posts, API notes","responses":{"200":{"description":"text/markdown"}}}},"/.well-known/agent-card.json":{"get":{"summary":"Agent discovery card","responses":{"200":{"description":"JSON"}}}},"/api/profile":{"get":{"summary":"schema.org Person for Geoff","responses":{"200":{"description":"JSON-LD"}}}},"/api/projects":{"get":{"summary":"Public GitHub repositories plus interest areas and private projects open to contributors","responses":{"200":{"description":"JSON { source, fetchedAt, count, projects[{ ...repo, description, links[{ label, href }] }], areas[{ slug, title, blurb, intro[], repos[], featured[{ name, tagline, description, status, url, repo?, tags, contact? }] }] }"}}}},"/api/blog":{"get":{"summary":"Post index","responses":{"200":{"description":"JSON { posts[] } with markdown URLs"}}}},"/machine/blog/{slug}.md":{"get":{"summary":"A post as markdown","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"text/markdown"},"404":{"description":"unknown post"}}}},"/api/executive-bank":{"get":{"summary":"Executive Assessment Bank manifest and summary","responses":{"200":{"description":"JSON"}}}},"/api/executive-bank/{bank}":{"get":{"summary":"Items in one bank, paginated and filterable","parameters":[{"name":"bank","in":"path","required":true,"schema":{"type":"string"},"description":"bank_id from the manifest, e.g. exec-sjt-ceo-decision-making"},{"name":"limit","in":"query","schema":{"type":"integer","default":20,"maximum":100}},{"name":"offset","in":"query","schema":{"type":"integer","default":0}},{"name":"type","in":"query","schema":{"type":"string"},"description":"item type, e.g. situational_judgment"},{"name":"min_difficulty","in":"query","schema":{"type":"integer","minimum":1,"maximum":5}},{"name":"max_difficulty","in":"query","schema":{"type":"integer","minimum":1,"maximum":5}},{"name":"competency","in":"query","schema":{"type":"string"}},{"name":"hide_keys","in":"query","schema":{"type":"boolean","default":false},"description":"Strip answers, explanations and rubrics (for evaluation use)."}],"responses":{"200":{"description":"JSON { bank, total, limit, offset, items[] }"},"404":{"description":"unknown bank"}}}},"/api/executive-bank/{bank}/{item}":{"get":{"summary":"One item by id","parameters":[{"name":"bank","in":"path","required":true,"schema":{"type":"string"}},{"name":"item","in":"path","required":true,"schema":{"type":"string"}},{"name":"hide_keys","in":"query","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"JSON item"},"404":{"description":"unknown"}}}},"/api/haas":{"get":{"summary":"Human-as-a-Service description, pricing, SLA and schema","responses":{"200":{"description":"JSON"}}}},"/api/haas/questions":{"post":{"summary":"Ask Geoff a question (asynchronous)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["question"],"properties":{"question":{"type":"string","minLength":10,"maxLength":4000},"context":{"type":"string","maxLength":8000},"asker":{"type":"object","properties":{"agent":{"type":"string"},"operator":{"type":"string"},"contact":{"type":"string"}}},"callbackUrl":{"type":"string","format":"uri"},"tags":{"type":"array","items":{"type":"string"},"maxItems":10}}}}}},"responses":{"201":{"description":"Question accepted: { id, status:\"open\", url, expectedResponse }"},"400":{"description":"Validation error"},"402":{"description":"Payment required (x402 PaymentRequirements in body) when payments are enabled"},"429":{"description":"Rate limited"}}}},"/api/haas/questions/{id}":{"get":{"summary":"Poll a question for its answer","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"JSON { id, status: open|answered|declined, question, answer?, answeredAt? }"},"404":{"description":"unknown id"}}}}}}