piyaz
ReferenceTools

piyaz_workspace

Session-start tool: identify the caller and manage projects across every team they belong to.

There is no 'active' team or server-side session; responses emit project identifiers (e.g. 'PXD') that every other tool accepts directly. whoami=caller identity (user id, name, team count); run once at session start. teams=every membership (id, name, slug, role, projectCount) including empty teams. projects=all projects with identifier, status, team chip, task counts, progress; skips empty teams, so pair with teams for the full set. members=one team's directory (name, user UUID, role): the UUID source for assigneeIds, assignee ops, and assignee filters. create=new project; multi-team accounts MUST pass organizationId (server rejects ambiguous calls with the team list inline). update=title, description, status, categories, or identifier. Renaming the identifier cascades every taskRef and breaks external references (PR titles, docs, commits); categories=[...] replaces the vocabulary WITHOUT touching task rows. Archived projects are read-only on the task surface; update status='active' here to reopen. rename_category/delete_category=vocabulary edits that cascade to task rows atomically. Next: piyaz_search to find work, piyaz_map view='ready' to find unblocked tasks.

Actions

ActionPurpose
whoamicaller identity: user id, display name, team count; run at session start
teamsevery membership (id, name, slug, role, projectCount), including empty teams
projectsprojects across every team (identifier, title, status, team chip, task counts, progress); skips empty teams
membersone team's directory (name, user UUID, role), the UUID source for assigneeIds, assignee ops, and assignee filters; organizationId picks the team (auto-resolved for single-team accounts)
createnew project (organizationId REQUIRED for multi-team accounts)
updatemodify title, description, status, categories, or identifier
rename_categoryrename a vocabulary entry AND move every task in it, atomically
delete_categoryremove a vocabulary entry and uncategorize its tasks

Parameters

NameTypeRequiredDescription
action"whoami" | "teams" | "projects" | "members" | "create" | "update" | "rename_category" | "delete_category"Yeswhoami=caller identity: user id, display name, team count; run at session start. teams=every membership (id, name, slug, role, projectCount), including empty teams. projects=projects across every team (identifier, title, status, team chip, task counts, progress); skips empty teams. members=one team's directory (name, user UUID, role), the UUID source for assigneeIds, assignee ops, and assignee filters; organizationId picks the team (auto-resolved for single-team accounts). create=new project (organizationId REQUIRED for multi-team accounts). update=modify title, description, status, categories, or identifier. rename_category=rename a vocabulary entry AND move every task in it, atomically. delete_category=remove a vocabulary entry and uncategorize its tasks.
categoriesstring[]Noupdate only: FULL REPLACEMENT of the project's category vocabulary (e.g. ['backend', 'frontend', 'mcp']). Does not touch task rows, renaming or removing an in-use entry this way orphans its tasks; use rename_category / delete_category for cascades. Best for adding entries or reordering.
categorystringNorename_category/delete_category: the existing entry, exactly as listed by piyaz_get project view='meta'.
descriptionstringNo3-5 sentence brief: problem, user, features, tech direction, constraints.
identifierstringNoProject 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.
newCategorystringNorename_category only: the replacement name. Must not already exist, merge by re-categorizing tasks instead.
organizationIdstring (uuid)NoTarget team UUID for create and members. REQUIRED when you're a member of more than one team; the call 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 'not found'.
projectstringNoProject identifier ('PXD') or project UUID. Required for update.
status"brainstorming" | "decomposing" | "active" | "archived"NoProject lifecycle phase: brainstorming (scoping, no task graph yet) → decomposing (task graph being created) → active (execution) → archived (read-only: piyaz_create/piyaz_edit/piyaz_link fail; reads keep working; set status here to reopen). Flip to 'decomposing' when task creation starts and 'active' when the graph is complete. Settable on create (defaults to 'brainstorming') or update.
titlestringNoProject name (2-5 words, verb-noun preferred). Required for create.

Last updated

On this page