トラック

タスク/ゴールの作成 / 更新 / 検索 / 削除/一括適用です。


進行中の作業はトラックエンドポイントで扱います。

タスクの作成

POST /v1/tracks
Authorization: Bearer <token>
Content-Type: application/json
 
{
  "type": "task",
  "title": "Review docs",
  "scope": { "type": "personal" },
  "task": { "status": "todo", "dueDate": "2026-06-05" }
}

ゴールの作成

{
	"type": "goal",
	"title": "Ship documentation v1",
	"scope": { "type": "projects", "ids": ["project-id"] },
	"goal": { "status": "on_track", "progress": 40 }
}

検索

タスク絞り込みには status, assignee, goalId, parentId, dependsOn、日付範囲、doneAt の範囲があります。ゴール絞り込みには status, progressMin, progressMax、日付範囲があります。

typetask の場合、progressMinprogressMax のようなゴール専用の絞り込みは不正です。typegoal の場合、assignee, goalId, parentId, dependsOn, doneAtFrom / doneAtTo のようなタスク専用の絞り込みは不正です。

操作 コスト
tracks.search 2 credits
tracks.get 1 credit
tracks.apply 1 credit
tracks.create/update/delete 1 credit

検索結果で対象を絞ってから、必要なトラックだけ個別に取得してください。

一括適用

{
	"scope": { "type": "personal" },
	"upserts": [
		{ "id": "t001", "title": "Task A", "task": { "status": "todo" } },
		{ "id": "t002", "title": "Task B", "task": { "status": "todo", "dependsOn": ["t001"] } }
	]
}

非 UUID の id は新規作成、UUID の id は既存更新です。

upserts では task または goal から種別を推論します。両方を渡すと不正です。新規トラックには title が必要です。UUID の id は省略項目を維持します。