Summary
Drop the -e short alias for --example and make --example long-form only. The -e short flag is a semantic trap for AI agents and should be permanently reserved (never reassigned to --example again) in case we later want it for passing an explicit environment.
Problem
Across the broader CLI ecosystem (Docker, Kubernetes, standard Unix utilities), -e almost universally means --env / --environment. For a type-safe environment variable validation library, mapping -e to --example is a particularly sharp trap.
When an AI agent is asked to configure or override a variable, its training makes it instinctively reach for -e — e.g. arkenv init -e NODE_ENV=production. Today that silently binds to the unrelated --example project flag, which consumes the next token as the example name. The agent then observes behavior that doesn't match its intent, assumes a failure, and can get stuck in a retry/hallucination loop.
Current behavior
--example has a short alias -e (a value-kind flag).
arkenv init -e NODE_ENV=production is accepted and interpreted as "use example NODE_ENV=production", not as setting an environment variable.
- The alias is advertised in
arkenv --help and in the CLI docs flags table.
Desired behavior
--example works only in long form.
- The
-e short alias is removed. Passing -e (standalone or inside a bundle like -ye) falls through to the existing standard Unknown argument: -e error — failing fast with no incorrect action taken.
-e is treated as reserved: it must not be reassigned to --example (or any other flag) again, so it stays available for a future --env / --environment option.
- Help output and CLI docs no longer list
-e.
Acceptance criteria
Out of scope
- Actually introducing a
--env / --environment option under -e. This issue only reserves -e; it does not implement a new flag.
- Any change to
-y, -q, -j, -H, or -h, which all align with standard Node/POSIX conventions.
Follow-up after merge
This lands on dev (v0) first. After the dev PR is merged, run /forward-port to adapt the change onto the v1 branch (packages/cli/src/** → packages/arkenv/src/**, changeset key @arkenv/cli → arkenv) so v1 keeps parity.
Summary
Drop the
-eshort alias for--exampleand make--examplelong-form only. The-eshort flag is a semantic trap for AI agents and should be permanently reserved (never reassigned to--exampleagain) in case we later want it for passing an explicit environment.Problem
Across the broader CLI ecosystem (Docker, Kubernetes, standard Unix utilities),
-ealmost universally means--env/--environment. For a type-safe environment variable validation library, mapping-eto--exampleis a particularly sharp trap.When an AI agent is asked to configure or override a variable, its training makes it instinctively reach for
-e— e.g.arkenv init -e NODE_ENV=production. Today that silently binds to the unrelated--exampleproject flag, which consumes the next token as the example name. The agent then observes behavior that doesn't match its intent, assumes a failure, and can get stuck in a retry/hallucination loop.Current behavior
--examplehas a short alias-e(avalue-kind flag).arkenv init -e NODE_ENV=productionis accepted and interpreted as "use exampleNODE_ENV=production", not as setting an environment variable.arkenv --helpand in the CLI docs flags table.Desired behavior
--exampleworks only in long form.-eshort alias is removed. Passing-e(standalone or inside a bundle like-ye) falls through to the existing standardUnknown argument: -eerror — failing fast with no incorrect action taken.-eis treated as reserved: it must not be reassigned to--example(or any other flag) again, so it stays available for a future--env/--environmentoption.-e.Acceptance criteria
arkenv init --example <name>continues to work exactly as before.arkenv init -e <name>is rejected with the standardUnknown argument: -eerror.-ebundled with other short flags (e.g.-ye) is also rejected as an unknown argument.arkenv --helpno longer lists-efor--example; it shows--examplewith no short alias.-ein the alias column for--example.--example/-ealias are updated; new coverage asserts-eis unknown while--examplestill works.@arkenv/climinor, documented as a BREAKING CHANGE (matching the precedent set when the-C/-aaliases were removed).Out of scope
--env/--environmentoption under-e. This issue only reserves-e; it does not implement a new flag.-y,-q,-j,-H, or-h, which all align with standard Node/POSIX conventions.Follow-up after merge
This lands on
dev(v0) first. After the dev PR is merged, run/forward-portto adapt the change onto thev1branch (packages/cli/src/**→packages/arkenv/src/**, changeset key@arkenv/cli→arkenv) so v1 keeps parity.