okstra 0.88.1 → 0.88.2
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
package/runtime/BUILD.json
CHANGED
|
@@ -176,9 +176,20 @@ Order of operations:
|
|
|
176
176
|
paths under `<task-group>/sub.../`, and those paths cannot be formed
|
|
177
177
|
until `task_group` is known. Without this preflight the recursive walk
|
|
178
178
|
would either stall mid-collection or invent a placeholder group.
|
|
179
|
+
|
|
180
|
+
**Sequential, never batched.** Run Step 2a as its **own**
|
|
181
|
+
`AskUserQuestion` call here, then ask sub-step 1's ticket question in a
|
|
182
|
+
**separate** call. Do NOT combine the task-group question and the
|
|
183
|
+
ticket-ref question into one `AskUserQuestion` — they are asked one at a
|
|
184
|
+
time, task group first (this preflight), ticket ref second. When you
|
|
185
|
+
relay this preflight, tell the user in one line *why* task group comes
|
|
186
|
+
before the ticket (it scopes where this ticket's brief — and any
|
|
187
|
+
sub-ticket briefs — are written).
|
|
179
188
|
1. `AskUserQuestion` (free text):
|
|
180
189
|
`"Ticket key or URL (e.g. LIN-1234, PROJ-42, https://linear.app/..., https://your.atlassian.net/browse/...)"` →
|
|
181
|
-
`ticket_ref`.
|
|
190
|
+
`ticket_ref`. Issue this only **after** Step 2a's task-group answer is in
|
|
191
|
+
hand — never in the same `AskUserQuestion` call as the task-group
|
|
192
|
+
question.
|
|
182
193
|
2. Auto-detect the tracker by URL host or key prefix (`linear.app` → Linear,
|
|
183
194
|
`atlassian.net` or `JIRA_*` pattern → Jira, `github.com/.../issues/` →
|
|
184
195
|
GitHub, `notion.so` → Notion). If detection fails, ask once more via
|
|
@@ -335,12 +346,38 @@ Once validation passes, jump to Step 2 (task key).
|
|
|
335
346
|
|
|
336
347
|
### 2a. Task group
|
|
337
348
|
|
|
338
|
-
|
|
349
|
+
Offer existing groups as recommendations before accepting a new one — never
|
|
350
|
+
ask a bare free-text question that forces the user to retype an existing
|
|
351
|
+
group from memory. First collect the project's known task groups (each
|
|
352
|
+
command is its own Bash call starting with the literal token `okstra`, per
|
|
353
|
+
Step 0):
|
|
354
|
+
|
|
355
|
+
```bash
|
|
356
|
+
okstra task-list
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
Parse the JSON `tasks[]` array; collect the **distinct** `taskGroup` values
|
|
360
|
+
ordered by `updatedAt` descending. Take the **2 most-recent** distinct
|
|
361
|
+
groups as recommendations.
|
|
362
|
+
|
|
363
|
+
`AskUserQuestion` (single-select):
|
|
364
|
+
|
|
365
|
+
- **Label**: `"Task group?"`
|
|
366
|
+
- **Options** (recommendations first, `직접 입력` always last):
|
|
367
|
+
1. (and 2.) each recommended existing group, most-recent first —
|
|
368
|
+
label `<group> (기존)` (e.g. `uploadfont (기존)`).
|
|
369
|
+
3. `직접 입력` — free-text for a new or other group.
|
|
370
|
+
|
|
371
|
+
When the user picks an existing group, use its value verbatim. When they
|
|
372
|
+
pick `직접 입력`, take a free-text value via a follow-up question.
|
|
339
373
|
|
|
340
|
-
- `
|
|
374
|
+
If `okstra task-list` returns an empty `tasks[]` (no prior tasks), skip the
|
|
375
|
+
picker and ask one free-text question:
|
|
376
|
+
`"Task group (e.g. backend-api, INV-1234, refactor)"` → `task_group`.
|
|
341
377
|
|
|
342
378
|
Slug rule: same as `okstra-run` Step 3 — slugify, must have at least one
|
|
343
|
-
alphanumeric character.
|
|
379
|
+
alphanumeric character. Note that an existing group's value is already a
|
|
380
|
+
slug; a `직접 입력` value is slugified before use.
|
|
344
381
|
|
|
345
382
|
If `task_group` was already collected by Step 1b sub-step 0 (tracker
|
|
346
383
|
preflight), reuse that value silently — do NOT ask again.
|