From windsurf-pack
Provides strategies to scale Windsurf AI IDE for large orgs (50+ devs) with monorepo partitioning, workspace sizing, config distribution, and performance tuning.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin windsurf-packThis skill is limited to using the following tools:
Strategies for deploying Windsurf AI IDE across large organizations (50-1000+ developers). Covers workspace partitioning for monorepos, configuration distribution, credit budgeting, and performance at scale.
Guides Windsurf workspace layouts for solo projects, monorepos, multi-services, and large teams up to 100+ developers.
Sets up Windsurf IDE workspaces with .windsurfrules for AI rules, editor settings.json, extensions, cross-editor configs, and team standards for projects and monorepos.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Share bugs, ideas, or general feedback.
Strategies for deploying Windsurf AI IDE across large organizations (50-1000+ developers). Covers workspace partitioning for monorepos, configuration distribution, credit budgeting, and performance at scale.
# Windsurf performance degrades with workspace size
# Cascade context quality inversely correlates with file count
workspace_sizing:
optimal: "<5,000 files — fast indexing, precise Cascade context"
acceptable: "5,000-20,000 files — add .codeiumignore, expect slower indexing"
problematic: "20,000+ files — must partition into sub-workspaces"
unworkable: "100,000+ files at root — Cascade context diluted, indexing very slow"
# Strategy: one Windsurf window per service/package
# Each developer opens their assigned service directory
# Large monorepo (100K+ files)
company-monorepo/
├── .windsurfrules # Brief shared conventions only
├── .codeiumignore # Aggressive: exclude EVERYTHING except src
├── apps/
│ ├── web-app/ # Developer A opens this window
│ │ ├── .windsurfrules # Next.js-specific AI context
│ │ └── .codeiumignore # Local exclusions
│ ├── mobile-app/ # Developer B opens this window
│ │ ├── .windsurfrules # React Native context
│ │ └── .codeiumignore
│ └── admin-portal/ # Developer C opens this window
│ ├── .windsurfrules
│ └── .codeiumignore
├── services/
│ ├── api-gateway/ # Backend team opens individual services
│ ├── auth-service/
│ ├── payment-service/
│ └── notification-service/
├── packages/
│ └── shared-types/ # Library maintainer opens this
└── infrastructure/
└── terraform/ # DevOps opens this
Rule: Never open the monorepo root in Windsurf. Each developer opens their service directory.
# Central config repo for team-wide standards
windsurf-config/
├── templates/
│ ├── windsurfrules/
│ │ ├── nextjs.md # Template for Next.js projects
│ │ ├── fastify.md # Template for Fastify APIs
│ │ ├── react-native.md # Template for mobile apps
│ │ └── shared-library.md # Template for shared packages
│ ├── codeiumignore/
│ │ ├── node-project.ignore
│ │ ├── python-project.ignore
│ │ └── go-project.ignore
│ └── workflows/
│ ├── deploy-staging.md
│ ├── pr-review.md
│ └── quality-check.md
├── scripts/
│ ├── setup-windsurf.sh # Onboarding script
│ └── sync-config.sh # Distribute updates
└── README.md
Sync script:
#!/bin/bash
set -euo pipefail
# scripts/sync-config.sh — run from monorepo root
TEMPLATE_DIR="/path/to/windsurf-config/templates"
for service_dir in apps/*/ services/*/; do
[ -d "$service_dir" ] || continue
SERVICE=$(basename "$service_dir")
# Copy .codeiumignore if missing
[ -f "$service_dir/.codeiumignore" ] || \
cp "$TEMPLATE_DIR/codeiumignore/node-project.ignore" "$service_dir/.codeiumignore"
# Copy shared workflows
mkdir -p "$service_dir/.windsurf/workflows"
cp "$TEMPLATE_DIR/workflows/"*.md "$service_dir/.windsurf/workflows/" 2>/dev/null || true
echo "Synced: $SERVICE"
done
# Credit planning for large teams
credit_budget:
team_size: 100
tier_allocation:
power_users: 20 # Pro: heavy Cascade users (senior devs, architects)
regular_users: 50 # Pro: daily Supercomplete + occasional Cascade
light_users: 20 # Free: reviewers, designers, PMs with code access
contractors: 10 # Free: temporary, limited AI needs
monthly_cost:
pro_seats: 70 x $30 = $2,100
free_seats: 30 x $0 = $0
total: $2,100/month
vs_alternative:
cursor_equivalent: 70 x $20 = $1,400 # But fewer features
copilot_equivalent: 100 x $19 = $1,900 # No agentic features
optimization:
quarterly_review: "Audit usage, downgrade inactive seats"
training_program: "Monthly 30-min workshop for new features"
workflow_investment: "Build team workflows to reduce per-user credit waste"
# IT/Network team requirements
network_config:
endpoints_to_whitelist:
- "*.codeium.com" # AI inference
- "*.windsurf.com" # Auth, updates, admin portal
- "windsurf.com" # Downloads, documentation
proxy_support:
http_proxy: "${HTTP_PROXY}"
https_proxy: "${HTTPS_PROXY}"
no_proxy: "localhost,127.0.0.1,.internal.company.com"
# Set via Windsurf Settings or environment variables
deployment_modes:
cloud: "Standard — code context sent to Codeium cloud"
hybrid: "Code stays local, only prompts sent to cloud"
self_hosted: "Everything on-prem (Enterprise plan required)"
#!/bin/bash
set -euo pipefail
# Large-team onboarding script
echo "=== Windsurf Team Onboarding ==="
# 1. Install Windsurf
if ! command -v windsurf &>/dev/null; then
echo "Installing Windsurf..."
brew install --cask windsurf 2>/dev/null || {
echo "Download from: https://windsurf.com/download"
exit 1
}
fi
# 2. Import existing editor settings
echo "Importing VS Code settings..."
windsurf 2>/dev/null & # First launch imports settings
sleep 3
kill %1 2>/dev/null || true
# 3. Install approved extensions
EXTENSIONS=(
"esbenp.prettier-vscode"
"dbaeumer.vscode-eslint"
"biomejs.biome"
)
for ext in "${EXTENSIONS[@]}"; do
windsurf --install-extension "$ext" 2>/dev/null
done
# 4. Disable conflicting extensions
CONFLICTS=("github.copilot" "tabnine.tabnine-vscode")
for ext in "${CONFLICTS[@]}"; do
windsurf --disable-extension "$ext" 2>/dev/null || true
done
# 5. Set team config
echo "Configuring team settings..."
echo ""
echo "Complete. Next steps:"
echo "1. Open your service directory in Windsurf (not monorepo root)"
echo "2. Sign in with company SSO when prompted"
echo "3. Verify .windsurfrules exists in your service directory"
| Issue | Cause | Solution |
|---|---|---|
| Indexing slow across team | Large workspaces | Partition into sub-workspaces per service |
| Config drift between services | No central templates | Implement sync-config.sh script |
| Credit overspend | No budgeting | Implement tier allocation, quarterly review |
| Network blocking Windsurf | Firewall rules | Whitelist *.codeium.com and *.windsurf.com |
| Inconsistent AI suggestions | Different .windsurfrules | Use central template repository |
echo "=== Team Windsurf Health ==="
echo "Services with .windsurfrules:"
find . -maxdepth 3 -name ".windsurfrules" | wc -l
echo "Services with .codeiumignore:"
find . -maxdepth 3 -name ".codeiumignore" | wc -l
echo "Services without config (needs fix):"
for d in apps/* services/*; do
[ -d "$d" ] || continue
[ -f "$d/.windsurfrules" ] || echo " MISSING: $d/.windsurfrules"
done
For reliability patterns, see windsurf-reliability-patterns.