@staff0rd/assist 0.141.0 → 0.142.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.
- package/claude/commands/bug.md +60 -0
- package/dist/index.js +4 -3
- package/package.json +1 -1
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: File a bug with reproduction steps, expected and actual behavior
|
|
3
|
+
allowed_args: "[short description of the bug]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are helping the user file a bug report as a backlog item. Your goal is to extract the minimum information needed: what happens, what should happen, and how to reproduce it.
|
|
7
|
+
|
|
8
|
+
## Step 1: Understand the bug
|
|
9
|
+
|
|
10
|
+
If the user provided a description via $ARGUMENTS, use that as a starting point. Otherwise, ask what's going wrong.
|
|
11
|
+
|
|
12
|
+
## Step 2: Gather details
|
|
13
|
+
|
|
14
|
+
Ask short, targeted questions one at a time to fill in any gaps. You need three things:
|
|
15
|
+
|
|
16
|
+
1. **Reproduction steps** — what does the user do to trigger the bug?
|
|
17
|
+
2. **Expected behavior** — what should happen?
|
|
18
|
+
3. **Actual behavior** — what happens instead?
|
|
19
|
+
|
|
20
|
+
Skip questions the user has already answered. Stop asking as soon as you have enough to write a clear bug report — don't over-interrogate.
|
|
21
|
+
|
|
22
|
+
## Step 3: Propose the item
|
|
23
|
+
|
|
24
|
+
Show the user the bug report:
|
|
25
|
+
|
|
26
|
+
**Name:** (concise title)
|
|
27
|
+
**Type:** bug
|
|
28
|
+
**Description:**
|
|
29
|
+
**Repro:** (numbered steps)
|
|
30
|
+
**Expected:** ...
|
|
31
|
+
**Actual:** ...
|
|
32
|
+
|
|
33
|
+
**Acceptance Criteria:**
|
|
34
|
+
- (conditions that confirm the bug is fixed)
|
|
35
|
+
|
|
36
|
+
Do NOT generate a plan — the implementer will determine how to fix it.
|
|
37
|
+
|
|
38
|
+
## Step 4: Iterate
|
|
39
|
+
|
|
40
|
+
Ask the user if they want to change anything. Iterate until they confirm.
|
|
41
|
+
|
|
42
|
+
## Step 5: Save
|
|
43
|
+
|
|
44
|
+
Once confirmed, pipe the JSON to the CLI. The JSON must match this shape:
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"name": "...",
|
|
49
|
+
"type": "bug",
|
|
50
|
+
"description": "**Repro:**\n1. ...\n\n**Expected:** ...\n\n**Actual:** ...",
|
|
51
|
+
"acceptanceCriteria": ["...", "..."]
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Run:
|
|
56
|
+
```
|
|
57
|
+
echo '<the confirmed json>' | assist backlog add --json 2>&1
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Then show the user the item was created and suggest they can run `assist backlog run <id>` to start implementation.
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import { Command } from "commander";
|
|
|
6
6
|
// package.json
|
|
7
7
|
var package_default = {
|
|
8
8
|
name: "@staff0rd/assist",
|
|
9
|
-
version: "0.
|
|
9
|
+
version: "0.142.0",
|
|
10
10
|
type: "module",
|
|
11
11
|
main: "dist/index.js",
|
|
12
12
|
bin: {
|
|
@@ -2817,16 +2817,16 @@ async function run2(id) {
|
|
|
2817
2817
|
const { item } = result;
|
|
2818
2818
|
const plan2 = validatePlan(item);
|
|
2819
2819
|
if (!plan2) return;
|
|
2820
|
-
setStatus(id, "in-progress");
|
|
2821
2820
|
const startPhase = item.currentPhase ?? 0;
|
|
2822
2821
|
if (startPhase >= plan2.length) {
|
|
2823
|
-
setStatus(id, "done");
|
|
2822
|
+
if (item.status !== "done") setStatus(id, "done");
|
|
2824
2823
|
console.log(
|
|
2825
2824
|
chalk35.green(`All phases already complete for #${id}: ${item.name}`)
|
|
2826
2825
|
);
|
|
2827
2826
|
console.log(chalk35.dim("Review the changes, then use /commit when ready."));
|
|
2828
2827
|
return;
|
|
2829
2828
|
}
|
|
2829
|
+
setStatus(id, "in-progress");
|
|
2830
2830
|
console.log(chalk35.bold(`Running plan for #${id}: ${item.name}`));
|
|
2831
2831
|
if (startPhase > 0) {
|
|
2832
2832
|
console.log(
|
|
@@ -2842,6 +2842,7 @@ async function run2(id) {
|
|
|
2842
2842
|
phaseIndex = await executePhase(item, phaseIndex, plan2);
|
|
2843
2843
|
if (phaseIndex < 0) return;
|
|
2844
2844
|
}
|
|
2845
|
+
setStatus(id, "done");
|
|
2845
2846
|
console.log(chalk35.green(`
|
|
2846
2847
|
All phases complete for #${id}: ${item.name}`));
|
|
2847
2848
|
console.log(chalk35.dim("Review the changes, then use /commit when ready."));
|