chore: remove ruflo and frontend-design — full cleanup
Both plugins removed from all config, scripts, and documentation: - ruflo: uninstalled globally (npm), removed from install/update/doctor/session-start/detect/lock/advisor - frontend-design: removed from install/session-start/detect/advisor (was already commented out) - plugin-advisor.md: compatibility matrix, decision table, conditional rules, recommended sets all updated - README.md/USAGE.md: all references cleaned, token cost estimates recalculated - install-plugins.sh: steps renumbered (10→9 steps) - CHANGELOG.md: kept as historical record Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
a9f5e9a31b
commit
50db70cbf2
42
README.md
42
README.md
@ -20,7 +20,7 @@ claude-config/
|
||||
├── doctor.sh # Setup diagnostic — checks symlinks, plugins, permissions, token budget
|
||||
├── update-all.sh # One-command update for all components
|
||||
├── Makefile # Unified entry point: make install / doctor / update
|
||||
├── plugins.lock.json # Version pinning for non-marketplace dependencies (RTK, GSD v2, ruflo)
|
||||
├── plugins.lock.json # Version pinning for non-marketplace dependencies (RTK, GSD v2)
|
||||
├── version.txt # Semver version of this config
|
||||
├── CHANGELOG.md # Release history
|
||||
├── lib/
|
||||
@ -80,7 +80,7 @@ claude-config/
|
||||
- `lib/` = shared shell functions sourced by scripts (plugin detection)
|
||||
- `templates/` = symlinked to `~/.claude/templates/` — copy into projects via per-project setup
|
||||
- Custom skills use **Superpowers** agents for implementation phases (required — auto-detected)
|
||||
- **Plugins** (Superpowers, GStack, GSD v2, ruflo, etc.) install separately and complement custom skills
|
||||
- **Plugins** (Superpowers, GStack, GSD v2, etc.) install separately and complement custom skills
|
||||
|
||||
---
|
||||
|
||||
@ -169,12 +169,6 @@ Install output is logged to `install-YYYYMMDD-HHMMSS.log` in the repo directory
|
||||
> context-fresh execution per task. Not a Claude Code plugin — runs as an external process.
|
||||
> Docs: [github.com/gsd-build/gsd-2](https://github.com/gsd-build/gsd-2)
|
||||
|
||||
### Ruflo CLI — OFF (disabled by default)
|
||||
|
||||
> Enterprise multi-agent orchestration CLI (310+ tools, WASM kernel, self-learning architecture).
|
||||
> Heavy: ~500-1500 tokens passive cost. For standard multi-session work, GSD v2 is lighter and sufficient.
|
||||
> Docs: [github.com/ruflo-ai/ruflo](https://github.com/ruflo-ai/ruflo)
|
||||
|
||||
### Bundled skills (Claude Code built-in, always available)
|
||||
|
||||
| Command | Description |
|
||||
@ -330,7 +324,7 @@ against what you're about to do. Also embedded as STEP 0 in both orchestrators.
|
||||
|
||||
Blocks if Superpowers is not active (required by orchestrators).
|
||||
Blocks if critical project-specific plugins are missing (frontend tools, Context7, GStack).
|
||||
Warns if ruflo is active with no multi-agent signal, or if GSD v2 CLI is not installed for multi-session work.
|
||||
Warns if GSD v2 CLI is not installed for multi-session work.
|
||||
|
||||
```
|
||||
/plugin-check "I want to build a React + FastAPI SaaS"
|
||||
@ -339,7 +333,7 @@ Warns if ruflo is active with no multi-agent signal, or if GSD v2 CLI is not ins
|
||||
→ Scans filesystem for project signals (frontend? design? deploy? multi-agent?)
|
||||
→ Applies compatibility matrix
|
||||
→ Produces recommendation table with passive cost estimate
|
||||
→ Warns about plugin conflicts (gstack + ruflo, etc.)
|
||||
→ Warns about plugin conflicts
|
||||
→ Blocks with OPTIONS if critical plugins are missing
|
||||
→ Or confirms "proceed" if config is optimal
|
||||
```
|
||||
@ -352,10 +346,7 @@ Warns if ruflo is active with no multi-agent signal, or if GSD v2 CLI is not ins
|
||||
|
||||
| Pair | Relation | Notes |
|
||||
|---|---|---|
|
||||
| frontend-design ↔ ui-ux-pro-max | ⚠️ Overlap | Keep both for design-heavy. Drop ui-ux-pro-max for simple UI. |
|
||||
| gstack ↔ gsd v2 | ✅ Complementary | Different scopes — CC workflow vs CLI orchestration |
|
||||
| gstack ↔ ruflo | ⚠️ Overlap | Both orchestrate multi-step work. Use one or the other. ~3250-4250t combined. |
|
||||
| gsd v2 ↔ ruflo | ⚠️ Overlap | Sequential (GSD) vs parallel swarm (ruflo). Pick based on need. |
|
||||
| superpowers ↔ gsd v2 | ✅ Complementary | Single-session engine + multi-session CLI = no conflict |
|
||||
| superpowers ↔ gstack | ✅ Complementary | Used together by orchestrators |
|
||||
| context7 ↔ any | ✅ Independent | Doc lookup CLI (ctx7) — always safe to combine |
|
||||
@ -364,14 +355,14 @@ Warns if ruflo is active with no multi-agent signal, or if GSD v2 CLI is not ins
|
||||
|
||||
| Project type | Plugins ON | OFF | Passive cost |
|
||||
|---|---|---|---|
|
||||
| Backend API / microservice | superpowers, context7* | frontend-design, ui-ux-pro-max, gstack, ruflo | ~800t |
|
||||
| Frontend SPA / SSR | superpowers, frontend-design, ui-ux-pro-max, context7 | gstack, ruflo | ~1600t |
|
||||
| Full-stack SaaS | superpowers, gstack, frontend-design, ui-ux-pro-max, context7 | ruflo | ~4400t |
|
||||
| Backend API / microservice | superpowers, context7* | ui-ux-pro-max, gstack | ~800t |
|
||||
| Frontend SPA / SSR | superpowers, ui-ux-pro-max, context7 | gstack | ~1400t |
|
||||
| Full-stack SaaS | superpowers, gstack, ui-ux-pro-max, context7 | — | ~4200t |
|
||||
| CLI tool / library | superpowers | all toggles | ~800t |
|
||||
| Multi-session large feature | superpowers + gsd v2 CLI (external) | ruflo | ~800t CC |
|
||||
| Multi-session large feature | superpowers + gsd v2 CLI (external) | — | ~800t CC |
|
||||
| Quick fix / hotfix | superpowers | all toggles | ~800t |
|
||||
| Design system / component lib | superpowers, frontend-design, ui-ux-pro-max | gstack, ruflo, gsd | ~1600t |
|
||||
| Enterprise multi-agent | superpowers, ruflo + gsd v2 CLI (external) | others | ~2300t CC |
|
||||
| Design system / component lib | superpowers, ui-ux-pro-max | gstack, gsd | ~1200t |
|
||||
| Enterprise multi-agent | superpowers + gsd v2 CLI (external) | others | ~800t CC |
|
||||
|
||||
> *context7 only if using fast-evolving libs (Next.js, React 18+, Prisma, Supabase)
|
||||
> security-guidance and rtk are ALWAYS ON (0 tokens) — omitted from estimates
|
||||
@ -449,10 +440,8 @@ Run `/plugin-check` anytime to get a recommendation for the current project type
|
||||
| **Superpowers** | ✅ REQUIRED | ~600–1000 tokens | — required by orchestrators | superpowers-marketplace |
|
||||
| **GStack** | 🔄 TOGGLE | ~2500–3000 tokens | Full-product: UI + design + deploy + browser QA | git submodule |
|
||||
| **GSD v2** | 🖥️ CLI | 0 tokens (external CLI) | Multi-day features, crash recovery, cost tracking, parallel workers | npm (pinned in plugins.lock.json) |
|
||||
| **ruflo** | ⚫ OFF (disabled) | ~500–1500 tokens | Enterprise multi-agent swarm (5+ concurrent agents) | npm (CLI) |
|
||||
| **plugin-dev** | 🔄 TOGGLE | ~100 tokens | Creating plugins or custom skills | claude-code-plugins |
|
||||
| **pr-review-toolkit** | 🔄 TOGGLE | ~300 tokens | PR review sessions | claude-code-plugins |
|
||||
| **frontend-design** | 🔄 TOGGLE | ~200 tokens | Any project with a UI | claude-code-plugins |
|
||||
| **ui-ux-pro-max** | 🔄 TOGGLE | ~400 tokens | Design system, color/typography choices | ui-ux-pro-max-skill |
|
||||
| **Context7 CLI** | 🔄 TOGGLE | ~200 tokens | Fast-evolving libs (Next.js, React, Prisma…) | npm (ctx7 CLI) |
|
||||
|
||||
@ -467,7 +456,7 @@ Plugins are installed from GitHub-hosted marketplaces. Three are used by this co
|
||||
| Marketplace | GitHub repo | Plugins | Auto-available |
|
||||
|---|---|---|---|
|
||||
| `claude-plugins-official` | `anthropics/claude-plugins-official` | Anthropic-curated third-party plugins | ✅ yes |
|
||||
| `claude-code-plugins` | `anthropics/claude-code` | Anthropic bundled plugins (security-guidance, frontend-design, pr-review-toolkit, plugin-dev) | ❌ add manually |
|
||||
| `claude-code-plugins` | `anthropics/claude-code` | Anthropic bundled plugins (security-guidance, pr-review-toolkit, plugin-dev) | ❌ add manually |
|
||||
| `superpowers-marketplace` | `obra/superpowers-marketplace` | Superpowers workflow plugin | ❌ add manually |
|
||||
| `ui-ux-pro-max-skill` | `nextlevelbuilder/ui-ux-pro-max-skill` | UI/UX Pro Max design plugin | ❌ add manually |
|
||||
|
||||
@ -479,7 +468,7 @@ Plugins are installed from GitHub-hosted marketplaces. Three are used by this co
|
||||
claude plugin marketplace add anthropics/claude-code
|
||||
|
||||
# Install a plugin from it
|
||||
claude plugin install --scope user frontend-design@claude-code-plugins
|
||||
claude plugin install --scope user pr-review-toolkit@claude-code-plugins
|
||||
|
||||
# Browse all available plugins
|
||||
/plugin # → Discover tab
|
||||
@ -493,7 +482,6 @@ Non-marketplace tools are pinned in `plugins.lock.json`:
|
||||
{
|
||||
"rtk": { "source": "https://github.com/rtk-ai/rtk", "version": "v0.34.3" },
|
||||
"gsd": { "source": "npm:gsd-pi", "version": "2.64.0" },
|
||||
"ruflo": { "source": "npm:ruflo", "version": "3.5.58" },
|
||||
"ctx7": { "source": "npm:ctx7", "version": "latest" },
|
||||
"graphifyy": { "source": "pypi:graphifyy", "managed_by": "pipx" },
|
||||
"emil-design-eng": { "source": "https://github.com/emilkowalski/skill", "managed_by": "curl" }
|
||||
@ -597,7 +585,7 @@ cp "$CONF/templates/project-CLAUDE.md" CLAUDE.md
|
||||
# From the repo directory
|
||||
bash update-all.sh
|
||||
# Updates Claude CLI, pulls config, prompts before updating GStack (tracks main),
|
||||
# updates RTK + GSD v2 (pinned), updates ruflo if installed, updates ctx7 + graphifyy,
|
||||
# updates RTK + GSD v2 (pinned), updates ctx7 + graphifyy,
|
||||
# refreshes marketplace plugins, refreshes symlinks, runs doctor
|
||||
```
|
||||
|
||||
@ -608,7 +596,7 @@ git pull # this repo — symlinks make changes active immediately
|
||||
bash link.sh # refresh symlinks if needed
|
||||
```
|
||||
|
||||
All third-party tools (RTK, GSD v2, ruflo, GStack, ctx7, marketplace plugins) are updated
|
||||
All third-party tools (RTK, GSD v2, GStack, ctx7, marketplace plugins) are updated
|
||||
automatically by `update-all.sh`. Versions are pinned in `plugins.lock.json`.
|
||||
|
||||
---
|
||||
@ -703,7 +691,7 @@ make new-skill name=myskill # scaffold agent + skill files
|
||||
```
|
||||
|
||||
`doctor.sh` checks 7 axes: symlinks, GStack submodule (with pinning warning), prerequisites
|
||||
(git, Node, Cargo, Python, Claude Code), plugins (RTK, Superpowers, Context7, GSD v2, ruflo),
|
||||
(git, Node, Cargo, Python, Claude Code), plugins (RTK, Superpowers, Context7, GSD v2),
|
||||
permissions (deny count, bypass mode), token budget (breakdown vs Pro session budget), and
|
||||
config consistency (frontmatter, CRLF detection).
|
||||
|
||||
|
||||
18
USAGE.md
18
USAGE.md
@ -130,12 +130,10 @@ Tu veux...
|
||||
```
|
||||
Toujours actifs (0 token) : security-guidance, rtk
|
||||
|
||||
Projet avec interface → frontend-design ON
|
||||
Design élaboré/system → ui-ux-pro-max ON
|
||||
Deploy + QA browser → gstack ON
|
||||
Next.js/React/Prisma → context7 ON (WARN si absent, pas BLOCK)
|
||||
Multi-session (>1 jour) → gsd v2 CLI (gsd dans terminal)
|
||||
Swarm 5+ agents parallèles → ruflo ON
|
||||
|
||||
Backend/CLI seulement → tout OFF sauf superpowers
|
||||
Hotfix/quick fix → tout OFF sauf superpowers
|
||||
@ -276,7 +274,6 @@ cd mon-projet-existant/
|
||||
/plugin-check "App mobile React Native Expo liste de courses, offline-first, SQLite, notifications push"
|
||||
|
||||
→ SIGNALS: frontend (mobile), fast-libs (Expo SDK)
|
||||
→ ENABLE: frontend-design (composants RN)
|
||||
→ WARN: context7 si Expo SDK 51+ utilisé (fast-libs)
|
||||
→ OFF: gstack (mobile, pas de browser QA), ui-ux-pro-max (optionnel)
|
||||
→ BLOCKING: none
|
||||
@ -354,7 +351,6 @@ gsd
|
||||
/plugin-check "Site vitrine Next.js 14 studio photo, design élaboré, animations Framer Motion, galerie, dark mode, SEO"
|
||||
|
||||
→ SIGNALS: frontend, design-system, fast-libs(Next.js)
|
||||
→ ENABLE: frontend-design (~200t)
|
||||
→ ENABLE: ui-ux-pro-max (~400t) — "design élaboré" signal fort
|
||||
→ WARN: context7 non configuré → taper "force" pour continuer (ou configurer avant)
|
||||
→ OFF: gstack (vitrine statique, pas de deploy complexe)
|
||||
@ -408,7 +404,7 @@ Sans ui-ux-pro-max : "Tailwind avec palette neutre, Inter". La différence est v
|
||||
/plugin-check "Jeu de puzzle web React + FastAPI + PostgreSQL. Auth JWT, collection de cartes, boutique in-app, leaderboard. Multi-session, dev sur plusieurs semaines."
|
||||
|
||||
→ SIGNALS: frontend, fast-libs(React), deploy, multi-session
|
||||
→ ENABLE: frontend-design, context7
|
||||
→ ENABLE: context7
|
||||
→ ENABLE: ui-ux-pro-max (cartes visuelles, cohérence design)
|
||||
→ CLI: gsd v2 RECOMMANDÉ (multi-session détecté)
|
||||
→ OPTIONAL: gstack si deploy CI + browser QA prévus
|
||||
@ -507,7 +503,7 @@ ONBOARD COMPLETE: mycli
|
||||
/plugin-check "Rust CLI, pas de frontend, pas de deploy"
|
||||
|
||||
→ SIGNALS: none (CLI pur)
|
||||
→ DISABLE: frontend-design, ui-ux-pro-max, gstack, context7
|
||||
→ DISABLE: ui-ux-pro-max, gstack, context7
|
||||
→ KEEP: superpowers
|
||||
→ COST: ~800t (minimal)
|
||||
→ ACTION REQUIRED? NO
|
||||
@ -570,7 +566,7 @@ DO NOT TOUCH:
|
||||
|
||||
→ SIGNALS: none (CLI pur, pas de deploy, pas de frontend)
|
||||
→ KEEP: superpowers
|
||||
→ DISABLE: frontend-design, ui-ux-pro-max, gstack, context7, ruflo
|
||||
→ DISABLE: ui-ux-pro-max, gstack, context7
|
||||
→ COST: ~800t (base seulement)
|
||||
→ ACTION REQUIRED? NO
|
||||
```
|
||||
@ -783,7 +779,7 @@ PROJECT STATUS
|
||||
|
||||
CONFIG
|
||||
Version : v2.5.0
|
||||
Plugins ON: superpowers, frontend-design, context7 (~1200t)
|
||||
Plugins ON: superpowers, context7 (~1000t)
|
||||
GSD v2 : installed (2.64.0)
|
||||
|
||||
PROJECT
|
||||
@ -882,7 +878,7 @@ COST: ~800t (superpowers seul)
|
||||
|
||||
RECOMMENDATIONS:
|
||||
OK KEEP : superpowers (peut être utile pour brainstorm initial)
|
||||
DISABLE : frontend-design, ui-ux-pro-max, gstack, context7, ruflo
|
||||
DISABLE : ui-ux-pro-max, gstack, context7
|
||||
NOTE : Pour un firmware vraiment simple (hotfix, modification ciblée),
|
||||
même superpowers peut être désactivé → ~0t passif
|
||||
```
|
||||
@ -948,14 +944,12 @@ STEP 4 — IMPLEMENT (subagents légers, modifications chirurgicales)
|
||||
```
|
||||
Description contient... → Plugin
|
||||
─────────────────────────────────────────────────────
|
||||
React / Vue / Svelte → frontend-design ON
|
||||
Next.js 13+ / App Router → context7 WARN
|
||||
Prisma / Supabase → context7 ON
|
||||
"design élaboré" / tokens → ui-ux-pro-max ON
|
||||
Docker + QA browser → gstack ON
|
||||
"plusieurs semaines" → gsd v2 CLI
|
||||
"5+ agents parallèles" → ruflo ON
|
||||
Rust / Python / Go / C → tout OFF sauf superpowers
|
||||
Mobile / Flutter / RN → frontend-design ON, gstack OFF
|
||||
Mobile / Flutter / RN → gstack OFF
|
||||
Hotfix / script rapide → tout OFF sauf superpowers
|
||||
```
|
||||
|
||||
@ -21,9 +21,6 @@ claude plugin list 2>/dev/null || echo "plugin-list-unavailable"
|
||||
# GStack skills count (toggle CC plugin)
|
||||
ls $HOME/.claude/skills/gstack/skills/ 2>/dev/null | wc -l || echo "0"
|
||||
|
||||
# Ruflo CLI
|
||||
command -v ruflo &>/dev/null && ruflo --version 2>/dev/null | head -1 || echo "ruflo-not-installed"
|
||||
|
||||
# Context7 CLI
|
||||
command -v ctx7 &>/dev/null && ctx7 --version 2>/dev/null | head -1 || echo "ctx7-not-installed"
|
||||
|
||||
@ -94,7 +91,7 @@ Factors (weighted):
|
||||
_Examples: blog with auth, dashboard with charts, API with validation._
|
||||
- **60-85% (complex)**: + gstack if browser-QA, + gsd if multi-session, + graphify both passes.
|
||||
_Examples: SaaS with billing, game with social features, e-commerce._
|
||||
- **85-100% (enterprise)**: all tools justified. Consider ruflo only if explicitly requested.
|
||||
- **85-100% (enterprise)**: all tools justified.
|
||||
_Examples: multi-service platform, real-time collab app, marketplace._
|
||||
|
||||
Output: `COMPLEXITY: <score>% — <label>` with one-line justification.
|
||||
@ -131,7 +128,6 @@ After presenting RECOMMENDATIONS, if any plugin has ⚡ ENABLE status:
|
||||
PROPOSED CHANGES:
|
||||
⚡ Enable ui-ux-pro-max (frontend detected, complexity 65%)
|
||||
⚡ Pre-fetch ctx7 docs for next.js, prisma
|
||||
⚠️ Disable ruflo (not needed, saves ~1000t)
|
||||
Apply these changes? (yes / no / customize)
|
||||
```
|
||||
2. On "yes" → apply changes (rename .disabled dirs, update MCP config).
|
||||
@ -146,23 +142,21 @@ After presenting RECOMMENDATIONS, if any plugin has ⚡ ENABLE status:
|
||||
|
||||
| Signal | Enable / Use | Disable / Skip | Notes |
|
||||
|---|---|---|---|
|
||||
| `frontend` | frontend-design, ui-ux-pro-max | — | Both complement each other |
|
||||
| `mobile` (React Native/Expo/Flutter) | frontend-design | gstack (no browser QA), Docker N/A | ui-ux-pro-max optional |
|
||||
| `frontend` | ui-ux-pro-max | — | UI design and polish |
|
||||
| `mobile` (React Native/Expo/Flutter) | — | gstack (no browser QA), Docker N/A | ui-ux-pro-max optional |
|
||||
| `monorepo` | per-package plugin recommendations | avoid recommending gstack for whole repo if only one package has browser QA | Specify which plugin applies to which package |
|
||||
| `design-system` | frontend-design, ui-ux-pro-max | — | High overlap but both useful |
|
||||
| `design-system` | ui-ux-pro-max | — | Design tokens, theme, Storybook |
|
||||
| `deploy` + `browser-qa` | gstack | — | Full-product workflow |
|
||||
| `multi-session` | gsd v2 CLI | — | Run `gsd` in terminal, not CC plugin |
|
||||
| `fast-libs` | context7 | — | Doc freshness critical |
|
||||
| `multi-agent` + `complex-arch` | gsd v2 CLI | ruflo (unless explicitly requested) | GSD v2 preferred; ruflo only on explicit user request |
|
||||
| `simple` / single-session | — | gsd, gstack, ruflo, ui-ux-pro-max | Saves ~3000-5000t |
|
||||
| `multi-agent` + `complex-arch` | gsd v2 CLI | — | GSD v2 preferred for multi-session coordination |
|
||||
| `simple` / single-session | — | gsd, gstack, ui-ux-pro-max | Saves ~3000-5000t |
|
||||
| `embedded` / firmware | — | all toggles; superpowers optional | workflow: /analyze → /hotfix or /bugfix or /ship-feature |
|
||||
| backend/lib/CLI only | — | frontend-design, ui-ux-pro-max, gstack | ~3100t saved |
|
||||
| small project / hotfix | — | gstack, ruflo, gsd | Use /hotfix, /bugfix, or /feat |
|
||||
| backend/lib/CLI only | — | ui-ux-pro-max, gstack | ~3100t saved |
|
||||
| small project / hotfix | — | gstack, gsd | Use /hotfix, /bugfix, or /feat |
|
||||
|
||||
**GSD v2 note:** `gsd-pi` is a standalone CLI (Pi SDK), not a Claude Code plugin. Zero passive token cost in CC sessions. Recommend when: feature > 1 day, multiple isolated context windows needed, crash recovery, cost tracking, or parallel workers. Usage: `gsd` in terminal → `/gsd auto`.
|
||||
|
||||
**Ruflo note:** `ruflo` is a heavy CLI tool (310+ tools, ~500-1500t passive when hooks active). Only recommend when the project explicitly requires coordinating 5+ specialized agents simultaneously or swarm/parallel-orchestration architecture. For standard multi-session work, GSD v2 is sufficient and lighter. Install: `npm install -g ruflo@latest --omit=optional`. Init: `ruflo init --wizard`.
|
||||
|
||||
### Skill routing by task size
|
||||
|
||||
When the plugin-advisor detects a `simple` or `hotfix` signal, suggest the appropriate lightweight skill instead of heavy orchestrators:
|
||||
@ -185,16 +179,12 @@ When the plugin-advisor detects a `simple` or `hotfix` signal, suggest the appro
|
||||
|
||||
| Pair | Relation | Verdict |
|
||||
|---|---|---|
|
||||
| frontend-design ↔ ui-ux-pro-max | ⚠️ Overlap | Both do UI styling. Keep both for design-heavy projects; drop ui-ux-pro-max for simple UIs. ~600t combined. |
|
||||
| gstack ↔ gsd v2 | ✅ Complementary | GStack = full-product CC workflow. GSD v2 = multi-session CLI. Different scopes, no conflict. |
|
||||
| gstack ↔ ruflo | ⚠️ Overlap | Both orchestrate multi-step workflows. GStack is CC-native; ruflo is CLI swarm. High combined overhead (~3250-4250t). Use one or the other. |
|
||||
| gsd v2 ↔ ruflo | ⚠️ Overlap | GSD v2 = sequential session pipeline. Ruflo = parallel agent swarm. Pick one per project; ruflo only if genuinely parallel work needed. |
|
||||
| superpowers ↔ gsd v2 | ✅ Complementary | Superpowers = single-session execution. GSD v2 = multi-session CLI orchestration. No conflict. |
|
||||
| superpowers ↔ gstack | ✅ Complementary | Used together in /init-project and /ship-feature. Superpowers = engine, GStack = full-product skills. |
|
||||
| superpowers ↔ ruflo | ⚠️ Overlap | Both can orchestrate agent sub-tasks. Together only for advanced hybrid setups. |
|
||||
| context7 ↔ any | ✅ Independent | Doc lookup CLI (ctx7), no workflow overlap. Always safe to combine. |
|
||||
| plugin-dev ↔ superpowers | ⚠️ Minor overlap | Superpowers can create skills too. Keep plugin-dev only when actively building new plugins/skills. |
|
||||
| frontend-design ↔ gstack | ✅ Complementary | GStack = deploy/QA layer; frontend-design = UI quality layer. Different concerns. |
|
||||
| ui-ux-pro-max ↔ gstack | ✅ Complementary | GStack = deploy/QA layer; ui-ux-pro-max = UI quality layer. Different concerns. |
|
||||
| pr-review-toolkit ↔ superpowers | ✅ Complementary | superpowers:requesting-code-review and /pr-review-toolkit:review-pr cover different review styles. |
|
||||
| rtk ↔ any | ✅ Independent | Hook-only token compression. Zero interaction with any plugin. |
|
||||
| security-guidance ↔ any | ✅ Independent | Hook-only security rules. Zero interaction. |
|
||||
@ -203,15 +193,15 @@ When the plugin-advisor detects a `simple` or `hotfix` signal, suggest the appro
|
||||
|
||||
| Project type | Plugins ON | OFF | Passive cost |
|
||||
|---|---|---|---|
|
||||
| Backend API / microservice | superpowers, context7 (if fast libs) | frontend-design, ui-ux-pro-max, gstack, ruflo | ~800t |
|
||||
| Frontend SPA / SSR | superpowers, frontend-design, ui-ux-pro-max, context7 | gstack, ruflo | ~1600t |
|
||||
| Full-stack SaaS | superpowers, gstack, frontend-design, ui-ux-pro-max, context7 | ruflo | ~4400t |
|
||||
| Backend API / microservice | superpowers, context7 (if fast libs) | ui-ux-pro-max, gstack | ~800t |
|
||||
| Frontend SPA / SSR | superpowers, ui-ux-pro-max, context7 | gstack | ~1400t |
|
||||
| Full-stack SaaS | superpowers, gstack, ui-ux-pro-max, context7 | — | ~4200t |
|
||||
| CLI tool / library | superpowers | all toggles | ~800t |
|
||||
| Multi-session large feature | superpowers + gsd v2 CLI (external) | ruflo (unless parallel) | ~800t CC |
|
||||
| Multi-session large feature | superpowers + gsd v2 CLI (external) | — | ~800t CC |
|
||||
| Quick fix / hotfix | superpowers | all toggles | ~800t |
|
||||
| Design system / component lib | superpowers, frontend-design, ui-ux-pro-max | gstack, ruflo, gsd | ~1600t |
|
||||
| Fast-evolving libs (Next.js etc.) | superpowers, context7, frontend-design | ruflo | ~1200t |
|
||||
| Enterprise multi-agent orchestration | superpowers + gsd v2 (external) | ruflo (unless explicit), plugin-dev | ~800t CC |
|
||||
| Design system / component lib | superpowers, ui-ux-pro-max | gstack, gsd | ~1200t |
|
||||
| Fast-evolving libs (Next.js etc.) | superpowers, context7 | — | ~1000t |
|
||||
| Enterprise multi-agent orchestration | superpowers + gsd v2 (external) | plugin-dev | ~800t CC |
|
||||
|
||||
> security-guidance and rtk are ALWAYS ON (0 tokens) — omitted from cost estimates for clarity.
|
||||
|
||||
@ -219,7 +209,6 @@ When the plugin-advisor detects a `simple` or `hotfix` signal, suggest the appro
|
||||
|
||||
```
|
||||
RULE: IF "mobile" signal (React Native/Expo/Flutter detected):
|
||||
→ frontend-design ON (~200t) — mobile UI components
|
||||
→ gstack OFF — no browser QA on mobile
|
||||
→ Docker NOT relevant — no server-side containerization for mobile
|
||||
→ ui-ux-pro-max OPTIONAL (~400t) — only if design system complexity is high
|
||||
@ -227,14 +216,12 @@ RULE: IF "mobile" signal (React Native/Expo/Flutter detected):
|
||||
RULE: IF "monorepo" signal detected:
|
||||
→ scan each top-level package individually for frontend/deploy/fast-libs signals
|
||||
→ recommend plugins per-package, NOT for the whole repo
|
||||
→ if only apps/web/ has frontend: enable frontend-design for web package only
|
||||
→ if only apps/api/ has deploy: gstack only if apps/api/ has browser QA too
|
||||
→ NOTE in output: "Plugin X recommended for apps/web/ — disable for apps/api/"
|
||||
→ passive cost estimate = highest-cost package profile (other packages add nothing)
|
||||
|
||||
RULE: IF "frontend" signal OR .tsx/.jsx count > 0:
|
||||
→ frontend-design ON (~200t)
|
||||
→ ui-ux-pro-max ON if "design-system" signal (~400t additional)
|
||||
→ ui-ux-pro-max ON if "design-system" signal (~400t)
|
||||
|
||||
RULE: IF "deploy" AND "browser-qa" signals:
|
||||
→ gstack ON (~2750t) — full-product workflow
|
||||
@ -248,24 +235,18 @@ RULE: IF "fast-libs" (Next.js/React 18+/Prisma/Supabase/Drizzle):
|
||||
|
||||
RULE: IF "multi-agent" AND "complex-arch":
|
||||
→ gsd v2 CLI recommended (0t passive, multi-session coordination)
|
||||
→ ruflo CLI OFF by default — only enable if user explicitly requests swarm/parallel orchestration
|
||||
→ IF user explicitly requests ruflo AND gstack also ON: WARN overlap (~3250-4250t combined)
|
||||
|
||||
RULE: IF "simple" OR "hotfix":
|
||||
→ Disable all toggles. ~800t base only.
|
||||
|
||||
RULE: IF "embedded" signal (firmware, bare-metal, microcontroller, or Makefile+C without Node/Rust/Go):
|
||||
→ Disable ALL toggles including gstack, context7, ruflo, plugin-dev
|
||||
→ Disable ALL toggles including gstack, context7, plugin-dev
|
||||
→ superpowers OPTIONAL: useful for initial design brainstorm on complex drivers,
|
||||
but unnecessary for single-function patches — user decides
|
||||
→ GSD v2 CLI: not recommended (sessions are short, tasks are atomic)
|
||||
→ Recommend workflow: /analyze <file> → /hotfix (patch) or /bugfix (investigation) or /ship-feature (multi-file)
|
||||
→ NOTE: print "embedded project detected — minimal plugin footprint recommended"
|
||||
|
||||
RULE: IF gstack ON AND ruflo ON:
|
||||
→ WARN: functional overlap on multi-step orchestration
|
||||
→ Suggest: gstack for CC-native workflow, ruflo only if parallel swarm needed
|
||||
|
||||
RULE: IF plugin-dev ON AND no `skill-creation` signal detected:
|
||||
→ WARN: plugin-dev active but no skill-creation signal (~100t saved if disabled)
|
||||
→ Disable unless you're actively building custom plugins or skills
|
||||
@ -279,14 +260,11 @@ RULE: IF `browser-qa` signal (e2e tests, Playwright/Cypress/Puppeteer in deps):
|
||||
→ context7 OPTIONAL (depends on framework version)
|
||||
|
||||
RULE: IF `design-system` signal (tokens, theme files, Storybook present):
|
||||
→ frontend-design ON (~200t)
|
||||
→ ui-ux-pro-max ON (~400t)
|
||||
→ WARN if both are OFF with this signal: significant design gap
|
||||
→ WARN if OFF with this signal: significant design gap
|
||||
|
||||
RULE: IF `complex-arch` signal (multiple services, event bus, distributed system):
|
||||
→ ruflo CLI ON (~500-1500t)
|
||||
→ gsd v2 CLI recommended for multi-session coordination
|
||||
→ IF gstack also ON: WARN combined cost ~3250-4250t — consider disabling one
|
||||
```
|
||||
|
||||
---
|
||||
@ -294,14 +272,11 @@ RULE: IF `complex-arch` signal (multiple services, event bus, distributed system
|
||||
## BLOCK if
|
||||
|
||||
- Superpowers not active → install: `claude plugin marketplace add obra/superpowers-marketplace && claude plugin install --scope user superpowers@superpowers-marketplace`
|
||||
- Significant frontend signal + frontend-design AND ui-ux-pro-max both off
|
||||
- Full-product (UI+deploy+QA) + gstack not installed
|
||||
|
||||
## WARN (no block)
|
||||
|
||||
- Active toggle plugins not needed for this task (dead passive cost)
|
||||
- gstack ON + ruflo ON simultaneously (overlap, ~3250-4250t)
|
||||
- ruflo ON with no multi-agent signal detected
|
||||
- Multi-session feature + `gsd` CLI not installed → `npm install -g gsd-pi`
|
||||
- Total passive cost > 50% of plan budget (Pro: ~5500t, Max: ~10000t, Free: ~2500t)
|
||||
- **Next.js/React 18+/Prisma/Supabase detected + context7 not configured**
|
||||
|
||||
@ -174,12 +174,6 @@ else
|
||||
info "GSD v2 not installed (optional — run: npm install -g gsd-pi)"
|
||||
fi
|
||||
|
||||
if detect_ruflo; then
|
||||
pass "Ruflo CLI installed ($(ruflo --version 2>/dev/null | head -1 || echo 'installed'))"
|
||||
else
|
||||
info "Ruflo CLI not installed (optional — enterprise multi-agent: npm install -g ruflo@latest --omit=optional)"
|
||||
fi
|
||||
|
||||
if detect_graphifyy; then
|
||||
pass "Graphifyy installed (graphify CLI)"
|
||||
else
|
||||
@ -248,10 +242,8 @@ SKILL_COUNT=$(find "$HOME/.claude/skills/" -maxdepth 2 -name "SKILL.md" 2>/dev/n
|
||||
PLUGIN_TOKENS=0
|
||||
if detect_superpowers 2>/dev/null; then PLUGIN_TOKENS=$((PLUGIN_TOKENS + 800)); fi
|
||||
if detect_gstack 2>/dev/null; then PLUGIN_TOKENS=$((PLUGIN_TOKENS + 2750)); fi
|
||||
if detect_frontend_design 2>/dev/null; then PLUGIN_TOKENS=$((PLUGIN_TOKENS + 200)); fi
|
||||
if detect_uiux_pro_max 2>/dev/null; then PLUGIN_TOKENS=$((PLUGIN_TOKENS + 400)); fi
|
||||
if detect_context7 2>/dev/null; then PLUGIN_TOKENS=$((PLUGIN_TOKENS + 200)); fi
|
||||
if detect_ruflo 2>/dev/null; then PLUGIN_TOKENS=$((PLUGIN_TOKENS + 1000)); fi
|
||||
if detect_graphifyy 2>/dev/null; then PLUGIN_TOKENS=$((PLUGIN_TOKENS + 300)); fi
|
||||
|
||||
TOTAL_TOKENS=$((CLAUDE_MD_TOKENS + SKILL_DESC_TOKENS + PLUGIN_TOKENS))
|
||||
|
||||
@ -48,11 +48,10 @@ unset _lib
|
||||
TOGGLE_ACTIVE=()
|
||||
TOGGLE_INACTIVE=()
|
||||
|
||||
for plugin in gstack uiux_pro_max frontend_design plugin_dev context7 ruflo graphifyy; do
|
||||
for plugin in gstack uiux_pro_max plugin_dev context7 graphifyy; do
|
||||
# Map function name to display name
|
||||
case "$plugin" in
|
||||
uiux_pro_max) display="ui-ux-pro-max" ;;
|
||||
frontend_design) display="frontend-design" ;;
|
||||
plugin_dev) display="plugin-dev" ;;
|
||||
*) display="$plugin" ;;
|
||||
esac
|
||||
@ -104,10 +103,8 @@ detect_superpowers 2>/dev/null && _passive_t=$((_passive_t + 800))
|
||||
declare -A _plugin_costs=(
|
||||
[gstack]=2750
|
||||
[ui-ux-pro-max]=400
|
||||
[frontend-design]=200
|
||||
[plugin-dev]=100
|
||||
[context7]=200
|
||||
[ruflo]=1000
|
||||
[graphifyy]=300
|
||||
)
|
||||
for _p in "${TOGGLE_ACTIVE[@]}"; do
|
||||
|
||||
@ -286,41 +286,11 @@ fi
|
||||
echo ""
|
||||
|
||||
# ============================================================
|
||||
# STEP 5 — RUFLO CLI (enterprise multi-agent orchestration)
|
||||
# ============================================================
|
||||
# Ruflo (formerly claude-flow) is an enterprise multi-agent orchestration CLI.
|
||||
# 310+ tools, 100+ agent types, WASM kernel, self-learning architecture.
|
||||
# Use only for projects requiring complex multi-agent coordination.
|
||||
# Default install ~340MB. Minimal: npm install -g ruflo@latest --omit=optional (~15s)
|
||||
echo "── Step 5: Ruflo CLI ──────────────────────────────────────"
|
||||
echo ""
|
||||
if detect_ruflo; then
|
||||
ok "Ruflo CLI already installed ($(ruflo --version 2>/dev/null | head -1 || echo 'installed'))"
|
||||
else
|
||||
RUFLO_VER=$(pinned_version "ruflo")
|
||||
if [ "$RUFLO_VER" != "latest" ]; then
|
||||
info "Installing ruflo@${RUFLO_VER} (pinned, minimal --omit=optional)..."
|
||||
npm install -g "ruflo@${RUFLO_VER}" --omit=optional
|
||||
else
|
||||
info "Installing ruflo@latest (minimal --omit=optional)..."
|
||||
npm install -g ruflo@latest --omit=optional
|
||||
fi
|
||||
command -v ruflo &>/dev/null && ok "Ruflo CLI installed ($(ruflo --version 2>/dev/null | head -1))" \
|
||||
|| err "Ruflo install failed — run manually: npm install -g ruflo@latest --omit=optional"
|
||||
fi
|
||||
if command -v ruflo &>/dev/null; then
|
||||
info "Init in a project: ruflo init --wizard"
|
||||
info "Spawn agent: ruflo agent spawn -t coder"
|
||||
info "Start swarm: ruflo swarm init"
|
||||
info "Diagnostics: ruflo doctor"
|
||||
fi
|
||||
|
||||
# ============================================================
|
||||
# STEP 6 — MARKETPLACE PLUGINS (user scope, explicit)
|
||||
# STEP 5 — MARKETPLACE PLUGINS (user scope, explicit)
|
||||
# ============================================================
|
||||
# All claude plugin install commands use --scope user to ensure
|
||||
# they install to ~/.claude/plugins/ regardless of working directory.
|
||||
echo "── Step 6: Marketplace plugins (scope: user) ────────────────"
|
||||
echo "── Step 5: Marketplace plugins (scope: user) ────────────────"
|
||||
echo ""
|
||||
|
||||
install_plugin() {
|
||||
@ -349,7 +319,6 @@ install_plugin "security-guidance" "claude-code-plugins"
|
||||
# skill-creator is in "example-skills" plugin from anthropics/skills marketplace
|
||||
# (not in claude-code marketplace — it's a separate repo)
|
||||
install_plugin "example-skills" "anthropic-agent-skills"
|
||||
# install_plugin "frontend-design" "claude-code-plugins"
|
||||
install_plugin "pr-review-toolkit" "claude-code-plugins"
|
||||
install_plugin "plugin-dev" "claude-code-plugins"
|
||||
|
||||
@ -370,9 +339,9 @@ install_plugin "ui-ux-pro-max" "ui-ux-pro-max-skill"
|
||||
echo ""
|
||||
|
||||
# ============================================================
|
||||
# STEP 7 — CONTEXT7 CLI (ctx7)
|
||||
# STEP 6 — CONTEXT7 CLI (ctx7)
|
||||
# ============================================================
|
||||
echo "── Step 7: Context7 CLI ─────────────────────────────────────"
|
||||
echo "── Step 6: Context7 CLI ─────────────────────────────────────"
|
||||
echo ""
|
||||
if command -v ctx7 &>/dev/null; then
|
||||
ok "ctx7 already installed ($(ctx7 --version 2>/dev/null | head -1 || echo 'installed'))"
|
||||
@ -396,9 +365,9 @@ if command -v ctx7 &>/dev/null; then
|
||||
fi
|
||||
|
||||
# ============================================================
|
||||
# STEP 8 — GRAPHIFYY (codebase knowledge graph)
|
||||
# STEP 7 — GRAPHIFYY (codebase knowledge graph)
|
||||
# ============================================================
|
||||
echo "── Step 8: Graphifyy — Knowledge Graph ──────────────────────"
|
||||
echo "── Step 7: Graphifyy — Knowledge Graph ──────────────────────"
|
||||
echo ""
|
||||
if command -v graphify &>/dev/null; then
|
||||
ok "graphify already installed"
|
||||
@ -418,9 +387,9 @@ fi
|
||||
echo ""
|
||||
|
||||
# ============================================================
|
||||
# STEP 9 — EMIL DESIGN ENG (UI polish / animation skill)
|
||||
# STEP 8 — EMIL DESIGN ENG (UI polish / animation skill)
|
||||
# ============================================================
|
||||
echo "── Step 9: Emil Design Engineering ─────────────────────────"
|
||||
echo "── Step 8: Emil Design Engineering ─────────────────────────"
|
||||
echo ""
|
||||
EMIL_DIR="$REPO/skills-external/emil-design-eng"
|
||||
EMIL_URL="https://raw.githubusercontent.com/emilkowalski/skill/main/skills/emil-design-eng/SKILL.md"
|
||||
@ -442,9 +411,9 @@ fi
|
||||
echo ""
|
||||
|
||||
# ============================================================
|
||||
# STEP 10 — SHELL CONFIG (alias + env vars)
|
||||
# STEP 9 — SHELL CONFIG (alias + env vars)
|
||||
# ============================================================
|
||||
echo "── Step 10: Claude Code shell config (alias + env vars) ────"
|
||||
echo "── Step 9: Claude Code shell config (alias + env vars) ─────"
|
||||
echo ""
|
||||
|
||||
# Detect shell profile
|
||||
@ -506,10 +475,8 @@ echo " 🔄 gstack — ~/.claude/skills/gstack/ (→ submodule)"
|
||||
echo " 🔄 gsd v2 — standalone CLI 'gsd' (gsd-pi, not a Claude Code plugin)"
|
||||
echo " 🔄 plugin-dev — create plugins/skills (~100 tokens) [claude-code-plugins]"
|
||||
echo " 🔄 pr-review-toolkit — /pr-review-toolkit:review-pr (~300 tokens) [claude-code-plugins]"
|
||||
echo " 🔄 frontend-design — UI design skill (~200 tokens) [claude-code-plugins]"
|
||||
echo " 🔄 ui-ux-pro-max — user scope (~400 tokens)"
|
||||
echo " 🔄 context7 CLI — ctx7 (npm global, standalone or MCP setup)"
|
||||
echo " 🔄 ruflo CLI — enterprise multi-agent orchestration (~500-1500 tokens)"
|
||||
echo " 🔄 graphifyy — codebase knowledge graph (pipx, PreToolUse hook)"
|
||||
echo " 🔄 emil-design-eng — UI polish, animations, component craft (curl → symlink)"
|
||||
echo ""
|
||||
|
||||
@ -42,11 +42,6 @@ detect_gsd() {
|
||||
command -v gsd &>/dev/null
|
||||
}
|
||||
|
||||
detect_frontend_design() {
|
||||
local cache_dir="$HOME/.claude/plugins/cache"
|
||||
[ -d "$cache_dir" ] && ls "$cache_dir" 2>/dev/null | grep -qi "frontend-design"
|
||||
}
|
||||
|
||||
detect_plugin_dev() {
|
||||
# plugin-dev replaces the old "skill-creator" reference
|
||||
local cache_dir="$HOME/.claude/plugins/cache"
|
||||
@ -63,11 +58,6 @@ detect_context7() {
|
||||
command -v ctx7 &>/dev/null
|
||||
}
|
||||
|
||||
detect_ruflo() {
|
||||
# Ruflo CLI — installed globally via npm
|
||||
command -v ruflo &>/dev/null
|
||||
}
|
||||
|
||||
detect_graphifyy() {
|
||||
# Graphifyy — codebase knowledge graph, installed via pipx
|
||||
command -v graphify &>/dev/null
|
||||
|
||||
@ -15,11 +15,6 @@
|
||||
"managed_by": "git submodule",
|
||||
"note": "Version controlled by submodule pointer in .gitmodules. Update: git submodule update --remote"
|
||||
},
|
||||
"ruflo": {
|
||||
"source": "npm:ruflo",
|
||||
"version": "3.5.58",
|
||||
"note": "Enterprise multi-agent orchestration CLI (formerly claude-flow). Standalone CLI, not an MCP server. Check latest at https://www.npmjs.com/package/ruflo before updating."
|
||||
},
|
||||
"ctx7": {
|
||||
"source": "npm:ctx7",
|
||||
"version": "latest",
|
||||
|
||||
@ -140,35 +140,7 @@ else
|
||||
warn "GSD v2 not installed — skipping (run: npm install -g gsd-pi)"
|
||||
fi
|
||||
|
||||
# ── 5. Update Ruflo CLI (if installed) ──
|
||||
echo ""
|
||||
echo "── Updating Ruflo CLI..."
|
||||
if command -v ruflo &>/dev/null || (type detect_ruflo &>/dev/null && detect_ruflo); then
|
||||
RUFLO_VER=""
|
||||
if [ -f "$REPO/plugins.lock.json" ] && command -v python3 &>/dev/null; then
|
||||
RUFLO_VER=$(python3 -c "
|
||||
import json
|
||||
with open('$REPO/plugins.lock.json') as f:
|
||||
d = json.load(f)
|
||||
print(d.get('ruflo',{}).get('version',''))
|
||||
" 2>/dev/null || true)
|
||||
fi
|
||||
|
||||
if [ -n "$RUFLO_VER" ] && [ "$RUFLO_VER" != "latest" ]; then
|
||||
info "Pinned version: $RUFLO_VER"
|
||||
npm install -g "ruflo@${RUFLO_VER}" 2>/dev/null \
|
||||
&& ok "Ruflo updated to $RUFLO_VER" \
|
||||
|| warn "Ruflo update failed"
|
||||
else
|
||||
npm install -g ruflo@latest 2>/dev/null \
|
||||
&& ok "Ruflo updated (latest)" \
|
||||
|| warn "Ruflo update failed"
|
||||
fi
|
||||
else
|
||||
info "Ruflo not installed — skipping"
|
||||
fi
|
||||
|
||||
# ── 6. Update Context7 CLI ──
|
||||
# ── 5. Update Context7 CLI ──
|
||||
echo ""
|
||||
echo "── Updating Context7 CLI..."
|
||||
if command -v ctx7 &>/dev/null; then
|
||||
@ -196,7 +168,7 @@ else
|
||||
info "ctx7 not installed — skipping"
|
||||
fi
|
||||
|
||||
# ── 7. Update Graphifyy ──
|
||||
# ── 6. Update Graphifyy ──
|
||||
echo ""
|
||||
echo "── Updating Graphifyy..."
|
||||
if command -v graphify &>/dev/null; then
|
||||
@ -207,7 +179,7 @@ else
|
||||
info "graphifyy not installed — skipping"
|
||||
fi
|
||||
|
||||
# ── 8. Update Emil Design Engineering skill ──
|
||||
# ── 7. Update Emil Design Engineering skill ──
|
||||
echo ""
|
||||
echo "── Updating Emil Design Engineering..."
|
||||
EMIL_DIR="$REPO/skills-external/emil-design-eng"
|
||||
@ -222,7 +194,7 @@ else
|
||||
info "emil-design-eng not installed — skipping (run: make plugin)"
|
||||
fi
|
||||
|
||||
# ── 9. Update marketplace plugins ──
|
||||
# ── 8. Update marketplace plugins ──
|
||||
echo ""
|
||||
echo "── Updating marketplace plugins..."
|
||||
if command -v claude &>/dev/null; then
|
||||
@ -243,11 +215,11 @@ else
|
||||
warn "Claude Code not found — skipping plugin update"
|
||||
fi
|
||||
|
||||
# ── 10. Refresh symlinks ──
|
||||
# ── 9. Refresh symlinks ──
|
||||
echo ""
|
||||
echo "── Refreshing symlinks..."
|
||||
bash "$REPO/link.sh"
|
||||
|
||||
# ── 11. Run doctor ──
|
||||
# ── 10. Run doctor ──
|
||||
echo ""
|
||||
bash "$REPO/doctor.sh"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user