[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KKWSGES09WDJRZSF3QJ5ER":3,"skill-same:01M6KKWSGES09WDJRZSF3QJ5ER":76},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":6,"ownerDescription":55,"updatedAt":56,"install":57,"resources":69},"01M6KKWSGES09WDJRZSF3QJ5ER","handoff-pickup",null,"Pick up, choose, or list handoff artifacts, present a handoff summary, and wait for user direction. Use when the user says pick up handoff, resume handoff, continue from handoff, choose a handoff, or list handoffs.","nseng-ai\u002Fns","nseng-ai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F273792438?v=4","01M6KKN105A07WPV2TZKZXZGQF","nseng.ai","01M6KKN14MDSR9VF9739AWXG8M",2,"MIT","https:\u002F\u002Fgithub.com\u002Fnseng-ai\u002Fns\u002Fblob\u002Fmaster\u002Fskills\u002Fincubating\u002Fhandoff\u002Fhandoff-pickup\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"handoff pickup","pickup","handoff","resume handoff","brmem","for","true","direction","resume","up","use","branch","pick","choose","wait for","continue","Bash","artifacts","git","git branch","2026-11-10 10:12:30",false,"---\nname: handoff-pickup\ndisable-model-invocation: true\ndescription: \"Pick up, choose, or list handoff artifacts, present a handoff summary, and wait for user direction. Use when the user says pick up handoff, resume handoff, continue from handoff, choose a handoff, or list handoffs.\"\nallowed-tools:\n  - \"Bash(git branch *)\"\n  - \"Bash(ns handoff *)\"\n  - \"Bash(brmem *)\"\n---\n\n# handoff-pickup\n\nPick up, choose, or list Markdown handoff artifacts, present the selected handoff's summary, and wait for user direction before continuing work. This is the pickup\u002Flist\u002Freview step in the `handoff` skill family; load the `handoff` umbrella for shared terminology, lifecycle, storage contract, diagnostics, cleanup, and admin flows. Treat resume-from wording as pickup intent, not a separate lifecycle action.\n\n## Storage contract\n\n- Namespace: `handoff`\n- Entry key shape: flat `\u003Csemantic-slug>.md`; do not accept `\u002F`-containing selectors in the normal handoff UX\n\nThe semantic slug is the chooser metadata. Do not expect a separate index, summary entry, or machine-readable manifest.\n\n## Choose the branch scope\n\nFor current-branch pickup or list:\n\n1. If the user names a branch, use it explicitly with `--branch \u003Cbranch>`.\n2. Otherwise use the current branch:\n\n```bash\ngit branch --show-current\n```\n\nStop if the repo is in detached HEAD and the user did not provide a branch. If the user asks to discover handoffs across branches, use all-branch listing instead.\n\n## List handoffs\n\nCurrent branch:\n\n```bash\nns handoff list --format json\n```\n\nExplicit branch:\n\n```bash\nns handoff list --branch \u003Cbranch> --format json\n```\n\nAll active local branches:\n\n```bash\nns handoff list --all --format json\n```\n\nAll branch states, including deleted local branches:\n\n```bash\nns handoff list --all --include-deleted --format json\n```\n\nUse `--include-deleted` for recovery, cleanup, or when the user explicitly asks for deleted or stale branch handoffs.\n\n- The JSON payload's `data.handoffs` list contains handoff records with `branch`, `branchState`, `slug`, `key`, `entryLocator`, and `updatedAt`; `data.includeDeleted` records whether deleted local branches were included.\n- Show normal results as handoff choices grouped by branch when listing across branches, including branch state.\n- Call out `deleted` branches when relevant because those handoffs may be cleanup candidates.\n- For each choice, show the slug, recency or a short continuation focus\u002Fpreview when available, and a copyable pickup command such as `\u002Fns:handoff:pickup \u003Cslug>` or `\u002Fns:handoff:pickup --branch \u003Cbranch> \u003Cslug>` when speaking to a Pi user.\n- Avoid exposing raw storage keys unless the user needs technical recovery detail.\n\nIf no handoffs exist, report that none were found, naming the scope searched, in handoff vocabulary.\n\nFor delete or cleanup, load the `handoff` umbrella.\n\n## Select the handoff\n\nResolve the user's selector (exact key, slug, or free-text search words) deterministically through the command face instead of matching by hand:\n\n```bash\nns handoff exec match [--branch \u003Cbranch>|--all] [--include-deleted] [selector words...] --format json\n```\n\nThe command applies the handoff selection ladder in order: exact key, slug normalized to `\u003Cslug>.md`, the only handoff in scope when the selector is empty, then term matching (selector words matched against the slug's words split on `-`\u002F`_`\u002F`.`, ignoring the `.md` suffix; only slugs containing all terms match). Interpret `data.resolution`:\n\n- `unique`: pick up `data.selected.slug` on `data.selected.branch`.\n- `ambiguous`: ask the user to choose from `data.candidates`. Print branch and candidate slugs; do not require the user to know storage keys.\n- `none`: report that nothing matched the selector, naming the scope searched. `data.candidates` is empty for this resolution, so run `ns handoff list` for the same scope and offer those handoffs as choices. Note that a non-empty selector never auto-selects: even when exactly one handoff exists in scope, selector words that do not match it resolve to `none` rather than picking it up.\n\n## Read and present summary\n\nRead the selected artifact through the portable command face:\n\n```bash\nns handoff pickup \u003Csemantic-slug> --branch \u003Cbranch> --format json\n```\n\nUse the JSON envelope's `data.content` as active context for summarization, with `data.branch`, `data.slug`, `data.key`, `data.entryLocator`, and `data.summary` as technical evidence. Present a concise handoff summary, then stop and wait for the user's explicit instruction before running commands, editing files, or continuing implementation. Use raw `brmem get \u003Csemantic-slug>.md --namespace handoff --branch \u003Cbranch>` only for storage diagnostics\u002Frecovery.\n\nReport in handoff vocabulary first:\n\n- Branch\n- Handoff slug picked up\n- Continuation focus or current state, if the artifact identifies one\n- Proposed immediate next step(s) from the artifact, phrased as proposed work rather than work you will now take\n- Risks, stale assumptions, missing context, or verification needed before continuing\n- Source session ID, source session log, and related investigation file paths recorded in the artifact, without reading those sources automatically\n\nInclude a compact technical locator when useful:\n\n- Namespace: `handoff`\n- Entry: `\u003Csemantic-slug>.md`\n\nEnd with a short handoff-control question such as: `How would you like me to proceed?`\n\n## If the artifact is stale or incomplete\n\nIf the handoff references missing files, obsolete commands, or completed work, call that out in the summary when evident from the artifact or already-known context. Do not automatically inspect, verify, or mutate the repository after pickup unless the user asks. If verification is needed, list it as a recommended next step and wait.\n\nFor copy, move, delete, garbage collection, or other administrative repair flows, load the `handoff` umbrella's diagnostics\u002Fadmin reference instead of improvising broad Branch Memory operations.\n","# handoff-pickup\n\nPick up, choose, or list Markdown handoff artifacts, present the selected handoff's summary, and wait for user direction before continuing work. This is the pickup\u002Flist\u002Freview step in the `handoff` skill family; load the `handoff` umbrella for shared terminology, lifecycle, storage contract, diagnostics, cleanup, and admin flows. Treat resume-from wording as pickup intent, not a separate lifecycle action.\n\n## Storage contract\n\n- Namespace: `handoff`\n- Entry key shape: flat `\u003Csemantic-slug>.md`; do not accept `\u002F`-containing selectors in the normal handoff UX\n\nThe semantic slug is the chooser metadata. Do not expect a separate index, summary entry, or machine-readable manifest.\n\n## Choose the branch scope\n\nFor current-branch pickup or list:\n\n1. If the user names a branch, use it explicitly with `--branch \u003Cbranch>`.\n2. Otherwise use the current branch:\n\n```bash\ngit branch --show-current\n```\n\nStop if the repo is in detached HEAD and the user did not provide a branch. If the user asks to discover handoffs across branches, use all-branch listing instead.\n\n## List handoffs\n\nCurrent branch:\n\n```bash\nns handoff list --format json\n```\n\nExplicit branch:\n\n```bash\nns handoff list --branch \u003Cbranch> --format json\n```\n\nAll active local branches:\n\n```bash\nns handoff list --all --format json\n```\n\nAll branch states, including deleted local branches:\n\n```bash\nns handoff list --all --include-deleted --format json\n```\n\nUse `--include-deleted` for recovery, cleanup, or when the user explicitly asks for deleted or stale branch handoffs.\n\n- The JSON payload's `data.handoffs` list contains handoff records with `branch`, `branchState`, `slug`, `key`, `entryLocator`, and `updatedAt`; `data.includeDeleted` records whether deleted local branches were included.\n- Show normal results as handoff choices grouped by branch when listing across branches, including branch state.\n- Call out `deleted` branches when relevant because those handoffs may be cleanup candidates.\n- For each choice, show the slug, recency or a short continuation focus\u002Fpreview when available, and a copyable pickup command such as `\u002Fns:handoff:pickup \u003Cslug>` or `\u002Fns:handoff:pickup --branch \u003Cbranch> \u003Cslug>` when speaking to a Pi user.\n- Avoid exposing raw storage keys unless the user needs technical recovery detail.\n\nIf no handoffs exist, report that none were found, naming the scope searched, in handoff vocabulary.\n\nFor delete or cleanup, load the `handoff` umbrella.\n\n## Select the handoff\n\nResolve the user's selector (exact key, slug, or free-text search words) deterministically through the command face instead of matching by hand:\n\n```bash\nns handoff exec match [--branch \u003Cbranch>|--all] [--include-deleted] [selector words...] --format json\n```\n\nThe command applies the handoff selection ladder in order: exact key, slug normalized to `\u003Cslug>.md`, the only handoff in scope when the selector is empty, then term matching (selector words matched against the slug's words split on `-`\u002F`_`\u002F`.`, ignoring the `.md` suffix; only slugs containing all terms match). Interpret `data.resolution`:\n\n- `unique`: pick up `data.selected.slug` on `data.selected.branch`.\n- `ambiguous`: ask the user to choose from `data.candidates`. Print branch and candidate slugs; do not require the user to know storage keys.\n- `none`: report that nothing matched the selector, naming the scope searched. `data.candidates` is empty for this resolution, so run `ns handoff list` for the same scope and offer those handoffs as choices. Note that a non-empty selector never auto-selects: even when exactly one handoff exists in scope, selector words that do not match it resolve to `none` rather than picking it up.\n\n## Read and present summary\n\nRead the selected artifact through the portable command face:\n\n```bash\nns handoff pickup \u003Csemantic-slug> --branch \u003Cbranch> --format json\n```\n\nUse the JSON envelope's `data.content` as active context for summarization, with `data.branch`, `data.slug`, `data.key`, `data.entryLocator`, and `data.summary` as technical evidence. Present a concise handoff summary, then stop and wait for the user's explicit instruction before running commands, editing files, or continuing implementation. Use raw `brmem get \u003Csemantic-slug>.md --namespace handoff --branch \u003Cbranch>` only for storage diagnostics\u002Frecovery.\n\nReport in handoff vocabulary first:\n\n- Branch\n- Handoff slug picked up\n- Continuation focus or current state, if the artifact identifies one\n- Proposed immediate next step(s) from the artifact, phrased as proposed work rather than work you will now take\n- Risks, stale assumptions, missing context, or verification needed before continuing\n- Source session ID, source session log, and related investigation file paths recorded in the artifact, without reading those sources automatically\n\nInclude a compact technical locator when useful:\n\n- Namespace: `handoff`\n- Entry: `\u003Csemantic-slug>.md`\n\nEnd with a short handoff-control question such as: `How would you like me to proceed?`\n\n## If the artifact is stale or incomplete\n\nIf the handoff references missing files, obsolete commands, or completed work, call that out in the summary when evident from the artifact or already-known context. Do not automatically inspect, verify, or mutate the repository after pickup unless the user asks. If verification is needed, list it as a recommended next step and wait.\n\nFor copy, move, delete, garbage collection, or other administrative repair flows, load the `handoff` umbrella's diagnostics\u002Fadmin reference instead of improvising broad Branch Memory operations.\n",{"name":5,"description":7,"allowed-tools":44,"disable-model-invocation":48},[45,46,47],"Bash(git branch *)","Bash(ns handoff *)","Bash(brmem *)",true,"master","44a56f0d543f274b42239091b35fe4d23855f6b3","skills\u002Fincubating\u002Fhandoff\u002Fhandoff-pickup",0,"https:\u002F\u002Fgithub.com\u002Fnseng-ai\u002Fns","https:\u002F\u002Fgithub.com\u002Fnseng-ai","Keeping the clankers in check: Nonslop Engineering for AI","2026-10-02 12:48:53",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":48},[59,62,65],{"tool":60,"command":61},"npx","npx skills add nseng-ai\u002Fns --skill handoff-pickup",{"tool":63,"command":64},"bunx","bunx skills add nseng-ai\u002Fns --skill handoff-pickup",{"tool":66,"command":67},"pnpm","pnpm dlx skills add nseng-ai\u002Fns --skill handoff-pickup","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fnseng-ai\u002Fns\u002Fblob\u002Fmaster\u002Fskills\u002Fincubating\u002Fhandoff\u002Fhandoff-pickup\u002FSKILL.md",[70],{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"agents\u002Fopenai.yaml","REFERENCE","参考文档",43,"https:\u002F\u002Fgithub.com\u002Fnseng-ai\u002Fns\u002Fblob\u002Fmaster\u002Fskills\u002Fincubating\u002Fhandoff\u002Fhandoff-pickup\u002Fagents\u002Fopenai.yaml",[77,99,128,151,174,184],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":39},"01M6KM3VZ7JC4S6R4KATJ368EH","pr-make-accountable","Interview a PR author to establish shared understanding of intent and design decisions, then co-author the What \u002F Why \u002F Changes PR body with opt-in Requested reviewer focus.","https:\u002F\u002Fgithub.com\u002Fnseng-ai\u002Fns\u002Fblob\u002Fmaster\u002Fskills\u002Fpublic\u002Fprs\u002Fpr-make-accountable\u002FSKILL.md",[],[84,85,86,87,88,89,90,91,92,93,94,95,96,25,97,98],"pr","make","pr make accountable","design","why","reviewer","decisions","interview","intent","focus","shared","co","with","changes","pr body",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":110,"publishedAt":39},"01M6KM3NZCZ86VJ91RSVTRGTJW","typescript-style","Opinionated style guide for strict, portable TypeScript. Use when writing, designing, or reviewing TypeScript: type design, boundary validation, error handling, module architecture, and review discipline.","https:\u002F\u002Fgithub.com\u002Fnseng-ai\u002Fns\u002Fblob\u002Fmaster\u002Fskills\u002Finternal\u002Ftypescript\u002Ftypescript-style\u002FSKILL.md",[105],{"categoryNo":106,"categoryName":107,"taxonomyType":108,"taxonomyTypeDesc":109},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",[111,112,113,87,114,115,116,117,118,119,120,121,29,122,123,124,125,126,127,24],"typescript","style","typescript style","writing","review","architecture","core","error handling","system","Rules","README","error-handling","study","module","error","case-study","style guide",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":137,"publishedAt":39},"01M6KM3HNY4WY42KMYRPS6KEJZ","typescript-fake-driven-testing","TypeScript fake-driven testing architecture. Use when writing or reviewing TS code with external dependencies, gateway interfaces, real adapters, in-memory fakes, or CLI scenario tests.","https:\u002F\u002Fgithub.com\u002Fnseng-ai\u002Fns\u002Fblob\u002Fmaster\u002Fskills\u002Finternal\u002Ftypescript\u002Ftypescript-fake-driven-testing\u002FSKILL.md",[134],{"categoryNo":135,"categoryName":136,"taxonomyType":108,"taxonomyTypeDesc":109},"01JBSEEDCAT000000000000008","测试与质量",[138,111,139,140,141,114,142,143,116,144,145,29,146,147,148,149,96,150],"testing","driven","fake driven testing","typescript fake driven testing","cli","memory","code","gateway","dependencies","tests","scenario","Adapters","in-memory",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":157,"publishedAt":39},"01M6KM3AXC2539PENYVZJYKCP9","ns-typescript","TypeScript overlay for ns-style projects. Use when editing or reviewing TS in this repo: tsconfig baseline, pnpm\u002FVitest\u002Foxlint\u002Foxfmt\u002Fnative tsc commands, relative .ts imports, workspace subpath exports, and the exactOptionalPropertyTypes spread idiom. Repo-specific enforcement (test lanes, time seams, style guard) lives in the host repo's AGENTS.md.","https:\u002F\u002Fgithub.com\u002Fnseng-ai\u002Fns\u002Fblob\u002Fmaster\u002Fskills\u002Finternal\u002Ftypescript\u002Fns-typescript\u002FSKILL.md",[],[111,158,159,160,161,162,163,164,29,165,166,167,168,112,169,170,171,24,172,173],"ns typescript","test","guard","vitest","projects","editing","repo","enforcement","references","time","host","oxlint","import","native","alternatives","imports",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":180,"publishedAt":39},"01M6KM36Y5KZ5V48M58MT42AHM","ns-typescript-style-tripwire","Invoke the ns TypeScript style Tripwire against a supplied diff or current branch.","https:\u002F\u002Fgithub.com\u002Fnseng-ai\u002Fns\u002Fblob\u002Fmaster\u002Fskills\u002Finternal\u002Ftypescript\u002Fns-typescript-style-tripwire\u002FSKILL.md",[],[111,181,112,182,30,183,25],"tripwire","ns typescript style tripwire","diff",{"skillNo":185,"name":186,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":188,"categories":189,"keywords":193,"publishedAt":39},"01M6KM313HANS0AV181X37ZM45","skill-management","Manage skills with `npx skills`: add, edit, remove, rename, update, or list skills (local or GitHub), and the nested `skills\u002F\u003Cdisposition>\u002F...\u002F\u003Cname>\u002F` \u002F flat `.agents\u002Fskills\u002F` layout conventions.","https:\u002F\u002Fgithub.com\u002Fnseng-ai\u002Fns\u002Fblob\u002Fmaster\u002Fskills\u002Finternal\u002Fskill-system\u002Fskill-management\u002FSKILL.md",[190],{"categoryNo":191,"categoryName":192,"taxonomyType":108,"taxonomyTypeDesc":109},"01JBSEEDCAT000000000000023","Skill与智能体开发",[194,195,196,35,197,183,198,199,60,200,201,96,202,203,204,205,206,207,25,208],"management","skill management","github","remove","nested","manage","local","cat","ln","ls","mkdir","mv","readlink","rg","lock"]