[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6J4SANG0HM29QCD6256MQVT":3,"skill-same:01M6J4SANG0HM29QCD6256MQVT":80},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":47,"ownerHtmlUrl":48,"ownerBlogUrl":49,"ownerDescription":50,"updatedAt":51,"install":52,"resources":65},"01M6J4SANG0HM29QCD6256MQVT","planr-doctor",null,"Diagnose OpenPlanr CLI, pipeline, runtime-adapter, installation, and lock health. Use when setup, discovery, versions, generated assets, or runtime behavior seems wrong.","openplanr\u002FOpenPlanr","openplanr","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F273764861?v=4","01M6J4PHHBPM1ATKH7TXR1AZMB","OpenPlanr","01M6J4PHNQ7FWP1CC3JGNVBQ8N",6,"MIT","https:\u002F\u002Fgithub.com\u002Fopenplanr\u002FOpenPlanr\u002Fblob\u002Fmain\u002Fskills\u002Fplanr-doctor\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"planr doctor","doctor","when","setup","Wrong","assets","installation","behavior","cli","health","lock","use","generated","adapter","discovery","pipeline","runtime","diagnose","2026-11-10 10:12:30",false,"---\nname: planr-doctor\ndescription: Diagnose OpenPlanr CLI, pipeline, runtime-adapter, installation, and lock health. Use when setup, discovery, versions, generated assets, or runtime behavior seems wrong.\nlicense: MIT\n---\n\n# OpenPlanr Doctor\n\nRun `openplanr doctor` with the requested flags. Prefer `--json` for diagnosis.\nPreview every repair; package installation, version changes, provenance recovery,\nand deletion always require explicit confirmation.\n\n## OpenPlanr home\n\n`PLANR_HOME` names the user-level state directory, `~\u002F.planr` by default: runtime\ninstalls, backups, daemon state and design sessions live there. `OPENPLANR_HOME` is\ndeprecated; with `PLANR_HOME` unset it still resolves to `$OPENPLANR_HOME\u002F.planr` and\nprints one warning, and when both are set `PLANR_HOME` wins. The CLI keeps company\nsign-in and design share custody under that home; the skills read no credentials. Existing private design\nshare custody under `~\u002F.openplanr\u002Fdesign-shares` is read and safely moved only when\nits canonical destination is absent. Existing destinations are never overwritten.\nWhen state seems missing, check which variable is set.\n\nDoctor also reports healthy owned local services. Use `openplanr server list --json`\nto inspect their instance IDs, project and runtime. `openplanr server stop \u003Cinstance>`\nauthenticates that exact service, drains pending saves and requests shutdown.\nA port or process ID is never shutdown authority; legacy unowned services remain\nuntouched.\n\n## Driving an upgrade\n\n`openplanr upgrade` moves only half of an OpenPlanr upgrade — the npm CLI. The other\nhalf is the Claude Code plugin that `openplanr setup` installs from the bundled\n`openplanr-local` marketplace, and the upgrade never changes that plugin itself:\nit hands back the exact commands. Driving them with host shell access is this\nskill's job, then reporting what actually changed — never what was merely\nattempted.\n\n1. **Decide.** Run `openplanr upgrade status --json` and read `status`. If it is\n   `aligned` or `unknown` with empty `nextSteps`, there is nothing to drive —\n   report it and stop. If it is `agents-behind`, or `aligned` with `nextSteps`,\n   the CLI is already current: run its `nextSteps` commands in order, as step 3\n   describes, without upgrading the CLI.\n   Record the reported `installed` versions; that is the before state.\n2. **Own half, prescribe half.** If `status` is `upgrade-available` or\n   `incompatible`, confirm with the user (this upgrades the npm CLI), then run\n   `openplanr upgrade apply --yes --json`. The CLI performs the npm half itself and\n   returns the plugin half as an ordered `pluginHalfCommands` array — the exact\n   argv it would run, so the list can never drift from the engine. Take the\n   commands from there; never write a plugin command of your own.\n3. **Refresh first, then execute in order.** Run every entry of\n   `pluginHalfCommands` verbatim, in the array's given order, with your shell.\n   The first entry is either the `openplanr-local` marketplace refresh or a\n   single `openplanr setup …` command (when that marketplace was never registered);\n   it must run first: skip the refresh and the installer reinstalls the cached,\n   stale version while the user believes they upgraded. Do not reorder, drop, or\n   substitute an entry.\n4. **Verify and report the real diff.** Re-run `openplanr upgrade status --json` and\n   compare its `installed` versions against the before state. Report only what\n   actually moved and to what. If a component did not move, say so — never claim\n   \"upgraded\" for a version that did not change.\n\nFor the longer walkthrough, JSON output shape, and reporting format, read the\n[upgrade guide](references\u002Fupgrade.md).\n\n## Return\n\nLead with the diagnosed or repaired state. Summarize actual changes, linking\nrelevant files and showing before\u002Fafter versions only for components that moved.\nState which health checks were executed and what remains unverified. For a\npartial repair or blocker, retain successful work and show the exact recovery\ncommand or missing decision. Do not repeat long logs or claim that an attempted\nrepair succeeded. Different summary wording never causes another repair.\n","# OpenPlanr Doctor\n\nRun `openplanr doctor` with the requested flags. Prefer `--json` for diagnosis.\nPreview every repair; package installation, version changes, provenance recovery,\nand deletion always require explicit confirmation.\n\n## OpenPlanr home\n\n`PLANR_HOME` names the user-level state directory, `~\u002F.planr` by default: runtime\ninstalls, backups, daemon state and design sessions live there. `OPENPLANR_HOME` is\ndeprecated; with `PLANR_HOME` unset it still resolves to `$OPENPLANR_HOME\u002F.planr` and\nprints one warning, and when both are set `PLANR_HOME` wins. The CLI keeps company\nsign-in and design share custody under that home; the skills read no credentials. Existing private design\nshare custody under `~\u002F.openplanr\u002Fdesign-shares` is read and safely moved only when\nits canonical destination is absent. Existing destinations are never overwritten.\nWhen state seems missing, check which variable is set.\n\nDoctor also reports healthy owned local services. Use `openplanr server list --json`\nto inspect their instance IDs, project and runtime. `openplanr server stop \u003Cinstance>`\nauthenticates that exact service, drains pending saves and requests shutdown.\nA port or process ID is never shutdown authority; legacy unowned services remain\nuntouched.\n\n## Driving an upgrade\n\n`openplanr upgrade` moves only half of an OpenPlanr upgrade — the npm CLI. The other\nhalf is the Claude Code plugin that `openplanr setup` installs from the bundled\n`openplanr-local` marketplace, and the upgrade never changes that plugin itself:\nit hands back the exact commands. Driving them with host shell access is this\nskill's job, then reporting what actually changed — never what was merely\nattempted.\n\n1. **Decide.** Run `openplanr upgrade status --json` and read `status`. If it is\n   `aligned` or `unknown` with empty `nextSteps`, there is nothing to drive —\n   report it and stop. If it is `agents-behind`, or `aligned` with `nextSteps`,\n   the CLI is already current: run its `nextSteps` commands in order, as step 3\n   describes, without upgrading the CLI.\n   Record the reported `installed` versions; that is the before state.\n2. **Own half, prescribe half.** If `status` is `upgrade-available` or\n   `incompatible`, confirm with the user (this upgrades the npm CLI), then run\n   `openplanr upgrade apply --yes --json`. The CLI performs the npm half itself and\n   returns the plugin half as an ordered `pluginHalfCommands` array — the exact\n   argv it would run, so the list can never drift from the engine. Take the\n   commands from there; never write a plugin command of your own.\n3. **Refresh first, then execute in order.** Run every entry of\n   `pluginHalfCommands` verbatim, in the array's given order, with your shell.\n   The first entry is either the `openplanr-local` marketplace refresh or a\n   single `openplanr setup …` command (when that marketplace was never registered);\n   it must run first: skip the refresh and the installer reinstalls the cached,\n   stale version while the user believes they upgraded. Do not reorder, drop, or\n   substitute an entry.\n4. **Verify and report the real diff.** Re-run `openplanr upgrade status --json` and\n   compare its `installed` versions against the before state. Report only what\n   actually moved and to what. If a component did not move, say so — never claim\n   \"upgraded\" for a version that did not change.\n\nFor the longer walkthrough, JSON output shape, and reporting format, read the\n[upgrade guide](references\u002Fupgrade.md).\n\n## Return\n\nLead with the diagnosed or repaired state. Summarize actual changes, linking\nrelevant files and showing before\u002Fafter versions only for components that moved.\nState which health checks were executed and what remains unverified. For a\npartial repair or blocker, retain successful work and show the exact recovery\ncommand or missing decision. Do not repeat long logs or claim that an attempted\nrepair succeeded. Different summary wording never causes another repair.\n",{"name":5,"license":15,"description":7},"main","3aa8c4ef3dc9b94daf8a5fc599e222a0a5cd3565","skills\u002Fplanr-doctor",1,"https:\u002F\u002Fgithub.com\u002Fopenplanr\u002FOpenPlanr","https:\u002F\u002Fopenplanr.dev","https:\u002F\u002Fgithub.com\u002Fopenplanr","https:\u002F\u002Fopenplanr.dev\u002F","Close the loop from intent to delivery. The open harness around your coding agent.","2026-11-12 12:17:02",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add openplanr\u002FOpenPlanr --skill planr-doctor",{"tool":58,"command":59},"bunx","bunx skills add openplanr\u002FOpenPlanr --skill planr-doctor",{"tool":61,"command":62},"pnpm","pnpm dlx skills add openplanr\u002FOpenPlanr --skill planr-doctor","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fopenplanr\u002FOpenPlanr\u002Fblob\u002Fmain\u002Fskills\u002Fplanr-doctor\u002FSKILL.md",true,[66,72,76],{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"agents\u002Fopenai.yaml","REFERENCE","参考文档",389,"https:\u002F\u002Fgithub.com\u002Fopenplanr\u002FOpenPlanr\u002Fblob\u002Fmain\u002Fskills\u002Fplanr-doctor\u002Fagents\u002Fopenai.yaml",{"path":73,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":74,"sourceHtmlUrl":75},"openplanr.skill.json",685,"https:\u002F\u002Fgithub.com\u002Fopenplanr\u002FOpenPlanr\u002Fblob\u002Fmain\u002Fskills\u002Fplanr-doctor\u002Fopenplanr.skill.json",{"path":77,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002Fupgrade.md",6291,"https:\u002F\u002Fgithub.com\u002Fopenplanr\u002FOpenPlanr\u002Fblob\u002Fmain\u002Fskills\u002Fplanr-doctor\u002Freferences\u002Fupgrade.md",[81,97,114,133,157,175],{"skillNo":82,"name":83,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":96,"publishedAt":37},"01M70XD1RYQC5160MRRCPTGA2K","design","https:\u002F\u002Fgithub.com\u002Fopenplanr\u002FOpenPlanr\u002Fblob\u002Fmain\u002Ftests\u002Frelease-train\u002Ffixtures\u002Ffigma\u002Fskills\u002Fdesign\u002FSKILL.md",[86,91],{"categoryNo":87,"categoryName":88,"taxonomyType":89,"taxonomyTypeDesc":90},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",{"categoryNo":92,"categoryName":93,"taxonomyType":94,"taxonomyTypeDesc":95},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[83],{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":37},"01M6J4V75T3VW91HJQ5ZD5SFW0","planr-sync","Audit OpenPlanr planning artifacts for graph and protocol drift. Use when statuses, references, schemas, or generated planning views may be inconsistent.","https:\u002F\u002Fgithub.com\u002Fopenplanr\u002FOpenPlanr\u002Fblob\u002Fmain\u002Fskills\u002Fplanr-sync\u002FSKILL.md",[],[104,105,31,21,106,107,108,109,110,111,30,112,113],"sync","planr sync","graph","protocol","audit","references","drift","artifacts","for","planning",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":120,"publishedAt":37},"01M6J4V38R89DYYA4AAN312MNZ","planr-status","Inspect project delivery or one feature's pipeline status without changing state. Use when the user asks what is done, pending, blocked, or next.","https:\u002F\u002Fgithub.com\u002Fopenplanr\u002FOpenPlanr\u002Fblob\u002Fmain\u002Fskills\u002Fplanr-status\u002FSKILL.md",[],[121,122,123,124,125,30,126,34,127,128,129,130,21,131,132],"status","planr status","next","state","done","inspect","project","feature","delivery","pending","pipeline status","user",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":142,"publishedAt":37},"01M6J4TYGNBZG2YSSHCY8BASFB","planr-sprint","Refine every open backlog item against the code and the calendar, refute the picks, and select a sprint that fits capacity and the release cut. Use before a cut or sprint; not for decomposing one specification or reporting status.","https:\u002F\u002Fgithub.com\u002Fopenplanr\u002FOpenPlanr\u002Fblob\u002Fmain\u002Fskills\u002Fplanr-sprint\u002FSKILL.md",[139],{"categoryNo":140,"categoryName":141,"taxonomyType":94,"taxonomyTypeDesc":95},"01JBSEEDCAT000000000000030","开发工程师",[143,144,145,146,30,147,148,112,121,149,150,151,152,153,154,155,156],"planr sprint","sprint","release","capacity","release cut","backlog","refine","reporting","calendar","cut","specification","code","open","select",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":163,"publishedAt":37},"01M6J4TT7X6GV9A25JHSMKEMHJ","planr-spec","Shape vague product or engineering intent into a clear, measurable Protocol-compatible specification grounded in the current repository. Use when requirements need clarification before planning or implementation.","https:\u002F\u002Fgithub.com\u002Fopenplanr\u002FOpenPlanr\u002Fblob\u002Fmain\u002Fskills\u002Fplanr-spec\u002FSKILL.md",[],[164,165,166,30,113,167,168,21,169,170,107,171,172,173,174,153],"spec","planr spec","requirements","vague","engineering","implementation","clear","shape","repository","product","intent",{"skillNo":176,"name":177,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":181,"publishedAt":37},"01M6J4TNYE49SE8PBNNWJKK1CN","planr-ship","Implement an OpenPlanr plan, specification, task, or clearly stated request end to end in the current repository. Use when the user asks to build, implement, fix, finish, or ship local work, or to plan and implement an accepted change. Invoke before editing files for the requested change. Not for planning only, landing, release, or work handed to another coding agent.","https:\u002F\u002Fgithub.com\u002Fopenplanr\u002FOpenPlanr\u002Fblob\u002Fmain\u002Fskills\u002Fplanr-ship\u002FSKILL.md",[],[182,183,184,185,186,187,188,189,190,191,192,21,193,194,195,112,113,196,197,145,172,198,153,199],"ship","planr ship","local","only","end","fix","coding agent","work","plan","plan and implement","request","invoke","landing","editing","coding","finish","files","change"]