Summary
Define the v1 write contract for FocusRelay before implementing mutation tools.
This is the write-side equivalent of the existing read/query contract. It should remove ambiguity for future implementation and keep the project aligned with documented Omni Automation APIs.
Scope
Create new documentation that locks:
- allowed documented Omni Automation write APIs for tasks and projects
- v1 mutation surface
- homogeneous bulk-only rule for v1
- ID-only mutation targeting in v1
previewOnly, verify, and returnFields behavior
- validation and failure semantics
- clear separation between patch, lifecycle, and move operations
Locked V1 Surface
update_tasks
set_tasks_completion
move_tasks
update_projects
set_projects_status
set_projects_completion
move_projects
Locked Defaults
- homogeneous bulk only in v1
- ID-only mutation targeting
update_* is for field patches only
set_*_completion owns lifecycle transitions
move_* owns structural moves
- mixed
batch_mutate_tasks is deferred
Acceptance Criteria
- add a write contract doc parallel to the existing read contract
- add a mutation checklist parallel to the existing query checklist
- document only officially documented Omni Automation write APIs
- explicitly define what is out of scope for v1
- no write issue after this one should require API-shape decisions
Notes
This issue should cite official Omni Automation docs for:
- task
markComplete() / markIncomplete()
- project
markComplete() / markIncomplete()
- project
status
- database
moveTasks() / moveSections() / deleteObject()
Summary
Define the v1 write contract for FocusRelay before implementing mutation tools.
This is the write-side equivalent of the existing read/query contract. It should remove ambiguity for future implementation and keep the project aligned with documented Omni Automation APIs.
Scope
Create new documentation that locks:
previewOnly,verify, andreturnFieldsbehaviorLocked V1 Surface
update_tasksset_tasks_completionmove_tasksupdate_projectsset_projects_statusset_projects_completionmove_projectsLocked Defaults
update_*is for field patches onlyset_*_completionowns lifecycle transitionsmove_*owns structural movesbatch_mutate_tasksis deferredAcceptance Criteria
Notes
This issue should cite official Omni Automation docs for:
markComplete()/markIncomplete()markComplete()/markIncomplete()statusmoveTasks()/moveSections()/deleteObject()