[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FBFSK29ECSFQK2YP4XCY41":3,"skill-same:01M6FBFSK29ECSFQK2YP4XCY41":80},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":45,"linkOnly":46,"markdownContent":47,"markdownBody":48,"frontMatter":49,"refName":33,"commitSha":60,"skillDirectory":61,"forksCount":62,"repositoryHtmlUrl":63,"repositoryHomepageUrl":6,"ownerHtmlUrl":64,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":65,"install":66,"resources":79},"01M6FBFSK29ECSFQK2YP4XCY41","session-handoff",null,"Use when context approaches capacity, before \u002Fclear or \u002Fcompact, when switching tasks, or when ending a coding session: produces a structured handoff artifact for the next session.","boisenoise\u002Fskills-collections","boisenoise","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F193180?v=4","01M6CDBDQK6BDN55ZMA6B6PKBM","01M6CDBDVSJ3JPTBYN26FZ7TZK",12,"MIT","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-session-handoff\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[23,24,25,26,27,28,5,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"handoff","session handoff","session","when","for","kit","switching","artifact","next","compact","main","community","use","cursor","productivity","https","license","tasks","capacity","workflow","codex","github","2026-11-10 10:12:30",false,"---\nname: session-handoff\ndescription: \"Use when context approaches capacity, before \u002Fclear or \u002Fcompact, when switching tasks, or when ending a coding session: produces a structured handoff artifact for the next session.\"\ncategory: productivity\nrisk: safe\nsource: community\nsource_repo: alapha888\u002Fsession-handoff-kit\nsource_type: community\ndate_added: \"2026-10-05\"\nauthor: alapha888\ntags: [context-management, session-handoff, coding-agents, workflow]\ntools: [claude, cursor, codex]\nlicense: \"MIT\"\nlicense_source: \"https:\u002F\u002Fgithub.com\u002Falapha888\u002Fsession-handoff-kit\u002Fblob\u002Fmain\u002FLICENSE\"\n---\n\n# Session Handoff Skill\n\n## Purpose\nLarge context windows degrade in instruction adherence, reasoning precision, and tool accuracy as token counts accumulate. Long sessions fill with superseded plans, aborted scratchpads, and repetitive error traces. Resetting to a fresh session restores performance, but discarding context blindly introduces state loss, hallucinated progress, and repeated mistakes. \n\nThe `session-handoff` skill standardizes how an agent snapshots active state. It translates ephemeral working memory into an actionable, verifiable bridge document for the next session.\n\n## When to Use This Skill\n\n- Context usage approaches capacity (roughly >60%) and a reset is coming.\n- Before running `\u002Fclear` or `\u002Fcompact` in Claude Code, Cursor, or Codex.\n- When switching tasks mid-session, or ending a coding session that another session (or agent) will continue.\n\n---\n\n## Workflow: Ending a Session (6 Steps)\n\nRun this sequence when an agent session reaches operational limits or when halting work:\n\n1. **Audit Git and Workspace State**\n   Run `git status -s` and `git diff --stat` to establish grounded reality. Never rely on chat memory for what was modified. Identify modified, untracked, and staged files.\n\n2. **Capture Goal State vs. Implemented Reality**\n   Define the original objective in one sentence. Document precisely what has been verified as working (with passing test commands or runtime checks) versus what remains partial or unverified.\n\n3. **Record Decisions Made and Discarded Paths**\n   List architectural and design choices committed during the session, along with the concrete rationale. Explicitly record negative decisions (approaches tried and discarded) to prevent the next agent from re-attempting failed solutions.\n\n4. **Catalog Files Touched and Relevant Symbols**\n   List key file paths, functions, classes, and schema definitions modified or referenced. Include line references where relevant.\n\n5. **Isolate Open Loops with Owners and Checks**\n   List all unaddressed edge cases, failing tests, deferred tasks, and environment constraints. Every open loop must specify who resolves it (Human or Agent) and how completion is verified.\n\n6. **Specify the Immediate Next Action**\n   Draft a single, atomic, unambiguous instruction for the next agent to execute on turn one. Do not provide a broad list; specify the exact command to run or file to edit first.\n\n---\n\n## Operating Rules\n\n- **Separate Facts from Speculation**: A test that passed is a fact; assuming code works because it compiled is speculation. Label untested assumptions explicitly as `[UNVERIFIED]`.\n- **Mandate Owners and Verifications for Open Loops**: Every open loop must state an owner (`Human` or `Agent`) and a deterministic verification criteria (e.g., `pytest tests\u002Fauth\u002Ftest_token.py:test_refresh_rotation passes`).\n- **Ban Vague Continuations**: Never write \"continue working on auth\" or \"finish frontend components.\" State the exact symbol, file, and failure mode.\n- **Reference Real Workspace Identifiers**: All references to code must use exact file paths and symbol names. Do not use generalized pseudocode descriptions.\n\n---\n\n## Worked Example: Session Handoff Note\n\n```markdown\n# Session Handoff: JWT Rotation Implementation\n\n### Goal & Current State\n- **Target Goal**: Implement refresh token rotation and revocation in the FastAPI auth service.\n- **Current State**: Refresh token database migration applied and rotation endpoint created. Token generation and database persistence work. Revocation blacklist cache is not yet wired into the dependency validator.\n- **Verification**: `pytest tests\u002Ftest_auth_tokens.py` passes (4\u002F4 tests).\n\n### Decisions Made (With Reasons)\n- **Used Redis for Token Revocation List**: Selected Redis over Postgres lookups for revoked JTI tokens to keep latency under 5ms on protected routes.\n- **Rejected Stateless Refresh Tokens**: We initially evaluated sliding expiration in JWT claims without persistence, but discarded it because compromised tokens could not be revoked before natural expiry.\n- **Token Format**: Chose UUIDv4 for `jti` claim to maintain compatibility with existing session storage schemas.\n\n### Files Changed\n- `src\u002Fservices\u002Fauth.py`: Added `rotate_refresh_token(old_token: str)` function and Redis invalidation call.\n- `src\u002Fmodels\u002Ftokens.py`: Added `RefreshTokenRecord` SQLModel table for tracking token families.\n- `alembic\u002Fversions\u002F20261005_add_token_families.py`: Migration creating `token_records` table.\n- `tests\u002Ftest_auth_tokens.py`: Added unit tests for token family generation and rotation.\n\n### Open Loops\n- [Agent] Wire `verify_token_not_revoked` into `src\u002Fapi\u002Fdeps.py` -> Verify by checking `tests\u002Ftest_auth_deps.py` fails on blacklisted token.\n- [Agent] Handle database rollback if Redis is unreachable during rotation -> Verify by mocking Redis connection failure in unit test.\n- [Human] Set `REDIS_AUTH_URL` secret in `.env.test` for CI execution.\n\n### Next Action\nOpen `src\u002Fapi\u002Fdeps.py` and import `is_token_blacklisted` from `src.services.auth`. Insert the check into `get_current_user` directly after JWT decode verification.\n\n### Watch-outs\n- Do not modify the existing `access_token` expiration time (currently 15 minutes) in `src\u002Fcore\u002Fconfig.py`.\n- Alembic migration `20261005_add_token_families.py` must run before starting the API server locally (`alembic upgrade head`).\n```\n\n---\n\n## Anti-Patterns\n\n- **The Chat Transcript Dump**: Pasting raw conversation logs into the handoff note. The next session's context window is immediately polluted with the very conversational noise you intended to escape.\n- **The Phantom Pass**: Marking a module \"completed\" when it has only been written, not executed or tested.\n- **The Omitted Dead-End**: Leaving out solutions that failed. The next agent will read the codebase, see the same apparent path, and re-implement the failed approach.\n- **The Abstract Next Step**: Ending with \"Next: Implement remaining tests.\" The new agent spends 3-5 unnecessary turns discovering what needs testing.\n\n## Limitations\n\n- This skill produces a written handoff only; it cannot preserve live state such as running processes, uncommitted terminal output, or in-memory debugging context — record anything that matters explicitly in the note.\n- Handoff quality is bounded by what the outgoing session records: decisions, dead-ends, or file changes that are not written down cannot be recovered by the next session.\n- It does not replace version control or issue tracking; commit work first and reference commits or tickets in the note instead of duplicating them.\n","# Session Handoff Skill\n\n## Purpose\nLarge context windows degrade in instruction adherence, reasoning precision, and tool accuracy as token counts accumulate. Long sessions fill with superseded plans, aborted scratchpads, and repetitive error traces. Resetting to a fresh session restores performance, but discarding context blindly introduces state loss, hallucinated progress, and repeated mistakes. \n\nThe `session-handoff` skill standardizes how an agent snapshots active state. It translates ephemeral working memory into an actionable, verifiable bridge document for the next session.\n\n## When to Use This Skill\n\n- Context usage approaches capacity (roughly >60%) and a reset is coming.\n- Before running `\u002Fclear` or `\u002Fcompact` in Claude Code, Cursor, or Codex.\n- When switching tasks mid-session, or ending a coding session that another session (or agent) will continue.\n\n---\n\n## Workflow: Ending a Session (6 Steps)\n\nRun this sequence when an agent session reaches operational limits or when halting work:\n\n1. **Audit Git and Workspace State**\n   Run `git status -s` and `git diff --stat` to establish grounded reality. Never rely on chat memory for what was modified. Identify modified, untracked, and staged files.\n\n2. **Capture Goal State vs. Implemented Reality**\n   Define the original objective in one sentence. Document precisely what has been verified as working (with passing test commands or runtime checks) versus what remains partial or unverified.\n\n3. **Record Decisions Made and Discarded Paths**\n   List architectural and design choices committed during the session, along with the concrete rationale. Explicitly record negative decisions (approaches tried and discarded) to prevent the next agent from re-attempting failed solutions.\n\n4. **Catalog Files Touched and Relevant Symbols**\n   List key file paths, functions, classes, and schema definitions modified or referenced. Include line references where relevant.\n\n5. **Isolate Open Loops with Owners and Checks**\n   List all unaddressed edge cases, failing tests, deferred tasks, and environment constraints. Every open loop must specify who resolves it (Human or Agent) and how completion is verified.\n\n6. **Specify the Immediate Next Action**\n   Draft a single, atomic, unambiguous instruction for the next agent to execute on turn one. Do not provide a broad list; specify the exact command to run or file to edit first.\n\n---\n\n## Operating Rules\n\n- **Separate Facts from Speculation**: A test that passed is a fact; assuming code works because it compiled is speculation. Label untested assumptions explicitly as `[UNVERIFIED]`.\n- **Mandate Owners and Verifications for Open Loops**: Every open loop must state an owner (`Human` or `Agent`) and a deterministic verification criteria (e.g., `pytest tests\u002Fauth\u002Ftest_token.py:test_refresh_rotation passes`).\n- **Ban Vague Continuations**: Never write \"continue working on auth\" or \"finish frontend components.\" State the exact symbol, file, and failure mode.\n- **Reference Real Workspace Identifiers**: All references to code must use exact file paths and symbol names. Do not use generalized pseudocode descriptions.\n\n---\n\n## Worked Example: Session Handoff Note\n\n```markdown\n# Session Handoff: JWT Rotation Implementation\n\n### Goal & Current State\n- **Target Goal**: Implement refresh token rotation and revocation in the FastAPI auth service.\n- **Current State**: Refresh token database migration applied and rotation endpoint created. Token generation and database persistence work. Revocation blacklist cache is not yet wired into the dependency validator.\n- **Verification**: `pytest tests\u002Ftest_auth_tokens.py` passes (4\u002F4 tests).\n\n### Decisions Made (With Reasons)\n- **Used Redis for Token Revocation List**: Selected Redis over Postgres lookups for revoked JTI tokens to keep latency under 5ms on protected routes.\n- **Rejected Stateless Refresh Tokens**: We initially evaluated sliding expiration in JWT claims without persistence, but discarded it because compromised tokens could not be revoked before natural expiry.\n- **Token Format**: Chose UUIDv4 for `jti` claim to maintain compatibility with existing session storage schemas.\n\n### Files Changed\n- `src\u002Fservices\u002Fauth.py`: Added `rotate_refresh_token(old_token: str)` function and Redis invalidation call.\n- `src\u002Fmodels\u002Ftokens.py`: Added `RefreshTokenRecord` SQLModel table for tracking token families.\n- `alembic\u002Fversions\u002F20261005_add_token_families.py`: Migration creating `token_records` table.\n- `tests\u002Ftest_auth_tokens.py`: Added unit tests for token family generation and rotation.\n\n### Open Loops\n- [Agent] Wire `verify_token_not_revoked` into `src\u002Fapi\u002Fdeps.py` -> Verify by checking `tests\u002Ftest_auth_deps.py` fails on blacklisted token.\n- [Agent] Handle database rollback if Redis is unreachable during rotation -> Verify by mocking Redis connection failure in unit test.\n- [Human] Set `REDIS_AUTH_URL` secret in `.env.test` for CI execution.\n\n### Next Action\nOpen `src\u002Fapi\u002Fdeps.py` and import `is_token_blacklisted` from `src.services.auth`. Insert the check into `get_current_user` directly after JWT decode verification.\n\n### Watch-outs\n- Do not modify the existing `access_token` expiration time (currently 15 minutes) in `src\u002Fcore\u002Fconfig.py`.\n- Alembic migration `20261005_add_token_families.py` must run before starting the API server locally (`alembic upgrade head`).\n```\n\n---\n\n## Anti-Patterns\n\n- **The Chat Transcript Dump**: Pasting raw conversation logs into the handoff note. The next session's context window is immediately polluted with the very conversational noise you intended to escape.\n- **The Phantom Pass**: Marking a module \"completed\" when it has only been written, not executed or tested.\n- **The Omitted Dead-End**: Leaving out solutions that failed. The next agent will read the codebase, see the same apparent path, and re-implement the failed approach.\n- **The Abstract Next Step**: Ending with \"Next: Implement remaining tests.\" The new agent spends 3-5 unnecessary turns discovering what needs testing.\n\n## Limitations\n\n- This skill produces a written handoff only; it cannot preserve live state such as running processes, uncommitted terminal output, or in-memory debugging context — record anything that matters explicitly in the note.\n- Handoff quality is bounded by what the outgoing session records: decisions, dead-ends, or file changes that are not written down cannot be recovered by the next session.\n- It does not replace version control or issue tracking; commit work first and reference commits or tickets in the note instead of duplicating them.\n",{"name":5,"risk":50,"tags":51,"tools":54,"author":56,"source":34,"license":14,"category":37,"date_added":57,"description":7,"source_repo":58,"source_type":34,"license_source":59},"safe",[52,5,53,42],"context-management","coding-agents",[55,36,43],"claude","alapha888","2026-10-05","alapha888\u002Fsession-handoff-kit","https:\u002F\u002Fgithub.com\u002Falapha888\u002Fsession-handoff-kit\u002Fblob\u002Fmain\u002FLICENSE","7bf2279c8a65758319526a721d5c4b75683aec9c","skills\u002Fantigravity-session-handoff",3,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections","https:\u002F\u002Fgithub.com\u002Fboisenoise","2026-11-10 14:20:15",{"source":8,"skillName":5,"commands":67,"prompt":77,"zipAvailable":78},[68,71,74],{"tool":69,"command":70},"npx","npx skills add boisenoise\u002Fskills-collections --skill session-handoff",{"tool":72,"command":73},"bunx","bunx skills add boisenoise\u002Fskills-collections --skill session-handoff",{"tool":75,"command":76},"pnpm","pnpm dlx skills add boisenoise\u002Fskills-collections --skill session-handoff","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-session-handoff\u002FSKILL.md",true,[],[81,110,131,155,174,197],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":85,"licenseFileUrl":86,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":45},"01M6WNH92BHVFXHGPDZCPJ0AG0","web-access","Use Treg for public web or platform data only when existing search, browser and connected tools cannot cover the task, with explicit cost and data boundaries.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-web-access\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-web-access\u002FSKILL.md",[],[90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,26,109],"web","access","web access","official","development","browser","search","data","Tools","read","fetch","only","youtube","free tools","platform","critical","free","cover","normal","2026",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":85,"licenseFileUrl":114,"sourceHtmlUrl":115,"categories":116,"keywords":118,"publishedAt":45},"01M6WNF9XAYAB2CZDDJBAKNM93","treg","Use the Treg CLI or MCP catalog to discover, price and call authorized external tools with team-scoped credentials and a user-approved budget.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-treg\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-treg\u002FSKILL.md",[117],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[112,119,120,44,93,94,39,98,121,122,123,124,35,125,126,105,127,128,129,130,109],"MCP","cli","Budget","credentials","team","catalog","call","discover","external tools","with","scoped","blob",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":85,"licenseFileUrl":135,"sourceHtmlUrl":136,"categories":137,"keywords":143,"publishedAt":45},"01M6WN93MEAZ4E41DYAHJRPHQT","recruit","Turn a job description into an evidence-linked candidate shortlist through Treg, with job-related ranking and optional authorized business contact enrichment.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-recruit\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-recruit\u002FSKILL.md",[138],{"categoryNo":139,"categoryName":140,"taxonomyType":141,"taxonomyTypeDesc":142},"01JBSEEDCAT000000000000038","人力资源","PROFESSION","适用职业",[133,44,93,39,38,144,145,146,147,148,105,149,150,151,128,27,152,153,154,130,112,109],"email","enrichment","business","evidence","phone","ranking","post","job description","person","candidate","reason",{"skillNo":156,"name":157,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":85,"licenseFileUrl":159,"sourceHtmlUrl":160,"categories":161,"keywords":162,"publishedAt":45},"01M6WN8R5RXSMHM9B4D9FAFX42","rea-growth","Analyze a company’s public growth and content through Treg, distinguish observations from hypotheses, and produce an evidence-linked playbook within an approved budget.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-rea-growth\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-rea-growth\u002FSKILL.md",[],[163,164,165,44,93,39,166,167,38,168,121,169,170,171,147,105,172,173,130,112,109],"growth","rea","rea growth","produce","content","playbook","marketing","analyze","public","observations","company",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":85,"licenseFileUrl":178,"sourceHtmlUrl":179,"categories":180,"keywords":181,"publishedAt":45},"01M6WN2EVE3RQRGWAKBT4S7YT2","make-ugc","Create original AI UGC-style product videos through Treg: research hooks, approve a licensed presenter and voice, generate clips, add captions and report costs.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-make-ugc\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-make-ugc\u002FSKILL.md",[],[182,183,44,184,93,185,39,186,187,188,189,190,105,191,192,193,194,195,196,130],"make","make ugc","research","create","Video","Captions","ads","short","hooks","head","style","niche","trending","talking-head","approve",{"skillNo":198,"name":199,"nameZh":6,"description":200,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":85,"licenseFileUrl":201,"sourceHtmlUrl":202,"categories":203,"keywords":204,"publishedAt":45},"01M6WN10ARAA63Y8K1YNGXJ2RM","lead-signals","Find and qualify public buying signals through Treg, rank fitting business accounts and optionally enrich authorized business contact information.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-lead-signals\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-lead-signals\u002FSKILL.md",[],[205,206,207,44,93,39,208,209,146,210,211,105,212,213,214,215,216,217,218,130],"signals","lead","lead signals","how","find","ready","as","how to","qualify","people","information","enrich","changes","funding"]