duaer-spec 0.4.0 → 0.5.0

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,28 +1,41 @@
1
1
  ---
2
- description: Prefer simple /duaer-do; Spec before code; handoff before claiming done
2
+ description: Autonomous digital employee run Duaer job loop without asking the user to operate
3
3
  alwaysApply: true
4
4
  ---
5
5
 
6
- # Duaer (keep it simple)
6
+ # Digital employee (autonomous)
7
7
 
8
- Treat agents as digital employees. Prefer **one** everyday command:
8
+ You are a **digital employee** in this repo. The human gives intent in normal
9
+ language. **You** run the delivery process. Do **not** ask them to type slash
10
+ commands, CLI flags, or phase names (`specify`, `plan`, `tasks`, …).
9
11
 
10
- `/duaer-do <ask>` then `duaer status` if needed.
12
+ If this conflicts with root `AGENTS.md` (worktrees, commits, Issue/PR),
13
+ **AGENTS.md wins**.
11
14
 
12
- If this conflicts with `AGENTS.md` (worktrees, commits, Issue/PR), **AGENTS.md wins**.
15
+ ## When the human asks for work
13
16
 
14
- ## Everyday
17
+ For new behavior, fixes, refactors that change product behavior, or architecture:
15
18
 
16
- 1. `/duaer-do` assign Brief, implement, converge
17
- 2. Do **not** claim "done" unless the job is accepted (`duaer status`)
18
- 3. Do **not** make the user chain specify plan → tasks → implement → converge for normal asks
19
+ 1. **Silently follow** the procedure in `.cursor/skills/duaer-do/SKILL.md`
20
+ (assign Brief light tasks implement converge handoff line).
21
+ 2. Do **not** wait for `/duaer-do` or any other skill invocation.
22
+ 3. Do **not** say “please run `/duaer-specify`” — you do it.
23
+ 4. Do **not** dump a methodology tutorial unless they ask how Duaer works.
19
24
 
20
- ## When to use step skills
25
+ ## Handoff
21
26
 
22
- - `/duaer-specify` only reshape the Brief
23
- - `/duaer-plan` / `/duaer-tasks` large or architectural work
24
- - `/duaer-implement` / `/duaer-converge` resume mid-job
27
+ - End with whether the **job** is accepted or still open (one clear line).
28
+ - Do **not** claim “done” / “finished” / “complete” unless `delivery.json` is
29
+ `accepted` and open tasks are clear.
30
+ - Do **not** tell them to run `duaer status` unless they want a machine check;
31
+ you already know the handoff state.
25
32
 
26
- Hotfix: still a short Spec + accept (or `/duaer-do`).
33
+ ## Forbidden
27
34
 
28
- Forbidden: jump from chat to code with no Spec under `.duaer/specs/`.
35
+ - Jump from chat to code with no Brief under `.duaer/specs/`.
36
+ - Making the human operate the workflow.
37
+
38
+ ## Optional finer tools (agent-only)
39
+
40
+ Step skills (`duaer-specify`, `duaer-plan`, …) are **your** playbooks when a
41
+ job is large. The human should not need to know they exist.
@@ -1,62 +1,57 @@
1
1
  ---
2
2
  name: "duaer-do"
3
- description: "Simple one-shot: turn a user ask into an assigned job, implement it, and hand off. Prefer this for everyday work instead of chaining specify/plan/tasks/implement/converge."
3
+ description: "Autonomous job loop for digital employees: Brief work accept. Agents must follow this whenever the user asks for product work without waiting for the user to invoke this skill or any CLI."
4
4
  compatibility: "Requires duaer-spec project structure with .duaer/ directory"
5
5
  metadata:
6
6
  author: "duaer-spec"
7
7
  source: "duaer-spec"
8
8
  ---
9
9
 
10
+ ## Trigger
11
+
12
+ Any human ask that needs code or product behavior changed.
13
+ **Do not require** the human to type `/duaer-do` or name phases.
14
+
10
15
  ## User Input
11
16
 
12
17
  ```text
13
18
  $ARGUMENTS
14
19
  ```
15
20
 
16
- You **MUST** use the user input as the job request (if not empty).
21
+ If empty, use the current conversation ask as the job.
17
22
 
18
23
  ## Goal
19
24
 
20
- **Everyday path — keep it simple.** Run one digital-employee job end-to-end without
21
- asking the user to chain slash commands.
25
+ Run one job end-to-end. The human should only review the result.
22
26
 
23
- Do **not** lecture about methodology. Do the work.
27
+ Do **not** lecture about methodology. Do **not** ask them to run commands.
24
28
 
25
- ## Steps (always in order)
29
+ ## Steps (you perform these)
26
30
 
27
- 1. **Assign** — Ensure an active feature Brief exists:
28
- - If there is already a clear active job (`.duaer/active-job.json` + `spec.md`)
29
- that matches this ask, update that `spec.md` acceptance as needed.
30
- - Otherwise run the same outcome as `/duaer-specify` for this ask
31
- (create `.duaer/specs/<nnn-slug>/spec.md`, write `.duaer/active-job.json`).
32
- - For small asks: keep the Spec short (what / why / acceptance only).
31
+ 1. **Assign** — Ensure an active Brief:
32
+ - Matching active job (`.duaer/active-job.json` + `spec.md`) → update acceptance if needed.
33
+ - Else create `.duaer/specs/<nnn-slug>/spec.md` and `.duaer/active-job.json`
34
+ (same outcome as specify). Keep small asks short: what / why / acceptance.
33
35
 
34
- 2. **Break down (lightweight)** — If `tasks.md` is missing:
35
- - Write a short `tasks.md` with a few `- [ ]` items from the Spec.
36
- - Skip `/duaer-plan` unless architecture or contracts clearly change.
37
- - If `tasks.md` already exists, use it.
36
+ 2. **Break down** — If `tasks.md` missing, write a short checklist from the Spec.
37
+ Skip a heavy plan unless architecture or contracts change.
38
38
 
39
- 3. **Work** — Implement open tasks (same rules as `/duaer-implement`).
40
- Mark tasks `[x]` as you finish them. Do not expand scope past the Spec.
39
+ 3. **Work** — Implement open tasks; mark `[x]` as you go. No scope beyond Spec.
41
40
 
42
- 4. **Accept** — Run the same outcome as `/duaer-converge`:
43
- - Compare code to Spec; append gap tasks or stamp `delivery.json` accepted.
44
- - If gaps were appended, either implement them now (preferred for small jobs)
45
- or stop and tell the user what remains — once.
41
+ 4. **Accept** — Converge against Spec: stamp `delivery.json` `accepted`, or append
42
+ gap tasks and implement them when small enough; otherwise one clear remaining note.
46
43
 
47
- 5. **Handoff line** — End with exactly one clear status:
48
- - If accepted: `✅ Job accepted — ready for your review.`
49
- - If not: `⏳ Job not accepted yet — <one sentence what to do next>.`
50
- - Do **not** claim "done" unless `delivery.json` is `accepted` and tasks are clear
51
- (coach/strict policy). Git is not locked.
44
+ 5. **Handoff** — One line to the human:
45
+ - `✅ Job accepted — ready for your review.`
46
+ - `⏳ Job not accepted yet — <one sentence>.`
47
+ Never claim done unless accepted + tasks clear. Git is not locked by this.
52
48
 
53
49
  ## Hotfix
54
50
 
55
- If the user says hotfix/bug/regression: still write a short Spec (symptom / cause /
56
- acceptance), then tasks → implement → converge. Same handoff line.
51
+ Still a short Spec (symptom / cause / acceptance), then work + accept. Same handoff.
57
52
 
58
- ## Out of scope for this command
53
+ ## Never
59
54
 
60
- - Do not require the user to run `/duaer-plan`, `/duaer-checklist`, or `/duaer-analyze`.
61
- - Do not discuss policy modes unless they ask.
62
- - Do not turn this into a merge/CI lecture.
55
+ - Ask the human to run `/duaer-*`, `duaer status`, or `duaer policy`.
56
+ - Discuss policy modes unless they ask.
57
+ - Block on slash-command invocation.
@@ -10,14 +10,9 @@ Duaer for what to build.
10
10
 
11
11
  ### I. Spec before code (NON-NEGOTIABLE)
12
12
 
13
- Everyday: `/duaer-do` (assigns Spec, implements, converges).
14
- Or the full chain. Never skip Spec or converge.
15
-
16
- Default path for fine control:
17
-
18
- `specify` → (optional plan/tasks) → `implement` → `converge` → `duaer status`
19
-
20
- Hotfix may shorten; still Spec + converge (or `/duaer-do`).
13
+ The **agent** starts a Brief before coding — the human does not operate phases.
14
+ Autonomous default: follow `duaer-do` (Brief tasks implement → converge).
15
+ Never skip Spec or converge. Never ask the human to run `/duaer-*` for normal work.
21
16
 
22
17
  ### II. Read as-is before changing
23
18
 
@@ -37,6 +32,6 @@ Do not expand scope without updating the spec and tasks.
37
32
  Mark tasks complete only when the stated verification (tests, manual checks,
38
33
  or converge) has been performed or explicitly waived in the feature docs.
39
34
 
40
- **Job handoff (not a git lock):** prefer `duaer status`. Default policy is
41
- `coach` — do not claim "done" while the active job is unfinished. Users should
42
- not need to learn policy modes for everyday work.
35
+ **Job handoff (not a git lock):** the agent reports accept/open itself.
36
+ Default policy `coach` — do not claim "done" while the active job is unfinished.
37
+ Do not send the human to run `duaer status` for routine work.
package/ADOPT.md CHANGED
@@ -1,45 +1,42 @@
1
1
  # Adopt duaer-spec
2
2
 
3
- Install Duaer so agents act like digital employees with a simple everyday loop.
3
+ Install once so the coding agent behaves as a **digital employee**: it runs
4
+ Brief → work → accept **without** the human operating slash commands or CLI.
4
5
 
5
- ## Install
6
+ ## Install (human, once)
6
7
 
7
8
  ```bash
8
9
  npx duaer-spec init --here
9
- # pin: npx github:fujiezee/duaer-spec@v0.4.0 duaer init --here
10
+ # pin: npx github:fujiezee/duaer-spec@v0.5.0 duaer init --here
10
11
  ```
11
12
 
12
13
  ```bash
13
- npx duaer-spec init --here --method # lite
14
+ npx duaer-spec init --here --method
14
15
  npx duaer-spec init --here --ops --branch develop
15
16
  ```
16
17
 
17
- ## Everyday use
18
+ After that: talk to the agent in plain language. Do not teach them `/duaer-*`.
18
19
 
19
- 1. `/duaer-do <ask>` in Cursor
20
- 2. `duaer status` when you want to see if the job is accepted
20
+ ## What gets installed
21
21
 
22
- No need to learn policy modes or the full skill chain for normal work.
22
+ - Always-on rule: agent must run the autonomous job loop on product work
23
+ - Playbook skill `duaer-do` (agent follows it; human need not invoke it)
24
+ - Optional step skills for large jobs (agent-only)
25
+ - Agent ops (`AGENTS.md`) when using `--all` / `--ops`
23
26
 
24
- ## Finer control (optional)
27
+ ## Power users / agents
25
28
 
26
- | Command | When |
29
+ | Tool | Who uses it |
27
30
  |---|---|
28
- | `/duaer-specify` | Only write / reshape the Brief |
29
- | `/duaer-plan` · `/duaer-tasks` | Large or architectural jobs |
30
- | `/duaer-implement` | Resume coding from `tasks.md` |
31
- | `/duaer-converge` | Re-check Spec vs code |
32
- | `duaer policy . strict` | Harder “don’t claim done” (still not a git lock) |
31
+ | `/duaer-do` procedure | Agent (automatic) |
32
+ | `/duaer-specify` `/duaer-converge` | Agent, when splitting a large job |
33
+ | `duaer status` / `duaer policy` | Optional diagnostics not required of humans |
33
34
 
34
35
  ## Precedence
35
36
 
36
37
  1. `AGENTS.md` — how employees operate
37
- 2. `DUADER.md` / `.duaer/` — what to build
38
+ 2. `DUADER.md` / `.duaer/` — how jobs are briefed
38
39
 
39
40
  ## Updates
40
41
 
41
- `duaer init --force` (review the diff) or pin a tag. No auto-update.
42
-
43
- ## Do not copy
44
-
45
- `examples/`, `SOURCE.md`, `bin/` / `package.json` (unless vendoring the CLI)
42
+ `duaer init --force` (review the diff) or pin a tag.
package/AGENTS.md CHANGED
@@ -3,8 +3,9 @@
3
3
  Mandatory rules for AI coding agents working in **duaer-spec**, and for any
4
4
  repository that adopts this file as its agent-ops contract.
5
5
 
6
- Treat agents as **digital employees**: this file is the workplace policy for
7
- *how* they may operate (isolation, commits, Issue/PR gates). Duaer
6
+ Treat agents as **digital employees**: they execute the job loop themselves.
7
+ Humans state intent; they do not operate Duaer phases. This file is workplace
8
+ policy for *how* agents may operate (isolation, commits, Issue/PR gates). Duaer
8
9
  ([`DUADER.md`](DUADER.md)) is how jobs are briefed and accepted. If Duaer
9
10
  (`.duaer/`), `examples/`, or other overlays conflict with this file,
10
11
  **follow this file**.
package/CHANGELOG.md CHANGED
@@ -1,39 +1,31 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.5.0 — 2026-09-15
4
+
5
+ ### Autonomous digital employee
6
+
7
+ - **Simplicity = humans do not operate the workflow**
8
+ - Always-on rule: on product asks, the agent runs Brief → work → accept itself
9
+ - Do not require `/duaer-do`, phase slash commands, or `duaer status` from humans
10
+ - `duaer-do` is the agent’s internal playbook; install once, then talk
11
+ - README / init / ADOPT / DUADER rewritten around “ask, don’t operate”
12
+
3
13
  ## 0.4.0 — 2026-09-15
4
14
 
5
15
  ### Simple everyday ops
6
16
 
7
- - **`/duaer-do`** one Cursor skill for assign → work → accept
8
- - **`duaer status`** plain “accepted / not done” (alias of `job`)
9
- - README / init / rules lead with hire → `/duaer-do` → `status`
10
- - Step skills and policy remain available but are advanced, not the default story
17
+ - `/duaer-do` one-shot skill + `duaer status`
18
+ - Step skills demoted to advanced (later reframed as agent-only in 0.5)
11
19
 
12
20
  ## 0.3.0 — 2026-09-15
13
21
 
14
22
  ### Job handoff (not a repo lock)
15
23
 
16
- - Default policy **`coach`**: guide the employee; do not claim "done" until the
17
- **active job** is accepted — git merge is not blocked
18
- - `.duaer/delivery-policy.json` modes: `off` | `coach` | `strict`
19
- - `.duaer/active-job.json` set by `/duaer-specify`; `duaer job` reports status
20
- - `duaer policy` to show/set mode
21
- - `duaer check` defaults to active-job scope; `--strict` / policy `strict` optional
22
- - `--gate` kept as deprecated alias for `--strict` (job handoff, not CI)
23
- - `--all-jobs` optional; historical features no longer fail the default path
24
- - Docs/rules/constitution demote merge-gate language
25
-
26
- ### E2E
27
-
28
- - E2E-004–007 for coach default, strict optional, active-job scope
24
+ - `coach` / `strict` / `off` policy; active job; `duaer job` / `policy`
29
25
 
30
26
  ## 0.2.0 — 2026-09-15
31
27
 
32
- ### Controllable delivery (machine gate)
33
-
34
- - `/duaer-converge` writes `.duaer/specs/<feature>/delivery.json`
35
- - `duaer check` / `--gate` for handoff state
36
- - Honest scope: handoff state checkable; Spec↔code still agent-assisted
28
+ - `delivery.json` + checkable handoff state
37
29
 
38
30
  ## 0.1.1 — 2026-09-15
39
31
 
package/DUADER.md CHANGED
@@ -1,54 +1,45 @@
1
1
  # Duaer methodology
2
2
 
3
- Treat AI coding agents as **digital employees**. Everyday path is short; the
4
- full chain exists when you need it.
3
+ AI coding agents are **digital employees**. The human states intent; the agent
4
+ runs Brief work accept. Humans are not the operators of the phase machine.
5
5
 
6
6
  **Precedence:** [`AGENTS.md`](AGENTS.md) wins on isolation, commits, Issue/PR.
7
7
 
8
- ## Everyday (default)
8
+ ## Human experience
9
9
 
10
- ```text
11
- /duaer-do <ask> → duaer status
12
- ```
13
-
14
- `/duaer-do` assigns a Brief, implements, converges, and reports handoff.
15
- Do not require the user to run every phase skill.
10
+ 1. One-time: `npx duaer-spec init --here`
11
+ 2. Ongoing: describe work in chat
12
+ 3. Review the handoff line (accepted / not yet)
16
13
 
17
- ## Full path (optional)
14
+ ## Agent procedure (autonomous)
18
15
 
19
- 1. `/duaer-specify` — Brief
20
- 2. `/duaer-plan` when architecture/contracts change
21
- 3. `/duaer-tasks` — explicit checkbox breakdown
22
- 4. `/duaer-implement` — code from tasks
23
- 5. `/duaer-converge` — accept stamp (`delivery.json`)
24
- 6. `duaer status` — may we claim this job done?
16
+ Follow `.cursor/skills/duaer-do/SKILL.md` on every product ask **without**
17
+ waiting for a slash invocation:
25
18
 
26
- Hotfix: short Spec tasks → implement → converge (or just `/duaer-do`).
19
+ 1. Assign Brief + `active-job.json`
20
+ 2. Light `tasks.md` if needed
21
+ 3. Implement
22
+ 4. Converge → `delivery.json`
23
+ 5. One handoff line; never claim done until accepted
27
24
 
28
- Never skip a Brief or an accept step. Under default **coach** policy, do not
29
- claim "done" while `duaer status` is unfinished. This is **job handoff**, not a
30
- git merge lock.
25
+ Large jobs may use step playbooks (`duaer-specify`, `duaer-plan`, …) internally.
31
26
 
32
- ## Install
33
-
34
- ```bash
35
- npx duaer-spec init --here
36
- ```
27
+ ## Policy
37
28
 
38
- See [`ADOPT.md`](ADOPT.md).
29
+ `.duaer/delivery-policy.json` defaults to `coach`. Agents must not claim done
30
+ while the active job is unfinished. This is job etiquette, not a git lock.
31
+ Humans need not configure it for everyday use.
39
32
 
40
33
  ## Layout
41
34
 
42
35
  ```text
43
- .duaer/delivery-policy.json # default coach — usually ignore
44
- .duaer/active-job.json # current job
45
- .duaer/specs/<nnn-slug>/
46
- spec.md
47
- tasks.md
48
- delivery.json
36
+ .duaer/active-job.json
37
+ .duaer/specs/<nnn-slug>/spec.md|tasks.md|delivery.json
38
+ .cursor/rules/duaer-spec.mdc # autonomous behavior
39
+ .cursor/skills/duaer-do/ # default job loop
49
40
  ```
50
41
 
51
42
  ## Related
52
43
 
44
+ - Adopt: [`ADOPT.md`](ADOPT.md)
53
45
  - Agent ops: [`AGENTS.md`](AGENTS.md)
54
- - Maintainer notes: [`docs/maintaining.md`](docs/maintaining.md)
package/README.md CHANGED
@@ -1,51 +1,37 @@
1
1
  # duaer-spec
2
2
 
3
- **Duaer** makes AI coding agents work like digital employees: assign a job,
4
- get a controllable handoff without a rigid git lock.
3
+ **Duaer** turns AI coding agents into **digital employees**: they take a normal
4
+ language ask, run Spec work → accept themselves, and only claim a job done
5
+ when the handoff is clean.
5
6
 
6
- ## Everyday (this is enough)
7
+ You should **not** have to operate the workflow. After a one-time install, you
8
+ talk; the employee runs the process.
7
9
 
8
- ```bash
9
- npx duaer-spec init --here
10
- ```
11
-
12
- In Cursor, one command:
13
-
14
- ```text
15
- /duaer-do <what you want built or fixed>
16
- ```
17
-
18
- See if the job can be reported done:
10
+ ## One-time install
19
11
 
20
12
  ```bash
21
- duaer status
13
+ npx duaer-spec init --here
22
14
  ```
23
15
 
24
- That’s the whole loop: **hire do status**.
16
+ Then use Cursor as usual describe what you want. No slash-command chain
17
+ required.
25
18
 
26
- ## What `/duaer-do` does
19
+ ## What the employee does (by itself)
27
20
 
28
- 1. Writes a short Brief (Spec)
29
- 2. Implements it
30
- 3. Checks against the Brief and stamps accept / still-open
21
+ 1. Writes a Brief (Spec) for the ask
22
+ 2. Implements within that Brief
23
+ 3. Checks the result and stamps accept / still-open
24
+ 4. Tells you in one line whether the job is ready for review
31
25
 
32
- You do **not** need to chain specify plan tasks implement converge
33
- for normal work. Those remain available when you want finer control.
26
+ Step skills and CLI checks exist for agents and power users not as the
27
+ everyday human UI.
34
28
 
35
29
  ## Optional
36
30
 
37
31
  ```bash
38
- duaer status # active job: accepted or not
39
- npx duaer-spec@0.4.0 init --here --method # method only
32
+ npx duaer-spec@0.5.0 init --here --method # method only
40
33
  ```
41
34
 
42
- Advanced (policy, full check, step-by-step skills): [`ADOPT.md`](ADOPT.md) · [`DUADER.md`](DUADER.md)
43
-
44
- ## Two layers
45
-
46
- | Layer | Role |
47
- |---|---|
48
- | **Agent ops** | How agents may operate — [`AGENTS.md`](AGENTS.md) |
49
- | **Duaer method** | How jobs are briefed and accepted — [`.duaer/`](.duaer/), skills |
35
+ Details: [`ADOPT.md`](ADOPT.md) · Method: [`DUADER.md`](DUADER.md) · Ops: [`AGENTS.md`](AGENTS.md)
50
36
 
51
- When they conflict, **agent ops win**.
37
+ When agent ops and method conflict, **agent ops win**.
package/bin/duaer.mjs CHANGED
@@ -26,23 +26,19 @@ const POLICY_MODES = new Set(['off', 'coach', 'strict'])
26
26
 
27
27
  const USAGE = `duaer — digital-employee delivery (duaer-spec ${PKG.version})
28
28
 
29
- Everyday:
30
- duaer init [--here] Hire into a project
31
- duaer status [dir] Is the active job accepted?
29
+ Human (once):
30
+ duaer init [--here] Install so the agent works as a digital employee
32
31
 
33
- In Cursor: /duaer-do <what you want>
32
+ After install: talk to the agent in plain language. Do not operate /duaer-* phases.
34
33
 
35
- Advanced:
36
- duaer check [dir] [--workplace|--job|--all-jobs|--strict]
37
- duaer job [dir] (same as status)
38
- duaer policy [dir] [off|coach|strict]
39
- duaer version
34
+ Agent / optional diagnostics:
35
+ duaer status [dir]
36
+ duaer check | policy | version
40
37
 
41
38
  Init: --all (default) | --method | --ops | --force | --branch <n> | --here
42
39
 
43
- Examples:
40
+ Example:
44
41
  npx duaer-spec init --here
45
- duaer status
46
42
  `
47
43
 
48
44
  function parseArgs(argv) {
@@ -283,12 +279,12 @@ function cmdInit(opts) {
283
279
  }
284
280
 
285
281
  console.log(`
286
- Hired. Everyday loop:
282
+ Hired.
287
283
 
288
- 1. In Cursor: /duaer-do <what you want>
289
- 2. Optional: duaer status
284
+ You: describe work in Cursor (plain language).
285
+ Agent: runs Brief → work → accept by itself — do not operate slash phases.
290
286
 
291
- That is enough for normal work. Advanced: ADOPT.md / DUADER.md
287
+ Optional diagnostic: duaer status
292
288
  `)
293
289
  }
294
290
 
@@ -94,7 +94,7 @@ See [spec update guidance](workflow.md#3-spec-update-guidance).
94
94
 
95
95
  ## 6. Merge / PR
96
96
 
97
- - [ ] Active job handoff considered: `duaer job .` (coach/strict: do not claim done if unfinished).
97
+ - [ ] Active job handoff considered by the **agent** (do not require the human to run CLI for routine work).
98
98
  - [ ] Branch refreshed against latest `main`.
99
99
  - [ ] Merged into local `main` (and/or remote PR/MR when required).
100
100
  - [ ] Only this request's logical changes included.
@@ -25,26 +25,20 @@ the table for their app.
25
25
 
26
26
  | ID | Title | Status |
27
27
  |---|---|---|
28
- | E2E-001 | After `duaer init`, CLI prints simple `/duaer-do` next steps | manual |
29
- | E2E-002 | README everyday path is hire → `/duaer-do` `status` | manual |
30
- | E2E-003 | `duaer status` shows accepted / not done in plain language | manual |
31
- | E2E-004 | Default `coach` policy: unfinished job warns but check exits 0 | manual |
32
- | E2E-005 | After converge stamps `accepted`, `duaer status` shows accepted | manual |
33
- | E2E-006 | `duaer policy . strict` then unfinished job makes check exit 1 | manual |
34
- | E2E-007 | `--all-jobs` is optional; default scope is active job only | manual |
35
- | E2E-008 | `/duaer-do` skill is installed by `duaer init` | manual |
28
+ | E2E-001 | After `duaer init`, banner says talk to agent no slash ops | manual |
29
+ | E2E-002 | README: install once, then plain-language asks | manual |
30
+ | E2E-003 | Always-on rule requires autonomous job loop without user slash | manual |
31
+ | E2E-004 | Default `coach`: unfinished job agent must not claim done | manual |
32
+ | E2E-005 | Converge stamps `accepted`; agent reports ready for review | manual |
33
+ | E2E-006 | `duaer-do` skill describes agent-triggered loop | manual |
36
34
 
37
35
  ## Traceability
38
36
 
39
- Keep this matrix current when scenarios or specs change.
40
-
41
37
  | Scenario | Spec / feature | Notes |
42
38
  |---|---|---|
43
- | E2E-001 | `bin/duaer.mjs` init banner | Simple onboarding |
44
- | E2E-002 | `README.md` | Everyday path |
45
- | E2E-003 | `duaer status` | Plain language |
46
- | E2E-004 | `delivery-policy.json` coach | Not a repo lock |
47
- | E2E-005 | converge → `delivery.json` | Accept stamp |
48
- | E2E-006 | policy strict | Optional |
49
- | E2E-007 | `--all-jobs` vs active | Scope |
50
- | E2E-008 | `.cursor/skills/duaer-do` | One-shot skill |
39
+ | E2E-001 | init banner | No human phase ops |
40
+ | E2E-002 | README | Ask, don’t operate |
41
+ | E2E-003 | `duaer-spec.mdc` | Autonomous |
42
+ | E2E-004 | policy coach | Handoff etiquette |
43
+ | E2E-005 | `delivery.json` | Accept stamp |
44
+ | E2E-006 | `duaer-do` | Internal playbook |
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "duaer-spec",
3
- "version": "0.4.0",
4
- "description": "Simple digital-employee delivery: /duaer-do + duaer status",
3
+ "version": "0.5.0",
4
+ "description": "Digital employees that run Spec→work→accept themselves — humans just ask",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "duaer": "bin/duaer.mjs",