duaer-spec 0.26.0 → 0.27.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/.claude/rules/agents-workflow.md +2 -0
  2. package/.claude/rules/duaer-spec.md +1 -0
  3. package/.cursor/rules/agents-workflow.mdc +2 -0
  4. package/.cursor/rules/duaer-spec.mdc +1 -0
  5. package/.duaer/active-job.json +3 -3
  6. package/.duaer/specs/260-release-026/delivery.json +10 -9
  7. package/.duaer/specs/260-release-026/tasks.md +1 -3
  8. package/.duaer/specs/261-fde-baseline-sign/delivery.json +10 -0
  9. package/.duaer/specs/261-fde-baseline-sign/spec.md +37 -0
  10. package/.duaer/specs/261-fde-baseline-sign/tasks.md +8 -0
  11. package/.duaer/specs/262-fde01-readme-docs/delivery.json +9 -0
  12. package/.duaer/specs/262-fde01-readme-docs/spec.md +23 -0
  13. package/.duaer/specs/262-fde01-readme-docs/tasks.md +5 -0
  14. package/.duaer/specs/263-arch-edge-via/delivery.json +9 -0
  15. package/.duaer/specs/263-arch-edge-via/spec.md +25 -0
  16. package/.duaer/specs/263-arch-edge-via/tasks.md +5 -0
  17. package/.duaer/specs/264-baseline-field-guide/delivery.json +10 -0
  18. package/.duaer/specs/264-baseline-field-guide/spec.md +23 -0
  19. package/.duaer/specs/264-baseline-field-guide/tasks.md +5 -0
  20. package/.duaer/specs/265-baseline-chat-passthrough/delivery.json +9 -0
  21. package/.duaer/specs/265-baseline-chat-passthrough/spec.md +22 -0
  22. package/.duaer/specs/265-baseline-chat-passthrough/tasks.md +4 -0
  23. package/.duaer/specs/266-fde02-api-contract/delivery.json +10 -0
  24. package/.duaer/specs/266-fde02-api-contract/spec.md +28 -0
  25. package/.duaer/specs/266-fde02-api-contract/tasks.md +7 -0
  26. package/.duaer/specs/267-baseline-restore/delivery.json +9 -0
  27. package/.duaer/specs/267-baseline-restore/spec.md +24 -0
  28. package/.duaer/specs/267-baseline-restore/tasks.md +5 -0
  29. package/.duaer/specs/268-fde07-uat/delivery.json +9 -0
  30. package/.duaer/specs/268-fde07-uat/spec.md +30 -0
  31. package/.duaer/specs/268-fde07-uat/tasks.md +5 -0
  32. package/.duaer/specs/269-release-027/spec.md +12 -0
  33. package/.duaer/specs/269-release-027/tasks.md +4 -0
  34. package/.duaer/specs/270-patch-version/delivery.json +7 -0
  35. package/.duaer/specs/270-patch-version/spec.md +19 -0
  36. package/.duaer/specs/270-patch-version/tasks.md +4 -0
  37. package/.duaer/specs/271-fde04-compat/delivery.json +9 -0
  38. package/.duaer/specs/271-fde04-compat/spec.md +25 -0
  39. package/.duaer/specs/271-fde04-compat/tasks.md +5 -0
  40. package/.duaer/specs/272-fde03-env-check/delivery.json +9 -0
  41. package/.duaer/specs/272-fde03-env-check/spec.md +34 -0
  42. package/.duaer/specs/272-fde03-env-check/tasks.md +5 -0
  43. package/.duaer/specs/273-fde06-data-precheck/delivery.json +9 -0
  44. package/.duaer/specs/273-fde06-data-precheck/spec.md +37 -0
  45. package/.duaer/specs/273-fde06-data-precheck/tasks.md +5 -0
  46. package/.duaer/specs/274-fde05-external-deps/delivery.json +9 -0
  47. package/.duaer/specs/274-fde05-external-deps/spec.md +37 -0
  48. package/.duaer/specs/274-fde05-external-deps/tasks.md +5 -0
  49. package/.duaer/specs/275-release-0271/spec.md +13 -0
  50. package/.duaer/specs/275-release-0271/tasks.md +4 -0
  51. package/AGENTS.md +5 -2
  52. package/CHANGELOG.md +81 -0
  53. package/README.md +22 -14
  54. package/README.zh-CN.md +6 -5
  55. package/bin/duaer-live.mjs +266 -77
  56. package/bin/live-archify.mjs +85 -0
  57. package/bin/live-deliverables.mjs +65 -0
  58. package/bin/live-modules.mjs +127 -3
  59. package/bin/live-project-chat.mjs +24 -1
  60. package/docs/agent/branching-and-release.md +16 -0
  61. package/docs/agent/e2e-test-plan.md +19 -0
  62. package/docs/agent/live-desk.md +36 -1
  63. package/docs/agent/workflow.md +2 -0
  64. package/package.json +1 -1
  65. package/web/live-dev/api-contract.mjs +50 -0
  66. package/web/live-dev/app.js +345 -21
  67. package/web/live-dev/baseline.mjs +74 -0
  68. package/web/live-dev/compat-matrix.mjs +38 -0
  69. package/web/live-dev/confirm-card.mjs +22 -0
  70. package/web/live-dev/data-precheck.mjs +35 -0
  71. package/web/live-dev/env-check.mjs +41 -0
  72. package/web/live-dev/external-deps.mjs +35 -0
  73. package/web/live-dev/i18n-de.js +37 -0
  74. package/web/live-dev/i18n-es.js +37 -0
  75. package/web/live-dev/i18n-fr.js +37 -0
  76. package/web/live-dev/i18n-ja.js +37 -0
  77. package/web/live-dev/i18n-ko.js +37 -0
  78. package/web/live-dev/i18n-pt-BR.js +37 -0
  79. package/web/live-dev/i18n-ru.js +37 -0
  80. package/web/live-dev/i18n-vi.js +37 -0
  81. package/web/live-dev/i18n-zh-TW.js +37 -0
  82. package/web/live-dev/i18n.js +77 -2
  83. package/web/live-dev/index.html +60 -1
  84. package/web/live-dev/styles.css +4 -0
  85. package/web/live-dev/uat-pack.mjs +21 -0
@@ -0,0 +1,37 @@
1
+ # Feature Specification: FDE-06 import precheck
2
+
3
+ ## Goal
4
+
5
+ A feature confirm card cannot pass until it records a field mapping, an
6
+ import precheck failure list, and that the list can be exported for
7
+ cleanup. Kickoff schedules that precheck before implementation.
8
+
9
+ ## In scope
10
+
11
+ - Local validate on dataPrecheck
12
+ - One FDE-06 task per confirmed module that declares an import, placed
13
+ before that module's implement task and after the environment probe
14
+ when both exist
15
+ - Hint, placeholder, and chat/accept prompts
16
+ - Explicit opt-out: no import for this module
17
+
18
+ ## Out of scope
19
+
20
+ - Bug desk
21
+ - Scanning a customer database from the desk
22
+
23
+ ## Assumptions
24
+
25
+ - The desk records the checklist; the digital employee produces the
26
+ mapping, the failure list, and the export.
27
+ - 「本模块无导入」 / "no import" skips the three requirements and the
28
+ kickoff task.
29
+
30
+ ## Acceptance
31
+
32
+ 1. A vague line or a line missing mapping, failure list, or export fails
33
+ local validate
34
+ 2. All three present, or the no-import opt-out, passes
35
+ 3. Kickoff adds an FDE-06 data precheck before implement when an import
36
+ is declared, and skips it on the opt-out
37
+ 4. npm test and npm run test:live pass
@@ -0,0 +1,5 @@
1
+ # Tasks — 273-fde06-data-precheck
2
+
3
+ - [x] Validate the import precheck (mapping, failure list, export, or no-import opt-out)
4
+ - [x] Inject an FDE-06 kickoff task before implement
5
+ - [x] Update hints, prompts, docs, and tests
@@ -0,0 +1,9 @@
1
+ {
2
+ "status": "accepted",
3
+ "summary": "Feature confirm requires a blocker, SLA, backup mock, and parallel path, or a no-dependency opt-out. Kickoff schedules the board before implement.",
4
+ "verification": {
5
+ "L0": "node --check bin/duaer-live.mjs bin/live-modules.mjs web/live-dev/app.js web/live-dev/external-deps.mjs — pass",
6
+ "L1": "npm test — 250 pass",
7
+ "L3": "npm run test:live — pass"
8
+ }
9
+ }
@@ -0,0 +1,37 @@
1
+ # Feature Specification: FDE-05 external dependency board
2
+
3
+ ## Goal
4
+
5
+ A feature confirm card cannot pass until it records a blocker, an SLA, a
6
+ backup mock, and a parallel path for third-party, ERP, or SSO work.
7
+ Kickoff schedules that board before implementation.
8
+
9
+ ## In scope
10
+
11
+ - Local validate on externalDeps
12
+ - One FDE-05 task per confirmed module that declares an external
13
+ dependency, placed before implement and after the env probe and data
14
+ precheck when those exist
15
+ - Hint, placeholder, and chat/accept prompts
16
+ - Explicit opt-out: no external dependency
17
+
18
+ ## Out of scope
19
+
20
+ - Bug desk
21
+ - Calling the vendor or the customer ERP from the desk
22
+
23
+ ## Assumptions
24
+
25
+ - The desk records the board; the digital employee keeps the blocker,
26
+ SLA, mock, and parallel path current.
27
+ - 「本模块无外部依赖」 / "no external dependency" skips the four items
28
+ and the kickoff task.
29
+
30
+ ## Acceptance
31
+
32
+ 1. A vague line or a line missing blocker, SLA, mock, or parallel path
33
+ fails local validate
34
+ 2. All four present, or the no-dependency opt-out, passes
35
+ 3. Kickoff adds an FDE-05 task before implement when a dependency is
36
+ declared, and skips it on the opt-out
37
+ 4. npm test and npm run test:live pass
@@ -0,0 +1,5 @@
1
+ # Tasks — 274-fde05-external-deps
2
+
3
+ - [x] Validate the external dependency board (blocker, SLA, mock, parallel path, or opt-out)
4
+ - [x] Inject an FDE-05 kickoff task before implement
5
+ - [x] Update hints, prompts, docs, and tests
@@ -0,0 +1,13 @@
1
+ # Feature Specification: Release 0.27.1
2
+
3
+ ## Goal
4
+
5
+ Ship 0.27.1: FDE-03 environment checklist, FDE-04 compat evidence, FDE-05
6
+ external dependency board, FDE-06 import precheck, and the patch-version
7
+ policy. Promote develop to main, publish a GitHub Release, and let npm
8
+ Trusted Publishing run.
9
+
10
+ ## Acceptance
11
+
12
+ 1. `package.json` is `0.27.1`; CHANGELOG has `0.27.1` and an empty Unreleased section.
13
+ 2. Tag `v0.27.1` is on `main`; GitHub Release is published.
@@ -0,0 +1,4 @@
1
+ # Tasks — 275-release-0271
2
+
3
+ - [x] Bump 0.27.1 and move changelog notes
4
+ - [ ] Tag v0.27.1 on main and publish the GitHub Release
package/AGENTS.md CHANGED
@@ -294,7 +294,9 @@ After normal development:
294
294
  12. Push only when the user explicitly requested remote publishing for the
295
295
  current request
296
296
  13. Promote **`develop` → `main`** only when the user explicitly asks to ship /
297
- go online (see [branching-and-release](docs/agent/branching-and-release.md))
297
+ go online (see [branching-and-release](docs/agent/branching-and-release.md)).
298
+ Fast iteration: bump the **patch** (`0.27.1`, `0.27.2`, …). Do not bump
299
+ the minor on every ship. The next release after `0.27.1` is `0.27.2`.
298
300
 
299
301
  **Production hotfix:** base and merge into **`main`**, then merge the fix into
300
302
  **`develop`** so integration does not regress. Then clean up the worktree.
@@ -350,7 +352,8 @@ git worktree prune
350
352
  13. Stop worktree services; remove worktree; delete short branch; **handoff**
351
353
  restart on `develop` (`duaer handoff [--run]` / `.duaer/handoff.json`)
352
354
  14. Push only when explicitly requested
353
- 15. Promote **`develop` → `main`** only when the user explicitly asks to go online
355
+ 15. Promote **`develop` → `main`** only when the user explicitly asks to go online.
356
+ Version bump is the patch (`0.27.2` next); see branching-and-release.
354
357
 
355
358
  Development must not begin before isolation steps 1–3 are complete.
356
359
 
package/CHANGELOG.md CHANGED
@@ -2,6 +2,87 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.27.1 — 2026-09-21
6
+
7
+ ### Feat: FDE-05 external dependency board before kickoff
8
+
9
+ - Feature confirm requires a blocker, SLA, backup mock, and parallel path,
10
+ or an explicit no-dependency opt-out
11
+ - Kickoff adds that board before implement when a third party, ERP, or SSO
12
+ is declared
13
+
14
+ ### Feat: FDE-06 import precheck before kickoff
15
+
16
+ - Feature confirm requires a field mapping, an import failure list, and an
17
+ export for cleanup, or an explicit no-import opt-out
18
+ - Kickoff adds a data-precheck task before implement when an import is
19
+ declared
20
+
21
+ ### Feat: FDE-03 environment checklist before kickoff
22
+
23
+ - Feature confirm requires DNS, TLS, CORS, auth, and third-party reachability
24
+ recorded as passed, or an explicit no-customer opt-out
25
+ - A failed probe blocks confirm
26
+ - Kickoff adds an environment-probe task before implement when a customer
27
+ environment is declared
28
+
29
+ ### Feat: FDE-04 browser matrix must include evidence
30
+
31
+ - Device matrix needs two named browsers or domestic clients, screenshot or
32
+ cloud evidence, and a polyfill or fallback
33
+ - Kickoff adds a compat-evidence task per confirmed module
34
+
35
+ ### Docs: fast iteration uses patch versions
36
+
37
+ - Default ship bump is the last number (`0.27.1`, `0.27.2`, …)
38
+ - Next release after `0.27.0` is `0.27.1`; do not jump the minor on every ship
39
+
40
+ ## 0.27.0 — 2026-09-21
41
+
42
+ ### Feat: FDE-07 UAT pack on confirm
43
+
44
+ - Feature exception cases must cover empty, failure, permission, timeout, and retry
45
+ - A declared API contract also requires an error code or HTTP status in that text
46
+ - Kickoff adds a UAT task per confirmed module
47
+
48
+ ### Fix: keep baseline confirm fields after desk refresh
49
+
50
+ - Restoring a project session copies device matrix, critical paths, exception
51
+ cases, and API contract back onto the confirm card
52
+
53
+ ### Feat: FDE-02 API contract gate on confirm + kickoff tasks
54
+
55
+ - Feature confirm requires `apiContract` (OpenAPI/types path or「本模块无 HTTP API」)
56
+ - Kickoff injects contract sync / Mock / CI contract-test tasks when a path is declared
57
+ - Deliverables and baseline fingerprint include the field
58
+
59
+ ### Fix: pass FDE-01 baseline fields through chat SSE
60
+
61
+ - `parseChatResult` / `chatDoneSsePayload` keep deviceMatrix, criticalPaths,
62
+ exceptionCases so the middle confirm card fills from chat JSON
63
+
64
+ ### Fix: guide filling FDE-01 baseline confirm fields
65
+
66
+ - Feature chat / accept / fix / revise prompts include device matrix, critical
67
+ paths, and exception cases (fill defaults or offer options — do not leave empty)
68
+ - Confirm card placeholders show examples instead of bare「待确认」
69
+
70
+ ### Fix: auto-route architecture edges that cross unrelated nodes
71
+
72
+ - Before Archify deliver, long same-row edges that would pass through other
73
+ components get a bottom `via` detour (`clean-flow/edge-through-node`)
74
+
75
+ ### Docs: README covers FDE-01 baseline sign
76
+
77
+ - zh-CN / en README: feature confirm fields, signed baseline before kickoff,
78
+ change order, deliverables baseline history
79
+
80
+ ### Feat: FDE-01 signed scope + acceptance baseline before kickoff
81
+
82
+ - Confirm card requires device matrix, critical paths, and exception cases (feature)
83
+ - Dispatch requires a signed baseline (signer + fingerprint); change order clears sign and reopens confirm
84
+ - Deliverables page shows baseline sign-off and change history
85
+
5
86
  ## 0.26.0 — 2026-09-20
6
87
 
7
88
  ### Fix: npm provenance repository URL after GitHub move
package/README.md CHANGED
@@ -65,15 +65,17 @@ After install, these are the capabilities you actually use:
65
65
  A local web console (`duaer live`) for “chat → confirm → dispatch → watch → open result”:
66
66
 
67
67
  - **Projects.** Create and switch projects; each keeps its own chat and progress.
68
- - **Chat until the ask is clear.** Left chat; center confirm cards (goal / out of scope / checkable acceptance). Vague acceptance cannot be confirmed. Beside **Send**, tap **Record** to capture speech; with a **speech recognition (STT) model** in Settings (OpenAI-compatible `/audio/transcriptions`, e.g. whisper-1), the clip is decoded into the composer—edit, then send.
68
+ - **Chat until the ask is clear.** Left chat; center confirm cards (goal / out of scope / checkable acceptance). Feature cards also need **device matrix, critical paths, and exception cases**. Vague acceptance cannot be confirmed. Beside **Send**, tap **Record** to capture speech; with a **speech recognition (STT) model** in Settings (OpenAI-compatible `/audio/transcriptions`, e.g. whisper-1), the clip is decoded into the composer—edit, then send.
69
69
  - **Split big work into modules.** Confirm module by module; nothing starts until you kick off after the ones you care about are confirmed.
70
70
  - **Architecture diagram.** After requirements, review the system diagram; click it for fullscreen; kickoff waits until architecture is confirmed. If chat claims the diagram is ready but the middle panel is empty, the same bubble offers Regenerate — it does not leave a false “ready” line.
71
+ - **Sign the scope + acceptance baseline before kickoff.** After architecture confirm, an operator must **sign** (signer + time; fingerprint of confirmed module cards). Unsigned or stale fingerprints block **Write Brief and start**. An **open change** (with reason) clears the sign, returns modules for re-confirm, then architecture and re-sign.
71
72
  - **Dispatch digital employees to code.** Pick a product folder and Cursor Agent or Claude Code; work happens in an isolated worktree, not directly on your long-lived branches.
72
73
  - **Visible task progress.** Work is a checklist; each finished item is checked off and the console refreshes; dependent tasks release in waves so agents don’t pile on blocked work.
73
74
  - **Employee roles.** Top-bar **digital employee** directory (Implementer / Functional regression / Deployer). Optional parallel workers on the same CLI. See the next section.
74
75
  - **Locales.** Console UI: zh-CN, zh-TW, en, ja, ko, es, pt-BR, fr, de, ru, vi.
75
76
  - **Deliverables and results.** Open a deliverables page (requirements timeline,
76
- architecture, tasks, delivery); when done, open the page or the project folder.
77
+ confirmation, baseline sign-off and change history, architecture, tasks,
78
+ delivery); when done, open the page or the project folder.
77
79
  - **Revise when it’s not right.** Continue in left chat → re-confirm → relaunch on
78
80
  the same job without starting from scratch. After deploy, **Revise again** and
79
81
  **Fix a bug** stay on the result bar.
@@ -163,15 +165,21 @@ mock LLM — no paid API).
163
165
  content. Messy multi-topic talk is fine: the console evolves **`modules[]`**
164
166
  (tabs). Chat bubbles render **Markdown** (`**bold**`, code, links).
165
167
  2. Per module: fill the confirm card (goal / out-of-scope / **checkable**
166
- acceptance / assumptions). Vague acceptance fails the gate; validate must
167
- pass before **Confirm**. Confirming a module **locks that card only** — it
168
- does **not** write a Brief or start workers yet. Jump between modules freely.
168
+ acceptance / assumptions; feature cards also need **device matrix /
169
+ critical paths / exception cases**). Vague acceptance or missing baseline
170
+ fields fails the gate; validate must pass before **Confirm**. Confirming a
171
+ module **locks that card only** — it does **not** write a Brief or start
172
+ workers yet. Jump between modules freely.
169
173
  3. When **all** modules you care about are confirmed → review / confirm
170
- **architecture** (Archify) → **kickoff**. Kickoff writes the Brief, builds a
171
- **dependency-aware task pool** (`dependsOn`), and assigns work. Default is
172
- **1** worker; optionally **N** parallel workers on the **same CLI**. Shared
173
- tasks go to worker 1; module tasks round-robin. Each worker gets its own
174
- **Terminal queue lane** (`live-terminal` / `live-terminal/w2`…).
174
+ **architecture** (Archify) → **sign the scope + acceptance baseline**
175
+ (signer) → **kickoff**. Kickoff stays blocked while unsigned or when the
176
+ fingerprint no longer matches confirmed cards. Kickoff writes the Brief,
177
+ builds a **dependency-aware task pool** (`dependsOn`), and assigns work.
178
+ Default is **1** worker; optionally **N** parallel workers on the **same
179
+ CLI**. Shared tasks go to worker 1; module tasks round-robin. Each worker
180
+ gets its own **Terminal queue lane** (`live-terminal` /
181
+ `live-terminal/w2`…). To change scope: **open change** (reason) → clear
182
+ sign and re-confirm modules → architecture again → re-sign.
175
183
  4. Pick a product repo (browse / scan / recent), or paste a path / project name.
176
184
  Missing paths are created; set **Projects parent folder** so short names
177
185
  resolve under it. Non-git folders get `git init -b develop`; missing
@@ -184,10 +192,10 @@ mock LLM — no paid API).
184
192
  `.worktree/feat-*` and opens **Terminal** for each worker lane.
185
193
  7. Progress shows a **next-action** stage strip, then `tasks.md` polling.
186
194
  **View deliverables** (above progress) opens a generated HTML page of stage
187
- artifacts (requirements doc timeline, confirmation, architecture, task pool,
188
- delivery). On delivery, workers update the product **README** before
189
- `delivery.json` is `accepted`. Then open **Results** (**View result** when a
190
- page exists, otherwise **Open
195
+ artifacts (requirements doc timeline, confirmation, baseline sign-off and
196
+ change history, architecture, task pool, delivery). On delivery, workers
197
+ update the product **README** before `delivery.json` is `accepted`. Then open
198
+ **Results** (**View result** when a page exists, otherwise **Open
191
199
  project folder**).
192
200
  8. If the result is not right: **Continue improving (left chat)** → confirm the
193
201
  revise card (same validate gate) → re-confirm architecture (keep or redesign)
package/README.zh-CN.md CHANGED
@@ -28,14 +28,15 @@
28
28
  本机开一个网页控制台(`duaer live`),专门管「从聊需求到派工、看进度、看结果」:
29
29
 
30
30
  - **项目管理。** 建项目、切换项目;每个项目自己的对话和进度,互不搅在一起。
31
- - **聊着把需求聊清楚。** 左边聊天;中间把目标、边界、验收写成确认卡;空话验收过不了,得能检查才给确认。发送旁可点 **录音**;在设置里配置 **语音识别模型**(兼容 OpenAI `/audio/transcriptions`,如 whisper-1)后,录完会解码成文字填入输入框,改完再发送。
31
+ - **聊着把需求聊清楚。** 左边聊天;中间把目标、边界、验收写成确认卡;功能卡还要填 **浏览器/设备矩阵、关键路径、异常态**。空话验收过不了,得能检查才给确认。发送旁可点 **录音**;在设置里配置 **语音识别模型**(兼容 OpenAI `/audio/transcriptions`,如 whisper-1)后,录完会解码成文字填入输入框,改完再发送。
32
32
  - **大需求可拆成多个模块。** 一块一块确认,确认完一块不会立刻开工,全部谈妥再一起派。
33
33
  - **系统架构图。** 确认需求后一起看架构;点图可全屏查看;架构确认后才能派工。若对话称已生成但中间栏没有图,同一条气泡会改成提示并提供「重新生成架构图」,不会留下假的「已生成」。
34
+ - **签署范围与验收基线再开工。** 架构确认后须签署(签字人 + 时间;指纹对上已确认模块卡);未签或卡面改过不得「写入 Brief 并启动」。开 **变更单**(写原因)会清签、退回重确认,再架构、再签。
34
35
  - **一键派数字员工写代码。** 选产品目录、选 Cursor Agent 或 Claude Code,点开工;它在隔离目录里改代码,不直接乱动你的主分支。
35
36
  - **任务进度看得见。** 任务拆成一条条可勾选项;做完勾一项,控制台实时刷新;有依赖的任务会排队放行,不会一窝蜂乱做。
36
37
  - **数字员工分工。** 顶部有「数字员工」目录(实现 / 功能回归 / 部署);可开多个并行(同一套 CLI)。详见下一节。
37
38
  - **中 / 繁中 / 英 / 日 / 韩 / 西 / 葡 / 法 / 德 / 俄 / 越界面。** 控制台文案可切换语种。
38
- - **看交付物和结果。** 可打开交付物页(需求时间线、架构、任务、交付记录);做完了可打开页面或项目文件夹。
39
+ - **看交付物和结果。** 可打开交付物页(需求时间线、确认书、基线签署与变更记录、架构、任务、交付);做完了可打开页面或项目文件夹。
39
40
  - **不满意就继续改。** 左侧继续聊改进 → 再确认 → 同一次任务上续派,不用从头建仓。部署后结果栏仍可「再改一版」和「修 bug」。
40
41
  - **修 bug。** 走缺陷卡(不拆多模块),默认跳过架构,短任务池,开 `fix/` 分支(可选从 `main` 出紧急修复)。交付过的地址/启动信息会自动带入;缺陷和迭代排在同一条项目时间线上。
41
42
  - **快速导航。** 对话栏右缘「导航」可跳到:对话底部 · 确认卡 · 结果 · 进度。
@@ -145,15 +146,15 @@ duaer live config --base-url https://api.openai.com/v1 --api-key sk-... --model
145
146
  **流程**
146
147
 
147
148
  1. 打开或新建**项目**,再聊天。右上角「项目」列表会显示每个项目的**交付状态**;有内容时可直接打开**交付物**。话题可以乱跳:控制台会演进 **`modules[]`**(模块页签)。气泡支持 **Markdown**(加粗、代码、链接)。
148
- 2. **按模块**填确认卡(目标 / 不做 / **可检查验收** / 假设)。空泛验收过不了门禁;须校验通过才能点确认。确认只**锁住该模块卡**,**不会**立刻写 Brief 或开工。模块之间可随时切换。
149
- 3. 关心的模块都确认完 → 审 / 确认**架构**(Archify)→ **开工(kickoff)**。开工才写 Brief,建带 **`dependsOn` 的任务池**,并分派。默认 **1** 个数字员工;可选 **N** 个同 CLI 并行。共享任务给 1 号;模块任务轮询。每个 worker 独占一条 **Terminal 队列泳道**(`live-terminal` / `live-terminal/w2`…)。
149
+ 2. **按模块**填确认卡(目标 / 不做 / **可检查验收** / 假设;功能卡另填 **设备矩阵 / 关键路径 / 异常态**)。空泛验收或缺基线字段过不了门禁;须校验通过才能点确认。确认只**锁住该模块卡**,**不会**立刻写 Brief 或开工。模块之间可随时切换。
150
+ 3. 关心的模块都确认完 → 审 / 确认**架构**(Archify)→ **签署范围与验收基线**(签字人)→ **开工(kickoff)**。未签或指纹与已确认卡不一致时开工按钮不可用。开工才写 Brief,建带 **`dependsOn` 的任务池**,并分派。默认 **1** 个数字员工;可选 **N** 个同 CLI 并行。共享任务给 1 号;模块任务轮询。每个 worker 独占一条 **Terminal 队列泳道**(`live-terminal` / `live-terminal/w2`…)。范围要改:开 **变更单**(写原因)→ 清签并退回模块重确认 → 再架构、再签。
150
151
  4. 浏览 / 扫描 / 点选产品仓,或粘贴路径 / 项目名。路径不存在会自动创建;可先设**产品父目录**,再填短名在其下新建。非 git 目录会 `git init -b develop`;没有 develop/main/master 会建本地 `develop`。
151
152
  5. 只选 **CLI 数字员工**:**Cursor Agent** 或 **Claude Code**
152
153
  - Cursor:`curl https://cursor.com/install -fsS | bash`
153
154
  - Claude Code:`npm install -g @anthropic-ai/claude-code`(或 `curl -fsSL https://claude.ai/install.sh | bash`)
154
155
  - 要用 **DeepSeek 等其它模型**写代码:把 Claude Code 接到对应 API,见 [`docs/agent/worker-models.zh-CN.md`](docs/agent/worker-models.zh-CN.md)。FDE「配置模型」页下方也有同样说明。
155
156
  6. 编辑「启动命令」(须以 `Duaer` 开头)→ 开工建 `.worktree/feat-*`,并为每条 worker 泳道打开 **Terminal**。
156
- 7. 右侧进度列先提示**下一步**(阶段条),并轮询 `tasks.md`。进度上方 **查看交付物** 会打开生成的 HTML 页(需求文档时间线、确认书、架构、任务池、交付等)。交付时数字员工先更新产品仓 **README**,再把 `delivery.json` 标为 `accepted`。然后出现 **结果**(有页面时 **查看结果**;否则 **打开项目目录**)。
157
+ 7. 右侧进度列先提示**下一步**(阶段条),并轮询 `tasks.md`。进度上方 **查看交付物** 会打开生成的 HTML 页(需求文档时间线、确认书、基线签署与变更、架构、任务池、交付等)。交付时数字员工先更新产品仓 **README**,再把 `delivery.json` 标为 `accepted`。然后出现 **结果**(有页面时 **查看结果**;否则 **打开项目目录**)。
157
158
  8. 成品不满意:点 **继续改进(左侧对话)** → 确认改进卡(同样须校验)→ 再确认架构(保留或重画)→ 同 worktree 续派(先清残留 Agent 再入队)。进度跟本轮 `R{n}-*`。启动失败会回滚本轮 Brief Revision;状态行按泳道显示 Terminal 忙闲/队列。
158
159
  9. 若需要上线 / 公网:在控制台选 **计划托管平台**(Cloudflare / 阿里云 / AWS / GitHub Pages),说明见 [`docs/agent/deploy-targets.md`](docs/agent/deploy-targets.md)。未指定时默认 **GitHub CLI(`gh`)+ Actions**([`docs/agent/deploy-github.md`](docs/agent/deploy-github.md))
159
160