piyaz_project
List, create, and update projects, plus enumerate team memberships.
piyaz_project
List, create, and update projects, plus enumerate team memberships. Spans every team the caller belongs to; no server-side session state, so pass projectId explicitly on every downstream call. list=projects (id, title, identifier, status, team chip, task counts, progress); skips empty teams; description and tag vocab fetched on demand via piyaz_query type='meta'. teams=every membership (id, name, slug, role, projectCount); call before create or when list misses a team. select=confirm working project; pass returned projectId on every subsequent call. create=new project; multi-team accounts MUST pass organizationId (server rejects ambiguous calls with the team list inline; auto-resolves single-team). update=title, description, status, categories, or identifier. Renaming identifier cascades every taskRef and breaks external references (PR titles, docs, commits).
Actions
| Action | Purpose |
|---|---|
list | projects across every team you belong to (id, title, identifier, status, team chip, task counts, progress); skips empty teams; description and tag vocab fetched on demand via piyaz_query type='meta' |
teams | every membership (id, name, slug, role, projectCount); call before create or when list misses a team |
create | new project (requires organizationId in multi-team accounts) |
select | confirm working project (returns projectId) |
update | modify fields |
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
action | "list" | "teams" | "create" | "select" | "update" | Yes | list=projects across every team you belong to (id, title, identifier, status, team chip, task counts, progress); skips empty teams; description and tag vocab fetched on demand via piyaz_query type='meta'. teams=every membership (id, name, slug, role, projectCount); call before create or when list misses a team. create=new project (requires organizationId in multi-team accounts). select=confirm working project (returns projectId). update=modify fields. |
categories | string[] | No | Task categories for this project (e.g. ['backend', 'frontend', 'mcp']). Drives drawer grouping in the UI. |
description | string | No | 3-5 sentence brief: problem, user, features, tech direction, constraints. |
identifier | string | No | Project prefix for task refs (e.g. 'MYM' yields MYM-1, MYM-2, ...). 2-12 chars, uppercase alphanumeric, unique per team. Auto-derived from title on create when omitted. On update: renames every existing task ref; external references (PR titles, docs) no longer resolve. |
organizationId | string (uuid) | No | Target team UUID for create. REQUIRED when you're a member of more than one team; the create is rejected with the team list inline otherwise. Auto-resolved when you belong to exactly one team. Membership is verified server-side; non-member targets return 'forbidden'. |
projectId | string (uuid) | No | Project UUID. Required for select and update. |
status | "brainstorming" | "decomposing" | "active" | "archived" | No | Lifecycle: brainstorming → decomposing → active → archived. Settable on create (defaults to 'brainstorming') or update. |
title | string | No | Project name (2-5 words, verb-noun preferred). Required for create. |