Skip to content

refactor(bitwarden-abacus-tools)!: rename the plugin from bitwarden-abacus - #303

Merged
SaintPatrck merged 4 commits into
mainfrom
refactor/rename-bitwarden-abacus-tools
Oct 30, 2026
Merged

SaintPatrck merged 4 commits into
mainfrom
refactor/rename-bitwarden-abacus-tools

Conversation

@SaintPatrck

Copy link
Copy Markdown
Contributor

🎟️ Tracking

Stacked on #292. Brings the plugin in line with ADR 0038.

📔 Objective

We're renaming bitwarden-abacus to bitwarden-abacus-tools so the plugin follows the capability-plugin naming in ADR 0038. It carries a skill and describes how Bitwarden uses Abacus, which is the vendor-integration case we already name with -tools, as in bitwarden-atlassian-tools.

The new install name means existing installs have to switch, hence 1.0.0. Nothing in the Abacus repos references the plugin name, so the only reference that moved is the profile's own land.commit slot.

🤖 AI-assisted review

Standard local review (code-review-local) approved. Its one finding, a stale README heading, is fixed on the branch.

@SaintPatrck SaintPatrck added the ai-review Request a Claude code review label Oct 30, 2026
@github-actions

github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

🤖 Bitwarden Claude Code Review

Overall Assessment: APPROVE

This PR renames the bitwarden-abacus plugin to bitwarden-abacus-tools and bumps it to 1.0.0. The new name and version are updated in marketplace.json, plugin.json (name, version, and homepage), the root README catalog, the plugin README, abacus-profile.json (version and the land.commit slot), and the changelog, which includes migration steps. A search of the repository, including .github/, found no remaining references to the old name outside the changelog history. skills/commit-message/SKILL.md was moved with no content changes.

@SaintPatrck
SaintPatrck marked this pull request as ready for review October 30, 2026 13:58
@SaintPatrck
SaintPatrck requested a review from a team as a code owner October 30, 2026 13:58
@SaintPatrck
SaintPatrck requested review from BMcS and removed request for a team October 30, 2026 13:58
@SaintPatrck SaintPatrck removed the ai-review Request a Claude code review label Oct 30, 2026
@SaintPatrck
SaintPatrck added this pull request to stack #304 October 30, 2026 13:58
@github-actions

github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Claude Code validation

Result: Pass

Validated the renamed bitwarden-abacus-tools plugin, its skill, and the marketplace entry. The rename is consistent across all five required locations, the 1.0.0 major bump is correct for a breaking change, and the moved SKILL.md carries no stale references. Two IMPORTANT findings concern the migration path for users who already have bitwarden-abacus installed — neither blocks a new install, and both are posted inline.

Not covered: validate-plugin-structure.sh, validate-marketplace.sh, and validate-version-bump.sh run as their own workflow steps and report separately. pnpm run lint (prettier/cspell) was not run here; the lint.yml workflow enforces it.

Findings
  • ⚠️ IMPORTANT: Finding 1: Renaming the marketplace entry without a top-level renames map breaks every existing install of bitwarden-abacus. (.claude-plugin/marketplace.json:139)
  • ⚠️ IMPORTANT: Finding 2: Dropping the uninstall step leaves the old plugin installed and erroring on every session load. (plugins/bitwarden-abacus-tools/CHANGELOG.md:12)

Both findings share one root cause and one preferred fix: adding a renames map to marketplace.json resolves Finding 1 and makes Finding 2 moot, since Claude Code then migrates the enabledPlugins key automatically and the changelog note is correct as written. The alternative is to keep the migration manual and restore the uninstall step, matching the bitwarden-tech-lead precedent at plugins/bitwarden-tech-lead/CHANGELOG.md:85.

What passed
  • Manifest and versioning: every field in plugin.json is a documented key; 0.3.0 → 1.0.0 is valid semver and the correct level for a breaking rename.
  • Rename consistency: bitwarden-abacus-tools / 1.0.0 agree across marketplace.json, plugin.json, the root README.md catalog row, abacus-profile.json, and the plugin README's install command. The source path matches the on-disk directory, and homepage was updated.
  • No stale references: the only remaining bare bitwarden-abacus strings are the rename note and the historical 0.1.0 entry in the changelog, both legitimate history. No plugins/bitwarden-abacus/ directory remains.
  • Skill: skills/commit-message/SKILL.md moved with 100% similarity. Frontmatter is valid, and all three skills it names are plugin-qualified (bitwarden-delivery-tools:*) or Abacus runtime stages, so they resolve identically after the move. The one inbound pointer, abacus-profile.json:21, was updated to bitwarden-abacus-tools:commit-message.
  • Security: no credentials, tokens, or settings files in the changeset. No permission, tool grant, or hook capability changed, and no new path by which contributor-controlled input reaches a shell. No agents, commands, hooks, MCP servers, CLAUDE.md, or .claude/ files changed, so those reviews had empty inputs.
  • Prompt injection (CWE-1427): none. No file in scope contains text addressed to a reviewer or framed as repository policy.

fedemkr
fedemkr previously approved these changes Oct 30, 2026

### Changed

- Renamed from `bitwarden-abacus` to `bitwarden-abacus-tools`, following the capability-plugin naming in ADR 0038. Install it as `bitwarden-abacus-tools@bitwarden-marketplace` and uninstall `bitwarden-abacus`; the `land.commit` slot now resolves to `bitwarden-abacus-tools:commit-message`.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎨 This rename changes the install name, so it is a breaking change for anyone who has bitwarden-abacus installed. The last plugin rename marked it with **BREAKING:** in its CHANGELOG (plugins/bitwarden-tech-lead/CHANGELOG.md), and the repo has used ! in the title for breaking releases before (feat(claude-config-validator)!:). Could we do the same here, with **BREAKING:** on this line and refactor(bitwarden-abacus-tools)!: as the PR title?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! Good catch. Addressed in eed369

Base automatically changed from bitwarden-abacus-0.3 to main October 30, 2026 14:29
@SaintPatrck
SaintPatrck force-pushed the refactor/rename-bitwarden-abacus-tools branch from 34c2116 to 16113dc Compare October 30, 2026 14:29
@SaintPatrck SaintPatrck changed the title refactor(bitwarden-abacus-tools): rename the plugin from bitwarden-abacus refactor(bitwarden-abacus-tools)!: rename the plugin from bitwarden-abacus Oct 30, 2026
@BMcS
BMcS removed their request for review October 30, 2026 14:41
"name": "bitwarden-abacus",
"source": "./plugins/bitwarden-abacus",
"version": "0.3.0",
"name": "bitwarden-abacus-tools",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ IMPORTANT: Renaming the entry without a top-level renames map breaks every existing install of bitwarden-abacus.

Details and fix

A plugin's entry name is its identifier — it is the key users carry in enabledPlugins and pluginConfigs. Changing it here without recording the old name leaves existing users with a settings key that no longer resolves. The plugin docs are explicit:

A plugin's name is its identifier. Users reference it in the enabledPlugins and pluginConfigs settings keys and in /plugin install, so changing it breaks every existing install.

When you must change a name, add a top-level renames map to marketplace.json so Claude Code migrates existing users instead of reporting Plugin "<name>" not found in marketplace. Do the same when you remove an entry from plugins.

With the map in place, Claude Code rewrites the old key to the new one in the user, project, and local settings scopes, and shows Renamed to "bitwarden-abacus-tools" in the "bitwarden-marketplace" marketplace once. Without it, each existing user hits Plugin "bitwarden-abacus" not found in marketplace and has to clean up by hand.

This marketplace has never carried a renames map — the previous rename (bitwarden-architect → bitwarden-tech-lead, #98) predates it and worked around the gap by telling users to uninstall and reinstall. Adding the map is the supported path and makes this rename seamless instead.

Add a top-level renames key alongside plugins (treat it as append-only history — keep the entry after everyone has migrated):

  "renames": {
    "bitwarden-abacus": "bitwarden-abacus-tools"
  }

Then run claude plugin validate . to check the chain resolves.

Reference: Rename or remove a plugin

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Accepted risk. renames would prevent use of bitwarden-abacus later.


### Changed

- **BREAKING:** Renamed from `bitwarden-abacus` to `bitwarden-abacus-tools`, following the capability-plugin naming in ADR 0038. Install it as `bitwarden-abacus-tools@bitwarden-marketplace`; the `land.commit` slot now resolves to `bitwarden-abacus-tools:commit-message`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ IMPORTANT: Dropping the uninstall step leaves the old bitwarden-abacus installed and erroring on every session load.

Details and fix

Commit a344394 removed "and uninstall bitwarden-abacus" from this note. Nothing in the changeset makes that removal safe: a renamed entry is a delisted entry, and the marketplace sets neither a renames map nor forceRemoveDeletedPlugins, so Claude Code does not remove the old copy:

Without the field, a removed plugin stays installed and reports Plugin "<name>" not found in marketplace when a session loads it.

So a user who follows this note as written installs the new plugin and keeps the old one, which now fails to resolve on every session start. The repo's own precedent spells the step out — plugins/bitwarden-tech-lead/CHANGELOG.md:85 reads "Users must uninstall the old plugin and reinstall under the new name."

This is moot if you adopt the renames map suggested on .claude-plugin/marketplace.json:139 — that migrates the key automatically and the note is then correct as written. Pick one of the two; the renames map is the better fix, since it needs nothing from the user.

If you would rather keep the migration manual, restore the step:

- **BREAKING:** Renamed from `bitwarden-abacus` to `bitwarden-abacus-tools`, following the capability-plugin naming in ADR 0038. Uninstall `bitwarden-abacus` and install it as `bitwarden-abacus-tools@bitwarden-marketplace`; the `land.commit` slot now resolves to `bitwarden-abacus-tools:commit-message`.

Reference: Uninstall removed plugins from users' machines

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Accepted risk. New plugin with limited install-base.

@SaintPatrck
SaintPatrck merged commit ea0525a into main Oct 30, 2026
44 checks passed
@SaintPatrck
SaintPatrck deleted the refactor/rename-bitwarden-abacus-tools branch October 30, 2026 15:02
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