duaer-spec 0.24.0 → 0.24.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.
@@ -1,4 +1 @@
1
- {
2
- "feature": "216-release-024",
3
- "specDir": ".duaer/specs/216-release-024"
4
- }
1
+ {"feature":"218-release-0241","updatedAt":"2026-09-19T14:11:06.000Z"}
@@ -0,0 +1,10 @@
1
+ {
2
+ "status": "accepted",
3
+ "acceptedAt": "2026-09-19T14:05:00.000Z",
4
+ "verification": {
5
+ "levels": ["L0", "L1"],
6
+ "commands": ["npm test (177 pass)", "gh release v0.24.0", "npm view duaer-spec version → 0.24.0"],
7
+ "result": "pass"
8
+ },
9
+ "summary": "Released 0.24.0 (deploy employee + common locales) to GitHub and npm."
10
+ }
@@ -1,5 +1,5 @@
1
1
  # Tasks
2
2
 
3
- - [ ] T001 Bump to 0.24.0 and move CHANGELOG
4
- - [ ] T002 Promote main; push; tag; gh release; npm
5
- - [ ] T003 Stamp accepted
3
+ - [x] T001 Bump to 0.24.0 and move CHANGELOG
4
+ - [x] T002 Promote main; push; tag; gh release; npm
5
+ - [x] T003 Stamp accepted
@@ -0,0 +1,10 @@
1
+ {
2
+ "status": "accepted",
3
+ "acceptedAt": "2026-09-19T14:10:00.000Z",
4
+ "verification": {
5
+ "levels": ["L0", "L1"],
6
+ "commands": ["node import locale files", "npm test subset live-i18n-common"],
7
+ "result": "pass"
8
+ },
9
+ "summary": "Documented Functional regression employee in READMEs and desk drawer copy."
10
+ }
@@ -0,0 +1,12 @@
1
+ # Spec: Document Functional regression employee
2
+
3
+ ## Goal
4
+
5
+ Explain the **Functional regression** digital employee in READMEs and desk
6
+ drawer copy so operators know what it verifies and what it must not change.
7
+
8
+ ## Acceptance
9
+
10
+ - [ ] README.zh-CN / README.md have a three-role section with clear 功能回归 duties
11
+ - [ ] `employee.lead` / `employee.regression.cap` describe regression in zh/en/ja and other locales
12
+ - [ ] live-desk.md mentions regression boundaries
@@ -0,0 +1,5 @@
1
+ # Tasks
2
+
3
+ - [x] T001 README three-role table with Functional regression
4
+ - [x] T002 Drawer i18n lead/cap for all locales
5
+ - [x] T003 live-desk + CHANGELOG; stamp
@@ -0,0 +1,16 @@
1
+ # 218 — Release 0.24.1
2
+
3
+ ## Goal
4
+
5
+ Ship 0.24.1: Functional regression digital employee docs (README + drawer).
6
+
7
+ ## Scope
8
+
9
+ Bump version, CHANGELOG, promote develop → main, push, GitHub Release
10
+ `v0.24.1`, trigger npm Trusted Publishing.
11
+
12
+ ## Acceptance
13
+
14
+ 1. `package.json` is `0.24.1`; CHANGELOG has `0.24.1` (Unreleased cleared).
15
+ 2. Tag `v0.24.1` on main; GitHub Release published.
16
+ 3. npm shows `duaer-spec@0.24.1`.
@@ -0,0 +1,4 @@
1
+ # Tasks — 218
2
+
3
+ - [x] T001 Bump to 0.24.1 and move CHANGELOG
4
+ - [ ] T002 Promote develop → main, tag, GitHub Release, npm
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.24.1 — 2026-09-19
6
+
7
+ ### Docs: explain Functional regression digital employee
8
+
9
+ - READMEs add a three-role table with Functional regression duties and boundaries
10
+ - Employee drawer copy clarifies regression vs implement / deploy
11
+
5
12
  ## 0.24.0 — 2026-09-19
6
13
 
7
14
  ### Feat: common live-desk locales beyond zh/en/ja
package/README.md CHANGED
@@ -66,11 +66,23 @@ A local web desk (`duaer live`) for “chat → confirm → dispatch → watch
66
66
  - **Architecture diagram.** After requirements, review the system diagram; click it for fullscreen; kickoff waits until architecture is confirmed.
67
67
  - **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.
68
68
  - **Visible task progress.** Work is a checklist; each finished item is checked off and the desk refreshes; dependent tasks release in waves so agents don’t pile on blocked work.
69
- - **Employee roles.** Top-bar **digital employee** directory: **Implementer** builds features; **Functional regression** verifies against acceptance and testing rules; **Deployer** ships to the planned host. Optional parallel workers on the same CLI.
69
+ - **Employee roles.** Top-bar **digital employee** directory (Implementer / Functional regression / Deployer). Optional parallel workers on the same CLI. See the next section.
70
70
  - **Locales.** Desk UI: zh-CN, zh-TW, en, ja, ko, es, pt-BR, fr, de, ru, vi.
71
71
  - **Deliverables and results.** Open a deliverables page (requirements, architecture, tasks, delivery); when done, open the page or the project folder.
72
72
  - **Revise when it’s not right.** Continue in left chat → re-confirm → relaunch on the same job without starting from scratch.
73
73
 
74
+ ### Digital employees: three roles
75
+
76
+ Open **Employees** in the top bar. Runtime is still Cursor Agent or Claude Code; the difference is **task role** — who builds, who regresses, who deploys.
77
+
78
+ | Role | Does | Does not |
79
+ |---|---|---|
80
+ | **Implementer** | Build to acceptance; update product README; start preview and stamp delivery | — |
81
+ | **Functional regression** | Check confirmed acceptance against the product `.duaer/memory/testing.md` risk table (prefer Playwright, `npm test`, `npm run test:live`, L0–L3); add missing tests, run them, keep evidence | **Change product scope**; on failure, leave a reproducible note — do not stamp accepted |
82
+ | **Deployer** | Publish to the planned host and write the public URL into delivery preview | Change product scope |
83
+
84
+ With multiple workers, the **last lane** owns functional regression (and deploy tasks); implement work stays on earlier lanes. With one worker, the same CLI session runs roles in task order.
85
+
74
86
  ### Deploy: supported hosts
75
87
 
76
88
  Before kickoff, pick a **planned host** on the desk. Coding follows that platform; the **Deployer** employee publishes and writes the public URL into delivery preview.
package/README.zh-CN.md CHANGED
@@ -33,11 +33,23 @@
33
33
  - **系统架构图。** 确认需求后一起看架构;点图可全屏查看;架构确认后才能派工。
34
34
  - **一键派数字员工写代码。** 选产品目录、选 Cursor Agent 或 Claude Code,点开工;它在隔离目录里改代码,不直接乱动你的主分支。
35
35
  - **任务进度看得见。** 任务拆成一条条可勾选项;做完勾一项,台面实时刷新;有依赖的任务会排队放行,不会一窝蜂乱做。
36
- - **数字员工分工。** 顶部有「数字员工」目录:**实现员工**写功能,**功能回归**按验收和测试规则验,**部署员工**按你选的托管平台上线;可开多个并行(同一套 CLI)。
36
+ - **数字员工分工。** 顶部有「数字员工」目录(实现 / 功能回归 / 部署);可开多个并行(同一套 CLI)。详见下一节。
37
37
  - **中 / 繁中 / 英 / 日 / 韩 / 西 / 葡 / 法 / 德 / 俄 / 越界面。** 台面文案可切换语种。
38
38
  - **看交付物和结果。** 可打开交付物页(需求、架构、任务、交付记录);做完了可打开页面或项目文件夹。
39
39
  - **不满意就继续改。** 左侧继续聊改进 → 再确认 → 同一次任务上续派,不用从头建仓。
40
40
 
41
+ ### 数字员工:三种角色
42
+
43
+ 台面顶部点「数字员工」可看目录。运行时仍是 Cursor Agent 或 Claude Code;差别在**任务角色**——谁做实现、谁做回归、谁做部署。
44
+
45
+ | 角色 | 干什么 | 不干什么 |
46
+ |---|---|---|
47
+ | **实现员工** | 按验收写功能;更新产品 README;把预览跑起来并 stamp 交付 | — |
48
+ | **功能回归** | 对照确认卡里的验收标准,按产品仓 `.duaer/memory/testing.md` 做确定性回归(优先 Playwright、`npm test`、`npm run test:live` 等 L0–L3);缺测就补测、跑通、留下证据 | **不改业务功能范围**;测挂了只留可复现说明,不擅自 stamp「验收通过」 |
49
+ | **部署员工** | 按你选的计划托管平台上线,把公网地址写入交付预览 | 不改业务功能范围 |
50
+
51
+ 多人并行时:默认末位泳道承担**功能回归**(以及部署任务);实现任务在前面的泳道。一个人时:同一 CLI 会话按任务角色依次做完。
52
+
41
53
  ### 部署:支持的几种方式
42
54
 
43
55
  开工前在台面选 **计划托管平台**。选好后,数字员工按该平台约束写代码,并由**部署员工**负责上线(把公网地址写进交付预览)。
@@ -76,9 +76,13 @@ Kickoff owns Brief creation and dispatch:
76
76
 
77
77
  - Builds a **dependency-aware task pool** (`dependsOn` edges).
78
78
  - **Employee directory** (top bar): lists specialized roles — **Implementer**,
79
- **Functional regression** (Acceptance → testing.md L0–L3 / Playwright), and
80
- **Deployer** (planned host: Cloudflare / Alibaba Cloud / AWS / GitHub Pages).
81
- Runtime remains Cursor Agent / Claude Code; kickoff tasks carry
79
+ **Functional regression**, and **Deployer**.
80
+ - **Functional regression** checks confirmed acceptance against the product
81
+ `.duaer/memory/testing.md` risk table (prefer Playwright / `npm test` /
82
+ `npm run test:live`, L0–L3); writes or runs tests and keeps evidence; does
83
+ **not** change product scope; on failure leaves a reproducible note and does
84
+ not stamp `accepted`.
85
+ - Runtime remains Cursor Agent / Claude Code; kickoff tasks carry
82
86
  `role: implement | verify-l3 | deploy`. With workerCount ≥ 2, verify-l3 and
83
87
  deploy tasks go to the last lane.
84
88
  - **Atomic + monitorable:** one checkbox task per independently verifiable
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "duaer-spec",
3
- "version": "0.24.0",
3
+ "version": "0.24.1",
4
4
  "description": "Norms → satisfactory delivery: digital employees for Cursor, Claude, Codex, Copilot, Windsurf, Cline, Continue, Gemini, Aider",
5
5
  "type": "module",
6
6
  "bin": {
@@ -24,13 +24,13 @@ export const de = {
24
24
  "employee.mark": "Employees",
25
25
  "employee.title": "Digitale Mitarbeiter",
26
26
  "employee.close": "Schließen",
27
- "employee.lead": "Kickoff weist nach Aufgabenrolle zu; Runtime bleibt Cursor Agent / Claude Code.",
27
+ "employee.lead": "Kickoff weist nach Rolle zu. Implementierer baut; Funktionale Regression prüft Acceptance über testing.md (bevorzugt Playwright) ohne Produktumfang zu ändern; Bereitsteller liefert an den geplanten Host. Runtime: Cursor Agent / Claude Code.",
28
28
  "employee.role": "Rolle {role}",
29
29
  "employee.runtime": "Runtime · Cursor / Claude",
30
30
  "employee.implementer.name": "Implementierer",
31
31
  "employee.implementer.cap": "Bis Acceptance bauen; README aktualisieren; Vorschau starten und Delivery stempeln.",
32
32
  "employee.regression.name": "Funktionale Regression",
33
- "employee.regression.cap": "Acceptance testing.md L0–L3 / Playwright; schreiben, ausführen, Belege; keine Produktumfang-Änderungen.",
33
+ "employee.regression.cap": "Acceptance gegen .duaer/memory/testing.md prüfen (L0–L3; bevorzugt Playwright / npm test); Tests schreiben, ausführen, Belege; kein Produktumfang ändern; bei Fehler kein accepted stamp.",
34
34
  "employee.deployer.name": "Bereitsteller",
35
35
  "employee.deployer.cap": "Auf geplanten Host ausrollen: Cloudflare / Alibaba Cloud / AWS / GitHub Pages; öffentliche Preview-URL schreiben.",
36
36
  "project.mark": "Project",
@@ -24,13 +24,13 @@ export const es = {
24
24
  "employee.mark": "Employees",
25
25
  "employee.title": "Empleados digitales",
26
26
  "employee.close": "Cerrar",
27
- "employee.lead": "El arranque asigna por rol de tarea; el runtime sigue siendo Cursor Agent / Claude Code.",
27
+ "employee.lead": "El kickoff asigna por rol. Implementación construye; la regresión funcional verifica Acceptance con testing.md (preferir Playwright) sin cambiar el alcance; Desplegador publica en el host previsto. Runtime: Cursor Agent / Claude Code.",
28
28
  "employee.role": "Rol {role}",
29
29
  "employee.runtime": "Entorno de ejecución · Cursor / Claude",
30
30
  "employee.implementer.name": "Implementador",
31
31
  "employee.implementer.cap": "Construir según Acceptance; actualizar README; iniciar vista previa y sellar delivery.",
32
32
  "employee.regression.name": "Regresión funcional",
33
- "employee.regression.cap": "Acceptance testing.md L0–L3 / Playwright; escribir, ejecutar, evidencia; sin cambios de alcance del producto.",
33
+ "employee.regression.cap": "Comprobar Acceptance con .duaer/memory/testing.md (L0–L3; preferir Playwright / npm test); escribir, ejecutar, evidencia; sin cambios de alcance; no marcar accepted si falla.",
34
34
  "employee.deployer.name": "Desplegador",
35
35
  "employee.deployer.cap": "Publicar en el host planificado: Cloudflare / Alibaba Cloud / AWS / GitHub Pages; escribir la URL pública en preview.",
36
36
  "project.mark": "Project",
@@ -24,13 +24,13 @@ export const fr = {
24
24
  "employee.mark": "Employees",
25
25
  "employee.title": "Employés numériques",
26
26
  "employee.close": "Fermer",
27
- "employee.lead": "Le kickoff assigne selon le rôle de la tâche ; l’exécution reste Cursor Agent / Claude Code.",
27
+ "employee.lead": "Le kickoff assigne par rôle. L’implémenteur construit ; la régression fonctionnelle vérifie l’Acceptance via testing.md (Playwright de préférence) sans changer le périmètre ; le Déployeur publie sur l’hôte prévu. Runtime : Cursor Agent / Claude Code.",
28
28
  "employee.role": "Rôle {role}",
29
29
  "employee.runtime": "Runtime · Cursor / Claude",
30
30
  "employee.implementer.name": "Implémenteur",
31
31
  "employee.implementer.cap": "Construire jusqu’à Acceptance ; mettre à jour le README ; démarrer l’aperçu et tamponner la livraison.",
32
32
  "employee.regression.name": "Régression fonctionnelle",
33
- "employee.regression.cap": "Acceptance testing.md L0–L3 / Playwright ; écrire, exécuter, preuves ; aucune modification du périmètre produit.",
33
+ "employee.regression.cap": "Vérifier l’Acceptance avec .duaer/memory/testing.md (L0–L3 ; Playwright / npm test de préférence) ; écrire, exécuter, preuves ; pas de changement de périmètre ; ne pas stamp accepted en cas d’échec.",
34
34
  "employee.deployer.name": "Déployeur",
35
35
  "employee.deployer.cap": "Publier sur l’hôte prévu : Cloudflare / Alibaba Cloud / AWS / GitHub Pages ; écrire l’URL d’aperçu publique.",
36
36
  "project.mark": "Project",
@@ -24,13 +24,13 @@ export const ja = {
24
24
  "employee.mark": "Employees",
25
25
  "employee.title": "デジタル従業員",
26
26
  "employee.close": "閉じる",
27
- "employee.lead": "キックオフはタスク役割で割当。実行は Cursor Agent / Claude Code。",
27
+ "employee.lead": "キックオフは役割で割当。実装は機能開発;機能回帰は Acceptance と testing.md で検証(Playwright 優先)、業務範囲は変更しない;デプロイは計画ホストへ。実行は Cursor Agent / Claude Code。",
28
28
  "employee.role": "役割 {role}",
29
29
  "employee.runtime": "ランタイム · Cursor / Claude",
30
30
  "employee.implementer.name": "実装従業員",
31
31
  "employee.implementer.cap": "Acceptance に沿って実装。README 更新、プレビュー起動、delivery stamp。",
32
32
  "employee.regression.name": "機能回帰",
33
- "employee.regression.cap": "Acceptance testing.md L0–L3 / Playwright。テスト作成・実行・証拠。業務範囲は変更しない。",
33
+ "employee.regression.cap": "Acceptance .duaer/memory/testing.md L0–L3 回帰(Playwright / npm test 優先)。テスト作成・実行・証拠。業務範囲は変更せず、失敗時は accepted にしない。",
34
34
  "employee.deployer.name": "デプロイ従業員",
35
35
  "employee.deployer.cap": "計画ホストへ公開:Cloudflare / 阿里云 / AWS / GitHub Pages。公開 URL を preview に書く。",
36
36
  "project.mark": "Project",
@@ -24,13 +24,13 @@ export const ko = {
24
24
  "employee.mark": "Employees",
25
25
  "employee.title": "디지털 직원",
26
26
  "employee.close": "닫기",
27
- "employee.lead": "킥오프는 작업 역할로 배정; 런타임은 여전히 Cursor Agent / Claude Code입니다.",
27
+ "employee.lead": "킥오프는 역할로 배정. 구현은 기능 개발; 기능 회귀는 Acceptance와 testing.md로 검증(Playwright 우선), 업무 범위 변경 없음; 배포는 계획된 호스트로. 런타임은 Cursor Agent / Claude Code.",
28
28
  "employee.role": "역할 {role}",
29
29
  "employee.runtime": "런타임 · Cursor / Claude",
30
30
  "employee.implementer.name": "구현 직원",
31
31
  "employee.implementer.cap": "Acceptance에 맞춰 구현; README 업데이트; 미리보기 시작 및 delivery stamp.",
32
32
  "employee.regression.name": "기능 회귀",
33
- "employee.regression.cap": "Acceptance testing.md L0–L3 / Playwright; 작성·실행·증거; 제품 범위는 변경하지 않음.",
33
+ "employee.regression.cap": "Acceptance .duaer/memory/testing.md L0–L3 회귀(Playwright / npm test 우선); 테스트 작성·실행·증거; 업무 범위 변경 없음; 실패 시 accepted stamp 금지.",
34
34
  "employee.deployer.name": "배포 직원",
35
35
  "employee.deployer.cap": "계획 호스트로 배포: Cloudflare / Alibaba Cloud / AWS / GitHub Pages; 공개 미리보기 URL 기록.",
36
36
  "project.mark": "Project",
@@ -24,13 +24,13 @@ export const ptBR = {
24
24
  "employee.mark": "Employees",
25
25
  "employee.title": "Funcionários digitais",
26
26
  "employee.close": "Fechar",
27
- "employee.lead": "O kickoff atribui por papel da tarefa; em execução continua sendo Cursor Agent / Claude Code.",
27
+ "employee.lead": "O kickoff atribui por papel. Implementação constrói; regressão funcional verifica Acceptance via testing.md (preferir Playwright) sem mudar o escopo; Publicador sobe no host planejado. Runtime: Cursor Agent / Claude Code.",
28
28
  "employee.role": "Papel {role}",
29
29
  "employee.runtime": "Ambiente de execução · Cursor / Claude",
30
30
  "employee.implementer.name": "Implementador",
31
31
  "employee.implementer.cap": "Implementar até a Acceptance; atualizar README; iniciar prévia e registrar delivery.",
32
32
  "employee.regression.name": "Regressão funcional",
33
- "employee.regression.cap": "Acceptance testing.md L0–L3 / Playwright; escrever, executar, evidências; sem alterar escopo do produto.",
33
+ "employee.regression.cap": "Checar Acceptance com .duaer/memory/testing.md (L0–L3; preferir Playwright / npm test); escrever, rodar, evidência; sem mudar escopo; não stamp accepted se falhar.",
34
34
  "employee.deployer.name": "Publicador",
35
35
  "employee.deployer.cap": "Publicar no host planejado: Cloudflare / Alibaba Cloud / AWS / GitHub Pages; registrar URL pública de prévia.",
36
36
  "project.mark": "Project",
@@ -24,13 +24,13 @@ export const ru = {
24
24
  "employee.mark": "Employees",
25
25
  "employee.title": "Цифровые сотрудники",
26
26
  "employee.close": "Закрыть",
27
- "employee.lead": "Старт назначает по роли задачи; исполнение Cursor Agent / Claude Code.",
27
+ "employee.lead": "Kickoff назначает по роли. Реализация пишет код; функциональная регрессия проверяет Acceptance по testing.md (предпочтительно Playwright) без смены объёма; развёртывание публикует на выбранный хост. Runtime: Cursor Agent / Claude Code.",
28
28
  "employee.role": "Роль {role}",
29
29
  "employee.runtime": "Среда · Cursor / Claude",
30
30
  "employee.implementer.name": "Реализатор",
31
31
  "employee.implementer.cap": "Собрать по Acceptance; обновить README; запустить превью и поставить delivery stamp.",
32
32
  "employee.regression.name": "Функциональная регрессия",
33
- "employee.regression.cap": "Acceptance testing.md L0–L3 / Playwright; писать, запускать, фиксировать доказательства; без правок продуктового объёма.",
33
+ "employee.regression.cap": "Проверить Acceptance по .duaer/memory/testing.md (L0–L3; предпочтительно Playwright / npm test); писать, запускать, собирать доказательства; не менять объём продукта; при сбое не stamp accepted.",
34
34
  "employee.deployer.name": "Сотрудник развёртывания",
35
35
  "employee.deployer.cap": "Выкатить на запланированный хост: Cloudflare / Alibaba Cloud / AWS / GitHub Pages; записать публичный URL превью.",
36
36
  "project.mark": "Project",
@@ -24,13 +24,13 @@ export const vi = {
24
24
  "employee.mark": "Employees",
25
25
  "employee.title": "Nhân viên số",
26
26
  "employee.close": "Đóng",
27
- "employee.lead": "Kickoff phân theo vai trò nhiệm vụ; runtime vẫn Cursor Agent / Claude Code.",
27
+ "employee.lead": "Kickoff phân theo vai trò. Triển khai viết tính năng; hồi quy chức năng đối chiếu Acceptance với testing.md (ưu tiên Playwright), không đổi phạm vi; triển khai lên host đã chọn. Runtime: Cursor Agent / Claude Code.",
28
28
  "employee.role": "Vai trò {role}",
29
29
  "employee.runtime": "Runtime · Cursor / Claude",
30
30
  "employee.implementer.name": "Người triển khai",
31
31
  "employee.implementer.cap": "Xây theo Acceptance; cập nhật README; khởi động preview và đóng stamp delivery.",
32
32
  "employee.regression.name": "Hồi quy chức năng",
33
- "employee.regression.cap": "Acceptance testing.md L0–L3 / Playwright; viết, chạy, chứng cứ; không sửa phạm vi sản phẩm.",
33
+ "employee.regression.cap": "Đối chiếu Acceptance với .duaer/memory/testing.md (L0–L3; ưu tiên Playwright / npm test); viết/chạy test, giữ bằng chứng; không đổi phạm vi; thất bại thì không stamp accepted.",
34
34
  "employee.deployer.name": "Nhân viên triển khai",
35
35
  "employee.deployer.cap": "Đưa lên host đã lên kế hoạch: Cloudflare / Alibaba Cloud / AWS / GitHub Pages; ghi URL preview công khai.",
36
36
  "project.mark": "Project",
@@ -24,13 +24,13 @@ export const zhTW = {
24
24
  "employee.mark": "Employees",
25
25
  "employee.title": "數位員工",
26
26
  "employee.close": "關閉",
27
- "employee.lead": "開工依任務角色指派;執行時仍是 Cursor Agent / Claude Code。",
27
+ "employee.lead": "開工依任務角色分派。實現寫功能;功能回歸對照驗收與 testing.md 跑測(優先 Playwright),不改業務範圍;部署依計劃託管上線。執行仍是 Cursor Agent / Claude Code。",
28
28
  "employee.role": "角色 {role}",
29
29
  "employee.runtime": "執行時 · Cursor / Claude",
30
30
  "employee.implementer.name": "實作員工",
31
31
  "employee.implementer.cap": "依 Acceptance 實作;更新 README;啟動預覽並 stamp 交付。",
32
32
  "employee.regression.name": "功能回歸",
33
- "employee.regression.cap": "Acceptance testing.md L0–L3 / Playwright;撰寫、執行、留證據;不改產品範圍。",
33
+ "employee.regression.cap": "對照驗收與 .duaer/memory/testing.md L0–L3 回歸(優先 Playwright / npm test);寫測、跑測、留證據;不改業務範圍;失敗不 stamp accepted。",
34
34
  "employee.deployer.name": "部署員工",
35
35
  "employee.deployer.cap": "部署至計劃主機:Cloudflare / Alibaba Cloud / AWS / GitHub Pages;寫入公開預覽 URL。",
36
36
  "project.mark": "Project",
@@ -54,13 +54,13 @@ const zhCN = {
54
54
  "employee.mark": "Employees",
55
55
  "employee.title": "数字员工",
56
56
  "employee.close": "关闭",
57
- "employee.lead": "派工时按任务角色分配;运行时仍是 Cursor Agent / Claude Code。",
57
+ "employee.lead": "开工按任务角色分派。实现写功能;功能回归对照验收与 testing.md 跑测(优先 Playwright),不改业务范围;部署按计划托管上线。运行时仍是 Cursor Agent / Claude Code。",
58
58
  "employee.role": "角色 {role}",
59
59
  "employee.runtime": "运行时 · Cursor / Claude",
60
60
  "employee.implementer.name": "实现员工",
61
61
  "employee.implementer.cap": "按 Acceptance 实现功能;更新 README;启动预览并 stamp 交付。",
62
62
  "employee.regression.name": "功能回归",
63
- "employee.regression.cap": "Acceptance testing.md L0–L3 / Playwright;写测、跑测、留证据;不改业务范围。",
63
+ "employee.regression.cap": "对照验收与 .duaer/memory/testing.md L0–L3 回归(优先 Playwright / npm test);写测、跑测、留证据;不改业务范围;失败不 stamp accepted。",
64
64
  "employee.deployer.name": "部署员工",
65
65
  "employee.deployer.cap": "按计划托管上线:Cloudflare / 阿里云 / AWS / GitHub Pages;写入公网预览地址。",
66
66
  "project.mark": "Project",
@@ -586,13 +586,13 @@ const en = {
586
586
  "employee.mark": "Employees",
587
587
  "employee.title": "Digital employees",
588
588
  "employee.close": "Close",
589
- "employee.lead": "Kickoff assigns by task role; runtime is still Cursor Agent / Claude Code.",
589
+ "employee.lead": "Kickoff assigns by task role. Implementer builds; Functional regression checks acceptance via testing.md (prefer Playwright) without changing product scope; Deployer ships to the planned host. Runtime is still Cursor Agent / Claude Code.",
590
590
  "employee.role": "Role {role}",
591
591
  "employee.runtime": "Runtime · Cursor / Claude",
592
592
  "employee.implementer.name": "Implementer",
593
593
  "employee.implementer.cap": "Build to Acceptance; update README; start preview and stamp delivery.",
594
594
  "employee.regression.name": "Functional regression",
595
- "employee.regression.cap": "Acceptance testing.md L0–L3 / Playwright; write, run, evidence; no product-scope edits.",
595
+ "employee.regression.cap": "Check acceptance against .duaer/memory/testing.md (L0–L3; prefer Playwright / npm test); write, run, evidence; no product-scope edits; do not stamp accepted on failure.",
596
596
  "employee.deployer.name": "Deployer",
597
597
  "employee.deployer.cap": "Ship to planned host: Cloudflare / Alibaba Cloud / AWS / GitHub Pages; write public preview URL.",
598
598
  "project.mark": "Project",