criticalpath
currentCriticalpath is a multi-tenant Django REST service for managing retail product launch schedules and operational task work. It provides reusable critical-path templates, date-based plans, task and subtask management, collaboration features, range-plan visibility, exports/imports, and workload views. It also includes a separate MCP server that exposes the service API as assistant tools.
Business summary
This service helps a retailer plan everything that must happen before a product launches, such as sourcing, freight, reviews, and other launch activities. Teams can start from reusable schedules, assign and track work, see workload and board views, collaborate through checklists and comments, and connect launch work to range plans.
Capabilities
11Create and manage countdown plans that coordinate the work required to bring merchandise to the shop floor by a launch date.
Django REST views expose plan listing, creation, detail/update operations, CSV export, file import, bulk date shifting, saving a plan as a template, and importing range-plan data. The MCP server also exposes these operations as generated tools.
Create, reuse, duplicate, inspect, and export standard launch schedules for recurring merchandise processes.
Template list, create, detail, duplicate, and CSV export routes are registered under the critical-path API. Templates use reusable stage offsets according to the MCP server instructions.
Create, view, update, delete, assign, and track the individual pieces of work within a launch plan.
Critical-path routes provide task and subtask creation, detail operations, task/subtask listing, and array-based task/subtask creation. The task-list API provides additional task creation, detail, patch, status update, and user lookup operations.
Organize work by status and monitor progress across launch activities.
Task-list endpoints provide grouped-by-status views, status updates, filtered v2 task lists, a task board, and legacy-compatible task-list routes. Supported filtering signals include search and created year/month parameters.
Help managers and teams understand who is responsible for work and how work is distributed.
The task-list API exposes users, a current-user work view, workload data, and board data through v2 routes.
Keep supporting work details and team discussion attached to launch tasks.
The v2 task-list API registers checklist collection/item routes, comment routes, task reordering, and bulk task update operations.
View range plans and their items while incorporating range-plan information into critical-path planning.
Routes provide range-plan listing, range-plan item retrieval, and plan import from a range plan. Configuration includes an assortment service base URL and range-plan integration controls.
Move plan and template information in and out of the service for reuse, reporting, and migration.
Plan and template CSV export routes and plan file/range-plan import routes are implemented in the critical-path URL configuration. openpyxl is included for spreadsheet processing.
Resolve links from critical-path work to related Merchmix product-planning modules.
The API exposes module-link listing and module-key resolution routes. Settings include configurable module base URLs for assortment, budget builder, option planning, product review, and WSSI services.
Keep each retailer or tenant's plans, tasks, and related data separated while allowing authorized users to work within their tenant.
Requests are routed using the trusted X-Tenant-Client-Id header, with tenant validation and tenant-scoped query/object access. Centralized authentication can validate Merchmix ES256 tokens through the vendored auth library and Auth Service context endpoint; service entitlements and endpoint permissions are enforced when enabled.
Allow an AI assistant to inspect and drive critical-path and task-list workflows through structured tools.
mcp_server/server.py generates MCP tools from mcp_server.operations rather than hand-written wrappers. The server supports stdio and documented HTTP transports, uses a configured base URL, tenant ID, and optional bearer token, and applies longer timeouts to slow write operations.
Workflows
4Turn a standard template into a dated critical-path plan for a merchandise launch.
- 1.List available templates.
- 2.Create a plan or save an existing plan as a template.
- 3.Generate or populate plan tasks using stage offsets relative to the launch date.
- 4.Review tasks and dependencies.
- 5.Use bulk date shifting when the plan schedule needs to move.
Create and maintain the tasks that make up a critical path.
- 1.Create tasks and subtasks.
- 2.Assign work to users.
- 3.Update task details and statuses.
- 4.Use board, grouped-status, filtered-list, and workload views to monitor progress.
- 5.Add checklist items or comments and reorder or bulk-update tasks as needed.
Bring range-plan context into a critical-path plan.
- 1.List available range plans.
- 2.Preview the items for a selected range plan.
- 3.Import range-plan data into a plan.
- 4.Continue managing the resulting launch work through task and status workflows.
Operate the service through MCP tools while preserving tenant scope.
- 1.Configure the MCP base URL and default tenant.
- 2.Optionally provide a bearer token where authentication is enforced.
- 3.Orient with the critical-path overview, plans, templates, and assignees.
- 4.Read or execute generated Critical Path and Task List tools.
- 5.Treat timeout responses on slow writes cautiously because the underlying request may still complete.
Architecture
A Django 5.2 application exposes two related REST API areas: critical_path for launch plans and task_list for operational task management. It runs behind Gunicorn in Docker/Cloud Run or Azure Container Apps, uses Django ORM for persistence, Redis for caching, and tenant-aware authentication and authorization middleware/permissions. An independently provisioned MCP process acts as an HTTP client and tool generator over the REST API.
Interfaces
8| Kind | Identifier | Description |
|---|---|---|
| http | GET/POST /api/critical-path/ | Critical-path API including plans, templates, range plans, module links, tasks, and subtasks. Legacy /critical-path/ and selected shorthand routes are also registered. |
| http | GET/POST /api/task-list/ | Task-list API including users, tasks, statuses, board, workload, current-user work, bulk updates, reordering, checklists, and comments. Legacy /task-list/ and /ai-recommends/ compatibility prefixes are also registered. |
| http | GET /health/ | Health/status endpoint returning service availability information. |
| http | GET / | Service home/status endpoint identifying the Critical Path and Task List sections. |
| http | GET /admin/ | Django administration interface. |
| sdk | mcp_server.server | MCP server exposing generated Critical Path and Task List tools over stdio, streamable HTTP, or SSE according to MCP configuration. |
| http | Auth Service context endpoint | Configured authentication integration used to obtain authorization context; the default path is /settings/auth/context/ on the configured Auth Service base URL. |
| other | Notification publisher | Vendored gRPC notification client integration is available for publishing service events, with configuration controlled by notification environment settings. |
Screens
9| Route | Name | Purpose |
|---|---|---|
/plans/ | Critical Path Plans | List and create launch plans. |
/plans/<id>/ | Plan Detail | Inspect and update a specific launch plan. |
/templates/ | Critical Path Templates | List reusable launch schedules. |
/templates/create/ | Create Template | Create a reusable schedule template. |
/range-plans/ | Range Plans | List range plans available for critical-path use. |
/task-list/v2/board/ | Task Board | View task work in board form. |
/task-list/v2/workload/ | Workload | View work distribution and workload information. |
/task-list/v2/my-work/ | My Work | View tasks associated with the current user. |
/admin/ | Django Admin | Administrative management of service data and configuration. |
Data
10| Entity | Ownership | Description |
|---|---|---|
| Critical Path Plan | owns | A dated launch plan containing the work required to reach a merchandise launch. |
| Critical Path Template | owns | A reusable schedule definition for generating or standardizing launch plans. |
| Task | owns | An actionable unit of launch or operational work, with status and assignment information. |
| Subtask | owns | A subordinate work item associated with a task. |
| Task Checklist Item | owns | A checklist entry attached to a task. |
| Task Comment | owns | Collaboration discussion attached to a task. |
| Range Plan | reads | Range-planning data exposed for listing, item preview, and import into plans; the source system may be external. |
| Range Plan Item | reads | An item within a range plan used for preview or plan import. |
| Module Link | owns | A tenant/module-specific link or resolved destination for related Merchmix planning modules. |
| User/Assignee Reference | reads | User information used to list possible assignees and associate work with people; the authoritative user directory may be external. |
Dependencies
12| Name | Kind | Relationship | Criticality |
|---|---|---|---|
| PostgreSQL-compatible database | database | depends_on | critical |
| Redis | database | uses | required |
| Merchmix Auth Service | internal service | calls | required |
| Merchmix notification service | internal service | publishes | optional |
| Assortment / Range Planning service | internal service | calls | supporting |
| Budget Builder service | internal service | uses | supporting |
| Option Planning service | internal service | uses | supporting |
| Product Review service | internal service | uses | supporting |
| WSSI service | internal service | uses | supporting |
| MCP SDK | library | depends_on | optional |
| OpenPyXL | library | uses | supporting |
| Django REST Framework | library | depends_on | critical |
Technology
Limitations
6- —The supplied source excerpt does not include model definitions, serializers, view implementations, or migrations, so exact field-level schemas and persistence relationships cannot be established.
- —The scanner lists NATS messaging, but the supplied source does not show a concrete NATS publisher or consumer; no NATS business workflow is asserted.
- —External module hosts and environment settings establish integration configuration, but the excerpt does not prove the full behavior or availability of each downstream service.
- —Notification publishing is evidenced by vendored client code and package documentation, but concrete event call sites were not included in the supplied source excerpt.
- —The MCP documentation describes 41 tools, while the scanner's route summary shows only a subset of methods/routes; exact generated tool names and complete operation coverage should be confirmed from mcp_server/operations.py.
- —Authentication includes a documented temporary tenant-only fallback mode; deployment settings determine whether centralized Auth Service enforcement is active.
Agent instructions
Use this repository for retailer launch planning, critical-path scheduling, and operational task management. Keep every operation tenant-scoped and distinguish plan scheduling from task execution and collaboration.
- →Require or preserve the trusted X-Tenant-Client-Id tenant context for API calls; never infer tenant scope from arbitrary user input or data returned by another tenant.
- →For launch planning, inspect templates and existing plans before creating a new plan to avoid duplicate schedules.
- →Remember that critical-path dependencies are recorded, while dates are derived from stage offsets; moving one task does not automatically cascade successor dates. Use the bulk-shift operation when the whole plan must move.
- →For task operations, prefer the v2 task-list routes when filtering, board, workload, bulk update, reorder, checklist, or comment behavior is needed; use legacy routes only for compatibility.
- →Treat range-plan and module-link data as integration-backed or read-only unless the concrete endpoint implementation confirms otherwise.
- →For MCP writes, use the configured tenant and token and handle timeout responses carefully: a slow write may have completed even if the MCP client timed out.
- →Do not expose or request secret values, tokens, database credentials, or environment-file contents.
- →When exact fields, statuses, permissions, or side effects matter, inspect the relevant Django view, serializer, model, and operation definition rather than relying on route names alone.