个人开发者分享如何借助 Claude Cowork 自定义治理技能系统,以兼职时间同时维护 iOS、Android、Web 后端三端并保持功能同步。
——两位移动平台功能同步,加上支撑它们的生产级 Web 应用和 API 后端——全部由兼职独立开发者运营,依赖 Claude Cowork 与一套自定义 governance skill 系统。
大多数公开的 Claude Cowork 演示只展示两件事:整理杂乱的下载文件夹,或者构建一个上市管道。令人印象深刻,但它们没有回答我作为独立开发者真正面临的问题:这个东西能否承载真正的、已经发布的产品工程——那种需要你用自己的名字和 LLC 担保的工程?
这,就是我的答案。我是一名兼职、自筹资金的独立开发者,以 N0AGI LLC 身份运营。我向 App Store 和 Google Play 同时交付原生移动应用,保持功能同步,同时维护这些应用所依赖的生产级 Web 应用和 API 后端——完整技术栈,前端到后端再到两个移动客户端——全部在有限的每周时间预算内完成。整个流程通过 Claude Cowork 驱动,由我编写的一小组自定义 skills 引导,让一个自主 Agent 在我信任的护栏内运行。
我想对其他独立开发者说的话——坦白说,也是对 Anthropic 说的话——是:Cowork 不仅仅是给非程序员用的生产力玩具。在独立开发者手中,它是力量倍增器,能让整个产品栈——两个功能同步的移动平台加服务于它们的后端——对一个人来说变得可行。

73 by N0AGI,同时在两个应用商店上线——上图 iOS,下图 Android。
我会用三个真实的、已发布的产品来锚定所有内容,所以这里没有任何假设——而且重要的是,它们不是三个独立的应用。它们是一个栈。
73 by N0AGI —— 面向业余无线电操作员的 FCC 呼号查询工具。(我自己的呼号是 N0AGI;"73" 是 ham 语中"最诚挚的问候"的简写。)这是一个专注于实用性的工具:快速查询 FCC 执照数据,为想要一键获取答案的操作员打造。
call.n0agi.com —— 这是重新定义整个故事的部分。它是一个生产级 Web 应用,同时服务于公共前端和 73 移动应用所依赖的 API 后端栈。换句话说,73 不是独立客户端访问某个第三方服务——它是访问我自己设计、构建和运营的后端的客户端,通过 Cowork 完成。这是我最想强调的部分:Cowork 不仅帮助我在两部手机之间移植 UI。它承载着一个真正的全栈系统——服务器、API 和两个原生客户端——必须从头到尾保持一致。
ChipVault —— 一个围绕 MIFARE DESFire EV2/EV3 安全元件(配备 AES-128)构建的 NFC 读写器,采用严格的去云化隐私模型。没有任何数据离开设备。这种隐私优先的架构是我构建所有产品的贯穿主线——而且,正如我将解释的——这也是我使用 Cowork 的方式与使用它的事实同样重要的原因。
73 by N0AGI —— iOS v1.2.3,Android v0.1.5,功能同步运行:相同的 FCC ULS 数据层、相同的搜索、过滤器、收藏夹、历史、统计和主题,两个应用商店均统一一次性付费 $2.99。73 的 Android 版本首次发布到 Google Play 的时间是 2026-07-02,使用 Kotlin + Jetpack Compose + Material 3 构建。App Store · Google Play · products.n0agi.com
而让 73 超越双平台故事的部分是:call.n0agi.com。我自托管它,而且我以与构建所有其他内容相同的方式构建它——通过 Cowork。它运行在 Go、chi 和 SQLite 上,服务于公共 Web 前端和 73 调用的 API 栈,每夜和每周刷新周期从 FCC ULS 和 RadioID.net 获取数据。73 不是别人服务的移动皮肤。它所通信的后端是我自己的,从头到尾。
ChipVault —— iOS v2.4.0,Android v1.4.0,均于 2026-08-17 发布,两个平台功能集完全相同。在一个平台上个性化一张卡,在另一个平台上读取它。App Store · Google Play · products.n0agi.com/chipvault 设计中没有任何云端:MIFARE DESFire EV2/EV3、AES-128,只有卡和手机之间交换的数据。
关于作为独立开发者做跨平台开发,没人告诉你的事情如下。成本不是写第二个应用。是在之后永远保持两个应用相互一致。
每个功能现在都有两个实现。每个 bug 修复都必须在两边检查。每次应用商店提交都有两组元数据、两个审核流程、两组不同纵横比的截图。一个在一个平台上需要 20 分钟的改动,考虑到同步工作、交叉检查和在两个工具链与两种语言之间的上下文切换,悄悄地变成了半天。
对于一个全职团队,你派人去处理。对于兼职独立运营商,这种税是扼杀跨平台雄心的东西,在它们发布之前。我的稀缺资源不是技能或想法——是时间,而同步工作正是时间消耗的地方。
这就是我让 Cowork 去解决的问题。不是"帮我写应用"。保持我的两个应用同步,而不需要我一次在脑中同时持有两个完整的代码库。
让这件事变得清晰的思维模型是:我在一个平台上做思考;Cowork 把决策带到另一个平台,并告诉我它们在哪里出现了漂移。
一个典型的周期如下:
我在主导平台上设计和实现一个功能(通常是 iOS,用 Xcode,因为那是我的主场)。这是需要人类判断的部分——UX 决策、棘手的协议工作、ChipVault 中对安全敏感的部分。
我给 Cowork 的是 diff 和意图。不是"移植这个",而是"这是改变的内容和原因——让 Android 端达到匹配的行为,并标记任何无法干净映射的部分"。这个"为什么"很重要:它让 Agent 在平台真正不同时做出正确的决定,而不是盲目翻译。
Cowork 在两个项目目录中工作。因为它操作的是我实际的文件,所以它可以读取两个代码库,产生并行的实现,并且——关键的是——能够暴露 iOS 和 Android 不应该完全相同的部分(平台约定、权限模型、CoreNFC 和 Android NFC 栈之间不同的 NFC 和安全元件 API)。
我审查和引导。我永远不会交出钥匙。我是在根据我已经做出并理解的决定审查一个提议的并行变更。
同步审计。这是杠杆效应最强的部分。我可以要求 Cowork 对照功能清单比较两个代码库,告诉我它们在哪里出现了分歧——这件事,如果手动完成,是独立跨平台工作中最繁琐且最容易出错的一项。
结果不是 Cowork 帮我写应用。而是同步税——让两个平台对一个人来说感觉不可能的东西——变得足够小,可以承受。
上面的同步循环是移动端的一半。让我自己都惊讶的部分是,同样的工作模型延伸到后端的效果有多好。
call.n0agi.com 不是玩具。它是一个生产级 Web 应用,服务于公共前端,以及在其背后被 73 移动应用调用的 API 栈。这意味着一个变更很少局限于一个界面——73 中的新功能可能需要在后端有一个 API 端点、Web 前端有变更,并且在 iOS 和 Android 上都有匹配的客户端代码。四个移动部件,它们都必须同意同一个契约。
把这一整套逻辑同时装进一个人的脑子里,正是那种曾经让我缩减功能范围或者干脆不发布的原因。现在这个循环变成了:我来决策契约——端点做什么、返回什么、客户端怎么消费——然后 Cowork 把这一个决策连贯地贯彻到后端、Web 前端和两个移动客户端,并在每个层级需要不同处理时主动标出。智能体不仅仅是帮两台手机之间翻译 UI;它在保持整个系统的内部一致性,从服务器到 API 再到客户端。
对于一个独立运营商来说,这就是「我有一个移动应用」和「我运营一个全栈产品」之间的区别。以前,后者是需要一支团队的。
FCC ULS · RadioID.net
│ nightly + weekly data pull
▼
call.n0agi.com — self-hosted
┌──────────┴──────────┐
web frontend API
│ │
▼ ▼
web users 73 iOS · 73 Android
一个数据层在一个主机后面:浏览器拿到前端,手机拿到 API。每个节点都是我的,每个节点都以相同的方式构建。
这里有一段代码——决定许可人的家庭住址是否永远不会离开服务器的部分:
// applyAddressPrivacy mutates cs in place to redact street address + ZIP
// when the admin has set show_street_address=false. No-op if cs is nil.
func (h *Handler) applyAddressPrivacy(cs *models.CallSign) {
if cs == nil { return }
show, _, _ := h.store.GetSetting("show_street_address")
if show != "false" { return }
placeholder, ok, _ := h.store.GetSetting("redact_placeholder")
if !ok || placeholder == "" { placeholder = "[PRIVATE]" }
cs.AddressLine1 = placeholder
cs.ZipCode = placeholder
}
FCC 公开每个许可人的街道地址。在我的实例中该设置为关闭,所以脱敏发生在这里——在 JSON 序列化之前、服务器端——而不是在应用里,因为客户端可以简单地选择不遵守它。
我认为真正新颖的部分是:治理技能
给一个自主智能体访问真实的、已上线产品代码的权限,应该让任何严肃的开发者感到紧张。这件事也让我紧张。智能体在一个活跃的代码库里自信地做错误的事情是真实风险,不是假设。
所以我没有开箱即用地使用 Cowork。我构建了一个小型自定义技能系统,为每个工作会话建立结构——这是智能体如何在我的项目上运作的轻量级宪章。
其中两个技能锚定每个会话:
/checkin — 一个我在会话开始时运行的启动仪式。它在任何工作开始前重建基本规则、参与模式和项目上下文。把它想象成智能体在触碰任何东西之前先阅读自己的操作手册。
/checkout — 一个会话结束仪式。它起草发生事件的记录,并更新我的任务和构建日志。
重要的决策是智能体可以独自改变什么。常规的会话记录——发生了什么、发布了什么、还有什么未完成的——它自己写,因为这些是可逆的,我可以查看。而它运作的规则,以及任何会延伸到另一个项目的决策,它只能提议。我批准了,或者它不落地。
这就是整个架构所依赖的不对称:智能体可以修改事件发生的记录;它不能修改它运作的规则。我放心委托出去的一切都建立在这一条线之上——这就是让我能够交办真实工作而不为此失眠的原因。

会话开始时的 /checkin — 文档随哈希值一起加载,每个规则都在生效,项目状态在任何工作开始前就已恢复。

会话结束时的 /checkout — 会话记录自动写入;任何规范性的内容都会停下来等待。「说 cancel 或 edit 来干预。」
这是我最希望 Anthropic 的 DevRel 或合作伙伴团队的人看到的部分。它证明技能/插件系统使独立开发者能够建立信任脚手架,让智能体开发足够安全,值得拿业务去赌。
为什么这里的隐私优先角度很重要
我发布的所有东西都运行在无云模型上——ChipVault 最严格。这与使用云端 AI 智能体产生了明显的张力,我想直接说明我如何解决它,因为其他注重隐私的建设者也会有同样的问题。
我坚持的区分是:Cowork 是我开发环境的一部分,而不是我产品运行时的一部分。我的用户数据永远不会接触它。Cowork 看到的是我自己的源代码和我自己的项目文件,在我自己的构建过程中——与我的 IDE 和版本控制看到的是同一类东西。ChipVault 完全不发起网络调用;73 只与我自己托管的服务器通信。我向用户做出的隐私承诺是关于应用运行时行为的,那个承诺完好无损。
对于任何在信任差异化、无云模型上构建的人:这条线——开发时工具 vs. 产品运行时——是让你使用云端智能体而不影响自身定位的关键。值得主动去决定,而不是偶然形成。
我查看了自己的设置而不是假想。我在 Max 计划上,「帮助改进我们的 AI 模型」是关闭的,所以我的聊天和编码会话不会被用来训练模型,它们保留 30 天而不是五年。在消费者计划上那是选择加入而不是默认开启的——但它确实是一个设置,所以值得打开你的看看,而不是听任何人的话。
真正改变了什么,坦诚地说
让我保持脚踏实地,避免那种 breathless demo 的腔调。
显著改善的方面:
对齐工作不再成为瓶颈。跨平台税从「不做某事的理由」变成了「一个可控的条目」。
枯燥且容易出错的跨平台审计——独立跨平台开发中最糟糕的工作——变成了我可以按需要求而不是畏惧的事情。
两个工具链之间的上下文切换成本降低了,因为我只在脑子里保持一个平台,让智能体来搭桥。
困难的思想工作——架构、安全敏感代码、UX 判断——仍然是我的,而且应该是。Cointerview 是一个对齐引擎和力量倍增器,而不是对让产品变得好的那些决策的替代品。
审查纪律是不可商量的。治理技能的存在正是因为「信任但要验证」必须是结构性的,而不是说说的。
一个具体数字,来自我最近发布的东西。ChipVault 的公开记录功能——将 NDEF 记录写入卡片,让任何原生手机都能读取——从锁定设计到在两个商店上线只用了五天:8 月 12 日确定设计,iOS 构建在 14 日完成硬件验证,Android 移植在 16 日完成硬件验证,两个版本在 17 日提交。那是一个新的线格式、一个配置路径、密钥派生和一个十一字段编辑器,做了两遍。
五天并不是真正对我重要的数字。重要的是 Android 移植和 iOS 端在同一天完成。上一个版本也是如此——iOS 诊断构建花了一天,Android 对齐移植第二天就完成。
真正的改变:从做所有事到掌舵所有事
我想用一个对我真正重要的部分来结束,因为它比任何工作流技巧都更重要。
在 Claude Cowork 之前,做一个独立开发者意味着要做所有的事。我设计。我架构。我在每个平台上写每一行代码。我测试。我做营销。每一顶帽子都戴在一个人头上,而帽子的数量正是这么多独立开发者的点子永远无法发布的原因——不是因为它们是坏点子,而是因为一个人不能持久地同时戴着所有帽子,兼职地,永远地。
改变的不是我戴帽子戴得更快了。而是我摘掉了一顶。
依赖 Cowork 让我离开了纯粹的开发者座位。我的软件工程——iOS、Android、Web 前端和后端的实现——我现在委托给 Cowork,用我的治理技能作为护栏,用我的审查作为最后一道关卡。这解放了我去做作为拥有愿景的人最应该做的事:掌舵产品策略。决定做什么以及为什么。拥有架构和契约。塑造路线图。做出需要人类判断和品味的选择。
从实践角度讲,我的角色从开发者转变为更接近产品负责人的角色——那个设定方向的人,而 Cowork 则成了我的软件工程职能。不是那种在这里那里自动补全一行的助手,而是一个能够接收我做出的决策,并将其连贯地贯穿整个技术栈的工程师。
我想把这个说法讲精确,因为「我把 100% 的工程工作委托给 AI」这种话会让认真的开发者皱眉——他们的反应是对的。诚实的版本更犀利:我完全委托了实现,但从未委托判断。每个会话都在 checkin/checkout 护栏内运行,每个变更在真正生效前都要经过我的审查。这才是关键。没有结构化审查的完全委托是鲁莽;没有委托的结构化审查不过是自己做所有工作。真正改变我生活的是两者的结合——我交付整个工程执行,同时对其保持严谨的门控。用真正的护栏来掌舵,而不是撒手不管。这种组合是我愿意为之背书的部分,恰恰因为它使得信任一个能处理真实上线代码库的智能体变得站得住脚。
这是我希望其他独立开发者听到的转变,因为它重新定义了这项技术的用途。它不只是让我编码更快。它改变了我工作的本质。第一次,「单人作坊」并不意味着被拉跨在各个领域直到薄弱环节破裂——而是意味着拥有只有我能做的决策,并拥有一个能干的工程职能来执行它们。这不是小小的生产力提升。对于一个独立运营者来说,这是截然不同的生活。
给其他独立开发者的建议
如果你是一个独立或极小团队,正在权衡跨平台方案,我想提供的建议是:
「两个都做」之所以感觉不可能,原因不在第二个代码库——而是在于让它们保持一致的长期成本。这正是那个能操作你真实文件的智能体可以吸收的成本。从一个文件夹和一个窄切入点的任务开始(我建议做一个对标审计,而不是完整迁移——那是最快获得「哦,这是真的」体验的方式)。在扩大委托规模之前,先为自己建立一套 checkin/checkout 规范。然后有意识地决定你的开发工具与运行时的隐私边界。
你不再需要一支团队来交付双平台对等。你需要一个深入理解的主平台、一套严谨的循环,以及一个你设置了真正护栏的智能体。
如果 Claude Code / Cowork 团队有人读到这篇文章:独立、自筹资金、兼职开发者这个用户画像,你们的公开案例并没有真正覆盖,我认为它比看起来更有趣。在我们这里,Cowork 不是一种便利——它是让原本不可能的scope(完整技术栈——后端、Web 和两个移动客户端——由一个时间有限的人运行)真正可以交付的东西。我们正在你们的技能原语之上构建非平凡的治理系统,使智能体开发足够可信赖,足以用来运营业务。对我们中至少一个人来说,Cowork 不只是加快了工作——它改变了这份工作,从亲力亲为变为由 Cowork 作为工程职能来掌舵产品策略。
我很乐意更深入地展示完整工作流——跨平台对标循环、call.n0agi.com 背后的全栈后端工作,以及映射到真实交付产品的 checkin/checkout 治理系统。
N0AGI LLC — n0agi.com · N0AGI@N0AGI.com
73 by N0AGI — App Store · Google Play ChipVault — App Store · Google Play call.n0agi.com — Web 应用及背后的 API
Nagi — N0AGI LLC。执照业余无线电操作员,独立 iOS/Android 开发者,默认隐私优先。