Skip to content

feat(cli): promote scribe as the primary command - #12

Merged
aetosdios27 merged 4 commits into
mainfrom
aetosdios/aet-18-promote-scribe-as-the-primary-cli-and-deliver-a-release
Jul 20, 2026
Merged

aetosdios27 merged 4 commits into
mainfrom
aetosdios/aet-18-promote-scribe-as-the-primary-cli-and-deliver-a-release

Conversation

@aetosdios27

@aetosdios27 aetosdios27 commented Jul 20, 2026 •

Copy link
Copy Markdown
Owner

Linear

Fixes AET-18

Summary

  • publish scribe as the primary executable while retaining scb as a silent prerelease compatibility alias
  • add focused command help, typo suggestions, project-relative diagnostics, shell-safe remediation, and restrained TTY-aware status output
  • structure init detection, recommendation, warnings, changes, manual steps, and next actions
  • promote scribe through the canonical README, packaged SKILL, release procedure, and consumer checks
  • verify both binaries and executable permissions in packed tarballs, local runners, bunx, npx, and isolated global installs

Verification

  • Focused and full tests pass (119 tests)
  • Type checking passes
  • Meaningful consumer-facing changes include a Changeset
  • Documentation is updated and synchronized
  • Existing coverage was not weakened or skipped
  • Public packages build, pack, and pass tarball inspection
  • Linux packed portability and packed Vite/Studio consumer pass

Visual evidence

Not applicable. This changes terminal output and package distribution, not rendered Studio or article UI.

Summary by CodeRabbit

  • New Features

    • Added scribe as the primary CLI command while preserving scb as a compatibility alias.
    • Improved command help, typo suggestions, validation guidance, and project-relative diagnostics.
    • Added structured initialization and validation output with clearer warnings, next steps, and rollback guidance.
    • Standardized color handling for interactive, captured, and NO_COLOR output.
  • Documentation

    • Updated CLI examples and integration guides to use scribe consistently.
  • Bug Fixes

    • Improved behavior for invalid commands and options, symlinked entry points, and ANSI-free output.

@linear-code

linear-code Bot commented Jul 20, 2026

Copy link
Copy Markdown

AET-18

@coderabbitai

coderabbitai Bot commented Jul 20, 2026 •

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@aetosdios27, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 21 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 46ff4fbf-841f-4893-b775-3e1c93e71267

📥 Commits

Reviewing files that changed from the base of the PR and between 507ec85 and 9b52915.

⛔ Files ignored due to path filters (1)
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing (7)
  • package.json
  • scripts/lib/spawn.d.mts
  • scripts/lib/spawn.mjs
  • scripts/test-portable-cli.mjs
  • tests/release/package-manifests.test.ts
  • tests/release/portability-scripts.test.ts
  • tests/release/spawn.test.ts
📝 Walkthrough

Walkthrough

The CLI now uses scribe as its primary executable while retaining scb, adds structured diagnostics and typo suggestions, supports deterministic color and relative-path output, and expands packaging, smoke-test, release, and documentation coverage.

Changes

Scribe CLI transition

Layer / File(s) Summary
CLI output and routing
packages/cli/src/cli-output.ts, packages/cli/src/index.ts, packages/cli/src/index.test.ts
Adds color handling, relative-path and argument formatting, closest-match suggestions, injected CLI dependencies, updated help, and structured validation results.
Init and Studio command experiences
packages/cli/src/init.ts, packages/cli/src/init.test.ts, packages/cli/src/studio.ts, packages/cli/src/studio.test.ts
Adds option suggestions, structured init plans and warnings, relative Studio startup output, and updated command help and verification commands.
Package and release contracts
packages/cli/package.json, scripts/*, tests/release/*, .changeset/*
Publishes scribe alongside scb, validates tarball binaries and permissions, and updates consumer, portability, manifest, release, and changeset checks.
Documentation command standardization
README.md, RELEASING.md, SKILL.md, packages/*/README.md, packages/*/SKILL.md
Replaces primary command examples with scribe and documents scb as a compatibility alias.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant scribe
  participant Project
  User->>scribe: run init, studio, or validate
  scribe->>Project: resolve cwd, files, and command options
  Project-->>scribe: project data and diagnostics
  scribe-->>User: structured output and suggested next command
Loading
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and accurately captures the main change: promoting scribe as the primary CLI command.
Description check ✅ Passed The description matches the template well, with Linear, Summary, Verification, and Visual evidence sections all present and filled appropriately.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch aetosdios/aet-18-promote-scribe-as-the-primary-cli-and-deliver-a-release

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@aetosdios27
aetosdios27 merged commit b8ac591 into main Jul 20, 2026
6 of 7 checks passed
@aetosdios27
aetosdios27 deleted the aetosdios/aet-18-promote-scribe-as-the-primary-cli-and-deliver-a-release branch July 20, 2026 22:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant