// Embedded soloflow.mdc content
export const SOLOFLOW_MDC_CONTENT = `---
alwaysApply: true
---

# SoloFlow MCP Service Guidelines

This rule file provides guidelines for using the \`soloflow-mcp\` service to manage project documentation through Model Context Protocol (MCP).

## **Core Concepts**

- **Document Management**: All project documents are stored in \`.soloflow/\` directory
- **MCP Operations**: Use \`list\`, \`read\`, \`update\`, and \`init\` operations for document management
- **MCP Prompts**: Use structured prompts for software engineering best practices
- **Absolute Paths**: All operations require absolute project root paths for security
- **Document Types**: Predefined document types ensure consistency
- **Project Initialization**: Use \`init\` command to set up project configuration automatically
- **Read Before Update**: Always read existing content before updating documents

## **Supported Document Types**

The following document types are supported, all stored in \`.soloflow/\` directory:

- \`overview.md\` - Project overview and summary
- \`requirements.md\` - Functional and non-functional requirements
- \`system_architecture.md\` - Technical architecture design
- \`test_strategy.md\` - Testing strategy and plans
- \`ui_design.md\` - UI/UX design specifications
- \`tasks.md\` - Project task lists and progress
- \`deployment.md\` - Deployment and infrastructure docs
- \`notes.md\` - Project notes and observations

## **Available MCP Operations**

### **1. Initialize Project Configuration**

Initialize SoloFlow MCP configuration in the specified project root:

\`\`\`json
{
  "tool": "init",
  "args": {
    "projectRoot": "/Users/username/project"
  }
}
\`\`\`

### **2. List Project Documents**

Get all available documents in the project:

\`\`\`json
{
  "tool": "list",
  "args": {
    "projectRoot": "/Users/username/project"
  }
}
\`\`\`

### **3. Read Document Content**

Read a specific document type:

\`\`\`json
{
  "tool": "read",
  "args": {
    "projectRoot": "/Users/username/project",
    "type": "requirements"
  }
}
\`\`\`

### **4. Update Document Content**

Create or update a document:

\`\`\`json
{
  "tool": "update",
  "args": {
    "projectRoot": "/Users/username/project",
    "type": "requirements",
    "content": "# Project Requirements\\n\\n## Functional Requirements\\n1. User management\\n2. Data storage\\n3. Report generation"
  }
}
\`\`\`

## **Available MCP Prompts**

### **1. Project Initialization Prompt**

Initialize project documentation structure:

\`\`\`json
{
  "prompt": "init-project",
  "args": {
    "projectName": "My Project"
  }
}
\`\`\`

### **2. Create Document Template Prompt**

Create a standard template for a specific document type:

\`\`\`json
{
  "prompt": "create-doc-template",
  "args": {
    "docType": "requirements",
    "projectName": "My Project"
  }
}
\`\`\`

### **3. Add Task Prompt**

Add a new task to the project task list:

\`\`\`json
{
  "prompt": "add-task",
  "args": {
    "taskTitle": "Implement user authentication",
    "priority": "high",
    "category": "backend",
    "estimatedTime": "2d"
  }
}
\`\`\`

### **4. Check Project Status Prompt**

Analyze project documentation completeness and task progress:

\`\`\`json
{
  "prompt": "check-project-status"
}
\`\`\`

### **5. Code Review Checklist Prompt**

Get a standard code review checklist:

\`\`\`json
{
  "prompt": "code-review-checklist",
  "args": {
    "codeLanguage": "TypeScript"
  }
}
\`\`\`

### **6. Deployment Checklist Prompt**

Get a deployment preparation checklist:

\`\`\`json
{
  "prompt": "deployment-checklist",
  "args": {
    "environment": "production"
  }
}
\`\`\`

## **Development Workflow & Documentation Maintenance**

### **Critical Rule: Read Before Update**

**ALWAYS read existing document content before updating:**

1. **Read First**: Use \`read\` operation to get current document content
2. **Analyze Content**: Understand existing structure and content
3. **Preserve Continuity**: Maintain document consistency and history
4. **Update Carefully**: Apply changes while preserving existing information
5. **Verify Completeness**: Ensure all changes are properly documented

### **Document Update Process**

1. **Read Existing Content**: Always use \`read\` operation first
2. **Analyze Current State**: Understand existing structure and content
3. **Plan Updates**: Determine what needs to be added or modified
4. **Preserve History**: Keep existing content and add update history
5. **Cross-Reference**: Ensure consistency across all related documents
6. **Verify Changes**: Confirm all updates are complete and accurate

### **Fallback Document Access**

- **When MCP Service Unavailable**: If \`soloflow-mcp\` service cannot be called, directly read/write files in \`.soloflow/\` directory
- **Direct File Operations**: Use standard file system operations to access \`.soloflow/*.md\` files
- **Example**: readFile \`.soloflow/requirements.md\`, writeFile \`.soloflow/requirements.md\`

### **Task Execution Standards**

- **Reference Current Documentation**: Always check \`.soloflow/\` directory contents before starting any task
- **Completion Criteria**: Task is only complete when:
  - All tests pass (\`npm test\` or equivalent)
  - Code changes are tested and verified
  - Documentation is updated
- **Task Documentation**: After completing any task, update [tasks.md](mdc:.soloflow/tasks.md) with:
  - Completed task status
  - New tasks discovered during implementation
  - Updated timeline if needed

### **Documentation Update Triggers**

**Always update relevant documentation when:**

- **Requirements Change**: User requests new features or modifies existing requirements
- **Architecture Changes**: System design or technical architecture is modified
- **Implementation Discoveries**: Important findings during development that affect design
- **API Changes**: MCP operations or interfaces are modified
- **Security Updates**: Security-related changes or vulnerabilities discovered
- **Prompt Usage**: When using prompts to generate or modify documents

### **Documentation Update Process**

1. **Identify Affected Documents**: Determine which \`.soloflow/\` documents need updates
2. **Read Existing Content**: Always read current content before making changes
3. **Update Content**: Modify relevant documents with new information
4. **Cross-Reference**: Ensure consistency across all related documents
5. **Version Control**: Add update history entries to modified documents
6. **Verify Completeness**: Ensure all changes are properly documented

## **Usage Scenarios**

### **Scenario 1: Initialize New Project**

When starting a new project and need to set up SoloFlow MCP:

\`\`\`json
{
  "tool": "init",
  "args": {
    "projectRoot": "/Users/username/project"
  }
}
\`\`\`

### **Scenario 2: Check Project Documentation**

When you need to understand what documents exist in the project:

\`\`\`json
{
  "tool": "list",
  "args": {
    "projectRoot": "/Users/username/project"
  }
}
\`\`\`

### **Scenario 3: Read Requirements Document**

When you need to review project requirements:

\`\`\`json
{
  "tool": "read",
  "args": {
    "projectRoot": "/Users/username/project",
    "type": "requirements"
  }
}
\`\`\`

### **Scenario 4: Update Task List (with Read First)**

When you need to update project tasks:

1. **First, read existing content:**

    \`\`\`json
    {
      "tool": "read",
      "args": {
        "projectRoot": "/Users/username/project",
        "type": "tasks"
      }
    }
    \`\`\`

2. **Then, update with new content:**

    \`\`\`json
    {
      "tool": "update",
      "args": {
        "projectRoot": "/Users/username/project",
        "type": "tasks",
        "content": "# Project Tasks\\n\\n## To Do\\n- [ ] Implement user authentication\\n- [ ] Add data validation\\n\\n## Completed\\n- [x] Project initialization\\n- [x] Basic architecture setup"
      }
    }
    \`\`\`

### **Scenario 5: Create System Architecture Document**

When you need to document system architecture:

\`\`\`json
{
  "tool": "update",
  "args": {
    "projectRoot": "/Users/username/project",
    "type": "system_architecture",
    "content": "# System Architecture\\n\\n## Overall Architecture\\n\\n\`\`\`mermaid\\ngraph TD\\n    A[Frontend] --> B[API]\\n    B --> C[Database]\\n\`\`\`\\n\\n## Tech Stack\\n- Frontend: React + TypeScript\\n- Backend: Node.js + Express\\n- Database: PostgreSQL"
  }
}
\`\`\`

### **Scenario 6: Use Prompts for Software Engineering**

When you need structured guidance for software engineering practices:

1. **Initialize project with prompts:**

    \`\`\`json
    {
      "prompt": "init-project",
      "args": {
        "projectName": "My Web Application"
      }
    }
    \`\`\`

2. **Create document templates:**

    \`\`\`json
    {
      "prompt": "create-doc-template",
      "args": {
        "docType": "requirements"
      }
    }
    \`\`\`

3. **Add tasks with prompts:**

    \`\`\`json
    {
      "prompt": "add-task",
      "args": {
        "taskTitle": "Implement user authentication",
        "priority": "high",
        "category": "backend"
      }
    }
    \`\`\`

4. **Check project status:**

    \`\`\`json
    {
      "prompt": "check-project-status"
    }
    \`\`\`

5. **Get code review checklist:**

    \`\`\`json
    {
      "prompt": "code-review-checklist",
      "args": {
        "codeLanguage": "TypeScript"
      }
    }
    \`\`\`

6. **Get deployment checklist:**

    \`\`\`json
    {
      "prompt": "deployment-checklist",
      "args": {
        "environment": "production"
      }
    }
    \`\`\`

## **Security Considerations**

- **Absolute Paths Required**: \`projectRoot\` must be an absolute path
- **Access Control**: Only \`\${projectRoot}/.soloflow/*.md\` files are accessible
- **Type Validation**: \`type\` parameter must be a predefined document type
- **No Concurrent Writes**: Concurrent write operations are not supported
- **Initialization Safety**: \`init\` command only creates configuration files, never overwrites existing documents
- **Read Before Update**: Always read existing content to preserve document continuity

## **Best Practices**

### **Project Initialization Workflow**

1. **Run Init Command**: Use \`init\` to set up project configuration
2. **Check Existing Documents**: Use \`list\` operation to see current state
3. **Create Core Documents**: Use \`update\` to create essential documents
4. **Use Prompts**: Leverage prompts for structured guidance
5. **Maintain Documentation**: Regularly update documents as project evolves

### **Document Naming Convention**

- All documents use Markdown format
- Filenames are fixed as \`<type>.md\`
- Support for Mermaid diagrams, code blocks, and rich text content

### **Document Structure Template**

Each document should include:

\`\`\`markdown
# Document Title

## Overview
Brief description of the document's purpose and content.

## Detailed Content
Specific document content...

## Update History
- 2025-07-24: Initial version
- 2025-07-25: Added new features
\`\`\`

### **Workflow Process**

1. **Initialize Project**: Use \`init\` operation to set up configuration
2. **Check Existing Documents**: Use \`list\` operation
3. **Read Documents**: Use \`read\` operation to get content
4. **Update Documents**: Use \`update\` operation to modify content
5. **Use Prompts**: Leverage prompts for structured guidance

### **Prompt Usage Guidelines**

1. **Choose Appropriate Prompt**: Select the right prompt for your task
2. **Provide Required Parameters**: Fill in necessary parameters
3. **Review Generated Content**: Always review prompt-generated content
4. **Customize as Needed**: Modify generated content to fit your specific needs
5. **Update Documentation**: Always update relevant documentation after using prompts

## **Quick Start Guide**

### **Step 1: Initialize Project**

\`\`\`json
{
  "tool": "init",
  "args": {
    "projectRoot": "/Users/username/project"
  }
}
\`\`\`

### **Step 2: Check Project Documents**

\`\`\`json
{
  "tool": "list",
  "args": {
    "projectRoot": "/Users/username/project"
  }
}
\`\`\`

### **Step 3: Create Requirements Document**

\`\`\`json
{
  "tool": "update",
  "args": {
    "projectRoot": "/Users/username/project",
    "type": "requirements",
    "content": "# Project Requirements\\n\\n## Functional Requirements\\n1. User management\\n2. Data storage\\n3. Report generation\\n\\n## Non-functional Requirements\\n- Performance: Response time < 2 seconds\\n- Availability: 99.9%\\n- Security: Data encryption"
  }
}
\`\`\`

### **Step 4: Create Task List**

\`\`\`json
{
  "tool": "update",
  "args": {
    "projectRoot": "/Users/username/project",
    "type": "tasks",
    "content": "# Project Tasks\\n\\n## This Week\\n- [ ] Complete user authentication module\\n- [ ] Implement data validation\\n- [ ] Write unit tests\\n\\n## Next Week\\n- [ ] Integrate third-party services\\n- [ ] Performance optimization\\n- [ ] Documentation completion"
  }
}
\`\`\`

### **Step 5: Use Prompts for Guidance**

\`\`\`json
{
  "prompt": "check-project-status"
}
\`\`\`

## **Troubleshooting**

### **Common Errors**

1. **Path Error**: Ensure \`projectRoot\` is an absolute path
2. **Type Error**: Ensure \`type\` is a predefined document type
3. **File Not Found**: Use \`update\` operation to create new documents
4. **Init Error**: Ensure you have write permissions in the project directory
5. **Prompt Error**: Ensure prompt parameters are correctly formatted

### **Debugging Tips**

- Use \`init\` operation to set up project configuration
- Use \`list\` operation to check project structure
- Confirm \`.soloflow/\` directory exists after initialization
- Verify document type is correct
- Always read existing content before updating
- Use prompts for structured guidance

## **Related Documentation**

- [requirements.md](mdc:.soloflow/requirements.md) - Detailed functional requirements
- [system_architecture.md](mdc:.soloflow/system_architecture.md) - Technical architecture design
- [test_strategy.md](mdc:.soloflow/test_strategy.md) - Testing plans and strategies
- [tasks.md](mdc:.soloflow/tasks.md) - Project task lists and progress

## **Update History**

- 2025-07-30: Added MCP Prompts support and Read Before Update rule
- 2025-07-24: Initial version with basic MCP operations
`; 