fix(setup): fix CLI probes, add appendix, improve registry/prefs/Telegram/WhatsApp flows#30
Conversation
…gram flows - Replace broken `gog inbox list` probe with `gog gmail labels list --json` - Replace broken `gog cal events --time-min` probe with `gog cal list --json --max 3` - Add CLI Reference Appendix with exact, tested syntax for gog, wacli, Slack, and keychain - Preferences step now always asks owner name, timezone (7 options), verbosity, and default channels — never auto-fills from memory - Registry step now scans filesystem for git repos via find and presents multiSelect; adds "Auto-detect from existing registry" option - Add parallelization rule to Hard Rules: run all diagnostic probes in parallel, background slow commands - Telegram flow now requires explicit opt-in ask before starting phone/auth flow; no silent skip - WhatsApp backfill failures are now swallowed silently; summary line never shows message counts or 0-result spam - Never show user's real name or email unless explicitly provided in the current session - Fix `wacli chats` → `wacli chats list` (correct subcommand) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ete) Animated ASCII art welcome sequence on first SessionStart (gates on preferences.json existence). Setup completion dashboard with channel/ project/agent/skill counts. Both scripts use ANSI colors with NO_COLOR graceful degradation. SessionStart hook updated to run welcome before setup check. Setup SKILL.md Step 8 calls completion banner with actual counts. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Mention Blocks like a regular teammate with your question or request: @blocks review this pull request Run |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ffe7516532
ℹ️ 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".
| PREFS="${CLAUDE_PLUGIN_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/preferences.json" | ||
| [ ! -f "$PREFS" ] || exit 0 |
There was a problem hiding this comment.
Honor legacy prefs location in first-run gate
The new first-run check only looks at ${CLAUDE_PLUGIN_DATA_DIR}/preferences.json, so users upgrading from older installs that still keep prefs at scripts/preferences.json will see the full welcome animation on every SessionStart even though they are already configured. This regresses the script’s own “first-run only” behavior and adds repeated startup noise; bin/ops-setup-detect already handles this legacy fallback, so this gate should do the same.
Useful? React with 👍 / 👎.
… telegram fix) (#32) * 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> * fix(telegram): graceful degradation when credentials are missing (#28) Server no longer exits at startup when TELEGRAM_API_ID/HASH/SESSION are unset. It starts as a valid MCP server and returns a clear "not configured" error on every tool call instead of crashing, keeping the plugin loadable without Telegram credentials. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: polish README with ASCII art and terminal aesthetic (#29) Rewrote README with block ASCII logo, terminal-style /ops:go dashboard mockup, box-drawing tables throughout, and section headers — no content removed. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(setup): fix CLI probes, add appendix, improve registry/prefs/Telegram/WhatsApp flows (#30) * fix(setup): fix CLI probes, add appendix, improve registry/prefs/Telegram flows - Replace broken `gog inbox list` probe with `gog gmail labels list --json` - Replace broken `gog cal events --time-min` probe with `gog cal list --json --max 3` - Add CLI Reference Appendix with exact, tested syntax for gog, wacli, Slack, and keychain - Preferences step now always asks owner name, timezone (7 options), verbosity, and default channels — never auto-fills from memory - Registry step now scans filesystem for git repos via find and presents multiSelect; adds "Auto-detect from existing registry" option - Add parallelization rule to Hard Rules: run all diagnostic probes in parallel, background slow commands - Telegram flow now requires explicit opt-in ask before starting phone/auth flow; no silent skip - WhatsApp backfill failures are now swallowed silently; summary line never shows message counts or 0-result spam - Never show user's real name or email unless explicitly provided in the current session - Fix `wacli chats` → `wacli chats list` (correct subcommand) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: add first-run onboarding banners (ops-welcome + ops-setup-complete) Animated ASCII art welcome sequence on first SessionStart (gates on preferences.json existence). Setup completion dashboard with channel/ project/agent/skill counts. Both scripts use ANSI colors with NO_COLOR graceful degradation. SessionStart hook updated to run welcome before setup check. Setup SKILL.md Step 8 calls completion banner with actual counts. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Updates the /ops:setup skill to use corrected, tested CLI probe commands and adds onboarding/UX improvements (privacy hard rules, Telegram explicit opt-in, quieter WhatsApp backfill), plus new welcome/completion banners driven by a SessionStart hook.
Changes:
- Fixes/updates setup wizard instructions for gog/wacli probes, Telegram + WhatsApp flows, registry discovery, and preferences collection (with a new CLI reference appendix).
- Adds a first-run welcome banner (
ops-welcome) invoked fromSessionStart, and a post-setup completion banner (ops-setup-complete). - Adds a “parallelize probes / background slow commands” hard rule to the setup skill.
Reviewed changes
Copilot reviewed 2 out of 4 changed files in this pull request and generated 8 comments.
| File | Description |
|---|---|
| claude-ops/skills/setup/SKILL.md | Updates setup wizard rules/flows, fixes probe syntax, adds CLI reference appendix, and adds completion-banner invocation. |
| claude-ops/hooks/hooks.json | Runs the new welcome banner on SessionStart. |
| claude-ops/bin/ops-welcome | New first-run animated welcome banner gated on prefs existence. |
| claude-ops/bin/ops-setup-complete | New post-setup “celebration” banner with counts passed via flags. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| gog gmail labels list --json 2>&1 | head -5 | ||
| ``` | ||
| If this returns JSON containing a `labels` array, gog is authenticated and the Gmail API is working. Report ✓. If the output is an error or empty, treat as broken and instruct the user to re-run `gog auth login`. |
| 2. **If installed and already authed from Step 3c**, probe: | ||
| ```bash | ||
| gog cal list --max 1 --json 2>&1 || true | ||
| gog cal events --time-min="$(date -u +%Y-%m-%dT00:00:00Z)" --max 5 --json 2>&1 || true | ||
| gog cal list --json --max 3 2>&1 | head -20 | ||
| ``` | ||
| If either returns events, print `✓ Calendar — gog cal, N calendars, M upcoming events today` and record `channels.calendar = "gog"` in `$PREFS_PATH`. Stop here. | ||
| If this returns JSON with calendar data, record `channels.calendar = "gog"` in `$PREFS_PATH` and print `✓ Calendar — gog cal`. Stop here. |
| ```bash | ||
| wacli doctor --json 2>&1 | ||
| wacli auth status --json 2>&1 | ||
| wacli messages list --after="$(date -v-1d +%Y-%m-%d)" --limit=5 --json 2>&1 | ||
| wacli chats --json 2>&1 | head -c 4000 | ||
| wacli chats list --json 2>&1 | head -c 4000 | ||
| ``` |
| #### Step 3b.4 — Historical backfill (background, silent) | ||
|
|
||
| Always run this after a fresh re-pair, AND run it when rule D matches. Never skip unless the user explicitly declines. | ||
|
|
||
| Backfill is a background optimization — it should not produce verbose output or alarming status messages. Run it silently and swallow non-fatal errors. | ||
|
|
||
| 1. Load the top 10 chats by recency: |
| Before asking the user to manually enter projects, scan for existing git repositories: | ||
|
|
||
| ```bash | ||
| find ~ ~/Projects -maxdepth 2 -name ".git" -type d 2>/dev/null | sed 's|/.git||' | sort |
| "hooks": [ | ||
| { | ||
| "type": "command", | ||
| "command": "bash ${CLAUDE_PLUGIN_ROOT}/bin/ops-welcome 2>/dev/null || true" |
| Which channels should ops skills use by default? | ||
| [ ] telegram | ||
| [ ] slack |
| After displaying the summary, run the completion banner to celebrate the successful setup. Pass the actual counts from the setup session: | ||
|
|
||
| ```! | ||
| bash ${CLAUDE_PLUGIN_ROOT}/bin/ops-setup-complete --channels <N> --projects <N> --agents 9 --skills 15 | ||
| ``` | ||
|
|
||
| Where `<N>` is replaced with the actual number of channels configured and projects registered during this session. | ||
|
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 3 potential issues.
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 ffe7516. Configure here.
| Before asking the user to manually enter projects, scan for existing git repositories: | ||
|
|
||
| ```bash | ||
| find ~ ~/Projects -maxdepth 2 -name ".git" -type d 2>/dev/null | sed 's|/.git||' | sort |
There was a problem hiding this comment.
Duplicate paths from overlapping find start directories
Medium Severity
The find ~ ~/Projects -maxdepth 2 -name ".git" command searches both ~ and ~/Projects independently. Since ~/Projects is a child of ~, any .git directory under ~/Projects within depth 2 of ~ will be found twice — once from each start path. The pipe ends with sort but not sort -u, so duplicates are preserved and will appear in the multiSelect presented to the user.
Reviewed by Cursor Bugbot for commit ffe7516. Configure here.
| # --- Helpers --- | ||
| D=0.025 # delay between lines | ||
| p() { printf '%s\n' "$1"; sleep "$D"; } | ||
| dp() { sleep "${2:-0.08}"; printf '%s\n' "$1"; } |
There was a problem hiding this comment.
Unused dp() function defined but never called
Low Severity
The dp() helper function is defined on this line but never invoked anywhere in ops-welcome. All output in the script uses p() or progress_step(). This is dead code that adds confusion about the script's intent.
Reviewed by Cursor Bugbot for commit ffe7516. Configure here.
| "$DIM" "$CYN" "$RST" "$GRN" "$RST" "$BWHT" "$SKILLS loaded" "$RST" "$DIM$CYN" "$RST" | ||
| sleep "$D" | ||
|
|
||
| p " ${DIM}${CYN}└──────────────────────────────────────────────────┘${RST}" |
There was a problem hiding this comment.
Dashboard box border misaligned with content rows
Low Severity
The dashboard box borders (┌─┐, ├─┤, └─┘) have an interior width of 50 characters, but the printf content rows produce 52 visible characters between │ delimiters: 2 (spaces) + 3 ([*]) + 14 (label column) + 33 (%-33s) = 52. This causes the right │ on every data row to overshoot the corner characters by 2 columns, visually breaking the box in the terminal. The %-33s format width likely needs to be %-31s.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit ffe7516. Configure here.
* 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> * fix(telegram): graceful degradation when credentials are missing (#28) Server no longer exits at startup when TELEGRAM_API_ID/HASH/SESSION are unset. It starts as a valid MCP server and returns a clear "not configured" error on every tool call instead of crashing, keeping the plugin loadable without Telegram credentials. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: polish README with ASCII art and terminal aesthetic (#29) Rewrote README with block ASCII logo, terminal-style /ops:go dashboard mockup, box-drawing tables throughout, and section headers — no content removed. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(setup): fix CLI probes, add appendix, improve registry/prefs/Telegram/WhatsApp flows (#30) * fix(setup): fix CLI probes, add appendix, improve registry/prefs/Telegram flows - Replace broken `gog inbox list` probe with `gog gmail labels list --json` - Replace broken `gog cal events --time-min` probe with `gog cal list --json --max 3` - Add CLI Reference Appendix with exact, tested syntax for gog, wacli, Slack, and keychain - Preferences step now always asks owner name, timezone (7 options), verbosity, and default channels — never auto-fills from memory - Registry step now scans filesystem for git repos via find and presents multiSelect; adds "Auto-detect from existing registry" option - Add parallelization rule to Hard Rules: run all diagnostic probes in parallel, background slow commands - Telegram flow now requires explicit opt-in ask before starting phone/auth flow; no silent skip - WhatsApp backfill failures are now swallowed silently; summary line never shows message counts or 0-result spam - Never show user's real name or email unless explicitly provided in the current session - Fix `wacli chats` → `wacli chats list` (correct subcommand) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: add first-run onboarding banners (ops-welcome + ops-setup-complete) Animated ASCII art welcome sequence on first SessionStart (gates on preferences.json existence). Setup completion dashboard with channel/ project/agent/skill counts. Both scripts use ANSI colors with NO_COLOR graceful degradation. SessionStart hook updated to run welcome before setup check. Setup SKILL.md Step 8 calls completion banner with actual counts. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: critical setup flow bugs (fatal shell redirects, wrong scripts, sync installs) (#33) - Fix Step 8 completion banner: move from ! fence to regular bash fence so <N> placeholders aren't shell-redirected - Fix Step 3a Telegram scout: replace incorrect ops-slack-autolink call with direct keychain check - Fix Step 2b GSD install: replace bash claude plugin commands (not shell commands) with slash command instructions - Fix setup.sh: add 30s timeout to brew installs and silence npm stdout with &>/dev/null - Fix CLI appendix + Step 3b.2: add Linux date fallback alongside macOS date -v-1d - Fix ops-welcome: detect actual skill/agent counts dynamically instead of hardcoding 15/9 Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: preflight data gatherer for zero-wait setup * fix: critical setup flow bugs (fatal shell redirects, wrong scripts, sync installs) - Fix Step 8 completion banner: move from ! fence to regular bash fence so <N> placeholders aren't shell-redirected - Fix Step 3a Telegram scout: replace incorrect ops-slack-autolink call with direct keychain check - Fix Step 2b GSD install: replace bash claude plugin commands (not shell commands) with slash command instructions - Fix setup.sh: add 30s timeout to brew installs and silence npm stdout with &>/dev/null - Fix CLI appendix + Step 3b.2: add Linux date fallback alongside macOS date -v-1d - Fix ops-welcome: detect actual skill/agent counts dynamically instead of hardcoding 15/9 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: preflight data gatherer for zero-wait setup Add ops-setup-preflight script that runs all environment probes in parallel as background jobs, writing results to /tmp/ops-preflight/ so the setup wizard has zero-latency data by the time the user answers the first question. Update ops-setup-detect to read from the preflight cache when available, avoiding redundant probes. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…gram/WhatsApp flows (#30) * fix(setup): fix CLI probes, add appendix, improve registry/prefs/Telegram flows - Replace broken `gog inbox list` probe with `gog gmail labels list --json` - Replace broken `gog cal events --time-min` probe with `gog cal list --json --max 3` - Add CLI Reference Appendix with exact, tested syntax for gog, wacli, Slack, and keychain - Preferences step now always asks owner name, timezone (7 options), verbosity, and default channels — never auto-fills from memory - Registry step now scans filesystem for git repos via find and presents multiSelect; adds "Auto-detect from existing registry" option - Add parallelization rule to Hard Rules: run all diagnostic probes in parallel, background slow commands - Telegram flow now requires explicit opt-in ask before starting phone/auth flow; no silent skip - WhatsApp backfill failures are now swallowed silently; summary line never shows message counts or 0-result spam - Never show user's real name or email unless explicitly provided in the current session - Fix `wacli chats` → `wacli chats list` (correct subcommand) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: add first-run onboarding banners (ops-welcome + ops-setup-complete) Animated ASCII art welcome sequence on first SessionStart (gates on preferences.json existence). Setup completion dashboard with channel/ project/agent/skill counts. Both scripts use ANSI colors with NO_COLOR graceful degradation. SessionStart hook updated to run welcome before setup check. Setup SKILL.md Step 8 calls completion banner with actual counts. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
… telegram fix) (#32) * 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> * fix(telegram): graceful degradation when credentials are missing (#28) Server no longer exits at startup when TELEGRAM_API_ID/HASH/SESSION are unset. It starts as a valid MCP server and returns a clear "not configured" error on every tool call instead of crashing, keeping the plugin loadable without Telegram credentials. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: polish README with ASCII art and terminal aesthetic (#29) Rewrote README with block ASCII logo, terminal-style /ops:go dashboard mockup, box-drawing tables throughout, and section headers — no content removed. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(setup): fix CLI probes, add appendix, improve registry/prefs/Telegram/WhatsApp flows (#30) * fix(setup): fix CLI probes, add appendix, improve registry/prefs/Telegram flows - Replace broken `gog inbox list` probe with `gog gmail labels list --json` - Replace broken `gog cal events --time-min` probe with `gog cal list --json --max 3` - Add CLI Reference Appendix with exact, tested syntax for gog, wacli, Slack, and keychain - Preferences step now always asks owner name, timezone (7 options), verbosity, and default channels — never auto-fills from memory - Registry step now scans filesystem for git repos via find and presents multiSelect; adds "Auto-detect from existing registry" option - Add parallelization rule to Hard Rules: run all diagnostic probes in parallel, background slow commands - Telegram flow now requires explicit opt-in ask before starting phone/auth flow; no silent skip - WhatsApp backfill failures are now swallowed silently; summary line never shows message counts or 0-result spam - Never show user's real name or email unless explicitly provided in the current session - Fix `wacli chats` → `wacli chats list` (correct subcommand) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: add first-run onboarding banners (ops-welcome + ops-setup-complete) Animated ASCII art welcome sequence on first SessionStart (gates on preferences.json existence). Setup completion dashboard with channel/ project/agent/skill counts. Both scripts use ANSI colors with NO_COLOR graceful degradation. SessionStart hook updated to run welcome before setup check. Setup SKILL.md Step 8 calls completion banner with actual counts. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* 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> * fix(telegram): graceful degradation when credentials are missing (#28) Server no longer exits at startup when TELEGRAM_API_ID/HASH/SESSION are unset. It starts as a valid MCP server and returns a clear "not configured" error on every tool call instead of crashing, keeping the plugin loadable without Telegram credentials. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: polish README with ASCII art and terminal aesthetic (#29) Rewrote README with block ASCII logo, terminal-style /ops:go dashboard mockup, box-drawing tables throughout, and section headers — no content removed. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(setup): fix CLI probes, add appendix, improve registry/prefs/Telegram/WhatsApp flows (#30) * fix(setup): fix CLI probes, add appendix, improve registry/prefs/Telegram flows - Replace broken `gog inbox list` probe with `gog gmail labels list --json` - Replace broken `gog cal events --time-min` probe with `gog cal list --json --max 3` - Add CLI Reference Appendix with exact, tested syntax for gog, wacli, Slack, and keychain - Preferences step now always asks owner name, timezone (7 options), verbosity, and default channels — never auto-fills from memory - Registry step now scans filesystem for git repos via find and presents multiSelect; adds "Auto-detect from existing registry" option - Add parallelization rule to Hard Rules: run all diagnostic probes in parallel, background slow commands - Telegram flow now requires explicit opt-in ask before starting phone/auth flow; no silent skip - WhatsApp backfill failures are now swallowed silently; summary line never shows message counts or 0-result spam - Never show user's real name or email unless explicitly provided in the current session - Fix `wacli chats` → `wacli chats list` (correct subcommand) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: add first-run onboarding banners (ops-welcome + ops-setup-complete) Animated ASCII art welcome sequence on first SessionStart (gates on preferences.json existence). Setup completion dashboard with channel/ project/agent/skill counts. Both scripts use ANSI colors with NO_COLOR graceful degradation. SessionStart hook updated to run welcome before setup check. Setup SKILL.md Step 8 calls completion banner with actual counts. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: critical setup flow bugs (fatal shell redirects, wrong scripts, sync installs) (#33) - Fix Step 8 completion banner: move from ! fence to regular bash fence so <N> placeholders aren't shell-redirected - Fix Step 3a Telegram scout: replace incorrect ops-slack-autolink call with direct keychain check - Fix Step 2b GSD install: replace bash claude plugin commands (not shell commands) with slash command instructions - Fix setup.sh: add 30s timeout to brew installs and silence npm stdout with &>/dev/null - Fix CLI appendix + Step 3b.2: add Linux date fallback alongside macOS date -v-1d - Fix ops-welcome: detect actual skill/agent counts dynamically instead of hardcoding 15/9 Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: preflight data gatherer for zero-wait setup * fix: critical setup flow bugs (fatal shell redirects, wrong scripts, sync installs) - Fix Step 8 completion banner: move from ! fence to regular bash fence so <N> placeholders aren't shell-redirected - Fix Step 3a Telegram scout: replace incorrect ops-slack-autolink call with direct keychain check - Fix Step 2b GSD install: replace bash claude plugin commands (not shell commands) with slash command instructions - Fix setup.sh: add 30s timeout to brew installs and silence npm stdout with &>/dev/null - Fix CLI appendix + Step 3b.2: add Linux date fallback alongside macOS date -v-1d - Fix ops-welcome: detect actual skill/agent counts dynamically instead of hardcoding 15/9 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: preflight data gatherer for zero-wait setup Add ops-setup-preflight script that runs all environment probes in parallel as background jobs, writing results to /tmp/ops-preflight/ so the setup wizard has zero-latency data by the time the user answers the first question. Update ops-setup-detect to read from the preflight cache when available, avoiding redundant probes. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>


Summary
gog inbox list→gog gmail labels list --json;gog cal events --time-min→gog cal list --json --max 3find ~ ~/Projects -maxdepth 2 -name ".git", presents multiSelect, adds "Auto-detect from existing registry" option[Yes — enter my phone number] / [Skip]before starting autolink flow — no silent skip✓ WhatsApp — authenticated, N chatsonly, never shows message counts or 0-result spamwacli chats→wacli chats listTest plan
/ops:setupand verify gog probe usesgog gmail labels list --json/ops:setup calendarand verify probe usesgog cal list --json --max 3/ops:setup registryand verify filesystem scan runs and presents multiSelect/ops:setup prefsand verify all 4 questions are asked without pre-filling/ops:setup telegramand verify explicit opt-in question appears first/ops:setup whatsappon a cold session and verify backfill output is suppressed🤖 Generated with Claude Code
Note
Low Risk
Low risk: changes are mostly to setup documentation/flows and new cosmetic shell banners, plus a SessionStart hook that runs a gated welcome script when no preferences exist.
Overview
Improves the
setupskill’s guidance and guardrails: fixesgog/wacliprobe commands, adds stricter privacy and parallel-probing rules, refines Telegram opt-in and quieter WhatsApp backfill reporting, and expands preferences prompts to avoid auto-filling user identity.Enhances project registry setup with filesystem auto-discovery of git repos and new options for existing registries, and adds an Appendix with exact, copy-pastable CLI syntax for
gog,wacli, Slack token validation, and macOS Keychain.Adds two new bash UX scripts: a first-run animated
ops-welcomebanner (wired intohooks.jsonSessionStart) and a post-setupops-setup-completedashboard banner invoked by the setup skill with session counts.Reviewed by Cursor Bugbot for commit ffe7516. Bugbot is set up for automated code reviews on this repo. Configure here.