Developed by Shawn McAllister at Engineered Automated Systems for Artificial Intelligence (EASAI) in Kannapolis, NC.
Licensed under Apache 2.0. Any use or adaptation of this technology MUST be accompanied by a license and attribution.
Credit to Nick Baumann w/ Cline Memory Bank for inspiration with the memory bank system that he developed.
Download the Windsurf zip file from here, which contains:
- engineered-meta-cognitive-workflow-architecture-v3-windsurf.md (main prompt)
- .windsurfrules (workspace rules file)
Download the Cline zip file from here, which contains:
- engineered-meta-cognitive-workflow-architecture-v3-cline.md (main prompt)
- .clinerules (workspace rules file)
engineered-meta-cognitive-workflow-architechture-windsurf.md into the global rules editor.windsurfrules file to your project's root directoryOnce the rules are set up, start a new chat with Windsurf, attach your project-overview.md file (see guide below), and type (or copy and paste):
Initialize your Memory Bank with the "SessionStart" workflow.
This will trigger the initialization workflow that creates the necessary directory structure and memory files.
The Engineered Meta-Cognitive Workflow Architecture is a revolutionary approach to enhancing AI assistants by providing structured memory persistence, workflow patterns, and self-evaluation mechanisms. Unlike traditional prompting techniques, this framework creates a pseudo-execution environment within the AI's context that guides its behavior through well-defined workflows.
The system's novelty lies in the integration of XML-defined functions with Mermaid diagrams that visually represent the same workflows:
<FunctionMap>
<StructureFunctions>
<Function id="createProjectBrief">Create the foundational project brief document</Function>
<Function id="createProductContext">Document why the project exists and problems it solves</Function>
<Function id="createSystemPatterns">Document system architecture and design patterns</Function>
<Function id="createTechContext">Document technologies, setup and dependencies</Function>
</StructureFunctions>
</FunctionMap>
This XML structure is paired with a corresponding Mermaid diagram:
flowchart TD
Start[Start] --> checkMemoryBankExists{checkMemoryBankExists}
checkMemoryBankExists -->|No| createMemoryBankDirectory[createMemoryBankDirectory]
createMemoryBankDirectory --> scaffoldMemoryBankStructure[scaffoldMemoryBankStructure]
scaffoldMemoryBankStructure --> populateMemoryBankFiles[populateMemoryBankFiles]
populateMemoryBankFiles --> readMemoryBank[readMemoryBank]
checkMemoryBankExists -->|Yes| readMemoryBank
readMemoryBank --> verifyFilesComplete{verifyFilesComplete}
verifyFilesComplete -->|No| createMissingFiles[createMissingFiles]
createMissingFiles --> verifyContext[verifyContext]
verifyFilesComplete -->|Yes| verifyContext
verifyContext --> developStrategy[developStrategy]
The true power of this framework emerges through integration with Windsurf's unique Cascade Memory feature, which the model refers to as EPHEMERAL REMINDER. This acts like a scheduled reminder system that helps the model maintain its workflow patterns even when working with large codebases that might otherwise cause it to lose focus.
When you notice the model has stopped following the workflow structure, you can simply remind it with:
You need to initialize your Memory Bank with the "Windsurf Memory System"
This triggers the automated workflow that ensures the model maintains its structured approach throughout your session.
.windsurf/core/activeContext.md.windsurf/task-logs/Long-Term Memory: Persistent knowledge in remaining .windsurf/core/ files
Structured Task Logging:
Next steps planning for continuity
Evaluation Workflow:
Iterative optimization until quality targets are met
Self-Critique Cycle:
The framework produces structured, high-quality outputs that build upon previous work even after context resets:
./windsurf/task-logs/ and update memoryThis guide helps you create a comprehensive project overview.
We will use an example for a personal bio/portfolio website using a starter kit like Once UI.
This document will serve as your roadmap to kick-start your project using Windsurf and the Meta-Workflow Prompt.
### Project Basics
- **Project Name**: Your Portfolio Website
- **Tagline**: A brief description of your website's purpose
### Vision Statement
- A concise statement describing the long-term goal of your portfolio
### Problem Statement
- What problem does this portfolio solve for you or your potential clients/employers?
### Solution
- How will your portfolio website address the identified problems?
### Target Audience
- Who is your primary audience? (e.g., potential employers, clients, collaborators)
### Success Metrics
- How will you measure the success of your portfolio website?
### Project Scope
- What features will be included in the initial version?
- What might be added in future updates?
### Risk Assessment
- What challenges might you face during development?
### Success Criteria
- What concrete outcomes indicate your project is successful?
"Help me create a project overview for my personal portfolio website using the Once UI starter kit. I want to showcase my web development skills, include a projects section, blog, and contact form. The site should be responsive, visually appealing, and easy to update. Please follow the simplified template provided and include specific details about how Once UI components will be utilized in each section. I weant to use a starter template from once-ui.com Reference the Once UI documentation for component specifics: https://once-ui.com/docs/installation"
.windsurfrules using the guide at the top of this page.Claude.ai and Openai.com are fairly well known and obvious resources. However, here are some other resources with free models:
Before starting development, create a detailed project overview. Follow the guide above.
Using a structured project overview helps you clarify your goals and provides Windsurf with crucial context to deliver more accurate and relevant solutions.
$ claude mcp add engineered-meta-cognitive-workflow-architecture \
-- python -m otcore.mcp_server <graph>