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.
- package/.claude/rules/agents-workflow.md +2 -0
- package/.claude/rules/duaer-spec.md +1 -0
- package/.cursor/rules/agents-workflow.mdc +2 -0
- package/.cursor/rules/duaer-spec.mdc +1 -0
- package/.duaer/active-job.json +3 -3
- package/.duaer/specs/260-release-026/delivery.json +10 -9
- package/.duaer/specs/260-release-026/tasks.md +1 -3
- package/.duaer/specs/261-fde-baseline-sign/delivery.json +10 -0
- package/.duaer/specs/261-fde-baseline-sign/spec.md +37 -0
- package/.duaer/specs/261-fde-baseline-sign/tasks.md +8 -0
- package/.duaer/specs/262-fde01-readme-docs/delivery.json +9 -0
- package/.duaer/specs/262-fde01-readme-docs/spec.md +23 -0
- package/.duaer/specs/262-fde01-readme-docs/tasks.md +5 -0
- package/.duaer/specs/263-arch-edge-via/delivery.json +9 -0
- package/.duaer/specs/263-arch-edge-via/spec.md +25 -0
- package/.duaer/specs/263-arch-edge-via/tasks.md +5 -0
- package/.duaer/specs/264-baseline-field-guide/delivery.json +10 -0
- package/.duaer/specs/264-baseline-field-guide/spec.md +23 -0
- package/.duaer/specs/264-baseline-field-guide/tasks.md +5 -0
- package/.duaer/specs/265-baseline-chat-passthrough/delivery.json +9 -0
- package/.duaer/specs/265-baseline-chat-passthrough/spec.md +22 -0
- package/.duaer/specs/265-baseline-chat-passthrough/tasks.md +4 -0
- package/.duaer/specs/266-fde02-api-contract/delivery.json +10 -0
- package/.duaer/specs/266-fde02-api-contract/spec.md +28 -0
- package/.duaer/specs/266-fde02-api-contract/tasks.md +7 -0
- package/.duaer/specs/267-baseline-restore/delivery.json +9 -0
- package/.duaer/specs/267-baseline-restore/spec.md +24 -0
- package/.duaer/specs/267-baseline-restore/tasks.md +5 -0
- package/.duaer/specs/268-fde07-uat/delivery.json +9 -0
- package/.duaer/specs/268-fde07-uat/spec.md +30 -0
- package/.duaer/specs/268-fde07-uat/tasks.md +5 -0
- package/.duaer/specs/269-release-027/spec.md +12 -0
- package/.duaer/specs/269-release-027/tasks.md +4 -0
- package/.duaer/specs/270-patch-version/delivery.json +7 -0
- package/.duaer/specs/270-patch-version/spec.md +19 -0
- package/.duaer/specs/270-patch-version/tasks.md +4 -0
- package/.duaer/specs/271-fde04-compat/delivery.json +9 -0
- package/.duaer/specs/271-fde04-compat/spec.md +25 -0
- package/.duaer/specs/271-fde04-compat/tasks.md +5 -0
- package/.duaer/specs/272-fde03-env-check/delivery.json +9 -0
- package/.duaer/specs/272-fde03-env-check/spec.md +34 -0
- package/.duaer/specs/272-fde03-env-check/tasks.md +5 -0
- package/.duaer/specs/273-fde06-data-precheck/delivery.json +9 -0
- package/.duaer/specs/273-fde06-data-precheck/spec.md +37 -0
- package/.duaer/specs/273-fde06-data-precheck/tasks.md +5 -0
- package/.duaer/specs/274-fde05-external-deps/delivery.json +9 -0
- package/.duaer/specs/274-fde05-external-deps/spec.md +37 -0
- package/.duaer/specs/274-fde05-external-deps/tasks.md +5 -0
- package/.duaer/specs/275-release-0271/spec.md +13 -0
- package/.duaer/specs/275-release-0271/tasks.md +4 -0
- package/AGENTS.md +5 -2
- package/CHANGELOG.md +81 -0
- package/README.md +22 -14
- package/README.zh-CN.md +6 -5
- package/bin/duaer-live.mjs +266 -77
- package/bin/live-archify.mjs +85 -0
- package/bin/live-deliverables.mjs +65 -0
- package/bin/live-modules.mjs +127 -3
- package/bin/live-project-chat.mjs +24 -1
- package/docs/agent/branching-and-release.md +16 -0
- package/docs/agent/e2e-test-plan.md +19 -0
- package/docs/agent/live-desk.md +36 -1
- package/docs/agent/workflow.md +2 -0
- package/package.json +1 -1
- package/web/live-dev/api-contract.mjs +50 -0
- package/web/live-dev/app.js +345 -21
- package/web/live-dev/baseline.mjs +74 -0
- package/web/live-dev/compat-matrix.mjs +38 -0
- package/web/live-dev/confirm-card.mjs +22 -0
- package/web/live-dev/data-precheck.mjs +35 -0
- package/web/live-dev/env-check.mjs +41 -0
- package/web/live-dev/external-deps.mjs +35 -0
- package/web/live-dev/i18n-de.js +37 -0
- package/web/live-dev/i18n-es.js +37 -0
- package/web/live-dev/i18n-fr.js +37 -0
- package/web/live-dev/i18n-ja.js +37 -0
- package/web/live-dev/i18n-ko.js +37 -0
- package/web/live-dev/i18n-pt-BR.js +37 -0
- package/web/live-dev/i18n-ru.js +37 -0
- package/web/live-dev/i18n-vi.js +37 -0
- package/web/live-dev/i18n-zh-TW.js +37 -0
- package/web/live-dev/i18n.js +77 -2
- package/web/live-dev/index.html +60 -1
- package/web/live-dev/styles.css +4 -0
- 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,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,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.
|
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
|
-
|
|
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
|
|
167
|
-
|
|
168
|
-
|
|
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) → **
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
**
|
|
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,
|
|
188
|
-
delivery). On delivery, workers
|
|
189
|
-
`delivery.json` is `accepted`. Then open
|
|
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
|
-
- **聊着把需求聊清楚。**
|
|
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. **按模块**填确认卡(目标 / 不做 / **可检查验收** /
|
|
149
|
-
3. 关心的模块都确认完 → 审 / 确认**架构**(Archify)→ **开工(kickoff
|
|
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
|
|
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
|
|