Summary
The guided ingest flow skips any question whose value arrived on the command line. For a path that is a dead end: the user is sitting at a prompt, ready to answer, and instead gets a hard error about a path they were never asked for.
Reported from a real session:
Step 1 of 4 · Do you want to ingest training or test data?
? test
Step 2 of 4 · Please name the dataset.
? testing12344
Error: no such file or directory: "data" — check the path to your dataset
The check itself is correct — data was passed as the positional argument and no such folder existed. But step 3 never ran, because it is guarded by:
if a.LocalPath == "" {
p.PromptStep(3, 4, "Where is your data?")
Every step carries the same guard: intent, name, path, task, and the per-task extras.
Why the rule is wrong for a path specifically
A name or a task that you passed is still true on the next run. A path is the one answer that silently stops being true — data moves. So anyone with muscle memory for tb data ingest ./data hard-errors the moment their dataset moves, with no way to correct it in the flow.
Proposed rule
In guided mode, every question relevant to the chosen task is asked. A value that arrived on the command line becomes that question's default — Enter accepts it — never a reason to skip. In non-interactive mode (--no-input, no TTY, --output-json) nothing is ever asked and flags/positionals are obeyed exactly as today.
Task relevance stays as the only gate: which questions apply still depends on the task chosen at step 4 (self-supervised text has no label and no extras).
Non-interactive must be untouched — the positional is the only way to pass a path (there is no --path flag), so scripts and CI depend on it.
Acceptance
- Every core question asked in guided mode, even when supplied.
- Supplied values survive as prompt defaults (never silently replaced by the flow's own fallback).
- An explicit
--task pre-selects rather than skipping, and settles the family so the user's own answer is among the options.
- Non-interactive behaviour byte-identical.
Summary
The guided ingest flow skips any question whose value arrived on the command line. For a path that is a dead end: the user is sitting at a prompt, ready to answer, and instead gets a hard error about a path they were never asked for.
Reported from a real session:
The check itself is correct —
datawas passed as the positional argument and no such folder existed. But step 3 never ran, because it is guarded by:Every step carries the same guard: intent, name, path, task, and the per-task extras.
Why the rule is wrong for a path specifically
A name or a task that you passed is still true on the next run. A path is the one answer that silently stops being true — data moves. So anyone with muscle memory for
tb data ingest ./datahard-errors the moment their dataset moves, with no way to correct it in the flow.Proposed rule
Task relevance stays as the only gate: which questions apply still depends on the task chosen at step 4 (self-supervised text has no label and no extras).
Non-interactive must be untouched — the positional is the only way to pass a path (there is no
--pathflag), so scripts and CI depend on it.Acceptance
--taskpre-selects rather than skipping, and settles the family so the user's own answer is among the options.