Add task manager interface

Change-Id: I7a2f4b20907ba4bb12c900688aef059789884c1d
diff --git a/server/tm/README.md b/server/tm/README.md
new file mode 100644
index 0000000..6b6e62d
--- /dev/null
+++ b/server/tm/README.md
@@ -0,0 +1,76 @@
+# Task Management (tm) Package
+
+The `tm` package provides a comprehensive task management system with support for task dependencies, ownership, and various task states.
+
+## Overview
+
+This package defines interfaces and types for managing tasks in a system where:
+- Each task has a single owner
+- Tasks can be in various states (todo, in progress, completed, etc.)
+- Tasks have priorities and due dates
+
+## Core Components
+
+### Types (`types.go`)
+
+- **Task**: The main task entity with all task properties
+- **TaskStatus**: Enum for task states (pending, in progress, completed, etc.)
+- **TaskPriority**: Enum for task priorities (low, medium, high, urgent)
+- **Owner**: Represents a task owner
+
+- **TaskFilter**: For filtering task queries
+- **Request/Response types**: For API operations
+
+### Interfaces (`interface.go`)
+
+#### TaskManager
+The main interface for task management operations:
+- CRUD operations for tasks
+- Task status management (start, complete)
+- Task queries and filtering
+- Task archiving
+
+### Errors (`errors.go`)
+
+Comprehensive error definitions:
+- Common task management errors
+- Task-specific errors with context
+
+## Key Features
+
+### Task States
+- **To Do**: Task is created but not started
+- **In Progress**: Task is currently being worked on
+- **Completed**: Task is finished
+- **Archived**: Task is archived (soft delete)
+
+### Task Priorities
+- **Low**: Low priority tasks
+- **Medium**: Normal priority tasks
+- **High**: High priority tasks
+
+### Filtering and Queries
+- Filter by owner, status, priority
+- Filter by date ranges
+- Pagination support
+
+## Usage Example
+
+```go
+// Create a task manager implementation
+var taskManager tm.TaskManager
+
+// Create a new task
+task, err := taskManager.CreateTask(ctx, &tm.TaskCreateRequest{
+    Title:       "Implement user authentication",
+    Description: "Add login and registration functionality",
+    OwnerID:     "user123",
+    Priority:    tm.PriorityHigh,
+})
+
+// Start a task
+task, err = taskManager.StartTask(ctx, "task1")
+
+// Complete a task
+task, err = taskManager.CompleteTask(ctx, "task1")
+```