[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6H3VTJ3T3CVA420SHPW0AVF":3,"skill-same:01M6H3VTJ3T3CVA420SHPW0AVF":53},{"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":27,"linkOnly":28,"markdownContent":29,"markdownBody":30,"frontMatter":31,"refName":33,"commitSha":34,"skillDirectory":35,"forksCount":36,"repositoryHtmlUrl":37,"repositoryHomepageUrl":37,"ownerHtmlUrl":38,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":39,"install":40,"resources":52},"01M6H3VTJ3T3CVA420SHPW0AVF","handoff",null,"Write a handoff document summarising the current conversation so a fresh agent can continue the work.","sliamh11\u002FDeus","sliamh11","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F68326628?v=4","01M6H3PPFXQ6C98QV1RJA5W72S","Liam Steiner","01M6H3PPM81GJC6KYCNTY9A3AT",51,"MIT","https:\u002F\u002Fgithub.com\u002Fsliamh11\u002FDeus\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fhandoff\u002Fskill.md",[],[5,19,20,21,22,23,24,25,26],"continue","work","write","document","conversation","fresh","true","can","2026-11-10 10:12:30",false,"---\nname: handoff\ndescription: Write a handoff document summarising the current conversation so a fresh agent can continue the work.\nuser_invocable: true\n---\n\n# \u002Fhandoff — Write Handoff Document\n\nWrite a forward-facing handoff document so the next agent can start with context instead of archaeology.\n\nThis skill runs **host-side** (like `\u002Fcompress` and `\u002Fresume`), so it resolves the vault the same way they do.\n\n## Steps\n\n1. **Resolve vault path** — read `vault_path` from `~\u002F.config\u002Fdeus\u002Fconfig.json`; if the env var `DEUS_VAULT_PATH` is set, it overrides. `$VAULT` means this resolved path. Fail loudly if neither is set — never write to a guessed path:\n   ```bash\n   VAULT=\"${DEUS_VAULT_PATH:-$(python3 -c \"import json,os;print(os.path.expanduser(json.load(open(os.path.expanduser('~\u002F.config\u002Fdeus\u002Fconfig.json'))).get('vault_path','')))\" 2>\u002Fdev\u002Fnull)}\"\n   VAULT=\"${VAULT\u002F#\\~\u002F$HOME}\"  # expand a leading ~ (e.g. from DEUS_VAULT_PATH); expanduser already handled the config value\n   [ -z \"$VAULT\" ] && { echo \"handoff: cannot resolve vault path — set DEUS_VAULT_PATH or config.json vault_path\"; exit 1; }\n   ```\n\n2. **Derive topic from user args** — the text after `\u002Fhandoff` becomes the topic slug. If no args, infer from the main conversation theme.\n   ```bash\n   # Example: \u002Fhandoff fix the auth bug → TOPIC=\"fix-the-auth-bug\"\n   # The sed allowlist guarantees TOPIC is [a-z0-9-] only (no shell metacharacters);\n   # the fallback covers all-symbol args that would otherwise collapse to empty.\n   TOPIC=$(echo \"${args:-handoff}\" | tr '[:upper:]' '[:lower:]' | sed 's\u002F[^a-z0-9]\u002F-\u002Fg' | sed 's\u002F-\\+\u002F-\u002Fg' | sed 's\u002F^-\\|-$\u002F\u002Fg')\n   TOPIC=\"${TOPIC:-handoff}\"\n   ```\n\n3. **Set output path and create directory:**\n   ```bash\n   HANDOFF_FILE=\"$VAULT\u002FHandoffs\u002F$(date +%Y-%m-%d-%H-%M)-${TOPIC}.md\"\n   mkdir -p \"$(dirname \"$HANDOFF_FILE\")\"\n   ```\n\n4. **Gather memory citations** for the topic — run semantic search if `memory_tree.py` is available, otherwise grep the vault:\n   ```bash\n   # Preferred\n   python3 ~\u002Fdeus\u002Fscripts\u002Fmemory_tree.py query \"$TOPIC\" 2>\u002Fdev\u002Fnull\n   # Fallback\n   grep -ril \"$TOPIC\" \"$VAULT\" 2>\u002Fdev\u002Fnull | head -5\n   ```\n\n5. **Reflect on the conversation** — identify what matters for the next agent:\n   - What was accomplished this session\n   - What the next action is and why\n   - Which skills to invoke first\n   - Open Linear issues relevant to the topic\n   - Files or paths the next agent will need\n   - References (session logs, PRs, commits, ADRs) — link by path\u002FURL, do not re-summarize\n\n6. **Write the handoff document** with these sections in order:\n\n   ```markdown\n   ---\n   type: handoff\n   date: YYYY-MM-DD HH:MM\n   topic: \u003Ctopic>\n   tldr: |\n     \u003CWhat was done this session, 1 sentence.> Next: \u003Cfirst action for incoming agent>.\n   ---\n\n   ## Already Done (don't redo)\n\n   What shipped this session, with the key symbol\u002Ffunction\u002Ffile names so the next\n   agent doesn't re-derive it. Include the merged PR\u002Fcommit anchor (so they can\n   `git show` it). Reference logs by path, don't re-state:\n   `$VAULT\u002FSession-Logs\u002FYYYY-MM-DD\u002F\u003Ctopic>.md`\n\n   ## Read Before Any Work\n\n   The load-bearing gotcha(s) that would burn time if missed — environment quirks,\n   things that look done but aren't, wrong assumptions to avoid. This is the\n   highest-value section; omit it only if there genuinely are none.\n\n   ## Forward Brief\n\n   \u003C!-- Shaped by the user's args (e.g. \u002Fhandoff implement dark mode → dark-mode next steps) -->\n\n   What the incoming agent should do first, in **priority order** (prerequisites\n   first). Each item: Linear issue ID + concrete file:line seam + the *why*.\n\n   ## Suggested Skills\n\n   Skills the incoming agent should run at session start, in order:\n\n   1. `\u002Fresume` — load CLAUDE.md and last 3 session logs\n   2. \u003C!-- add topic-specific skills, e.g. \u002Fdebug, \u002Fdeep-research, etc. -->\n\n   ## Memory Citations\n\n   Vault paths surfaced by semantic search for this topic:\n\n   - \u003C!-- $VAULT\u002Fpath\u002Fto\u002Frelevant\u002Fleaf.md -->\n\n   If no results, note: \"No relevant vault nodes found for `\u003Ctopic>`.\"\n\n   ## References\n\n   Existing artifacts — link, don't re-state:\n\n   - Session log: `$VAULT\u002FSession-Logs\u002FYYYY-MM-DD\u002F\u003Ctopic>.md`\n   - PR: \u003C!-- https:\u002F\u002Fgithub.com\u002F... -->\n   - Commit: \u003C!-- abc1234 -->\n   - ADR \u002F Linear: \u003C!-- docs\u002Fdecisions\u002F... | LIA-XXX -->\n\n   ## Quick-start line\n\n   One copy-paste prompt the user can drop into the new session to resume immediately:\n\n   > \"Resume \u003Ctopic> from `\u003Cthis handoff path>`. \u003Cfirst concrete action + any precondition to confirm>.\"\n\n   ---\n   *Handoff written: YYYY-MM-DD HH:MM*\n   ```\n\n7. **Redact secrets** before writing — scan the draft for:\n   - API keys and tokens (patterns: `sk-`, `Bearer `, `ghp_`, `AKIA`, hex strings >32 chars)\n   - Environment variable values that look like credentials\n   - PII (email addresses, phone numbers)\n   Replace all matches with `[REDACTED]`.\n\n8. **Confirm:** Print `Handoff saved to: {HANDOFF_FILE}` on completion.\n\n## Argument Variants\n\n- `\u002Fhandoff` — topic inferred from conversation theme\n- `\u002Fhandoff fix the auth bug` — Forward Brief focused on fixing the auth bug\n- `\u002Fhandoff implement dark mode` — Forward Brief focused on dark mode implementation\n\n## Notes\n\n- Do not re-summarize content already in session logs, PRs, or ADRs — reference by path\u002FURL.\n- Keep `tldr` to 2-3 lines — this is what gets scanned by the incoming agent first.\n- The `Handoffs\u002F` directory is created with `mkdir -p` if absent — no manual setup needed.\n","# \u002Fhandoff — Write Handoff Document\n\nWrite a forward-facing handoff document so the next agent can start with context instead of archaeology.\n\nThis skill runs **host-side** (like `\u002Fcompress` and `\u002Fresume`), so it resolves the vault the same way they do.\n\n## Steps\n\n1. **Resolve vault path** — read `vault_path` from `~\u002F.config\u002Fdeus\u002Fconfig.json`; if the env var `DEUS_VAULT_PATH` is set, it overrides. `$VAULT` means this resolved path. Fail loudly if neither is set — never write to a guessed path:\n   ```bash\n   VAULT=\"${DEUS_VAULT_PATH:-$(python3 -c \"import json,os;print(os.path.expanduser(json.load(open(os.path.expanduser('~\u002F.config\u002Fdeus\u002Fconfig.json'))).get('vault_path','')))\" 2>\u002Fdev\u002Fnull)}\"\n   VAULT=\"${VAULT\u002F#\\~\u002F$HOME}\"  # expand a leading ~ (e.g. from DEUS_VAULT_PATH); expanduser already handled the config value\n   [ -z \"$VAULT\" ] && { echo \"handoff: cannot resolve vault path — set DEUS_VAULT_PATH or config.json vault_path\"; exit 1; }\n   ```\n\n2. **Derive topic from user args** — the text after `\u002Fhandoff` becomes the topic slug. If no args, infer from the main conversation theme.\n   ```bash\n   # Example: \u002Fhandoff fix the auth bug → TOPIC=\"fix-the-auth-bug\"\n   # The sed allowlist guarantees TOPIC is [a-z0-9-] only (no shell metacharacters);\n   # the fallback covers all-symbol args that would otherwise collapse to empty.\n   TOPIC=$(echo \"${args:-handoff}\" | tr '[:upper:]' '[:lower:]' | sed 's\u002F[^a-z0-9]\u002F-\u002Fg' | sed 's\u002F-\\+\u002F-\u002Fg' | sed 's\u002F^-\\|-$\u002F\u002Fg')\n   TOPIC=\"${TOPIC:-handoff}\"\n   ```\n\n3. **Set output path and create directory:**\n   ```bash\n   HANDOFF_FILE=\"$VAULT\u002FHandoffs\u002F$(date +%Y-%m-%d-%H-%M)-${TOPIC}.md\"\n   mkdir -p \"$(dirname \"$HANDOFF_FILE\")\"\n   ```\n\n4. **Gather memory citations** for the topic — run semantic search if `memory_tree.py` is available, otherwise grep the vault:\n   ```bash\n   # Preferred\n   python3 ~\u002Fdeus\u002Fscripts\u002Fmemory_tree.py query \"$TOPIC\" 2>\u002Fdev\u002Fnull\n   # Fallback\n   grep -ril \"$TOPIC\" \"$VAULT\" 2>\u002Fdev\u002Fnull | head -5\n   ```\n\n5. **Reflect on the conversation** — identify what matters for the next agent:\n   - What was accomplished this session\n   - What the next action is and why\n   - Which skills to invoke first\n   - Open Linear issues relevant to the topic\n   - Files or paths the next agent will need\n   - References (session logs, PRs, commits, ADRs) — link by path\u002FURL, do not re-summarize\n\n6. **Write the handoff document** with these sections in order:\n\n   ```markdown\n   ---\n   type: handoff\n   date: YYYY-MM-DD HH:MM\n   topic: \u003Ctopic>\n   tldr: |\n     \u003CWhat was done this session, 1 sentence.> Next: \u003Cfirst action for incoming agent>.\n   ---\n\n   ## Already Done (don't redo)\n\n   What shipped this session, with the key symbol\u002Ffunction\u002Ffile names so the next\n   agent doesn't re-derive it. Include the merged PR\u002Fcommit anchor (so they can\n   `git show` it). Reference logs by path, don't re-state:\n   `$VAULT\u002FSession-Logs\u002FYYYY-MM-DD\u002F\u003Ctopic>.md`\n\n   ## Read Before Any Work\n\n   The load-bearing gotcha(s) that would burn time if missed — environment quirks,\n   things that look done but aren't, wrong assumptions to avoid. This is the\n   highest-value section; omit it only if there genuinely are none.\n\n   ## Forward Brief\n\n   \u003C!-- Shaped by the user's args (e.g. \u002Fhandoff implement dark mode → dark-mode next steps) -->\n\n   What the incoming agent should do first, in **priority order** (prerequisites\n   first). Each item: Linear issue ID + concrete file:line seam + the *why*.\n\n   ## Suggested Skills\n\n   Skills the incoming agent should run at session start, in order:\n\n   1. `\u002Fresume` — load CLAUDE.md and last 3 session logs\n   2. \u003C!-- add topic-specific skills, e.g. \u002Fdebug, \u002Fdeep-research, etc. -->\n\n   ## Memory Citations\n\n   Vault paths surfaced by semantic search for this topic:\n\n   - \u003C!-- $VAULT\u002Fpath\u002Fto\u002Frelevant\u002Fleaf.md -->\n\n   If no results, note: \"No relevant vault nodes found for `\u003Ctopic>`.\"\n\n   ## References\n\n   Existing artifacts — link, don't re-state:\n\n   - Session log: `$VAULT\u002FSession-Logs\u002FYYYY-MM-DD\u002F\u003Ctopic>.md`\n   - PR: \u003C!-- https:\u002F\u002Fgithub.com\u002F... -->\n   - Commit: \u003C!-- abc1234 -->\n   - ADR \u002F Linear: \u003C!-- docs\u002Fdecisions\u002F... | LIA-XXX -->\n\n   ## Quick-start line\n\n   One copy-paste prompt the user can drop into the new session to resume immediately:\n\n   > \"Resume \u003Ctopic> from `\u003Cthis handoff path>`. \u003Cfirst concrete action + any precondition to confirm>.\"\n\n   ---\n   *Handoff written: YYYY-MM-DD HH:MM*\n   ```\n\n7. **Redact secrets** before writing — scan the draft for:\n   - API keys and tokens (patterns: `sk-`, `Bearer `, `ghp_`, `AKIA`, hex strings >32 chars)\n   - Environment variable values that look like credentials\n   - PII (email addresses, phone numbers)\n   Replace all matches with `[REDACTED]`.\n\n8. **Confirm:** Print `Handoff saved to: {HANDOFF_FILE}` on completion.\n\n## Argument Variants\n\n- `\u002Fhandoff` — topic inferred from conversation theme\n- `\u002Fhandoff fix the auth bug` — Forward Brief focused on fixing the auth bug\n- `\u002Fhandoff implement dark mode` — Forward Brief focused on dark mode implementation\n\n## Notes\n\n- Do not re-summarize content already in session logs, PRs, or ADRs — reference by path\u002FURL.\n- Keep `tldr` to 2-3 lines — this is what gets scanned by the incoming agent first.\n- The `Handoffs\u002F` directory is created with `mkdir -p` if absent — no manual setup needed.\n",{"name":5,"description":7,"user_invocable":32},true,"main","2f24c38a2ae42d3161492f0729975b286452f4b4",".claude\u002Fskills\u002Fhandoff",7,"https:\u002F\u002Fgithub.com\u002Fsliamh11\u002FDeus","https:\u002F\u002Fgithub.com\u002Fsliamh11","2026-11-10 03:41:56",{"source":8,"skillName":5,"commands":41,"prompt":51,"zipAvailable":32},[42,45,48],{"tool":43,"command":44},"npx","npx skills add sliamh11\u002FDeus --skill handoff",{"tool":46,"command":47},"bunx","bunx skills add sliamh11\u002FDeus --skill handoff",{"tool":49,"command":50},"pnpm","pnpm dlx skills add sliamh11\u002FDeus --skill handoff","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsliamh11\u002FDeus\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fhandoff\u002Fskill.md",[],[54,80,100,113,123,137],{"skillNo":55,"name":56,"nameZh":6,"description":57,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":60,"publishedAt":27},"01M6H3ZC87AJDM8566RP3CQ6BF","status","Quick read-only health check — session context, workspace mounts, tool availability, and task snapshot. Use when the user asks for system status or runs \u002Fstatus.","https:\u002F\u002Fgithub.com\u002Fsliamh11\u002FDeus\u002Fblob\u002Fmain\u002Fcontainer\u002Fskills\u002Fstatus\u002FSKILL.md",[],[56,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],"health","snapshot","for","read-only","quick","availability","session context","task","health check","only","use","session","user","context","read","check","workspace","tool","system",{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":91,"publishedAt":27},"01M6H3Z8SK38PVH2B0W7NBP6ZP","resume","Load context from permanent memory and recent session logs. Tiered loading — CLAUDE.md full, session logs frontmatter-only by default.","https:\u002F\u002Fgithub.com\u002Fsliamh11\u002FDeus\u002Fblob\u002Fmain\u002Fcontainer\u002Fskills\u002Fresume\u002FSKILL.md",[86],{"categoryNo":87,"categoryName":88,"taxonomyType":89,"taxonomyTypeDesc":90},"01JBSEEDCAT000000000000038","人力资源","PROFESSION","适用职业",[82,92,93,94,95,96,97,70,72,74,98,99],"memory","load","loading","full","session logs","default","logs","frontmatter",{"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":27},"01M6H3Z56ZBPKX77THMWSSHZCW","preserve","Scan the current conversation and silently save anything worth permanent memory to CLAUDE.md. Keeps the file compact — structured key:value, no prose.","https:\u002F\u002Fgithub.com\u002Fsliamh11\u002FDeus\u002Fblob\u002Fmain\u002Fcontainer\u002Fskills\u002Fpreserve\u002FSKILL.md",[],[102,107,108,109,23,110,111,112,92],"structured","compact","scan","prose","save","file",{"skillNo":114,"name":115,"nameZh":6,"description":116,"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":27},"01M6H3Z1AKK58CWWY762YD3X9A","compress","Save the current session to the vault. Writes a compact session log with a TL;DR frontmatter (always) and full details below (when useful).","https:\u002F\u002Fgithub.com\u002Fsliamh11\u002FDeus\u002Fblob\u002Fmain\u002Fcontainer\u002Fskills\u002Fcompress\u002FSKILL.md",[],[115,120,99,95,108,121,72,111,122],"with","log","vault",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"publishedAt":27},"01M6H3YX6STE1ZJC06EKWMY0M6","capabilities","Show what this Deus instance can do — installed skills, available tools, and system info. Read-only. Use when the user asks what the bot can do, what's installed, or runs \u002Fcapabilities.","https:\u002F\u002Fgithub.com\u002Fsliamh11\u002FDeus\u002Fblob\u002Fmain\u002Fcontainer\u002Fskills\u002Fcapabilities\u002FSKILL.md",[],[125,130,131,79,64,26,132,133,134,135,136,70,71,73,75],"Tools","bot","system info","info","what the","do","show",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":148,"publishedAt":27},"01M6H3YSNXYAR7NC1TZPFCANZN","agent-browser","Browse the web for any task — research topics, read articles, interact with web apps, fill forms, take screenshots, extract data, and test web pages. Use whenever a browser would be useful, not just when the user explicitly asks.","https:\u002F\u002Fgithub.com\u002Fsliamh11\u002FDeus\u002Fblob\u002Fmain\u002Fcontainer\u002Fskills\u002Fagent-browser\u002FSKILL.md",[143],{"categoryNo":144,"categoryName":145,"taxonomyType":146,"taxonomyTypeDesc":147},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[149,150,151,63,120,152,153,154,68,155,71,75,156,157,158,159,160,161,162,163],"agent browser","browser","take","apps","pages","forms","test web","just","Bash","browse","data","web","test","research","screenshots"]