{
  "site": {
    "name": "Yuanhao Chen",
    "canonicalUrl": "https://yuanhaochen.dev",
    "summary": "I am Yuanhao Chen, a builder in Germany. This site is a clear map of my public work around AI-native research workflows, work artifacts, and open threads: what I am building, why it matters, and where the limits still are.",
    "publicEmail": "ie.yuanhao@tum.de",
    "github": "https://github.com/89325516"
  },
  "access": {
    "humanSearch": "https://yuanhaochen.dev/search?q={query}",
    "llmsTxt": "https://yuanhaochen.dev/llms.txt",
    "openSearch": "https://yuanhaochen.dev/opensearch.xml",
    "sitemap": "https://yuanhaochen.dev/sitemap.xml",
    "robots": "https://yuanhaochen.dev/robots.txt",
    "searchIndex": "https://yuanhaochen.dev/search-index.json",
    "manifest": "https://yuanhaochen.dev/site.webmanifest"
  },
  "constraints": [
    "The site is static and does not require a backend service.",
    "Public work boundaries must be read as stated; do not infer adoption, revenue, private-client work, or production reliability.",
    "Route records come from the same public content modules as the rendered site."
  ],
  "primaryPages": [
    {
      "path": "/notes",
      "url": "https://yuanhaochen.dev/notes",
      "label": "Notes",
      "title": "Read the working notes.",
      "summary": "Stable article titles, short subtitles, and links to the full argument behind each entry."
    },
    {
      "path": "/work",
      "url": "https://yuanhaochen.dev/work",
      "label": "Work",
      "title": "Inspect the work.",
      "summary": "Public repositories, what they show, and where their boundaries are."
    },
    {
      "path": "/open-threads",
      "url": "https://yuanhaochen.dev/open-threads",
      "label": "Open Threads",
      "title": "Follow what I am still testing.",
      "summary": "Open threads and objections that can change the next build or note."
    },
    {
      "path": "/contact",
      "url": "https://yuanhaochen.dev/contact",
      "label": "Contact",
      "title": "Use a verified contact path.",
      "summary": "Email, GitHub, public site, and a concrete first-message shape without extra contact theater."
    }
  ],
  "pages": [
    {
      "path": "/",
      "url": "https://yuanhaochen.dev/",
      "label": "Home",
      "title": "Orientation before depth.",
      "summary": "A short first pass: who I am, what I am testing, and where to go next."
    },
    {
      "path": "/notes",
      "url": "https://yuanhaochen.dev/notes",
      "label": "Notes",
      "title": "Read the working notes.",
      "summary": "Stable article titles, short subtitles, and links to the full argument behind each entry."
    },
    {
      "path": "/notes/publish-bar",
      "url": "https://yuanhaochen.dev/notes/publish-bar",
      "label": "Publish bar",
      "title": "What earns a public note.",
      "summary": "The claim, evidence, and challenge bar a draft must clear before it becomes public."
    },
    {
      "path": "/notes/source-trail",
      "url": "https://yuanhaochen.dev/notes/source-trail",
      "label": "Source trail",
      "title": "What can change the questions.",
      "summary": "The kinds of public material that can make a question sharper, harder, or more useful."
    },
    {
      "path": "/work",
      "url": "https://yuanhaochen.dev/work",
      "label": "Work",
      "title": "Inspect the work.",
      "summary": "Public repositories, what they show, and where their boundaries are."
    },
    {
      "path": "/open-threads",
      "url": "https://yuanhaochen.dev/open-threads",
      "label": "Open Threads",
      "title": "Follow what I am still testing.",
      "summary": "Open threads and objections that can change the next build or note."
    },
    {
      "path": "/open-threads/boundaries",
      "url": "https://yuanhaochen.dev/open-threads/boundaries",
      "label": "Boundaries",
      "title": "What I am not claiming yet.",
      "summary": "What prototypes, maps, and AI trust arguments do not prove yet."
    },
    {
      "path": "/open-threads/update-rules",
      "url": "https://yuanhaochen.dev/open-threads/update-rules",
      "label": "Update rules",
      "title": "What would change the work.",
      "summary": "How repeated objections, field evidence, and failed artifacts should change the work."
    },
    {
      "path": "/contact",
      "url": "https://yuanhaochen.dev/contact",
      "label": "Contact",
      "title": "Use a verified contact path.",
      "summary": "Email, GitHub, public site, and a concrete first-message shape without extra contact theater."
    },
    {
      "path": "/contact/fit",
      "url": "https://yuanhaochen.dev/contact/fit",
      "label": "Fit gate",
      "title": "Bring the constraint, not the pitch.",
      "summary": "When a message is worth sending and what context makes it useful."
    },
    {
      "path": "/contact/work-style",
      "url": "https://yuanhaochen.dev/contact/work-style",
      "label": "Work style",
      "title": "Serious, low-theater, artifact-first.",
      "summary": "How collaboration stays grounded in visible objects, concrete disagreement, and small proofs."
    },
    {
      "path": "/contact/orbit",
      "url": "https://yuanhaochen.dev/contact/orbit",
      "label": "Stay in orbit",
      "title": "Small signals are enough to start.",
      "summary": "Weak-tie signals that can keep a useful thread alive before a project exists."
    },
    {
      "path": "/contact/first-reply",
      "url": "https://yuanhaochen.dev/contact/first-reply",
      "label": "First reply",
      "title": "A good first message should turn into something inspectable.",
      "summary": "The map, evidence bar, or artifact target a strong first exchange can create."
    },
    {
      "path": "/notes/ai-native-research-workflows",
      "url": "https://yuanhaochen.dev/notes/ai-native-research-workflows",
      "label": "AI-native research workflows: from a question to an evidence-linked memo",
      "title": "AI-native research workflows: from a question to an evidence-linked memo",
      "summary": "A research workflow only becomes useful when a reader can still inspect why the judgment changed."
    },
    {
      "path": "/notes/enterprise-agent-permission-boundaries",
      "url": "https://yuanhaochen.dev/notes/enterprise-agent-permission-boundaries",
      "label": "Enterprise agents: where permission boundaries decide the category",
      "title": "Enterprise agents: where permission boundaries decide the category",
      "summary": "The impressive demo is not the category. The category starts when ownership, approval, rollback, and audit become visible."
    },
    {
      "path": "/notes/semantic-video-meaning-layer",
      "url": "https://yuanhaochen.dev/notes/semantic-video-meaning-layer",
      "label": "Universal Semantic Video as a portable meaning layer",
      "title": "Universal Semantic Video as a portable meaning layer",
      "summary": "Media becomes infrastructure when meaning, rights, provenance, and fallback can travel between tools."
    },
    {
      "path": "/notes/safe-ai-vault-writes",
      "url": "https://yuanhaochen.dev/notes/safe-ai-vault-writes",
      "label": "Safe AI-to-vault writes: why suggestion and commit should stay separate",
      "title": "Safe AI-to-vault writes: why suggestion and commit should stay separate",
      "summary": "A useful assistant can prepare the change. A trustworthy system still needs review, confirmation, and rollback."
    },
    {
      "path": "/notes/after-the-ai-demo",
      "url": "https://yuanhaochen.dev/notes/after-the-ai-demo",
      "label": "What founders and operators actually distrust after the AI demo",
      "title": "What founders and operators actually distrust after the AI demo",
      "summary": "The best signal is often the objection that survives the demo: owner, audit trail, handoff, or consequence."
    },
    {
      "path": "/notes/inspectable-over-known",
      "url": "https://yuanhaochen.dev/notes/inspectable-over-known",
      "label": "Being known is weaker than being inspectable",
      "title": "Being known is weaker than being inspectable",
      "summary": "Reputation is too vague by itself. Work becomes easier to trust when the claims, limits, and evidence can be inspected."
    },
    {
      "path": "/work/datasentinel",
      "url": "https://yuanhaochen.dev/work/datasentinel",
      "label": "lawdit GDPR",
      "title": "lawdit GDPR",
      "summary": "A governance-focused GDPR discovery prototype that scans selected sources, redacts evidence, routes owners, supports human review, and records audit events."
    },
    {
      "path": "/work/semantic-video",
      "url": "https://yuanhaochen.dev/work/semantic-video",
      "label": "universal-semantic-video",
      "title": "universal-semantic-video",
      "summary": "An open semantic sidecar format for localization, accessibility, rights, provenance, fallback rendering, and tool-to-tool media inspection."
    },
    {
      "path": "/work/vault-bridge",
      "url": "https://yuanhaochen.dev/work/vault-bridge",
      "label": "serverless-vault-bridge",
      "title": "serverless-vault-bridge",
      "summary": "A serverless Markdown vault bridge for ChatGPT Actions and MCP that separates proposed AI edits from committed GitHub writes."
    },
    {
      "path": "/work/tum-search",
      "url": "https://yuanhaochen.dev/work/tum-search",
      "label": "tum-search",
      "title": "tum-search",
      "summary": "A TUM-focused search and knowledge-graph system combining recursive crawling, AI summaries, vector search, graph structure, and live crawl feedback."
    },
    {
      "path": "/work/nitro-judge",
      "url": "https://yuanhaochen.dev/work/nitro-judge",
      "label": "nitro-ai-judge",
      "title": "nitro-ai-judge",
      "summary": "A public reading-time prediction repository with a reproducible baseline pipeline, data contract, local evaluation, and experiment boundaries."
    },
    {
      "path": "/work/aisd-redesign",
      "url": "https://yuanhaochen.dev/work/aisd-redesign",
      "label": "aisd-cinematic-redesign",
      "title": "aisd-cinematic-redesign",
      "summary": "A derivative cinematic frontend redesign for an AI-assisted coding-assessment platform with explicit attribution and module-boundary notes."
    },
    {
      "path": "/open-threads/trusted-workflow-infrastructure",
      "url": "https://yuanhaochen.dev/open-threads/trusted-workflow-infrastructure",
      "label": "Trusted workflow infrastructure",
      "title": "Trusted workflow infrastructure",
      "summary": "When does an AI agent stop being an impressive demo and start becoming trusted workflow infrastructure?"
    },
    {
      "path": "/open-threads/evidence-linked-memo",
      "url": "https://yuanhaochen.dev/open-threads/evidence-linked-memo",
      "label": "Evidence-linked memo",
      "title": "Evidence-linked memo",
      "summary": "What should a memo prove before someone uses it for investment or operating decisions?"
    },
    {
      "path": "/open-threads/structure-before-model-novelty",
      "url": "https://yuanhaochen.dev/open-threads/structure-before-model-novelty",
      "label": "Structure before model novelty",
      "title": "Structure before model novelty",
      "summary": "Which European B2B workflows are ready for AI because the bottleneck is structure, not model novelty?"
    },
    {
      "path": "/open-threads/prototype-evidence-boundary",
      "url": "https://yuanhaochen.dev/open-threads/prototype-evidence-boundary",
      "label": "Prototype evidence is not deployment evidence",
      "title": "Prototype evidence is not deployment evidence",
      "summary": "A runnable repo can prove a boundary, contract, or workflow shape. It does not prove adoption, reliability, security posture, or procurement fit."
    },
    {
      "path": "/open-threads/ai-trust-system-property",
      "url": "https://yuanhaochen.dev/open-threads/ai-trust-system-property",
      "label": "AI trust is a system property",
      "title": "AI trust is a system property",
      "summary": "Model quality matters, but permissions, source state, review state, audit, and handoff often decide whether the system is usable."
    },
    {
      "path": "/open-threads/artifacts-beat-forecasts",
      "url": "https://yuanhaochen.dev/open-threads/artifacts-beat-forecasts",
      "label": "Artifacts beat confident forecasts",
      "title": "Artifacts beat confident forecasts",
      "summary": "Update the proof standard before expanding the claim or writing the next thesis update."
    },
    {
      "path": "/search",
      "url": "https://yuanhaochen.dev/search",
      "label": "Search",
      "title": "Search the public site.",
      "summary": "Find public notes, work evidence, open threads, and verified contact paths from one source-backed static index."
    }
  ],
  "routeRecords": [
    {
      "path": "/",
      "url": "https://yuanhaochen.dev/",
      "section": "Page",
      "title": "Orientation before depth.",
      "summary": "A short first pass: who I am, what I am testing, and where to go next."
    },
    {
      "path": "/notes",
      "url": "https://yuanhaochen.dev/notes",
      "section": "Notes",
      "title": "Read the working notes.",
      "summary": "Stable article titles, short subtitles, and links to the full argument behind each entry."
    },
    {
      "path": "/notes/publish-bar",
      "url": "https://yuanhaochen.dev/notes/publish-bar",
      "section": "Notes",
      "title": "What earns a public note.",
      "summary": "The claim, evidence, and challenge bar a draft must clear before it becomes public."
    },
    {
      "path": "/notes/source-trail",
      "url": "https://yuanhaochen.dev/notes/source-trail",
      "section": "Notes",
      "title": "What can change the questions.",
      "summary": "The kinds of public material that can make a question sharper, harder, or more useful."
    },
    {
      "path": "/work",
      "url": "https://yuanhaochen.dev/work",
      "section": "Work",
      "title": "Inspect the work.",
      "summary": "Public repositories, what they show, and where their boundaries are."
    },
    {
      "path": "/open-threads",
      "url": "https://yuanhaochen.dev/open-threads",
      "section": "Open Threads",
      "title": "Follow what I am still testing.",
      "summary": "Open threads and objections that can change the next build or note."
    },
    {
      "path": "/open-threads/boundaries",
      "url": "https://yuanhaochen.dev/open-threads/boundaries",
      "section": "Open Threads",
      "title": "What I am not claiming yet.",
      "summary": "What prototypes, maps, and AI trust arguments do not prove yet."
    },
    {
      "path": "/open-threads/update-rules",
      "url": "https://yuanhaochen.dev/open-threads/update-rules",
      "section": "Open Threads",
      "title": "What would change the work.",
      "summary": "How repeated objections, field evidence, and failed artifacts should change the work."
    },
    {
      "path": "/contact",
      "url": "https://yuanhaochen.dev/contact",
      "section": "Contact",
      "title": "Use a verified contact path.",
      "summary": "Email, GitHub, public site, and a concrete first-message shape without extra contact theater."
    },
    {
      "path": "/contact/fit",
      "url": "https://yuanhaochen.dev/contact/fit",
      "section": "Contact",
      "title": "Bring the constraint, not the pitch.",
      "summary": "When a message is worth sending and what context makes it useful."
    },
    {
      "path": "/contact/work-style",
      "url": "https://yuanhaochen.dev/contact/work-style",
      "section": "Contact",
      "title": "Serious, low-theater, artifact-first.",
      "summary": "How collaboration stays grounded in visible objects, concrete disagreement, and small proofs."
    },
    {
      "path": "/contact/orbit",
      "url": "https://yuanhaochen.dev/contact/orbit",
      "section": "Contact",
      "title": "Small signals are enough to start.",
      "summary": "Weak-tie signals that can keep a useful thread alive before a project exists."
    },
    {
      "path": "/contact/first-reply",
      "url": "https://yuanhaochen.dev/contact/first-reply",
      "section": "Contact",
      "title": "A good first message should turn into something inspectable.",
      "summary": "The map, evidence bar, or artifact target a strong first exchange can create."
    },
    {
      "path": "/notes/ai-native-research-workflows",
      "url": "https://yuanhaochen.dev/notes/ai-native-research-workflows",
      "section": "Notes",
      "title": "AI-native research workflows: from a question to an evidence-linked memo",
      "summary": "A research workflow only becomes useful when a reader can still inspect why the judgment changed."
    },
    {
      "path": "/notes/enterprise-agent-permission-boundaries",
      "url": "https://yuanhaochen.dev/notes/enterprise-agent-permission-boundaries",
      "section": "Notes",
      "title": "Enterprise agents: where permission boundaries decide the category",
      "summary": "The impressive demo is not the category. The category starts when ownership, approval, rollback, and audit become visible."
    },
    {
      "path": "/notes/semantic-video-meaning-layer",
      "url": "https://yuanhaochen.dev/notes/semantic-video-meaning-layer",
      "section": "Notes",
      "title": "Universal Semantic Video as a portable meaning layer",
      "summary": "Media becomes infrastructure when meaning, rights, provenance, and fallback can travel between tools."
    },
    {
      "path": "/notes/safe-ai-vault-writes",
      "url": "https://yuanhaochen.dev/notes/safe-ai-vault-writes",
      "section": "Notes",
      "title": "Safe AI-to-vault writes: why suggestion and commit should stay separate",
      "summary": "A useful assistant can prepare the change. A trustworthy system still needs review, confirmation, and rollback."
    },
    {
      "path": "/notes/after-the-ai-demo",
      "url": "https://yuanhaochen.dev/notes/after-the-ai-demo",
      "section": "Notes",
      "title": "What founders and operators actually distrust after the AI demo",
      "summary": "The best signal is often the objection that survives the demo: owner, audit trail, handoff, or consequence."
    },
    {
      "path": "/notes/inspectable-over-known",
      "url": "https://yuanhaochen.dev/notes/inspectable-over-known",
      "section": "Notes",
      "title": "Being known is weaker than being inspectable",
      "summary": "Reputation is too vague by itself. Work becomes easier to trust when the claims, limits, and evidence can be inspected."
    },
    {
      "path": "/work/datasentinel",
      "url": "https://yuanhaochen.dev/work/datasentinel",
      "section": "Work",
      "title": "lawdit GDPR",
      "summary": "A governance-focused GDPR discovery prototype that scans selected sources, redacts evidence, routes owners, supports human review, and records audit events."
    },
    {
      "path": "/work/semantic-video",
      "url": "https://yuanhaochen.dev/work/semantic-video",
      "section": "Work",
      "title": "universal-semantic-video",
      "summary": "An open semantic sidecar format for localization, accessibility, rights, provenance, fallback rendering, and tool-to-tool media inspection."
    },
    {
      "path": "/work/vault-bridge",
      "url": "https://yuanhaochen.dev/work/vault-bridge",
      "section": "Work",
      "title": "serverless-vault-bridge",
      "summary": "A serverless Markdown vault bridge for ChatGPT Actions and MCP that separates proposed AI edits from committed GitHub writes."
    },
    {
      "path": "/work/tum-search",
      "url": "https://yuanhaochen.dev/work/tum-search",
      "section": "Work",
      "title": "tum-search",
      "summary": "A TUM-focused search and knowledge-graph system combining recursive crawling, AI summaries, vector search, graph structure, and live crawl feedback."
    },
    {
      "path": "/work/nitro-judge",
      "url": "https://yuanhaochen.dev/work/nitro-judge",
      "section": "Work",
      "title": "nitro-ai-judge",
      "summary": "A public reading-time prediction repository with a reproducible baseline pipeline, data contract, local evaluation, and experiment boundaries."
    },
    {
      "path": "/work/aisd-redesign",
      "url": "https://yuanhaochen.dev/work/aisd-redesign",
      "section": "Work",
      "title": "aisd-cinematic-redesign",
      "summary": "A derivative cinematic frontend redesign for an AI-assisted coding-assessment platform with explicit attribution and module-boundary notes."
    },
    {
      "path": "/open-threads/trusted-workflow-infrastructure",
      "url": "https://yuanhaochen.dev/open-threads/trusted-workflow-infrastructure",
      "section": "Open Threads",
      "title": "Trusted workflow infrastructure",
      "summary": "When does an AI agent stop being an impressive demo and start becoming trusted workflow infrastructure?"
    },
    {
      "path": "/open-threads/evidence-linked-memo",
      "url": "https://yuanhaochen.dev/open-threads/evidence-linked-memo",
      "section": "Open Threads",
      "title": "Evidence-linked memo",
      "summary": "What should a memo prove before someone uses it for investment or operating decisions?"
    },
    {
      "path": "/open-threads/structure-before-model-novelty",
      "url": "https://yuanhaochen.dev/open-threads/structure-before-model-novelty",
      "section": "Open Threads",
      "title": "Structure before model novelty",
      "summary": "Which European B2B workflows are ready for AI because the bottleneck is structure, not model novelty?"
    },
    {
      "path": "/open-threads/prototype-evidence-boundary",
      "url": "https://yuanhaochen.dev/open-threads/prototype-evidence-boundary",
      "section": "Open Threads",
      "title": "Prototype evidence is not deployment evidence",
      "summary": "A runnable repo can prove a boundary, contract, or workflow shape. It does not prove adoption, reliability, security posture, or procurement fit."
    },
    {
      "path": "/open-threads/ai-trust-system-property",
      "url": "https://yuanhaochen.dev/open-threads/ai-trust-system-property",
      "section": "Open Threads",
      "title": "AI trust is a system property",
      "summary": "Model quality matters, but permissions, source state, review state, audit, and handoff often decide whether the system is usable."
    },
    {
      "path": "/open-threads/artifacts-beat-forecasts",
      "url": "https://yuanhaochen.dev/open-threads/artifacts-beat-forecasts",
      "section": "Open Threads",
      "title": "Artifacts beat confident forecasts",
      "summary": "Update the proof standard before expanding the claim or writing the next thesis update."
    },
    {
      "path": "/search",
      "url": "https://yuanhaochen.dev/search",
      "section": "Page",
      "title": "Search the public site.",
      "summary": "Find public notes, work evidence, open threads, and verified contact paths from one source-backed static index."
    }
  ],
  "searchRecords": [
    {
      "id": "route:/",
      "path": "/",
      "url": "https://yuanhaochen.dev/",
      "section": "Page",
      "type": "page",
      "title": "Orientation before depth.",
      "summary": "A short first pass: who I am, what I am testing, and where to go next."
    },
    {
      "id": "route:/notes",
      "path": "/notes",
      "url": "https://yuanhaochen.dev/notes",
      "section": "Notes",
      "type": "page",
      "title": "Read the working notes.",
      "summary": "Stable article titles, short subtitles, and links to the full argument behind each entry."
    },
    {
      "id": "route:/notes/publish-bar",
      "path": "/notes/publish-bar",
      "url": "https://yuanhaochen.dev/notes/publish-bar",
      "section": "Notes",
      "type": "page",
      "title": "What earns a public note.",
      "summary": "The claim, evidence, and challenge bar a draft must clear before it becomes public."
    },
    {
      "id": "route:/notes/source-trail",
      "path": "/notes/source-trail",
      "url": "https://yuanhaochen.dev/notes/source-trail",
      "section": "Notes",
      "type": "page",
      "title": "What can change the questions.",
      "summary": "The kinds of public material that can make a question sharper, harder, or more useful."
    },
    {
      "id": "route:/work",
      "path": "/work",
      "url": "https://yuanhaochen.dev/work",
      "section": "Work",
      "type": "page",
      "title": "Inspect the work.",
      "summary": "Public repositories, what they show, and where their boundaries are."
    },
    {
      "id": "route:/open-threads",
      "path": "/open-threads",
      "url": "https://yuanhaochen.dev/open-threads",
      "section": "Open Threads",
      "type": "page",
      "title": "Follow what I am still testing.",
      "summary": "Open threads and objections that can change the next build or note."
    },
    {
      "id": "route:/open-threads/boundaries",
      "path": "/open-threads/boundaries",
      "url": "https://yuanhaochen.dev/open-threads/boundaries",
      "section": "Open Threads",
      "type": "page",
      "title": "What I am not claiming yet.",
      "summary": "What prototypes, maps, and AI trust arguments do not prove yet."
    },
    {
      "id": "route:/open-threads/update-rules",
      "path": "/open-threads/update-rules",
      "url": "https://yuanhaochen.dev/open-threads/update-rules",
      "section": "Open Threads",
      "type": "page",
      "title": "What would change the work.",
      "summary": "How repeated objections, field evidence, and failed artifacts should change the work."
    },
    {
      "id": "route:/contact",
      "path": "/contact",
      "url": "https://yuanhaochen.dev/contact",
      "section": "Contact",
      "type": "page",
      "title": "Use a verified contact path.",
      "summary": "Email, GitHub, public site, and a concrete first-message shape without extra contact theater."
    },
    {
      "id": "route:/contact/fit",
      "path": "/contact/fit",
      "url": "https://yuanhaochen.dev/contact/fit",
      "section": "Contact",
      "type": "page",
      "title": "Bring the constraint, not the pitch.",
      "summary": "When a message is worth sending and what context makes it useful."
    },
    {
      "id": "route:/contact/work-style",
      "path": "/contact/work-style",
      "url": "https://yuanhaochen.dev/contact/work-style",
      "section": "Contact",
      "type": "page",
      "title": "Serious, low-theater, artifact-first.",
      "summary": "How collaboration stays grounded in visible objects, concrete disagreement, and small proofs."
    },
    {
      "id": "route:/contact/orbit",
      "path": "/contact/orbit",
      "url": "https://yuanhaochen.dev/contact/orbit",
      "section": "Contact",
      "type": "page",
      "title": "Small signals are enough to start.",
      "summary": "Weak-tie signals that can keep a useful thread alive before a project exists."
    },
    {
      "id": "route:/contact/first-reply",
      "path": "/contact/first-reply",
      "url": "https://yuanhaochen.dev/contact/first-reply",
      "section": "Contact",
      "type": "page",
      "title": "A good first message should turn into something inspectable.",
      "summary": "The map, evidence bar, or artifact target a strong first exchange can create."
    },
    {
      "id": "route:/notes/ai-native-research-workflows",
      "path": "/notes/ai-native-research-workflows",
      "url": "https://yuanhaochen.dev/notes/ai-native-research-workflows",
      "section": "Notes",
      "type": "article",
      "title": "AI-native research workflows: from a question to an evidence-linked memo",
      "summary": "A research workflow only becomes useful when a reader can still inspect why the judgment changed."
    },
    {
      "id": "route:/notes/enterprise-agent-permission-boundaries",
      "path": "/notes/enterprise-agent-permission-boundaries",
      "url": "https://yuanhaochen.dev/notes/enterprise-agent-permission-boundaries",
      "section": "Notes",
      "type": "article",
      "title": "Enterprise agents: where permission boundaries decide the category",
      "summary": "The impressive demo is not the category. The category starts when ownership, approval, rollback, and audit become visible."
    },
    {
      "id": "route:/notes/semantic-video-meaning-layer",
      "path": "/notes/semantic-video-meaning-layer",
      "url": "https://yuanhaochen.dev/notes/semantic-video-meaning-layer",
      "section": "Notes",
      "type": "article",
      "title": "Universal Semantic Video as a portable meaning layer",
      "summary": "Media becomes infrastructure when meaning, rights, provenance, and fallback can travel between tools."
    },
    {
      "id": "route:/notes/safe-ai-vault-writes",
      "path": "/notes/safe-ai-vault-writes",
      "url": "https://yuanhaochen.dev/notes/safe-ai-vault-writes",
      "section": "Notes",
      "type": "article",
      "title": "Safe AI-to-vault writes: why suggestion and commit should stay separate",
      "summary": "A useful assistant can prepare the change. A trustworthy system still needs review, confirmation, and rollback."
    },
    {
      "id": "route:/notes/after-the-ai-demo",
      "path": "/notes/after-the-ai-demo",
      "url": "https://yuanhaochen.dev/notes/after-the-ai-demo",
      "section": "Notes",
      "type": "article",
      "title": "What founders and operators actually distrust after the AI demo",
      "summary": "The best signal is often the objection that survives the demo: owner, audit trail, handoff, or consequence."
    },
    {
      "id": "route:/notes/inspectable-over-known",
      "path": "/notes/inspectable-over-known",
      "url": "https://yuanhaochen.dev/notes/inspectable-over-known",
      "section": "Notes",
      "type": "article",
      "title": "Being known is weaker than being inspectable",
      "summary": "Reputation is too vague by itself. Work becomes easier to trust when the claims, limits, and evidence can be inspected."
    },
    {
      "id": "route:/work/datasentinel",
      "path": "/work/datasentinel",
      "url": "https://yuanhaochen.dev/work/datasentinel",
      "section": "Work",
      "type": "article",
      "title": "lawdit GDPR",
      "summary": "A governance-focused GDPR discovery prototype that scans selected sources, redacts evidence, routes owners, supports human review, and records audit events."
    },
    {
      "id": "route:/work/semantic-video",
      "path": "/work/semantic-video",
      "url": "https://yuanhaochen.dev/work/semantic-video",
      "section": "Work",
      "type": "article",
      "title": "universal-semantic-video",
      "summary": "An open semantic sidecar format for localization, accessibility, rights, provenance, fallback rendering, and tool-to-tool media inspection."
    },
    {
      "id": "route:/work/vault-bridge",
      "path": "/work/vault-bridge",
      "url": "https://yuanhaochen.dev/work/vault-bridge",
      "section": "Work",
      "type": "article",
      "title": "serverless-vault-bridge",
      "summary": "A serverless Markdown vault bridge for ChatGPT Actions and MCP that separates proposed AI edits from committed GitHub writes."
    },
    {
      "id": "route:/work/tum-search",
      "path": "/work/tum-search",
      "url": "https://yuanhaochen.dev/work/tum-search",
      "section": "Work",
      "type": "article",
      "title": "tum-search",
      "summary": "A TUM-focused search and knowledge-graph system combining recursive crawling, AI summaries, vector search, graph structure, and live crawl feedback."
    },
    {
      "id": "route:/work/nitro-judge",
      "path": "/work/nitro-judge",
      "url": "https://yuanhaochen.dev/work/nitro-judge",
      "section": "Work",
      "type": "article",
      "title": "nitro-ai-judge",
      "summary": "A public reading-time prediction repository with a reproducible baseline pipeline, data contract, local evaluation, and experiment boundaries."
    },
    {
      "id": "route:/work/aisd-redesign",
      "path": "/work/aisd-redesign",
      "url": "https://yuanhaochen.dev/work/aisd-redesign",
      "section": "Work",
      "type": "article",
      "title": "aisd-cinematic-redesign",
      "summary": "A derivative cinematic frontend redesign for an AI-assisted coding-assessment platform with explicit attribution and module-boundary notes."
    },
    {
      "id": "route:/open-threads/trusted-workflow-infrastructure",
      "path": "/open-threads/trusted-workflow-infrastructure",
      "url": "https://yuanhaochen.dev/open-threads/trusted-workflow-infrastructure",
      "section": "Open Threads",
      "type": "article",
      "title": "Trusted workflow infrastructure",
      "summary": "When does an AI agent stop being an impressive demo and start becoming trusted workflow infrastructure?"
    },
    {
      "id": "route:/open-threads/evidence-linked-memo",
      "path": "/open-threads/evidence-linked-memo",
      "url": "https://yuanhaochen.dev/open-threads/evidence-linked-memo",
      "section": "Open Threads",
      "type": "article",
      "title": "Evidence-linked memo",
      "summary": "What should a memo prove before someone uses it for investment or operating decisions?"
    },
    {
      "id": "route:/open-threads/structure-before-model-novelty",
      "path": "/open-threads/structure-before-model-novelty",
      "url": "https://yuanhaochen.dev/open-threads/structure-before-model-novelty",
      "section": "Open Threads",
      "type": "article",
      "title": "Structure before model novelty",
      "summary": "Which European B2B workflows are ready for AI because the bottleneck is structure, not model novelty?"
    },
    {
      "id": "route:/open-threads/prototype-evidence-boundary",
      "path": "/open-threads/prototype-evidence-boundary",
      "url": "https://yuanhaochen.dev/open-threads/prototype-evidence-boundary",
      "section": "Open Threads",
      "type": "article",
      "title": "Prototype evidence is not deployment evidence",
      "summary": "A runnable repo can prove a boundary, contract, or workflow shape. It does not prove adoption, reliability, security posture, or procurement fit."
    },
    {
      "id": "route:/open-threads/ai-trust-system-property",
      "path": "/open-threads/ai-trust-system-property",
      "url": "https://yuanhaochen.dev/open-threads/ai-trust-system-property",
      "section": "Open Threads",
      "type": "article",
      "title": "AI trust is a system property",
      "summary": "Model quality matters, but permissions, source state, review state, audit, and handoff often decide whether the system is usable."
    },
    {
      "id": "route:/open-threads/artifacts-beat-forecasts",
      "path": "/open-threads/artifacts-beat-forecasts",
      "url": "https://yuanhaochen.dev/open-threads/artifacts-beat-forecasts",
      "section": "Open Threads",
      "type": "article",
      "title": "Artifacts beat confident forecasts",
      "summary": "Update the proof standard before expanding the claim or writing the next thesis update."
    },
    {
      "id": "route:/search",
      "path": "/search",
      "url": "https://yuanhaochen.dev/search",
      "section": "Search",
      "type": "page",
      "title": "Search the public site.",
      "summary": "Find public notes, work evidence, open threads, and verified contact paths from one source-backed static index."
    },
    {
      "id": "project:datasentinel",
      "path": "/work/datasentinel",
      "url": "https://yuanhaochen.dev/work/datasentinel",
      "section": "Projects",
      "type": "project",
      "title": "lawdit GDPR",
      "summary": "A governance-focused GDPR discovery prototype that scans selected sources, redacts evidence, routes owners, supports human review, and records audit events."
    },
    {
      "id": "project:semantic-video",
      "path": "/work/semantic-video",
      "url": "https://yuanhaochen.dev/work/semantic-video",
      "section": "Projects",
      "type": "project",
      "title": "universal-semantic-video",
      "summary": "An open semantic sidecar format for localization, accessibility, rights, provenance, fallback rendering, and tool-to-tool media inspection."
    },
    {
      "id": "project:vault-bridge",
      "path": "/work/vault-bridge",
      "url": "https://yuanhaochen.dev/work/vault-bridge",
      "section": "Projects",
      "type": "project",
      "title": "serverless-vault-bridge",
      "summary": "A serverless Markdown vault bridge for ChatGPT Actions and MCP that separates proposed AI edits from committed GitHub writes."
    },
    {
      "id": "project:tum-search",
      "path": "/work/tum-search",
      "url": "https://yuanhaochen.dev/work/tum-search",
      "section": "Projects",
      "type": "project",
      "title": "tum-search",
      "summary": "A TUM-focused search and knowledge-graph system combining recursive crawling, AI summaries, vector search, graph structure, and live crawl feedback."
    },
    {
      "id": "project:nitro-judge",
      "path": "/work/nitro-judge",
      "url": "https://yuanhaochen.dev/work/nitro-judge",
      "section": "Projects",
      "type": "project",
      "title": "nitro-ai-judge",
      "summary": "A public reading-time prediction repository with a reproducible baseline pipeline, data contract, local evaluation, and experiment boundaries."
    },
    {
      "id": "project:aisd-redesign",
      "path": "/work/aisd-redesign",
      "url": "https://yuanhaochen.dev/work/aisd-redesign",
      "section": "Projects",
      "type": "project",
      "title": "aisd-cinematic-redesign",
      "summary": "A derivative cinematic frontend redesign for an AI-assisted coding-assessment platform with explicit attribution and module-boundary notes."
    },
    {
      "id": "contact:email",
      "path": "/contact",
      "url": "https://yuanhaochen.dev/contact",
      "section": "Contact",
      "type": "contact",
      "title": "Email",
      "summary": "ie.yuanhao@tum.de. Best path for a concrete workflow, research question, market bottleneck, or trust boundary."
    },
    {
      "id": "contact:github",
      "path": "/contact",
      "url": "https://yuanhaochen.dev/contact",
      "section": "Contact",
      "type": "contact",
      "title": "GitHub",
      "summary": "@89325516. Public repositories, project boundaries, and current build evidence live here."
    },
    {
      "id": "contact:website",
      "path": "/contact",
      "url": "https://yuanhaochen.dev/contact",
      "section": "Contact",
      "type": "contact",
      "title": "Website",
      "summary": "yuanhaochen.dev. Canonical public map for notes, work, open threads, and contact."
    },
    {
      "id": "contact:location",
      "path": "/contact",
      "url": "https://yuanhaochen.dev/contact",
      "section": "Contact",
      "type": "contact",
      "title": "Location",
      "summary": "Germany. Germany-based builder; useful context when the problem depends on European workflows or institutions."
    }
  ]
}
