This document outlines the strategic roadmap to transform the internal @vibing project into a stack-agnostic, open-source orchestration engine for AI-driven engineering.
To align with emerging industry standards (Gemini CLI, Cursor, OpenCode), we will refactor internal terms to use more functional constructs.
| Current Term | New Open-Source Term | Logic |
|---|---|---|
| Agents | Personas | Clarifies that these are "roles" rather than autonomous software agents. |
| Rules | Protocols | Emphasizes that these are strict standards for the AI to follow. |
| Workflows | Blueprints | Positions them as reusable patterns for project execution. |
| Modifiers | Skills | Aligns with the Gemini CLI activate_skill construct. These become high-level "meta-capabilities" (e.g., skill-stack-analyzer). |
| Templates | Schemas | Focuses on the data structure of design documents. |
The project must move from a "built-in" model to a "pluggable" model.
- Action: Extract all Firebase, Astro, Apollo, and React rules from
@vibing/rules/commoninto@vibing/packs/[tech-name]. - Goal: The core
@vibingfolder should contain ZERO stack-specific logic.
- Action: Build a CLI tool (
vibe) that replaces manual modifier execution. - Functions:
vibe init: Scaffolds the basic folder structure andAGENTS.md.vibe add [pack]: Fetches protocols from the registry.vibe sync: Runs the "Stack Analyzer" skill to update project context.
Instead of maintaining a massive internal library of framework rules, Vibing will act as a Rule Orchestrator.
- Target: cursor.directory
- Reason: It is the largest community-driven repository of AI coding rules.
- Fetch Logic: A
vibe add [tech]command will scrape/fetch Markdown fromcursor.directoryand format it into a Vibing Protocol (.mdfile with standard Vibing headers).
- Target: PatrickJS/awesome-cursorrules
- Use Case: Best-in-class foundation protocols (SOLID, DRY, Git standards).
We will implement an AI-driven modifier script (vibe forge) that allows users to provide raw intent which is then converted into a valid Protocol.
The Workflow:
- User Input: "I want a rule that says all database queries must be wrapped in a transaction and logged to Winston."
- Forge Skill: Analyzes the request, determines if it belongs in
backend/database.mdor a new file, and generates the Markdown with the correct@vibingtags. - Placement: Automatically places it in
protocols/custom/and updates therule-list.md.
- Rename
vibing/modifiers/tovibing/skills/. - Group all current rules under
vibing/rules/registry/internal. - Create
MIGRATION_MAP.jsonto track file moves.
- Standardize all
.mdfiles to use Frontmatter (YAML headers) for metadata likeappliesTo,techStack, andpriority.
- Implement
vibe initandvibe synclogic in a local script.
- Language of CLI: Should the CLI be written in TypeScript (idiomatic for current project) or Go (for performance/distribution)?
- Skill Activation: Do we use the native Gemini CLI
activate_skillmechanism or maintain our own "Modifier" execution pattern for cross-IDE support (Cursor/OpenCode)? - Conflict Resolution: How should the CLI handle cases where an external
cursor.directoryrule conflicts with an internal Vibing protocol? - Registry Hosting: Will we host our own
vibing-registryrepo or rely entirely on community repos?
Winner: cursor.directory
- Why: It is the current "source of truth" for the community.
- Implementation: We should create a scraper/wrapper that allows
vibe add nextjsto pull fromhttps://cursor.directory/nextjs.