[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71RGQCVDED28YAM3GGMSSV3":3,"skill-same:01M71RGQCVDED28YAM3GGMSSV3":107},{"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":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":6,"ownerDescription":55,"updatedAt":56,"install":57,"resources":70},"01M71RGQCVDED28YAM3GGMSSV3","autospec-resume",null,"Use when a fresh process must detect an interrupted autospec run from durable run-state plus heartbeats and auto-continue it after a host, session, or terminal crash — without adding a second lock, without stealing a genuinely-live worker on another host, without deleting un-pushed work, and capped at AUTOSPEC_RESUME_MAX_ATTEMPTS (default 3) consecutive attempts. Supports --resume-partial, --repo \u003Cowner\u002Fname>, and --dry-run.","berlinguyinca\u002Fautospec","berlinguyinca","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F16364?v=4","01M71R7C0SWBG05FNHQE4XQ7Y3","Gert Wohlgemuth","01M71R7C1VY5K3Q715RNDDBVGQ",3,"MIT","https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec-resume\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000038","人力资源","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"autospec resume","autospec","resume","dry","autospec run","when","second","lock","detect","host","fresh","state","worker","default","auto","use","session","repo","work","continue","2026-11-10 13:02:02",false,"---\nname: autospec-resume\ndescription: Use when a fresh process must detect an interrupted autospec run from durable run-state plus heartbeats and auto-continue it after a host, session, or terminal crash — without adding a second lock, without stealing a genuinely-live worker on another host, without deleting un-pushed work, and capped at AUTOSPEC_RESUME_MAX_ATTEMPTS (default 3) consecutive attempts. Supports --resume-partial, --repo \u003Cowner\u002Fname>, and --dry-run.\n---\n\n# autospec-resume (harness-neutral)\n\nDetect an interrupted autospec run from durable run-state + heartbeats on a\n*fresh* start and auto-continue it. All decision logic routes through\n`bash \"${AUTOSPEC_SCRIPTS_DIR:-$HOME\u002F.autospec\u002Fscripts}\u002Fresume-scan.sh\" \"$@\"`.\n\nManage your own context — never exceed 60%. Delegate to subagents whenever your harness supports it.\n\n\u003C!-- autospec-block:startup-self-update SKILL_NAME=autospec-resume -->\n\n## Self-update mode\n\nIf the feature-request argument matches the regex `^\\s*update\\s*$` (case-insensitive, whitespace-padded), this skill enters self-update mode and does not run the normal pipeline:\n\n1. **Detect harness** by checking which install path exists for this skill:\n   - Claude Code: `~\u002F.claude\u002Fskills\u002Fautospec-resume\u002FSKILL.md`\n   - OpenCode:    `~\u002F.config\u002Fopencode\u002Fagent\u002Fautospec-resume.md`\n   - Codex CLI:   `~\u002F.codex\u002Fprompts\u002Fautospec-resume.md`\n2. **Re-install the full autospec suite from `main`** by piping the canonical installer:\n   ```bash\n   curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fberlinguyinca\u002Fautospec\u002Fmain\u002Fbootstrap.sh | bash -s -- --skill all --harness all --update\n   ```\n   Run this one-liner once; it refreshes all autospec skills across all harnesses.\n3. **Show the diff** between the prior installed file(s) and the freshly fetched copy.\n4. **Stop.** Do not enter any pipeline phase. Print the upgrade summary and return to the user.\n\nIf no install path is detected, print `Self-update: no installed copy of autospec-resume found; run install.sh first.` and exit.\n\n## Harness detection\n\nThis skill is a thin dispatch wrapper — the relaunch happens through the durably-captured command, so it runs at the implementation tier. Detect your harness and pick the matching subagent tier:\n\n- **TIER_A** (architecture \u002F deep reasoning): not used here; this skill never plans.\n- **TIER_B** (implementation work): the default — run the scan helper, print its one-line decision.\n\nIf your harness lacks a subagent primitive, run the helper inline and **silently** fall back to the in-context path rather than erroring. Never escalate a missing capability into a hard failure.\n\n## Stop mode\n\nIf the feature-request argument matches the regex `^\\s*stop(\\s+--\\w+)*\\s*$`\n(case-insensitive), defer to `\u002Fautospec-stop`: dispatch to\n`bash \"${AUTOSPEC_SCRIPTS_DIR:-$HOME\u002F.autospec\u002Fscripts}\u002Fautospec-stop.sh\" \u003Cargs>`,\nprint its stdout, and do not enter any resume pipeline. Resume never halts a\nrunning monitor — that is `\u002Fautospec-stop`'s job.\n\n## Invocation\n\n```\n\u002Fautospec-resume [--resume-partial] [--repo \u003Cowner\u002Fname>] [--dry-run]\n```\n\nDispatches directly to `bash \"${AUTOSPEC_SCRIPTS_DIR:-$HOME\u002F.autospec\u002Fscripts}\u002Fresume-scan.sh\" \"$@\"`. All decision logic lives in the helper script.\n\n| Flag | Behaviour |\n|---|---|\n| (none) | Scan `in-progress-by-bot` and open `auto-implement` issues, apply the auto-resume pre-conditions, recover only exact stale-startup claims through Rust, and if all pass relaunch via the durably-captured command (clean-restart off `origin\u002Fmain`). |\n| `--resume-partial` | Additionally re-attach `\u002Ftmp\u002Fwt-\u003Cbranch>` **only when** `heartbeat.host == $(hostname)`; cross-host or missing host silently clean-restarts off `origin\u002Fmain`. |\n| `--repo \u003Cowner\u002Fname>` | Target a specific repo (used by the boot supervisor, which iterates the registry). |\n| `--dry-run` | Print the recovery and relaunch actions that *would* run; invoke neither action; change nothing; exit 0. |\n\n**Exit codes:** `0` = nothing to resume \u002F `--dry-run` \u002F resumed (one-line reason printed); `1` = hard error (bad args, no `gh`).\n\n## Auto-resume contract (enforced by the helper)\n\n- **No second lock \u002F idempotency.** Resume relaunches the *run*; the relaunched monitor reads the existing GitHub CAS lock-comment through `autospec claim state read` (lowest-comment-id wins, loser self-cleans). Resume itself never writes a run-state comment and never adds any new lock. Two concurrent resumes (supervisor + human, or two hosts) converge to exactly one claim per issue at the existing CAS boundary.\n- **Pre-conditions (ALL required, else exit 0, no relaunch):** (a) ≥1 crashed `in-progress-by-bot` issue or exact stale-startup candidate from open `auto-implement`; (b) no `~\u002F.autospec\u002Fstop.flag`; (c) no issue labeled `paused-by-user`; (d) not all issues closed.\n- **Stranded startup recovery.** Scan both relevant labels, but accept `auto-implement` only when Rust run-state is the exact stale `claimed` \u002F `heartbeat-pending:none` sentinel for the requested repository and issue. Delegate every ownership mutation to `autospec claim state recover-stale-startup`; relaunch only when Rust returns an exact matching `recovered: true` result.\n- **Crash-vs-live.** Treat an issue as crashed (eligible) only when its age, computed from run-state **server** `updated_at` (never a local clock — mirrors `autospec-watchdog.sh:386-405`), satisfies `step=claimed && age>=300` OR `age>=10800`. Otherwise assume a live\u002Fslow worker elsewhere and do **not** steal.\n- **Cross-host.** `--resume-partial` re-attaches `\u002Ftmp\u002Fwt-\u003Cbranch>` only when `heartbeat.host == $(hostname)`; cross-host or missing `host` MUST clean-restart off `origin\u002Fmain` (the crashed worktree is on a dead machine's local `\u002Ftmp`).\n- **Durable relaunch command.** The command comes from the registry `~\u002F.autospec\u002Factive-runs\u002F\u003Crepo-slug>.json` written by `\u002Fautospec-run` at monitor launch — never an attacker-supplied path. After a reboot (env cleared) the registry alone yields a runnable command.\n- **Attempt cap.** Capped at `AUTOSPEC_RESUME_MAX_ATTEMPTS` (default 3) consecutive attempts without forward progress. At the cap, halt, print the cap-reached reason, and surface. The counter resets on forward progress (any issue `merged`).\n\n## Required capabilities & harness adapter\n\nThis workflow assumes a small set of capabilities. Map each one to your harness's actual tool. If a capability is missing, use the listed fallback.\n\n| Capability                  | Claude Code                          | OpenCode                                 | Codex CLI                                | Fallback if missing                                |\n|-----------------------------|--------------------------------------|------------------------------------------|------------------------------------------|----------------------------------------------------|\n| Run shell command            | `Bash`                               | `bash` tool                              | `shell` \u002F `apply_patch`                  | Ask user to run manually                           |\n| Ask the user a question      | `AskUserQuestion`                    | inline prompt                            | inline prompt                            | Ask in the response and wait for the next turn     |\n| Subagent model tier          | Tier B: `sonnet` + medium thinking   | Tier B: smaller-tier `task` + medium reasoning | Tier B: current spark\u002Fcost-optimized Codex + `reasoning_effort=medium` | Fall back UP on unavailability |\n\u003C!-- autospec-block:harness-adapter-core -->\n\n**Model tier:** Tier B (implementation work) — this skill is a thin dispatch wrapper.\n\n## Procedure\n\n1. Run startup self-update block above.\n2. Parse the user's invocation arguments.\n3. Execute: `bash \"${AUTOSPEC_SCRIPTS_DIR:-$HOME\u002F.autospec\u002Fscripts}\u002Fresume-scan.sh\" \"$@\"`\n4. Print the helper's one-line decision to the user and exit.\n\nIf `${AUTOSPEC_SCRIPTS_DIR:-$HOME\u002F.autospec\u002Fscripts}\u002Fresume-scan.sh` is not found, print:\n```\nautospec-resume: helper not found at ${AUTOSPEC_SCRIPTS_DIR:-$HOME\u002F.autospec\u002Fscripts}\u002Fresume-scan.sh.\nReinstall autospec-resume from the autospec repo, then retry.\n```\nand exit non-zero.\n\n## Hard rules\n\n- Never write a run-state comment from this skill and never add a new lock. The relaunched monitor claims through the existing GitHub CAS lock only.\n- Never invoke stale-startup recovery or the relaunch command under `--dry-run`.\n- Never re-attach a cross-host or missing-host worktree under `--resume-partial`; clean-restart off `origin\u002Fmain`.\n- Never exceed `AUTOSPEC_RESUME_MAX_ATTEMPTS` consecutive auto-resume attempts; halt and surface at the cap.\n- This skill is a thin wrapper. All behaviour is in the helper script.\n","# autospec-resume (harness-neutral)\n\nDetect an interrupted autospec run from durable run-state + heartbeats on a\n*fresh* start and auto-continue it. All decision logic routes through\n`bash \"${AUTOSPEC_SCRIPTS_DIR:-$HOME\u002F.autospec\u002Fscripts}\u002Fresume-scan.sh\" \"$@\"`.\n\nManage your own context — never exceed 60%. Delegate to subagents whenever your harness supports it.\n\n\u003C!-- autospec-block:startup-self-update SKILL_NAME=autospec-resume -->\n\n## Self-update mode\n\nIf the feature-request argument matches the regex `^\\s*update\\s*$` (case-insensitive, whitespace-padded), this skill enters self-update mode and does not run the normal pipeline:\n\n1. **Detect harness** by checking which install path exists for this skill:\n   - Claude Code: `~\u002F.claude\u002Fskills\u002Fautospec-resume\u002FSKILL.md`\n   - OpenCode:    `~\u002F.config\u002Fopencode\u002Fagent\u002Fautospec-resume.md`\n   - Codex CLI:   `~\u002F.codex\u002Fprompts\u002Fautospec-resume.md`\n2. **Re-install the full autospec suite from `main`** by piping the canonical installer:\n   ```bash\n   curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fberlinguyinca\u002Fautospec\u002Fmain\u002Fbootstrap.sh | bash -s -- --skill all --harness all --update\n   ```\n   Run this one-liner once; it refreshes all autospec skills across all harnesses.\n3. **Show the diff** between the prior installed file(s) and the freshly fetched copy.\n4. **Stop.** Do not enter any pipeline phase. Print the upgrade summary and return to the user.\n\nIf no install path is detected, print `Self-update: no installed copy of autospec-resume found; run install.sh first.` and exit.\n\n## Harness detection\n\nThis skill is a thin dispatch wrapper — the relaunch happens through the durably-captured command, so it runs at the implementation tier. Detect your harness and pick the matching subagent tier:\n\n- **TIER_A** (architecture \u002F deep reasoning): not used here; this skill never plans.\n- **TIER_B** (implementation work): the default — run the scan helper, print its one-line decision.\n\nIf your harness lacks a subagent primitive, run the helper inline and **silently** fall back to the in-context path rather than erroring. Never escalate a missing capability into a hard failure.\n\n## Stop mode\n\nIf the feature-request argument matches the regex `^\\s*stop(\\s+--\\w+)*\\s*$`\n(case-insensitive), defer to `\u002Fautospec-stop`: dispatch to\n`bash \"${AUTOSPEC_SCRIPTS_DIR:-$HOME\u002F.autospec\u002Fscripts}\u002Fautospec-stop.sh\" \u003Cargs>`,\nprint its stdout, and do not enter any resume pipeline. Resume never halts a\nrunning monitor — that is `\u002Fautospec-stop`'s job.\n\n## Invocation\n\n```\n\u002Fautospec-resume [--resume-partial] [--repo \u003Cowner\u002Fname>] [--dry-run]\n```\n\nDispatches directly to `bash \"${AUTOSPEC_SCRIPTS_DIR:-$HOME\u002F.autospec\u002Fscripts}\u002Fresume-scan.sh\" \"$@\"`. All decision logic lives in the helper script.\n\n| Flag | Behaviour |\n|---|---|\n| (none) | Scan `in-progress-by-bot` and open `auto-implement` issues, apply the auto-resume pre-conditions, recover only exact stale-startup claims through Rust, and if all pass relaunch via the durably-captured command (clean-restart off `origin\u002Fmain`). |\n| `--resume-partial` | Additionally re-attach `\u002Ftmp\u002Fwt-\u003Cbranch>` **only when** `heartbeat.host == $(hostname)`; cross-host or missing host silently clean-restarts off `origin\u002Fmain`. |\n| `--repo \u003Cowner\u002Fname>` | Target a specific repo (used by the boot supervisor, which iterates the registry). |\n| `--dry-run` | Print the recovery and relaunch actions that *would* run; invoke neither action; change nothing; exit 0. |\n\n**Exit codes:** `0` = nothing to resume \u002F `--dry-run` \u002F resumed (one-line reason printed); `1` = hard error (bad args, no `gh`).\n\n## Auto-resume contract (enforced by the helper)\n\n- **No second lock \u002F idempotency.** Resume relaunches the *run*; the relaunched monitor reads the existing GitHub CAS lock-comment through `autospec claim state read` (lowest-comment-id wins, loser self-cleans). Resume itself never writes a run-state comment and never adds any new lock. Two concurrent resumes (supervisor + human, or two hosts) converge to exactly one claim per issue at the existing CAS boundary.\n- **Pre-conditions (ALL required, else exit 0, no relaunch):** (a) ≥1 crashed `in-progress-by-bot` issue or exact stale-startup candidate from open `auto-implement`; (b) no `~\u002F.autospec\u002Fstop.flag`; (c) no issue labeled `paused-by-user`; (d) not all issues closed.\n- **Stranded startup recovery.** Scan both relevant labels, but accept `auto-implement` only when Rust run-state is the exact stale `claimed` \u002F `heartbeat-pending:none` sentinel for the requested repository and issue. Delegate every ownership mutation to `autospec claim state recover-stale-startup`; relaunch only when Rust returns an exact matching `recovered: true` result.\n- **Crash-vs-live.** Treat an issue as crashed (eligible) only when its age, computed from run-state **server** `updated_at` (never a local clock — mirrors `autospec-watchdog.sh:386-405`), satisfies `step=claimed && age>=300` OR `age>=10800`. Otherwise assume a live\u002Fslow worker elsewhere and do **not** steal.\n- **Cross-host.** `--resume-partial` re-attaches `\u002Ftmp\u002Fwt-\u003Cbranch>` only when `heartbeat.host == $(hostname)`; cross-host or missing `host` MUST clean-restart off `origin\u002Fmain` (the crashed worktree is on a dead machine's local `\u002Ftmp`).\n- **Durable relaunch command.** The command comes from the registry `~\u002F.autospec\u002Factive-runs\u002F\u003Crepo-slug>.json` written by `\u002Fautospec-run` at monitor launch — never an attacker-supplied path. After a reboot (env cleared) the registry alone yields a runnable command.\n- **Attempt cap.** Capped at `AUTOSPEC_RESUME_MAX_ATTEMPTS` (default 3) consecutive attempts without forward progress. At the cap, halt, print the cap-reached reason, and surface. The counter resets on forward progress (any issue `merged`).\n\n## Required capabilities & harness adapter\n\nThis workflow assumes a small set of capabilities. Map each one to your harness's actual tool. If a capability is missing, use the listed fallback.\n\n| Capability                  | Claude Code                          | OpenCode                                 | Codex CLI                                | Fallback if missing                                |\n|-----------------------------|--------------------------------------|------------------------------------------|------------------------------------------|----------------------------------------------------|\n| Run shell command            | `Bash`                               | `bash` tool                              | `shell` \u002F `apply_patch`                  | Ask user to run manually                           |\n| Ask the user a question      | `AskUserQuestion`                    | inline prompt                            | inline prompt                            | Ask in the response and wait for the next turn     |\n| Subagent model tier          | Tier B: `sonnet` + medium thinking   | Tier B: smaller-tier `task` + medium reasoning | Tier B: current spark\u002Fcost-optimized Codex + `reasoning_effort=medium` | Fall back UP on unavailability |\n\u003C!-- autospec-block:harness-adapter-core -->\n\n**Model tier:** Tier B (implementation work) — this skill is a thin dispatch wrapper.\n\n## Procedure\n\n1. Run startup self-update block above.\n2. Parse the user's invocation arguments.\n3. Execute: `bash \"${AUTOSPEC_SCRIPTS_DIR:-$HOME\u002F.autospec\u002Fscripts}\u002Fresume-scan.sh\" \"$@\"`\n4. Print the helper's one-line decision to the user and exit.\n\nIf `${AUTOSPEC_SCRIPTS_DIR:-$HOME\u002F.autospec\u002Fscripts}\u002Fresume-scan.sh` is not found, print:\n```\nautospec-resume: helper not found at ${AUTOSPEC_SCRIPTS_DIR:-$HOME\u002F.autospec\u002Fscripts}\u002Fresume-scan.sh.\nReinstall autospec-resume from the autospec repo, then retry.\n```\nand exit non-zero.\n\n## Hard rules\n\n- Never write a run-state comment from this skill and never add a new lock. The relaunched monitor claims through the existing GitHub CAS lock only.\n- Never invoke stale-startup recovery or the relaunch command under `--dry-run`.\n- Never re-attach a cross-host or missing-host worktree under `--resume-partial`; clean-restart off `origin\u002Fmain`.\n- Never exceed `AUTOSPEC_RESUME_MAX_ATTEMPTS` consecutive auto-resume attempts; halt and surface at the cap.\n- This skill is a thin wrapper. All behaviour is in the helper script.\n",{"name":5,"description":7},"main","9e7f04357ff46ab731d4f56a4ac5ca5449c13bb0","skills\u002Fautospec-resume",1,"https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec","https:\u002F\u002Fgithub.com\u002Fberlinguyinca","Love to lead, code, cook and contribute to open source and believe that you can learn anything you set your mind too.\r\n","2026-11-11 07:09:35",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add berlinguyinca\u002Fautospec --skill autospec-resume",{"tool":63,"command":64},"bunx","bunx skills add berlinguyinca\u002Fautospec --skill autospec-resume",{"tool":66,"command":67},"pnpm","pnpm dlx skills add berlinguyinca\u002Fautospec --skill autospec-resume","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec-resume\u002FSKILL.md",true,[71,77,83,87,91,95,99,103],{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},"codex\u002Fprompt.md","REFERENCE","参考文档",8225,"https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec-resume\u002Fcodex\u002Fprompt.md",{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":81,"sourceHtmlUrl":82},"install.sh","SCRIPT","脚本",10089,"https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec-resume\u002Finstall.sh",{"path":84,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":85,"sourceHtmlUrl":86},"opencode\u002Fagent.md",8691,"https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec-resume\u002Fopencode\u002Fagent.md",{"path":88,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":89,"sourceHtmlUrl":90},"README.md",3648,"https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec-resume\u002FREADME.md",{"path":92,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":93,"sourceHtmlUrl":94},"scripts\u002Fresume-attempts.sh",5966,"https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec-resume\u002Fscripts\u002Fresume-attempts.sh",{"path":96,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":97,"sourceHtmlUrl":98},"scripts\u002Fresume-scan.sh",14855,"https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec-resume\u002Fscripts\u002Fresume-scan.sh",{"path":100,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":101,"sourceHtmlUrl":102},"uninstall.sh",3921,"https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec-resume\u002Funinstall.sh",{"path":104,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":105,"sourceHtmlUrl":106},"validate.sh",6603,"https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec-resume\u002Fvalidate.sh",[108,121,130,139,163,187],{"skillNo":109,"name":110,"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":111,"categories":112,"keywords":118,"publishedAt":44},"01M71RJHYMKPTC9AAPXWQ6F4RT","trio-pass-skill","https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Flockstep-trio-pass\u002FSKILL.md",[113],{"categoryNo":114,"categoryName":115,"taxonomyType":116,"taxonomyTypeDesc":117},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[119,120],"trio","trio pass skill",{"skillNo":122,"name":123,"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":124,"categories":125,"keywords":127,"publishedAt":44},"01M71RJFBQ1KAF9XM3T3Y4VMSK","duo-pass-skill","https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Flockstep-duo-pass\u002FSKILL.md",[126],{"categoryNo":114,"categoryName":115,"taxonomyType":116,"taxonomyTypeDesc":117},[128,129],"duo pass skill","duo",{"skillNo":131,"name":132,"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":133,"categories":134,"keywords":136,"publishedAt":44},"01M71RJDT1TB3P9TRWR6A534FB","duo-divergence-skill","https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Flockstep-duo-divergence\u002FSKILL.md",[135],{"categoryNo":114,"categoryName":115,"taxonomyType":116,"taxonomyTypeDesc":117},[137,129,138],"duo divergence skill","divergence",{"skillNo":140,"name":25,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":147,"publishedAt":44},"01M71RJAC4NNEQSYBDSY3NZS73","Use when the user wants to ship a feature end-to-end across multiple commits — bootstraps repo if missing, brainstorms a design spec, decomposes into linked GitHub issues, or splits an existing spec into issues, then runs an autonomous implementation loop with auto-merge.","https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec\u002FSKILL.md",[144],{"categoryNo":145,"categoryName":146,"taxonomyType":116,"taxonomyTypeDesc":117},"01JBSEEDCAT000000000000015","视觉设计",[25,148,149,150,151,152,38,153,29,154,155,156,157,158,159,160,161,41,162,39],"ship a feature","end","issues","design","autonomous","loop","across","design spec","merge","ship","implementation loop","github issues","feature","commits","missing",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":169,"publishedAt":44},"01M71RJ4F9HT8PT26CKNM9XE1M","autospec-upgrade","Use when the user wants to upgrade an Angular, Next.js, or React project to the latest official versions safely — by locking observable behavior before touching versions, upgrading one major at a time with official codemods, and gating completion on mutation score rather than coverage theater.","https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec-upgrade\u002FSKILL.md",[],[170,25,171,172,173,174,175,176,177,29,178,179,180,181,39,182,183,184,185,186],"autospec upgrade","upgrade","mutation","coverage","official","project","time","gating","angular","react","next","at","Next.js","one","with","behavior","latest",{"skillNo":188,"name":189,"nameZh":6,"description":190,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":191,"categories":192,"keywords":196,"publishedAt":44},"01M71RJ28FJ4PM6DXHB7T5CF8H","autospec-ui-audit","Use when a React Router application needs a deterministic whole-site route inventory before UI, UX, navigation, or evidence auditing begins.","https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec-ui-audit\u002FSKILL.md",[193],{"categoryNo":194,"categoryName":195,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000032","设计师",[197,25,198,199,200,39,201,202,203,204,205,206,207,208,209,179,210,29,211],"ui audit","audit","autospec ui audit","ui","inventory","evidence","deterministic","route","ux","site","react router","navigation","application","needs","router"]