@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.
@@ -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
- Silently scan `.xqa/specs/*.test.md`. Learn:
26
+ Time budget: complete within 10 tool calls. Do not surface findings yet.
27
27
 
28
- - Naming conventions
29
- - Level of detail and step granularity
28
+ **a. Existing specs and app context — run in parallel:**
30
29
 
31
- Also read `.xqa/app.md` if it exists for app context.
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