[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6H48JSYKERY5HZ774Y3C5VZ":3,"skill-same:01M6H48JSYKERY5HZ774Y3C5VZ":117},{"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":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":47,"ownerHtmlUrl":48,"ownerBlogUrl":49,"ownerDescription":6,"updatedAt":50,"install":51,"resources":64},"01M6H48JSYKERY5HZ774Y3C5VZ","gh-os-repo",null,"Set up and harden a public GitHub repository — repo settings, security, branch protection with a ruleset, templates, CI, and dependabot.","eyelock\u002Fassistants","eyelock","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1277325?v=4","01M6H423MGYJ0P316VZ2MMH75N","David Collie","01M6H423RR18QA9N8S2F3J8S8X",1,"MIT","https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Finfra\u002Fskills\u002Fgh-os-repo\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"gh os repo","os","gh","repo","branch","with","harden","protection","up","settings","github","public","SET","templates","dependabot","ci","repository","security","2026-11-10 10:12:30",false,"---\nname: gh-os-repo\ndescription: Set up and harden a public GitHub repository — repo settings, security, branch protection with a ruleset, templates, CI, and dependabot.\n---\n\n# Open Source Repository Setup\n\nYou configure a GitHub repository for open source distribution. This is a comprehensive checklist covering repo settings, security hardening, branch protection, community templates, CI, and dependency management.\n\nTemplate files are in `assets\u002F.github\u002F` — copy them into the target repo's `.github\u002F` directory and customize placeholders (`{owner}`, `{repo}`) for the project.\n\n## Step 1: Repository settings\n\nConfigure via `gh api`:\n\n```bash\ngh api repos\u002F{owner}\u002F{repo} -X PATCH \\\n  -f description=\"\u003Cproject description>\" \\\n  -F has_issues=true \\\n  -F has_discussions=true \\\n  -F has_wiki=false \\\n  -F has_projects=true \\\n  -F allow_squash_merge=true \\\n  -F allow_merge_commit=true \\\n  -F allow_rebase_merge=false \\\n  -F delete_branch_on_merge=true \\\n  -F allow_auto_merge=false \\\n  -F web_commit_signoff_required=false \\\n  -f squash_merge_commit_title=\"COMMIT_OR_PR_TITLE\" \\\n  -f squash_merge_commit_message=\"COMMIT_MESSAGES\" \\\n  -f merge_commit_title=\"MERGE_MESSAGE\" \\\n  -f merge_commit_message=\"PR_TITLE\"\n```\n\nKey decisions:\n- **Rebase merge disabled** — keeps merge history clean, avoids rewritten SHAs\n- **Delete branch on merge enabled** — auto-cleanup after PR merge\n- **Wiki disabled** — docs live in the repo or a docs site, not a wiki\n- **Discussions enabled** — gives a place for Q&A and ideas without cluttering issues\n\nAdd topics for discoverability:\n\n```bash\ngh repo edit --add-topic \"topic1,topic2,topic3\"\n```\n\n## Step 2: Security settings\n\nEnable all security features:\n\n```bash\ngh api repos\u002F{owner}\u002F{repo} -X PATCH \\\n  -f \"security_and_analysis[dependabot_security_updates][status]=enabled\" \\\n  -f \"security_and_analysis[secret_scanning][status]=enabled\" \\\n  -f \"security_and_analysis[secret_scanning_push_protection][status]=enabled\"\n```\n\nThis ensures:\n- **Dependabot security updates** — automatic PRs for vulnerable dependencies\n- **Secret scanning** — alerts if secrets are committed\n- **Push protection** — blocks pushes containing detected secrets\n\n## Step 3: Protect main with a ruleset\n\nProtect the default branch with one repository ruleset. It is the single source of truth: do not also add classic branch protection (`branches\u002Fmain\u002Fprotection`). With both active, a merge must satisfy both, so there are two lists of required checks to keep in step, and they drift. A ruleset is visible to contributors on a public repo, targets the default branch by name, and lists who can bypass it.\n\nThe ruleset requires one status check, **All Clear**: a final CI job that depends on all the others (Step 6). Make sure the CI workflow has that job before you create the ruleset; a required check that never reports blocks every PR.\n\n```bash\ngh api repos\u002F{owner}\u002F{repo}\u002Frulesets -X POST \\\n  --input - \u003C\u003C'JSON'\n{\n  \"name\": \"Main Branch Protection\",\n  \"target\": \"branch\",\n  \"enforcement\": \"active\",\n  \"conditions\": {\n    \"ref_name\": {\n      \"include\": [\"~DEFAULT_BRANCH\"],\n      \"exclude\": []\n    }\n  },\n  \"rules\": [\n    { \"type\": \"deletion\" },\n    { \"type\": \"non_fast_forward\" },\n    {\n      \"type\": \"pull_request\",\n      \"parameters\": {\n        \"required_approving_review_count\": 0,\n        \"dismiss_stale_reviews_on_push\": false,\n        \"require_code_owner_review\": false,\n        \"require_last_push_approval\": false,\n        \"required_review_thread_resolution\": true\n      }\n    },\n    {\n      \"type\": \"required_status_checks\",\n      \"parameters\": {\n        \"strict_required_status_checks_policy\": true,\n        \"do_not_enforce_on_create\": false,\n        \"required_status_checks\": [\n          { \"context\": \"All Clear\" }\n        ]\n      }\n    }\n  ],\n  \"bypass_actors\": [\n    {\n      \"actor_id\": 5,\n      \"actor_type\": \"RepositoryRole\",\n      \"bypass_mode\": \"always\"\n    }\n  ]\n}\nJSON\n```\n\nKey settings:\n- **deletion \u002F non_fast_forward** — the branch cannot be deleted or force-pushed\n- **pull_request** — changes reach main only through a PR, and every review thread must be resolved before merge\n- **strict_required_status_checks_policy: true** — the branch must be up to date with main before merging\n- **All Clear as the only required check** — one check to maintain, even as individual CI jobs change\n- **bypass_actors** — repository admins (role 5) can bypass in emergencies; use sparingly\n\nIf the repo already has classic branch protection on main, remove it once the ruleset is active, so the ruleset stays the only source:\n\n```bash\ngh api repos\u002F{owner}\u002F{repo}\u002Fbranches\u002Fmain\u002Fprotection -X DELETE\n```\n\n## Step 4: Essential repo files\n\nCreate or verify these exist at the repo root:\n\n- **LICENSE** — Default to MIT. Ask if Apache-2.0 or BSD-3-Clause preferred.\n- **README.md** — Project name, description, install instructions, usage example, license badge.\n- **CONTRIBUTING.md** — Fork, branch, PR workflow. Code style, test expectations, and review process.\n- **.gitignore** — Language-appropriate ignores.\n\n## Step 5: Community files from assets\n\nCopy `assets\u002F.github\u002F` into the target repo and customize:\n\n| Asset | Customize |\n|-------|-----------|\n| `CODEOWNERS` | Replace `{owner}` with the user's team or handle; keep the `*` default and replace the example paths with directories and files this repo has (`ls` it; `\u002Fsrc\u002F` and `\u002Ftests\u002F` are examples, a path that matches nothing is noise) |\n| `ISSUE_TEMPLATE\u002Fbug_report.md` | Add project-specific environment fields |\n| `ISSUE_TEMPLATE\u002Ffeature_request.md` | Ready to use as-is |\n| `ISSUE_TEMPLATE\u002Finfrastructure-change.md` | Ready to use as-is: copy it too, every template in the set belongs in the repo |\n| `ISSUE_TEMPLATE\u002Fconfig.yml` | Replace `{owner}\u002F{repo}` in discussions URL |\n| `DISCUSSION_TEMPLATE\u002Fideas.yml` | Update intro text for the project |\n| `DISCUSSION_TEMPLATE\u002Fq-a.yml` | Update intro text for the project |\n| `PULL_REQUEST_TEMPLATE.md` | Ready to use as-is |\n| `dependabot.yml` | Uncomment and set language ecosystem |\n| `BRANCH_PROTECTION.md` | Ready to use as-is if CI's aggregator job is named All Clear |\n\n## Step 6: CI pipeline\n\nSet up `.github\u002Fworkflows\u002Fci.yml`:\n\n- Trigger on push to main and pull requests\n- Jobs: build, test, lint, format check\n- A final job named **All Clear** that depends on all others: the one check the ruleset requires\n\nAll Clear must run even when a job it needs fails (`if: always()`) and fail itself in that case. Without `if: always()` it is skipped when a dependency fails, and GitHub counts a skipped required check as passing, so the PR could merge red.\n\n```yaml\nname: CI\non:\n  push:\n    branches: [main]\n  pull_request:\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v4\n      # ... language-specific build steps\n\n  # Repeat for test, lint, format-check\n\n  all-clear:\n    name: All Clear\n    runs-on: ubuntu-latest\n    needs: [build, test, lint, format-check]\n    if: always()\n    steps:\n      - name: Check results\n        run: |\n          if [[ \"${{ contains(needs.*.result, 'failure') }}\" == \"true\" ]] || \\\n             [[ \"${{ contains(needs.*.result, 'cancelled') }}\" == \"true\" ]]; then\n            echo \"One or more checks failed\"\n            exit 1\n          fi\n          echo \"All checks passed\"\n```\n\n## Step 7: Release workflow (optional)\n\nIf the project uses semantic versioning, set up `.github\u002Fworkflows\u002Frelease.yml`:\n\n- Trigger on tag push (`v*`)\n- Build artifacts, create GitHub release with changelog\n\n## Step 8: Verify\n\nRun through this checklist:\n\n```bash\n# Repo settings\ngh repo view {owner}\u002F{repo} --json description,visibility,hasIssuesEnabled,hasDiscussionsEnabled,hasWikiEnabled\n\n# Security\ngh api repos\u002F{owner}\u002F{repo} --jq '.security_and_analysis'\n\n# The ruleset, and the rules it enforces on main\ngh api repos\u002F{owner}\u002F{repo}\u002Frulesets\ngh api repos\u002F{owner}\u002F{repo}\u002Frules\u002Fbranches\u002Fmain\n\n# License detected\ngh repo view {owner}\u002F{repo} --json licenseInfo\n\n# Templates exist\nls .github\u002FISSUE_TEMPLATE\u002F .github\u002FDISCUSSION_TEMPLATE\u002F .github\u002FPULL_REQUEST_TEMPLATE.md .github\u002FCODEOWNERS .github\u002Fdependabot.yml\n```\n","# Open Source Repository Setup\n\nYou configure a GitHub repository for open source distribution. This is a comprehensive checklist covering repo settings, security hardening, branch protection, community templates, CI, and dependency management.\n\nTemplate files are in `assets\u002F.github\u002F` — copy them into the target repo's `.github\u002F` directory and customize placeholders (`{owner}`, `{repo}`) for the project.\n\n## Step 1: Repository settings\n\nConfigure via `gh api`:\n\n```bash\ngh api repos\u002F{owner}\u002F{repo} -X PATCH \\\n  -f description=\"\u003Cproject description>\" \\\n  -F has_issues=true \\\n  -F has_discussions=true \\\n  -F has_wiki=false \\\n  -F has_projects=true \\\n  -F allow_squash_merge=true \\\n  -F allow_merge_commit=true \\\n  -F allow_rebase_merge=false \\\n  -F delete_branch_on_merge=true \\\n  -F allow_auto_merge=false \\\n  -F web_commit_signoff_required=false \\\n  -f squash_merge_commit_title=\"COMMIT_OR_PR_TITLE\" \\\n  -f squash_merge_commit_message=\"COMMIT_MESSAGES\" \\\n  -f merge_commit_title=\"MERGE_MESSAGE\" \\\n  -f merge_commit_message=\"PR_TITLE\"\n```\n\nKey decisions:\n- **Rebase merge disabled** — keeps merge history clean, avoids rewritten SHAs\n- **Delete branch on merge enabled** — auto-cleanup after PR merge\n- **Wiki disabled** — docs live in the repo or a docs site, not a wiki\n- **Discussions enabled** — gives a place for Q&A and ideas without cluttering issues\n\nAdd topics for discoverability:\n\n```bash\ngh repo edit --add-topic \"topic1,topic2,topic3\"\n```\n\n## Step 2: Security settings\n\nEnable all security features:\n\n```bash\ngh api repos\u002F{owner}\u002F{repo} -X PATCH \\\n  -f \"security_and_analysis[dependabot_security_updates][status]=enabled\" \\\n  -f \"security_and_analysis[secret_scanning][status]=enabled\" \\\n  -f \"security_and_analysis[secret_scanning_push_protection][status]=enabled\"\n```\n\nThis ensures:\n- **Dependabot security updates** — automatic PRs for vulnerable dependencies\n- **Secret scanning** — alerts if secrets are committed\n- **Push protection** — blocks pushes containing detected secrets\n\n## Step 3: Protect main with a ruleset\n\nProtect the default branch with one repository ruleset. It is the single source of truth: do not also add classic branch protection (`branches\u002Fmain\u002Fprotection`). With both active, a merge must satisfy both, so there are two lists of required checks to keep in step, and they drift. A ruleset is visible to contributors on a public repo, targets the default branch by name, and lists who can bypass it.\n\nThe ruleset requires one status check, **All Clear**: a final CI job that depends on all the others (Step 6). Make sure the CI workflow has that job before you create the ruleset; a required check that never reports blocks every PR.\n\n```bash\ngh api repos\u002F{owner}\u002F{repo}\u002Frulesets -X POST \\\n  --input - \u003C\u003C'JSON'\n{\n  \"name\": \"Main Branch Protection\",\n  \"target\": \"branch\",\n  \"enforcement\": \"active\",\n  \"conditions\": {\n    \"ref_name\": {\n      \"include\": [\"~DEFAULT_BRANCH\"],\n      \"exclude\": []\n    }\n  },\n  \"rules\": [\n    { \"type\": \"deletion\" },\n    { \"type\": \"non_fast_forward\" },\n    {\n      \"type\": \"pull_request\",\n      \"parameters\": {\n        \"required_approving_review_count\": 0,\n        \"dismiss_stale_reviews_on_push\": false,\n        \"require_code_owner_review\": false,\n        \"require_last_push_approval\": false,\n        \"required_review_thread_resolution\": true\n      }\n    },\n    {\n      \"type\": \"required_status_checks\",\n      \"parameters\": {\n        \"strict_required_status_checks_policy\": true,\n        \"do_not_enforce_on_create\": false,\n        \"required_status_checks\": [\n          { \"context\": \"All Clear\" }\n        ]\n      }\n    }\n  ],\n  \"bypass_actors\": [\n    {\n      \"actor_id\": 5,\n      \"actor_type\": \"RepositoryRole\",\n      \"bypass_mode\": \"always\"\n    }\n  ]\n}\nJSON\n```\n\nKey settings:\n- **deletion \u002F non_fast_forward** — the branch cannot be deleted or force-pushed\n- **pull_request** — changes reach main only through a PR, and every review thread must be resolved before merge\n- **strict_required_status_checks_policy: true** — the branch must be up to date with main before merging\n- **All Clear as the only required check** — one check to maintain, even as individual CI jobs change\n- **bypass_actors** — repository admins (role 5) can bypass in emergencies; use sparingly\n\nIf the repo already has classic branch protection on main, remove it once the ruleset is active, so the ruleset stays the only source:\n\n```bash\ngh api repos\u002F{owner}\u002F{repo}\u002Fbranches\u002Fmain\u002Fprotection -X DELETE\n```\n\n## Step 4: Essential repo files\n\nCreate or verify these exist at the repo root:\n\n- **LICENSE** — Default to MIT. Ask if Apache-2.0 or BSD-3-Clause preferred.\n- **README.md** — Project name, description, install instructions, usage example, license badge.\n- **CONTRIBUTING.md** — Fork, branch, PR workflow. Code style, test expectations, and review process.\n- **.gitignore** — Language-appropriate ignores.\n\n## Step 5: Community files from assets\n\nCopy `assets\u002F.github\u002F` into the target repo and customize:\n\n| Asset | Customize |\n|-------|-----------|\n| `CODEOWNERS` | Replace `{owner}` with the user's team or handle; keep the `*` default and replace the example paths with directories and files this repo has (`ls` it; `\u002Fsrc\u002F` and `\u002Ftests\u002F` are examples, a path that matches nothing is noise) |\n| `ISSUE_TEMPLATE\u002Fbug_report.md` | Add project-specific environment fields |\n| `ISSUE_TEMPLATE\u002Ffeature_request.md` | Ready to use as-is |\n| `ISSUE_TEMPLATE\u002Finfrastructure-change.md` | Ready to use as-is: copy it too, every template in the set belongs in the repo |\n| `ISSUE_TEMPLATE\u002Fconfig.yml` | Replace `{owner}\u002F{repo}` in discussions URL |\n| `DISCUSSION_TEMPLATE\u002Fideas.yml` | Update intro text for the project |\n| `DISCUSSION_TEMPLATE\u002Fq-a.yml` | Update intro text for the project |\n| `PULL_REQUEST_TEMPLATE.md` | Ready to use as-is |\n| `dependabot.yml` | Uncomment and set language ecosystem |\n| `BRANCH_PROTECTION.md` | Ready to use as-is if CI's aggregator job is named All Clear |\n\n## Step 6: CI pipeline\n\nSet up `.github\u002Fworkflows\u002Fci.yml`:\n\n- Trigger on push to main and pull requests\n- Jobs: build, test, lint, format check\n- A final job named **All Clear** that depends on all others: the one check the ruleset requires\n\nAll Clear must run even when a job it needs fails (`if: always()`) and fail itself in that case. Without `if: always()` it is skipped when a dependency fails, and GitHub counts a skipped required check as passing, so the PR could merge red.\n\n```yaml\nname: CI\non:\n  push:\n    branches: [main]\n  pull_request:\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v4\n      # ... language-specific build steps\n\n  # Repeat for test, lint, format-check\n\n  all-clear:\n    name: All Clear\n    runs-on: ubuntu-latest\n    needs: [build, test, lint, format-check]\n    if: always()\n    steps:\n      - name: Check results\n        run: |\n          if [[ \"${{ contains(needs.*.result, 'failure') }}\" == \"true\" ]] || \\\n             [[ \"${{ contains(needs.*.result, 'cancelled') }}\" == \"true\" ]]; then\n            echo \"One or more checks failed\"\n            exit 1\n          fi\n          echo \"All checks passed\"\n```\n\n## Step 7: Release workflow (optional)\n\nIf the project uses semantic versioning, set up `.github\u002Fworkflows\u002Frelease.yml`:\n\n- Trigger on tag push (`v*`)\n- Build artifacts, create GitHub release with changelog\n\n## Step 8: Verify\n\nRun through this checklist:\n\n```bash\n# Repo settings\ngh repo view {owner}\u002F{repo} --json description,visibility,hasIssuesEnabled,hasDiscussionsEnabled,hasWikiEnabled\n\n# Security\ngh api repos\u002F{owner}\u002F{repo} --jq '.security_and_analysis'\n\n# The ruleset, and the rules it enforces on main\ngh api repos\u002F{owner}\u002F{repo}\u002Frulesets\ngh api repos\u002F{owner}\u002F{repo}\u002Frules\u002Fbranches\u002Fmain\n\n# License detected\ngh repo view {owner}\u002F{repo} --json licenseInfo\n\n# Templates exist\nls .github\u002FISSUE_TEMPLATE\u002F .github\u002FDISCUSSION_TEMPLATE\u002F .github\u002FPULL_REQUEST_TEMPLATE.md .github\u002FCODEOWNERS .github\u002Fdependabot.yml\n```\n",{"name":5,"description":7},"develop","5f79513fe27520bf03af784e8df568a04931c48d","skills\u002Finfra\u002Fskills\u002Fgh-os-repo",0,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants","https:\u002F\u002Feyelock.github.io\u002Fassistants\u002F","https:\u002F\u002Fgithub.com\u002Feyelock","http:\u002F\u002Fwww.eyelock.net\u002Fblog","2026-11-11 22:45:53",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add eyelock\u002Fassistants --skill gh-os-repo",{"tool":57,"command":58},"bunx","bunx skills add eyelock\u002Fassistants --skill gh-os-repo",{"tool":60,"command":61},"pnpm","pnpm dlx skills add eyelock\u002Fassistants --skill gh-os-repo","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Finfra\u002Fskills\u002Fgh-os-repo\u002FSKILL.md",true,[65,71,75,79,83,87,91,95,99,103,107,113],{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},"assets\u002F.github\u002FBRANCH_PROTECTION.md","ASSET","资产文件",741,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Finfra\u002Fskills\u002Fgh-os-repo\u002Fassets\u002F.github\u002FBRANCH_PROTECTION.md",{"path":72,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":73,"sourceHtmlUrl":74},"assets\u002F.github\u002FCODEOWNERS",166,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Finfra\u002Fskills\u002Fgh-os-repo\u002Fassets\u002F.github\u002FCODEOWNERS",{"path":76,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":77,"sourceHtmlUrl":78},"assets\u002F.github\u002Fdependabot.yml",496,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Finfra\u002Fskills\u002Fgh-os-repo\u002Fassets\u002F.github\u002Fdependabot.yml",{"path":80,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":81,"sourceHtmlUrl":82},"assets\u002F.github\u002FDISCUSSION_TEMPLATE\u002Fideas.yml",556,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Finfra\u002Fskills\u002Fgh-os-repo\u002Fassets\u002F.github\u002FDISCUSSION_TEMPLATE\u002Fideas.yml",{"path":84,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":85,"sourceHtmlUrl":86},"assets\u002F.github\u002FDISCUSSION_TEMPLATE\u002Fq-a.yml",512,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Finfra\u002Fskills\u002Fgh-os-repo\u002Fassets\u002F.github\u002FDISCUSSION_TEMPLATE\u002Fq-a.yml",{"path":88,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":89,"sourceHtmlUrl":90},"assets\u002F.github\u002FISSUE_TEMPLATE\u002Fbug_report.md",385,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Finfra\u002Fskills\u002Fgh-os-repo\u002Fassets\u002F.github\u002FISSUE_TEMPLATE\u002Fbug_report.md",{"path":92,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":93,"sourceHtmlUrl":94},"assets\u002F.github\u002FISSUE_TEMPLATE\u002Fconfig.yml",162,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Finfra\u002Fskills\u002Fgh-os-repo\u002Fassets\u002F.github\u002FISSUE_TEMPLATE\u002Fconfig.yml",{"path":96,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":97,"sourceHtmlUrl":98},"assets\u002F.github\u002FISSUE_TEMPLATE\u002Ffeature_request.md",415,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Finfra\u002Fskills\u002Fgh-os-repo\u002Fassets\u002F.github\u002FISSUE_TEMPLATE\u002Ffeature_request.md",{"path":100,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":101,"sourceHtmlUrl":102},"assets\u002F.github\u002FISSUE_TEMPLATE\u002Finfrastructure-change.md",817,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Finfra\u002Fskills\u002Fgh-os-repo\u002Fassets\u002F.github\u002FISSUE_TEMPLATE\u002Finfrastructure-change.md",{"path":104,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":105,"sourceHtmlUrl":106},"assets\u002F.github\u002FPULL_REQUEST_TEMPLATE.md",1380,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Finfra\u002Fskills\u002Fgh-os-repo\u002Fassets\u002F.github\u002FPULL_REQUEST_TEMPLATE.md",{"path":108,"resourceType":109,"resourceTypeDesc":110,"sizeBytes":111,"sourceHtmlUrl":112},"evals\u002Feval_queries.json","REFERENCE","参考文档",1005,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Finfra\u002Fskills\u002Fgh-os-repo\u002Fevals\u002Feval_queries.json",{"path":114,"resourceType":109,"resourceTypeDesc":110,"sizeBytes":115,"sourceHtmlUrl":116},"evals\u002Fevals.json",5811,"https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Finfra\u002Fskills\u002Fgh-os-repo\u002Fevals\u002Fevals.json",[118,124,148,165,178,191],{"skillNo":119,"name":120,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":123,"publishedAt":37},"01M6H46CHAJFE20J3Q118P9PW9","doctor","https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fplugins\u002Fwheelhouse\u002Fskills\u002Fdoctor\u002FSKILL.md",[],[120],{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":130,"publishedAt":37},"01M6H45X8QJZTQAPN56WZ8V111","add-seat","Add a named seat to a Wheelhouse - a crew member, a standing role (such as a dispatcher) or a worker - as a ynh harness with its charter, standing orders and only the tools its job needs, named from the Wheelhouse's roster. Use when asked to add, create or set up a seat, role, worker or agent in a Wheelhouse (a release manager, a PR watcher, a dispatcher, a designer, more workers), or to give a role a name, or to start on a Wheelhouse's team (its starter team), one role at a time. Also use to trial, make official or drop a seat.","https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fplugins\u002Fwheelhouse\u002Fskills\u002Fadd-seat\u002FSKILL.md",[],[131,132,133,31,134,135,136,137,138,24,139,140,141,142,143,144,27,145,146,147],"add","add seat","harness","roster","use","release manager","workers","team","create","watcher","starter","when","more","worker","only","pr","as",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":154,"publishedAt":37},"01M6H4BWCVR2YJVP8RW878NYDP","voice","How voices work - what a voice skill contains, how to write a new one, and how several voices compose into one reply. Use whenever drafting a reply in a named voice, or when asked to create or change a voice.","https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Fvoice\u002Fskills\u002Fvoice\u002FSKILL.md",[],[150,139,155,156,157,158,135,159,160,161,162,163,142,164],"how to","work","change","voice skill","compose","how","write","reply","new","drafting",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":171,"publishedAt":37},"01M6H4BRVA87C6T495HCFNDQ7Z","voice-warm","A friendly voice that acknowledges the person and their effort. Compose with direct for friendly but brief.","https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Fvoice\u002Fskills\u002Fvoice-warm\u002FSKILL.md",[],[172,150,173,24,174,159,175,176,177],"voice warm","person","brief","direct","for","but",{"skillNo":179,"name":180,"nameZh":6,"description":181,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":182,"categories":183,"keywords":184,"publishedAt":37},"01M6H4BNFQ64X65YZDM9QMD61B","voice-formal","A careful, complete voice for people outside the team - customers, partners, senior stakeholders.","https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Fvoice\u002Fskills\u002Fvoice-formal\u002FSKILL.md",[],[185,150,138,186,187,188,189,190,176],"voice formal","complete","senior","careful","partners","people",{"skillNo":192,"name":193,"nameZh":6,"description":194,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":195,"categories":196,"keywords":197,"publishedAt":37},"01M6H4BHXE6KSNBY92TBFZY7QD","voice-direct","A plain, brief voice that leads with the answer. The default when no voice is named.","https:\u002F\u002Fgithub.com\u002Feyelock\u002Fassistants\u002Fblob\u002Fdevelop\u002Fskills\u002Fvoice\u002Fskills\u002Fvoice-direct\u002FSKILL.md",[],[198,175,150,24,174,199,200,201,142,202],"voice direct","leads","answer","default","plain"]