This repository has no description
1```json
2{
3 "issue": "at://did:plc:zmjoeu3stwcn44647rhxa44o/sh.tangled.repo.issue/3lvzel2uo3a22",
4 "version": 1,
5 "items": [
6 {
7 "id": "command_namespace",
8 "prompt": "The issue requests `axr lh pair`, but the existing lighthouse module is `steamvr-lh.nu` (commands are `axr steamvr-lh calibrate`, `axr steamvr-lh console`). How should the new pair command be namespaced?",
9 "options": [
10 {
11 "label": "Rename module to `lh.nu` so commands become `axr lh pair`, `axr lh calibrate`, etc.",
12 "value": "rename_to_lh",
13 "followups": [
14 {
15 "id": "rename_deprecation",
16 "prompt": "Should the old `steamvr-lh` name be preserved as a deprecated alias?",
17 "options": [
18 {
19 "label": "Yes, keep a thin `steamvr-lh.nu` wrapper that re-exports `lh.nu` with a deprecation warning",
20 "value": "keep_alias"
21 },
22 {
23 "label": "No, just rename — the project is marked as no longer maintained anyway",
24 "value": "no_alias"
25 }
26 ]
27 }
28 ]
29 },
30 {
31 "label": "Add `pair` to the existing `steamvr-lh.nu` module (command becomes `axr steamvr-lh pair`)",
32 "value": "keep_steamvr_lh"
33 },
34 {
35 "label": "Create a new separate `lh.nu` module for pairing only, keep `steamvr-lh.nu` for calibrate/console",
36 "value": "separate_module"
37 }
38 ]
39 },
40 {
41 "id": "backend_tool",
42 "prompt": "Which backend tool should the pair command use?",
43 "options": [
44 {
45 "label": "Use `lighthouse_console` now (available today via SteamVR, slower but works)",
46 "value": "lighthouse_console",
47 "followups": [
48 {
49 "id": "lhctl_future_proofing",
50 "prompt": "Should the implementation be structured to make switching to `lhctl` easier later?",
51 "options": [
52 {
53 "label": "Yes, abstract the pairing logic behind a helper function so the backend can be swapped",
54 "value": "abstract_backend"
55 },
56 {
57 "label": "No, just call lighthouse_console directly — refactor when lhctl is available",
58 "value": "direct_call"
59 }
60 ]
61 }
62 ]
63 },
64 {
65 "label": "Wait for `lhctl` to be publicly released and implement with that",
66 "value": "wait_for_lhctl"
67 },
68 {
69 "label": "Support both: detect if `lhctl` is available and prefer it, fall back to `lighthouse_console`",
70 "value": "dual_backend",
71 "followups": [
72 {
73 "id": "dual_backend_flag",
74 "prompt": "Should the user be able to force a specific backend?",
75 "options": [
76 {
77 "label": "Yes, add a `--backend` flag (e.g. `axr lh pair --backend lhctl`)",
78 "value": "backend_flag"
79 },
80 {
81 "label": "No, auto-detect only — simpler UX",
82 "value": "auto_detect_only"
83 }
84 ]
85 }
86 ]
87 }
88 ]
89 },
90 {
91 "id": "pairing_workflow",
92 "prompt": "How should the pairing workflow work from the user's perspective?",
93 "options": [
94 {
95 "label": "Fully interactive: scan for devices, present a list, user selects which to pair",
96 "value": "interactive",
97 "followups": [
98 {
99 "id": "interactive_multi_select",
100 "prompt": "Should the user be able to pair multiple devices in one session?",
101 "options": [
102 {
103 "label": "Yes, allow multi-select from discovered devices",
104 "value": "multi_select"
105 },
106 {
107 "label": "No, pair one device at a time (simpler, matches lighthouse_console behavior)",
108 "value": "single_select"
109 }
110 ]
111 }
112 ]
113 },
114 {
115 "label": "Semi-interactive: user provides device serial/ID as argument, command handles the rest",
116 "value": "semi_interactive"
117 },
118 {
119 "label": "Guided wizard: step-by-step prompts (put device in pairing mode, confirm, etc.)",
120 "value": "guided_wizard"
121 }
122 ]
123 },
124 {
125 "id": "device_types",
126 "prompt": "Which lighthouse-tracked device types should the pair command support?",
127 "options": [
128 {
129 "label": "All lighthouse devices (base stations, controllers, trackers, HMDs)",
130 "value": "all_devices"
131 },
132 {
133 "label": "Controllers and trackers only (most common pairing need)",
134 "value": "controllers_trackers"
135 },
136 {
137 "label": "Start with controllers only, add other device types in follow-up PRs",
138 "value": "controllers_first"
139 }
140 ]
141 },
142 {
143 "id": "lh_console_discovery",
144 "prompt": "The existing `lh-console` helper in `steamvr-lh.nu` checks multiple paths (PATH, Flatpak Steam, native Steam). Should the pair command reuse this helper?",
145 "options": [
146 {
147 "label": "Yes, reuse the existing `lh-console` helper as-is",
148 "value": "reuse_helper"
149 },
150 {
151 "label": "Reuse but refactor `lh-console` to also support piping input/capturing output (needed for scripted pairing)",
152 "value": "refactor_helper"
153 },
154 {
155 "label": "Write a new helper specifically for pairing that handles the async job pattern lighthouse_console needs",
156 "value": "new_helper"
157 }
158 ]
159 },
160 {
161 "id": "error_handling",
162 "prompt": "How should the command handle common failure cases (no Bluetooth, SteamVR not installed, device not found)?",
163 "options": [
164 {
165 "label": "Pre-flight checks: verify prerequisites before attempting pairing, with actionable error messages",
166 "value": "preflight_checks"
167 },
168 {
169 "label": "Attempt pairing and surface errors from lighthouse_console/lhctl with minimal wrapping",
170 "value": "passthrough_errors"
171 },
172 {
173 "label": "Pre-flight checks plus a `--force` flag to skip them for advanced users",
174 "value": "preflight_with_force"
175 }
176 ]
177 },
178 {
179 "id": "timeout_handling",
180 "prompt": "Pairing can take a while (especially with lighthouse_console). How should timeouts be handled?",
181 "options": [
182 {
183 "label": "Default timeout with a `--timeout` flag to override",
184 "value": "configurable_timeout"
185 },
186 {
187 "label": "No timeout — wait indefinitely until pairing succeeds or user cancels (Ctrl+C)",
188 "value": "no_timeout"
189 },
190 {
191 "label": "Progress indicator with a generous default timeout (e.g. 60s) and clear messaging",
192 "value": "progress_with_timeout"
193 }
194 ]
195 },
196 {
197 "id": "testing_strategy",
198 "prompt": "How should this feature be tested? (Hardware-dependent features are hard to unit test)",
199 "options": [
200 {
201 "label": "Manual testing only — document test procedure in PR description",
202 "value": "manual_only"
203 },
204 {
205 "label": "Add basic tests for argument parsing and pre-flight checks (mock external commands)",
206 "value": "basic_tests"
207 },
208 {
209 "label": "No tests needed — the project is marked as no longer maintained",
210 "value": "no_tests"
211 }
212 ]
213 },
214 {
215 "id": "documentation",
216 "prompt": "What documentation should accompany this feature?",
217 "options": [
218 {
219 "label": "Inline help text in the Nushell command (consistent with existing commands like `calibrate`)",
220 "value": "inline_help_only"
221 },
222 {
223 "label": "Inline help text plus a section in the README",
224 "value": "inline_and_readme"
225 },
226 {
227 "label": "Inline help text only — README already says the project is no longer maintained",
228 "value": "inline_no_readme"
229 }
230 ]
231 }
232 ]
233}
234```