@exodus/xqa 1.5.0 → 1.6.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/dist/skills/xqa-spec/SKILL.md +55 -4
- package/dist/xqa.cjs +3758 -3500
- package/package.json +5 -5
|
@@ -23,12 +23,38 @@ IMPORTANT: Never generate a draft before the interview is complete. The user des
|
|
|
23
23
|
|
|
24
24
|
### 1. Explore
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
Time budget: complete within 10 tool calls. Do not surface findings yet.
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
- Level of detail and step granularity
|
|
28
|
+
**a. Existing specs and app context — run in parallel:**
|
|
30
29
|
|
|
31
|
-
|
|
30
|
+
MUST issue all of the following as a single parallel batch (one message, multiple tool calls):
|
|
31
|
+
|
|
32
|
+
- Glob `**/.xqa/specs/*.test.md` → read every result
|
|
33
|
+
- Read `.xqa/app.md` if it exists
|
|
34
|
+
|
|
35
|
+
Learn from specs: naming conventions, step granularity, level of detail.
|
|
36
|
+
|
|
37
|
+
**b. Codebase discovery — run in parallel:**
|
|
38
|
+
|
|
39
|
+
MUST issue all of the following as a single parallel batch:
|
|
40
|
+
|
|
41
|
+
- Glob `**/*Screen.tsx` | `**/*Screen.ts`
|
|
42
|
+
- Glob `**/screens/**/*.tsx` | `**/screens/**/*.ts`
|
|
43
|
+
- Glob `**/navigation/**` | `**/routes.ts` | `**/routes.tsx` | `**/router.ts`
|
|
44
|
+
- Glob `**/*Navigator.tsx` | `**/*Navigator.ts`
|
|
45
|
+
|
|
46
|
+
Read every Glob result that returns ≤ 5 files. When a Glob returns > 5 files, read only the first 3 results — prioritise files whose names match the flow the user described.
|
|
47
|
+
|
|
48
|
+
**c. Feature-specific scan (conditional):**
|
|
49
|
+
|
|
50
|
+
If the user named a specific feature or screen, run ONE additional parallel batch:
|
|
51
|
+
|
|
52
|
+
- Grep the feature name across `**/*.tsx`, `**/*.ts` (files with matches only)
|
|
53
|
+
- Grep for copy strings related to the feature in `**/*.ts` | `**/*.tsx` | `**/*.json`
|
|
54
|
+
|
|
55
|
+
Read up to 3 matching files. Stop.
|
|
56
|
+
|
|
57
|
+
**Capture silently:** screen names, navigation routes, copy strings, feature flag identifiers. This context is used only during step 3a reminders — never presented to the user unprompted.
|
|
32
58
|
|
|
33
59
|
### 2. Detect mode
|
|
34
60
|
|
|
@@ -53,6 +79,21 @@ Ask one question at a time. Wait for the answer before asking the next. Prefer m
|
|
|
53
79
|
|
|
54
80
|
IMPORTANT: Ask each question in its own message. Never batch questions.
|
|
55
81
|
|
|
82
|
+
### 3a. Code-informed reminders (during step collection)
|
|
83
|
+
|
|
84
|
+
After the user describes a step, you MAY offer AT MOST ONE code-informed follow-up reminder before moving to the next step. Phrase it as:
|
|
85
|
+
|
|
86
|
+
> "I also see <intent-first phrase> in the code — want to include it as a step? (source: `<file>`)"
|
|
87
|
+
|
|
88
|
+
Rules:
|
|
89
|
+
|
|
90
|
+
- Max one unsolicited suggestion per user-described step. No bulk proposals.
|
|
91
|
+
- Declined once → never re-offer that suggestion.
|
|
92
|
+
- Translate code findings into intent-first language BEFORE presenting. Component names, route names, and variable names must be rewritten as user goals.
|
|
93
|
+
- Copy strings belong in `hint:` only — never in the intent phrase.
|
|
94
|
+
- Always cite the source file the suggestion was derived from.
|
|
95
|
+
- If no code-backed reminder is worth offering, stay silent and move on.
|
|
96
|
+
|
|
56
97
|
### 4. Draft
|
|
57
98
|
|
|
58
99
|
Assemble using ONLY these frontmatter fields: `feature`, `timeout`. Do not add any other frontmatter field. `feature` MUST be present. `timeout` MUST be a positive number (seconds) if included.
|
|
@@ -153,3 +194,13 @@ Omit `timeout` line if not provided. Omit `## Assertions` section if none. Omit
|
|
|
153
194
|
- Intent-first language only; no literal `Tap "<label>"` references
|
|
154
195
|
- Write file only after explicit approval
|
|
155
196
|
- In edit mode, ask before touching anything
|
|
197
|
+
|
|
198
|
+
### Code exploration constraints
|
|
199
|
+
|
|
200
|
+
- Never present a pre-populated step list derived from code before the user has described the flow
|
|
201
|
+
- Never use component names, route names, or variable names as intent phrases — translate to user-goal language first
|
|
202
|
+
- Never place code-derived text in the intent phrase — copy strings belong in `hint:` only
|
|
203
|
+
- Never re-offer a suggested step after the user declines it once
|
|
204
|
+
- Never propose more than one unsolicited step per user-described step (no bulk suggestions)
|
|
205
|
+
- Always cite the source file when proposing a code-derived reminder
|
|
206
|
+
- Never infer the entire flow from navigation routes or screen stack and present it as a draft
|