Skip to content

Commit 8e2d0c2

Browse files
fidgetcodingruvnet
andcommitted
Second-pass audit fixes: option-5 typo, skill MCP rename, walkthrough
Three real issues caught by the second audit swarm: 1. step-6/step-6-install.sh:457 — `install_motion_calendar()` was printing "Heads up: Morgen (option 6) is the recommended default" during Motion's credential prompt. Morgen is option 5 after the 6-tool renumbering; Motion is 6. Fixed to "option 5". 2. rmini-skill/SKILL.md, templates/skills/rswarm/SKILL.md, templates/skills/rhive/SKILL.md, step-3/step-3-install.sh (skill heredocs) — all referenced `mcp__claude-flow__*` tool names. The repo's ground truth is ruflo (per step-3's actual MCP install at `claude mcp add ruflo -- npx -y ruflo@latest`), so the `mcp__claude-flow__*` namespace was stale and would fail at runtime if a user actually called those MCP tools. Renamed to `mcp__ruflo__*` everywhere and added a note that the MCP call is optional — the Agent-tool spawn is what actually does the work (the MCP call is metadata signaling). Fixed in both the top-level skill source (rmini-skill/, templates/skills/) AND the baked-in heredoc content inside step-3/step-3-install.sh, so fresh installs get the corrected skills too. 3. tests/install-flow-walkthrough.md — Step 4 walkthrough omitted Taste Skill entirely; Step 6 walkthrough still described the pre-overhaul 2-tool menu (Motion + Notion). Rewrote both sections to cover current reality: Step 4 has three tools including the Taste Skill 7-variant pack with notes on the full-URL install form; Step 6 has 6 tools in canonical order (Notion, Granola, n8n, GCal, Morgen, Motion) with per-tool credential storage notes and the Obsidian-lives-in-Step-7 pointer. Deliberately NOT fixed in this pass (pre-existing, out of scope for the 802a816 revert cleanup): - Argv secret leak via `claude mcp add -e` (M1, class-wide) - Taste Skill / Remotion unpinned `npx` installs (M2) - Substring grep collision risk in MCP detection (class-wide) - n8n URL regex tightening (validation nit) - CLAUDE.md @claude-flow/cli references (gitignored, local maintainer config) Co-Authored-By: claude-flow <ruv@ruv.net>
1 parent 802a816 commit 8e2d0c2

6 files changed

Lines changed: 33 additions & 21 deletions

File tree

rmini-skill/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ When this skill is invoked, IMMEDIATELY launch a 5-agent swarm. Do NOT explain h
1212
1. Read the user's task (everything they typed after `/rmini`)
1313
2. **Signal status line**: Run `echo 5 > /tmp/ruflo-mini-active` via Bash to light up the 🍯 indicator
1414
3. Initialize the swarm in ONE message:
15-
- Call `mcp__claude-flow__swarm_init` with topology `hierarchical-mesh`, maxAgents 5, strategy `specialized`
15+
- Call `mcp__ruflo__swarm_init` with topology `hierarchical-mesh`, maxAgents 5, strategy `specialized` (skip if the Ruflo MCP tool isn't available — the Agent-tool spawn below is what actually does the work)
1616
- Spawn ALL 5 agents via the Agent tool with `run_in_background: true` — every agent in ONE message
1717
4. After spawning, STOP. Do not poll. Do not check status. Wait for agents to return.
1818
5. When results come back, synthesize and present the combined output.

step-3/step-3-install.sh

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ When this skill is invoked, IMMEDIATELY launch a 15-agent swarm. Do NOT explain
313313
1. Read the user's task (everything they typed after `/rswarm`)
314314
2. **Signal status line**: Run `echo 15 > /tmp/ruflo-swarm-active` via Bash to light up the swarm indicator
315315
3. Initialize the swarm in ONE message:
316-
- Call `mcp__claude-flow__swarm_init` with topology `hierarchical-mesh`, maxAgents 15, strategy `specialized`
316+
- Call `mcp__ruflo__swarm_init` with topology `hierarchical-mesh`, maxAgents 15, strategy `specialized` (skip if the Ruflo MCP tool isn't available — the Agent-tool spawn below is what actually does the work)
317317
- Spawn ALL 15 agents via the Agent tool with `run_in_background: true` — every agent in ONE message
318318
4. After spawning, STOP. Do not poll. Do not check status. Wait for agents to return.
319319
5. When results come back, synthesize and present the combined output.
@@ -377,14 +377,14 @@ The queen decides how many workers to spawn, what roles they need, how to coordi
377377
1. Read the user's goal (everything they typed after `/rhive`)
378378
2. **Signal status line**: Run `touch /tmp/ruflo-hive-active` via Bash to light up the hive indicator
379379
3. Initialize the hive-mind in ONE message:
380-
- Call `mcp__claude-flow__hive-mind_init` with consensus `raft`
380+
- Call `mcp__ruflo__hive-mind_init` with consensus `raft` (skip if the Ruflo MCP tool isn't available — the Agent-tool spawn below is what actually does the work)
381381
- Spawn a queen agent (hierarchical-coordinator type) via the Agent tool with `run_in_background: true`
382382
- The queen's prompt MUST include:
383383
a. The user's full goal
384-
b. Instructions to use `mcp__claude-flow__hive-mind_spawn` to create workers as needed
385-
c. Instructions to use `mcp__claude-flow__hive-mind_broadcast` for coordination
386-
d. Instructions to use `mcp__claude-flow__hive-mind_consensus` for decisions
387-
e. Instructions to use `mcp__claude-flow__hive-mind_memory` for shared state
384+
b. Instructions to use `mcp__ruflo__hive-mind_spawn` to create workers as needed
385+
c. Instructions to use `mcp__ruflo__hive-mind_broadcast` for coordination
386+
d. Instructions to use `mcp__ruflo__hive-mind_consensus` for decisions
387+
e. Instructions to use `mcp__ruflo__hive-mind_memory` for shared state
388388
f. Instructions to present final synthesized output when complete
389389
4. After spawning the queen, STOP. Do not poll. Do not check status. The queen runs the show.
390390
5. When the queen returns results, present them to the user.
@@ -431,7 +431,7 @@ When this skill is invoked, IMMEDIATELY launch a 5-agent swarm. Do NOT explain h
431431
1. Read the user's task (everything they typed after `/rmini`)
432432
2. **Signal status line**: Run `echo 5 > /tmp/ruflo-mini-active` via Bash to light up the 🍯 indicator
433433
3. Initialize the swarm in ONE message:
434-
- Call `mcp__claude-flow__swarm_init` with topology `hierarchical-mesh`, maxAgents 5, strategy `specialized`
434+
- Call `mcp__ruflo__swarm_init` with topology `hierarchical-mesh`, maxAgents 5, strategy `specialized` (skip if the Ruflo MCP tool isn't available — the Agent-tool spawn below is what actually does the work)
435435
- Spawn ALL 5 agents via the Agent tool with `run_in_background: true` — every agent in ONE message
436436
4. After spawning, STOP. Do not poll. Do not check status. Wait for agents to return.
437437
5. When results come back, synthesize and present the combined output.

step-6/step-6-install.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,7 @@ install_motion_calendar() {
454454
fi
455455

456456
echo ""
457-
echo -e "${YELLOW} Heads up: Morgen (option 6) is the recommended default${NC}"
457+
echo -e "${YELLOW} Heads up: Morgen (option 5) is the recommended default${NC}"
458458
echo -e "${YELLOW} calendar tool. Motion Calendar is only needed for a few${NC}"
459459
echo -e "${YELLOW} Motion-specific features (teammate events, full-text${NC}"
460460
echo -e "${YELLOW} search across events, custom calendar management).${NC}"

templates/skills/rhive/SKILL.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ The queen decides how many workers to spawn, what roles they need, how to coordi
2020
1. Read the user's goal (everything they typed after `/rhive`)
2121
2. **Signal status line**: Run `touch /tmp/ruflo-hive-active` via Bash to light up the 👑 indicator
2222
3. Initialize the hive-mind in ONE message:
23-
- Call `mcp__claude-flow__hive-mind_init` with consensus `raft`
23+
- Call `mcp__ruflo__hive-mind_init` with consensus `raft` (skip if the Ruflo MCP tool isn't available — the Agent-tool spawn below is what actually does the work)
2424
- Spawn a queen agent (hierarchical-coordinator type) via the Agent tool with `run_in_background: true`
2525
- The queen's prompt MUST include:
2626
a. The user's full goal
27-
b. Instructions to use `mcp__claude-flow__hive-mind_spawn` to create workers as needed
28-
c. Instructions to use `mcp__claude-flow__hive-mind_broadcast` for coordination
29-
d. Instructions to use `mcp__claude-flow__hive-mind_consensus` for decisions
30-
e. Instructions to use `mcp__claude-flow__hive-mind_memory` for shared state
27+
b. Instructions to use `mcp__ruflo__hive-mind_spawn` to create workers as needed
28+
c. Instructions to use `mcp__ruflo__hive-mind_broadcast` for coordination
29+
d. Instructions to use `mcp__ruflo__hive-mind_consensus` for decisions
30+
e. Instructions to use `mcp__ruflo__hive-mind_memory` for shared state
3131
f. Instructions to present final synthesized output when complete
3232
4. After spawning the queen, STOP. Do not poll. Do not check status. The queen runs the show.
3333
5. When the queen returns results, present them to the user.

templates/skills/rswarm/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ When this skill is invoked, IMMEDIATELY launch a 15-agent swarm. Do NOT explain
1313
1. Read the user's task (everything they typed after `/rswarm`)
1414
2. **Signal status line**: Run `echo 15 > /tmp/ruflo-swarm-active` via Bash to light up the 🐝 indicator
1515
3. Initialize the swarm in ONE message:
16-
- Call `mcp__claude-flow__swarm_init` with topology `hierarchical-mesh`, maxAgents 15, strategy `specialized`
16+
- Call `mcp__ruflo__swarm_init` with topology `hierarchical-mesh`, maxAgents 15, strategy `specialized` (skip if the Ruflo MCP tool isn't available — the Agent-tool spawn below is what actually does the work)
1717
- Spawn ALL 15 agents via the Agent tool with `run_in_background: true` — every agent in ONE message
1818
4. After spawning, STOP. Do not poll. Do not check status. Wait for agents to return.
1919
5. When results come back, synthesize and present the combined output.

tests/install-flow-walkthrough.md

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -107,10 +107,13 @@ The `OBSIDIAN/` prefix requirement has been removed. The pattern now matches any
107107
| Section | Expected Behavior | Result |
108108
|---------|-------------------|--------|
109109
| UI/UX Pro Max skill | Downloads to `~/.claude/skills/ui-ux-pro-max/SKILL.md` | PASS |
110+
| Taste Skill pack (Leonxlnx/taste-skill) | `npx skills add https://github.com/Leonxlnx/taste-skill --yes --global` expands 7 variants (taste, redesign, soft, output, minimalist, brutalist, stitch) under `~/.claude/skills/` | PASS (soft fail ok if skills CLI rejects the URL) |
110111
| 21st.dev Magic MCP | `claude mcp add magic` | PASS (may need manual setup) |
111112

112113
**Bugs found:** None.
113114

115+
**Notes:** Taste Skill install uses the full GitHub URL form (not the owner/repo shorthand) because the taste-skill README documents the URL form as the authoritative install command. Each variant becomes its own skill folder. The main `taste-skill` variant has three tunable knobs at the top of its SKILL.md: DESIGN_VARIANCE, MOTION_INTENSITY, VISUAL_DENSITY (1-10 each).
116+
114117
---
115118

116119
## Step 5 -- Visual Media
@@ -135,14 +138,23 @@ The `OBSIDIAN/` prefix requirement has been removed. The pattern now matches any
135138

136139
**File:** `step-6/step-6-install.sh`
137140

141+
Installs 6 optional productivity MCPs. Obsidian MCP lives in Step 7d (alongside the vault setup), NOT here.
142+
138143
| Section | Expected Behavior | Result |
139144
|---------|-------------------|--------|
140-
| Non-interactive mode | Detects pipe (`[ ! -t 0 ]`), prints instructions, exits cleanly | PASS |
141-
| Interactive mode | Menu for Motion/Notion | PASS |
142-
| Motion Calendar | Prompts for credentials | PASS |
143-
| Notion | Prompts for integration token | PASS |
144-
145-
**Notes:** When run via `update.sh` (pipe), correctly exits with instructions telling user to run directly. First-time users must run directly in terminal for credential input.
145+
| Non-interactive mode | Detects pipe (`[ ! -t 0 ]`), auto-detects already-installed MCPs, re-enters only the `"already installed"` guards; if nothing found, prints "run directly" instructions and exits cleanly | PASS |
146+
| Interactive menu | Numbered 1-6: Notion, Granola, n8n, GCal, Morgen, Motion. Morgen (5) flagged as recommended default | PASS |
147+
| (1) Notion | Prompts for integration token, registers via `-e NOTION_TOKEN=...` | PASS |
148+
| (2) Granola | Registers HTTP transport to `https://mcp.granola.ai/mcp` (no credentials — Granola app handles auth) | PASS |
149+
| (3) n8n | Prompts for user's own n8n instance URL + optional Bearer token, registers via `--transport http` with `-H "Authorization: Bearer …"` if provided | PASS |
150+
| (4) Google Calendar | Prompts for OAuth Client ID + Secret, writes `~/.google-calendar-mcp/.env` (chmod 700 dir / 600 file), registers with `-e GOOGLE_CLIENT_ID=... -e GOOGLE_CLIENT_SECRET=...` | PASS |
151+
| (5) Morgen *(recommended)* | Prompts for API key + optional IANA timezone, registers via `-e MORGEN_API_KEY=... -e MORGEN_TIMEZONE=...`. No local `.env` — credentials live in Claude Code's MCP config | PASS |
152+
| (6) Motion Calendar | Prompts for Motion API key, Firebase API key, Firebase refresh token, Motion user ID. Writes `~/.motion-calendar-mcp/.env` (chmod 700/600). Registers via `claude mcp add motion-calendar` | PASS |
153+
| Obsidian | NOT in Step 6 — points user to Step 7d | N/A |
154+
| Self-test | `check_registered` covers all 6 tools, verifies Motion + GCal `.env` files exist for their respective installs | PASS |
155+
| Summary | Prints tool-count + "what you can do now" hints per installed tool | PASS |
156+
157+
**Notes:** When run via `update.sh` (pipe), correctly auto-detects already-registered MCPs and exits after verification without prompting. First-time users must run directly in terminal for credential input. Morgen is promoted as the default calendar+task tool; Motion and Google Calendar are documented as secondary (install only for specific features the primary tool doesn't cover).
146158

147159
---
148160

0 commit comments

Comments
 (0)