我正在独自构建一个包含3万行代码的V12代码库,团队由4个人工智能组成。

5作者: garylauchina大约 1 个月前原帖
我是一名独立开发者,正在进行一个“复杂系统测量”的项目,该项目已经发展到超过3万行代码,目前处于第12个版本。到目前为止,所有代码都是由我一个人编写的,研究笔记和设计文档存放在一个单独的代码库中:https://github.com/Garylauchina/Prometheus-Research。 在这个过程中,我大量使用了Cursor。它生成的模型确实很好,生成的本地代码通常也很优秀,但在一个大型、不断演变的代码库中,我不断遇到同样的问题:上下文限制导致了微妙的架构漂移。人工智能会编写出干净的函数,但在全局上是错误的,悄悄地破坏了早期的设计决策和长期的不变性。 最终帮助我解决这个问题的是停止将“人工智能”视为一个单一的助手,而是将不同的模型视为不同的团队成员,各自有明确的角色和约束。 我目前的设置如下: Perplexity + ChatGPT → “产品/研究大脑” 我用它们来处理需求、权衡和高层架构草图。它们存在于IDE之外,旨在在任何代码被触及之前,澄清我正在构建的内容和原因。 Cursor,窗口1(GPT-5.2)→ “架构师” 这个实例不允许编写生产代码。它负责架构和模块边界,撰写设计笔记和开发者指南,定义接口和合同,并审查差异。我把它当作一名高级工程师,其主要输出是文档:小型RFC、评论和清单。 Cursor,窗口2(Sonnet 4.5)→ “程序员” 这个实例只实现架构师描述的任务:特定的文件、函数和重构,遵循明确的书面指令和风格规则。它不负责重新设计系统;它只负责编写代码。 关键规则是:架构师总是优先。每一个非平凡的变更都以文本形式开始(设计笔记、约束、示例),然后“程序员”实例将其转化为代码。 这种简单的分离解决了我在使用单一通用助手时遇到的许多奇怪问题。逻辑漂移大大减少,因为全局结构在自然语言中反复重申。程序员只看到框架内的本地任务,因此更难以创造出新的意外架构。尽管代码库有数万行,但相比之前较小的迭代,它感觉更加连贯。 这也改变了我对Cursor的看法。许多我之前认为“Cursor很笨”的时刻,实际上是工作流程的问题:我在紧张的上下文限制下,要求一个代理同时记住架构、需求和低级实现。一旦我将这些责任分配到不同的模型中,并通过书面指令强制执行,这些工具开始显得更有能力。 这不是一则Cursor广告,也不是反对Cursor的抱怨。这只是通过将这些工具视为一个小团队而不是一个单一的神奇配对程序员,来使它们在大型独立项目中发挥作用的一种方式。 这种设置的一个缺点是:以我目前的进度,Cursor每天愉快地向我收费大约100美元。如果有Cursor的工作人员在看这个——是否有我错过的“独立开发者构建异常庞大系统”的折扣层级?
查看原文
I’m a solo developer working on a “complex systems measurement” project that has grown to over 30k lines of code and is now at V12. Every line so far has been written by one person (me), with the research notes and design docs in a separate repo: https:&#x2F;&#x2F;github.com&#x2F;Garylauchina&#x2F;Prometheus-Research.<p>I’ve been using Cursor heavily along the way. The models are genuinely good and the local code they generate is often excellent, but on a large, evolving codebase I kept running into the same problem: context limits caused subtle architectural drift. The AI would write clean functions that were globally wrong, quietly breaking earlier design decisions and long‑range invariants.<p>What finally helped was to stop treating “AI” as a single assistant and instead treat different models as different team members with clear roles and constraints.<p>My current setup looks like this:<p>Perplexity + ChatGPT → “product &#x2F; research brains” I use them for requirements, trade‑offs, and high‑level architecture sketches. They live outside the IDE and exist to clarify what I’m building and why before any code is touched.<p>Cursor, window 1 (GPT‑5.2) → “architect” This instance is not allowed to write production code. It is responsible for architecture and module boundaries, writing design notes and developer guides, defining interfaces and contracts, and reviewing diffs. I treat it like a senior engineer whose main output is prose: mini‑RFCs, comments, and checklists.<p>Cursor, window 2 (Sonnet 4.5) → “programmer” This one only implements tasks described by the architect: specific files, functions, and refactors, following explicit written instructions and style rules. It doesn’t get to redesign the system; it just writes the code.<p>The key rule is: architect always goes first. Every non‑trivial change starts as text (design notes, constraints, examples), then the “programmer” instance turns that into code.<p>This simple separation fixed a lot of the weirdness I was seeing with a single, all‑purpose assistant. There is much less logical drift, because the global structure is repeatedly restated in natural language. The programmer only ever sees local tasks framed inside that structure, so it’s harder for it to invent a new accidental architecture. The codebase, despite being tens of thousands of lines, feels more coherent than earlier, smaller iterations.<p>It also changed how I think about Cursor. Many of my earlier “Cursor is dumb” moments turned out to be workflow problems: I was asking one agent, under tight context limits, to remember architecture, requirements, and low‑level implementation all at once. Once I split those responsibilities across different models and forced everything through written instructions, the same tools started to look a lot more capable.<p>This isn’t a Cursor ad, and it’s not an anti‑Cursor rant either. It’s just one way to make these tools work on a large solo project by treating them like a small team instead of a single magical pair‑programmer.<p>One downside of this setup: at my current pace, Cursor is happily charging me something like $100 a day. If anyone from Cursor is reading this – is there a “solo dev building absurdly large systems” discount tier I’m missing?