[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6JDVEDR0NX8XHSC70R79TH5":3,"skill-same:01M6JDVEDR0NX8XHSC70R79TH5":85},{"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":22,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":63,"commitSha":64,"skillDirectory":65,"forksCount":66,"repositoryHtmlUrl":67,"repositoryHomepageUrl":68,"ownerHtmlUrl":69,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":70,"install":71,"resources":84},"01M6JDVEDR0NX8XHSC70R79TH5","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.","S3YED\u002Fappie-kit","S3YED","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F62743867?v=4","01M6JBKBRRVP6KMS0VWZ27T3R6","01M6JBKBX0KG30284PW1DBYJT1",14,"MIT","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fintegrations\u002Fgithub\u002Fgithub-repo-management\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"github","github repo management","management","repo","clone","cli","back","manage","releases","gh cli","configure","secrets","api","issues","git","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: Hermes Agent\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.hermes\u002F.env ] && grep -q \"^GITHUB_TOKEN=\" ~\u002F.hermes\u002F.env; then\n      GITHUB_TOKEN=$(grep \"^GITHUB_TOKEN=\" ~\u002F.hermes\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.hermes\u002F.env ] && grep -q \"^GITHUB_TOKEN=\" ~\u002F.hermes\u002F.env; then\n      GITHUB_TOKEN=$(grep \"^GITHUB_TOKEN=\" ~\u002F.hermes\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":48,"license":14,"version":49,"metadata":50,"description":7},"Hermes Agent","1.1.0",{"hermes":51},{"tags":52,"related_skills":59},[53,54,55,56,57,58],"GitHub","Repositories","Git","Releases","Secrets","Configuration",[60,61,62],"github-auth","github-pr-workflow","github-issues","master","8ec37df6d71fb664ea19d32c079e7d3ff931a8e0","skills\u002Fintegrations\u002Fgithub\u002Fgithub-repo-management",3,"https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit","https:\u002F\u002Fweblyfe.ai","https:\u002F\u002Fgithub.com\u002FS3YED","2026-08-27 01:54:02",{"source":8,"skillName":5,"commands":72,"prompt":82,"zipAvailable":83},[73,76,79],{"tool":74,"command":75},"npx","npx skills add S3YED\u002Fappie-kit --skill github-repo-management",{"tool":77,"command":78},"bunx","bunx skills add S3YED\u002Fappie-kit --skill github-repo-management",{"tool":80,"command":81},"pnpm","pnpm dlx skills add S3YED\u002Fappie-kit --skill github-repo-management","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fintegrations\u002Fgithub\u002Fgithub-repo-management\u002FSKILL.md",true,[],[86,118,153,179,208,231],{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":99,"publishedAt":43},"01M6JFD4M6N4DSGC7TXEJ5R3J2","ai-music","AI music generation and audio tools: HeartMuLa lyrics-to-music generation, songwriting craft (+ Suno prompts), and audio spectrogram\u002Ffeature visualization.","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fwethlete\u002Fai-music\u002FSKILL.md",[92,95,98],{"categoryNo":93,"categoryName":94,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000013","分析与可视化",{"categoryNo":96,"categoryName":97,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117],"music","ai music","humanizer","visualization","Tools","Audio","hermes","hermes agent","songwriting","suno","lyrics","prompts","heartmula","craft","generation","feature","ai music generation","music generation",{"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":132,"publishedAt":43},"01M6JFCZE4XNFQFMNZDHKHT5V5","agentic-webdesign-design-system-ingestion","Use v0 Design Systems 2.0, Bolt Design System Agents, or Lovable to generate production UI from a client's real design system components — not generic Tailwind. Use when building a client website where brand consistency matters.","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fweb-design\u002Fagentic-webdesign-design-system-ingestion\u002FSKILL.md",[124,127],{"categoryNo":125,"categoryName":126,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":128,"categoryName":129,"taxonomyType":130,"taxonomyTypeDesc":131},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152],"design","agentic","design system","system","ingestion","webdesign","agentic webdesign design system ingestion","components","generate","design systems","website","ui","Tailwind","bolt","lovable","v0","design-system","wed","design system components","appie",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":161,"publishedAt":43},"01M6JFCVPX3913CFAS6QQJ33ZB","agentic-webdesign-agent-elements","Use 21st.dev Agent Elements — 25 shadcn\u002Fui components purpose-built for AI agent UIs. Tool cards (Bash, Edit, Search, Plan, Subagent, MCP), chat, input, streaming. Open source, shadcn-registry install, no runtime lock-in.","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fweb-design\u002Fagentic-webdesign-agent-elements\u002FSKILL.md",[159,160],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":128,"categoryName":129,"taxonomyType":130,"taxonomyTypeDesc":131},[134,162,138,163,164,165,140,166,167,168,169,170,171,172,173,174,175,176,177,178],"elements","agentic webdesign agent elements","MCP","ai agent","registry","search","streaming","open source","open","Bash","plan","subagent","edit","install","input","lock","source",{"skillNo":180,"name":181,"nameZh":6,"description":182,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":183,"categories":184,"keywords":189,"publishedAt":43},"01M6JFCQC7H65M9QJ6TRE71BS1","vercel-deployment","Deploy static sites and frontends to Vercel — handles both CLI and REST API paths, including the CLI token sanitization workaround.","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fsoftware-development\u002Fvercel-deployment\u002FSKILL.md",[185,188],{"categoryNo":186,"categoryName":187,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[190,191,192,193,28,194,195,196,197,198,35,199,200,201,202,203,204,205,206,207],"deployment","vercel deployment","vercel","macos","linux","windows","deploy","vercel deploy","REST","site","deploy to vercel","token","rest api","host","sites","paths","sanitization","static site",{"skillNo":209,"name":210,"nameZh":6,"description":211,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":212,"categories":213,"keywords":215,"publishedAt":43},"01M6JFCM4SMTXBM5A01BK2YQG1","software-quality-workflows","Umbrella workflow for TDD, debugging, code simplification, spikes, pre-commit review, and debugger-assisted investigation.","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fsoftware-development\u002Fsoftware-quality-workflows\u002FSKILL.md",[214],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[41,216,217,218,219,220,42,221,222,223,224,225,226,227,228,229,230],"quality","software","software quality workflows","review","tdd","commit","debugging","code","debugger","pre-commit","investigation","code simplification","user","simplification","for",{"skillNo":232,"name":233,"nameZh":6,"description":234,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":235,"categories":236,"keywords":244,"publishedAt":43},"01M6JFCGD0M6CEATY01W7YN6DB","react-component-refactoring","Safely refactor large React components into smaller, maintainable pieces using proven patterns","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fsoftware-development\u002Freact-component-refactoring\u002FSKILL.md",[237,240,243],{"categoryNo":238,"categoryName":239,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":241,"categoryName":242,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[245,246,247,248,249,250,251,252,193,253,254,140,255,195,256,223,257,258,259,260],"react","component","refactoring","component refactoring","react component","react component refactoring","frontend","writing","safe","typescript","react components","modular","refactor","simplify","patterns","test-driven-development"]