← Odyssey365CONTENT HISTORY

Update to Odyssey365

Snapshot Nov 5, 2026 · 12:12 UTC · version 1.0.1

Collection source: downloaded plugin package.

WHAT CHANGED

First saved snapshot

No earlier snapshot is available to establish a change.

Save Odyssey365 and check future changes in Following.

Up to 3 plugins free · no card required.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "Work an Odyssey project board like a kanban — move tasks between lists (for example To do → Doing → Done), mark tasks complete, add new tasks to the right list, and take items off a board. Use when the user says \"move X to done\", \"I finished Y\", \"start working on Z\", \"add this to the backlog list\", \"clean up the Done column\", or reports progress on items that live on a board.",
  "included_files": [],
  "name": "board-kanban",
  "skill_md_contents": "---\nname: board-kanban\ndescription: Work an Odyssey project board like a kanban — move tasks between lists (for example To do → Doing → Done), mark tasks complete, add new tasks to the right list, and take items off a board. Use when the user says \"move X to done\", \"I finished Y\", \"start working on Z\", \"add this to the backlog list\", \"clean up the Done column\", or reports progress on items that live on a board.\n---\n\n# Move work across a board\n\nOn an Odyssey board a **list** is an `itemTile` component whose `containItems` references tasks and\nnotes. Moving an item between lists is a change to two components; completing a task is a change to\nthe task itself. Keep both in step.\n\n## Steps\n\n1. **Load the current board.** `get_project` with `includeComponents: true`. Map each list's `text`\n   (its title) to its component id, and each item to the list that holds it. Resolve the items the\n   user named by title; if a title matches more than one item, ask.\n2. **Confirm the plan in one line** when more than three items change, e.g.\n   \"Move 4 tasks from Doing to Done and mark them complete?\" Single, clearly named moves need no\n   confirmation.\n3. **Apply each change.**\n\n   | User intent | Calls |\n   |---|---|\n   | Move between lists | `update_project_component` on the source list with `mode: \"remove\"`, then on the target list with `mode: \"append\"`, both with `containItems: [{uid, type}]` |\n   | Mark done | `complete_todo` (it records the completion on the timeline). If the board has a Done list, also move the task there |\n   | Start working | `update_todo` with `status: \"inProgress\"`; move it to the Doing list if the board has one |\n   | Add a new task to a list | `create_todo` with `projectUid` and `attachToComponentId` = that list's id |\n   | Take off the board | `update_project_component` with `mode: \"remove\"` — the task itself still exists |\n   | Delete for good | Ask first. Then `delete_todo` / `delete_memo` in addition to removing it from the list |\n\n   Always use `mode: \"append\"` or `\"remove\"` for lists. `replace` rewrites the whole list and silently\n   drops anything you did not include; on shared boards it is refused.\n4. **Verify.** Re-read with `get_project` when you changed more than a few items, and fix any list that\n   does not match what you reported.\n5. **Report** in the user's language: what moved where, what was completed, and anything you could not\n   do (for example another member's item on a shared board that the user cannot edit).\n\n## Guardrails\n\n- \"Remove\" is ambiguous. Ask whether the user means off this board or deleted everywhere.\n- On a shared board, edit only the user's own items unless the response shows `canEditItems: true`.\n- An item can be on only one shared board at a time. If a call is refused for that reason, tell the\n  user and ask before retrying with `moveFromOtherSharedBoard: true`.\n- Do not call `tidy_board` after moving items; lists keep their place on the canvas.\n"
}

SHA-256 of public snapshot: 7b0d426f29fe6a25aced042511aa7709516cbba771499759def23ece80b80044