@workser/cli 0.6.1 → 0.6.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workser/cli",
3
- "version": "0.6.1",
3
+ "version": "0.6.3",
4
4
  "description": "Workser CLI — give your local AI agent native DevOps & infrastructure on Workser. The agent runs `workser …` to provision, deploy, and manage real apps.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -18,6 +18,7 @@ load.
18
18
 
19
19
  | You need to… | Commands | Run |
20
20
  | --- | --- | --- |
21
+ | Track a business requirement too big for one task, and its phases | `goal …` | `workser help goals` |
21
22
  | See what was decided or written down for this project | `decision …`, `requirement …`, `doc …` | `workser help sdlc-entities` |
22
23
  | Follow the project's brand — colours, fonts, logo | `design …` | `workser help brand` |
23
24
  | Provision or query Postgres; list end users | `db …`, `auth …` | `workser help database` |
@@ -0,0 +1,69 @@
1
+ ---
2
+ topic: goals
3
+ title: Business goals & phases
4
+ summary: The level above a task — a business requirement too big for one sitting, and the ordered phases that deliver it.
5
+ commands: [goal]
6
+ ---
7
+
8
+ # Business goals & phases
9
+
10
+ A **goal** is a business requirement — "customers can buy from my site" — that
11
+ does not fit in one task. It carries an ordered list of **phase names**; a task
12
+ joins one by carrying that name (`workser task create --goal <id> --phase <name>`).
13
+ A phase has no existence apart from the tasks inside it, so it cannot drift from
14
+ the work it names.
15
+
16
+ ```
17
+ workser goal list
18
+ workser goal show <id>
19
+ workser goal create <title> --phase <name...> [--outcome <text>]
20
+ [--criteria <json>]
21
+ workser goal update <id> [--title <text>] [--outcome <text>]
22
+ [--phase <name...>] [--status <value>]
23
+ workser goal check <id> <criterionId> --phase <name> (--pass|--fail|--reset) [--note <text>]
24
+ ```
25
+
26
+ Status is one of: proposed, agreed, working, delivered, abandoned.
27
+
28
+ ## A goal has to be argued for
29
+
30
+ Most requests are one task and should stay one task. Turning a two-hour job into
31
+ four milestones buries the owner in ceremony before anything is built — use
32
+ `workser task create` unless you can genuinely name two-plus slices that each
33
+ deliver something the owner would notice.
34
+
35
+ ```
36
+ workser goal create "Launch checkout" \
37
+ --phase "Cart" --phase "Payment" --phase "Receipts" \
38
+ --outcome "A customer can buy something and get a receipt"
39
+ ```
40
+
41
+ `--phase` needs 2–6 names. Propose the shape only — nothing is created until the
42
+ owner agrees it; planning phase four now is waste, since it will change once
43
+ phase one is real.
44
+
45
+ ## Acceptance criteria are agreed with the shape
46
+
47
+ `--criteria` maps each phase name to the owner's own sentences about what "done"
48
+ means for it, e.g. `'{"Payment":["A customer can pay by card and gets a receipt"]}'`.
49
+ Written afterwards they only describe what got built; written with the shape they
50
+ can still change the plan.
51
+
52
+ Record whether one is met with `workser goal check`:
53
+
54
+ ```
55
+ workser goal check g_123 c1 --phase Payment --pass \
56
+ --note "Tested a card payment end to end; receipt emailed."
57
+ ```
58
+
59
+ `--note` is required on `--pass` — a tick the owner cannot verify is worse than no
60
+ tick.
61
+
62
+ ## Joining tasks to a goal
63
+
64
+ ```
65
+ workser task create "Build the payment form" --goal g_123 --phase Payment
66
+ ```
67
+
68
+ A goal's apps and progress are derived from the tasks that join it, not declared
69
+ up front — most of the apps a goal will touch don't exist when it's proposed.