mirror of
https://github.com/przeprogramowani/10x-cli.git
synced 2026-09-19 03:30:01 +08:00
3184882f38
* feat: add bench-kit command (init + update stub) '10x bench-kit init [dir]' creates a benchmark instance from the przeprogramowani/10x-bench-kit template: preflight (git required, container engine advisory), shallow clone at a tag, materialization without git history, fresh git init + initial commit, and an instance manifest in .bench-kit/instance.json. Re-running init on an existing instance repairs missing template files without touching company content. 'bench-kit update' is a not_implemented stub. CAC has no nested command groups, so the command follows the auth precedent: one 'bench-kit <action>' command dispatching internally. Side effects are injectable (BenchKitDeps) so tests exercise the full flow against fixture trees without network or real git. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * feat: gate experimental commands behind TENX_CLI_EXPERIMENTAL New src/lib/experimental.ts exposes experimentalEnabled() and requireExperimental(), which exits with a stable 'experimental_locked' envelope (exit 4 FORBIDDEN) unless TENX_CLI_EXPERIMENTAL=1 (or 'true') is set. bench-kit stays registered so help remains discoverable and the command never dies silently, but its action is locked before any side effects. This lets the branch merge to master ahead of the feature being student-ready. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * feat: hide experimental commands entirely without the opt-in All-or-nothing per review: registerBenchKitCommand returns early when TENX_CLI_EXPERIMENTAL is unset, so bench-kit is absent from --help and behaves like any unknown command instead of appearing half-locked. The requireExperimental gate stays in the action as defense in depth. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>