@xera-ai/skills 0.4.2 → 0.4.4

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": "@xera-ai/skills",
3
- "version": "0.4.2",
3
+ "version": "0.4.4",
4
4
  "files": [
5
5
  "*.md",
6
6
  "version.json"
package/version.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "skills": "0.4.2",
2
+ "skills": "0.4.4",
3
3
  "compatible_prompts": "^2.3.0",
4
4
  "skill_files": [
5
5
  "xera-run.md",
package/xera-impact.md CHANGED
@@ -60,11 +60,19 @@ Ask the user: `Re-run impacted scenarios? [Y]es / [p] P0 only / [s]elect / [n]o
60
60
 
61
61
  - **[n]:** STOP. The user can inspect `.xera/impact/{{TICKET}}.md` separately.
62
62
 
63
- - **[Y]:** Group impacted scenarios by their owner ticket (`scenario.ticketId`). For each owner ticket, invoke `bun run xera:exec <owner-ticket>` (the existing exec subcommand). Collect the `RUN_ID` from each. Note: this re-runs the ENTIRE spec for each impacted owner, not just the impacted scenarios Playwright doesn't natively support per-test selection from a json list without test-name regex. Acceptable for v0.6.2; precise per-scenario selection is a v0.6.x patch.
63
+ - **[Y]:** Group impacted scenarios by their owner ticket (`scenario.ticketId`). For each owner ticket, build a regex from the impacted scenario namese.g. `"user signs in|user resets password"` and invoke:
64
64
 
65
- - **[p]:** Filter `scenarios` array to `priority === 'p0'` only, then proceed as [Y].
65
+ ```bash
66
+ bun run xera:exec <owner-ticket> --grep "<NAME_REGEX>"
67
+ ```
66
68
 
67
- - **[s]:** Show numbered list with checkboxes; let the user pick. Then proceed as [Y] with the selected subset.
69
+ The `--grep` flag (added in v0.6.4) makes Playwright run **only the named scenarios**, not the entire spec. Build the regex by joining `impacted[].name` with `|` and escaping any regex special characters in the names. If a scenario name contains characters like `(`, `)`, or `|`, escape them with `\\`.
70
+
71
+ Collect each invocation's `RUN_ID` and surface them in the final summary.
72
+
73
+ - **[p]:** Filter to `priority === 'p0'` scenarios, then proceed as [Y] above (use `--grep` per owner ticket).
74
+
75
+ - **[s]:** Show numbered list with checkboxes; let the user pick a subset. Proceed as [Y] using the selected subset for the `--grep` regex.
68
76
 
69
77
  ## Step 5 — Recommend follow-up
70
78
 
package/xera-run.md CHANGED
@@ -22,7 +22,7 @@ If meta is missing or story_hash is older, refresh.
22
22
 
23
23
  After `/xera-fetch` completes, check whether this ticket modifies areas that other tests depend on.
24
24
 
25
- Read `xera.config.run.autoImpact` (defaults: `{ enabled: true, threshold: 6.0 }`). If `enabled === false`, SKIP this step.
25
+ Read `xera.config.run.autoImpact` (defaults: `{ enabled: true, threshold: 8.0 }`). If `enabled === false`, SKIP this step.
26
26
 
27
27
  Run:
28
28
 
@@ -32,14 +32,12 @@ bun run xera:impact-prepare {{TICKET}} --quiet
32
32
 
33
33
  This writes `.xera/impact/{{TICKET}}.json` (no markdown). Exit code 2 means the ticket is not yet in graph — surface a warning and proceed (graph data only accumulates over time).
34
34
 
35
- Read the JSON. Count scenarios with `riskScore >= autoImpact.threshold`. If 0, no prompt — continue silently to Step 2.
35
+ Read the JSON. Count scenarios with `riskScore >= autoImpact.threshold` (default **8.0** per v0.6.4).
36
36
 
37
- If ≥1 high-risk scenario, prompt the user:
37
+ - If **0** scenarios above threshold → continue **silently** to Step 2. Do not show any prompt; do not log the result. The impact analysis ran but found nothing actionable.
38
+ - If **≥1** above threshold → prompt the user as before: `[Y]es / [n]o / [details]`.
38
39
 
39
- ```
40
- {{N}} high-risk impacted scenarios detected for {{TICKET}}.
41
- Re-run them before generating the new script? [Y/n/details]
42
- ```
40
+ This means the auto-trigger is effectively a "high-risk alarm" rather than a per-run interruption. With the default threshold raised to 8.0, prompts only fire for tickets that genuinely affect P0 scenarios in heavily-shared SUT areas. Teams that want the older, chatty behavior can lower the threshold via `xera.config.run.autoImpact.threshold`.
43
41
 
44
42
  - **[Y]:** Iterate `bun run xera:exec <owner-ticket>` for each unique owner ticket. After each, check status; if all pass, continue to Step 2. If any fail, surface the failure and STOP — the user should diagnose existing-test breakage before introducing more changes.
45
43
  - **[n]:** Continue to Step 2.