Projects
Group related tickets into projects, track progress as a whole, and archive projects when they ship.
Projects
Projects group related tickets into a single deliverable — a database migration, a quarterly capacity plan, an architecture upgrade. Where a ticket asks "what is the next thing to do?", a project asks "what are we trying to ship?"
Projects are workspace-scoped. A ticket can belong to at most one project at a time.
Create a Project
- Open Projects in the sidebar
- Click New project
- Fill in the form:
- Name — required, free-form
- Description — optional Markdown blurb explaining scope and success criteria
- Lead — optional member who is accountable for the project
- Priority — optional, same levels as tickets (Low / Normal / High / Urgent; Normal is the default)
- Icon — optional emoji or icon to visually identify the project
- Color — visual marker shown next to ticket rows that belong to the project
- Start / target date — optional dates that drive the progress widgets
- Click Create
The new project lands in the Active group in the sidebar.
Project Statuses
| Status | Description |
|---|---|
| Active | Actively being worked on. Default for new projects. |
| Paused | Work temporarily paused — waiting for dependencies, a key hire, or external input. |
| Completed | All work done. The project is finished but kept visible for reference. |
| Archived | Hidden from default views. Use this to clean up the sidebar without losing history. |
Change a project's status from its overflow menu. Projects in Completed or Paused still appear in the sidebar under their respective groups; only Archived projects move to the Archive group.
Add Tickets to a Project
There are three ways to put a ticket into a project:
- From the ticket detail panel — open the Project field and pick one
- From the project detail page — click Add tickets and multi-select existing tickets, or click New ticket to create one already attached
- At ticket creation — select the Project field in the new-ticket form
Removing a ticket is the inverse: clear the Project field on the ticket, or use the project page's overflow menu.
Project Views
Each project page has three built-in views:
| View | What it shows |
|---|---|
| List | Flat list of every ticket in the project, with the same columns and filters as the workspace ticket list. Good for triage and bulk editing. |
| Board | Kanban board grouped by status. Drag a card to move it across statuses. Good for daily health checks. |
| Timeline | Tickets plotted between their start and target dates. Good for spotting at-a-glance whether the project is on track. |
The header also shows aggregate progress — counts per status and a percentage based on tickets that have reached Done.
Archive a Project
When a project ships (or is cancelled), archive it to clean up the active sidebar without losing history.
- Open the project
- Click the overflow menu in the header
- Choose Archive project
Archived projects move to the Archive group in the sidebar. Their tickets are not deleted; archiving the project does not change the tickets' statuses. You can unarchive at any time from the same menu.
Archive is reversible. To permanently delete a project (and detach all its tickets), use the Delete action in the same overflow menu — this is irreversible.
Permissions
Project operations are controlled by RBAC permission scopes:
| Operation | Required Scope | Ownership Rule |
|---|---|---|
| Create project | projects:write | — |
| Edit project (name, description, priority, owner) | projects:write | Self-only: only the project owner can edit |
| Delete project | projects:delete | Self-only: only the project owner can delete |
When a role's ownership rule is set to any, members with that role can edit or delete any project in the workspace. When set to self-only, they can only modify projects they own.
The project owner defaults to the creator and can be changed from the project detail page by anyone with workspace-wide projects:write access.
Command-line Reference
Attach a ticket to a project
The ticket create / ticket update --project flag takes a project UUID, not a slug. Find the UUID with mopheus project list (or use --full-id to see the complete UUID).
# Create a ticket directly attached to a project
mopheus ticket create --title "Add read replica" --project <project-uuid>Manage projects
The project command group manages projects directly from the CLI. Status names are active, paused, completed, archived.
# List projects (filter by status, show full UUIDs)
mopheus project list
mopheus project list --status active --full-id
# Get a single project
mopheus project get <project-id>
# Create a project (--name is required)
mopheus project create --name "Q3 capacity plan" --description "Scale-out work"
# Update a project (only provided flags change)
mopheus project update <project-id> --name "New name" --color "#3b82f6"
mopheus project update <project-id> --status paused
# Set just the status (shorthand for update --status)
mopheus project status <project-id> active
# Delete a project (detaches its tickets; use --yes to skip the prompt)
mopheus project delete <project-id> --yesManage tickets within a project
# Add / remove a ticket from a project
mopheus project ticket add <project-id> <ticket-id>
mopheus project ticket remove <project-id> <ticket-id>