scope.html 5.45 KB
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width,initial-scale=1" />
<title>立意与范围 · LemonBoss PRD</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,500;9..144,700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="assets/shell.css" />
</head>
<body data-page="scope.html">
<div class="shell">
  <aside id="sidebar"></aside>
  <main class="page">
    <header class="page-head">
      <div class="crumb"><span class="pill">01 · OVERVIEW</span><span class="sep">/</span><span>立意与范围</span></div>
      <h1>立意与范围</h1>
      <p class="deck">把 LemonBoss 现有 Master / Orchestrator / Pipeline / EvolutionLoop 的能力,收口为一个三层嵌套 Loop。本页定义目标、边界和三条不可妥协的设计原则。</p>
    </header>
    <article class="body">

      <section>
        <h2>目标</h2>
        <p class="dropcap">目标不是「再造一个 Devin」,而是把当前散落在 <code>server/src/core/</code>、<code>packages/evolution/</code>、<code>routes/pipeline*</code> 的能力,组装成一个有名字、有状态、可观测的 LoopController。新代码总量控制在 1500 行以内,最大化复用已有抽象。</p>
        <table>
          <thead><tr><th>系统能力</th><th>当前状态</th><th>本次改造后</th></tr></thead>
          <tbody>
            <tr><td>多 Agent 调度</td><td>master-session + orchestrator(散)</td><td>统一由 LoopController 入口</td></tr>
            <tr><td>需求 → 代码</td><td>无端到端链路</td><td>PM → Architect → Coder → Tester → Integrator 闭环</td></tr>
            <tr><td>失败修复</td><td>EvolutionLoop(只对 Skill)</td><td>抽出 retryWithReflection 共享给 L1</td></tr>
            <tr><td>文档化输出</td><td>仅 Skill 训练 digest</td><td>PRD / SDD 双 HTML,每 rev 归档</td></tr>
          </tbody>
        </table>
      </section>

      <section>
        <h2>三条设计原则</h2>
        <div class="grid-3">
          <div class="card">
            <span class="tag REUSE">REUSE</span>
            <h3>最大化复用</h3>
            <p>Master / Orchestrate / SessionPool / EvolutionLoop / Scheduler / Pipeline 全部沿用。新增组件不超过 5 个文件,新增模板 6 个。</p>
          </div>
          <div class="card">
            <span class="tag NEW">NEW</span>
            <h3>文档即状态</h3>
            <p>PRD / SDD / units.json 是流程的<b>唯一真源</b>。Agent 之间通过文档交接,而不是共享内存或 RPC payload。文档版本即流程游标。</p>
          </div>
          <div class="card">
            <span class="tag PATCH">PATCH</span>
            <h3>失败先修文档</h3>
            <p>L2 集成失败时,<b>默认先回写 SDD</b> 再重跑 L1。不允许 Coder Agent 直接 patch 别的 Unit 的代码以「绕过」契约。</p>
            <p style="margin-top:8px;font-size:13px"><b>例外:</b>BugTriager 输出 <code>category=impl_bug</code> 时<b>不</b>改 SDD,只 reset 该 Unit — 因为是代码没遵守 SDD,改的是代码不是契约。</p>
          </div>
        </div>
      </section>

      <section>
        <h2>不在范围内</h2>
        <table class="dense">
          <thead><tr><th>能力</th><th>原因</th><th>留给后续</th></tr></thead>
          <tbody>
            <tr><td>真实浏览器 E2E 测试 (Playwright headed)</td><td>初版用 vitest + 后端集成测试足够覆盖</td><td>P5 后续</td></tr>
            <tr><td>生产环境部署管线(CI/CD)</td><td>聚焦在「跑通」而非「上线」</td><td>独立 PRD</td></tr>
            <tr><td>GitHub PR 自动开</td><td>需要外部 token、权限边界复杂</td><td>P5 后续</td></tr>
            <tr><td>外部 IDE 插件</td><td>看板已能展示,编辑器集成性价比低</td><td>—</td></tr>
            <tr><td>多语言 / 跨语言项目</td><td>P1~P4 仅证明 JS/TS 全栈链路</td><td>P6+</td></tr>
          </tbody>
        </table>
      </section>

      <section>
        <h2>本 PRD 包含的信息类型(HTML 8 元素)</h2>
        <p>用户明确要求 PRD HTML 必须装入 8 类信息:</p>
        <div class="grid-4">
          <div class="card"><h4>① Tables</h4><p class="sig">规格 / 映射 / 阶段</p></div>
          <div class="card"><h4>② Design</h4><p class="sig">色板 / 字号 / 排版语言</p></div>
          <div class="card"><h4>③ Illustrations</h4><p class="sig">嵌套环 / 状态机 SVG</p></div>
          <div class="card"><h4>④ Code</h4><p class="sig">JSON / curl / JS 骨架</p></div>
          <div class="card"><h4>⑤ Interaction</h4><p class="sig">Tabs · 折叠 · 侧栏</p></div>
          <div class="card"><h4>⑥ Workflows</h4><p class="sig">跨泳道时序图</p></div>
          <div class="card"><h4>⑦ Spatial</h4><p class="sig">目录树 / 组件方框</p></div>
          <div class="card"><h4>⑧ Images</h4><p class="sig">UI wireframe SVG</p></div>
        </div>
      </section>

    </article>
    <nav class="prev-next"></nav>
    <footer class="site"><div><b>Section</b>01 · Overview</div><div><b>Page</b>scope.html</div></footer>
  </main>
</div>
<script src="assets/shell.js"></script>
</body>
</html>