[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GXQYFC43WZQMK6ESEB1FB1":3,"skill-same:01M6GXQYFC43WZQMK6ESEB1FB1":73},{"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":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":44,"repositoryHtmlUrl":45,"repositoryHomepageUrl":46,"ownerHtmlUrl":47,"ownerBlogUrl":46,"ownerDescription":48,"updatedAt":49,"install":50,"resources":62},"01M6GXQYFC43WZQMK6ESEB1FB1","session-handoff",null,"Synthesizes the current session into a structured HANDOFF block for context transfer between sessions. Captures what was built, decisions made, and unresolved items.","SethGammon\u002FCitadel","SethGammon","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F5523585?v=4","01M6GXJ90FD2CE9QF5GQERWN06","Seth Gammon","01M6GXJ94VXYGK5KAW14EYE901",930,"MIT","https:\u002F\u002Fgithub.com\u002FSethGammon\u002FCitadel\u002Fblob\u002Fmain\u002Fskills\u002Fsession-handoff\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32],"handoff","session handoff","session","sessions","session summary","transfer","decisions","context","structured handoff","summary","structured","false","block","true","2026-11-10 10:12:30",false,"---\nname: session-handoff\nlicense: MIT\ndescription: >-\n  Synthesizes the current session into a structured HANDOFF block for context\n  transfer between sessions. Captures what was built, decisions made, and\n  unresolved items.\nuser-invocable: true\nauto-trigger: false\ntrigger_keywords:\n  - handoff\n  - session summary\nlast-updated: 2026-10-15\n---\n\n# \u002Fsession-handoff — Context Transfer\n\n## Identity\n\nYou summarize the current task accurately and economically so another session can continue it.\n\n## Orientation\n\nUse when ending a session and wanting to preserve context for the next one.\nAlso used automatically by orchestrators (Archon, Fleet) at session boundaries.\n\n**Don't use when:** You want to extract reusable patterns from a completed campaign (use `\u002Flearn`), write a structured postmortem for a failed campaign (use `\u002Fpostmortem`), or produce documentation rather than a context transfer.\n\n## Protocol\n\n1. **Reuse current evidence first**:\n   - Start with the task, edits, verification results, decisions, and blockers already established in this session. If they are sufficient for a truthful handoff, make no tool calls.\n   - Do not repeat Git inspections, scan campaign\u002Ffleet directories, or read unrelated history merely to fill the format. A handoff summarizes work; it does not start a new audit.\n   - If a material fact is missing or may have changed since it was checked, perform one targeted read. Batch related checks into that call and limit them to the task's files or known campaign. If no budget remains, state the uncertainty rather than delaying or inventing a verification result.\n\n2. **Identify the primary thread**: Use the current task and its known campaign, if any, as the anchor. Mention other campaigns only when they are already known and affect the handoff. Do not discover unrelated work to create a frame.\n\n3. **Map data to HANDOFF fields**:\n   - *What changed*: actual task output and files changed; distinguish committed, uncommitted, and proposed work when known\n   - *Key decisions*: the decisions and reasons established while doing the task\n   - *Unresolved items*: failed or missing verification, known blockers, and explicitly deferred work\n   - *Next steps*: the next actionable step, or \"none\" when the task is complete\n\n4. Output the HANDOFF block.\n\n## Output Format\n\n```\n---HANDOFF---\n- {what was built or changed — be specific}\n- {key decisions and tradeoffs — include reasoning}\n- {unresolved items — what's blocking}\n- {next steps — what the next session should do first}\n---\n```\n\nKeep it to 3-5 bullets, under 150 words. This is a context transfer, not a report.\n\n## Quality Gates\n\n- Every bullet must be actionable or informative\n- No vague statements (\"made progress on X\")\n- Specific file references where relevant\n- Decisions include reasoning, not just the choice\n\n## Fringe Cases\n\n**`.planning\u002F` does not exist or was not inspected**: Summarize the current task from session evidence. Do not inspect Git or infer campaign status merely to fill the handoff.\n\n**A relevant campaign file was found to be corrupted or unparseable**: State that its status is unknown and name the file. Do not treat unreadable state as inactive or scan for other campaigns.\n\n**No active campaign and no git changes**: If there is nothing to summarize, say so explicitly: \"No active campaign or session changes found. Nothing to hand off.\" Do not fabricate a handoff.\n\n**No context to summarize** (fresh session with no edits): Output a minimal handoff noting the session start state. At minimum, include what the user asked about and what was found.\n\n**Campaign is in a blocked\u002Fparked state**: Include the block reason and the recommended next action in the handoff so the next session can resume immediately.\n\n## Contextual Gates\n\n**Reversibility:** Green — this skill writes nothing to disk; the HANDOFF block is display-only.\n**Cost:** No cost actions — synthesis only; no agents spawned, no confirmation needed.\n**Trust:** No gates — safe at all trust levels.\n\n## Exit Protocol\n\nOutput the HANDOFF block and then wait for the next command. This skill does not write to disk — the HANDOFF block is the deliverable, for the user to copy into the next session or save manually.\n","# \u002Fsession-handoff — Context Transfer\n\n## Identity\n\nYou summarize the current task accurately and economically so another session can continue it.\n\n## Orientation\n\nUse when ending a session and wanting to preserve context for the next one.\nAlso used automatically by orchestrators (Archon, Fleet) at session boundaries.\n\n**Don't use when:** You want to extract reusable patterns from a completed campaign (use `\u002Flearn`), write a structured postmortem for a failed campaign (use `\u002Fpostmortem`), or produce documentation rather than a context transfer.\n\n## Protocol\n\n1. **Reuse current evidence first**:\n   - Start with the task, edits, verification results, decisions, and blockers already established in this session. If they are sufficient for a truthful handoff, make no tool calls.\n   - Do not repeat Git inspections, scan campaign\u002Ffleet directories, or read unrelated history merely to fill the format. A handoff summarizes work; it does not start a new audit.\n   - If a material fact is missing or may have changed since it was checked, perform one targeted read. Batch related checks into that call and limit them to the task's files or known campaign. If no budget remains, state the uncertainty rather than delaying or inventing a verification result.\n\n2. **Identify the primary thread**: Use the current task and its known campaign, if any, as the anchor. Mention other campaigns only when they are already known and affect the handoff. Do not discover unrelated work to create a frame.\n\n3. **Map data to HANDOFF fields**:\n   - *What changed*: actual task output and files changed; distinguish committed, uncommitted, and proposed work when known\n   - *Key decisions*: the decisions and reasons established while doing the task\n   - *Unresolved items*: failed or missing verification, known blockers, and explicitly deferred work\n   - *Next steps*: the next actionable step, or \"none\" when the task is complete\n\n4. Output the HANDOFF block.\n\n## Output Format\n\n```\n---HANDOFF---\n- {what was built or changed — be specific}\n- {key decisions and tradeoffs — include reasoning}\n- {unresolved items — what's blocking}\n- {next steps — what the next session should do first}\n---\n```\n\nKeep it to 3-5 bullets, under 150 words. This is a context transfer, not a report.\n\n## Quality Gates\n\n- Every bullet must be actionable or informative\n- No vague statements (\"made progress on X\")\n- Specific file references where relevant\n- Decisions include reasoning, not just the choice\n\n## Fringe Cases\n\n**`.planning\u002F` does not exist or was not inspected**: Summarize the current task from session evidence. Do not inspect Git or infer campaign status merely to fill the handoff.\n\n**A relevant campaign file was found to be corrupted or unparseable**: State that its status is unknown and name the file. Do not treat unreadable state as inactive or scan for other campaigns.\n\n**No active campaign and no git changes**: If there is nothing to summarize, say so explicitly: \"No active campaign or session changes found. Nothing to hand off.\" Do not fabricate a handoff.\n\n**No context to summarize** (fresh session with no edits): Output a minimal handoff noting the session start state. At minimum, include what the user asked about and what was found.\n\n**Campaign is in a blocked\u002Fparked state**: Include the block reason and the recommended next action in the handoff so the next session can resume immediately.\n\n## Contextual Gates\n\n**Reversibility:** Green — this skill writes nothing to disk; the HANDOFF block is display-only.\n**Cost:** No cost actions — synthesis only; no agents spawned, no confirmation needed.\n**Trust:** No gates — safe at all trust levels.\n\n## Exit Protocol\n\nOutput the HANDOFF block and then wait for the next command. This skill does not write to disk — the HANDOFF block is the deliverable, for the user to copy into the next session or save manually.\n",{"name":5,"license":15,"description":7,"auto-trigger":34,"last-updated":38,"user-invocable":39,"trigger_keywords":40},1792022400000,true,[19,23],"main","e1a3d45697a0f323aaedcbea0ab6a0387b5fe722","skills\u002Fsession-handoff",84,"https:\u002F\u002Fgithub.com\u002FSethGammon\u002FCitadel","https:\u002F\u002Fsethgammon.github.io\u002FCitadel\u002F","https:\u002F\u002Fgithub.com\u002FSethGammon","Building Citadel, the repo-local operating layer for Claude Code and Codex. Persistent work, routing, verification, and coordinated agent fleets.","2026-11-13 02:05:13",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":39},[52,55,58],{"tool":53,"command":54},"npx","npx skills add SethGammon\u002FCitadel --skill session-handoff",{"tool":56,"command":57},"bunx","bunx skills add SethGammon\u002FCitadel --skill session-handoff",{"tool":59,"command":60},"pnpm","pnpm dlx skills add SethGammon\u002FCitadel --skill session-handoff","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FSethGammon\u002FCitadel\u002Fblob\u002Fmain\u002Fskills\u002Fsession-handoff\u002FSKILL.md",[63,69],{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},"__benchmarks__\u002Fmid-campaign.md","REFERENCE","参考文档",802,"https:\u002F\u002Fgithub.com\u002FSethGammon\u002FCitadel\u002Fblob\u002Fmain\u002Fskills\u002Fsession-handoff\u002F__benchmarks__\u002Fmid-campaign.md",{"path":70,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":71,"sourceHtmlUrl":72},"__benchmarks__\u002Fno-active-work.md",806,"https:\u002F\u002Fgithub.com\u002FSethGammon\u002FCitadel\u002Fblob\u002Fmain\u002Fskills\u002Fsession-handoff\u002F__benchmarks__\u002Fno-active-work.md",[74,98,127,151,176,195],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":33},"01M6GXSBKE9A2HQWF8QRAZ4WJ5","workspace","Multi-repo campaign coordinator. Same lifecycle as fleet -- scope claims, discovery relay, wave-based execution -- but the unit of work is a repo, not a file. Coordinates campaigns across repositories with shared context.","https:\u002F\u002Fgithub.com\u002FSethGammon\u002FCitadel\u002Fblob\u002Fmain\u002Fskills\u002Fworkspace\u002FSKILL.md",[],[76,81,82,83,84,26,85,86,87,88,89,90,91,30,92,93,94,95,96,97],"repos","snowflake","multi-repo","work","campaign","coordinate","but","across","campaigns","shared","as","scope","add","unit","coordinator","fleet","claims",{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":109,"publishedAt":33},"01M6GXS873AD1Y6RTM6GV47F3E","wiki","Markdown-first knowledge base where the LLM acts as librarian. Ingests raw sources, compiles and interlinks topic files, self-maintains an index. No vector DB or embeddings required -- uses LLM-native navigation over structured markdown up to ~400K words.","https:\u002F\u002Fgithub.com\u002FSethGammon\u002FCitadel\u002Fblob\u002Fmain\u002Fskills\u002Fwiki\u002FSKILL.md",[104],{"categoryNo":105,"categoryName":106,"taxonomyType":107,"taxonomyTypeDesc":108},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",[100,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,91,30,125,126],"vector","embeddings","librarian","markdown","knowledge","karpathy","knowledge management","karpathy wiki","up","files","maintain","self","knowledge base","project","db","sources","native",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":33},"01M6GXS2840SJ61285SZ43EJC3","watch","File sentinel that monitors the working directory for changes and marker comments, then auto-triggers appropriate skills. Poll-based via git diff against the last scan commit. Writes intake items for batch processing and routes marker actions through \u002Fdo. Use for automatic reactions to file changes; do NOT use for one-off inspection or tasks needing human judgment per file.","https:\u002F\u002Fgithub.com\u002FSethGammon\u002FCitadel\u002Fblob\u002Fmain\u002Fskills\u002Fwatch\u002FSKILL.md",[],[129,134,135,136,137,138,139,140,141,142,143,144,119,145,146,147,148,149,30,150],"directory","commit","tasks","git","batch","actions","start","sentinel","diff","auto","stop","do","scan","human","judgment","reactions","processing",{"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":160,"publishedAt":33},"01M6GXRXHYJ5RD9RZP81S2VFSW","verify","Self-test the Citadel hook pipeline from within a live session. Exercises real tool calls (Write, Edit, Bash, Read) and checks that hooks fired, telemetry accumulated, and no errors occurred. Reports HOOK HEALTH: PASS or HOOK HEALTH: FAIL with a per-hook breakdown.","https:\u002F\u002Fgithub.com\u002FSethGammon\u002FCitadel\u002Fblob\u002Fmain\u002Fskills\u002Fverify\u002FSKILL.md",[157],{"categoryNo":158,"categoryName":159,"taxonomyType":107,"taxonomyTypeDesc":108},"01JBSEEDCAT000000000000008","测试与质量",[153,161,162,163,164,165,166,167,168,169,21,170,171,121,172,30,173,174,175,32],"citadel","telemetry","harness","pipeline","Bash","tool","read","write","edit","hooks","reports","live","hook","errors","calls",{"skillNo":177,"name":178,"nameZh":6,"description":179,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":180,"categories":181,"keywords":182,"publishedAt":33},"01M6GXRS9MCJFMQZ917H2XH3AC","unharness","Safely leave Citadel using the active adoption receipt. Produces a no-write, reviewable plan, preserves a portable archive, removes only exact owned material, and reports modified or externally registered surfaces as retained or unknown. Legacy installs must be imported before exact leave is claimed.","https:\u002F\u002Fgithub.com\u002FSethGammon\u002FCitadel\u002Fblob\u002Fmain\u002Fskills\u002Funharness\u002FSKILL.md",[],[178,183,161,163,184,185,186,187,188,118,171,189,190,191,192,193,91,30,194,32],"uninstall","adoption","plan","archive","remove","only","Legacy","surfaces","clean","imported","active","material",{"skillNo":196,"name":197,"nameZh":6,"description":198,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":199,"categories":200,"keywords":209,"publishedAt":33},"01M6GXRMEJ2VHD43R9FNPD4910","triage","GitHub issue and PR investigator. Pulls open issues\u002FPRs, classifies them, searches the codebase for root cause or reviews contributed code, proposes fixes with file:line references, and optionally implements fixes. Use for investigating GitHub issues and reviewing PRs; do NOT use for general code review unrelated to GitHub issues.","https:\u002F\u002Fgithub.com\u002FSethGammon\u002FCitadel\u002Fblob\u002Fmain\u002Fskills\u002Ftriage\u002FSKILL.md",[201,204],{"categoryNo":202,"categoryName":203,"taxonomyType":107,"taxonomyTypeDesc":108},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":205,"categoryName":206,"taxonomyType":207,"taxonomyTypeDesc":208},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[197,210,211,212,213,214,215,216,217,218,219,220,221,222,145,30,223,224,225,32],"code review","review","review pr","pr","code","github issues","issues","open","use","unrelated","issue","general","references","line","investigator","reviews"]