@exodus/xqa 5.0.0 → 5.1.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/README.md +3 -0
- package/dist/skills/xqa-test-plan/SKILL.md +20 -3
- package/dist/xqa.cjs +373 -218
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -113,6 +113,7 @@ Inspects the git diff between the current branch and its upstream, asks the plan
|
|
|
113
113
|
```bash
|
|
114
114
|
xqa plan # generate scenarios from current diff
|
|
115
115
|
xqa plan --intent "login changes" --out .xqa/test-plan/my-slug
|
|
116
|
+
xqa plan --base develop # diff against a branch other than origin/HEAD
|
|
116
117
|
xqa plan edit .xqa/test-plan/my-slug/scenario-1.test.md --feedback "rename step 2"
|
|
117
118
|
xqa plan extend # append scenarios for fresh commits
|
|
118
119
|
xqa plan report --findings .xqa/output/.../findings.json --specs .xqa/test-plan/my-slug
|
|
@@ -122,6 +123,8 @@ Flags:
|
|
|
122
123
|
|
|
123
124
|
- `--intent <text>` — Optional focus hint passed to the planner.
|
|
124
125
|
- `--out <dir>` — Output directory for the generated scenarios (default: `<xqa>/test-plan/default`).
|
|
126
|
+
- `--base <ref>` — Base git ref to diff against. When omitted, xqa auto-detects the base from an open PR via `gh pr view` and falls back to `origin/HEAD`. Pass explicitly to override.
|
|
127
|
+
- `--debug` — Log base/head refs, diff summary, existing specs count, classification, the full prompt sent to the model, and the raw AI response to stderr. Useful for investigating `model-abstained` empty results.
|
|
125
128
|
|
|
126
129
|
Subcommands:
|
|
127
130
|
|
|
@@ -87,13 +87,27 @@ Count booted devices:
|
|
|
87
87
|
|
|
88
88
|
Remember the chosen UDID for the Run step.
|
|
89
89
|
|
|
90
|
-
### 3.
|
|
90
|
+
### 3. Detect base ref
|
|
91
|
+
|
|
92
|
+
MUST resolve `--base` before invoking planner; wrong diff causes model abstention (`emptyReason: model-abstained`).
|
|
93
|
+
|
|
94
|
+
| Detection method | Command | Use when |
|
|
95
|
+
| ---------------------------------- | -------------------------------------------------------------------------- | ------------------------------ |
|
|
96
|
+
| Open PR (authoritative) | `gh pr view --json baseRefName --jq '.baseRefName'` | `gh` available + PR exists |
|
|
97
|
+
| Local upstream tracking (fallback) | `git rev-parse --abbrev-ref @{upstream}` — strip remote prefix (`origin/`) | No PR; upstream set |
|
|
98
|
+
| None | Omit `--base` entirely | Both methods fail or empty out |
|
|
99
|
+
|
|
100
|
+
MUST NOT fabricate a base ref when detection fails — omit the flag and let the CLI default to `origin/HEAD`.
|
|
101
|
+
|
|
102
|
+
### 4. Invoke planner
|
|
91
103
|
|
|
92
104
|
```bash
|
|
93
|
-
xqa plan --intent "<one-sentence summary>" --out .xqa/test-plan/<slug>
|
|
105
|
+
xqa plan --intent "<one-sentence summary>" --base <base-ref> --out .xqa/test-plan/<slug>
|
|
94
106
|
```
|
|
95
107
|
|
|
96
|
-
|
|
108
|
+
Omit `--base <base-ref>` when detection produced no result.
|
|
109
|
+
|
|
110
|
+
### 5. Render approval checklist
|
|
97
111
|
|
|
98
112
|
- Parse planner stdout as JSON; extract the `specs[]` array.
|
|
99
113
|
- Read each `<path>.test.md` that the planner wrote.
|
|
@@ -203,6 +217,9 @@ IMPORTANT: Regenerate never deletes `runs/`. Run history is preserved across reg
|
|
|
203
217
|
- [ ] Detect state auto-prunes stale sibling dirs but never current
|
|
204
218
|
- [ ] Generate flow handles 0 booted simulators (error), 1 (auto), >1 (prompt)
|
|
205
219
|
- [ ] Generate flow passes `--intent` correctly
|
|
220
|
+
- [ ] Generate flow detects base ref from open PR (`gh pr view`)
|
|
221
|
+
- [ ] Generate flow falls back to upstream tracking when no PR exists
|
|
222
|
+
- [ ] Generate flow omits `--base` when both detection methods fail
|
|
206
223
|
- [ ] Approval loop calls `xqa plan edit` per file
|
|
207
224
|
- [ ] Run flow preflights simulator before dispatching
|
|
208
225
|
- [ ] Report flow renders two-state status (has_findings / not_run) correctly
|