A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
Windsurf Vibe Coding: AI-powered development workflow automation with persistent memories and rule-based standards
This project uses Windsurf to manage and automate development standards, workflows, and persistent project knowledge. This approach ensures consistency, scalability, and rapid onboarding for all contributors.
Vibe Digest is an automated content aggregation and summarization tool that delivers curated, daily email digests of the most relevant developments in AI, developer tools, and emerging technology. See docs/prd.md for the Product Requirements Document (PRD), goals, and acceptance criteria.
./run.sh lint)./run.sh test).github/workflows/vibe-coding-digest.yml).github/workflows/vibe-coding-digest.yml, per .cicdrules.md)src/ (modular package structure)tests/test_vibe_digest.py, tests/test_aws_blog_search.pytests/test_integration.pytests/test_acceptance.pytests/features/digest_workflow.feature, tests/features/externalized_config.feature.github/workflows/vibe-coding-digest.yml (Gitleaks secrets scanning)docs/prd.mddocs/user_stories.md, docs/traceability_matrix.mdSet the following secrets in your GitHub repository for the workflow to function:
OPENAI_API_KEY: OpenAI API accessSENDGRID_API_KEY: SendGrid email serviceEMAIL_FROM: Verified sender email addressEMAIL_TO: Recipient email addressCreate a SendGrid Account
Sign up at https://sendgrid.com/.
Verify a Sender or Domain
Generate an API Key
VibeDigest).Set GitHub Secrets
Use the scripts/set_github_secrets.sh script or set secrets manually in your GitHub repository:
./scripts/set_github_secrets.sh <owner/repo>
SENDGRID_API_KEY: Your SendGrid API keyEMAIL_FROM: Your verified sender emailEMAIL_TO: Recipient email addressTest Your Setup
Trigger the workflow or run the script locally. Check your inbox for the digest.
Tip: For best deliverability, use domain authentication and a sender address at your own domain.
The system supports flexible feed configuration through external JSON or YAML files while maintaining full backward compatibility with hardcoded feeds.
1. External Configuration (Recommended)
feeds_config.json or feeds_config.yaml file in the project root2. Environment Variable Path
VIBE_CONFIG_PATH to specify a custom configuration file location3. Automatic Fallback
{
"feeds": [
{
"url": "https://openai.com/news/rss.xml",
"source_name": "OpenAI News",
"category": "AI",
"enabled": true
},
{
"url": "https://github.blog/feed/",
"source_name": "GitHub Blog",
"category": "DevTools",
"enabled": false
}
]
}
Or in YAML format:
feeds:
- url: "https://openai.com/news/rss.xml"
source_name: "OpenAI News"
category: "AI"
enabled: true
- url: "https://github.blog/feed/"
source_name: "GitHub Blog"
category: "DevTools"
enabled: false
Adding New Feeds:
feeds_config.json or feeds_config.yaml)enabled: true to include it in the digestCategorizing Feeds:
AI: AI research, news, and development contentDevTools: Developer tools, IDEs, and programming utilitiesCommunity: Reddit, Hacker News, and community discussionsYouTube: Video content from AI and tech channelsBlogs: Official company and personal blogsGeneral: Uncategorized contentDisabling Feeds:
enabled: false to temporarily exclude feeds without removing themThe project includes a comprehensive feeds_config.json with 29 pre-configured feeds across all categories. This file serves as both the default configuration and a template for customization.
Note on Google Alerts: The default configuration includes example Google Alert feeds. For production use, you should:
feeds_config.personal.json)VIBE_CONFIG_PATH environment variable to point to your personal configuration# Setup Python environment and dependencies
./run.sh setup
# Run all quality checks (lint + test + coverage)
./run.sh all
# Individual operations
./run.sh lint # Flake8 linting
./run.sh test # Tests with coverage reporting
./run.sh clean # Environment cleanup
# As module (development)
export PYTHONPATH=$PYTHONPATH:$(pwd)
python -m src.vibe_digest
# Via package installation
pip install -e .
vibe-digest
test_vibe_digest.py, test_aws_blog_search.py)test_integration.py)test_acceptance.py)htmlcov/ directoryYou can use Google Alerts to track news, blogs, and forum posts for any search term, and receive updates via RSS. Here’s how to set up an RSS feed for a Google Alert:
Go to Google Alerts:
Create a New Alert:
AI coding, GitHub Copilot, Vibe Coding).Copy the RSS Feed URL:
https://www.google.com/alerts/feeds/XXXXXXXX/XXXXXXXX).Add the Feed to Your Configuration:
feeds_config.json file with appropriate categorization.FEEDS list in src/feeds.py (legacy method).Example (External Configuration - Recommended):
{
"feeds": [
{
"url": "https://www.google.com/alerts/feeds/11805205268710618137/2009129731931801714",
"source_name": "Google Alerts: Vibe Coding",
"category": "AI",
"enabled": true
}
]
}
Example (Legacy Hardcoded):
FEEDS = [
# ...other feeds...
"https://www.google.com/alerts/feeds/11805205268710618137/2009129731931801714", # Google Alerts: Vibe Coding
]
FEED_SOURCES = {
# ...other sources...
"https://www.google.com/alerts/feeds/11805205268710618137/2009129731931801714": "Google Alerts: Vibe Coding",
}
Both Windsurf Vibe Coding (Cascade) and Cursor are advanced AI-powered coding environments, but they use different terminology for similar concepts. Here’s how their core features map to each other:
@file or @symbol mentions..cursor/rules to provide future context—mimicking Windsurf’s Memories.global_rules.md, .windsurfrules.md) that guide the AI’s behavior, enforce standards, and ensure consistency..cursor/rules, these are version-controlled, support file pattern matching, git commit messages, and can be auto-attached or manually invoked./Generate Cursor Rules to create rules from conversations, similar to how Windsurf lets you persist learnings as rules.| Concept | Windsurf Vibe Coding (Cascade) | Cursor Analog(s) |
|---|---|---|
| Memories | Persistent workspace/project context | Codebase indexing, chat context, Project Rules |
| Rules | global_rules.md, .windsurfrules.md | Project Rules, User Rules, .cursor/rules |
| Workflows | Declarative, AI-driven, multi-step flows | Agent Mode, Composer, multi-file/terminal actions |
Tip:
To translate your workflow from Windsurf to Cursor:
.cursor/rulesBoth platforms aim to make coding more collaborative and efficient by deeply integrating AI into the development process. Understanding these analogs helps teams move between environments while retaining best practices.
global_rules.md~/.codeium/windsurf/memories/global_rules.md./global_rules.mdREADME.md for clarity..windsurfrules.md./.windsurfrules.mdlambda_rules.md)../lambda_rules.mdREADME.md and in related documentation.README.md.Definition:
Key Features:
Location:
windsurf_workflows/, workflows/, or a dedicated section in your documentation (e.g., docs/workflows.md).README.md for discoverability.windsurf_workflows/test_and_lint.yaml for a reusable, documented workflow that sets up Python, installs dependencies, lints, and tests your codebase.Creating and Reusing Workflows:
global_rules.md, .windsurfrules.md, etc.) and memories for context-aware execution.Scaling Workflows:
Best Practice:
~/.codeium/windsurf/memories/user_stories.md, traceability_matrix.md).global_rules.md (organization-wide).windsurfrules.md (project-specific)README.md with references to all rules, workflows, and memories..editorconfig or CONTRIBUTING.md, but AI-enforced and context-aware.For further details, see:
global_rules.md.windsurfrules.mduser_stories.md, traceability_matrix.md, and other docs for memories and workflows.PM Skills Marketplace by Paweł Huryn converted to Windsurf Rules and Workflows — 65 PM skills and 39 workflows for Casca
Advanced agent rules and prompt templates for AI coding assistants, focused on planning, security, memory-bank documenta
Convert editor rules between different AI coding assistants (Cursor, Windsurf, Claude Code, etc.)
AI agent skill for Jest 29/30 — 28 rules: mocks, async, timers, snapshots, CI. Works with Claude Code, Cursor, Codex, Wi