← Files WOTTARCHIVED FILE
skills/project-management/reference/project-workflows.md
6.37 KB · Oct 2, 2026 · 00:23 UTC
---
name: project-workflows
description: Guidance for common wott project workflows including finding, creating, and updating projects. Use when a task involves multiple project management operations.
metadata:
short-description: wott project management workflows
---
# Project Workflows
This document describes recommended workflows for working with wott projects.
## 1. Find a project by name
Use this workflow when the user refers to a project by name.
### Workflow
1. Call `search_project` using the user's project name or relevant keywords.
2. Review the returned projects.
3. If exactly one project is an obvious match, use that project.
4. If several projects match, ask the user to clarify.
5. If no project matches, tell the user that the project could not be found.
### Example
User:
> Find my robotics project.
Workflow:
```text
search_project("robotics")
↓
one matching project
↓
use returned project_id
```
Do not invent a project ID when search does not return one.
---
## 2. Browse projects
Use `get_projects` when the user wants to see or browse their projects.
Examples:
* "Show me my projects."
* "What projects do I have?"
* "List my current projects."
* "Which projects can I access?"
If the tool supports filtering, use the available filters when they are relevant.
Do not add filters that are not supported by the tool schema.
---
## 3. Read a project
Use `get_project` when the user needs detailed information about a specific project.
### Workflow
```text
User identifies project
↓
Do we have project_id?
↓ ↓
yes no
↓ ↓
get_project search_project
↓
resolve project
↓
get_project
```
If multiple projects match, ask the user to clarify.
If the project cannot be found, do not attempt to retrieve it using a fabricated ID.
---
## 4. Create a project
Use `create_project` only when the user clearly asks for a new project.
### Before creation
Determine:
* Project name
* Required project fields
* Optional project fields explicitly provided by the user
* Any parent or relationship required by the actual MCP schema
### Duplicate check
When the request could obviously create a duplicate, search for an existing project first.
For example:
> Create a project called Humanoid Robotics.
If wott already contains an obvious "Humanoid Robotics" project, do not automatically create another one.
Tell the user that a matching project exists and ask whether they want to use it or create another one.
### Creation workflow
```text
User requests project
↓
Determine required fields
↓
Check obvious duplicate
↓
create_project
↓
Verify result
↓
Report created project
```
Never claim creation succeeded if the MCP operation failed.
---
## 5. Update a project
Use `update_project` when the user explicitly wants to modify an existing project.
### Workflow
1. Identify the project.
2. Resolve it if necessary.
3. Determine which fields should change.
4. Send only the requested changes.
5. Verify the result.
6. Report the updated information.
### Example
User:
> Rename my robotics project to Physical AI Research.
Workflow:
```text
search_project("robotics")
↓
resolve project
↓
update_project({
project_id: "...",
name: "Physical AI Research"
})
↓
verify result
```
Do not send unrelated fields unless they are required by the actual update schema.
Do not replace existing project information with guessed values.
---
## 6. Ambiguous project references
The user may refer to a project indirectly.
Examples:
* "my robotics project"
* "the AI project"
* "the project we created yesterday"
* "my research project"
Use available project search capabilities to resolve the reference.
If exactly one project clearly matches, continue.
If multiple projects could match, ask the user to choose.
Example:
> I found two projects matching "AI Research". Which one do you want to update?
Do not choose arbitrarily when the operation changes data.
---
## 7. Project context for a broader task
When a user's request depends on an wott project, project information should be retrieved before generating project-specific conclusions.
Example:
> Help me continue working on my robotics project.
Workflow:
```text
identify project
↓
search_project
↓
get_project
↓
use project information as context
↓
continue with user's task
```
If the task also requires information from notebooks, continue into the notebook-management workflow.
---
## 8. Project plus notebook context
When a user asks for context around a project:
```text
Project
↓
identify project
↓
retrieve project
↓
find relevant notebooks
↓
retrieve relevant notebooks
↓
combine context
```
Only include information relevant to the user's current task.
Avoid dumping every project or notebook field into the response when only a subset is relevant.
---
## 9. Write operation confirmation
For create and update operations, use the tool result as the source of truth.
A successful workflow is:
```text
write tool
↓
successful MCP result
↓
confirm changed resource
↓
tell user
```
An unsuccessful workflow is:
```text
write tool
↓
error
↓
do not claim success
↓
explain failure
```
Do not infer success from the absence of an obvious error in the model's reasoning.
---
## 10. Authentication boundary
The authenticated user is determined by the wott MCP authentication layer.
The model must never request or provide:
* Firebase UID
* OAuth token
* API secret
* Firestore credentials
* Internal authentication information
Project IDs are resource identifiers and may be used when returned by wott or provided by the user.
Authentication credentials must never be treated as normal tool arguments.
---
## 11. Tool failure handling
If a read operation fails:
* Explain that the project could not be retrieved.
* Do not invent project information.
If a create operation fails:
* Do not tell the user that the project was created.
* Report the returned error when useful.
If an update operation fails:
* Do not claim the project was updated.
* Do not immediately retry unless it is safe and the cause is understood.
If authorization fails:
* Do not attempt to use another authentication method to access the user's data.
SHA-256: f09ecd5e7480ddaca4bfea4fb48fa81a1aeccadea8b5772be453a72e01acd872