[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C5CDADZX0YM26H2QWWDJMF":3,"skill-same:01M6C5CDADZX0YM26H2QWWDJMF":59},{"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":23,"publishedAt":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":37,"commitSha":38,"skillDirectory":39,"forksCount":40,"repositoryHtmlUrl":41,"repositoryHomepageUrl":6,"ownerHtmlUrl":42,"ownerBlogUrl":6,"ownerDescription":43,"updatedAt":44,"install":45,"resources":58},"01M6C5CDADZX0YM26H2QWWDJMF","workflow-doctor",null,"Validate active workflow state before any role acts on it.","Lyther\u002Fagent-surface","Lyther","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F29906124?v=4","01M6C587M9T34T0SAGJSRK043Y","Enderaoe","01M6C587R0TXH3MFR8SRFPV61G",65,"MIT","https:\u002F\u002Fgithub.com\u002FLyther\u002Fagent-surface\u002Fblob\u002Fmain\u002Fskills\u002Fworkflow-doctor\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31],"workflow","doctor","workflow doctor","validate","state","active","it","role","2026-11-10 10:12:30",false,"---\nname: workflow-doctor\ndescription: \"Validate active workflow state before any role acts on it.\"\n---\n\n## Objective\n\nValidate the active agent-surface workflow state before any role acts on it. Stay read-only: run `agent-surface workflow doctor`, then the checks that command does not perform.\n\n```text\n.agent-surface\u002Fworkflows\u002Fcurrent.json\n.agent-surface\u002Fworkflows\u002F\u003Crun_id>\u002Frun.json\n.agent-surface\u002Fworkflows\u002F\u003Crun_id>\u002Fevents.ndjson\n.agent-surface\u002Fworkflows\u002F\u003Crun_id>\u002Fboss.json\n.agent-surface\u002Fworkflows\u002F\u003Crun_id>\u002Fworker.json\n.agent-surface\u002Fworkflows\u002F\u003Crun_id>\u002Freviewer.json\n.agent-surface\u002Fworkflows\u002F\u003Crun_id>\u002Fjudger.json\n.agent-surface\u002Fworkflows\u002F\u003Crun_id>\u002Frescue.json\n.agent-surface\u002Fworkflows\u002F\u003Crun_id>\u002Fagents.json\n.agent-surface\u002Fworkflows\u002F\u003Crun_id>\u002Frounds\u002F\u003Cround_id>\u002F\n```\n\n`.cursor\u002F.workflow\u002F` is an adapter compatibility surface only; it never overrides canonical `.agent-surface\u002Fworkflows\u002F` state.\n\n## Checks\n\nResolve `\u003Crun_id>` from `.agent-surface\u002Fworkflows\u002Fcurrent.json`, then run `agent-surface workflow doctor --run \u003Crun_id>`. It fails when:\n\n1. `run.json` or `events.ndjson` is missing, `run.json` fails `workflow.run.schema.json`, or its `run_id` is not `\u003Crun_id>`.\n2. An `events.ndjson` line is not JSON, fails the event schema, names another run, or breaks the `prev_event_hash`\u002F`event_hash` chain.\n3. A root or `rounds\u002Fround-\u003Cn>\u002Fboss.json` fails the boss schema or coherence rules, names another run or round, has no `workflow-boss` event carrying its hash, or (root copy) differs from the latest canonical round.\n4. A root `worker.json`, `reviewer.json`, `judger.json`, or `rescue.json` fails its schema; doctor checks nothing else about these files.\n5. Task buckets in `run.json` overlap, hold a task ID that no event-backed BOSS artifact defines, or miss a task from the latest event-backed BOSS. Prior-round accepted\u002Fclosed IDs may remain.\n6. `agents.json`, when present, fails `workflow.monitor.v2`, names another run or an unknown task, gives concurrent writers a shared workspace or overlapping filescope, exceeds the retry budget, holds a stalled agent, lists a materialized output that is missing, outside the run, empty, a control file, older than the attempt, or future-dated, has out-of-order or future timestamps, or exceeds the first-output, no-progress, or role timeout.\n7. An active run's `run.json.workflow_next_command` differs from the latest event's `to`, meaning `run.json` was edited by hand or an apply did not finish.\n\nVerify by hand, because the command does not: `current.json`; branch and base commit against git; parent artifact hashes; evidence files; that every non-boss role artifact was applied (an unapplied artifact passes); non-boss canonical round copies; `.cursor\u002F.workflow\u002F` copies; and that `.agent-surface\u002Fworkflows\u002F` is gitignored.\n\n## Rules\n\n1. Do not repair artifacts, and do not choose the newest file by mtime.\n2. Do not trust `.cursor\u002F.workflow\u002F` when canonical `.agent-surface\u002Fworkflows\u002F` exists. If canonical and compatibility artifacts disagree, canonical wins and status is at least `WARN`.\n3. A schema-valid but contradictory task disposition is `FAIL`.\n4. A stale running session is `FAIL` for further automatic routing; mark or terminate it before the next transition. It is not automatically a product blocker.\n\n## Output\n\n```json\n{\n  \"status\": \"PASS|WARN|FAIL\",\n  \"run_id\": \"id or null\",\n  \"canonical_dir\": \".agent-surface\u002Fworkflows\u002F\u003Crun_id>\",\n  \"issues\": [\n    { \"severity\": \"blocker|major|minor\", \"check\": \"short check name\", \"evidence\": \"file\u002Fpath\u002Ffield\", \"fix\": \"concrete next action\" }\n  ],\n  \"next_command\": \"workflow-boss|dev-feature|dev-fix|dev-chore|dev-refactor|qa-trace|qa-review|workflow-reviewer|workflow-judger|workflow-rescue|workflow-close|null\"\n}\n```\n","## Objective\n\nValidate the active agent-surface workflow state before any role acts on it. Stay read-only: run `agent-surface workflow doctor`, then the checks that command does not perform.\n\n```text\n.agent-surface\u002Fworkflows\u002Fcurrent.json\n.agent-surface\u002Fworkflows\u002F\u003Crun_id>\u002Frun.json\n.agent-surface\u002Fworkflows\u002F\u003Crun_id>\u002Fevents.ndjson\n.agent-surface\u002Fworkflows\u002F\u003Crun_id>\u002Fboss.json\n.agent-surface\u002Fworkflows\u002F\u003Crun_id>\u002Fworker.json\n.agent-surface\u002Fworkflows\u002F\u003Crun_id>\u002Freviewer.json\n.agent-surface\u002Fworkflows\u002F\u003Crun_id>\u002Fjudger.json\n.agent-surface\u002Fworkflows\u002F\u003Crun_id>\u002Frescue.json\n.agent-surface\u002Fworkflows\u002F\u003Crun_id>\u002Fagents.json\n.agent-surface\u002Fworkflows\u002F\u003Crun_id>\u002Frounds\u002F\u003Cround_id>\u002F\n```\n\n`.cursor\u002F.workflow\u002F` is an adapter compatibility surface only; it never overrides canonical `.agent-surface\u002Fworkflows\u002F` state.\n\n## Checks\n\nResolve `\u003Crun_id>` from `.agent-surface\u002Fworkflows\u002Fcurrent.json`, then run `agent-surface workflow doctor --run \u003Crun_id>`. It fails when:\n\n1. `run.json` or `events.ndjson` is missing, `run.json` fails `workflow.run.schema.json`, or its `run_id` is not `\u003Crun_id>`.\n2. An `events.ndjson` line is not JSON, fails the event schema, names another run, or breaks the `prev_event_hash`\u002F`event_hash` chain.\n3. A root or `rounds\u002Fround-\u003Cn>\u002Fboss.json` fails the boss schema or coherence rules, names another run or round, has no `workflow-boss` event carrying its hash, or (root copy) differs from the latest canonical round.\n4. A root `worker.json`, `reviewer.json`, `judger.json`, or `rescue.json` fails its schema; doctor checks nothing else about these files.\n5. Task buckets in `run.json` overlap, hold a task ID that no event-backed BOSS artifact defines, or miss a task from the latest event-backed BOSS. Prior-round accepted\u002Fclosed IDs may remain.\n6. `agents.json`, when present, fails `workflow.monitor.v2`, names another run or an unknown task, gives concurrent writers a shared workspace or overlapping filescope, exceeds the retry budget, holds a stalled agent, lists a materialized output that is missing, outside the run, empty, a control file, older than the attempt, or future-dated, has out-of-order or future timestamps, or exceeds the first-output, no-progress, or role timeout.\n7. An active run's `run.json.workflow_next_command` differs from the latest event's `to`, meaning `run.json` was edited by hand or an apply did not finish.\n\nVerify by hand, because the command does not: `current.json`; branch and base commit against git; parent artifact hashes; evidence files; that every non-boss role artifact was applied (an unapplied artifact passes); non-boss canonical round copies; `.cursor\u002F.workflow\u002F` copies; and that `.agent-surface\u002Fworkflows\u002F` is gitignored.\n\n## Rules\n\n1. Do not repair artifacts, and do not choose the newest file by mtime.\n2. Do not trust `.cursor\u002F.workflow\u002F` when canonical `.agent-surface\u002Fworkflows\u002F` exists. If canonical and compatibility artifacts disagree, canonical wins and status is at least `WARN`.\n3. A schema-valid but contradictory task disposition is `FAIL`.\n4. A stale running session is `FAIL` for further automatic routing; mark or terminate it before the next transition. It is not automatically a product blocker.\n\n## Output\n\n```json\n{\n  \"status\": \"PASS|WARN|FAIL\",\n  \"run_id\": \"id or null\",\n  \"canonical_dir\": \".agent-surface\u002Fworkflows\u002F\u003Crun_id>\",\n  \"issues\": [\n    { \"severity\": \"blocker|major|minor\", \"check\": \"short check name\", \"evidence\": \"file\u002Fpath\u002Ffield\", \"fix\": \"concrete next action\" }\n  ],\n  \"next_command\": \"workflow-boss|dev-feature|dev-fix|dev-chore|dev-refactor|qa-trace|qa-review|workflow-reviewer|workflow-judger|workflow-rescue|workflow-close|null\"\n}\n```\n",{"name":5,"description":7},"main","03da3e19e1582254f3f4a89dfe2c60e001689392","skills\u002Fworkflow-doctor",0,"https:\u002F\u002Fgithub.com\u002FLyther\u002Fagent-surface","https:\u002F\u002Fgithub.com\u002FLyther","Why so serious?","2026-11-12 01:02:43",{"source":8,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add Lyther\u002Fagent-surface --skill workflow-doctor",{"tool":51,"command":52},"bunx","bunx skills add Lyther\u002Fagent-surface --skill workflow-doctor",{"tool":54,"command":55},"pnpm","pnpm dlx skills add Lyther\u002Fagent-surface --skill workflow-doctor","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FLyther\u002Fagent-surface\u002Fblob\u002Fmain\u002Fskills\u002Fworkflow-doctor\u002FSKILL.md",true,[],[60,80,94,108,127,138],{"skillNo":61,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":67,"publishedAt":32},"01M6C5CQAHK34J7RNHEJE1G366","workflow-runtime","Prove skill or workflow discovery, full-autonomy tool execution, and task-shaped materialization before assigning a CLI, extension, provider, or model to a workflow role.","https:\u002F\u002Fgithub.com\u002FLyther\u002Fagent-surface\u002Fblob\u002Fmain\u002Fskills\u002Fworkflow-runtime\u002FSKILL.md",[66],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[68,24,69,31,70,71,72,73,74,75,76,77,78,79],"workflow runtime","runtime","cli","execution","discovery","tool","model","autonomy","provider","task","full","extension",{"skillNo":81,"name":82,"nameZh":6,"description":83,"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":86,"publishedAt":32},"01M6C5CNCTDS39453E66MQYTTQ","workflow-reviewer","Review batched implementation output against the BOSS spec and evidence.","https:\u002F\u002Fgithub.com\u002FLyther\u002Fagent-surface\u002Fblob\u002Fmain\u002Fskills\u002Fworkflow-reviewer\u002FSKILL.md",[],[87,88,24,89,90,91,92,93],"workflow reviewer","reviewer","review","spec","evidence","implementation","output",{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":101,"publishedAt":32},"01M6C5CKVKQF6NE9263HGRB2K3","workflow-rescue","Resolve repeated workflow failures with a single decisive action.","https:\u002F\u002Fgithub.com\u002FLyther\u002Fagent-surface\u002Fblob\u002Fmain\u002Fskills\u002Fworkflow-rescue\u002FSKILL.md",[100],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[24,102,103,104,105,106,107],"workflow rescue","rescue","single","with","action","decisive action",{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":115,"publishedAt":32},"01M6C5CHCW474Y5F49WME2G12H","workflow-orchestrator","Run risk-adaptive development, review, multi-agent, and release workflows with runtime preflight, bounded retries, liveness checks, isolated writers, and evidence-backed handoffs.","https:\u002F\u002Fgithub.com\u002FLyther\u002Fagent-surface\u002Fblob\u002Fmain\u002Fskills\u002Fworkflow-orchestrator\u002FSKILL.md",[114],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[116,117,24,118,89,119,120,121,122,123,124,91,69,125,126,105],"workflow orchestrator","orchestrator","risk","workflows","development","run","release","preflight","multi-agent","multi","retries",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":32},"01M6C5CFCYEW1J4ETBNDD4EQPK","workflow-judger","Arbitrate repeated task failures and decide merge, rework, or escalation.","https:\u002F\u002Fgithub.com\u002FLyther\u002Fagent-surface\u002Fblob\u002Fmain\u002Fskills\u002Fworkflow-judger\u002FSKILL.md",[],[134,24,135,136,137,77],"workflow judger","merge","escalation","decide",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":145,"publishedAt":32},"01M6C5CB6M0D3YM21HDPRWPSYV","workflow-close","Close an accepted or aborted workflow run while preserving history.","https:\u002F\u002Fgithub.com\u002FLyther\u002Fagent-surface\u002Fblob\u002Fmain\u002Fskills\u002Fworkflow-close\u002FSKILL.md",[144],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[146,147,24,121,148],"close","workflow close","history"]