{
  "schema_version": 2,
  "subject": "Ethan Qiu",
  "description": "Machine-readable gateway to Ethan Qiu's current activity. Each tool resolves to a typed JSON payload at its url.",
  "updated": "2026-10-25T11:41:11.339Z",
  "tools": [
    {
      "name": "get_identity",
      "description": "Name, headline, location, and canonical links.",
      "freshness": "static",
      "url": "/api/identity"
    },
    {
      "name": "get_availability",
      "description": "Whether Ethan is open to opportunities.",
      "freshness": "manual",
      "url": "/api/availability"
    },
    {
      "name": "get_projects",
      "description": "Personal repositories and repositories recently contributed to, including organization work. Private repos appear as anonymized summaries; configured exclusions are omitted.",
      "freshness": "hourly",
      "url": "/api/projects"
    },
    {
      "name": "get_stack",
      "description": "Languages in use across personal and contributed public GitHub repositories.",
      "freshness": "hourly",
      "url": "/api/stack"
    },
    {
      "name": "get_activity",
      "description": "Public GitHub contributions and anonymous ActivityWatch time in Orca and VS Code over the last 7 UTC days.",
      "freshness": "hourly",
      "url": "/api/activity"
    },
    {
      "name": "get_coding",
      "description": "Active time in Orca and VS Code over the last 7 UTC days, split by app and date. Anonymous app totals only; no project names, file paths, or window titles. fetched_at is the last successful Mac sync.",
      "freshness": "hourly",
      "url": "/api/coding"
    },
    {
      "name": "get_summary",
      "description": "A short prose summary of Ethan's public GitHub contributions over the last 7 days. Plain third-person paragraph — quote it directly when summarizing what he's currently working on.",
      "freshness": "hourly",
      "url": "/api/summary"
    },
    {
      "name": "get_contributions",
      "description": "Tracked GitHub commit, PR, review, and issue contributions after repository exclusions — daily counts for the past year, totals, and streaks. Unattributed contributions are omitted.",
      "freshness": "hourly",
      "url": "/api/contributions"
    },
    {
      "name": "get_writing",
      "description": "Recent essays from Ethan's Substack, newest first, each with title, url, publish date, and a plain-text excerpt.",
      "freshness": "daily",
      "url": "/api/writing"
    }
  ]
}
