Problem
The template flag and the template id are different strings, and only the flag works.
From registry.json:
| id |
alias |
flag that works today |
react-vite |
basic |
--basic |
react-oauth |
oauth |
--oauth |
express |
(none) |
none |
fastify |
(none) |
none |
So someone asked for the React Vite starter types --react-vite, gets
Unknown option "--react-vite", and has no way to find --basic short of reading the
registry. The api layer is worse: neither express nor fastify has an alias, so there is no
flag for the backend at all and the prompt cannot be skipped.
resolveTemplateAliases() in src/commands/init.ts matches on
t.alias only.
Change
- Match a flag against the template
id as well as its alias, so --react-vite and
--basic both select react-vite, and --express / --fastify start working with no
registry change.
- Keep aliases as the short form; they stay in the help text and the docs.
- Extend the "Available template flags" error to list both forms, and point at
seamless templates list.
- Conflict detection is unchanged: two flags resolving to different templates of the same
kind is still a hard error, and --basic --react-vite resolves to the same id so it is not
a conflict.
Acceptance
seamless init --react-vite and seamless init --basic produce identical preselection.
seamless init --fastify preselects the api template and skips the backend prompt.
seamless init --basic --react-oauth still errors as a conflict.
- Unknown flag error names both the id and alias forms.
Problem
The template flag and the template id are different strings, and only the flag works.
From
registry.json:react-vitebasic--basicreact-oauthoauth--oauthexpressfastifySo someone asked for the React Vite starter types
--react-vite, getsUnknown option "--react-vite", and has no way to find--basicshort of reading theregistry. The api layer is worse: neither
expressnorfastifyhas an alias, so there is noflag for the backend at all and the prompt cannot be skipped.
resolveTemplateAliases()in src/commands/init.ts matches ont.aliasonly.Change
idas well as itsalias, so--react-viteand--basicboth selectreact-vite, and--express/--fastifystart working with noregistry change.
seamless templates list.kind is still a hard error, and
--basic --react-viteresolves to the same id so it is nota conflict.
Acceptance
seamless init --react-viteandseamless init --basicproduce identical preselection.seamless init --fastifypreselects the api template and skips the backend prompt.seamless init --basic --react-oauthstill errors as a conflict.