[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71FDFS374S354TCT2X8FS1V":3,"skill-same:01M71FDFS374S354TCT2X8FS1V":84},{"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":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":58,"commitSha":59,"skillDirectory":60,"forksCount":13,"repositoryHtmlUrl":61,"repositoryHomepageUrl":6,"ownerHtmlUrl":62,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":63,"install":64,"resources":77},"01M71FDFS374S354TCT2X8FS1V","github-repo-management",null,"Clone, create, fork, configure, and manage GitHub repositories. Manage remotes, secrets, releases, and workflows. Works with gh CLI or falls back to git + GitHub REST API via curl.","gjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6","gjbvsjjvgm-sketch","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F278511911?v=4","01M71F3JXKZQ70H2KCHHTXKZDA","01M71F3JY8A79Z3NZBW08TF4JD",0,"MIT","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002F.yousef\u002Fskills\u002Fgithub\u002Fgithub-repo-management\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"github repo","repo management","github repo management","management","repo","github","gh","repositories","with","back","manage","configure","api","REST","issues","create","pr","auth","workflows","workflow","2026-11-10 10:12:30",false,"---\nname: github-repo-management\ndescription: Clone, create, fork, configure, and manage GitHub repositories. Manage remotes, secrets, releases, and workflows. Works with gh CLI or falls back to git + GitHub REST API via curl.\nversion: 1.1.0\nauthor: YOUSEF SHTIWE\nlicense: MIT\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## 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 [ -f ~\u002F.yousef\u002F.env ] && grep -q \"^GITHUB_TOKEN=\" ~\u002F.yousef\u002F.env; then\n      GITHUB_TOKEN=$(grep \"^GITHUB_TOKEN=\" ~\u002F.yousef\u002F.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=$(grep \"github.com\" ~\u002F.git-credentials 2>\u002Fdev\u002Fnull | head -1 | sed 's|https:\u002F\u002F[^:]*:\\([^@]*\\)@.*|\\1|')\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 | python3 -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 git@github.com: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  | python3 -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  | python3 -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  | python3 -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)\npython3 -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  | python3 -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  | python3 -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.yml --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  | python3 -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  | python3 -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  | python3 -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## 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 [ -f ~\u002F.yousef\u002F.env ] && grep -q \"^GITHUB_TOKEN=\" ~\u002F.yousef\u002F.env; then\n      GITHUB_TOKEN=$(grep \"^GITHUB_TOKEN=\" ~\u002F.yousef\u002F.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=$(grep \"github.com\" ~\u002F.git-credentials 2>\u002Fdev\u002Fnull | head -1 | sed 's|https:\u002F\u002F[^:]*:\\([^@]*\\)@.*|\\1|')\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 | python3 -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 git@github.com: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  | python3 -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  | python3 -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  | python3 -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)\npython3 -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  | python3 -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  | python3 -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.yml --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  | python3 -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  | python3 -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  | python3 -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":43,"license":14,"version":44,"metadata":45,"description":7},"YOUSEF SHTIWE","1.1.0",{"hermes":46},{"tags":47,"related_skills":54},[48,49,50,51,52,53],"GitHub","Repositories","Git","Releases","Secrets","Configuration",[55,56,57],"github-auth","github-pr-workflow","github-issues","main","93bbc269671fbb340afa15b36a8766f15dc30df2",".yousef\u002Fskills\u002Fgithub\u002Fgithub-repo-management","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch","2026-04-27 02:51:28",{"source":8,"skillName":5,"commands":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add gjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6 --skill github-repo-management",{"tool":70,"command":71},"bunx","bunx skills add gjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6 --skill github-repo-management",{"tool":73,"command":74},"pnpm","pnpm dlx skills add gjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6 --skill github-repo-management","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002F.yousef\u002Fskills\u002Fgithub\u002Fgithub-repo-management\u002FSKILL.md",true,[78],{"path":79,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":82,"sourceHtmlUrl":83},"references\u002Fgithub-api-cheatsheet.md","REFERENCE","参考文档",6092,"https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002F.yousef\u002Fskills\u002Fgithub\u002Fgithub-repo-management\u002Freferences\u002Fgithub-api-cheatsheet.md",[85,127,155,171,190,211],{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":107,"publishedAt":38},"01M71G6TJ2RAQ1J0PV3K6D9GQA","writing-plans","Use when you have a spec or requirements for a multi-step task. Creates comprehensive implementation plans with bite-sized tasks, exact file paths, and complete code examples.","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Fwriting-plans\u002FSKILL.md",[91,96,99,104],{"categoryNo":92,"categoryName":93,"taxonomyType":94,"taxonomyTypeDesc":95},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",{"categoryNo":97,"categoryName":98,"taxonomyType":94,"taxonomyTypeDesc":95},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":100,"categoryName":101,"taxonomyType":102,"taxonomyTypeDesc":103},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",{"categoryNo":105,"categoryName":106,"taxonomyType":102,"taxonomyTypeDesc":103},"01JBSEEDCAT000000000000036","内容创作者",[108,109,110,111,112,37,113,114,115,116,117,118,119,120,121,122,123,124,125,126],"writing","writing plans","plans","design","review","documentation","tasks","development","code","planning","code-review","subagent","superpowers","paths","test-driven-development","you","for","test-driven","when",{"skillNo":128,"name":122,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":140,"publishedAt":38},"01M71G6R81013R3T7W5VP56GCB","Use when implementing any feature or bugfix, before writing implementation code. Enforces RED-GREEN-REFACTOR cycle with test-first approach.","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Ftest-driven-development\u002FSKILL.md",[132,135,138,139],{"categoryNo":133,"categoryName":134,"taxonomyType":94,"taxonomyTypeDesc":95},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":136,"categoryName":137,"taxonomyType":94,"taxonomyTypeDesc":95},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":97,"categoryName":98,"taxonomyType":94,"taxonomyTypeDesc":95},{"categoryNo":105,"categoryName":106,"taxonomyType":102,"taxonomyTypeDesc":103},[141,142,115,143,144,108,145,116,146,119,120,147,148,149,150,151,152,153,154,126],"test","test driven development","driven","testing","debugging","refactor","red-green-refactor","cycle","green","systematic","bugfix","implementing","systematic-debugging","test-first",{"skillNo":156,"name":153,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":161,"publishedAt":38},"01M71G6N0Y546JZEDF25E2PMCE","Use when encountering any bug, test failure, or unexpected behavior. 4-phase root cause investigation — NO fixes without understanding the problem first.","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Fsystematic-debugging\u002FSKILL.md",[160],{"categoryNo":136,"categoryName":137,"taxonomyType":94,"taxonomyTypeDesc":95},[162,145,150,108,141,115,119,163,120,164,165,166,110,167,122,168,125,169,170,126],"systematic debugging","use","bug","root-cause","problem-solving","problem","fixes","phase","root cause",{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":183,"publishedAt":38},"01M71G6J0DXEGY48GH4KVW2SJH","subagent-driven-development","Use when executing implementation plans with independent tasks. Dispatches fresh delegate_task per task with two-stage review (spec compliance then code quality).","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Fsubagent-driven-development\u002FSKILL.md",[177,178,179,180],{"categoryNo":97,"categoryName":98,"taxonomyType":94,"taxonomyTypeDesc":95},{"categoryNo":100,"categoryName":101,"taxonomyType":102,"taxonomyTypeDesc":103},{"categoryNo":105,"categoryName":106,"taxonomyType":102,"taxonomyTypeDesc":103},{"categoryNo":181,"categoryName":182,"taxonomyType":102,"taxonomyTypeDesc":103},"01JBSEEDCAT000000000000037","律师与法务",[115,184,119,143,108,112,37,185,114,116,186,118,187,188,120,110,189,122,125,126],"subagent driven development","code quality","delegation","parallel","delegate","fresh",{"skillNo":191,"name":192,"nameZh":6,"description":193,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":194,"categories":195,"keywords":198,"publishedAt":38},"01M71G6EFFBQX6634E6XHB09Y1","requesting-code-review","Pre-commit verification pipeline — static security scan, baseline-aware quality gates, independent reviewer subagent, and auto-fix loop. Use after code changes and before committing, pushing, or opening a PR.","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Frequesting-code-review\u002FSKILL.md",[196,197],{"categoryNo":133,"categoryName":134,"taxonomyType":94,"taxonomyTypeDesc":95},{"categoryNo":100,"categoryName":101,"taxonomyType":102,"taxonomyTypeDesc":103},[199,112,116,200,108,201,118,202,203,204,205,119,206,207,208,120,122,209,210,125],"code review","requesting code review","commit","verification","security scan","pipeline","loop","reviewer","fix","auto","static","auto-fix",{"skillNo":212,"name":213,"nameZh":6,"description":214,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":215,"categories":216,"keywords":217,"publishedAt":38},"01M71G6CM8ANSWVFXCN9AAD58Y","plan","Plan mode for Hermes — inspect context, write a markdown plan into the active workspace's `.hermes\u002Fplans\u002F` directory, and do not execute the work.","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Fplan\u002FSKILL.md",[],[213,108,218,37,115,117,219,119,220,221,222,223,224,225,110,226,227,228,124,229],"directory","markdown","workspace","work","write","implementation","do","active","plan mode","inspect","mode","plan-mode"]