Skip to content

sync: dev → main (uninstall skill + CI fix)#27

Merged
auroracapital merged 8 commits intomainfrom
sync/dev-to-main-v4
Apr 12, 2026
Merged

sync: dev → main (uninstall skill + CI fix)#27
auroracapital merged 8 commits intomainfrom
sync/dev-to-main-v4

Conversation

@auroracapital
Copy link
Copy Markdown
Collaborator

@auroracapital auroracapital commented Apr 12, 2026

Sync dev to main


Open with Devin

Note

Low Risk
Low risk: changes are limited to CI tooling version pinning and adding documentation/instructions for an uninstall skill, with no runtime code paths modified.

Overview
Adds a new uninstall skill (claude-ops/skills/uninstall/SKILL.md) that guides users through a fully confirmed removal of claude-ops artifacts (plugin/marketplace entries, prefs/cache, keychain credentials, shell exports, and MCP registrations).

Updates CI to download a pinned gitleaks release (v8.30.1) instead of using the latest tarball URL, improving build determinism.

Reviewed by Cursor Bugbot for commit d6b7a7b. Bugbot is set up for automated code reviews on this repo. Configure here.

auroracapital and others added 7 commits April 12, 2026 21:35
…d org URLs (#11)

- All GitHub URLs now point to Lifecycle-Innovations-Limited/claude-ops
- Root README: correct /plugin marketplace add + install commands, MCP vs CLI
  comparison table showing what each path gains/loses per integration
- Inner README: consistent /ops:* colon syntax, GSD as optional, integrations
  split into CLI-only / MCP-only / choose-with-tradeoffs / plugin-bundled
- setup.sh: auto-install missing core tools + npm deps on SessionStart
- plugin.json: updated author URL, homepage, repository
- marketplace.json + SECURITY.md: updated email

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Setup wizard now offers to install GSD (Get Shit Done) as a companion
plugin. Pulls latest version via plugin marketplace. Users choose
[Install GSD] or [Skip]. Enhances /ops:go, /ops:projects, /ops:next
dashboards with project roadmap state.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Interactive uninstall that cleans up everything: keychain credentials,
preferences, cache, shell profile exports, MCP registrations, and the
plugin itself. Confirms each deletion step before proceeding.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings April 12, 2026 15:29
@blocksorg
Copy link
Copy Markdown
Contributor

blocksorg Bot commented Apr 12, 2026

Mention Blocks like a regular teammate with your question or request:

@blocks review this pull request
@blocks make the following changes ...
@blocks create an issue from what was mentioned in the following comment ...
@blocks explain the following code ...
@blocks are there any security or performance concerns?

Run @blocks /help for more information.

Workspace settings | Disable this message

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 12, 2026

Warning

Rate limit exceeded

@auroracapital has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 10 minutes and 14 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 10 minutes and 14 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 313c88cb-5894-47da-8d60-dd5fe2f71c94

📥 Commits

Reviewing files that changed from the base of the PR and between d9e4e7b and d6b7a7b.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • claude-ops/skills/uninstall/SKILL.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch sync/dev-to-main-v4

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 and usage tips.

@auroracapital auroracapital merged commit 49fdb82 into main Apr 12, 2026
2 of 3 checks passed
@auroracapital auroracapital deleted the sync/dev-to-main-v4 branch April 12, 2026 15:32
@chatgpt-codex-connector
Copy link
Copy Markdown

💡 Codex Review

auto_install jq jq

P1 Badge Prevent setup from aborting on first missing tool

Calling auto_install as a plain command under set -e makes the script exit as soon as any tool is missing or a brew install fails, because auto_install returns 1 in that path. In environments without Homebrew (or without gh/aws preinstalled), scripts/setup.sh terminates before printing the missing-tools summary or registry warning, so SessionStart no longer reports actionable setup guidance.


sed -i '' '/CLAUDE_PLUGIN_ROOT/d' "<file>"

P2 Badge Use portable sed syntax for shell profile cleanup

The uninstall instructions use BSD-only sed -i '', which fails on GNU sed (common on Linux). When this skill runs outside macOS, the CLAUDE_PLUGIN_ROOT export line is not removed and the uninstall flow can error during Step 5, contradicting the "complete uninstall" behavior described by the skill.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Syncs dev into main, updating repo/org references and improving contributor/CI plumbing while adding an uninstall workflow and expanding setup guidance for companion plugins.

Changes:

  • Update documentation and plugin metadata to reflect the new GitHub org and /ops:* command naming.
  • Add an uninstall skill and extend setup wizard docs with “Companion plugins” (GSD) instructions.
  • Adjust CI gitleaks execution and add GitHub PR/issue templates + contributing guide.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
SECURITY.md Updates security contact email.
README.md Updates top-level README branding, install steps, and command reference.
claude-ops/skills/uninstall/SKILL.md Introduces a guided uninstall procedure for plugin artifacts/credentials.
claude-ops/skills/setup/SKILL.md Adds “Companion plugins” section (GSD) to setup wizard flow.
claude-ops/scripts/setup.sh Changes setup script behavior to auto-install dependencies and install Node deps.
claude-ops/README.md Updates internal plugin README for /ops:* naming and new install guidance.
claude-ops/.claude-plugin/plugin.json Updates author/repo URLs to the new org.
.github/workflows/ci.yml Replaces gitleaks GitHub Action usage with manual download + execution.
.github/PULL_REQUEST_TEMPLATE.md Adds a PR template for consistent submissions.
.github/ISSUE_TEMPLATE/feature_request.md Adds feature request issue template.
.github/ISSUE_TEMPLATE/bug_report.md Adds bug report issue template.
.github/CONTRIBUTING.md Adds contributor workflow and guidelines.
.claude-plugin/marketplace.json Updates marketplace owner email.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +122 to +137
## Step 6 — Remove MCP registrations

Check if `~/.claude.json` contains MCP server entries added by the plugin (telegram, slack-mcp). For each:

Ask via `AskUserQuestion`:

```
Remove MCP server registration: <server-name> from ~/.claude.json?
[Yes] [Skip]
```

On Yes, use `jq` to remove the entry:

```bash
jq 'del(.mcpServers["<server-name>"])' ~/.claude.json > /tmp/claude-json-tmp && mv /tmp/claude-json-tmp ~/.claude.json
```
Copy link

Copilot AI Apr 12, 2026

Choose a reason for hiding this comment

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

Step 6 removes MCP registrations by directly editing ~/.claude.json with jq. This conflicts with the repo’s established rule that the plugin must never touch ~/.claude.json (it’s Claude Code’s internal file and MCP registration should be done via Claude Code commands/UI). Instead, instruct the user to remove MCP servers via Claude Code’s MCP management (e.g., the claude mcp ... command family used elsewhere in setup, or the /plugin UI), and avoid any direct writes to ~/.claude.json.

Copilot uses AI. Check for mistakes.
Comment on lines +114 to +117
On Yes, read the file and remove lines containing `CLAUDE_PLUGIN_ROOT`. Use `sed` or similar — do NOT rewrite the entire file. Only remove the specific export line.

```bash
sed -i '' '/CLAUDE_PLUGIN_ROOT/d' "<file>"
Copy link

Copilot AI Apr 12, 2026

Choose a reason for hiding this comment

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

The suggested sed -i '' invocation is BSD/macOS-specific and will fail on GNU sed (Linux). If this skill is intended to be cross-platform, switch to a portable approach (e.g., use a backup suffix, or branch on OS) so removing CLAUDE_PLUGIN_ROOT exports works consistently.

Suggested change
On Yes, read the file and remove lines containing `CLAUDE_PLUGIN_ROOT`. Use `sed` or similar — do NOT rewrite the entire file. Only remove the specific export line.
```bash
sed -i '' '/CLAUDE_PLUGIN_ROOT/d' "<file>"
On Yes, read the file and remove lines containing `CLAUDE_PLUGIN_ROOT`. Use `sed` or similar — do NOT rewrite the entire file. Only remove the specific export line. Prefer a portable in-place edit that works on both macOS and Linux.
```bash
sed -i.bak '/CLAUDE_PLUGIN_ROOT/d' "<file>" && rm -f "<file>.bak"

Copilot uses AI. Check for mistakes.
Comment thread .github/workflows/ci.yml
- name: Install gitleaks
run: |
curl -sSfL https://github.com/gitleaks/gitleaks/releases/latest/download/gitleaks_8.24.3_linux_amd64.tar.gz | tar xz
curl -sSfL https://github.com/gitleaks/gitleaks/releases/download/v8.30.1/gitleaks_8.30.1_linux_x64.tar.gz | tar xz
Copy link

Copilot AI Apr 12, 2026

Choose a reason for hiding this comment

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

CI installs gitleaks by downloading and extracting a tarball via curl | tar but does not verify integrity (checksum/signature). For supply-chain safety, download to a file and verify a published checksum (or use the official gitleaks/gitleaks-action pinned to a commit SHA) before executing the binary.

Suggested change
curl -sSfL https://github.com/gitleaks/gitleaks/releases/download/v8.30.1/gitleaks_8.30.1_linux_x64.tar.gz | tar xz
set -euo pipefail
GITLEAKS_VERSION=8.30.1
GITLEAKS_TARBALL="gitleaks_${GITLEAKS_VERSION}_linux_x64.tar.gz"
GITLEAKS_CHECKSUMS="gitleaks_${GITLEAKS_VERSION}_checksums.txt"
GITLEAKS_BASE_URL="https://github.com/gitleaks/gitleaks/releases/download/v${GITLEAKS_VERSION}"
curl -sSfL "${GITLEAKS_BASE_URL}/${GITLEAKS_TARBALL}" -o "${GITLEAKS_TARBALL}"
curl -sSfL "${GITLEAKS_BASE_URL}/${GITLEAKS_CHECKSUMS}" -o "${GITLEAKS_CHECKSUMS}"
grep " ${GITLEAKS_TARBALL}\$" "${GITLEAKS_CHECKSUMS}" | sha256sum -c -
tar xzf "${GITLEAKS_TARBALL}"

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is ON, but it could not run because the branch was deleted or merged before autofix could start.

Reviewed by Cursor Bugbot for commit d6b7a7b. Configure here.

grep -l 'CLAUDE_PLUGIN_ROOT' ~/.zshrc ~/.bashrc ~/.zprofile ~/.bash_profile 2>/dev/null

# MCP registrations
grep -l 'telegram\|slack-mcp' ~/.claude.json 2>/dev/null
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

BSD grep on macOS doesn't support BRE alternation

Medium Severity

The grep -l 'telegram\|slack-mcp' command uses \| for alternation, which is a GNU grep extension not supported by macOS BSD grep. Since this tool targets macOS (evidenced by security keychain commands throughout), this grep will fail to detect MCP registrations in ~/.claude.json. The 2>/dev/null suppresses the error, so Step 6 silently skips removal, leaving stale MCP entries behind after uninstall. Using grep -El 'telegram|slack-mcp' (extended regex) would work on both platforms.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit d6b7a7b. Configure here.

auroracapital added a commit that referenced this pull request Apr 13, 2026
* docs: rewrite READMEs with correct install flow, MCP vs CLI guide, and org URLs (#11)

- All GitHub URLs now point to Lifecycle-Innovations-Limited/claude-ops
- Root README: correct /plugin marketplace add + install commands, MCP vs CLI
  comparison table showing what each path gains/loses per integration
- Inner README: consistent /ops:* colon syntax, GSD as optional, integrations
  split into CLI-only / MCP-only / choose-with-tradeoffs / plugin-bundled
- setup.sh: auto-install missing core tools + npm deps on SessionStart
- plugin.json: updated author URL, homepage, repository
- marketplace.json + SECURITY.md: updated email

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* docs: clarify Telegram setup is fully automated (phone + 2 codes) (#12)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat: add GSD companion plugin auto-install to setup wizard (#13)

Setup wizard now offers to install GSD (Get Shit Done) as a companion
plugin. Pulls latest version via plugin marketplace. Users choose
[Install GSD] or [Skip]. Enhances /ops:go, /ops:projects, /ops:next
dashboards with project roadmap state.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: replace gitleaks-action with local binary

* Add CONTRIBUTING.md and issue/PR templates

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(ci): update gitleaks to v8.30.1 — linux_x64 asset name

* feat: add /ops:uninstall skill for complete plugin removal (#26)

Interactive uninstall that cleans up everything: keychain credentials,
preferences, cache, shell profile exports, MCP registrations, and the
plugin itself. Confirms each deletion step before proceeding.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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