CLAUDE.md•2.23 kB
<!--
Copyright (C) 2024 Briam R. <briamr@gmail.com>
This document is part of Aidderall MCP Server.
Aidderall MCP Server is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
-->
# Aidderall MCP Server - Project Context
## Overview
This is an MCP (Model Context Protocol) server implementation that provides hierarchical task management capabilities to AI assistants. It implements a living document task management system where completed tasks remain visible, creating a comprehensive work history.
## Key Commands for Development
### Running the Server
```bash
source venv/bin/activate
python -m src.server
```
### Running Tests
```bash
source venv/bin/activate
pytest -v
```
### Code Quality Checks
```bash
source venv/bin/activate
black src tests
isort src tests
mypy src
```
## Key Philosophy
- **Living Document**: Completed tasks remain visible in the structure, not hidden or archived away
- **Flexible Navigation**: Use `switch_focus` to jump between any tasks, enabling non-linear workflows
- **Zen State**: Achieved when either no tasks exist OR all tasks are completed
- **Separation of Concerns**: Task completion (status change) is separate from task removal (structural change)
## Key Commands
- `create_new_task` - Start independent work
- `extend_current_task` - Break down current work
- `switch_focus` - Jump to any task by ID
- `complete_current_task` - Mark as done (stays visible)
- `remove_task` - Clean up workspace (preserves history)
- `get_big_picture` - See all tasks with status
## Architecture Summary
- `src/models.py` - Data models (Task, MainTask, SubTask with PENDING/CURRENT/COMPLETED status)
- `src/task_manager.py` - Core task management logic (focus management, completion vs removal)
- `src/handlers.py` - MCP command handlers
- `src/server.py` - MCP server entry point
## Testing
All tests are in the `tests/` directory and use pytest. Run `pytest -v` to execute all tests.
## Virtual Environment
Always activate the virtual environment before running any commands:
```bash
source venv/bin/activate
```