feat(cli)!: Charter 1.0 — remove commercial surface from @stackbilt/cli (#127)#183
Merged
Conversation
…rding (#139) Skips migrate, install, and populate phases. Install failure can no longer produce a `partial` status — lean mode emits a deterministic install command as the first required next step instead. Fully compatible with --yes, --ci, --force, and --security-sensitive. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
) Extracts backtick template strings from .ts/.tsx/.js/.mjs files and scans their bodies against drift patterns, attributing violations to virtual filenames (e.g. src/foo.ts[template:0]). Catches security anti-patterns inside code-factory functions that emit string templates. No signature changes to scanForDrift. Co-authored-by: Kurt Overmier <kurt@stackbilt.dev> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…hots (#138) (#182) New --sources repo-intel pulls open/closed issues, PRs, and release cadence via gh CLI and writes .charter/repo-intel/snapshot.json. Computes a summary (openIssueCount, stalledIssues, recurringLabels, mergeVelocity, releaseCadence) contributed to context.adf openWork/recentActivity sections. Fails gracefully when gh is unavailable or repo has no GitHub remote — emits a warning, not an error. Co-authored-by: Kurt Overmier <kurt@stackbilt.dev> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Hooks cannot be installed outside a git repo. The non-lean path already gated these steps on inGitRepo; lean mode was missing the same guard. Tests updated to mock isGitRepo via git-helpers module mock (runGit uses execFileSync, not execSync, so the existing execSync override couldn't cover it). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…1.0 (#127) Phase 4 of RFC #112. Deletes run/architect/scaffold/login commands, credentials.ts, http-client.ts, scaffold-contract-types.ts, and all related tests. Drops the `stackbilt` bin alias. Bumps @stackbilt/cli to 1.0.0. @stackbilt/build@0.1.0 is the new home for these commands. BREAKING CHANGE: run, architect, scaffold, login commands and stackbilt bin removed. Install @stackbilt/build for the long-term home. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
….json - HELP text for `context-refresh --sources` was missing the third valid value `repo-intel` (added in the repo-intel source commit on this branch) - Add `package-lock.json` to .gitignore — repo uses pnpm; the npm lockfile has no business being tracked here Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
run,architect,scaffold,loginfrom@stackbilt/cliafter four minor release cycles of deprecation warnings (0.13–0.17)stackbiltbin alias —@stackbilt/clinow ships onlycharter@stackbilt/clito 1.0.0@stackbilt/build@0.1.0(with OIDC trusted publisher) is the live destination for all four commandsAlso on this branch (from earlier squads):
fix(bootstrap): gate lean-mode hook next-steps on inGitRepofeat(context-refresh): repo-intel source for GitHub history snapshots (Add optional repo intelligence module using GitHub CLI-backed history sync #138)feat(drift): scan template literal bodies for anti-patterns (feat(drift): code-generation-aware scanning — detect insecure patterns in emitted string templates #102)feat(bootstrap):--mode leanfor fast, install-safe project onboarding (feedback: reduce setup and daily governance overhead with lean bootstrap + risk-aware suggestions #139)Acceptance criteria (all met)
grep -r 'fetch(' packages/cli/src/— onlycontext-refresh.ts(GitHub API, not Stackbilt)grep -r 'Authorization' packages/cli/src/— onlycontext-refresh.ts(GitHub Bearer)stackbilt.devURL literals in@stackbilt/clisourcebinfield contains only{ "charter": "./dist/bin.js" }credentials.ts,http-client.ts,scaffold-contract-types.tsdeleted[1.0.0]entry documents split and upgrade path@stackbilt/cli@1.0.0Test plan
pnpm testpasses (548 tests)charter --helpshows no login/architect/scaffold/run entrieswhich stackbiltreturns nothing afternpm install -g @stackbilt/cli@1.0.0npm install -g @stackbilt/build→stackbilt runworks as expectedReferences
🤖 Generated with Claude Code