[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6X244BDKX3R132FG416FFQD":3,"skill-same:01M6X244BDKX3R132FG416FFQD":60},{"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":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":36,"commitSha":37,"skillDirectory":38,"forksCount":39,"repositoryHtmlUrl":40,"repositoryHomepageUrl":41,"ownerHtmlUrl":42,"ownerBlogUrl":43,"ownerDescription":44,"updatedAt":45,"install":46,"resources":59},"01M6X244BDKX3R132FG416FFQD","release-process",null,"Prepare, publish, recover, and verify Squad insider, preview, and stable releases","github\u002Fsquad","github","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F9919?v=4","01M6AC83DS133TPXFSP1DHNCC6","GitHub","01M6X0MZ6B0WYMMDPK3Q61KER6",3388,"MIT","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fsquad\u002Fblob\u002Fdev\u002Ftemplates\u002Fskills\u002Frelease-process\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29],"release process","release","process","prepare","squad","publish","verify","releases","preview","insider","high","2026-11-10 10:12:30",false,"---\nname: \"release-process\"\ndescription: \"Prepare, publish, recover, and verify Squad insider, preview, and stable releases\"\ndomain: \"release\"\nconfidence: \"high\"\nsource: \"earned\"\n---\n\n# Release Process\n\nThis is the canonical Squad release runbook. Squad has three release channels\nand two long-lived branches:\n\n| Source | Version | GitHub | npm | Standalone | Homebrew\u002FWinGet |\n|--------|---------|--------|-----|------------|-----------------|\n| Insider dispatch from `dev` | Generated `X.Y.Z-insider.N` | Prerelease | `insider` | Yes | Yes |\n| Release dispatch from `dev` | `X.Y.Z-preview.N` | Prerelease | `preview` | Yes | Yes |\n| Promotion PR merged to `main` (or legacy workflow push) | `X.Y.Z` | Stable\u002Flatest | `latest` | Yes | Yes |\n\nThe repository does not use a staging `preview` branch. Preview is a release\nchannel, not a branch.\n\n## Non-negotiable rules\n\n1. Never create release tags or GitHub Releases manually. `squad-release.yml`\n   creates both.\n2. Never reuse a version. A preview such as `0.14.0-preview.1` and stable\n   `0.14.0` are separate immutable releases.\n3. Keep the root, SDK, and CLI versions identical.\n4. Set the CLI's SDK dependency floor to `>=VERSION`; prerelease workspaces do\n   not match an older stable range.\n5. Add an exact `## [VERSION]` entry to `CHANGELOG.md`.\n6. Merge release preparation to `dev` and wait for CI before dispatching.\n7. Keep separate Homebrew casks and WinGet identifiers for each channel.\n\n## Required credentials\n\nConfigure these GitHub Actions secrets:\n\n- `NPM_TOKEN`: an automation-capable npm publish token that does not require an\n  interactive OTP.\n- `HOMEBREW_TAP_TOKEN`: a classic GitHub PAT with `public_repo`, owned by an\n  account that has write access to `bradygaster\u002Fhomebrew-squad`.\n- `WINGET_CREATE_GITHUB_TOKEN`: a classic GitHub PAT with `public_repo`, owned\n  by the account that maintains `tamirdresher\u002Fwinget-pkgs`.\n\n## Human release-trigger boundary\n\nAgents may prepare versions, run validation, and recommend exact commands, but\nagents must never execute or dispatch live publication, promotion, or recovery\nworkflows. Only a human executes the real trigger for these live workflows:\n`squad-release.yml`, `squad-agents-ai-release.yml`, `squad-insider-publish.yml`,\n`squad-promote.yml` with `dry_run=false`, `squad-version-promote.yml`,\n`squad-npm-publish.yml`, or `squad-standalone-release.yml`.\nTreat `squad-promote.yml --ref dev -f dry_run=true` as human-only too: the\nworkflow still has `actions: write` and `contents: write`, checks out `dev`\nwith the workflow token, installs dependencies, and runs the release build and\ntests. Do not describe any GitHub Actions release workflow as agent-safe once\nit has write-capable credentials or a dispatch path. Stop with verified\ncommands and evidence for a human to run; human approval alone does not\nauthorize an agent to fire the trigger.\n\n## Prepare a release\n\nVerify `dev` and `main` share ancestry before changing versions:\n\n```bash\ngit fetch origin dev main\ngit merge-base origin\u002Fdev origin\u002Fmain\n```\n\nIf that command returns no commit, stop and repair ancestry in a separate PR.\n\nChoose a unique SemVer version and update all package manifests:\n\n```bash\nVERSION=0.14.0-preview.1\nnpm version \"$VERSION\" --workspaces --include-workspace-root --no-git-tag-version\nnpm pkg set \"dependencies.@bradygaster\u002Fsquad-sdk=>=$VERSION\" \\\n  --workspace @bradygaster\u002Fsquad-cli\nnpm install --package-lock-only\n```\n\nThis updates the root package, both workspaces, and the lockfile. Confirm:\n\n```bash\nnode -p \"require('semver').valid('$VERSION')\"\ngrep '\"version\"' package.json packages\u002Fsquad-sdk\u002Fpackage.json packages\u002Fsquad-cli\u002Fpackage.json\ngrep -F \"## [$VERSION]\" CHANGELOG.md\nSKIP_BUILD_BUMP=1 npm run build\nnpx vitest run\n```\n\nThe validation build must not mutate package versions or the lockfile; check\n`git diff -- package.json packages\u002Fsquad-sdk\u002Fpackage.json packages\u002Fsquad-cli\u002Fpackage.json\npackage-lock.json` afterward and stop if any version-only change appears.\n\nRelease preparation lands through a normal PR to `dev`. Do not push directly to\n`main`.\n\n## Publish a preview release\n\nPreview versions must contain a prerelease suffix, for example\n`0.14.0-preview.1`.\n\nAfter the release-preparation PR is merged and `dev` CI is green:\n\nHuman-only reference command: this live publish workflow must be run by a human. Agents must stop, hand off, and not execute it directly.\n\n```bash\nVERSION=0.14.0-preview.1\ngh workflow run squad-release.yml \\\n  --ref dev \\\n  -f confirm_tag=\"v$VERSION\"\ngh run watch\n```\n\nThe workflow:\n\n1. Requires the dispatch ref to be `dev`.\n2. Rejects a stable `X.Y.Z` version.\n3. Creates `v$VERSION` and a GitHub prerelease.\n4. Publishes both npm packages with `--tag preview`.\n5. Uploads six standalone archives and `SHA256SUMS.txt`.\n6. Updates the `squad-preview` Homebrew cask and\n   `bradygaster.Squad.Preview` WinGet package.\n\nInstall the resulting preview:\n\n```bash\nnpm install -g @bradygaster\u002Fsquad-cli@preview\n```\n\nThe same preview is available through `brew install --cask squad-preview` and\n`winget install --id bradygaster.Squad.Preview --exact`.\n\n## Publish an insider release\n\nStart an on-demand snapshot from `dev`:\n\nHuman-only reference command: this live publish workflow must be run by a human. Agents must stop, hand off, and not execute it directly.\n\n```bash\ngh workflow run squad-insider-publish.yml --ref dev -f dry_run=false\ngh run watch\n```\n\nThe workflow computes the next immutable `X.Y.Z-insider.N` version, publishes\nnpm `insider`, creates a GitHub prerelease, uploads standalone bundles, updates\nthe `squad-insider` Homebrew cask, and opens or reuses the\n`bradygaster.Squad.Insider` WinGet PR.\n\n## Publish a stable release\n\nStable versions must be exactly `X.Y.Z`. Prepare and merge the stable version\nto `dev`, then human-only validate the sanitized merge without changing\n`main`:\n\n```bash\ngh workflow run squad-promote.yml --ref dev -f dry_run=true\ngh run watch\n```\n\nDo not treat this as an agent-safe command. It still checks out `dev` with\nworkflow credentials and runs repository build\u002Ftest logic. Only a human should\nfire it. Start the real promotion:\n\nHuman-only reference command: this live publish workflow must be run by a human. Agents must stop, hand off, and not execute it directly.\n\n```bash\ngh workflow run squad-promote.yml --ref dev -f dry_run=false\ngh run watch\n```\n\nWhen a validated sanitized promotion branch already exists in the upstream\nrepository, a human can instead have `github-actions[bot]` open the protected\n`main` PR:\n\n```bash\ngh workflow run squad-promote.yml --ref dev \\\n  -f dry_run=false \\\n  -f promotion_branch=chore\u002Fpromote-X.Y.Z\n```\n\nThe workflow revalidates the branch, builds it, runs the release-gate tests,\nand opens the PR with `GITHUB_TOKEN`. GitHub may hold the resulting\n`pull_request` workflow runs for maintainer approval. A maintainer with write\naccess must approve those runs, approve the PR, and merge it. The merge push\nto `main` starts `squad-release.yml` normally.\n\nWithout `promotion_branch`, the legacy workflow:\n\n`squad-promote.yml`:\n\n1. Merges `origin\u002Fdev` directly into `main`.\n2. Removes `.ai-team\u002F`, `.squad\u002F`, `.ai-team-templates\u002F`, `team-docs\u002F`, and\n   `docs\u002Fproposals\u002F` from the release tree.\n3. Rejects unresolved conflicts, prerelease versions, mismatched package\n   versions, and missing changelog entries.\n4. Installs dependencies, builds, and runs release tests.\n5. Pushes `main` and explicitly dispatches `squad-release.yml`.\n\nThe explicit dispatch is required because GitHub suppresses push-triggered\nworkflow runs for commits authenticated with `GITHUB_TOKEN`. The release\nworkflow creates the stable tag and GitHub Release, publishes npm `latest`,\nuploads standalone archives, updates Homebrew, and opens or reuses the WinGet\nPR.\n\n## Verify publication\n\nUse `insider`, `preview`, or `latest` for `DIST_TAG`:\n\n```bash\nVERSION=0.14.0\nDIST_TAG=latest\n\nnpm view @bradygaster\u002Fsquad-sdk \"dist-tags.$DIST_TAG\"\nnpm view @bradygaster\u002Fsquad-cli \"dist-tags.$DIST_TAG\"\ngh release view \"v$VERSION\"\n```\n\nThe npm values must equal `VERSION`. The GitHub Release must contain:\n\n```text\nsquad-linux-x64.tar.gz\nsquad-linux-arm64.tar.gz\nsquad-darwin-x64.tar.gz\nsquad-darwin-arm64.tar.gz\nsquad-win32-x64.zip\nsquad-win32-arm64.zip\nSHA256SUMS.txt\n```\n\nFor every release, also verify the channel's Homebrew cask (`squad`,\n`squad-preview`, or `squad-insider`) and WinGet identifier\n(`bradygaster.Squad`, `.Preview`, or `.Insider`) reference the new version.\n\n## Recovery\n\nThe top-level release workflow intentionally does not republish after its tag\nalready exists. Rerun the failed child job, or dispatch the reusable workflow\nfrom the branch that owns that release channel while building from the\nimmutable tag.\n\nStable recovery:\n\nHuman-only reference command: this live publish workflow must be run by a human. Agents must stop, hand off, and not execute it directly.\n\n```bash\nVERSION=0.14.0\ngh workflow run squad-npm-publish.yml --ref main \\\n  -f version=\"$VERSION\" -f source_ref=\"v$VERSION\"\ngh workflow run squad-standalone-release.yml --ref main \\\n  -f upload=true -f release_tag=\"v$VERSION\" -f source_ref=\"v$VERSION\"\n```\n\nPreview recovery:\n\nHuman-only reference command: this live publish workflow must be run by a human. Agents must stop, hand off, and not execute it directly.\n\n```bash\nVERSION=0.14.0-preview.1\ngh workflow run squad-npm-publish.yml --ref dev \\\n  -f version=\"$VERSION\" -f source_ref=\"v$VERSION\"\ngh workflow run squad-standalone-release.yml --ref dev \\\n  -f upload=true -f release_tag=\"v$VERSION\" -f source_ref=\"v$VERSION\"\n```\n\nPublication is idempotent. Existing package versions and release assets are\nverified rather than overwritten. npm publication fails instead of silently\nmoving `latest` or `preview` away from an existing version.\n\n## After a stable release\n\nPrepare the next development version in a normal PR to `dev`:\n\n```bash\nNEXT_VERSION=0.15.0-preview.1\nnpm version \"$NEXT_VERSION\" --workspaces --include-workspace-root --no-git-tag-version\nnpm pkg set \"dependencies.@bradygaster\u002Fsquad-sdk=>=$NEXT_VERSION\" \\\n  --workspace @bradygaster\u002Fsquad-cli\nnpm install --package-lock-only\n```\n\nDo not merge `main` back into `dev`; the promotion commit already has `dev` as\nits parent, while the stripped internal state intentionally remains only on\n`dev`.\n","# Release Process\n\nThis is the canonical Squad release runbook. Squad has three release channels\nand two long-lived branches:\n\n| Source | Version | GitHub | npm | Standalone | Homebrew\u002FWinGet |\n|--------|---------|--------|-----|------------|-----------------|\n| Insider dispatch from `dev` | Generated `X.Y.Z-insider.N` | Prerelease | `insider` | Yes | Yes |\n| Release dispatch from `dev` | `X.Y.Z-preview.N` | Prerelease | `preview` | Yes | Yes |\n| Promotion PR merged to `main` (or legacy workflow push) | `X.Y.Z` | Stable\u002Flatest | `latest` | Yes | Yes |\n\nThe repository does not use a staging `preview` branch. Preview is a release\nchannel, not a branch.\n\n## Non-negotiable rules\n\n1. Never create release tags or GitHub Releases manually. `squad-release.yml`\n   creates both.\n2. Never reuse a version. A preview such as `0.14.0-preview.1` and stable\n   `0.14.0` are separate immutable releases.\n3. Keep the root, SDK, and CLI versions identical.\n4. Set the CLI's SDK dependency floor to `>=VERSION`; prerelease workspaces do\n   not match an older stable range.\n5. Add an exact `## [VERSION]` entry to `CHANGELOG.md`.\n6. Merge release preparation to `dev` and wait for CI before dispatching.\n7. Keep separate Homebrew casks and WinGet identifiers for each channel.\n\n## Required credentials\n\nConfigure these GitHub Actions secrets:\n\n- `NPM_TOKEN`: an automation-capable npm publish token that does not require an\n  interactive OTP.\n- `HOMEBREW_TAP_TOKEN`: a classic GitHub PAT with `public_repo`, owned by an\n  account that has write access to `bradygaster\u002Fhomebrew-squad`.\n- `WINGET_CREATE_GITHUB_TOKEN`: a classic GitHub PAT with `public_repo`, owned\n  by the account that maintains `tamirdresher\u002Fwinget-pkgs`.\n\n## Human release-trigger boundary\n\nAgents may prepare versions, run validation, and recommend exact commands, but\nagents must never execute or dispatch live publication, promotion, or recovery\nworkflows. Only a human executes the real trigger for these live workflows:\n`squad-release.yml`, `squad-agents-ai-release.yml`, `squad-insider-publish.yml`,\n`squad-promote.yml` with `dry_run=false`, `squad-version-promote.yml`,\n`squad-npm-publish.yml`, or `squad-standalone-release.yml`.\nTreat `squad-promote.yml --ref dev -f dry_run=true` as human-only too: the\nworkflow still has `actions: write` and `contents: write`, checks out `dev`\nwith the workflow token, installs dependencies, and runs the release build and\ntests. Do not describe any GitHub Actions release workflow as agent-safe once\nit has write-capable credentials or a dispatch path. Stop with verified\ncommands and evidence for a human to run; human approval alone does not\nauthorize an agent to fire the trigger.\n\n## Prepare a release\n\nVerify `dev` and `main` share ancestry before changing versions:\n\n```bash\ngit fetch origin dev main\ngit merge-base origin\u002Fdev origin\u002Fmain\n```\n\nIf that command returns no commit, stop and repair ancestry in a separate PR.\n\nChoose a unique SemVer version and update all package manifests:\n\n```bash\nVERSION=0.14.0-preview.1\nnpm version \"$VERSION\" --workspaces --include-workspace-root --no-git-tag-version\nnpm pkg set \"dependencies.@bradygaster\u002Fsquad-sdk=>=$VERSION\" \\\n  --workspace @bradygaster\u002Fsquad-cli\nnpm install --package-lock-only\n```\n\nThis updates the root package, both workspaces, and the lockfile. Confirm:\n\n```bash\nnode -p \"require('semver').valid('$VERSION')\"\ngrep '\"version\"' package.json packages\u002Fsquad-sdk\u002Fpackage.json packages\u002Fsquad-cli\u002Fpackage.json\ngrep -F \"## [$VERSION]\" CHANGELOG.md\nSKIP_BUILD_BUMP=1 npm run build\nnpx vitest run\n```\n\nThe validation build must not mutate package versions or the lockfile; check\n`git diff -- package.json packages\u002Fsquad-sdk\u002Fpackage.json packages\u002Fsquad-cli\u002Fpackage.json\npackage-lock.json` afterward and stop if any version-only change appears.\n\nRelease preparation lands through a normal PR to `dev`. Do not push directly to\n`main`.\n\n## Publish a preview release\n\nPreview versions must contain a prerelease suffix, for example\n`0.14.0-preview.1`.\n\nAfter the release-preparation PR is merged and `dev` CI is green:\n\nHuman-only reference command: this live publish workflow must be run by a human. Agents must stop, hand off, and not execute it directly.\n\n```bash\nVERSION=0.14.0-preview.1\ngh workflow run squad-release.yml \\\n  --ref dev \\\n  -f confirm_tag=\"v$VERSION\"\ngh run watch\n```\n\nThe workflow:\n\n1. Requires the dispatch ref to be `dev`.\n2. Rejects a stable `X.Y.Z` version.\n3. Creates `v$VERSION` and a GitHub prerelease.\n4. Publishes both npm packages with `--tag preview`.\n5. Uploads six standalone archives and `SHA256SUMS.txt`.\n6. Updates the `squad-preview` Homebrew cask and\n   `bradygaster.Squad.Preview` WinGet package.\n\nInstall the resulting preview:\n\n```bash\nnpm install -g @bradygaster\u002Fsquad-cli@preview\n```\n\nThe same preview is available through `brew install --cask squad-preview` and\n`winget install --id bradygaster.Squad.Preview --exact`.\n\n## Publish an insider release\n\nStart an on-demand snapshot from `dev`:\n\nHuman-only reference command: this live publish workflow must be run by a human. Agents must stop, hand off, and not execute it directly.\n\n```bash\ngh workflow run squad-insider-publish.yml --ref dev -f dry_run=false\ngh run watch\n```\n\nThe workflow computes the next immutable `X.Y.Z-insider.N` version, publishes\nnpm `insider`, creates a GitHub prerelease, uploads standalone bundles, updates\nthe `squad-insider` Homebrew cask, and opens or reuses the\n`bradygaster.Squad.Insider` WinGet PR.\n\n## Publish a stable release\n\nStable versions must be exactly `X.Y.Z`. Prepare and merge the stable version\nto `dev`, then human-only validate the sanitized merge without changing\n`main`:\n\n```bash\ngh workflow run squad-promote.yml --ref dev -f dry_run=true\ngh run watch\n```\n\nDo not treat this as an agent-safe command. It still checks out `dev` with\nworkflow credentials and runs repository build\u002Ftest logic. Only a human should\nfire it. Start the real promotion:\n\nHuman-only reference command: this live publish workflow must be run by a human. Agents must stop, hand off, and not execute it directly.\n\n```bash\ngh workflow run squad-promote.yml --ref dev -f dry_run=false\ngh run watch\n```\n\nWhen a validated sanitized promotion branch already exists in the upstream\nrepository, a human can instead have `github-actions[bot]` open the protected\n`main` PR:\n\n```bash\ngh workflow run squad-promote.yml --ref dev \\\n  -f dry_run=false \\\n  -f promotion_branch=chore\u002Fpromote-X.Y.Z\n```\n\nThe workflow revalidates the branch, builds it, runs the release-gate tests,\nand opens the PR with `GITHUB_TOKEN`. GitHub may hold the resulting\n`pull_request` workflow runs for maintainer approval. A maintainer with write\naccess must approve those runs, approve the PR, and merge it. The merge push\nto `main` starts `squad-release.yml` normally.\n\nWithout `promotion_branch`, the legacy workflow:\n\n`squad-promote.yml`:\n\n1. Merges `origin\u002Fdev` directly into `main`.\n2. Removes `.ai-team\u002F`, `.squad\u002F`, `.ai-team-templates\u002F`, `team-docs\u002F`, and\n   `docs\u002Fproposals\u002F` from the release tree.\n3. Rejects unresolved conflicts, prerelease versions, mismatched package\n   versions, and missing changelog entries.\n4. Installs dependencies, builds, and runs release tests.\n5. Pushes `main` and explicitly dispatches `squad-release.yml`.\n\nThe explicit dispatch is required because GitHub suppresses push-triggered\nworkflow runs for commits authenticated with `GITHUB_TOKEN`. The release\nworkflow creates the stable tag and GitHub Release, publishes npm `latest`,\nuploads standalone archives, updates Homebrew, and opens or reuses the WinGet\nPR.\n\n## Verify publication\n\nUse `insider`, `preview`, or `latest` for `DIST_TAG`:\n\n```bash\nVERSION=0.14.0\nDIST_TAG=latest\n\nnpm view @bradygaster\u002Fsquad-sdk \"dist-tags.$DIST_TAG\"\nnpm view @bradygaster\u002Fsquad-cli \"dist-tags.$DIST_TAG\"\ngh release view \"v$VERSION\"\n```\n\nThe npm values must equal `VERSION`. The GitHub Release must contain:\n\n```text\nsquad-linux-x64.tar.gz\nsquad-linux-arm64.tar.gz\nsquad-darwin-x64.tar.gz\nsquad-darwin-arm64.tar.gz\nsquad-win32-x64.zip\nsquad-win32-arm64.zip\nSHA256SUMS.txt\n```\n\nFor every release, also verify the channel's Homebrew cask (`squad`,\n`squad-preview`, or `squad-insider`) and WinGet identifier\n(`bradygaster.Squad`, `.Preview`, or `.Insider`) reference the new version.\n\n## Recovery\n\nThe top-level release workflow intentionally does not republish after its tag\nalready exists. Rerun the failed child job, or dispatch the reusable workflow\nfrom the branch that owns that release channel while building from the\nimmutable tag.\n\nStable recovery:\n\nHuman-only reference command: this live publish workflow must be run by a human. Agents must stop, hand off, and not execute it directly.\n\n```bash\nVERSION=0.14.0\ngh workflow run squad-npm-publish.yml --ref main \\\n  -f version=\"$VERSION\" -f source_ref=\"v$VERSION\"\ngh workflow run squad-standalone-release.yml --ref main \\\n  -f upload=true -f release_tag=\"v$VERSION\" -f source_ref=\"v$VERSION\"\n```\n\nPreview recovery:\n\nHuman-only reference command: this live publish workflow must be run by a human. Agents must stop, hand off, and not execute it directly.\n\n```bash\nVERSION=0.14.0-preview.1\ngh workflow run squad-npm-publish.yml --ref dev \\\n  -f version=\"$VERSION\" -f source_ref=\"v$VERSION\"\ngh workflow run squad-standalone-release.yml --ref dev \\\n  -f upload=true -f release_tag=\"v$VERSION\" -f source_ref=\"v$VERSION\"\n```\n\nPublication is idempotent. Existing package versions and release assets are\nverified rather than overwritten. npm publication fails instead of silently\nmoving `latest` or `preview` away from an existing version.\n\n## After a stable release\n\nPrepare the next development version in a normal PR to `dev`:\n\n```bash\nNEXT_VERSION=0.15.0-preview.1\nnpm version \"$NEXT_VERSION\" --workspaces --include-workspace-root --no-git-tag-version\nnpm pkg set \"dependencies.@bradygaster\u002Fsquad-sdk=>=$NEXT_VERSION\" \\\n  --workspace @bradygaster\u002Fsquad-cli\nnpm install --package-lock-only\n```\n\nDo not merge `main` back into `dev`; the promotion commit already has `dev` as\nits parent, while the stripped internal state intentionally remains only on\n`dev`.\n",{"name":5,"domain":20,"source":35,"confidence":29,"description":7},"earned","dev","7b731ec97f35346bdc4fa87c3edaf16b808fc0ae","templates\u002Fskills\u002Frelease-process",518,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fsquad","https:\u002F\u002Fgithub.github.io\u002Fsquad\u002F","https:\u002F\u002Fgithub.com\u002Fgithub","https:\u002F\u002Fgithub.com\u002Fabout","How people build software.","2026-11-14 03:47:34",{"source":8,"skillName":5,"commands":47,"prompt":57,"zipAvailable":58},[48,51,54],{"tool":49,"command":50},"npx","npx skills add github\u002Fsquad --skill release-process",{"tool":52,"command":53},"bunx","bunx skills add github\u002Fsquad --skill release-process",{"tool":55,"command":56},"pnpm","pnpm dlx skills add github\u002Fsquad --skill release-process","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgithub\u002Fsquad\u002Fblob\u002Fdev\u002Ftemplates\u002Fskills\u002Frelease-process\u002FSKILL.md",true,[],[61,69,76,83,114,126],{"skillNo":62,"name":63,"nameZh":6,"description":64,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":67,"publishedAt":68},"01M76742ST8ZMSD38226TH61CN","squad-coordinator-init-mode","Squad coordinator only: Init Mode, proposing and casting a new team. Load when team.md is missing or has an empty roster, or when asked to set up or cast a team.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fsquad\u002Fblob\u002Fdev\u002Fplugins\u002Fsquad\u002Fskills\u002Fsquad-coordinator-init-mode\u002FSKILL.md",[],[],"2026-11-12 13:55:43",{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":68},"01M7673KYSME979M20YQTVV8P6","retro-enforcement","Keep retrospectives on schedule and track their action items as GitHub Issues, not markdown checklists","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fsquad\u002Fblob\u002Fdev\u002Fplugins\u002Fsquad\u002Fskills\u002Fretro-enforcement\u002FSKILL.md",[],[],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":68},"01M7670QCHBSR4W2XSX8XPA2ZB","cli-wiring","Checklist for wiring a new Squad CLI command: route it in cli-entry.ts, add help text, and test that it is reachable","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fsquad\u002Fblob\u002Fdev\u002Fplugins\u002Fsquad\u002Fskills\u002Fcli-wiring\u002FSKILL.md",[],[],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":94,"publishedAt":30},"01M6X287DVJK1S91END9DSHETN","gh-aw-enlistment","Enlist a repository into Squad by installing the supported GitHub Agentic Workflows (gh-aw) bootstrap — with strict compilation, an explicit safe-update allowlist, and a human-reviewed bootstrap PR. Never auto-merges.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fsquad\u002Fblob\u002Fdev\u002Fworkflows\u002Fskills\u002Fgh-aw-enlistment\u002FSKILL.md",[89],{"categoryNo":90,"categoryName":91,"taxonomyType":92,"taxonomyTypeDesc":93},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[95,96,97,98,99,100,23,101,102,103,104,105,106,107,108,109,110,111,112,113],"gh aw enlistment","gh","preflight","guide","identity","compiling","pr creation","Safety","safe","update","human","github cli","lock","workflows","auto","files","agentic workflows","ci","actions",{"skillNo":115,"name":116,"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":117,"categories":118,"keywords":120,"publishedAt":30},"01M6X27Y5119CSRQFFJCV6432R","My Skill","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fsquad\u002Fblob\u002Fdev\u002Ftest-fixtures\u002Fskills-test-abb30454\u002Fmy-skill\u002FSKILL.md",[119],{"categoryNo":90,"categoryName":91,"taxonomyType":92,"taxonomyTypeDesc":93},[121,122,123,124,125],"my","my skill","tester","testing","vitest",{"skillNo":127,"name":128,"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":129,"categories":130,"keywords":132,"publishedAt":30},"01M6X27RWAYB2X9ER0MVRRKXGA","bad-skill","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fsquad\u002Fblob\u002Fdev\u002Ftest-fixtures\u002Fskills-test-abb30454\u002Fbad-skill\u002FSKILL.md",[131],{"categoryNo":90,"categoryName":91,"taxonomyType":92,"taxonomyTypeDesc":93},[133,134],"bad","bad skill"]