[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71TTT8GRXB3RTHP93GS4Y84":3,"skill-same:01M71TTT8GRXB3RTHP93GS4Y84":59},{"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":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":35,"commitSha":36,"skillDirectory":37,"forksCount":38,"repositoryHtmlUrl":39,"repositoryHomepageUrl":40,"ownerHtmlUrl":41,"ownerBlogUrl":42,"ownerDescription":43,"updatedAt":44,"install":45,"resources":58},"01M71TTT8GRXB3RTHP93GS4Y84","handoff",null,"Write or resume a session handoff between AI tools.","Chemaclass\u002Fagnostic-ai","Chemaclass","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F5256287?v=4","01M71TPD2XMBHAF2EVENMQ17YB","Jose M. Valera Reales","01M71TPD3Z8Q56NDPTEPGQ2JC7",27,"MIT","https:\u002F\u002Fgithub.com\u002FChemaclass\u002Fagnostic-ai\u002Fblob\u002Fmain\u002Finternal\u002Fbuiltins\u002Fdata\u002Fhandoff\u002Fskills\u002Fhandoff\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000038","人力资源","PROFESSION","适用职业",[5,24,25,26,27,28,29],"ai tools","Tools","session handoff","write","session","resume","2026-11-10 13:02:02",false,"---\nname: handoff\ndescription: Write or resume a session handoff between AI tools.\n---\n\n# handoff\n\nWrite or resume a portable session handoff when the user requests it. Choose the mode from the request: \"write a handoff\" writes; \"resume\" or \"continue where Codex left off\" reads. An explicit argument can select the mode, but is never required. Do not read a handoff at session start without a request. The lead asks each delegate to \"write a handoff for \u003Cbranch>\" before it returns. A handoff is for the next agent that continues the work; for a summary for people when the work ends, use the `wrap-up` skill if it is installed. To start a second task in its own conversation while this one goes on, use the `side-conversation` skill if it is installed.\n\nResolve the current project root, including when this skill is installed globally. For root lookup, use canonical paths for the current directory, candidate ancestors, and the effective global source root (`AGNOSTIC_AI_HOME` when nonempty, otherwise `~\u002F.agnostic-ai`). Find the nearest ancestor containing `agnostic-ai.yaml` or the legacy `agnostic.config.yaml`, but exclude the effective global source root: its home config never identifies a project. If none exists, use `git rev-parse --show-toplevel` for the current checkout. Do not replace a configured subproject root with its Git worktree root. Use portable Markdown.\n\n## Task store\n\nRun `git worktree list --porcelain` to find the main checkout (the first entry), live branches, and their absolute worktree paths. Preserve the project path relative to its Git checkout: a configured subproject uses the same relative path in the main checkout. The shared store is `\u003Cmain checkout>\u002F\u003Cproject path>\u002F.agnostic-ai\u002Flocal\u002Fhandoffs\u002F`.\n\nUse one `\u003Cbranch-slug>.md` per branch. The branch-slug replaces each character outside `[A-Za-z0-9._-]` with `-`; the real `branch:` header is the key. Read an existing file's header before overwriting it. If a different branch has the same slug, ask which task to keep and wait for the answer. For detached HEAD, use `detached-\u003Cfull HEAD>` as the key and add `detached: true` to the worktree header. A named branch `detached` keeps its real branch key.\n\nResolve existing parent directories before checking the destination. Use `git check-ignore -q -- \u003Cabsolute file>` in the checkout that owns the store, and refuse tracked files or symlinks. If the main checkout is bare, the shared destination is not ignored, or its write fails, fall back to the current project's `.agnostic-ai\u002Flocal\u002Fhandoffs\u002F`. Apply the same ignore and symlink checks to the fallback. If neither store is safe, report the failure and leave the handoff pending. Never change ignore rules or write a public handoff to get past this check.\n\nLegacy `.agnostic-ai\u002Flocal\u002FHANDOFF.md` and `.agnostic-ai\u002Flocal\u002FHANDOFF.auto.md` in the current project still work as fallback handoffs.\n\n## Write\n\n1. Select the current branch, or the branch the user names in \"write a handoff for \u003Cbranch>\". Match that branch to its entry in `git worktree list --porcelain`. For a live branch, gather its HEAD with `git -C \u003Cworktree> rev-parse HEAD` and working changes with `git -C \u003Cworktree> status --short`. For the current branch use `git branch --show-current`, `git rev-parse HEAD`, and `git status --short`. If the named branch has no live worktree, report it as removed and ask which checkout state to record.\n2. Fill the template below from the current session and the selected worktree's Git state. Record the actual tool, UTC date, branch, HEAD, absolute worktree path, status (`active`, `blocked`, or `ready`), and PR (`#N` or `none`). Do not infer a PR from network calls.\n3. State the goal, acceptance criteria, completed work, unfinished work, and next steps. Separate unresolved decisions from settled ones. Include changed files and uncommitted work where they help the arriving tool continue. Under Verify, record checks already run and checks still needed.\n4. Keep a soft cap of 100 lines. Cut Gotchas before cutting Next steps. Never write secrets, tokens, or `.env` values. Never read or write any tool's own memory store.\n5. Create the chosen store with private permissions (0700). Set a private umask (077), create a unique temporary file in that same folder, and write the full note to it. Set the temporary file to mode 0600 before an atomic rename to the final path. A new note overwrites only the same branch's previous handoff; preserve that note if writing or renaming fails. Remove only the temporary file you created. Never truncate the destination in place.\n6. Write the file before proposing learnings. Follow Promote learnings below, then report the handoff path and any fallback used.\n\n```markdown\n# Handoff\ntool: codex | date: 2026-10-05T14:02Z | branch: feat\u002Fx | head: abc1234\nworktree: \u002Fpath\u002Fto\u002Fcheckout | status: active | pr: none\n\n## Goal\n## Acceptance\n## Done\n## In progress\n## Next steps\n## Open decisions\n## Gotchas\n## Verify\n```\n\n## Promote learnings\n\n1. Propose durable learnings from the session. Skip facts already stated in loaded rules or obvious from the code. If none remain, finish the handoff.\n2. Tag each proposal with its scope. These are the default destinations:\n\n   | Tag | Default destination |\n   | --- | --- |\n   | [project] | `.agnostic-ai\u002Frules\u002Flearnings.md` |\n   | [personal] | `.agnostic-ai\u002Flocal\u002Frules\u002Flearnings-local.md` |\n   | [global] | `~\u002F.agnostic-ai\u002Frules\u002Flearnings.md` |\n\n   Resolve project `learnings.md` under the effective `sources.rules` from the project config and any `agnostic-ai.local.yaml` override. Relative paths start at the project root; use absolute paths directly, without expanding `~`. The personal path stays fixed. If `AGNOSTIC_AI_HOME` is nonempty, put global `rules\u002Flearnings.md` beneath that directory. Global `sources` config does not change its fixed `rules\u002F` folder. Show the actual resolved destination with each proposal.\n\n   Global scope is available only when the user explicitly picks it for that item.\n3. Read each resolved destination if it exists and show one append-only diff per file, naming the actual path before requesting confirmation. Preserve existing entries and frontmatter. For a new file, include YAML frontmatter with `name`, `description`, and `alwaysApply: true` in the diff. Use `name: learnings` for project and global files, and `name: learnings-local` for the personal file so it does not replace the project rule. Global rules are unconditional: omit `scope`, `globs`, and `paths`.\n4. Wait for confirmation of each item's content and scope. A handoff request alone does not approve learning writes. Append only approved items; never rewrite existing entries.\n5. After project or personal writes, run `agnostic-ai sync` from the project root. After approved global writes, run `agnostic-ai sync --global`. If the binary is not on PATH, print the relevant command for the user and mark it pending. Report failed syncs with their error and leave them as unfinished work.\n6. After approved writes and sync attempts, gather the selected task's branch, HEAD, and working changes again using the commands above in its recorded worktree. Refresh the handoff header, Done, and Verify with the current git state, learning files changed, and sync results. Record failed or pending syncs separately from completed verification.\n\n## Resume\n\n1. Gather the current branch, HEAD, and `git status --short`. Look for matching manual handoffs in the shared branch store, then the current checkout's branch store, then the old `HANDOFF.md`. Compare `branch:` headers, not filenames. Use the newest matching manual note when several exist. A request naming another branch selects that task rather than treating the selection as a branch mismatch.\n2. If no manual note matches but a shared, checkout, or legacy automatic snapshot matches the current branch, use the newest snapshot and continue at step 3. Otherwise, if no note matches, list the task headers from the shared and checkout stores and any legacy note, newest first. Join their branches and recorded `worktree:` paths with `git worktree list --porcelain`. Show branch, date, status, and PR; mark a missing worktree as removed without deleting its handoff. Ask which task to resume. If no handoff exists, tell the user there is no handoff to resume. Listing stays local and makes no network calls.\n3. Read the chosen manual note. Find matching snapshots in the shared store (`\u003Cbranch-slug>.auto.md`), the checkout store, and the legacy `HANDOFF.auto.md`. If the newest snapshot is newer than the manual note, or no manual note exists, read it as additional recent git evidence only when its branch matches the selected task. Keep the manual Goal and Next steps when both files exist. Never let a snapshot from another task replace them.\n4. Compare the chosen manual header and recorded changes with the selected task's current Git state, even when a snapshot is newer. Also compare the snapshot header when read. Report the goal, next steps, and any drift, including a changed branch or HEAD. The tool and date identify the earlier session; a tool change is expected when handing off.\n5. Ask for confirmation before acting on any unexpected branch, HEAD, or working-tree mismatch. Do not resume until the user confirms. Selecting a matching branch handoff from its own worktree needs no branch mismatch prompt. If a task's worktree is removed, ask where to continue before changing checkouts.\n6. Continue from the manual Next steps after comparison and any required confirmation. If only a git snapshot exists without a task goal or Next steps, ask for the user's intended next step before work can continue. Never read or write any tool's own memory store.\n","# handoff\n\nWrite or resume a portable session handoff when the user requests it. Choose the mode from the request: \"write a handoff\" writes; \"resume\" or \"continue where Codex left off\" reads. An explicit argument can select the mode, but is never required. Do not read a handoff at session start without a request. The lead asks each delegate to \"write a handoff for \u003Cbranch>\" before it returns. A handoff is for the next agent that continues the work; for a summary for people when the work ends, use the `wrap-up` skill if it is installed. To start a second task in its own conversation while this one goes on, use the `side-conversation` skill if it is installed.\n\nResolve the current project root, including when this skill is installed globally. For root lookup, use canonical paths for the current directory, candidate ancestors, and the effective global source root (`AGNOSTIC_AI_HOME` when nonempty, otherwise `~\u002F.agnostic-ai`). Find the nearest ancestor containing `agnostic-ai.yaml` or the legacy `agnostic.config.yaml`, but exclude the effective global source root: its home config never identifies a project. If none exists, use `git rev-parse --show-toplevel` for the current checkout. Do not replace a configured subproject root with its Git worktree root. Use portable Markdown.\n\n## Task store\n\nRun `git worktree list --porcelain` to find the main checkout (the first entry), live branches, and their absolute worktree paths. Preserve the project path relative to its Git checkout: a configured subproject uses the same relative path in the main checkout. The shared store is `\u003Cmain checkout>\u002F\u003Cproject path>\u002F.agnostic-ai\u002Flocal\u002Fhandoffs\u002F`.\n\nUse one `\u003Cbranch-slug>.md` per branch. The branch-slug replaces each character outside `[A-Za-z0-9._-]` with `-`; the real `branch:` header is the key. Read an existing file's header before overwriting it. If a different branch has the same slug, ask which task to keep and wait for the answer. For detached HEAD, use `detached-\u003Cfull HEAD>` as the key and add `detached: true` to the worktree header. A named branch `detached` keeps its real branch key.\n\nResolve existing parent directories before checking the destination. Use `git check-ignore -q -- \u003Cabsolute file>` in the checkout that owns the store, and refuse tracked files or symlinks. If the main checkout is bare, the shared destination is not ignored, or its write fails, fall back to the current project's `.agnostic-ai\u002Flocal\u002Fhandoffs\u002F`. Apply the same ignore and symlink checks to the fallback. If neither store is safe, report the failure and leave the handoff pending. Never change ignore rules or write a public handoff to get past this check.\n\nLegacy `.agnostic-ai\u002Flocal\u002FHANDOFF.md` and `.agnostic-ai\u002Flocal\u002FHANDOFF.auto.md` in the current project still work as fallback handoffs.\n\n## Write\n\n1. Select the current branch, or the branch the user names in \"write a handoff for \u003Cbranch>\". Match that branch to its entry in `git worktree list --porcelain`. For a live branch, gather its HEAD with `git -C \u003Cworktree> rev-parse HEAD` and working changes with `git -C \u003Cworktree> status --short`. For the current branch use `git branch --show-current`, `git rev-parse HEAD`, and `git status --short`. If the named branch has no live worktree, report it as removed and ask which checkout state to record.\n2. Fill the template below from the current session and the selected worktree's Git state. Record the actual tool, UTC date, branch, HEAD, absolute worktree path, status (`active`, `blocked`, or `ready`), and PR (`#N` or `none`). Do not infer a PR from network calls.\n3. State the goal, acceptance criteria, completed work, unfinished work, and next steps. Separate unresolved decisions from settled ones. Include changed files and uncommitted work where they help the arriving tool continue. Under Verify, record checks already run and checks still needed.\n4. Keep a soft cap of 100 lines. Cut Gotchas before cutting Next steps. Never write secrets, tokens, or `.env` values. Never read or write any tool's own memory store.\n5. Create the chosen store with private permissions (0700). Set a private umask (077), create a unique temporary file in that same folder, and write the full note to it. Set the temporary file to mode 0600 before an atomic rename to the final path. A new note overwrites only the same branch's previous handoff; preserve that note if writing or renaming fails. Remove only the temporary file you created. Never truncate the destination in place.\n6. Write the file before proposing learnings. Follow Promote learnings below, then report the handoff path and any fallback used.\n\n```markdown\n# Handoff\ntool: codex | date: 2026-10-05T14:02Z | branch: feat\u002Fx | head: abc1234\nworktree: \u002Fpath\u002Fto\u002Fcheckout | status: active | pr: none\n\n## Goal\n## Acceptance\n## Done\n## In progress\n## Next steps\n## Open decisions\n## Gotchas\n## Verify\n```\n\n## Promote learnings\n\n1. Propose durable learnings from the session. Skip facts already stated in loaded rules or obvious from the code. If none remain, finish the handoff.\n2. Tag each proposal with its scope. These are the default destinations:\n\n   | Tag | Default destination |\n   | --- | --- |\n   | [project] | `.agnostic-ai\u002Frules\u002Flearnings.md` |\n   | [personal] | `.agnostic-ai\u002Flocal\u002Frules\u002Flearnings-local.md` |\n   | [global] | `~\u002F.agnostic-ai\u002Frules\u002Flearnings.md` |\n\n   Resolve project `learnings.md` under the effective `sources.rules` from the project config and any `agnostic-ai.local.yaml` override. Relative paths start at the project root; use absolute paths directly, without expanding `~`. The personal path stays fixed. If `AGNOSTIC_AI_HOME` is nonempty, put global `rules\u002Flearnings.md` beneath that directory. Global `sources` config does not change its fixed `rules\u002F` folder. Show the actual resolved destination with each proposal.\n\n   Global scope is available only when the user explicitly picks it for that item.\n3. Read each resolved destination if it exists and show one append-only diff per file, naming the actual path before requesting confirmation. Preserve existing entries and frontmatter. For a new file, include YAML frontmatter with `name`, `description`, and `alwaysApply: true` in the diff. Use `name: learnings` for project and global files, and `name: learnings-local` for the personal file so it does not replace the project rule. Global rules are unconditional: omit `scope`, `globs`, and `paths`.\n4. Wait for confirmation of each item's content and scope. A handoff request alone does not approve learning writes. Append only approved items; never rewrite existing entries.\n5. After project or personal writes, run `agnostic-ai sync` from the project root. After approved global writes, run `agnostic-ai sync --global`. If the binary is not on PATH, print the relevant command for the user and mark it pending. Report failed syncs with their error and leave them as unfinished work.\n6. After approved writes and sync attempts, gather the selected task's branch, HEAD, and working changes again using the commands above in its recorded worktree. Refresh the handoff header, Done, and Verify with the current git state, learning files changed, and sync results. Record failed or pending syncs separately from completed verification.\n\n## Resume\n\n1. Gather the current branch, HEAD, and `git status --short`. Look for matching manual handoffs in the shared branch store, then the current checkout's branch store, then the old `HANDOFF.md`. Compare `branch:` headers, not filenames. Use the newest matching manual note when several exist. A request naming another branch selects that task rather than treating the selection as a branch mismatch.\n2. If no manual note matches but a shared, checkout, or legacy automatic snapshot matches the current branch, use the newest snapshot and continue at step 3. Otherwise, if no note matches, list the task headers from the shared and checkout stores and any legacy note, newest first. Join their branches and recorded `worktree:` paths with `git worktree list --porcelain`. Show branch, date, status, and PR; mark a missing worktree as removed without deleting its handoff. Ask which task to resume. If no handoff exists, tell the user there is no handoff to resume. Listing stays local and makes no network calls.\n3. Read the chosen manual note. Find matching snapshots in the shared store (`\u003Cbranch-slug>.auto.md`), the checkout store, and the legacy `HANDOFF.auto.md`. If the newest snapshot is newer than the manual note, or no manual note exists, read it as additional recent git evidence only when its branch matches the selected task. Keep the manual Goal and Next steps when both files exist. Never let a snapshot from another task replace them.\n4. Compare the chosen manual header and recorded changes with the selected task's current Git state, even when a snapshot is newer. Also compare the snapshot header when read. Report the goal, next steps, and any drift, including a changed branch or HEAD. The tool and date identify the earlier session; a tool change is expected when handing off.\n5. Ask for confirmation before acting on any unexpected branch, HEAD, or working-tree mismatch. Do not resume until the user confirms. Selecting a matching branch handoff from its own worktree needs no branch mismatch prompt. If a task's worktree is removed, ask where to continue before changing checkouts.\n6. Continue from the manual Next steps after comparison and any required confirmation. If only a git snapshot exists without a task goal or Next steps, ask for the user's intended next step before work can continue. Never read or write any tool's own memory store.\n",{"name":5,"description":7},"main","ab1909bd1fa095d157ef35474a095a22e0deedc2","internal\u002Fbuiltins\u002Fdata\u002Fhandoff\u002Fskills\u002Fhandoff",6,"https:\u002F\u002Fgithub.com\u002FChemaclass\u002Fagnostic-ai","https:\u002F\u002Fagnostic-ai.org","https:\u002F\u002Fgithub.com\u002FChemaclass","https:\u002F\u002Fchemaclass.com","Software is the art of simplifying.","2026-11-13 03:01:01",{"source":8,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add Chemaclass\u002Fagnostic-ai --skill handoff",{"tool":51,"command":52},"bunx","bunx skills add Chemaclass\u002Fagnostic-ai --skill handoff",{"tool":54,"command":55},"pnpm","pnpm dlx skills add Chemaclass\u002Fagnostic-ai --skill handoff","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FChemaclass\u002Fagnostic-ai\u002Fblob\u002Fmain\u002Finternal\u002Fbuiltins\u002Fdata\u002Fhandoff\u002Fskills\u002Fhandoff\u002FSKILL.md",true,[],[60,68,82,100,109,115],{"skillNo":61,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":67},"01M768BJX9TZJ3JNN7G3WMX4MC","side-conversation","Start a side conversation in a new terminal tab, linked to this one. Use when asked to spin a task off, or to follow something up in its own conversation.","https:\u002F\u002Fgithub.com\u002FChemaclass\u002Fagnostic-ai\u002Fblob\u002Fmain\u002Finternal\u002Fbuiltins\u002Fdata\u002Fside-conversation\u002Fskills\u002Fside-conversation\u002FSKILL.md",[],[],"2026-11-12 13:55:43",{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":30},"01M71TXNTSSFJQPQS2YECQKSEF","release","Cut a release and verify it. Use only when asked to release.","https:\u002F\u002Fgithub.com\u002FChemaclass\u002Fagnostic-ai\u002Fblob\u002Fmain\u002Ftests\u002Fintegration\u002Ffixtures\u002Flanding\u002F.agnostic-ai\u002Fskills\u002Frelease\u002FSKILL.md",[],[70,75,76,77,78,79,80,81],"true","cut","verify","only","use","when","it",{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":93,"publishedAt":30},"01M71TXMMC0K8GDJ41WB6KKMD2","sample-skill","A sample skill for golden snapshot tests.","https:\u002F\u002Fgithub.com\u002FChemaclass\u002Fagnostic-ai\u002Fblob\u002Fmain\u002Ftests\u002Fintegration\u002Ffixtures\u002Fgolden\u002Fzed\u002F.agents\u002Fskills\u002Fsample-skill\u002FSKILL.md",[88],{"categoryNo":89,"categoryName":90,"taxonomyType":91,"taxonomyTypeDesc":92},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[94,95,96,97,98,99],"sample skill","sample","golden","tests","snapshot","for",{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":106,"publishedAt":30},"01M71TXJF8SXR0F3G4X7KS39S9","sample-command","A sample command for golden snapshot tests.","https:\u002F\u002Fgithub.com\u002FChemaclass\u002Fagnostic-ai\u002Fblob\u002Fmain\u002Ftests\u002Fintegration\u002Ffixtures\u002Fgolden\u002Fzed\u002F.agents\u002Fskills\u002Fsample-command\u002FSKILL.md",[],[107,108,95,96,97,75,98,99],"sample command","command",{"skillNo":110,"name":84,"nameZh":6,"description":85,"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":114,"publishedAt":30},"01M71TXG6T752XQA54KRFB932B","https:\u002F\u002Fgithub.com\u002FChemaclass\u002Fagnostic-ai\u002Fblob\u002Fmain\u002Ftests\u002Fintegration\u002Ffixtures\u002Fgolden\u002Fwindsurf\u002F.agents\u002Fskills\u002Fsample-skill\u002FSKILL.md",[113],{"categoryNo":89,"categoryName":90,"taxonomyType":91,"taxonomyTypeDesc":92},[95,94,96,97,98,99],{"skillNo":116,"name":102,"nameZh":6,"description":103,"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":119,"publishedAt":30},"01M71TXESX9F95W35E22W7J538","https:\u002F\u002Fgithub.com\u002FChemaclass\u002Fagnostic-ai\u002Fblob\u002Fmain\u002Ftests\u002Fintegration\u002Ffixtures\u002Fgolden\u002Fwindsurf\u002F.agents\u002Fskills\u002Fsample-command\u002FSKILL.md",[],[108,95,107,120,96,97,98,99],"user"]