← Odyssey365CONTENT HISTORY
WHAT CHANGED
Update to Odyssey365
Snapshot Nov 5, 2026 · 12:12 UTC · version 1.0.1
Collection source: downloaded plugin package.
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 JSONFull 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