duaer-spec 0.27.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/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 +35 -0
- package/bin/duaer-live.mjs +117 -12
- package/bin/live-deliverables.mjs +12 -0
- package/bin/live-modules.mjs +64 -1
- package/bin/live-project-chat.mjs +6 -0
- package/docs/agent/branching-and-release.md +16 -0
- package/docs/agent/e2e-test-plan.md +5 -0
- package/docs/agent/live-desk.md +19 -1
- package/docs/agent/workflow.md +2 -0
- package/package.json +1 -1
- package/web/live-dev/app.js +69 -2
- package/web/live-dev/baseline.mjs +3 -0
- package/web/live-dev/compat-matrix.mjs +38 -0
- package/web/live-dev/confirm-card.mjs +3 -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 +11 -2
- package/web/live-dev/i18n-es.js +11 -2
- package/web/live-dev/i18n-fr.js +11 -2
- package/web/live-dev/i18n-ja.js +11 -2
- package/web/live-dev/i18n-ko.js +11 -2
- package/web/live-dev/i18n-pt-BR.js +11 -2
- package/web/live-dev/i18n-ru.js +11 -2
- package/web/live-dev/i18n-vi.js +11 -2
- package/web/live-dev/i18n-zh-TW.js +11 -2
- package/web/live-dev/i18n.js +22 -4
- package/web/live-dev/index.html +21 -3
|
@@ -50,6 +50,8 @@ cd .worktree/feat-login
|
|
|
50
50
|
- Push only when the user explicitly asks (a deploy/hosting ask authorizes
|
|
51
51
|
the `gh` + push needed for that publish — see `docs/agent/deploy-github.md`)
|
|
52
52
|
- Promote **`develop` → `main`** only when the user asks to go online
|
|
53
|
+
- Version: fast iteration bumps the **patch** (`0.27.1`, `0.27.2`, …). Next
|
|
54
|
+
after `0.27.1` is `0.27.2`. Do not bump the minor on every ship.
|
|
53
55
|
- English docs: no Chinese (CJK); Chinese docs may include English terms
|
|
54
56
|
|
|
55
57
|
## GitHub issue / PR intake
|
|
@@ -33,6 +33,7 @@ For new behavior, fixes, refactors that change product behavior, or architecture
|
|
|
33
33
|
as you go so progress is visible. Do not leave only coarse mega-tasks.
|
|
34
34
|
7. Merge to **`develop`** when done (hotfix: **`main`**, then back-merge
|
|
35
35
|
**`develop`**). Promote to **`main`** only if the user asks to go online.
|
|
36
|
+
Version bump is the patch (`0.27.2` next).
|
|
36
37
|
8. **Handoff (mandatory):** stop processes bound to `.worktree/<id>/`, remove
|
|
37
38
|
the worktree, then restart services from the primary checkout on `develop`
|
|
38
39
|
using `.duaer/handoff.json` / `duaer handoff [--run]`. Never leave the user
|
|
@@ -53,6 +53,8 @@ cd .worktree/feat-login
|
|
|
53
53
|
- Push only when the user explicitly asks (a deploy/hosting ask authorizes
|
|
54
54
|
the `gh` + push needed for that publish — see `docs/agent/deploy-github.md`)
|
|
55
55
|
- Promote **`develop` → `main`** only when the user asks to go online
|
|
56
|
+
- Version: fast iteration bumps the **patch** (`0.27.1`, `0.27.2`, …). Next
|
|
57
|
+
after `0.27.1` is `0.27.2`. Do not bump the minor on every ship.
|
|
56
58
|
- English docs: no Chinese (CJK); Chinese docs may include English terms
|
|
57
59
|
|
|
58
60
|
## GitHub issue / PR intake
|
|
@@ -37,6 +37,7 @@ For new behavior, fixes, refactors that change product behavior, or architecture
|
|
|
37
37
|
as you go so progress is visible. Do not leave only coarse mega-tasks.
|
|
38
38
|
7. Merge to **`develop`** when done (hotfix: **`main`**, then back-merge
|
|
39
39
|
**`develop`**). Promote to **`main`** only if the user asks to go online.
|
|
40
|
+
Version bump is the patch (`0.27.2` next).
|
|
40
41
|
8. **Handoff (mandatory):** stop processes bound to `.worktree/<id>/`, remove
|
|
41
42
|
the worktree, then restart services from the primary checkout on `develop`
|
|
42
43
|
using `.duaer/handoff.json` / `duaer handoff [--run]`. Never leave the user
|
package/.duaer/active-job.json
CHANGED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Feature Specification: Patch versions for fast iteration
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
Ships after 0.27.0 increment the patch number. The next release is 0.27.1.
|
|
6
|
+
|
|
7
|
+
## In scope
|
|
8
|
+
|
|
9
|
+
- Release docs and agent rules state the default bump is the last number
|
|
10
|
+
|
|
11
|
+
## Out of scope
|
|
12
|
+
|
|
13
|
+
- Cutting 0.27.1 now
|
|
14
|
+
- Changing npm or GitHub release automation
|
|
15
|
+
|
|
16
|
+
## Acceptance
|
|
17
|
+
|
|
18
|
+
1. Branching docs say 0.27.0 is followed by 0.27.1, not 0.28.0
|
|
19
|
+
2. Agent rules repeat that patch bump
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"status": "accepted",
|
|
3
|
+
"summary": "Feature device matrix must name two targets, evidence, and a fallback; kickoff schedules the compat check.",
|
|
4
|
+
"verification": {
|
|
5
|
+
"L0": "node --check bin/duaer-live.mjs bin/live-modules.mjs — pass",
|
|
6
|
+
"L1": "npm test — 239 pass",
|
|
7
|
+
"L3": "npm run test:live — pass"
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Feature Specification: FDE-04 browser matrix evidence
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
A feature confirm card cannot pass with a vague browser line. The device
|
|
6
|
+
matrix must name real targets, point at evidence, and state a fallback.
|
|
7
|
+
Kickoff schedules that check.
|
|
8
|
+
|
|
9
|
+
## In scope
|
|
10
|
+
|
|
11
|
+
- Local validate on deviceMatrix
|
|
12
|
+
- One FDE-04 task per confirmed module
|
|
13
|
+
- Hint, placeholder, and chat/accept prompts
|
|
14
|
+
|
|
15
|
+
## Out of scope
|
|
16
|
+
|
|
17
|
+
- Bug desk
|
|
18
|
+
- Running a device lab
|
|
19
|
+
|
|
20
|
+
## Acceptance
|
|
21
|
+
|
|
22
|
+
1. "主流浏览器" or a single browser name fails local validate
|
|
23
|
+
2. Two named targets plus screenshot/cloud evidence plus a fallback passes
|
|
24
|
+
3. Kickoff adds an FDE-04 compat evidence task
|
|
25
|
+
4. npm test and npm run test:live pass
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"status": "accepted",
|
|
3
|
+
"summary": "Feature confirm requires a passed DNS/TLS/CORS/auth/third-party checklist, or a no-customer opt-out. Kickoff schedules the probe before implement.",
|
|
4
|
+
"verification": {
|
|
5
|
+
"L0": "node --check bin/duaer-live.mjs bin/live-modules.mjs web/live-dev/app.js web/live-dev/env-check.mjs — pass",
|
|
6
|
+
"L1": "npm test — 242 pass",
|
|
7
|
+
"L3": "npm run test:live — pass"
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Feature Specification: FDE-03 environment checklist
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
A feature confirm card cannot pass until the environment checklist records
|
|
6
|
+
DNS, TLS, CORS, auth, and third-party reachability as passed. A failed probe
|
|
7
|
+
blocks confirm. Kickoff schedules that probe before implementation.
|
|
8
|
+
|
|
9
|
+
## In scope
|
|
10
|
+
|
|
11
|
+
- Local validate on envChecklist
|
|
12
|
+
- One FDE-03 task per confirmed module that declares a customer environment,
|
|
13
|
+
placed before that module's implement task
|
|
14
|
+
- Hint, placeholder, and chat/accept prompts
|
|
15
|
+
- Explicit opt-out: no customer environment
|
|
16
|
+
|
|
17
|
+
## Out of scope
|
|
18
|
+
|
|
19
|
+
- Bug desk
|
|
20
|
+
- Scanning the customer network from the desk
|
|
21
|
+
|
|
22
|
+
## Assumptions
|
|
23
|
+
|
|
24
|
+
- The desk records the checklist; the digital employee runs the probes.
|
|
25
|
+
- 「无客户联调环境」 / "no customer environment" skips the five probes and
|
|
26
|
+
the kickoff task.
|
|
27
|
+
|
|
28
|
+
## Acceptance
|
|
29
|
+
|
|
30
|
+
1. A vague line, a missing probe, or any failed probe fails local validate
|
|
31
|
+
2. All five probes marked passed, or the no-customer opt-out, passes
|
|
32
|
+
3. Kickoff adds an FDE-03 env probe before implement when a customer
|
|
33
|
+
environment is declared, and skips it on the opt-out
|
|
34
|
+
4. npm test and npm run test:live pass
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"status": "accepted",
|
|
3
|
+
"summary": "Feature confirm requires a field mapping, an import failure list, and an export, or a no-import opt-out. Kickoff schedules the precheck before implement.",
|
|
4
|
+
"verification": {
|
|
5
|
+
"L0": "node --check bin/duaer-live.mjs bin/live-modules.mjs web/live-dev/app.js web/live-dev/data-precheck.mjs — pass",
|
|
6
|
+
"L1": "npm test — 246 pass",
|
|
7
|
+
"L3": "npm run test:live — pass"
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -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,41 @@
|
|
|
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
|
+
|
|
5
40
|
## 0.27.0 — 2026-09-21
|
|
6
41
|
|
|
7
42
|
### Feat: FDE-07 UAT pack on confirm
|