duaer-spec 0.22.0 → 0.23.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/.duaer/active-job.json +2 -3
- package/.duaer/specs/205-release-022/delivery.json +10 -0
- package/.duaer/specs/205-release-022/tasks.md +2 -2
- package/.duaer/specs/206-employee-directory/delivery.json +13 -0
- package/.duaer/specs/206-employee-directory/spec.md +32 -0
- package/.duaer/specs/206-employee-directory/tasks.md +6 -0
- package/.duaer/specs/207-fix-projects-root-pick/delivery.json +10 -0
- package/.duaer/specs/207-fix-projects-root-pick/spec.md +20 -0
- package/.duaer/specs/207-fix-projects-root-pick/tasks.md +5 -0
- package/.duaer/specs/208-arch-click-fullscreen/delivery.json +10 -0
- package/.duaer/specs/208-arch-click-fullscreen/spec.md +24 -0
- package/.duaer/specs/208-arch-click-fullscreen/tasks.md +6 -0
- package/.duaer/specs/209-orch-wave-deadlock/delivery.json +10 -0
- package/.duaer/specs/209-orch-wave-deadlock/spec.md +27 -0
- package/.duaer/specs/209-orch-wave-deadlock/tasks.md +5 -0
- package/.duaer/specs/210-release-023/delivery.json +10 -0
- package/.duaer/specs/210-release-023/spec.md +12 -0
- package/.duaer/specs/210-release-023/tasks.md +6 -0
- package/.duaer/specs/211-plain-features/delivery.json +10 -0
- package/.duaer/specs/211-plain-features/spec.md +12 -0
- package/.duaer/specs/211-plain-features/tasks.md +5 -0
- package/.duaer/specs/212-release-0231/spec.md +12 -0
- package/.duaer/specs/212-release-0231/tasks.md +5 -0
- package/CHANGELOG.md +31 -0
- package/README.md +34 -0
- package/README.zh-CN.md +34 -0
- package/bin/duaer-live.mjs +114 -50
- package/bin/live-modules.mjs +31 -3
- package/bin/live-orchestrate.mjs +2 -11
- package/docs/agent/e2e-test-plan.md +9 -7
- package/docs/agent/live-desk.md +7 -1
- package/package.json +1 -1
- package/web/live-dev/app.js +107 -8
- package/web/live-dev/architecture-mount.mjs +16 -55
- package/web/live-dev/employee-catalog.mjs +54 -0
- package/web/live-dev/i18n-ja.js +12 -1
- package/web/live-dev/i18n.js +24 -2
- package/web/live-dev/index.html +26 -0
- package/web/live-dev/styles.css +41 -0
package/.duaer/active-job.json
CHANGED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"status": "accepted",
|
|
3
|
+
"acceptedAt": "2026-09-19T07:37:00.000Z",
|
|
4
|
+
"verification": {
|
|
5
|
+
"levels": ["L1"],
|
|
6
|
+
"commands": ["npm test (168 pass)", "gh release v0.22.0", "npm view duaer-spec version → 0.22.0"],
|
|
7
|
+
"result": "pass"
|
|
8
|
+
},
|
|
9
|
+
"summary": "Released 0.22.0 to GitHub and npm (ja locale + atomic tasks)."
|
|
10
|
+
}
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
|
|
3
3
|
- [x] T001 Bump package.json to 0.22.0 and move CHANGELOG Unreleased
|
|
4
4
|
- [x] T002 Merge release branch to develop
|
|
5
|
-
- [
|
|
6
|
-
- [
|
|
5
|
+
- [x] T003 Promote develop → main, push, tag, gh release, npm
|
|
6
|
+
- [x] T004 Stamp delivery accepted
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"status": "accepted",
|
|
3
|
+
"acceptedAt": "2026-09-19T12:45:00.000Z",
|
|
4
|
+
"verification": {
|
|
5
|
+
"levels": ["L0", "L1", "L3"],
|
|
6
|
+
"commands": [
|
|
7
|
+
"npm test (173 pass)",
|
|
8
|
+
"npm run test:live"
|
|
9
|
+
],
|
|
10
|
+
"result": "pass"
|
|
11
|
+
},
|
|
12
|
+
"summary": "Top employee directory with Implementer + Functional regression; task roles and verify-l3 lane assignment."
|
|
13
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Feature Specification: Digital employee directory + role specialization
|
|
2
|
+
|
|
3
|
+
**Feature Branch**: `feat/employee-directory`
|
|
4
|
+
|
|
5
|
+
## Goal
|
|
6
|
+
|
|
7
|
+
Add a top-bar **数字员工** directory listing specialized employees. Seed at
|
|
8
|
+
least: **Implementer** and **Functional regression** (Acceptance → Playwright /
|
|
9
|
+
testing.md L3). Kickoff tasks carry a `role`; multi-worker dispatch prefers
|
|
10
|
+
verify-l3 tasks on a dedicated lane.
|
|
11
|
+
|
|
12
|
+
## In scope
|
|
13
|
+
|
|
14
|
+
- Top button + drawer (same pattern as Projects)
|
|
15
|
+
- Catalog: implementer + regression (capabilities copy via i18n zh/en/ja)
|
|
16
|
+
- Task pool `role: implement | verify-l3`; markdown shows role
|
|
17
|
+
- When workerCount ≥ 2, assign verify-l3 tasks to the last worker lane
|
|
18
|
+
- Kickoff prompts include role blurb for owned roles
|
|
19
|
+
- Docs / E2E / tests
|
|
20
|
+
|
|
21
|
+
## Out of scope
|
|
22
|
+
|
|
23
|
+
- New CLI runtimes (still Cursor / Claude)
|
|
24
|
+
- jev-ultrafast / browser-use agent
|
|
25
|
+
- User-editable custom employees
|
|
26
|
+
|
|
27
|
+
## Acceptance
|
|
28
|
+
|
|
29
|
+
1. Top bar has 数字员工; drawer lists implementer + regression with capability text
|
|
30
|
+
2. Kickoff task-pool.json tasks include `role`
|
|
31
|
+
3. workerCount≥2 puts verify-l3 tasks on last worker
|
|
32
|
+
4. Unit tests + E2E catalog row; live smoke markers if needed
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"status": "accepted",
|
|
3
|
+
"acceptedAt": "2026-09-19T12:55:00.000Z",
|
|
4
|
+
"verification": {
|
|
5
|
+
"levels": ["L0", "L1"],
|
|
6
|
+
"commands": ["node --check bin/duaer-live.mjs", "npm test (173 pass)"],
|
|
7
|
+
"result": "pass"
|
|
8
|
+
},
|
|
9
|
+
"summary": "Parent folder picker activates Finder (frontmost) and path field click opens pick; async so HTTP stays responsive."
|
|
10
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Fix: projects parent folder picker unusable
|
|
2
|
+
|
|
3
|
+
## Symptom
|
|
4
|
+
|
|
5
|
+
Clicking 产品父目录 / 选择… does not yield a usable folder choice (dialog
|
|
6
|
+
behind other windows, or readonly field ignores clicks).
|
|
7
|
+
|
|
8
|
+
## Cause
|
|
9
|
+
|
|
10
|
+
`pickFolderNative` uses `osascript choose folder` without activating a UI
|
|
11
|
+
app, so the dialog often stays behind the browser. The path field is
|
|
12
|
+
readonly with no click handler.
|
|
13
|
+
|
|
14
|
+
## Acceptance
|
|
15
|
+
|
|
16
|
+
1. Clicking **选择…** or the readonly parent path opens a frontmost macOS
|
|
17
|
+
folder dialog (Finder-activated).
|
|
18
|
+
2. Pick is async (HTTP event loop not blocked by spawnSync).
|
|
19
|
+
3. Cancel leaves previous `projectsRoot` unchanged.
|
|
20
|
+
4. Unit markers + L0 check.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"status": "accepted",
|
|
3
|
+
"acceptedAt": "2026-09-19T13:10:00.000Z",
|
|
4
|
+
"verification": {
|
|
5
|
+
"levels": ["L0", "L1"],
|
|
6
|
+
"commands": ["node --test test/arch-fullscreen.test.mjs test/live-archify.test.mjs", "npm test"],
|
|
7
|
+
"result": "pass"
|
|
8
|
+
},
|
|
9
|
+
"summary": "Architecture mount click opens present fullscreen only; embed node zoom disabled."
|
|
10
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Spec: Architecture click opens fullscreen only
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
On the live desk system-architecture (and same-style) mounts, a click opens the
|
|
6
|
+
fullscreen present view. Node zoom / enlarge-on-click in the embed is removed.
|
|
7
|
+
|
|
8
|
+
## In scope
|
|
9
|
+
|
|
10
|
+
- Host click (capture) opens `present=1` fullscreen and stops Archify node zoom
|
|
11
|
+
- Disable desk embed `installDesktopReveal` zoom path
|
|
12
|
+
- Update E2E catalog lines that still require embed node zoom
|
|
13
|
+
|
|
14
|
+
## Out of scope
|
|
15
|
+
|
|
16
|
+
- Changing fullscreen present page itself
|
|
17
|
+
- Removing the explicit「全屏查看」button
|
|
18
|
+
|
|
19
|
+
## Acceptance
|
|
20
|
+
|
|
21
|
+
- [ ] Clicking the architecture diagram opens fullscreen present (new tab)
|
|
22
|
+
- [ ] Clicking a node does not zoom / enlarge that node in the desk embed
|
|
23
|
+
- [ ] Task-path / revise mounts keep the same click → fullscreen behavior
|
|
24
|
+
- [ ] Tests and E2E catalog match the new behavior
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"status": "accepted",
|
|
3
|
+
"acceptedAt": "2026-09-19T13:20:00.000Z",
|
|
4
|
+
"verification": {
|
|
5
|
+
"levels": ["L0", "L1"],
|
|
6
|
+
"commands": ["npm test (173 pass)"],
|
|
7
|
+
"result": "pass"
|
|
8
|
+
},
|
|
9
|
+
"summary": "Wave continue enqueues while lane busy; agents exit after wave instead of silent hang deadlock."
|
|
10
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Spec: Fix orchestration wave deadlock after silent wait
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
After a wave finishes and `tasks.md` is checked, the orchestrator must release
|
|
6
|
+
the next ready wave. Agents must not sit in a live Terminal session waiting —
|
|
7
|
+
that keeps `lane_busy` and blocks continue forever.
|
|
8
|
+
|
|
9
|
+
## In scope
|
|
10
|
+
|
|
11
|
+
- Prompt: after a wave, exit the CLI session so the runner becomes idle /
|
|
12
|
+
can drain a queued `--continue`
|
|
13
|
+
- `pendingWaveReleases`: enqueue next wave even when the lane is busy
|
|
14
|
+
(FIFO serialize); do not stall on `lane_busy`
|
|
15
|
+
- Accept-nudge: same enqueue-when-busy behavior
|
|
16
|
+
- Docs / tests / E2E note
|
|
17
|
+
|
|
18
|
+
## Out of scope
|
|
19
|
+
|
|
20
|
+
- Changing dependsOn / atomic task splitting
|
|
21
|
+
- Fixing polluted startCommand content from other projects (separate)
|
|
22
|
+
|
|
23
|
+
## Acceptance
|
|
24
|
+
|
|
25
|
+
- [ ] Status with T001 done + next wave ready enqueues/releases while lane busy
|
|
26
|
+
- [ ] Prompts no longer tell the agent to 静默停等 with the session held open
|
|
27
|
+
- [ ] Unit tests updated; npm test passes
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"status": "accepted",
|
|
3
|
+
"acceptedAt": "2026-09-19T13:20:00.000Z",
|
|
4
|
+
"verification": {
|
|
5
|
+
"levels": ["L0", "L1"],
|
|
6
|
+
"commands": ["npm test (173 pass)", "gh release v0.23.0", "npm view duaer-spec version → 0.23.0"],
|
|
7
|
+
"result": "pass"
|
|
8
|
+
},
|
|
9
|
+
"summary": "Released 0.23.0 to GitHub and npm (employee directory, picker, arch fullscreen, orch deadlock)."
|
|
10
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# 210 — Release 0.23.0
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
Ship 0.23.0: bump version + CHANGELOG, promote develop → main, push,
|
|
6
|
+
GitHub Release `v0.23.0`, trigger npm Trusted Publishing.
|
|
7
|
+
|
|
8
|
+
## Acceptance
|
|
9
|
+
|
|
10
|
+
1. `package.json` is `0.23.0`; CHANGELOG has `0.23.0` section (Unreleased cleared).
|
|
11
|
+
2. `develop` and `main` both contain the release; tag `v0.23.0` pushed.
|
|
12
|
+
3. GitHub Release `v0.23.0` published; npm shows `duaer-spec@0.23.0`.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"status": "accepted",
|
|
3
|
+
"acceptedAt": "2026-09-19T13:30:00.000Z",
|
|
4
|
+
"verification": {
|
|
5
|
+
"levels": ["L0"],
|
|
6
|
+
"commands": ["rg -n '我们有什么|What you get' README.zh-CN.md README.md"],
|
|
7
|
+
"result": "pass"
|
|
8
|
+
},
|
|
9
|
+
"summary": "READMEs list product capabilities in plain language (editor employee + live desk)."
|
|
10
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Spec: Plain-language feature overview in READMEs
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
Add a human-readable “what you get” feature list to `README.zh-CN.md` and
|
|
6
|
+
`README.md` so readers see capabilities without jargon-first flow dumps.
|
|
7
|
+
|
|
8
|
+
## Acceptance
|
|
9
|
+
|
|
10
|
+
- [ ] Chinese README has a 人话「我们有什么」section covering desk + employee core
|
|
11
|
+
- [ ] English README has a matching plain-language “What you get” section
|
|
12
|
+
- [ ] No CJK in English README; Chinese README may keep English product terms
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# 212 — Release 0.23.1
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
Ship 0.23.1: plain-language README feature overview. Bump, CHANGELOG,
|
|
6
|
+
promote develop → main, push, GitHub Release, npm Trusted Publishing.
|
|
7
|
+
|
|
8
|
+
## Acceptance
|
|
9
|
+
|
|
10
|
+
1. `package.json` is `0.23.1`; CHANGELOG has `0.23.1` (Unreleased cleared).
|
|
11
|
+
2. Tag `v0.23.1` on main; GitHub Release published.
|
|
12
|
+
3. npm shows `duaer-spec@0.23.1`.
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,37 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.23.1 — 2026-09-19
|
|
6
|
+
|
|
7
|
+
### Docs: plain-language feature overview in READMEs
|
|
8
|
+
|
|
9
|
+
- Chinese「我们有什么」and English「What you get」list desk + employee capabilities
|
|
10
|
+
without jargon-first flow dumps
|
|
11
|
+
|
|
12
|
+
## 0.23.0 — 2026-09-19
|
|
13
|
+
|
|
14
|
+
### Fix: orchestration wave release no longer deadlocks on silent wait
|
|
15
|
+
|
|
16
|
+
- Next ready wave is FIFO-enqueued even when the Terminal lane is busy
|
|
17
|
+
- After a wave, agents exit the CLI session (no hang waiting for continue)
|
|
18
|
+
|
|
19
|
+
### Fix: architecture embed click opens fullscreen only
|
|
20
|
+
|
|
21
|
+
- Desk diagram click (capture) opens present fullscreen and does not zoom nodes
|
|
22
|
+
- Embed `reveal` zoom path disabled; focus-chip hidden on the mount
|
|
23
|
+
|
|
24
|
+
### Fix: projects parent folder picker frontmost + clickable path
|
|
25
|
+
|
|
26
|
+
- macOS folder dialog activates Finder so it is not buried behind the browser
|
|
27
|
+
- Pick is async (no spawnSync on the HTTP thread)
|
|
28
|
+
- Clicking the readonly parent path also opens the picker
|
|
29
|
+
|
|
30
|
+
### Feat: digital employee directory + role specialization
|
|
31
|
+
|
|
32
|
+
- Top bar **数字员工** drawer lists Implementer and Functional regression
|
|
33
|
+
- Kickoff tasks carry `role: implement | verify-l3`; multi-worker puts
|
|
34
|
+
verify-l3 on the last lane; prompts include role blurbs
|
|
35
|
+
|
|
5
36
|
## 0.22.0 — 2026-09-19
|
|
6
37
|
|
|
7
38
|
### Feat: Japanese (ja) live desk locale
|
package/README.md
CHANGED
|
@@ -45,6 +45,40 @@ Install writes host adapters for each (see [`ADOPT.md`](ADOPT.md)).
|
|
|
45
45
|
|
|
46
46
|
Chinese guide: [`README.zh-CN.md`](README.zh-CN.md)
|
|
47
47
|
|
|
48
|
+
## What you get (plain language)
|
|
49
|
+
|
|
50
|
+
After install, these are the capabilities you actually use:
|
|
51
|
+
|
|
52
|
+
### In your editor: a digital employee that delivers
|
|
53
|
+
|
|
54
|
+
- **You talk; it runs the process.** No slash commands, no “you must run Spec phases.”
|
|
55
|
+
- **Clarify before coding.** It turns your ask into: what to build, what not to build, how we know it’s done.
|
|
56
|
+
- **Done means accepted.** It only claims finished when acceptance checks out — not when code merely exists.
|
|
57
|
+
- **Works in many hosts.** Cursor, Claude Code, Codex, Copilot, Windsurf, Cline, Continue, Gemini, Aider.
|
|
58
|
+
|
|
59
|
+
### In the browser: Duaer-spec FDE (live desk)
|
|
60
|
+
|
|
61
|
+
A local web desk (`duaer live`) for “chat → confirm → dispatch → watch → open result”:
|
|
62
|
+
|
|
63
|
+
- **Projects.** Create and switch projects; each keeps its own chat and progress.
|
|
64
|
+
- **Chat until the ask is clear.** Left chat; center confirm cards (goal / out of scope / checkable acceptance). Vague acceptance cannot be confirmed.
|
|
65
|
+
- **Split big work into modules.** Confirm module by module; nothing starts until you kick off after the ones you care about are confirmed.
|
|
66
|
+
- **Architecture diagram.** After requirements, review the system diagram; click it for fullscreen; kickoff waits until architecture is confirmed.
|
|
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
|
+
- **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. Optional parallel workers on the same CLI.
|
|
70
|
+
- **zh-CN / en / ja UI.** Desk copy follows the language you pick.
|
|
71
|
+
- **Deliverables and results.** Open a deliverables page (requirements, architecture, tasks, delivery); when done, open the page or the project folder.
|
|
72
|
+
- **Revise when it’s not right.** Continue in left chat → re-confirm → relaunch on the same job without starting from scratch.
|
|
73
|
+
- **Hosting when you need it.** Cloudflare / Alibaba Cloud / AWS / GitHub Pages; default is GitHub Actions when unset.
|
|
74
|
+
|
|
75
|
+
### Repo habits (for humans and employees)
|
|
76
|
+
|
|
77
|
+
- **Clear branches:** `main` for production, `develop` for day-to-day, short `feat`/`fix` branches merge back to `develop`.
|
|
78
|
+
- **Isolated changes:** each request uses its own worktree; after merge, clean up and hand local services back to the primary checkout.
|
|
79
|
+
|
|
80
|
+
The sections below are **how to run it**; this section is **what it can do**.
|
|
81
|
+
|
|
48
82
|
## What the employee does (by itself)
|
|
49
83
|
|
|
50
84
|
1. Turns your ask into a Brief with **checkable acceptance**
|
package/README.zh-CN.md
CHANGED
|
@@ -12,6 +12,40 @@
|
|
|
12
12
|
|
|
13
13
|
`init` / `update` 会写入各宿主适配文件(详见 [`ADOPT.md`](ADOPT.md))。
|
|
14
14
|
|
|
15
|
+
## 我们有什么(人话)
|
|
16
|
+
|
|
17
|
+
装好之后,你主要用到的是这些能力:
|
|
18
|
+
|
|
19
|
+
### 在编辑器里:数字员工帮你干活
|
|
20
|
+
|
|
21
|
+
- **你说人话,它自己跑流程。** 不用记 slash 命令、不用自己点「写 Spec / 拆任务」。
|
|
22
|
+
- **先谈清楚再动手。** 它会把你的想法整理成:要做什么、不做什么、怎样算做完。
|
|
23
|
+
- **做完才算完。** 对照验收通过才会说「交付好了」;半成品不会假装完成。
|
|
24
|
+
- **多宿主可用。** Cursor、Claude Code、Codex、Copilot、Windsurf、Cline、Continue、Gemini、Aider 都行。
|
|
25
|
+
|
|
26
|
+
### 在浏览器里:Duaer-spec FDE(现场台面)
|
|
27
|
+
|
|
28
|
+
本机开一个网页台面(`duaer live`),专门管「从聊需求到派工、看进度、看结果」:
|
|
29
|
+
|
|
30
|
+
- **项目管理。** 建项目、切换项目;每个项目自己的对话和进度,互不搅在一起。
|
|
31
|
+
- **聊着把需求聊清楚。** 左边聊天;中间把目标、边界、验收写成确认卡;空话验收过不了,得能检查才给确认。
|
|
32
|
+
- **大需求可拆成多个模块。** 一块一块确认,确认完一块不会立刻开工,全部谈妥再一起派。
|
|
33
|
+
- **系统架构图。** 确认需求后一起看架构;点图可全屏查看;架构确认后才能派工。
|
|
34
|
+
- **一键派数字员工写代码。** 选产品目录、选 Cursor Agent 或 Claude Code,点开工;它在隔离目录里改代码,不直接乱动你的主分支。
|
|
35
|
+
- **任务进度看得见。** 任务拆成一条条可勾选项;做完勾一项,台面实时刷新;有依赖的任务会排队放行,不会一窝蜂乱做。
|
|
36
|
+
- **数字员工分工。** 顶部有「数字员工」目录:实现员工负责写功能,功能回归负责按验收和测试规则验;可开多个并行(同一套 CLI)。
|
|
37
|
+
- **中 / 英 / 日界面。** 台面文案可切换语种。
|
|
38
|
+
- **看交付物和结果。** 可打开交付物页(需求、架构、任务、交付记录);做完了可打开页面或项目文件夹。
|
|
39
|
+
- **不满意就继续改。** 左侧继续聊改进 → 再确认 → 同一次任务上续派,不用从头建仓。
|
|
40
|
+
- **要上线时可选托管。** Cloudflare / 阿里云 / AWS / GitHub Pages;没选时默认走 GitHub Actions。
|
|
41
|
+
|
|
42
|
+
### 仓库规矩(给协作和数字员工用)
|
|
43
|
+
|
|
44
|
+
- **分支分清楚:** `main` 上线、`develop` 日常、功能/修 bug 用短分支,做完合回 `develop`。
|
|
45
|
+
- **隔离改动:** 每次任务在独立 worktree 里做,做完合并、清理,本地服务交回主目录。
|
|
46
|
+
|
|
47
|
+
下面「安装 / 更新 / FDE 流程」是怎么用;上面这一节是**能干什么**。
|
|
48
|
+
|
|
15
49
|
## 安装
|
|
16
50
|
|
|
17
51
|
```bash
|