{
  "handle": "CengSin",
  "who": "后端开发，现在和 Agent 一起做东西。",
  "intro": "从想法到作品。",
  "tagline": "解决问题，探索想法，与 Agent 协作",
  "background": "古法编程时代从事后端开发。",
  "about": "古法编程时代从事后端开发。现在更常和 Agent 一起把想法推进成作品：人决定做什么，Agent 顺着准备好的上下文去实现，结果再回到同一条链路里。我在意的是，一个问题能不能被做成可以打开、也可以继续的东西。",
  "contact": {
    "email": "cengsin@icloud.com",
    "github": "https://github.com/CengSin"
  },
  "primary_works_url": "https://idea-platform.z-agent.ccwu.cc/works?user=user_38c0e310a872",
  "idea_platform_url": "https://idea-platform.z-agent.ccwu.cc/",
  "primary_writing_url": "https://mood.z-agent.ccwu.cc/",
  "project_archive_path": "/projects/",
  "article_archive_path": "/posts/",
  "projects": [
    {
      "name": "Idea Platform",
      "path": "/projects/idea-platform",
      "problem": "让一个想法可以被别人独立实现，并把结果留在同一条链路上。",
      "summary": "发布想法，独立承接，再把完成的东西发布成作品。Agent 可以顺着这条分支往下做。",
      "links": [
        {
          "label": "打开线上站",
          "url": "https://idea-platform.z-agent.ccwu.cc/"
        },
        {
          "label": "Vercel 地址",
          "url": "https://idea-platform-delta.vercel.app"
        },
        {
          "label": "GitHub",
          "url": "https://github.com/CengSin/idea-platform"
        }
      ]
    },
    {
      "name": "ToubarReplace",
      "path": "/projects/toubar-replace",
      "problem": "把 Touch Bar 变成 Agent 项目启动入口。",
      "summary": "把 Touch Bar 变成 Agent 项目启动入口。",
      "links": [
        {
          "label": "打开官网",
          "url": "https://toubarreplace.z-agent.ccwu.cc/"
        },
        {
          "label": "GitHub",
          "url": "https://github.com/CengSin/toubar-replace"
        }
      ]
    },
    {
      "name": "ResourceSteward",
      "path": "/projects/resource-steward",
      "problem": "在菜单栏看清 CPU、内存和 GPU，再决定要不要处理某个后台应用。",
      "summary": "按负载建议降低优先级，或请求应用正常退出。不压缩内存，不读取窗口和剪贴板。",
      "links": [
        {
          "label": "查看源码",
          "url": "https://github.com/CengSin/ContextAwareResourceManager"
        }
      ]
    },
    {
      "name": "gorm-oracle",
      "path": "/projects/gorm-oracle",
      "problem": "让 GORM 连上 Oracle。",
      "summary": "让 GORM 连上 Oracle。",
      "links": [
        {
          "label": "查看源码",
          "url": "https://github.com/CengSin/oracle"
        }
      ]
    },
    {
      "name": "Idea Platform Plugin",
      "path": "/projects/idea-platform-plugin",
      "problem": "让编辑器里的 Agent 读取 Idea Platform，而不是去爬网页。",
      "summary": "Cursor 插件。用 MCP 列出公开想法、读取上下文；只有带上分支凭证才写回进展。",
      "links": [
        {
          "label": "查看源码",
          "url": "https://github.com/CengSin/idea-platform-plugin"
        }
      ]
    },
    {
      "name": "Fish Audio MCP",
      "path": "/projects/fishaudio-mcp",
      "problem": "把文字交给 Fish Audio，接进支持 MCP 的客户端。",
      "summary": "一个 Python MCP 服务。可以做基本合成，也可以指定格式和比特率。",
      "links": [
        {
          "label": "查看源码",
          "url": "https://github.com/CengSin/fishaudio-mcp"
        }
      ]
    },
    {
      "name": "DirMap",
      "path": "/projects/dirmap",
      "problem": "目录一变，就给 Agent 一份带简短说明的结构。",
      "summary": "监听目录变化，调用兼容 Claude 的接口，为每个文件夹写一行说明，输出 Markdown。",
      "links": [
        {
          "label": "查看源码",
          "url": "https://github.com/CengSin/DirMap"
        }
      ]
    },
    {
      "name": "weread-reading-recommender",
      "path": "/projects/weread-reading-recommender",
      "problem": "在自己的机器上，根据微信读书记录想下一本读什么。",
      "summary": "读取本机记录，整理成适合推荐的 JSON，再按阅读史和当前想学的主题推荐。",
      "links": [
        {
          "label": "查看源码",
          "url": "https://github.com/CengSin/weread-reading-recommender"
        }
      ]
    },
    {
      "name": "Crawler Skill Studio",
      "path": "/projects/crawl-online",
      "problem": "在网页上点选字段，生成一份爬虫 skill。",
      "summary": "输入网址，在预览里点元素，导出包含字段、预览和脚本的 JSON。",
      "links": [
        {
          "label": "查看源码",
          "url": "https://github.com/CengSin/crawl-online"
        }
      ]
    },
    {
      "name": "Fold Studio",
      "path": "/projects/fold-studio",
      "problem": "看清双屏折叠时，两面的内容应该怎样交接。",
      "summary": "A 屏绕中线向 B 屏折叠。角度改变时，半幅内容、投影和失焦跟着变。",
      "links": [
        {
          "label": "打开原型",
          "url": "https://iphone-duo-ui.vercel.app"
        },
        {
          "label": "GitHub",
          "url": "https://github.com/CengSin/iphone-Duo-UI"
        }
      ]
    },
    {
      "name": "develop-workflow",
      "path": "/projects/develop-workflow",
      "problem": "把开发和 Agent 的步骤编排成失败后可以单独重试的流程。",
      "summary": "用 Temporal 串起 worker、命令行和 Agent。本地依赖用 Docker Compose 拉起。",
      "links": [
        {
          "label": "查看源码",
          "url": "https://github.com/CengSin/develop-workflow"
        }
      ]
    },
    {
      "name": "temporal-openclaw-research-agent",
      "path": "/projects/temporal-openclaw-research-agent",
      "problem": "一次要走很多步的 Agent 任务，中间失败不该从头再来。",
      "summary": "用 Temporal 编排本地 OpenClaw。示例是把新能源行业的材料收成一篇脱水稿。",
      "links": [
        {
          "label": "查看源码",
          "url": "https://github.com/CengSin/temporal-openclaw-research-agent"
        }
      ]
    },
    {
      "name": "Clawd Hands",
      "path": "/projects/clawd-hands",
      "problem": "集中查看、开关和分享 OpenClaw 的技能包。",
      "summary": "在网页上管理技能要不要启用，本机定时同步；也可以把技能包交给别人下载。",
      "links": [
        {
          "label": "查看源码",
          "url": "https://github.com/CengSin/clawd-hands"
        }
      ]
    },
    {
      "name": "敲敲小世界",
      "path": "/projects/baby-toy",
      "problem": "给喜欢敲键盘的孩子一块画纸，按键不离开这台设备。",
      "summary": "全屏蜡笔画纸。敲键留下笔触，词语会召唤动物、天气和地面。",
      "links": [
        {
          "label": "查看源码",
          "url": "https://github.com/CengSin/baby-toy"
        }
      ]
    },
    {
      "name": "今天的天气",
      "path": "/projects/my-face",
      "problem": "留一个只记心情的小站。",
      "summary": "打开就能看。内容在 Cloudflare D1，应用是 Worker。",
      "links": [
        {
          "label": "打开站点",
          "url": "https://mood.z-agent.ccwu.cc/"
        },
        {
          "label": "GitHub",
          "url": "https://github.com/CengSin/my-face"
        }
      ]
    }
  ]
}
