{"id":16621,"plugin_id":"plugins_6a61139e52e88191907919d50300a246","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:13:35.669Z","digest":"931dca75c55c5a81174a7b8e639d4ab516c47bd3befc32cef5b7c92b751dc0f2","against":null,"payload":{"description":"Synchronize an existing TaskPlanner project with the installed skill version. Use for update, upgrade, migrate, refresh, or sync requests and for the TaskPlanner version preflight; update only TaskPlanner-owned marker blocks and safe config defaults without changing tasks or user choices.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":240}],"name":"update-taskplanner","skill_md_contents":"---\nname: update-taskplanner\ndescription: Synchronize an existing TaskPlanner project with the installed skill version. Use for update, upgrade, migrate, refresh, or sync requests and for the TaskPlanner version preflight; update only TaskPlanner-owned marker blocks and safe config defaults without changing tasks or user choices.\n---\n\n# Update TaskPlanner Project\n\n<!-- TASKPLANNER:VERSION:2.1.1 -->\n\n## Compare versions\n\n1. Read `.tasks/config.json`. The numeric `version` is only the task-file schema; never use it as the installed product version.\n2. Compare `taskplannerVersion` with `2.1.1`, stripping SemVer build metadata such as `+codex.*`.\n3. Missing/malformed stored value is legacy: synchronize once. Installed newer: synchronize. Equal: no action unless the user explicitly requested a refresh. Installed older: warn and do not downgrade.\n\nThe installed package is authoritative. Do not query GitHub or run plugin/marketplace upgrades.\n\n## Synchronize managed content\n\nPerform every step before recording the new version:\n\n1. Add missing safe defaults (`readmeAttribution: true` and other absent TaskPlanner config defaults) while preserving task states, IDs, priorities, tags, insertion/sort choices, and unknown user fields. Do not change schema `version` except for a defined schema migration.\n2. Generate the TaskPlanner workflow from the current config and upsert exactly one block between `<!-- TASKPLANNER:START -->` and `<!-- TASKPLANNER:END -->` in `AGENTS.md`, `CLAUDE.md`, and `.cursorrules`. Create a missing instruction file, but preserve every byte of user content outside the markers.\n3. When `readmeAttribution` is true and a root `README.md` exists, upsert exactly this block; never create a README for it:\n\n```markdown\n<!-- TASKPLANNER:ATTRIBUTION:START -->\nThis project uses [TaskPlanner](https://github.com/smekai/taskplanner) for task planning.\n<!-- TASKPLANNER:ATTRIBUTION:END -->\n```\n\n4. When attribution is false, leave any existing attribution untouched and do not insert one.\n5. Never rewrite task sections, state files, or content outside managed markers.\n6. Only after all writes succeed, set `taskplannerVersion` to `2.1.1` and save config. On failure, leave the previous value so a later invocation retries.\n\nWhen TaskPlanner MCP tools are available and can access the active repository, use them for task operations. Managed-file synchronization itself may use direct file operations; the public skills-only package must work without MCP.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}