[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M735AMYM7BHCSXES2M3TAWBT":3,"skill-same:01M735AMYM7BHCSXES2M3TAWBT":51},{"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":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":30,"commitSha":31,"skillDirectory":32,"forksCount":33,"repositoryHtmlUrl":34,"repositoryHomepageUrl":35,"ownerHtmlUrl":36,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":37,"install":38,"resources":50},"01M735AMYM7BHCSXES2M3TAWBT","steward",null,"Lab conventions for driving or watching a PR.","Morrison-Lab\u002Fai-config","Morrison-Lab","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F104235520?v=4","01M734G0451S2G35MN4HFQK7XP","Morrison Lab","01M734G059BYFDFQA8YTPDGPMH",4,"MIT","https:\u002F\u002Fgithub.com\u002FMorrison-Lab\u002Fai-config\u002Fblob\u002Fmain\u002Fskills\u002Fsteward\u002FSKILL.md",[],[],"2026-11-11 15:11:14",false,"---\nname: steward\ndescription: \"Lab conventions for driving or watching a PR.\"\nuser-invocable: true\nallowed-tools:\n  - Bash\n  - Read\n  - Edit\n  - Write\n---\n\n# Steward: how to drive or watch a Morrison-Lab PR\n\nThis is the repo-level PR guidance that Claude's PR-activity harness reads from\n`.claude\u002Fskills\u002Fsteward\u002FSKILL.md` on a PR's head branch.\nWhere it differs from the harness's built-in rules on conventions or on how\nproactive to be, this file wins.\nIt cannot override the harness's \"never\" rules: never skip or disable a test,\nnever rewrite history on someone else's branch,\nnever push an empty commit or close and reopen a PR to kick CI.\n\nEach point below is a pointer to the lab rule that carries the detail;\nread the linked file before acting on that point.\n\n## Posture\n\n- **Driving a PR** (you opened it, or were asked to iterate or take it to clean):\n  subscribe, run the ARDI loop to fully clean, and keep a check-in armed,\n  without asking first.\n  See [`watch-and-ardi`](..\u002F..\u002Fshared\u002Fworkflow\u002Fwatch-and-ardi.md),\n  [`ardi`](..\u002Fardi\u002FSKILL.md) and\n  [`fully-clean`](..\u002F..\u002Fshared\u002Fworkflow\u002Ffully-clean.md).\n- **Review-only request:** leave the findings and stop.\n  No ARDI, no pushes, no merge.\n\n## Review findings\n\n- **Address every in-scope finding, optional ones included.**\n  This overrides the harness's rule that an optional or nit finding never starts a push:\n  in these repos a plainly correct nit gets fixed now,\n  in the next push or in a push of its own.\n  See [`address-every-comment`](..\u002F..\u002Fshared\u002Fworkflow\u002Faddress-every-comment.md).\n- **A repository owner's review comment is scrutiny, and often states a rule.**\n  When it says \"haven't we\", \"again\", \"everywhere\", or asks why a convention was not followed,\n  fix the instance, sweep the PR for the same class,\n  run `ums` in that turn to record the rule in its global home,\n  and name the recorded rule and its link in your reply.\n  See [`learn-from-review-findings`](..\u002F..\u002Fshared\u002Fworkflow\u002Flearn-from-review-findings.md)\n  and [`run-ums-proactively`](..\u002F..\u002Fshared\u002Fworkflow\u002Frun-ums-proactively.md).\n- **Reply before pushing:** on each finding you fix,\n  reply naming the not-yet-pushed commit and what it changes,\n  as your last write before the push.\n- **A verdict counts only on the current head.**\n  A NOT_CLEAN verdict caused only by an outside dependency,\n  such as a page another repo hasn't deployed yet,\n  still blocks `require-clean-verdict`.\n  After the dependency lands,\n  re-run the whole review workflow (\"Re-run all jobs\") or push,\n  so a fresh verdict posts.\n  See [`review-verdict-pitfalls`](..\u002F..\u002Fshared\u002Fworkflow\u002Freview-verdict-pitfalls.md).\n\n## CI\n\n- **Re-running only the failed jobs cannot recover a failed `post-review`.**\n  `post-review` downloads `claude-review-payload-\u003Crun>-\u003Cattempt>`,\n  and a failed-jobs re-run bumps the attempt without re-running `claude-review`,\n  so the artifact is missing.\n  Re-run all jobs instead, or let the next push start a fresh review.\n  See [`claude-review-dispatch`](..\u002F..\u002Fmemories\u002Fclaude-review-dispatch.md).\n- **Link checks fetch live URLs.**\n  A link to another lab site fails until that site's PR merges and its Pages deploy finishes.\n  Say so once on the PR, name the blocking PR,\n  and re-run the check after the deploy.\n  To confirm a deploy, read the other repo's `gh-pages` branch rather than\n  fetching `*.github.io`, which some sandboxes block.\n- **Batch fixes into one push.**\n  See [`efficient-pr-babysitting`](..\u002F..\u002Fshared\u002Fworkflow\u002Fefficient-pr-babysitting.md).\n- **A review that cannot run is not a verdict.**\n  A malformed token secret or a usage limit is a repository or account problem:\n  say so once on the PR,\n  and don't treat the PR as reviewed.\n\n## Merging\n\n- **Merge only with a grant.**\n  Pushing to green is not permission to merge.\n  `mwc` grants autonomous merging of fully clean PRs for the session;\n  otherwise, merge only the PRs the user named.\n  See [`mwc`](..\u002Fmwc\u002FSKILL.md).\n- **View the rendered document before calling a document PR ready.**\n  When the PR changes a Word, PDF, slide, or manuscript render, open the render at the current head, look at every page, post the evidence, and get and post an independent referee read of that render before reporting it ready or merging it.\n  Green CI is not enough.\n  See [`review-rendered-documents`](..\u002F..\u002Fshared\u002Fworkflow\u002Freview-rendered-documents.md).\n- **Surface merge order** when one PR depends on another,\n  such as links to a page that a sibling PR adds.\n  Merge the dependency first, wait for its deploy,\n  then re-check the dependent PR.\n- **Keep branches synced with `main`** by merging, never by rebasing someone else's branch.\n  See [`sync-with-main`](..\u002F..\u002Fshared\u002Fworkflow\u002Fsync-with-main.md).\n\n## Comments\n\n- Every comment you post ends with the agent attribution footer.\n- Post one standing-down comment per blocker, not one per event.\n","# Steward: how to drive or watch a Morrison-Lab PR\n\nThis is the repo-level PR guidance that Claude's PR-activity harness reads from\n`.claude\u002Fskills\u002Fsteward\u002FSKILL.md` on a PR's head branch.\nWhere it differs from the harness's built-in rules on conventions or on how\nproactive to be, this file wins.\nIt cannot override the harness's \"never\" rules: never skip or disable a test,\nnever rewrite history on someone else's branch,\nnever push an empty commit or close and reopen a PR to kick CI.\n\nEach point below is a pointer to the lab rule that carries the detail;\nread the linked file before acting on that point.\n\n## Posture\n\n- **Driving a PR** (you opened it, or were asked to iterate or take it to clean):\n  subscribe, run the ARDI loop to fully clean, and keep a check-in armed,\n  without asking first.\n  See [`watch-and-ardi`](..\u002F..\u002Fshared\u002Fworkflow\u002Fwatch-and-ardi.md),\n  [`ardi`](..\u002Fardi\u002FSKILL.md) and\n  [`fully-clean`](..\u002F..\u002Fshared\u002Fworkflow\u002Ffully-clean.md).\n- **Review-only request:** leave the findings and stop.\n  No ARDI, no pushes, no merge.\n\n## Review findings\n\n- **Address every in-scope finding, optional ones included.**\n  This overrides the harness's rule that an optional or nit finding never starts a push:\n  in these repos a plainly correct nit gets fixed now,\n  in the next push or in a push of its own.\n  See [`address-every-comment`](..\u002F..\u002Fshared\u002Fworkflow\u002Faddress-every-comment.md).\n- **A repository owner's review comment is scrutiny, and often states a rule.**\n  When it says \"haven't we\", \"again\", \"everywhere\", or asks why a convention was not followed,\n  fix the instance, sweep the PR for the same class,\n  run `ums` in that turn to record the rule in its global home,\n  and name the recorded rule and its link in your reply.\n  See [`learn-from-review-findings`](..\u002F..\u002Fshared\u002Fworkflow\u002Flearn-from-review-findings.md)\n  and [`run-ums-proactively`](..\u002F..\u002Fshared\u002Fworkflow\u002Frun-ums-proactively.md).\n- **Reply before pushing:** on each finding you fix,\n  reply naming the not-yet-pushed commit and what it changes,\n  as your last write before the push.\n- **A verdict counts only on the current head.**\n  A NOT_CLEAN verdict caused only by an outside dependency,\n  such as a page another repo hasn't deployed yet,\n  still blocks `require-clean-verdict`.\n  After the dependency lands,\n  re-run the whole review workflow (\"Re-run all jobs\") or push,\n  so a fresh verdict posts.\n  See [`review-verdict-pitfalls`](..\u002F..\u002Fshared\u002Fworkflow\u002Freview-verdict-pitfalls.md).\n\n## CI\n\n- **Re-running only the failed jobs cannot recover a failed `post-review`.**\n  `post-review` downloads `claude-review-payload-\u003Crun>-\u003Cattempt>`,\n  and a failed-jobs re-run bumps the attempt without re-running `claude-review`,\n  so the artifact is missing.\n  Re-run all jobs instead, or let the next push start a fresh review.\n  See [`claude-review-dispatch`](..\u002F..\u002Fmemories\u002Fclaude-review-dispatch.md).\n- **Link checks fetch live URLs.**\n  A link to another lab site fails until that site's PR merges and its Pages deploy finishes.\n  Say so once on the PR, name the blocking PR,\n  and re-run the check after the deploy.\n  To confirm a deploy, read the other repo's `gh-pages` branch rather than\n  fetching `*.github.io`, which some sandboxes block.\n- **Batch fixes into one push.**\n  See [`efficient-pr-babysitting`](..\u002F..\u002Fshared\u002Fworkflow\u002Fefficient-pr-babysitting.md).\n- **A review that cannot run is not a verdict.**\n  A malformed token secret or a usage limit is a repository or account problem:\n  say so once on the PR,\n  and don't treat the PR as reviewed.\n\n## Merging\n\n- **Merge only with a grant.**\n  Pushing to green is not permission to merge.\n  `mwc` grants autonomous merging of fully clean PRs for the session;\n  otherwise, merge only the PRs the user named.\n  See [`mwc`](..\u002Fmwc\u002FSKILL.md).\n- **View the rendered document before calling a document PR ready.**\n  When the PR changes a Word, PDF, slide, or manuscript render, open the render at the current head, look at every page, post the evidence, and get and post an independent referee read of that render before reporting it ready or merging it.\n  Green CI is not enough.\n  See [`review-rendered-documents`](..\u002F..\u002Fshared\u002Fworkflow\u002Freview-rendered-documents.md).\n- **Surface merge order** when one PR depends on another,\n  such as links to a page that a sibling PR adds.\n  Merge the dependency first, wait for its deploy,\n  then re-check the dependent PR.\n- **Keep branches synced with `main`** by merging, never by rebasing someone else's branch.\n  See [`sync-with-main`](..\u002F..\u002Fshared\u002Fworkflow\u002Fsync-with-main.md).\n\n## Comments\n\n- Every comment you post ends with the agent attribution footer.\n- Post one standing-down comment per blocker, not one per event.\n",{"name":5,"description":7,"allowed-tools":24,"user-invocable":29},[25,26,27,28],"Bash","Read","Edit","Write",true,"main","0f720481f8ce3b3d9fef485f6e230d8b3035748e","skills\u002Fsteward",1,"https:\u002F\u002Fgithub.com\u002FMorrison-Lab\u002Fai-config","https:\u002F\u002Fmorrison-lab.github.io\u002Fai-config\u002F","https:\u002F\u002Fgithub.com\u002FMorrison-Lab","2026-11-15 04:39:15",{"source":8,"skillName":5,"commands":39,"prompt":49,"zipAvailable":29},[40,43,46],{"tool":41,"command":42},"npx","npx skills add Morrison-Lab\u002Fai-config --skill steward",{"tool":44,"command":45},"bunx","bunx skills add Morrison-Lab\u002Fai-config --skill steward",{"tool":47,"command":48},"pnpm","pnpm dlx skills add Morrison-Lab\u002Fai-config --skill steward","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FMorrison-Lab\u002Fai-config\u002Fblob\u002Fmain\u002Fskills\u002Fsteward\u002FSKILL.md",[],[52,59,66,73,80,87],{"skillNo":53,"name":54,"nameZh":6,"description":55,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":56,"categories":57,"keywords":58,"publishedAt":19},"01M735BVYCGR5VEC65AFDVSNKW","wrap-up","End-of-session verification and UMS.","https:\u002F\u002Fgithub.com\u002FMorrison-Lab\u002Fai-config\u002Fblob\u002Fmain\u002Fskills\u002Fwrap-up\u002FSKILL.md",[],[],{"skillNo":60,"name":61,"nameZh":6,"description":62,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":65,"publishedAt":19},"01M735BTH469T1CQ8G2Q9GENCR","workaround-watcher","Watch upstream issue for fix.","https:\u002F\u002Fgithub.com\u002FMorrison-Lab\u002Fai-config\u002Fblob\u002Fmain\u002Fskills\u002Fworkaround-watcher\u002FSKILL.md",[],[],{"skillNo":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":72,"publishedAt":19},"01M735BRKZWFANSQ0GM380B4TD","wn","→ whats-next.","https:\u002F\u002Fgithub.com\u002FMorrison-Lab\u002Fai-config\u002Fblob\u002Fmain\u002Fskills\u002Fwn\u002FSKILL.md",[],[],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":19},"01M735BPE9V830B3B6NGXQ56J6","whats-next","Recommend concrete next step or action.","https:\u002F\u002Fgithub.com\u002FMorrison-Lab\u002Fai-config\u002Fblob\u002Fmain\u002Fskills\u002Fwhats-next\u002FSKILL.md",[],[],{"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":19},"01M735BMHQ60EAD5B7QAWXC5A0","wait-for-results","Wait for pipeline\u002FCI results.","https:\u002F\u002Fgithub.com\u002FMorrison-Lab\u002Fai-config\u002Fblob\u002Fmain\u002Fskills\u002Fwait-for-results\u002FSKILL.md",[],[],{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":93,"publishedAt":19},"01M735BKGZHPN1PEMJ7YBD5VJ8","wai","→ send-notes.","https:\u002F\u002Fgithub.com\u002FMorrison-Lab\u002Fai-config\u002Fblob\u002Fmain\u002Fskills\u002Fwai\u002FSKILL.md",[],[]]