Skip to content

feat(cli): add transitrix bin alias, deprecate cervin (P1) - #133

Merged
transitrix merged 1 commit into
mainfrom
feat/cervin-deprecation-p1-cli-alias
Jun 10, 2026
Merged

transitrix merged 1 commit into
mainfrom
feat/cervin-deprecation-p1-cli-alias

Conversation

@vkgeorgia

Copy link
Copy Markdown
Collaborator

Summary

First phase of the Cervin → Transitrix gradual CLI rename (CLAUDE.md §Cervin naming, P1). No breaking change — cervin keeps working.

Closes the acceptance criteria of strategy hub issue #188.

Changes

  • package.json — bin gains a transitrix entry pointing at the same dist/cli.js as cervin; added an npm run transitrix script alongside npm run cervin. The cervin bin is kept (no removal this phase).
  • src/cli.ts — usage/--help text now recommends transitrix; a one-line deprecation notice is printed to stderr when the tool is launched under the legacy cervin name (so it never pollutes --json output).
  • src/cli-parse.ts — new pure invokedAsCervin(argv1) helper + CERVIN_DEPRECATION_NOTICE constant. Detection is best-effort from argv[1]: fires on POSIX symlink shims (.../bin/cervin), degrades silently on Windows .cmd shims (which invoke node with the resolved cli.js path).
  • tests/cli-parse.test.ts — unit tests for the detector and notice (POSIX/Windows paths, case-insensitivity, negative cases).
  • CHANGELOG.md — Added/Deprecated entries: "cervin CLI is deprecated, use transitrix".

Verification

  • npm run compile (tsc --noEmit) — clean.
  • npx vitest run — 242 tests green.
  • Manual: --help shows transitrix … usage; deprecation notice fires for an argv[1] basename of cervin.

Notes

Internal error-message prefixes (cervin: …) are intentionally left untouched — they're part of the later opportunistic internal rename, not the user-facing P1 surface. Next phase: P2 (extension settings, #189).

🤖 Generated with Claude Code

First phase of the Cervin → Transitrix CLI rename (CLAUDE.md §Cervin
naming, P1). No breaking change.

- package.json: add `transitrix` bin entry and `npm run transitrix`
  script, both resolving to the same dist/cli.js; keep `cervin` bin.
- cli.ts: usage/--help now recommend `transitrix`; emit a one-line
  deprecation notice to stderr when launched under the legacy `cervin`
  name (best-effort detection from argv[1], degrades silently on
  Windows .cmd shims).
- cli-parse.ts: add pure `invokedAsCervin()` helper and
  CERVIN_DEPRECATION_NOTICE, with unit tests.
- CHANGELOG: note transitrix CLI added, cervin deprecated.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Valerii Korobeinikov <vkgeorgia@icloud.com>
@github-actions

Copy link
Copy Markdown

📊 Metrics Regression Report

✅ All metrics within tolerance

Summary

  • Diagrams tested: 8
  • Successful: 8
  • Failed: 0
  • Violations: 0

Details

ai-expense-approval.bpmn.transitrix.yaml

Metric Baseline Current Delta Status
crossings 1 1 0.00 ✓
bends 10 10 0.00 ✓
edgeLength 1992.6666666666665 1992.6666666666665 0.00 (0.0%) ✓
waypointDensity 3 3 0.00 (0.0%) ✓
spineDeviation 0 0 0.00 ✓
emptyArea 0.5869700748129676 0.5869700748129676 0.00 ✓
portViolations 0 0 0.00 ✓

feature-release.bpmn.transitrix.yaml

Metric Baseline Current Delta Status
crossings 1 1 0.00 ✓
bends 13 13 0.00 ✓
edgeLength 3460 3460 0.00 (0.0%) ✓
waypointDensity 3 3 0.00 (0.0%) ✓
spineDeviation 0 0 0.00 ✓
emptyArea 0.5500909090909091 0.5500909090909091 0.00 ✓
portViolations 0 0 0.00 ✓

large-cyclic-workflow.bpmn.transitrix.yaml

Metric Baseline Current Delta Status
crossings 1 1 0.00 ✓
bends 29 29 0.00 ✓
edgeLength 7042.666666666667 7042.666666666667 0.00 (0.0%) ✓
waypointDensity 3.16 3.16 0.00 (0.0%) ✓
spineDeviation 82 82 0.00 ✓
emptyArea 0.7965322633390317 0.7965322633390317 0.00 ✓
portViolations 2 2 0.00 ✓

order-fulfillment.bpmn.transitrix.yaml

Metric Baseline Current Delta Status
crossings 0 0 0.00 ✓
bends 2 2 0.00 ✓
edgeLength 704 704 0.00 (0.0%) ✓
waypointDensity 2.3333333333333335 2.3333333333333335 0.00 (0.0%) ✓
spineDeviation 0 0 0.00 ✓
emptyArea 0.5462701149425288 0.5462701149425288 0.00 ✓
portViolations 0 0 0.00 ✓

simple-approval.bpmn.transitrix.yaml

Metric Baseline Current Delta Status
crossings 0 0 0.00 ✓
bends 8 8 0.00 ✓
edgeLength 1542 1542 0.00 (0.0%) ✓
waypointDensity 3.142857142857143 3.142857142857143 0.00 (0.0%) ✓
spineDeviation 41 41 0.00 ✓
emptyArea 0.7764882411250177 0.7764882411250177 0.00 ✓
portViolations 0 0 0.00 ✓

simple-linear.bpmn.transitrix.yaml

Metric Baseline Current Delta Status
crossings 0 0 0.00 ✓
bends 0 0 0.00 ✓
edgeLength 440 440 0.00 (0.0%) ✓
waypointDensity 2 2 0.00 (0.0%) ✓
spineDeviation 0 0 0.00 ✓
emptyArea 0.5258771929824562 0.5258771929824562 0.00 ✓
portViolations 0 0 0.00 ✓

small-dense-approval.bpmn.transitrix.yaml

Metric Baseline Current Delta Status
crossings 0 0 0.00 ✓
bends 14 14 0.00 ✓
edgeLength 2158 2158 0.00 (0.0%) ✓
waypointDensity 3.272727272727273 3.272727272727273 0.00 (0.0%) ✓
spineDeviation 41 41 0.00 ✓
emptyArea 0.8091206777597997 0.8091206777597997 0.00 ✓
portViolations 0 0 0.00 ✓

xlarge-stress-test.bpmn.transitrix.yaml

Metric Baseline Current Delta Status
crossings 1 1 0.00 ✓
bends 90 90 0.00 ✓
edgeLength 11756.583333333332 11756.583333333332 0.00 (0.0%) ✓
waypointDensity 3.6666666666666665 3.6666666666666665 0.00 (0.0%) ✓
spineDeviation 148 148 0.00 ✓
emptyArea 0.8282701728700941 0.8282701728700941 0.00 ✓
portViolations 0 0 0.00 ✓

@transitrix
transitrix merged commit 44c1758 into main Jun 10, 2026
1 check passed
@transitrix
transitrix deleted the feat/cervin-deprecation-p1-cli-alias branch June 10, 2026 13:24
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.

2 participants