[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M78FAFXF6D79T7NFGAKJSVHE":3,"skill-same:01M78FAFXF6D79T7NFGAKJSVHE":96},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":23,"commitSha":24,"skillDirectory":25,"forksCount":26,"repositoryHtmlUrl":27,"repositoryHomepageUrl":6,"ownerHtmlUrl":28,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":29,"install":30,"resources":43},"01M78FAFXF6D79T7NFGAKJSVHE","pull-request",null,"Validate and publish GitHub pull request actions. Use when the user asks to create, edit, comment on, or review a pull request, including under a selected GitHub author.","jl-cmd-projects\u002Fclaude-dev-env","jl-cmd-projects","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F338158757?v=4","01M78F4M55P4QY5YPN27XBQA9N","01M78F4M65AGEYC88NV6PW4715",7,"MIT","https:\u002F\u002Fgithub.com\u002Fjl-cmd-projects\u002Fclaude-dev-env\u002Fblob\u002Fmain\u002Fpackages\u002Fclaude-dev-env\u002F.agents\u002Fskills\u002Fpull-request\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: pull-request\ndescription: >-\n  Validate and publish GitHub pull request actions. Use when the user asks to\n  create, edit, comment on, or review a pull request, including under a\n  selected GitHub author.\n---\n\n# Pull request\n\n## Principle\n\nPublish one GitHub pull request action from validated local files and a\nprocess-local author value. Keep the parent environment unchanged.\n\n## When this applies\n\nUse this skill for one pull request action:\n\n- Create a pull request, ready for review by default or a draft with `--draft`.\n- Edit a pull request title or body.\n- Add a pull request comment.\n- Submit a pull request review.\n- Recover one selected legacy author record before the action.\n\nSend issue create, edit, and comment work to the `issue-tracker` skill, one\naction at a time. Send review and fix-loop work to `e-code-review`. Make\ncommits and pushes with Git directly.\n\nRequire one repository and one action target. Stop before author lookup or\nnetwork work when the repository, pull request, action, author, or required\nlocal file is missing or ambiguous.\n\nUse these exact refusal responses when the request belongs to another skill:\n\n- Issue action: `Use issue-tracker for this GitHub issue action.`\n- Commit or push: `Use Git directly for this commit or push.`\n- Missing target: `Provide one repository and one pull request action target.`\n\n## Constraints\n\n- Run local validation and privacy checks before account lookup or network work.\n- Use a body file. Do not send inline body text through the shell.\n- Keep `GITHUB_DEFAULT_ACCOUNT`, the parent environment, and global GitHub CLI\n  state unchanged.\n- Run one create, edit, comment, review, or recovery action per command.\n- Use global account switching only for one explicitly selected legacy record.\n- Read back the remote state before reporting success.\n\n## Dependencies\n\nThe commands use Python 3.11 or later and the Python standard library. GitHub\nactions also require an authenticated `gh` executable. The linter and artifact\nuploader ship in this package. Set `GITHUB_DEFAULT_ACCOUNT` to one exact GitHub\nCLI login when the action needs a selected author. Leave it unset to use the\ncurrent process environment.\n\n## Sub-skills\n\n| Skill | When | Produces | If missing |\n|---|---|---|---|\n| `pstack:poteto-agent` with `pull-request` instructions | Create or a full body rewrite, when you want the body drafted for you | A reviewed title and body file | Write the title and body yourself |\n| `privacy-hygiene` | Before any durable GitHub post | A clean body and repository privacy sweep | Stop before publication and report the missing gate |\n| `issue-tracker` | Issue create, edit, or comment requests | Issue state and issue URLs | Route the request there. |\n| `e-code-review` | Review or review\u002Ffix loop requests | Structured findings or a clean review result | Route the request there. |\n\n## Task seeding\n\nWhen the session exposes a task tool, register the items in\n`reference\u002Fpublication-tasks.md` as session tasks. Otherwise work through the\nProcess steps in order.\n\n## Process\n\n### 1. Scope the action\n\nResolve the repository, action, and selected GitHub author. For create, resolve\nthe source branch, base, and head. For other actions, resolve one existing pull\nrequest target. Create publishes a ready pull request, and `--draft` publishes a\ndraft. Record the target before any write.\n\n### 2. Author the title and body\n\nFor create, run `pull_request.py template --body-file \u003Cpath> --title \u003Ctitle>`\nfirst. It appends each heading the linter and proof gate require that the file\nlacks. Then fill the body, or invoke `pstack:poteto-agent` with the\ndiff-specific writing instructions to draft it. A comment or\nreview may use a supplied body file when it does not rewrite the pull request\ndescription.\n\nCheck each behavior claim against the final diff and verification evidence.\nPreserve whether a rule is added, removed, or narrowed, and distinguish tests\nadded from tests run. Refresh these claims after a rebase or correction.\n\nWrite the body in the section order `reference\u002Fbody-sections.md` gives: What\nthis does, What changed, Existing work, Proof in practice, Eval for a `feat`\ntitle, Risk, How to revert. Include only claims supported by the final diff.\n\nKeep substantive review and test evidence. Put extensive logs, raw diffs, token\ncounts, and agent transcripts in an existing linked artifact or a closed\n`\u003Cdetails>` section after the primary explanation. Let justified evidence grow\nwithout a total-length cap. A collapsed transcript still needs a useful opening.\n\nLoad a repository's PR-description skill and run the checker command it supplies.\nApply these steps to automated publishers too. A green code check proves no\ndescription claim by itself.\n\n### 3. Run the local linter\n\nResolve the active managed root (`CLAUDE_CONFIG_DIR` when set, `~\u002F.claude`\notherwise), then run `\u003Cmanaged-root>\u002Fscripts\u002Fdurable_post_lint.py` with the\nmatching action and title or body file. Use `pr-create`, `pr-edit`, `pr-comment`,\nor `pr-review`. The linter owns the action-specific body, title, and\nvolatile-path rules.\n\nExit code `0` continues to the next gate. Any non-zero exit stops the action. Fix\nthe named local input and rerun the linter. Do not look up the author or make a\nnetwork call while validation fails.\n\n### 4. Run privacy and artifact checks\n\nInvoke `privacy-hygiene` before the GitHub post. Upload binary evidence with\n`scripts\u002Fgh_artifact_upload.py` and replace local artifact references with\npermanent URLs. Rerun the linter after changing the body.\n\n### 5. Resolve the process-local author\n\nRun `~\u002F.agents\u002Fskills\u002Fpull-request\u002Fscripts\u002Fpull_request.py` (under the agents\nhome, not the repository; a worktree holds no `.agents\u002F` copy) with one\nstructured action and the selected author. The command runs the linter again, resolves\nthe author value, and passes it only to the child `gh` process. It never\nchanges the parent environment or calls `gh auth switch`.\n\nIf the selected author has no usable value, stop and report the account lookup\nfailure. Never print the value.\n\n### 6. Recover a selected legacy record\n\nFollow `reference\u002Flegacy-author-recovery.md` only when the user selects one\nlegacy state file. Mark this step `N\u002FA` otherwise.\n\n### 7. Run the action\n\nRun `pull_request.py` for exactly one of `create`, `edit`, `comment`, or\n`review`. Supply the validated body file path. Treat a non-zero exit as a\nfailed publication and preserve the local inputs for retry.\n\n### 8. Read back the remote state\n\nUse the same selected process-local author for a read-only remote readback.\nConfirm the pull request URL and number, title, body, head SHA, and draft state.\nFor comments and reviews, confirm the new remote entry. Report artifact URLs\nwithout exposing author values.\n\nConfirm the published claims still describe the verified head and preserve the\nscope of its evidence, including whether checks used saved artifacts or a new run.\nRead the remote opening with evidence sections collapsed. Confirm that it explains\nthe change on its own and that the evidence links lead to the cited results.\n\n## Exit handling\n\nStop before network work when authoring, local validation, privacy, or author\nselection fails. A failed action preserves its body and any recovery record.\nReport the generic error and the next required input. A successful action ends\nonly after remote readback proves the requested state.\n\n## Examples\n\nRead `reference\u002Fexamples.md` for a create, a rejected comment, and a recovery.\n\n## Gotchas\n\n- Relative body-file paths depend on the caller directory. Use an absolute path\n  when another process or worktree starts the command.\n- Normal pull request actions never call `gh auth switch`. If that command\n  appears outside explicit recovery, stop.\n- `gh auth switch`, `login`, and `logout` change the account for every session\n  on the machine, and a PreToolUse hook denies them. Scope another account to\n  one command: `GH_TOKEN=$(gh auth token -u \u003Caccount>) gh \u003Ccommand>`.\n- GitHub CLI output can contain account data. The command captures account\n  lookup and recovery output and prints only generic errors.\n\n## File index\n\n| Path | Purpose |\n|---|---|\n| `SKILL.md` | Hub for pull request publication, validation, author selection, recovery, and readback |\n| `reference\u002Fpublication-tasks.md` | Ordered tasks for every publication gate |\n| `reference\u002Flegacy-author-recovery.md` | Recovery of one selected legacy author record |\n| `reference\u002Fexamples.md` | Worked create, rejected comment, and recovery examples |\n| `reference\u002Fbody-sections.md` | Pull request body sections, their order, and what each holds |\n| `scripts\u002Fpull_request.py` | Command for author selection and create, edit, comment, and review actions |\n| `scripts\u002Fgithub_pr_command_constants\u002F` | Constants for pull request actions, recovery, exit codes, and generic messages |\n| `scripts\u002Ftest_pull_request.py` | Tests for `pull_request.py` |\n| `scripts\u002Frecover_legacy_author.py` | Command for one selected legacy author record |\n| `scripts\u002Ftest_github_pr_command_constants.py` | Tests for the command and recovery constants |\n| `scripts\u002Ftest_recover_legacy_author.py` | Tests for `recover_legacy_author.py` |\n| `\u003Cmanaged-root>\u002Fscripts\u002Fdurable_post_lint.py` | Shared action-aware title, body, and path validator |\n| `scripts\u002Fgh_artifact_upload.py` | Helper for permanent GitHub binary evidence URLs |\n| `scripts\u002Ftests\u002Ftest_gh_artifact_upload.py` | Tests for binary evidence upload |\n","# Pull request\n\n## Principle\n\nPublish one GitHub pull request action from validated local files and a\nprocess-local author value. Keep the parent environment unchanged.\n\n## When this applies\n\nUse this skill for one pull request action:\n\n- Create a pull request, ready for review by default or a draft with `--draft`.\n- Edit a pull request title or body.\n- Add a pull request comment.\n- Submit a pull request review.\n- Recover one selected legacy author record before the action.\n\nSend issue create, edit, and comment work to the `issue-tracker` skill, one\naction at a time. Send review and fix-loop work to `e-code-review`. Make\ncommits and pushes with Git directly.\n\nRequire one repository and one action target. Stop before author lookup or\nnetwork work when the repository, pull request, action, author, or required\nlocal file is missing or ambiguous.\n\nUse these exact refusal responses when the request belongs to another skill:\n\n- Issue action: `Use issue-tracker for this GitHub issue action.`\n- Commit or push: `Use Git directly for this commit or push.`\n- Missing target: `Provide one repository and one pull request action target.`\n\n## Constraints\n\n- Run local validation and privacy checks before account lookup or network work.\n- Use a body file. Do not send inline body text through the shell.\n- Keep `GITHUB_DEFAULT_ACCOUNT`, the parent environment, and global GitHub CLI\n  state unchanged.\n- Run one create, edit, comment, review, or recovery action per command.\n- Use global account switching only for one explicitly selected legacy record.\n- Read back the remote state before reporting success.\n\n## Dependencies\n\nThe commands use Python 3.11 or later and the Python standard library. GitHub\nactions also require an authenticated `gh` executable. The linter and artifact\nuploader ship in this package. Set `GITHUB_DEFAULT_ACCOUNT` to one exact GitHub\nCLI login when the action needs a selected author. Leave it unset to use the\ncurrent process environment.\n\n## Sub-skills\n\n| Skill | When | Produces | If missing |\n|---|---|---|---|\n| `pstack:poteto-agent` with `pull-request` instructions | Create or a full body rewrite, when you want the body drafted for you | A reviewed title and body file | Write the title and body yourself |\n| `privacy-hygiene` | Before any durable GitHub post | A clean body and repository privacy sweep | Stop before publication and report the missing gate |\n| `issue-tracker` | Issue create, edit, or comment requests | Issue state and issue URLs | Route the request there. |\n| `e-code-review` | Review or review\u002Ffix loop requests | Structured findings or a clean review result | Route the request there. |\n\n## Task seeding\n\nWhen the session exposes a task tool, register the items in\n`reference\u002Fpublication-tasks.md` as session tasks. Otherwise work through the\nProcess steps in order.\n\n## Process\n\n### 1. Scope the action\n\nResolve the repository, action, and selected GitHub author. For create, resolve\nthe source branch, base, and head. For other actions, resolve one existing pull\nrequest target. Create publishes a ready pull request, and `--draft` publishes a\ndraft. Record the target before any write.\n\n### 2. Author the title and body\n\nFor create, run `pull_request.py template --body-file \u003Cpath> --title \u003Ctitle>`\nfirst. It appends each heading the linter and proof gate require that the file\nlacks. Then fill the body, or invoke `pstack:poteto-agent` with the\ndiff-specific writing instructions to draft it. A comment or\nreview may use a supplied body file when it does not rewrite the pull request\ndescription.\n\nCheck each behavior claim against the final diff and verification evidence.\nPreserve whether a rule is added, removed, or narrowed, and distinguish tests\nadded from tests run. Refresh these claims after a rebase or correction.\n\nWrite the body in the section order `reference\u002Fbody-sections.md` gives: What\nthis does, What changed, Existing work, Proof in practice, Eval for a `feat`\ntitle, Risk, How to revert. Include only claims supported by the final diff.\n\nKeep substantive review and test evidence. Put extensive logs, raw diffs, token\ncounts, and agent transcripts in an existing linked artifact or a closed\n`\u003Cdetails>` section after the primary explanation. Let justified evidence grow\nwithout a total-length cap. A collapsed transcript still needs a useful opening.\n\nLoad a repository's PR-description skill and run the checker command it supplies.\nApply these steps to automated publishers too. A green code check proves no\ndescription claim by itself.\n\n### 3. Run the local linter\n\nResolve the active managed root (`CLAUDE_CONFIG_DIR` when set, `~\u002F.claude`\notherwise), then run `\u003Cmanaged-root>\u002Fscripts\u002Fdurable_post_lint.py` with the\nmatching action and title or body file. Use `pr-create`, `pr-edit`, `pr-comment`,\nor `pr-review`. The linter owns the action-specific body, title, and\nvolatile-path rules.\n\nExit code `0` continues to the next gate. Any non-zero exit stops the action. Fix\nthe named local input and rerun the linter. Do not look up the author or make a\nnetwork call while validation fails.\n\n### 4. Run privacy and artifact checks\n\nInvoke `privacy-hygiene` before the GitHub post. Upload binary evidence with\n`scripts\u002Fgh_artifact_upload.py` and replace local artifact references with\npermanent URLs. Rerun the linter after changing the body.\n\n### 5. Resolve the process-local author\n\nRun `~\u002F.agents\u002Fskills\u002Fpull-request\u002Fscripts\u002Fpull_request.py` (under the agents\nhome, not the repository; a worktree holds no `.agents\u002F` copy) with one\nstructured action and the selected author. The command runs the linter again, resolves\nthe author value, and passes it only to the child `gh` process. It never\nchanges the parent environment or calls `gh auth switch`.\n\nIf the selected author has no usable value, stop and report the account lookup\nfailure. Never print the value.\n\n### 6. Recover a selected legacy record\n\nFollow `reference\u002Flegacy-author-recovery.md` only when the user selects one\nlegacy state file. Mark this step `N\u002FA` otherwise.\n\n### 7. Run the action\n\nRun `pull_request.py` for exactly one of `create`, `edit`, `comment`, or\n`review`. Supply the validated body file path. Treat a non-zero exit as a\nfailed publication and preserve the local inputs for retry.\n\n### 8. Read back the remote state\n\nUse the same selected process-local author for a read-only remote readback.\nConfirm the pull request URL and number, title, body, head SHA, and draft state.\nFor comments and reviews, confirm the new remote entry. Report artifact URLs\nwithout exposing author values.\n\nConfirm the published claims still describe the verified head and preserve the\nscope of its evidence, including whether checks used saved artifacts or a new run.\nRead the remote opening with evidence sections collapsed. Confirm that it explains\nthe change on its own and that the evidence links lead to the cited results.\n\n## Exit handling\n\nStop before network work when authoring, local validation, privacy, or author\nselection fails. A failed action preserves its body and any recovery record.\nReport the generic error and the next required input. A successful action ends\nonly after remote readback proves the requested state.\n\n## Examples\n\nRead `reference\u002Fexamples.md` for a create, a rejected comment, and a recovery.\n\n## Gotchas\n\n- Relative body-file paths depend on the caller directory. Use an absolute path\n  when another process or worktree starts the command.\n- Normal pull request actions never call `gh auth switch`. If that command\n  appears outside explicit recovery, stop.\n- `gh auth switch`, `login`, and `logout` change the account for every session\n  on the machine, and a PreToolUse hook denies them. Scope another account to\n  one command: `GH_TOKEN=$(gh auth token -u \u003Caccount>) gh \u003Ccommand>`.\n- GitHub CLI output can contain account data. The command captures account\n  lookup and recovery output and prints only generic errors.\n\n## File index\n\n| Path | Purpose |\n|---|---|\n| `SKILL.md` | Hub for pull request publication, validation, author selection, recovery, and readback |\n| `reference\u002Fpublication-tasks.md` | Ordered tasks for every publication gate |\n| `reference\u002Flegacy-author-recovery.md` | Recovery of one selected legacy author record |\n| `reference\u002Fexamples.md` | Worked create, rejected comment, and recovery examples |\n| `reference\u002Fbody-sections.md` | Pull request body sections, their order, and what each holds |\n| `scripts\u002Fpull_request.py` | Command for author selection and create, edit, comment, and review actions |\n| `scripts\u002Fgithub_pr_command_constants\u002F` | Constants for pull request actions, recovery, exit codes, and generic messages |\n| `scripts\u002Ftest_pull_request.py` | Tests for `pull_request.py` |\n| `scripts\u002Frecover_legacy_author.py` | Command for one selected legacy author record |\n| `scripts\u002Ftest_github_pr_command_constants.py` | Tests for the command and recovery constants |\n| `scripts\u002Ftest_recover_legacy_author.py` | Tests for `recover_legacy_author.py` |\n| `\u003Cmanaged-root>\u002Fscripts\u002Fdurable_post_lint.py` | Shared action-aware title, body, and path validator |\n| `scripts\u002Fgh_artifact_upload.py` | Helper for permanent GitHub binary evidence URLs |\n| `scripts\u002Ftests\u002Ftest_gh_artifact_upload.py` | Tests for binary evidence upload |\n",{"name":5,"description":7},"main","974284b42eeb4609e94d4ebc1f6e36df400d54ca","packages\u002Fclaude-dev-env\u002F.agents\u002Fskills\u002Fpull-request",1,"https:\u002F\u002Fgithub.com\u002Fjl-cmd-projects\u002Fclaude-dev-env","https:\u002F\u002Fgithub.com\u002Fjl-cmd-projects","2026-11-15 05:02:47",{"source":8,"skillName":5,"commands":31,"prompt":41,"zipAvailable":42},[32,35,38],{"tool":33,"command":34},"npx","npx skills add jl-cmd-projects\u002Fclaude-dev-env --skill pull-request",{"tool":36,"command":37},"bunx","bunx skills add jl-cmd-projects\u002Fclaude-dev-env --skill pull-request",{"tool":39,"command":40},"pnpm","pnpm dlx skills add jl-cmd-projects\u002Fclaude-dev-env --skill pull-request","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjl-cmd-projects\u002Fclaude-dev-env\u002Fblob\u002Fmain\u002Fpackages\u002Fclaude-dev-env\u002F.agents\u002Fskills\u002Fpull-request\u002FSKILL.md",true,[44,50,54,58,62,68,72,76,80,84,88,92],{"path":45,"resourceType":46,"resourceTypeDesc":47,"sizeBytes":48,"sourceHtmlUrl":49},"reference\u002Fbody-sections.md","REFERENCE","参考文档",2574,"https:\u002F\u002Fgithub.com\u002Fjl-cmd-projects\u002Fclaude-dev-env\u002Fblob\u002Fmain\u002Fpackages\u002Fclaude-dev-env\u002F.agents\u002Fskills\u002Fpull-request\u002Freference\u002Fbody-sections.md",{"path":51,"resourceType":46,"resourceTypeDesc":47,"sizeBytes":52,"sourceHtmlUrl":53},"reference\u002Fexamples.md",690,"https:\u002F\u002Fgithub.com\u002Fjl-cmd-projects\u002Fclaude-dev-env\u002Fblob\u002Fmain\u002Fpackages\u002Fclaude-dev-env\u002F.agents\u002Fskills\u002Fpull-request\u002Freference\u002Fexamples.md",{"path":55,"resourceType":46,"resourceTypeDesc":47,"sizeBytes":56,"sourceHtmlUrl":57},"reference\u002Flegacy-author-recovery.md",548,"https:\u002F\u002Fgithub.com\u002Fjl-cmd-projects\u002Fclaude-dev-env\u002Fblob\u002Fmain\u002Fpackages\u002Fclaude-dev-env\u002F.agents\u002Fskills\u002Fpull-request\u002Freference\u002Flegacy-author-recovery.md",{"path":59,"resourceType":46,"resourceTypeDesc":47,"sizeBytes":60,"sourceHtmlUrl":61},"reference\u002Fpublication-tasks.md",1990,"https:\u002F\u002Fgithub.com\u002Fjl-cmd-projects\u002Fclaude-dev-env\u002Fblob\u002Fmain\u002Fpackages\u002Fclaude-dev-env\u002F.agents\u002Fskills\u002Fpull-request\u002Freference\u002Fpublication-tasks.md",{"path":63,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":66,"sourceHtmlUrl":67},"scripts\u002Fgithub_pr_command_constants\u002F__init__.py","SCRIPT","脚本",62,"https:\u002F\u002Fgithub.com\u002Fjl-cmd-projects\u002Fclaude-dev-env\u002Fblob\u002Fmain\u002Fpackages\u002Fclaude-dev-env\u002F.agents\u002Fskills\u002Fpull-request\u002Fscripts\u002Fgithub_pr_command_constants\u002F__init__.py",{"path":69,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":70,"sourceHtmlUrl":71},"scripts\u002Fgithub_pr_command_constants\u002Fconfig\u002F__init__.py",76,"https:\u002F\u002Fgithub.com\u002Fjl-cmd-projects\u002Fclaude-dev-env\u002Fblob\u002Fmain\u002Fpackages\u002Fclaude-dev-env\u002F.agents\u002Fskills\u002Fpull-request\u002Fscripts\u002Fgithub_pr_command_constants\u002Fconfig\u002F__init__.py",{"path":73,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":74,"sourceHtmlUrl":75},"scripts\u002Fgithub_pr_command_constants\u002Fconfig\u002Fconstants.py",3031,"https:\u002F\u002Fgithub.com\u002Fjl-cmd-projects\u002Fclaude-dev-env\u002Fblob\u002Fmain\u002Fpackages\u002Fclaude-dev-env\u002F.agents\u002Fskills\u002Fpull-request\u002Fscripts\u002Fgithub_pr_command_constants\u002Fconfig\u002Fconstants.py",{"path":77,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":78,"sourceHtmlUrl":79},"scripts\u002Fpull_request.py",11570,"https:\u002F\u002Fgithub.com\u002Fjl-cmd-projects\u002Fclaude-dev-env\u002Fblob\u002Fmain\u002Fpackages\u002Fclaude-dev-env\u002F.agents\u002Fskills\u002Fpull-request\u002Fscripts\u002Fpull_request.py",{"path":81,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":82,"sourceHtmlUrl":83},"scripts\u002Frecover_legacy_author.py",7895,"https:\u002F\u002Fgithub.com\u002Fjl-cmd-projects\u002Fclaude-dev-env\u002Fblob\u002Fmain\u002Fpackages\u002Fclaude-dev-env\u002F.agents\u002Fskills\u002Fpull-request\u002Fscripts\u002Frecover_legacy_author.py",{"path":85,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":86,"sourceHtmlUrl":87},"scripts\u002Ftest_github_pr_command_constants.py",2197,"https:\u002F\u002Fgithub.com\u002Fjl-cmd-projects\u002Fclaude-dev-env\u002Fblob\u002Fmain\u002Fpackages\u002Fclaude-dev-env\u002F.agents\u002Fskills\u002Fpull-request\u002Fscripts\u002Ftest_github_pr_command_constants.py",{"path":89,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":90,"sourceHtmlUrl":91},"scripts\u002Ftest_pull_request.py",18175,"https:\u002F\u002Fgithub.com\u002Fjl-cmd-projects\u002Fclaude-dev-env\u002Fblob\u002Fmain\u002Fpackages\u002Fclaude-dev-env\u002F.agents\u002Fskills\u002Fpull-request\u002Fscripts\u002Ftest_pull_request.py",{"path":93,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":94,"sourceHtmlUrl":95},"scripts\u002Ftest_recover_legacy_author.py",7098,"https:\u002F\u002Fgithub.com\u002Fjl-cmd-projects\u002Fclaude-dev-env\u002Fblob\u002Fmain\u002Fpackages\u002Fclaude-dev-env\u002F.agents\u002Fskills\u002Fpull-request\u002Fscripts\u002Ftest_recover_legacy_author.py",[97,104,111,118,125,132],{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":18},"01M78FER7S09AE87MMJFT1E87E","update","Fast-forwards a local repository's main branch to a remote's main after confirming the repo path and source remote through AskUserQuestion. Use when the user says '\u002Fupdate', 'update main', 'fast-forward main', 'sync main from origin', 'pull latest main into \u003Cpath>', or 'bring main up to date'.","https:\u002F\u002Fgithub.com\u002Fjl-cmd-projects\u002Fclaude-dev-env\u002Fblob\u002Fmain\u002Fskill-archive\u002Fupdate\u002FSKILL.md",[],[],{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":18},"01M78FENWZS01MB4PMGX6801X6","source-command-sr-loop","Converging cleanup loop: repeat \u002Fsimplify until clean, then repeat \u002Fcode-review --fix until clean","https:\u002F\u002Fgithub.com\u002Fjl-cmd-projects\u002Fclaude-dev-env\u002Fblob\u002Fmain\u002Fskill-archive\u002Fsource-command-sr-loop\u002FSKILL.md",[],[],{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":117,"publishedAt":18},"01M78FEGZ7JDWEG3RM78M9Y8F8","skill-builder","Skill lifecycle: classify, scaffold, write via the skill-writer-agent, self-audit, compose sub-skills, polish description triggers, enforce deterministic scripts. Triggers: build a skill, new skill workflow, improve this skill, optimize skill description, skill development lifecycle, skill modularity, skill composition, description trigger catalog, deterministic skill scripts.","https:\u002F\u002Fgithub.com\u002Fjl-cmd-projects\u002Fclaude-dev-env\u002Fblob\u002Fmain\u002Fskill-archive\u002Fskill-builder\u002FSKILL.md",[],[],{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":124,"publishedAt":18},"01M78FEDEYHJYKTER9S566DMEZ","session-tidy","Audit, clean, and consolidate session logs in the Obsidian vault. Fixes format drift, resolves orphaned next-steps, updates stale statuses, and generates project rollup summaries. Use when session logs feel cluttered or before starting a new project milestone. Triggers on '\u002Fsession-tidy', 'tidy sessions', 'clean up session logs', 'session audit'.","https:\u002F\u002Fgithub.com\u002Fjl-cmd-projects\u002Fclaude-dev-env\u002Fblob\u002Fmain\u002Fskill-archive\u002Fsession-tidy\u002FSKILL.md",[],[],{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":131,"publishedAt":18},"01M78FE8QR789SKBF3A78N2T13","session-log","Logs a session report as an HTML page, tracks vault context, extracts decisions, and outputs a \u002Frename command. Use for \u002Fsession-log, 'journal this session', 'log this work', 'session report', 'summarize\u002Flog\u002Frecord this session', 'save session', 'capture session', or 'document what we did'.","https:\u002F\u002Fgithub.com\u002Fjl-cmd-projects\u002Fclaude-dev-env\u002Fblob\u002Fmain\u002Fskill-archive\u002Fsession-log\u002FSKILL.md",[],[],{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":138,"publishedAt":18},"01M78FE4JDJHKTJPWRWNQEX2HT","run-claude-dev-env","Build, install, run, and test the claude-dev-env installer. Use when asked to run claude-dev-env, install the Claude Code config into ~\u002F.claude, drive the installer, smoke-test it against a sandbox, or run its test suite.","https:\u002F\u002Fgithub.com\u002Fjl-cmd-projects\u002Fclaude-dev-env\u002Fblob\u002Fmain\u002Fskill-archive\u002Frun-claude-dev-env\u002FSKILL.md",[],[]]