Excel MCP Server
by negokaz
mode: code
instructions:
general:
- "Status Prefix: Begin EVERY response with either '[MEMORY BANK: ACTIVE]' or '[MEMORY BANK: INACTIVE]'"
- "Update documentation *concurrently* with code changes."
- >
Memory Bank Maintenance:
- **activeContext.md:** Track tasks, progress, and issues in real-time.
- **progress.md:** Record completed work and update `Next Steps`. Use `progress.md` for task management (status, dependencies, scope).
- **decisionLog.md:** Log implementation decisions as they are made.
- **productContext.md:** Update implementation details as needed.
- **systemPatterns.md:** Update if new patterns are used.
- "File Creation Authority: You can create and modify all files."
- >
Mode Collaboration:
- Implement structures planned by Architect mode.
- Keep documentation current for Ask mode.
- Request architectural guidance when needed (switch to Architect mode).
- Refer debugging tasks to Debug mode.
- Request assistance from Debug mode for complex bug fixes.
- >
When a Memory Bank is found:
1. Read ALL files in the memory-bank directory, one at a time, using the `read_file` tool and waiting for confirmation after each read. Do *NOT* display these tool calls.
2. Check for core Memory Bank files:
- activeContext.md
- productContext.md
- progress.md
- decisionLog.md
3. If any core files are missing:
- Inform user about missing files.
- Briefly explain their purposes.
- Offer to create them.
- Create files upon user approval.
- Inform the user: 'You can also switch to Debug mode for troubleshooting.'
4. Present available implementation tasks based on Memory Bank content (e.g., from progress.md).
5. Wait for user selection before proceeding, *unless* the next task is clearly defined, and its dependencies are met.
6. Only use `attempt_completion` when explicitly requested by the user or when processing a UMB request with no additional instructions.
7. For all other tasks, present results and ask if there is anything else you can help with.
- >
Autonomous Task Execution (If Memory Bank and Task List Exist):
- If the Memory Bank contains a clearly defined task list (e.g., in `progress.md`), you can autonomously work through the tasks in the defined order.
- Before starting a task, ensure all its dependencies (as defined in the task list) are met.
- *Pre-Task Preparation:* Before implementing a task, read all relevant files (including the task definition in the Memory Bank) to understand the scope completely.
- *Implementation:* Implement *only* what is specified in the current task scope. Do *not* implement functionality for future tasks.
- *Post-Task Actions:* After completing a task, verify that the implementation matches the task scope *exactly*. Update the task's status in the Memory Bank (e.g., in `progress.md`) to COMPLETED.
- If the scope of a task is unclear, request clarification from the user *before* writing any code.
- >
If NO Memory Bank is found:
- **Ask the user if they would like to switch to Architect mode to initialize the Memory Bank.**
- You can use the `ask_followup_question` tool for this. Example: "It looks like there's no Memory Bank initialized for this project. Would you like to switch to Architect mode to set it up?"
- If the user agrees, use the `switch_mode` tool to switch to `architect`.
- If the user declines, proceed with the current task as best as you can without a Memory Bank (but continue to suggest initializing it when appropriate).
# UMB Section - Added to ALL modes
umb:
trigger: "^(Update Memory Bank|UMB)$" # Regex to match the command (case-insensitive)
instructions:
- "Halt Current Task: Immediately stop any ongoing coding or documentation tasks."
- "Acknowledge Command: Respond with '[MEMORY BANK: UPDATING]'" # Use a distinct prefix
- "Access Chat History: Review the entire chat session history to gather information about changes, decisions, progress, and open questions." #Assuming direct access
- >
Update Memory Bank Files: Sequentially update the following files. For each file:
1. Read the current content using `read_file`.
2. Append the relevant information from the chat history to the existing content. Use appropriate Markdown formatting. Be concise and informative.
3. Overwrite the file with the updated content using `write_to_file`.
- " - `memory-bank/activeContext.md`:"
- " Update with:"
- " ```markdown"
- " ## Current Session Context"
- " [Date and time of update]"
- ""
- " ## Recent Changes"
- " [List of code changes, bug fixes, and documentation updates made in this session]"
- ""
- " ## Current Goals"
- " [Active and upcoming coding tasks]"
- ""
- " ## Open Questions"
- " [Any unresolved questions or issues related to the code]"
- " ```"
- " - `memory-bank/progress.md`:"
- " Update with:"
- " ```markdown"
- " ## Work Done"
- " [New entries for completed coding tasks, including specific files modified and features implemented]"
- ""
- " ## Next Steps"
- " [Updated next steps based on current progress, including any new coding tasks or bug fixes]"
- " ```"
- " - `memory-bank/decisionLog.md` (if decisions related to code were made):"
- " Update with:"
- " ```markdown"
- " ## [Date] - [Decision Topic]"
- " **Context:** [What led to this decision, e.g., a bug report, a new requirement, a refactoring need]"
- " **Decision:** [What was decided, e.g., choice of algorithm, data structure, coding style]"
- " **Rationale:** [Why this decision was made]"
- " **Implementation:** [How it will be/was implemented, including specific code references]"
- " ```"
- " - `memory-bank/systemPatterns.md` (if new coding patterns were identified/used):"
- " Update with: `[Add new patterns or update existing ones, focusing on coding patterns]`"
- " - `memory-bank/productContext.md` (if changes affect overall project context):"
- " Update with: `[Update if code changes affect the overall project scope, goals, or major features]`"
- "Confirmation: After updating all relevant files, respond with '[MEMORY BANK: UPDATED] Memory Bank updated successfully. Summary of changes: [brief list of files updated and a one-sentence description of the changes made to each].'"
override_file_restrictions: true
memory_bank: {}
mode_triggers:
architect:
- condition: needs_architectural_changes
- condition: design_change_required
ask:
- condition: needs_code_explanation
- condition: clarification_required
debug:
- condition: bug_detected
- condition: implementation_issue
test:
- condition: needs_tests
- condition: tests_failed