The Work Execution module follows a Project-First hierarchy: every task must belong to an approved project, ensuring all logged effort ties back to a sanctioned business objective. Projects move through an approval gate before any tasks can be assigned under them, and tasks have their own multi-stage lifecycle complete with complexity scoring, blocked-state handling, and a formal completion-request flow for interns and junior employees.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Paramount-Intelligence/HR_Monitoring_System/llms.txt
Use this file to discover all available pages before exploring further.
Project Lifecycle
Employee submits a project request
Any authenticated user can call
POST /api/v1/projects with a title, description, priority, and optional due date. The project is created in pending_approval status.Manager or Admin reviews the request
POST /api/v1/projects/{project_id}/approve accepts a ProjectDecision payload. The approver sets decision to approved or rejected and may attach a reason.Project becomes task-eligible
Once approved, the project status advances and it appears in the
GET /api/v1/projects/task-eligible endpoint, making it available for task creation dropdowns. Only approved or active projects are returned here.Full Project Status Lifecycle
| Status | Description |
|---|---|
draft | Not yet submitted for approval |
pending_approval | Awaiting manager or admin decision |
approved | Cleared for task creation |
active | Work is actively underway |
on_hold | Temporarily paused |
completed | All work finished |
rejected | Approval denied |
archived | Soft-deleted; excluded from default listings |
Project Priority Values
priority | Use case |
|---|---|
low | Background or nice-to-have work |
medium | Standard delivery |
high | Elevated urgency |
critical | Immediate attention required |
Creating a Project
The response returns
project_status: pending_approval. Tasks cannot be created under this project until a manager or admin calls the approve endpoint and sets the project to active.Task Lifecycle
Tasks are the atomic units of work. Each task belongs to exactly one project and is assigned to exactly one employee.Status Progression
status | Meaning |
|---|---|
created | Task exists but work has not started |
approved | Task explicitly approved (used in certain flows) |
in_progress | Employee is actively working on it |
blocked | Work is stalled — a blocked_reason is mandatory |
completed | Work is done; pending review |
reviewed | Manager has reviewed the completed work |
reopened | Sent back for additional work |
archived | Soft-deleted from default views |
Creating a Task
Task Create Fields
Must reference an
approved or active project. The API rejects tasks under pending_approval or rejected projects.UUID of the employee who will own and execute the task.
1–255 character task title. This is the label shown everywhere in the UI — never the UUID.
Optional detailed description of the deliverable.
Set to create this task as a subtask of an existing task.
low, medium (default), high, or critical.Target completion date. Tasks past this date and not completed are flagged as overdue.
Complexity Scoring
Managers and admins assign a complexity level and expected duration to help calibrate workload and productivity analytics.Relative difficulty score. Typical values follow a Fibonacci-like scale: 1, 2, 3, 5, 8.
The manager’s estimate of how long the task should take in minutes.
Task Completion Request Flow
Interns and junior employees cannot mark a task as completed directly. They must submit a completion request that a manager then approves or rejects.Employee submits completion request
POST /api/v1/tasks/{task_id}/completion-requests with an optional request_note string. A TaskCompletionRequest record is created with status pending.Manager reviews pending requests
GET /api/v1/tasks/completion-requests?status=pending returns all requests in the manager’s team scope.Completion Request Statuses
| Status | Meaning |
|---|---|
pending | Awaiting manager review |
approved | Task marked completed |
rejected | Request denied; task stays in prior state |
cancelled | Employee withdrew the request |
superseded | A newer request replaced this one |
Task Action Flags
EveryTaskRead response carries computed boolean flags that the frontend uses to gate UI controls:
| Flag | When true |
|---|---|
can_complete | The current user may mark this task as completed directly |
can_update_status | The current user may change the task status |
can_start_timer | The current user may start a timer session on this task |
Time cannot be logged against tasks in
blocked, completed, or archived status. The can_start_timer flag will be false for those states.Subtasks
Tasks support one level of parent–child nesting. Subtasks are created by settingparent_id on the create request.
parent_id equals task_id.
Task Comments
Team members can leave threaded comments on any task for async collaboration.- Add Comment
- List Comments
Author of the comment (display
user_full_name in the UI, not the UUID).Minimum 1 character. No maximum enforced by the schema.
Timestamp of when the comment was posted.
Role-Based Access Summary
Employees / Interns / Junior Employees
- Submit project requests
- View assigned tasks
- Update status and log time on own tasks
- Submit completion requests (interns/juniors)
- Add comments on accessible tasks
Managers / Team Leads
- All employee actions above
- Approve or reject project requests
- Create and assign tasks to their team
- Set complexity and expected duration
- Review and approve/reject completion requests
Admin / HR Operations
- All manager actions above
- Full project and task visibility across the org
- Access to
GET /api/v1/tasks/admin/overviewdashboard - Archive projects and tasks
- Override task statuses
Listing Filters
GET /api/v1/tasks accepts project_id, assigned_to, status, and include_archived query params. Results are automatically scoped to the caller’s access level — employees see only their own tasks; managers see their team’s tasks; admins see all.Admin Task Overview Dashboard
TheGET /api/v1/tasks/admin/overview endpoint (admin role required) provides an organisation-wide snapshot:
active_work array lists every currently running or paused timer session with the employee name, task title, project title, timer state, and live elapsed seconds.
UI Identification Rules
UUIDs are never displayed in the interface. Follow these label rules everywhere — dropdowns, headings, tables, and notifications:
- Tasks → Task Title
- Projects → Project Title
- Users → Full Name
- URLs → Use the UUID in the path (e.g.,
/tasks/{uuid}) but display the title as the page heading
