Skip to content

fix(setup): fix CLI probes, add appendix, improve registry/prefs/Telegram/WhatsApp flows#30

Merged
auroracapital merged 2 commits intodevfrom
fix/setup-skill-probes-v2
Apr 12, 2026
Merged

fix(setup): fix CLI probes, add appendix, improve registry/prefs/Telegram/WhatsApp flows#30
auroracapital merged 2 commits intodevfrom
fix/setup-skill-probes-v2

Conversation

@auroracapital
Copy link
Copy Markdown
Collaborator

@auroracapital auroracapital commented Apr 12, 2026

Summary

  • CLI probes fixed: gog inbox listgog gmail labels list --json; gog cal events --time-mingog cal list --json --max 3
  • CLI Reference Appendix added at end of skill with exact, tested syntax for gog, wacli, Slack token validation, and macOS Keychain
  • Preferences step hardened: always asks owner name, timezone (7 options), verbosity (full/compact/minimal), and default channels via AskUserQuestion — never auto-fills from memory
  • Registry step improved: scans filesystem via find ~ ~/Projects -maxdepth 2 -name ".git", presents multiSelect, adds "Auto-detect from existing registry" option
  • Parallelization rule added to Hard Rules: run all diagnostic/probe commands in parallel; background any command >2s
  • Telegram: now requires explicit [Yes — enter my phone number] / [Skip] before starting autolink flow — no silent skip
  • WhatsApp backfill: failures are swallowed silently; summary line is ✓ WhatsApp — authenticated, N chats only, never shows message counts or 0-result spam
  • Privacy: never show user's real name/email unless explicitly provided in the current session
  • wacli subcommand fix: wacli chatswacli chats list

Test plan

  • Run /ops:setup and verify gog probe uses gog gmail labels list --json
  • Run /ops:setup calendar and verify probe uses gog cal list --json --max 3
  • Run /ops:setup registry and verify filesystem scan runs and presents multiSelect
  • Run /ops:setup prefs and verify all 4 questions are asked without pre-filling
  • Run /ops:setup telegram and verify explicit opt-in question appears first
  • Run /ops:setup whatsapp on a cold session and verify backfill output is suppressed

🤖 Generated with Claude Code


Open with Devin

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 setup skill’s guidance and guardrails: fixes gog/wacli probe 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-welcome banner (wired into hooks.json SessionStart) and a post-setup ops-setup-complete dashboard 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.

auroracapital and others added 2 commits April 12, 2026 23:19
…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>
Copilot AI review requested due to automatic review settings April 12, 2026 16:22
@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

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 91b08ede-40af-421f-a361-5800e6d654c1

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/setup-skill-probes-v2

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 9bf49f2 into dev Apr 12, 2026
4 of 6 checks passed
@auroracapital auroracapital deleted the fix/setup-skill-probes-v2 branch April 12, 2026 16:22
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 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".

Comment on lines +7 to +8
PREFS="${CLAUDE_PLUGIN_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/preferences.json"
[ ! -f "$PREFS" ] || exit 0
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge 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 👍 / 👎.

auroracapital added a commit that referenced this pull request Apr 12, 2026
… 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>
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

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 from SessionStart, 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.

Comment on lines +454 to +456
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`.
Comment on lines 578 to +582
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.
Comment on lines 334 to 339
```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
```
Comment on lines +397 to 403
#### 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"
Comment on lines +739 to +743
Which channels should ops skills use by default?
[ ] whatsapp
[ ] email
[ ] telegram
[ ] slack
Comment on lines +796 to +803
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.

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 3 potential issues.

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 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
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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.

Fix in Cursor Fix in Web

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"; }
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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.

Fix in Cursor Fix in Web

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}"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit ffe7516. Configure here.

auroracapital added a commit that referenced this pull request Apr 12, 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>

* 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>
auroracapital added a commit that referenced this pull request Apr 13, 2026
…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>
auroracapital added a commit that referenced this pull request Apr 13, 2026
… 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>
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>

* 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>
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