[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DFZ3DQ8SD0ZPTZDQPX1KVT":3,"skill-same:01M6DFZ3DQ8SD0ZPTZDQPX1KVT":82},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":60,"commitSha":61,"skillDirectory":62,"forksCount":63,"repositoryHtmlUrl":64,"repositoryHomepageUrl":6,"ownerHtmlUrl":65,"ownerBlogUrl":6,"ownerDescription":66,"updatedAt":67,"install":68,"resources":81},"01M6DFZ3DQ8SD0ZPTZDQPX1KVT","github-repo-management",null,"Clone\u002Fcreate\u002Ffork repos; manage remotes, releases.","zapabob\u002FSkills","zapabob","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F130830376?v=4","01M6DBMYZAGRTFQDSQYW3W764P","峯岸 亮","01M6DBMZ3GKDSJ01NZ9XTZD7JD",2,"MIT","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Farchive\u002Fskill-md-reviewed\u002Fsha256\u002F55\u002F5515fc95199b3a5f9488b2d632c24dd1b02f5a203a81ac63baaff1904268641b\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"github","github repo management","management","repo","configuration","macos","manage","releases","hermes agent","hermes","secrets","issues","git","create","pr","windows","repos","auth","workflow","linux","2026-11-10 10:12:30",false,"---\nname: github-repo-management\ndescription: \"Clone\u002Fcreate\u002Ffork repos; manage remotes, releases.\"\nversion: 1.1.0\nauthor: Hermes Agent\nlicense: MIT\nplatforms: [linux, macos, windows]\nmetadata:\n  hermes:\n    tags: [GitHub, Repositories, Git, Releases, Secrets, Configuration]\n    related_skills: [github-auth, github-pr-workflow, github-issues]\n---\n\n# GitHub Repository Management\n\nCreate, clone, fork, configure, and manage GitHub repositories. Each section shows `gh` first, then the `git` + `curl` fallback.\n\n## Hermes Desktop Git operations\n\nFor Desktop Git CRUD, read `references\u002Fdesktop-git-agent-operations.md`\nwith `read_file` before acting. Use `terminal` in the session's authorized\nrepository, preserve its approval policy, stage explicit files and verify\nGit exit codes and resulting refs. Use `focus_pane` with `pane=\"review\"`\nto show the result in Desktop. The guide covers branches, tags, worktrees,\nstaging, stashes, commits and publication. Do not extract dashboard tokens,\ninvoke renderer IPC directly, or substitute force operations after failure.\n\n## Prerequisites\n\n- Authenticated with GitHub (see `github-auth` skill)\n\n### Setup\n\n```bash\nif command -v gh &>\u002Fdev\u002Fnull && gh auth status &>\u002Fdev\u002Fnull; then\n  AUTH=\"gh\"\nelse\n  AUTH=\"git\"\n  if [ -z \"$GITHUB_TOKEN\" ]; then\n    if _hermes_env=\"${HERMES_HOME:-$HOME\u002F.hermes}\u002F.env\"; [ -f \"$_hermes_env\" ] && grep -q \"^GITHUB_TOKEN=\" \"$_hermes_env\"; then\n      GITHUB_TOKEN=$(grep \"^GITHUB_TOKEN=\" \"$_hermes_env\" | head -1 | cut -d= -f2 | tr -d '\\n\\r')\n    elif grep -q \"github.com\" ~\u002F.git-credentials 2>\u002Fdev\u002Fnull; then\n      GITHUB_TOKEN=$(uv run python \"${HERMES_HOME:-$HOME\u002F.hermes}\u002Fskills\u002Fgithub\u002Fgithub-auth\u002Fscripts\u002Fgit-credential-token.py\")\n    fi\n  fi\nfi\n\n# Get your GitHub username (needed for several operations)\nif [ \"$AUTH\" = \"gh\" ]; then\n  GH_USER=$(gh api user --jq '.login')\nelse\n  GH_USER=$(curl -s -H \"Authorization: token $GITHUB_TOKEN\" https:\u002F\u002Fapi.github.com\u002Fuser | python -c \"import sys,json; print(json.load(sys.stdin)['login'])\")\nfi\n```\n\nIf you're inside a repo already:\n\n```bash\nREMOTE_URL=$(git remote get-url origin)\nOWNER_REPO=$(echo \"$REMOTE_URL\" | sed -E 's|.*github\\.com[:\u002F]||; s|\\.git$||')\nOWNER=$(echo \"$OWNER_REPO\" | cut -d\u002F -f1)\nREPO=$(echo \"$OWNER_REPO\" | cut -d\u002F -f2)\n```\n\n---\n\n## 1. Cloning Repositories\n\nCloning is pure `git` — works identically either way:\n\n```bash\n# Clone via HTTPS (works with credential helper or token-embedded URL)\ngit clone https:\u002F\u002Fgithub.com\u002Fowner\u002Frepo-name.git\n\n# Clone into a specific directory\ngit clone https:\u002F\u002Fgithub.com\u002Fowner\u002Frepo-name.git .\u002Fmy-local-dir\n\n# Shallow clone (faster for large repos)\ngit clone --depth 1 https:\u002F\u002Fgithub.com\u002Fowner\u002Frepo-name.git\n\n# Clone a specific branch\ngit clone --branch develop https:\u002F\u002Fgithub.com\u002Fowner\u002Frepo-name.git\n\n# Clone via SSH (if SSH is configured)\ngit clone [REDACTED_EMAIL]:owner\u002Frepo-name.git\n```\n\n**With gh (shorthand):**\n\n```bash\ngh repo clone owner\u002Frepo-name\ngh repo clone owner\u002Frepo-name -- --depth 1\n```\n\n## 2. Creating Repositories\n\n**With gh:**\n\n```bash\n# Create a public repo and clone it\ngh repo create my-new-project --public --clone\n\n# Private, with description and license\ngh repo create my-new-project --private --description \"A useful tool\" --license MIT --clone\n\n# Under an organization\ngh repo create my-org\u002Fmy-new-project --public --clone\n\n# From existing local directory\ncd \u002Fpath\u002Fto\u002Fexisting\u002Fproject\ngh repo create my-project --source . --public --push\n```\n\n**With git + curl:**\n\n```bash\n# Create the remote repo via API\ncurl -s -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Fuser\u002Frepos \\\n  -d '{\n    \"name\": \"my-new-project\",\n    \"description\": \"A useful tool\",\n    \"private\": false,\n    \"auto_init\": true,\n    \"license_template\": \"mit\"\n  }'\n\n# Clone it\ngit clone https:\u002F\u002Fgithub.com\u002F$GH_USER\u002Fmy-new-project.git\ncd my-new-project\n\n# -- OR -- push an existing local directory to the new repo\ncd \u002Fpath\u002Fto\u002Fexisting\u002Fproject\ngit init\ngit add .\ngit commit -m \"Initial commit\"\ngit remote add origin https:\u002F\u002Fgithub.com\u002F$GH_USER\u002Fmy-new-project.git\ngit push -u origin main\n```\n\nTo create under an organization:\n\n```bash\ncurl -s -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Forgs\u002Fmy-org\u002Frepos \\\n  -d '{\"name\": \"my-new-project\", \"private\": false}'\n```\n\n### From a Template\n\n**With gh:**\n\n```bash\ngh repo create my-new-app --template owner\u002Ftemplate-repo --public --clone\n```\n\n**With curl:**\n\n```bash\ncurl -s -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002Fowner\u002Ftemplate-repo\u002Fgenerate \\\n  -d '{\"owner\": \"'\"$GH_USER\"'\", \"name\": \"my-new-app\", \"private\": false}'\n```\n\n## 3. Forking Repositories\n\n**With gh:**\n\n```bash\ngh repo fork owner\u002Frepo-name --clone\n```\n\n**With git + curl:**\n\n```bash\n# Create the fork via API\ncurl -s -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002Fowner\u002Frepo-name\u002Fforks\n\n# Wait a moment for GitHub to create it, then clone\nsleep 3\ngit clone https:\u002F\u002Fgithub.com\u002F$GH_USER\u002Frepo-name.git\ncd repo-name\n\n# Add the original repo as \"upstream\" remote\ngit remote add upstream https:\u002F\u002Fgithub.com\u002Fowner\u002Frepo-name.git\n```\n\n### Keeping a Fork in Sync\n\n```bash\n# Pure git — works everywhere\ngit fetch upstream\ngit checkout main\ngit merge upstream\u002Fmain\ngit push origin main\n```\n\n**With gh (shortcut):**\n\n```bash\ngh repo sync $GH_USER\u002Frepo-name\n```\n\n## 4. Repository Information\n\n**With gh:**\n\n```bash\ngh repo view owner\u002Frepo-name\ngh repo list --limit 20\ngh search repos \"machine learning\" --language python --sort stars\n```\n\n**With curl:**\n\n```bash\n# View repo details\ncurl -s \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO \\\n  | python -c \"\nimport sys, json\nr = json.load(sys.stdin)\nprint(f\\\"Name: {r['full_name']}\\\")\nprint(f\\\"Description: {r['description']}\\\")\nprint(f\\\"Stars: {r['stargazers_count']}  Forks: {r['forks_count']}\\\")\nprint(f\\\"Default branch: {r['default_branch']}\\\")\nprint(f\\\"Language: {r['language']}\\\")\"\n\n# List your repos\ncurl -s \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  \"https:\u002F\u002Fapi.github.com\u002Fuser\u002Frepos?per_page=20&sort=updated\" \\\n  | python -c \"\nimport sys, json\nfor r in json.load(sys.stdin):\n    vis = 'private' if r['private'] else 'public'\n    print(f\\\"  {r['full_name']:40}  {vis:8}  {r.get('language', ''):10}  ★{r['stargazers_count']}\\\")\"\n\n# Search repos\ncurl -s \\\n  \"https:\u002F\u002Fapi.github.com\u002Fsearch\u002Frepositories?q=machine+learning+language:python&sort=stars&per_page=10\" \\\n  | python -c \"\nimport sys, json\nfor r in json.load(sys.stdin)['items']:\n    print(f\\\"  {r['full_name']:40}  ★{r['stargazers_count']:6}  {r['description'][:60] if r['description'] else ''}\\\")\"\n```\n\n## 5. Repository Settings\n\n**With gh:**\n\n```bash\ngh repo edit --description \"Updated description\" --visibility public\ngh repo edit --enable-wiki=false --enable-issues=true\ngh repo edit --default-branch main\ngh repo edit --add-topic \"machine-learning,python\"\ngh repo edit --enable-auto-merge\n```\n\n**With curl:**\n\n```bash\ncurl -s -X PATCH \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO \\\n  -d '{\n    \"description\": \"Updated description\",\n    \"has_wiki\": false,\n    \"has_issues\": true,\n    \"allow_auto_merge\": true\n  }'\n\n# Update topics\ncurl -s -X PUT \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  -H \"Accept: application\u002Fvnd.github.mercy-preview+json\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Ftopics \\\n  -d '{\"names\": [\"machine-learning\", \"python\", \"automation\"]}'\n```\n\n## 6. Branch Protection\n\n```bash\n# View current protection\ncurl -s \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Fbranches\u002Fmain\u002Fprotection\n\n# Set up branch protection\ncurl -s -X PUT \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Fbranches\u002Fmain\u002Fprotection \\\n  -d '{\n    \"required_status_checks\": {\n      \"strict\": true,\n      \"contexts\": [\"ci\u002Ftest\", \"ci\u002Flint\"]\n    },\n    \"enforce_admins\": false,\n    \"required_pull_request_reviews\": {\n      \"required_approving_review_count\": 1\n    },\n    \"restrictions\": null\n  }'\n```\n\n## 7. Secrets Management (GitHub Actions)\n\n**With gh:**\n\n```bash\ngh secret set API_KEY --body \"your-secret-value\"\ngh secret set SSH_KEY \u003C ~\u002F.ssh\u002Fid_rsa\ngh secret list\ngh secret delete API_KEY\n```\n\n**With curl:**\n\nSecrets require encryption with the repo's public key — more involved via API:\n\n```bash\n# Get the repo's public key for encrypting secrets\ncurl -s \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Factions\u002Fsecrets\u002Fpublic-key\n\n# Encrypt and set (requires Python with PyNaCl)\npython -c \"\nfrom base64 import b64encode\nfrom nacl import encoding, public\nimport json, sys\n\n# Get the public key\nkey_id = '\u003Ckey_id_from_above>'\npublic_key = '\u003Cbase64_key_from_above>'\n\n# Encrypt\nsealed = public.SealedBox(\n    public.PublicKey(public_key.encode('utf-8'), encoding.Base64Encoder)\n).encrypt('your-secret-value'.encode('utf-8'))\nprint(json.dumps({\n    'encrypted_value': b64encode(sealed).decode('utf-8'),\n    'key_id': key_id\n}))\"\n\n# Then PUT the encrypted secret\ncurl -s -X PUT \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Factions\u002Fsecrets\u002FAPI_KEY \\\n  -d '\u003Coutput from python script above>'\n\n# List secrets (names only, values hidden)\ncurl -s \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Factions\u002Fsecrets \\\n  | python -c \"\nimport sys, json\nfor s in json.load(sys.stdin)['secrets']:\n    print(f\\\"  {s['name']:30}  updated: {s['updated_at']}\\\")\"\n```\n\nNote: For secrets, `gh secret set` is dramatically simpler. If setting secrets is needed and `gh` isn't available, recommend installing it for just that operation.\n\n## 8. Releases\n\n**With gh:**\n\n```bash\ngh release create v1.0.0 --title \"v1.0.0\" --generate-notes\ngh release create v2.0.0-rc1 --draft --prerelease --generate-notes\ngh release create v1.0.0 .\u002Fdist\u002Fbinary --title \"v1.0.0\" --notes \"Release notes\"\ngh release list\ngh release download v1.0.0 --dir .\u002Fdownloads\n```\n\n**With curl:**\n\n```bash\n# Create a release\ncurl -s -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Freleases \\\n  -d '{\n    \"tag_name\": \"v1.0.0\",\n    \"name\": \"v1.0.0\",\n    \"body\": \"## Changelog\\n- Feature A\\n- Bug fix B\",\n    \"draft\": false,\n    \"prerelease\": false,\n    \"generate_release_notes\": true\n  }'\n\n# List releases\ncurl -s \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Freleases \\\n  | python -c \"\nimport sys, json\nfor r in json.load(sys.stdin):\n    tag = r.get('tag_name', 'no tag')\n    print(f\\\"  {tag:15}  {r['name']:30}  {'draft' if r['draft'] else 'published'}\\\")\"\n\n# Upload a release asset (binary file)\nRELEASE_ID=\u003Cid_from_create_response>\ncurl -s -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  -H \"Content-Type: application\u002Foctet-stream\" \\\n  \"https:\u002F\u002Fuploads.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Freleases\u002F$RELEASE_ID\u002Fassets?name=binary-amd64\" \\\n  --data-binary @.\u002Fdist\u002Fbinary-amd64\n```\n\n## 9. GitHub Actions Workflows\n\n**With gh:**\n\n```bash\ngh workflow list\ngh run list --limit 10\ngh run view \u003CRUN_ID>\ngh run view \u003CRUN_ID> --log-failed\ngh run rerun \u003CRUN_ID>\ngh run rerun \u003CRUN_ID> --failed\ngh workflow run ci.yaml --ref main\ngh workflow run deploy.yml -f environment=staging\n```\n\n**With curl:**\n\n```bash\n# List workflows\ncurl -s \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Factions\u002Fworkflows \\\n  | python -c \"\nimport sys, json\nfor w in json.load(sys.stdin)['workflows']:\n    print(f\\\"  {w['id']:10}  {w['name']:30}  {w['state']}\\\")\"\n\n# List recent runs\ncurl -s \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  \"https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Factions\u002Fruns?per_page=10\" \\\n  | python -c \"\nimport sys, json\nfor r in json.load(sys.stdin)['workflow_runs']:\n    print(f\\\"  Run {r['id']}  {r['name']:30}  {r['conclusion'] or r['status']}\\\")\"\n\n# Download failed run logs\nRUN_ID=\u003Crun_id>\ncurl -s -L \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Factions\u002Fruns\u002F$RUN_ID\u002Flogs \\\n  -o \u002Ftmp\u002Fci-logs.zip\ncd \u002Ftmp && unzip -o ci-logs.zip -d ci-logs\n\n# Re-run a failed workflow\ncurl -s -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Factions\u002Fruns\u002F$RUN_ID\u002Frerun\n\n# Re-run only failed jobs\ncurl -s -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Factions\u002Fruns\u002F$RUN_ID\u002Frerun-failed-jobs\n\n# Trigger a workflow manually (workflow_dispatch)\nWORKFLOW_ID=\u003Cworkflow_id_or_filename>\ncurl -s -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Factions\u002Fworkflows\u002F$WORKFLOW_ID\u002Fdispatches \\\n  -d '{\"ref\": \"main\", \"inputs\": {\"environment\": \"staging\"}}'\n```\n\n## 10. Gists\n\n**With gh:**\n\n```bash\ngh gist create script.py --public --desc \"Useful script\"\ngh gist list\n```\n\n**With curl:**\n\n```bash\n# Create a gist\ncurl -s -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Fgists \\\n  -d '{\n    \"description\": \"Useful script\",\n    \"public\": true,\n    \"files\": {\n      \"script.py\": {\"content\": \"print(\\\"hello\\\")\"}\n    }\n  }'\n\n# List your gists\ncurl -s \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Fgists \\\n  | python -c \"\nimport sys, json\nfor g in json.load(sys.stdin):\n    files = ', '.join(g['files'].keys())\n    print(f\\\"  {g['id']}  {g['description'] or '(no desc)':40}  {files}\\\")\"\n```\n\n## Quick Reference Table\n\n| Action | gh | git + curl |\n|--------|-----|-----------|\n| Clone | `gh repo clone o\u002Fr` | `git clone https:\u002F\u002Fgithub.com\u002Fo\u002Fr.git` |\n| Create repo | `gh repo create name --public` | `curl POST \u002Fuser\u002Frepos` |\n| Fork | `gh repo fork o\u002Fr --clone` | `curl POST \u002Frepos\u002Fo\u002Fr\u002Fforks` + `git clone` |\n| Repo info | `gh repo view o\u002Fr` | `curl GET \u002Frepos\u002Fo\u002Fr` |\n| Edit settings | `gh repo edit --...` | `curl PATCH \u002Frepos\u002Fo\u002Fr` |\n| Create release | `gh release create v1.0` | `curl POST \u002Frepos\u002Fo\u002Fr\u002Freleases` |\n| List workflows | `gh workflow list` | `curl GET \u002Frepos\u002Fo\u002Fr\u002Factions\u002Fworkflows` |\n| Rerun CI | `gh run rerun ID` | `curl POST \u002Frepos\u002Fo\u002Fr\u002Factions\u002Fruns\u002FID\u002Frerun` |\n| Set secret | `gh secret set KEY` | `curl PUT \u002Frepos\u002Fo\u002Fr\u002Factions\u002Fsecrets\u002FKEY` (+ encryption) |\n","# GitHub Repository Management\n\nCreate, clone, fork, configure, and manage GitHub repositories. Each section shows `gh` first, then the `git` + `curl` fallback.\n\n## Hermes Desktop Git operations\n\nFor Desktop Git CRUD, read `references\u002Fdesktop-git-agent-operations.md`\nwith `read_file` before acting. Use `terminal` in the session's authorized\nrepository, preserve its approval policy, stage explicit files and verify\nGit exit codes and resulting refs. Use `focus_pane` with `pane=\"review\"`\nto show the result in Desktop. The guide covers branches, tags, worktrees,\nstaging, stashes, commits and publication. Do not extract dashboard tokens,\ninvoke renderer IPC directly, or substitute force operations after failure.\n\n## Prerequisites\n\n- Authenticated with GitHub (see `github-auth` skill)\n\n### Setup\n\n```bash\nif command -v gh &>\u002Fdev\u002Fnull && gh auth status &>\u002Fdev\u002Fnull; then\n  AUTH=\"gh\"\nelse\n  AUTH=\"git\"\n  if [ -z \"$GITHUB_TOKEN\" ]; then\n    if _hermes_env=\"${HERMES_HOME:-$HOME\u002F.hermes}\u002F.env\"; [ -f \"$_hermes_env\" ] && grep -q \"^GITHUB_TOKEN=\" \"$_hermes_env\"; then\n      GITHUB_TOKEN=$(grep \"^GITHUB_TOKEN=\" \"$_hermes_env\" | head -1 | cut -d= -f2 | tr -d '\\n\\r')\n    elif grep -q \"github.com\" ~\u002F.git-credentials 2>\u002Fdev\u002Fnull; then\n      GITHUB_TOKEN=$(uv run python \"${HERMES_HOME:-$HOME\u002F.hermes}\u002Fskills\u002Fgithub\u002Fgithub-auth\u002Fscripts\u002Fgit-credential-token.py\")\n    fi\n  fi\nfi\n\n# Get your GitHub username (needed for several operations)\nif [ \"$AUTH\" = \"gh\" ]; then\n  GH_USER=$(gh api user --jq '.login')\nelse\n  GH_USER=$(curl -s -H \"Authorization: token $GITHUB_TOKEN\" https:\u002F\u002Fapi.github.com\u002Fuser | python -c \"import sys,json; print(json.load(sys.stdin)['login'])\")\nfi\n```\n\nIf you're inside a repo already:\n\n```bash\nREMOTE_URL=$(git remote get-url origin)\nOWNER_REPO=$(echo \"$REMOTE_URL\" | sed -E 's|.*github\\.com[:\u002F]||; s|\\.git$||')\nOWNER=$(echo \"$OWNER_REPO\" | cut -d\u002F -f1)\nREPO=$(echo \"$OWNER_REPO\" | cut -d\u002F -f2)\n```\n\n---\n\n## 1. Cloning Repositories\n\nCloning is pure `git` — works identically either way:\n\n```bash\n# Clone via HTTPS (works with credential helper or token-embedded URL)\ngit clone https:\u002F\u002Fgithub.com\u002Fowner\u002Frepo-name.git\n\n# Clone into a specific directory\ngit clone https:\u002F\u002Fgithub.com\u002Fowner\u002Frepo-name.git .\u002Fmy-local-dir\n\n# Shallow clone (faster for large repos)\ngit clone --depth 1 https:\u002F\u002Fgithub.com\u002Fowner\u002Frepo-name.git\n\n# Clone a specific branch\ngit clone --branch develop https:\u002F\u002Fgithub.com\u002Fowner\u002Frepo-name.git\n\n# Clone via SSH (if SSH is configured)\ngit clone [REDACTED_EMAIL]:owner\u002Frepo-name.git\n```\n\n**With gh (shorthand):**\n\n```bash\ngh repo clone owner\u002Frepo-name\ngh repo clone owner\u002Frepo-name -- --depth 1\n```\n\n## 2. Creating Repositories\n\n**With gh:**\n\n```bash\n# Create a public repo and clone it\ngh repo create my-new-project --public --clone\n\n# Private, with description and license\ngh repo create my-new-project --private --description \"A useful tool\" --license MIT --clone\n\n# Under an organization\ngh repo create my-org\u002Fmy-new-project --public --clone\n\n# From existing local directory\ncd \u002Fpath\u002Fto\u002Fexisting\u002Fproject\ngh repo create my-project --source . --public --push\n```\n\n**With git + curl:**\n\n```bash\n# Create the remote repo via API\ncurl -s -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Fuser\u002Frepos \\\n  -d '{\n    \"name\": \"my-new-project\",\n    \"description\": \"A useful tool\",\n    \"private\": false,\n    \"auto_init\": true,\n    \"license_template\": \"mit\"\n  }'\n\n# Clone it\ngit clone https:\u002F\u002Fgithub.com\u002F$GH_USER\u002Fmy-new-project.git\ncd my-new-project\n\n# -- OR -- push an existing local directory to the new repo\ncd \u002Fpath\u002Fto\u002Fexisting\u002Fproject\ngit init\ngit add .\ngit commit -m \"Initial commit\"\ngit remote add origin https:\u002F\u002Fgithub.com\u002F$GH_USER\u002Fmy-new-project.git\ngit push -u origin main\n```\n\nTo create under an organization:\n\n```bash\ncurl -s -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Forgs\u002Fmy-org\u002Frepos \\\n  -d '{\"name\": \"my-new-project\", \"private\": false}'\n```\n\n### From a Template\n\n**With gh:**\n\n```bash\ngh repo create my-new-app --template owner\u002Ftemplate-repo --public --clone\n```\n\n**With curl:**\n\n```bash\ncurl -s -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002Fowner\u002Ftemplate-repo\u002Fgenerate \\\n  -d '{\"owner\": \"'\"$GH_USER\"'\", \"name\": \"my-new-app\", \"private\": false}'\n```\n\n## 3. Forking Repositories\n\n**With gh:**\n\n```bash\ngh repo fork owner\u002Frepo-name --clone\n```\n\n**With git + curl:**\n\n```bash\n# Create the fork via API\ncurl -s -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002Fowner\u002Frepo-name\u002Fforks\n\n# Wait a moment for GitHub to create it, then clone\nsleep 3\ngit clone https:\u002F\u002Fgithub.com\u002F$GH_USER\u002Frepo-name.git\ncd repo-name\n\n# Add the original repo as \"upstream\" remote\ngit remote add upstream https:\u002F\u002Fgithub.com\u002Fowner\u002Frepo-name.git\n```\n\n### Keeping a Fork in Sync\n\n```bash\n# Pure git — works everywhere\ngit fetch upstream\ngit checkout main\ngit merge upstream\u002Fmain\ngit push origin main\n```\n\n**With gh (shortcut):**\n\n```bash\ngh repo sync $GH_USER\u002Frepo-name\n```\n\n## 4. Repository Information\n\n**With gh:**\n\n```bash\ngh repo view owner\u002Frepo-name\ngh repo list --limit 20\ngh search repos \"machine learning\" --language python --sort stars\n```\n\n**With curl:**\n\n```bash\n# View repo details\ncurl -s \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO \\\n  | python -c \"\nimport sys, json\nr = json.load(sys.stdin)\nprint(f\\\"Name: {r['full_name']}\\\")\nprint(f\\\"Description: {r['description']}\\\")\nprint(f\\\"Stars: {r['stargazers_count']}  Forks: {r['forks_count']}\\\")\nprint(f\\\"Default branch: {r['default_branch']}\\\")\nprint(f\\\"Language: {r['language']}\\\")\"\n\n# List your repos\ncurl -s \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  \"https:\u002F\u002Fapi.github.com\u002Fuser\u002Frepos?per_page=20&sort=updated\" \\\n  | python -c \"\nimport sys, json\nfor r in json.load(sys.stdin):\n    vis = 'private' if r['private'] else 'public'\n    print(f\\\"  {r['full_name']:40}  {vis:8}  {r.get('language', ''):10}  ★{r['stargazers_count']}\\\")\"\n\n# Search repos\ncurl -s \\\n  \"https:\u002F\u002Fapi.github.com\u002Fsearch\u002Frepositories?q=machine+learning+language:python&sort=stars&per_page=10\" \\\n  | python -c \"\nimport sys, json\nfor r in json.load(sys.stdin)['items']:\n    print(f\\\"  {r['full_name']:40}  ★{r['stargazers_count']:6}  {r['description'][:60] if r['description'] else ''}\\\")\"\n```\n\n## 5. Repository Settings\n\n**With gh:**\n\n```bash\ngh repo edit --description \"Updated description\" --visibility public\ngh repo edit --enable-wiki=false --enable-issues=true\ngh repo edit --default-branch main\ngh repo edit --add-topic \"machine-learning,python\"\ngh repo edit --enable-auto-merge\n```\n\n**With curl:**\n\n```bash\ncurl -s -X PATCH \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO \\\n  -d '{\n    \"description\": \"Updated description\",\n    \"has_wiki\": false,\n    \"has_issues\": true,\n    \"allow_auto_merge\": true\n  }'\n\n# Update topics\ncurl -s -X PUT \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  -H \"Accept: application\u002Fvnd.github.mercy-preview+json\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Ftopics \\\n  -d '{\"names\": [\"machine-learning\", \"python\", \"automation\"]}'\n```\n\n## 6. Branch Protection\n\n```bash\n# View current protection\ncurl -s \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Fbranches\u002Fmain\u002Fprotection\n\n# Set up branch protection\ncurl -s -X PUT \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Fbranches\u002Fmain\u002Fprotection \\\n  -d '{\n    \"required_status_checks\": {\n      \"strict\": true,\n      \"contexts\": [\"ci\u002Ftest\", \"ci\u002Flint\"]\n    },\n    \"enforce_admins\": false,\n    \"required_pull_request_reviews\": {\n      \"required_approving_review_count\": 1\n    },\n    \"restrictions\": null\n  }'\n```\n\n## 7. Secrets Management (GitHub Actions)\n\n**With gh:**\n\n```bash\ngh secret set API_KEY --body \"your-secret-value\"\ngh secret set SSH_KEY \u003C ~\u002F.ssh\u002Fid_rsa\ngh secret list\ngh secret delete API_KEY\n```\n\n**With curl:**\n\nSecrets require encryption with the repo's public key — more involved via API:\n\n```bash\n# Get the repo's public key for encrypting secrets\ncurl -s \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Factions\u002Fsecrets\u002Fpublic-key\n\n# Encrypt and set (requires Python with PyNaCl)\npython -c \"\nfrom base64 import b64encode\nfrom nacl import encoding, public\nimport json, sys\n\n# Get the public key\nkey_id = '\u003Ckey_id_from_above>'\npublic_key = '\u003Cbase64_key_from_above>'\n\n# Encrypt\nsealed = public.SealedBox(\n    public.PublicKey(public_key.encode('utf-8'), encoding.Base64Encoder)\n).encrypt('your-secret-value'.encode('utf-8'))\nprint(json.dumps({\n    'encrypted_value': b64encode(sealed).decode('utf-8'),\n    'key_id': key_id\n}))\"\n\n# Then PUT the encrypted secret\ncurl -s -X PUT \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Factions\u002Fsecrets\u002FAPI_KEY \\\n  -d '\u003Coutput from python script above>'\n\n# List secrets (names only, values hidden)\ncurl -s \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Factions\u002Fsecrets \\\n  | python -c \"\nimport sys, json\nfor s in json.load(sys.stdin)['secrets']:\n    print(f\\\"  {s['name']:30}  updated: {s['updated_at']}\\\")\"\n```\n\nNote: For secrets, `gh secret set` is dramatically simpler. If setting secrets is needed and `gh` isn't available, recommend installing it for just that operation.\n\n## 8. Releases\n\n**With gh:**\n\n```bash\ngh release create v1.0.0 --title \"v1.0.0\" --generate-notes\ngh release create v2.0.0-rc1 --draft --prerelease --generate-notes\ngh release create v1.0.0 .\u002Fdist\u002Fbinary --title \"v1.0.0\" --notes \"Release notes\"\ngh release list\ngh release download v1.0.0 --dir .\u002Fdownloads\n```\n\n**With curl:**\n\n```bash\n# Create a release\ncurl -s -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Freleases \\\n  -d '{\n    \"tag_name\": \"v1.0.0\",\n    \"name\": \"v1.0.0\",\n    \"body\": \"## Changelog\\n- Feature A\\n- Bug fix B\",\n    \"draft\": false,\n    \"prerelease\": false,\n    \"generate_release_notes\": true\n  }'\n\n# List releases\ncurl -s \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Freleases \\\n  | python -c \"\nimport sys, json\nfor r in json.load(sys.stdin):\n    tag = r.get('tag_name', 'no tag')\n    print(f\\\"  {tag:15}  {r['name']:30}  {'draft' if r['draft'] else 'published'}\\\")\"\n\n# Upload a release asset (binary file)\nRELEASE_ID=\u003Cid_from_create_response>\ncurl -s -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  -H \"Content-Type: application\u002Foctet-stream\" \\\n  \"https:\u002F\u002Fuploads.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Freleases\u002F$RELEASE_ID\u002Fassets?name=binary-amd64\" \\\n  --data-binary @.\u002Fdist\u002Fbinary-amd64\n```\n\n## 9. GitHub Actions Workflows\n\n**With gh:**\n\n```bash\ngh workflow list\ngh run list --limit 10\ngh run view \u003CRUN_ID>\ngh run view \u003CRUN_ID> --log-failed\ngh run rerun \u003CRUN_ID>\ngh run rerun \u003CRUN_ID> --failed\ngh workflow run ci.yaml --ref main\ngh workflow run deploy.yml -f environment=staging\n```\n\n**With curl:**\n\n```bash\n# List workflows\ncurl -s \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Factions\u002Fworkflows \\\n  | python -c \"\nimport sys, json\nfor w in json.load(sys.stdin)['workflows']:\n    print(f\\\"  {w['id']:10}  {w['name']:30}  {w['state']}\\\")\"\n\n# List recent runs\ncurl -s \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  \"https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Factions\u002Fruns?per_page=10\" \\\n  | python -c \"\nimport sys, json\nfor r in json.load(sys.stdin)['workflow_runs']:\n    print(f\\\"  Run {r['id']}  {r['name']:30}  {r['conclusion'] or r['status']}\\\")\"\n\n# Download failed run logs\nRUN_ID=\u003Crun_id>\ncurl -s -L \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Factions\u002Fruns\u002F$RUN_ID\u002Flogs \\\n  -o \u002Ftmp\u002Fci-logs.zip\ncd \u002Ftmp && unzip -o ci-logs.zip -d ci-logs\n\n# Re-run a failed workflow\ncurl -s -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Factions\u002Fruns\u002F$RUN_ID\u002Frerun\n\n# Re-run only failed jobs\ncurl -s -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Factions\u002Fruns\u002F$RUN_ID\u002Frerun-failed-jobs\n\n# Trigger a workflow manually (workflow_dispatch)\nWORKFLOW_ID=\u003Cworkflow_id_or_filename>\ncurl -s -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Frepos\u002F$OWNER\u002F$REPO\u002Factions\u002Fworkflows\u002F$WORKFLOW_ID\u002Fdispatches \\\n  -d '{\"ref\": \"main\", \"inputs\": {\"environment\": \"staging\"}}'\n```\n\n## 10. Gists\n\n**With gh:**\n\n```bash\ngh gist create script.py --public --desc \"Useful script\"\ngh gist list\n```\n\n**With curl:**\n\n```bash\n# Create a gist\ncurl -s -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Fgists \\\n  -d '{\n    \"description\": \"Useful script\",\n    \"public\": true,\n    \"files\": {\n      \"script.py\": {\"content\": \"print(\\\"hello\\\")\"}\n    }\n  }'\n\n# List your gists\ncurl -s \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  https:\u002F\u002Fapi.github.com\u002Fgists \\\n  | python -c \"\nimport sys, json\nfor g in json.load(sys.stdin):\n    files = ', '.join(g['files'].keys())\n    print(f\\\"  {g['id']}  {g['description'] or '(no desc)':40}  {files}\\\")\"\n```\n\n## Quick Reference Table\n\n| Action | gh | git + curl |\n|--------|-----|-----------|\n| Clone | `gh repo clone o\u002Fr` | `git clone https:\u002F\u002Fgithub.com\u002Fo\u002Fr.git` |\n| Create repo | `gh repo create name --public` | `curl POST \u002Fuser\u002Frepos` |\n| Fork | `gh repo fork o\u002Fr --clone` | `curl POST \u002Frepos\u002Fo\u002Fr\u002Fforks` + `git clone` |\n| Repo info | `gh repo view o\u002Fr` | `curl GET \u002Frepos\u002Fo\u002Fr` |\n| Edit settings | `gh repo edit --...` | `curl PATCH \u002Frepos\u002Fo\u002Fr` |\n| Create release | `gh release create v1.0` | `curl POST \u002Frepos\u002Fo\u002Fr\u002Freleases` |\n| List workflows | `gh workflow list` | `curl GET \u002Frepos\u002Fo\u002Fr\u002Factions\u002Fworkflows` |\n| Rerun CI | `gh run rerun ID` | `curl POST \u002Frepos\u002Fo\u002Fr\u002Factions\u002Fruns\u002FID\u002Frerun` |\n| Set secret | `gh secret set KEY` | `curl PUT \u002Frepos\u002Fo\u002Fr\u002Factions\u002Fsecrets\u002FKEY` (+ encryption) |\n",{"name":5,"author":44,"license":15,"version":45,"metadata":46,"platforms":59,"description":7},"Hermes Agent","1.1.0",{"hermes":47},{"tags":48,"related_skills":55},[49,50,51,52,53,54],"GitHub","Repositories","Git","Releases","Secrets","Configuration",[56,57,58],"github-auth","github-pr-workflow","github-issues",[38,24,34],"main","0d1434f89f4bc6b07e9d272accd8c1013768820f","archive\u002Fskill-md-reviewed\u002Fsha256\u002F55\u002F5515fc95199b3a5f9488b2d632c24dd1b02f5a203a81ac63baaff1904268641b",0,"https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills","https:\u002F\u002Fgithub.com\u002Fzapabob","The Open University of JAPAN　2019-now\r\n\r\nTokyo University of Science　2007-2010","2026-10-26 16:29:01",{"source":8,"skillName":5,"commands":69,"prompt":79,"zipAvailable":80},[70,73,76],{"tool":71,"command":72},"npx","npx skills add zapabob\u002FSkills --skill github-repo-management",{"tool":74,"command":75},"bunx","bunx skills add zapabob\u002FSkills --skill github-repo-management",{"tool":77,"command":78},"pnpm","pnpm dlx skills add zapabob\u002FSkills --skill github-repo-management","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Farchive\u002Fskill-md-reviewed\u002Fsha256\u002F55\u002F5515fc95199b3a5f9488b2d632c24dd1b02f5a203a81ac63baaff1904268641b\u002FSKILL.md",true,[],[83,115,149,176,203,220],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":102,"publishedAt":39},"01M6GJTE1GESGGF9K028Y7753E","xurl","X\u002FTwitter via xurl CLI: post, search, DM, media, v2 API.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fxurl\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[89,94,97],{"categoryNo":90,"categoryName":91,"taxonomyType":92,"taxonomyTypeDesc":93},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":95,"categoryName":96,"taxonomyType":92,"taxonomyTypeDesc":93},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":98,"categoryName":99,"taxonomyType":100,"taxonomyTypeDesc":101},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[85,103,24,104,19,38,34,105,106,107,108,109,110,28,27,111,60,112,113,114],"openclaw","cli","official","search","https","social-media","api","Media","twitter","social","via","post",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":132,"publishedAt":39},"01M6GJT8S1PXQ8WPXT1HSNBWH2","writing-plans","Write implementation plans: bite-sized tasks, paths, code.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwriting-plans\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[121,124,127,128,129],{"categoryNo":122,"categoryName":123,"taxonomyType":92,"taxonomyTypeDesc":93},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":125,"categoryName":126,"taxonomyType":92,"taxonomyTypeDesc":93},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":95,"categoryName":96,"taxonomyType":92,"taxonomyTypeDesc":93},{"categoryNo":98,"categoryName":99,"taxonomyType":100,"taxonomyTypeDesc":101},{"categoryNo":130,"categoryName":131,"taxonomyType":100,"taxonomyTypeDesc":101},"01JBSEEDCAT000000000000036","内容创作者",[133,134,135,136,24,137,38,37,34,138,139,140,141,142,143,144,145,146,147,148],"writing","writing plans","plans","design","review","documentation","tasks","development","code","planning","code-review","subagent","write","superpowers","paths","test-driven-development",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":158,"publishedAt":39},"01M6GJST0H5X7WHBJ3BZK0DVKH","whisper","OpenAI's general-purpose speech recognition model. Supports 99 languages, transcription, translation to English, and language identification. Six model sizes from tiny (39M params) to large (1550M params). Use for speech-to-text, podcast transcription, or multilingual audio processing. Best for robust, multilingual ASR.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwhisper\u002Fvariants\u002Fhermes-agent-optional\u002FSKILL.md",[155],{"categoryNo":156,"categoryName":157,"taxonomyType":92,"taxonomyTypeDesc":93},"01JBSEEDCAT000000000000016","图像与多媒体",[151,24,38,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],"openai","speech","multimodal","Transformers","ASR","Audio","text","model","speech recognition","use","general","multilingual","translation","english","identification","processing","Audio Processing",{"skillNo":177,"name":178,"nameZh":6,"description":179,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":180,"categories":181,"keywords":185,"publishedAt":39},"01M6GJSMRQ8EETZTYMG72P70EA","weights-and-biases","W&B: log ML experiments, sweeps, model registry, dashboards.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fweights-and-biases\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[182],{"categoryNo":183,"categoryName":184,"taxonomyType":92,"taxonomyTypeDesc":93},"01JBSEEDCAT000000000000013","分析与可视化",[186,24,187,188,34,189,190,191,192,193,194,166,195,196,197,198,199,200,201,202],"weights and biases","tensorflow","experiments","pytorch","visualization","registry","real-time","tuning","dashboards","experiment","log","time","Experiment Tracking","Model Registry","Hyperparameter Tuning","WandB","Real-Time Visualization",{"skillNo":204,"name":205,"nameZh":6,"description":206,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":207,"categories":208,"keywords":210,"publishedAt":39},"01M6GJS19KDPRY112JTR326S06","watchers","Poll RSS, JSON APIs, and GitHub with watermark dedup.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwatchers\u002Fvariants\u002Fhermes-agent-optional\u002FSKILL.md",[209],{"categoryNo":95,"categoryName":96,"taxonomyType":92,"taxonomyTypeDesc":93},[205,24,211,19,38,212,213,214,215,216,217,28,27,218,219],"terminal","automation","http","monitoring","cron","json","rss","devops","with",{"skillNo":221,"name":222,"nameZh":6,"description":223,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":224,"categories":225,"keywords":228,"publishedAt":39},"01M6GJRHJD2A6Q830SWF9W48BC","serving-llms-vllm","vLLM: high-throughput LLM serving, OpenAI API, quantization.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fvllm\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[226,227],{"categoryNo":90,"categoryName":91,"taxonomyType":92,"taxonomyTypeDesc":93},{"categoryNo":98,"categoryName":99,"taxonomyType":100,"taxonomyTypeDesc":101},[229,230,231,38,232,159,233,234,235,162,236,109,237,238,239,240,241,242,243,244],"llms","vLLM","serving llms vllm","research","openai api","tensor","Inference Serving","Production","llm serving","High Throughput","PagedAttention","Continuous Batching","Quantization","Tensor Parallelism","high-throughput","throughput"]