[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6QJ173A2HBXKWP43PBR46XY":3,"skill-same:01M6QJ173A2HBXKWP43PBR46XY":72},{"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":17,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":13,"repositoryHtmlUrl":55,"repositoryHomepageUrl":6,"ownerHtmlUrl":56,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":57,"install":58,"resources":71},"01M6QJ173A2HBXKWP43PBR46XY","git-stash-management",null,"Master git stash: when to stash, how to organize stashes, naming strategies, and recovery patterns. Use when user mentions git stash, stashing changes, saving work in progress, or when they have uncommitted changes they need to set aside. Triggers especially when user says \"should I stash this?\", \"git stash\", \"save my changes\", \"switch branches with uncommitted work\", or \"recover stash\".","ImaginerLabs\u002Fskill-manager","ImaginerLabs","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F214277308?v=4","01M6QGGDPNF15RMMT1RCFDH9FN","01M6QGGDTH5BY64DQ123NR8M33",0,"MIT","https:\u002F\u002Fgithub.com\u002FImaginerLabs\u002Fskill-manager\u002Fblob\u002Fmain\u002Fskills\u002Fcoding\u002Fgit-stash-management\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"git stash management","stash","management","git","patterns","my","how to","progress","triggers","strategies","organize","branches","switch","master","use","work","coding","how","save","SET","2026-11-10 10:12:30",false,"---\nname: git-stash-management\ndescription: >-\n  Master git stash: when to stash, how to organize stashes, naming strategies, and recovery patterns. Use when user mentions git stash, stashing changes, saving work in progress, or when they have uncommitted changes they need to set aside. Triggers especially when user says \"should I stash this?\", \"git stash\", \"save my changes\", \"switch branches with uncommitted work\", or \"recover stash\".\ncategory: coding\npriority: P2\ntrigger_patterns:\n  - \"should I stash this\"\n  - \"git stash\"\n  - \"save my changes\"\n  - \"uncommitted changes\"\n  - \"switch branches\"\n  - \"stash management\"\n  - \"recover stash\"\n---\n\n# Git Stash Management — Strategic Work in Progress Handling\n\n## Overview\n\nGit-stash-management is a **behavioral specification skill** that encapsulates the judgment of **when to stash, how to organize stashes, and how to recover from stash mistakes**.\n\nThis skill embodies the experience of developers who've lost work to stash mishaps and know how to use stash as a temporary shelf without losing track of what's on it.\n\n## Core Philosophy\n\n### The Stash Mental Model\n\n> \"Git stash is a temporary shelf for your work-in-progress. Like a physical stash, it's meant for short-term storage, not long-term archiving. If something's been on your stash for more than a day, you probably should commit it.\"\n\n### When Stash is the Right Tool\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│                    STASH APPROPRIATENESS                       │\n│                                                               │\n│    USE STASH WHEN:                                            │\n│    ✓ Switching branches with uncommitted work                 │\n│    ✓ Pulling changes when you have local work                 │\n│    ✓ Temporarily setting aside work to debug                   │\n│    ✓ Sharing a quick experiment with a colleague               │\n│                                                               │\n│    DON'T USE STASH WHEN:                                       │\n│    ✗ Work is ready to commit (just commit it)                  │\n│    ✗ Work has been sitting for days (commit it)                │\n│    ✗ You need to track the work long-term (branch instead)    │\n│    ✗ The work is complex (use a feature branch)                │\n└─────────────────────────────────────────────────────────────┘\n```\n\n## Decision Framework\n\n### Stash vs Commit Decision\n\n| Condition | Action | Rationale |\n|-----------|--------|-----------|\n| Incomplete, will return to soon | Stash | Temporary, quick |\n| Incomplete, will take days | Commit to feature branch | Better tracking |\n| Ready for review | Commit | Should be tracked |\n| Experimental, may discard | Stash or branch | Keep options open |\n| Need to switch branches ASAP | Stash | Quick save |\n\n### Stash vs Branch Decision\n\n```\n                    ┌─ Will you return to this work?\n                    │   └─ NO → Consider committing or discarding\n                    │       └─ YES → Continue\n                    │\n                    └─ Will it take more than a day?\n                        └─ YES → Create feature branch\n                        └─ NO → Continue\n                                │\n                                └─ Is it complex\u002Fmultiple files?\n                                    └─ YES → Feature branch\n                                    └─ NO → Stash is fine\n```\n\n## Behavioral Specification\n\n### Phase 1: Stash Creation\n\n#### 1.1 Basic Stash\n\n```bash\n# Stash current working directory changes\ngit stash\n\n# Stash with a message (recommended!)\ngit stash push -m \"WIP: user authentication module\"\n\n# Stash specific files\ngit stash push -m \"WIP: auth changes\" src\u002Fauth.ts src\u002Flogin.ts\n\n# Stash including untracked files\ngit stash push -m \"WIP: with new files\" -u\n```\n\n#### 1.2 Stash Organization\n\n```bash\n# Create organized stashes\ngit stash push -m \"feature\u002Fauth:WIP - need to test\"\ngit stash push -m \"bugfix\u002Flogin:WIP - edge case handling\"\ngit stash push -m \"refactor:WIP - extracted helper\"\n\n# Use prefixes for organization\ngit stash push -m \"WIP\u002Ffeature:user-profile\"\ngit stash push -m \"DEBUG\u002Fstuck-on:memory-leak\"\ngit stash push -m \"TEMP\u002Ftest:mocking-strategy\"\n```\n\n### Phase 2: Stash Listing and Inspection\n\n#### 2.1 Finding Your Stash\n\n```bash\n# List all stashes\ngit stash list\n\n# Output example:\n# stash@{0}: WIP feature\u002Fauth:WIP - need to test\n# stash@{1}: On main: \"fix\u002Ftypo: last week\"\n# stash@{2}: On feature\u002Fuser-profile: \"temp changes\"\n\n# Inspect a specific stash\ngit stash show -p stash@{0}\n\n# Quick peek at what's in stash\ngit stash show stash@{0}\n```\n\n#### 2.2 Stash Content Analysis\n\n```markdown\n## Stash Analysis\n\nstash@{0}: WIP feature\u002Fauth - incomplete login flow\n\nContents:\n- src\u002Fauth\u002Flogin.ts (modified)\n- src\u002Fauth\u002Fregister.ts (modified)\n- tests\u002Fauth.test.ts (modified)\n\nNot included (use -u):\n- src\u002Fauth\u002Fnew-file.ts (untracked)\n\nMessage clarity: 6\u002F10\nRecommendation: Improve message\n```\n\n### Phase 3: Stash Recovery\n\n#### 3.1 Apply vs Pop\n\n```bash\n# Apply stash to current branch (keeps stash in list)\ngit stash apply stash@{0}\n\n# Pop stash (removes from list after applying)\ngit stash pop\n\n# Pop specific stash (doesn't remove others)\ngit stash pop stash@{2}\n\n# Apply to different branch\ngit stash branch new-branch stash@{0}\n# Creates new branch from stash's commit point\n```\n\n#### 3.2 Selective Recovery\n\n```bash\n# Apply only specific files from stash\ngit stash show -p stash@{0} | git apply --3way -- \u003C(git stash show -p stash@{0} -- src\u002Fauth.ts)\n\n# Manual selective recovery\ngit stash show -p stash@{0} > \u002Ftmp\u002Fstash.patch\n# Edit patch to keep only wanted changes\ngit apply \u002Ftmp\u002Fstash.patch\n```\n\n### Phase 4: Stash Cleanup\n\n#### 4.1 Safe Cleanup\n\n```bash\n# Remove single stash (carefully!)\ngit stash drop stash@{0}\n\n# Clear all stashes (DANGEROUS!)\ngit stash clear\n\n# Remove multiple old stashes\ngit stash drop stash@{5}\ngit stash drop stash@{6}\n```\n\n#### 4.2 Stale Stash Detection\n\n```bash\n# Find stashes older than 1 week\ngit stash list | while read line; do\n  # Check date if stored\n  echo \"$line\"\ndone\n\n# Typical pattern: stash@{N} format\n# Older than 2 weeks = consider cleaning up\n```\n\n## Common Scenarios\n\n### Scenario 1: \"I need to switch branches but have uncommitted work\"\n\n```bash\n# Step 1: Assess the work\ngit status\n\n# Step 2: If ready to commit, commit it\ngit add .\ngit commit -m \"WIP: incomplete feature\"\n\n# Step 3: If truly temporary, stash it\ngit stash push -m \"WIP\u002Ffeature:$(date +%Y-%m-%d)\"\n\n# Step 4: Switch branches\ngit checkout other-branch\n\n# Step 5: When ready, recover\ngit stash pop\n```\n\n### Scenario 2: \"I accidentally dropped a stash\"\n\n```bash\n# Oops! Lost stash@{0}\n# Check reflog for dropped stashes\ngit reflog | grep stash\n\n# Output might show:\n# abc1234 stash@{0}: WIP feature\u002Fauth\n# def5678 stash@{1}: On main: \"fix\u002Ftypo\"\n\n# Recover from reflog\ngit stash apply abc1234\n# or\ngit stash apply stash@{0}\n```\n\n### Scenario 3: \"I have too many stashes, which should I clean?\"\n\n```markdown\n## Stash Audit\n\nCurrent stashes:\n1. stash@{0}: \"WIP feature\u002Fauth - yesterday\" → KEEP (active)\n2. stash@{1}: \"DEBUG\u002Fstuck-on:middleware - 3 days ago\" → EVALUATE\n3. stash@{2}: \"temp test - last week\" → LIKELY DELETE\n4. stash@{3}: \"On main: 'fix\u002Ftypo' - 2 weeks ago\" → DELETE\n\nDecision:\n- Active work: Keep stash@{0}\n- In-progress debugging: Finish or commit within 24h\n- Old experiments: Delete or commit\n- Very old: Delete\n```\n\n## The Stash Management Checklist\n\n```\nSTASH MANAGEMENT CHECKLIST\n===========================\n\n□ 1. Is this ready to commit?\n  └─ YES → COMMIT instead of stash\n\n□ 2. Will you work on this again within 24h?\n  └─ NO → Consider feature branch or commit\n\n□ 3. Is the stash message descriptive?\n  └─ Include what\u002Fwhy context\n\n□ 4. Can you find this stash later?\n  └─ Good message + not too many stashes\n\n□ 5. Have you checked for this stash recently?\n  └─ Monthly audit of old stashes\n\n□ 6. Do you have too many stashes?\n  └─ > 5 stashes = time to clean up\n\nCLEANUP HABITS:\n□ Review stashes monthly\n□ Delete after use\n□ Don't let stashes get stale\n```\n\n## Anti-Patterns\n\n### 1. Stash and Forget\n\n```bash\n# BAD: Stash that becomes lost forever\ngit stash push -m \"temp\"\n# ... 3 months later ...\ngit stash list\n# \"Where did that temp stash go?\" ?\n\n# GOOD: Clear purpose, timely recovery\ngit stash push -m \"DEBUG\u002Fmemory-leak: investigate tomorrow\"\n# Do the work tomorrow\ngit stash pop\n```\n\n### 2. Cryptic Messages\n\n```bash\n# BAD: Meaningless messages\ngit stash\ngit stash push -m \"changes\"\ngit stash push -m \"WIP\"\ngit stash push -m \"temp2\"\n\n# GOOD: Descriptive messages\ngit stash push -m \"DEBUG\u002Fauth-redirect: testing flow\"\ngit stash push -m \"WIP\u002Ffeature:user-profile - need test data\"\n```\n\n### 3. Stash Hoarding\n\n```bash\n# BAD: 20 stashes, can't find anything\ngit stash list\n# stash@{0} to stash@{19} of varying ages...\n\n# GOOD: Maximum 3-5 stashes\n# Clean up after use\ngit stash drop stash@{0}  # After recovery\n```\n\n## Stash Workflow Patterns\n\n### Pattern 1: Quick Switch\n\n```bash\n# Quick save before switch\ngit stash push -m \"WIP:$(basename $(pwd))\"\ngit checkout other-branch\n# ... work ...\ngit stash pop\n```\n\n### Pattern 2: Debug Interruption\n\n```bash\n# Interruption workflow\ngit stash push -m \"DEBUG\u002Fstuck:$(git diff --stat HEAD | head -1)\"\n# ... debug the issue ...\ngit stash pop\n# Continue from where you left off\n```\n\n### Pattern 3: Feature Branch Stash\n\n```bash\n# Create branch from stash point\ngit stash branch new-feature stash@{0}\n# Now you have:\n# - A new branch based on stash's parent\n# - Stash automatically popped\n```\n\n## Key Principles\n\n### 1. Stash is Temporary\n\nIt's a shelf, not a shelf in your basement. If it sits there for more than a few days, move it somewhere better (a branch).\n\n### 2. Message Everything\n\nEven `git stash` without a message creates a stash, but you'll never know what it was later.\n\n### 3. Pop or Apply, Don't Leave Hanging\n\nWhen you create a stash with intention to use it, make sure you actually apply it.\n\n### 4. Clean Regularly\n\nAudit your stashes weekly. Delete what you don't need.\n\n### 5. Stashes Can Be Recovered\n\nUnlike some operations, dropped stashes can often be recovered from reflog. But it's easier not to lose them in the first place.\n\n## Relationship to Other Skills\n\n- `git-branch-strategy` — Alternative to stash for longer-term work\n- `git-commit` — When work is ready, commit instead\n- `git-rebase-safety` — Stash during rebase conflicts\n- `debug-session` — Stashing to debug without losing context\n","# Git Stash Management — Strategic Work in Progress Handling\n\n## Overview\n\nGit-stash-management is a **behavioral specification skill** that encapsulates the judgment of **when to stash, how to organize stashes, and how to recover from stash mistakes**.\n\nThis skill embodies the experience of developers who've lost work to stash mishaps and know how to use stash as a temporary shelf without losing track of what's on it.\n\n## Core Philosophy\n\n### The Stash Mental Model\n\n> \"Git stash is a temporary shelf for your work-in-progress. Like a physical stash, it's meant for short-term storage, not long-term archiving. If something's been on your stash for more than a day, you probably should commit it.\"\n\n### When Stash is the Right Tool\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│                    STASH APPROPRIATENESS                       │\n│                                                               │\n│    USE STASH WHEN:                                            │\n│    ✓ Switching branches with uncommitted work                 │\n│    ✓ Pulling changes when you have local work                 │\n│    ✓ Temporarily setting aside work to debug                   │\n│    ✓ Sharing a quick experiment with a colleague               │\n│                                                               │\n│    DON'T USE STASH WHEN:                                       │\n│    ✗ Work is ready to commit (just commit it)                  │\n│    ✗ Work has been sitting for days (commit it)                │\n│    ✗ You need to track the work long-term (branch instead)    │\n│    ✗ The work is complex (use a feature branch)                │\n└─────────────────────────────────────────────────────────────┘\n```\n\n## Decision Framework\n\n### Stash vs Commit Decision\n\n| Condition | Action | Rationale |\n|-----------|--------|-----------|\n| Incomplete, will return to soon | Stash | Temporary, quick |\n| Incomplete, will take days | Commit to feature branch | Better tracking |\n| Ready for review | Commit | Should be tracked |\n| Experimental, may discard | Stash or branch | Keep options open |\n| Need to switch branches ASAP | Stash | Quick save |\n\n### Stash vs Branch Decision\n\n```\n                    ┌─ Will you return to this work?\n                    │   └─ NO → Consider committing or discarding\n                    │       └─ YES → Continue\n                    │\n                    └─ Will it take more than a day?\n                        └─ YES → Create feature branch\n                        └─ NO → Continue\n                                │\n                                └─ Is it complex\u002Fmultiple files?\n                                    └─ YES → Feature branch\n                                    └─ NO → Stash is fine\n```\n\n## Behavioral Specification\n\n### Phase 1: Stash Creation\n\n#### 1.1 Basic Stash\n\n```bash\n# Stash current working directory changes\ngit stash\n\n# Stash with a message (recommended!)\ngit stash push -m \"WIP: user authentication module\"\n\n# Stash specific files\ngit stash push -m \"WIP: auth changes\" src\u002Fauth.ts src\u002Flogin.ts\n\n# Stash including untracked files\ngit stash push -m \"WIP: with new files\" -u\n```\n\n#### 1.2 Stash Organization\n\n```bash\n# Create organized stashes\ngit stash push -m \"feature\u002Fauth:WIP - need to test\"\ngit stash push -m \"bugfix\u002Flogin:WIP - edge case handling\"\ngit stash push -m \"refactor:WIP - extracted helper\"\n\n# Use prefixes for organization\ngit stash push -m \"WIP\u002Ffeature:user-profile\"\ngit stash push -m \"DEBUG\u002Fstuck-on:memory-leak\"\ngit stash push -m \"TEMP\u002Ftest:mocking-strategy\"\n```\n\n### Phase 2: Stash Listing and Inspection\n\n#### 2.1 Finding Your Stash\n\n```bash\n# List all stashes\ngit stash list\n\n# Output example:\n# stash@{0}: WIP feature\u002Fauth:WIP - need to test\n# stash@{1}: On main: \"fix\u002Ftypo: last week\"\n# stash@{2}: On feature\u002Fuser-profile: \"temp changes\"\n\n# Inspect a specific stash\ngit stash show -p stash@{0}\n\n# Quick peek at what's in stash\ngit stash show stash@{0}\n```\n\n#### 2.2 Stash Content Analysis\n\n```markdown\n## Stash Analysis\n\nstash@{0}: WIP feature\u002Fauth - incomplete login flow\n\nContents:\n- src\u002Fauth\u002Flogin.ts (modified)\n- src\u002Fauth\u002Fregister.ts (modified)\n- tests\u002Fauth.test.ts (modified)\n\nNot included (use -u):\n- src\u002Fauth\u002Fnew-file.ts (untracked)\n\nMessage clarity: 6\u002F10\nRecommendation: Improve message\n```\n\n### Phase 3: Stash Recovery\n\n#### 3.1 Apply vs Pop\n\n```bash\n# Apply stash to current branch (keeps stash in list)\ngit stash apply stash@{0}\n\n# Pop stash (removes from list after applying)\ngit stash pop\n\n# Pop specific stash (doesn't remove others)\ngit stash pop stash@{2}\n\n# Apply to different branch\ngit stash branch new-branch stash@{0}\n# Creates new branch from stash's commit point\n```\n\n#### 3.2 Selective Recovery\n\n```bash\n# Apply only specific files from stash\ngit stash show -p stash@{0} | git apply --3way -- \u003C(git stash show -p stash@{0} -- src\u002Fauth.ts)\n\n# Manual selective recovery\ngit stash show -p stash@{0} > \u002Ftmp\u002Fstash.patch\n# Edit patch to keep only wanted changes\ngit apply \u002Ftmp\u002Fstash.patch\n```\n\n### Phase 4: Stash Cleanup\n\n#### 4.1 Safe Cleanup\n\n```bash\n# Remove single stash (carefully!)\ngit stash drop stash@{0}\n\n# Clear all stashes (DANGEROUS!)\ngit stash clear\n\n# Remove multiple old stashes\ngit stash drop stash@{5}\ngit stash drop stash@{6}\n```\n\n#### 4.2 Stale Stash Detection\n\n```bash\n# Find stashes older than 1 week\ngit stash list | while read line; do\n  # Check date if stored\n  echo \"$line\"\ndone\n\n# Typical pattern: stash@{N} format\n# Older than 2 weeks = consider cleaning up\n```\n\n## Common Scenarios\n\n### Scenario 1: \"I need to switch branches but have uncommitted work\"\n\n```bash\n# Step 1: Assess the work\ngit status\n\n# Step 2: If ready to commit, commit it\ngit add .\ngit commit -m \"WIP: incomplete feature\"\n\n# Step 3: If truly temporary, stash it\ngit stash push -m \"WIP\u002Ffeature:$(date +%Y-%m-%d)\"\n\n# Step 4: Switch branches\ngit checkout other-branch\n\n# Step 5: When ready, recover\ngit stash pop\n```\n\n### Scenario 2: \"I accidentally dropped a stash\"\n\n```bash\n# Oops! Lost stash@{0}\n# Check reflog for dropped stashes\ngit reflog | grep stash\n\n# Output might show:\n# abc1234 stash@{0}: WIP feature\u002Fauth\n# def5678 stash@{1}: On main: \"fix\u002Ftypo\"\n\n# Recover from reflog\ngit stash apply abc1234\n# or\ngit stash apply stash@{0}\n```\n\n### Scenario 3: \"I have too many stashes, which should I clean?\"\n\n```markdown\n## Stash Audit\n\nCurrent stashes:\n1. stash@{0}: \"WIP feature\u002Fauth - yesterday\" → KEEP (active)\n2. stash@{1}: \"DEBUG\u002Fstuck-on:middleware - 3 days ago\" → EVALUATE\n3. stash@{2}: \"temp test - last week\" → LIKELY DELETE\n4. stash@{3}: \"On main: 'fix\u002Ftypo' - 2 weeks ago\" → DELETE\n\nDecision:\n- Active work: Keep stash@{0}\n- In-progress debugging: Finish or commit within 24h\n- Old experiments: Delete or commit\n- Very old: Delete\n```\n\n## The Stash Management Checklist\n\n```\nSTASH MANAGEMENT CHECKLIST\n===========================\n\n□ 1. Is this ready to commit?\n  └─ YES → COMMIT instead of stash\n\n□ 2. Will you work on this again within 24h?\n  └─ NO → Consider feature branch or commit\n\n□ 3. Is the stash message descriptive?\n  └─ Include what\u002Fwhy context\n\n□ 4. Can you find this stash later?\n  └─ Good message + not too many stashes\n\n□ 5. Have you checked for this stash recently?\n  └─ Monthly audit of old stashes\n\n□ 6. Do you have too many stashes?\n  └─ > 5 stashes = time to clean up\n\nCLEANUP HABITS:\n□ Review stashes monthly\n□ Delete after use\n□ Don't let stashes get stale\n```\n\n## Anti-Patterns\n\n### 1. Stash and Forget\n\n```bash\n# BAD: Stash that becomes lost forever\ngit stash push -m \"temp\"\n# ... 3 months later ...\ngit stash list\n# \"Where did that temp stash go?\" ?\n\n# GOOD: Clear purpose, timely recovery\ngit stash push -m \"DEBUG\u002Fmemory-leak: investigate tomorrow\"\n# Do the work tomorrow\ngit stash pop\n```\n\n### 2. Cryptic Messages\n\n```bash\n# BAD: Meaningless messages\ngit stash\ngit stash push -m \"changes\"\ngit stash push -m \"WIP\"\ngit stash push -m \"temp2\"\n\n# GOOD: Descriptive messages\ngit stash push -m \"DEBUG\u002Fauth-redirect: testing flow\"\ngit stash push -m \"WIP\u002Ffeature:user-profile - need test data\"\n```\n\n### 3. Stash Hoarding\n\n```bash\n# BAD: 20 stashes, can't find anything\ngit stash list\n# stash@{0} to stash@{19} of varying ages...\n\n# GOOD: Maximum 3-5 stashes\n# Clean up after use\ngit stash drop stash@{0}  # After recovery\n```\n\n## Stash Workflow Patterns\n\n### Pattern 1: Quick Switch\n\n```bash\n# Quick save before switch\ngit stash push -m \"WIP:$(basename $(pwd))\"\ngit checkout other-branch\n# ... work ...\ngit stash pop\n```\n\n### Pattern 2: Debug Interruption\n\n```bash\n# Interruption workflow\ngit stash push -m \"DEBUG\u002Fstuck:$(git diff --stat HEAD | head -1)\"\n# ... debug the issue ...\ngit stash pop\n# Continue from where you left off\n```\n\n### Pattern 3: Feature Branch Stash\n\n```bash\n# Create branch from stash point\ngit stash branch new-feature stash@{0}\n# Now you have:\n# - A new branch based on stash's parent\n# - Stash automatically popped\n```\n\n## Key Principles\n\n### 1. Stash is Temporary\n\nIt's a shelf, not a shelf in your basement. If it sits there for more than a few days, move it somewhere better (a branch).\n\n### 2. Message Everything\n\nEven `git stash` without a message creates a stash, but you'll never know what it was later.\n\n### 3. Pop or Apply, Don't Leave Hanging\n\nWhen you create a stash with intention to use it, make sure you actually apply it.\n\n### 4. Clean Regularly\n\nAudit your stashes weekly. Delete what you don't need.\n\n### 5. Stashes Can Be Recovered\n\nUnlike some operations, dropped stashes can often be recovered from reflog. But it's easier not to lose them in the first place.\n\n## Relationship to Other Skills\n\n- `git-branch-strategy` — Alternative to stash for longer-term work\n- `git-commit` — When work is ready, commit instead\n- `git-rebase-safety` — Stash during rebase conflicts\n- `debug-session` — Stashing to debug without losing context\n",{"name":5,"category":34,"priority":43,"description":7,"trigger_patterns":44},"P2",[45,46,47,48,49,50,51],"should I stash this","git stash","save my changes","uncommitted changes","switch branches","stash management","recover stash","main","b9a52d8e27455bdad953d64928696d028223ea1b","skills\u002Fcoding\u002Fgit-stash-management","https:\u002F\u002Fgithub.com\u002FImaginerLabs\u002Fskill-manager","https:\u002F\u002Fgithub.com\u002FImaginerLabs","2026-04-18 16:27:13",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add ImaginerLabs\u002Fskill-manager --skill git-stash-management",{"tool":64,"command":65},"bunx","bunx skills add ImaginerLabs\u002Fskill-manager --skill git-stash-management",{"tool":67,"command":68},"pnpm","pnpm dlx skills add ImaginerLabs\u002Fskill-manager --skill git-stash-management","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FImaginerLabs\u002Fskill-manager\u002Fblob\u002Fmain\u002Fskills\u002Fcoding\u002Fgit-stash-management\u002FSKILL.md",true,[],[73,108,129,157,193,219],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":89,"publishedAt":38},"01M6QJCB2SD5KHC41ZDQC0GA1T","meeting-minutes","Generate concise, actionable meeting minutes for internal meetings. Includes metadata, attendees, agenda, decisions, action items (owner + due date), and follow-up steps.","https:\u002F\u002Fgithub.com\u002FImaginerLabs\u002Fskill-manager\u002Fblob\u002Fmain\u002Fskills\u002Fwriting\u002Fmeeting-minutes\u002FSKILL.md",[79,84],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[90,91,92,93,94,95,96,97,98,99,75,52,100,101,102,103,104,105,106,107],"meeting minutes","meeting","minutes","writing","github","copilot","generate","decisions","meetings","up","agenda","actionable","concise","follow-up","tree","true","action","for",{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":114,"publishedAt":38},"01M6QJC71RRGTGNNFEHJG6S20G","documentation-writer","Diátaxis Documentation Expert. An expert technical writer specializing in creating high-quality software documentation, guided by the principles and structure of the Diátaxis technical documentation authoring framework.","https:\u002F\u002Fgithub.com\u002FImaginerLabs\u002Fskill-manager\u002Fblob\u002Fmain\u002Fskills\u002Fwriting\u002Fdocumentation-writer\u002FSKILL.md",[],[115,116,117,93,94,95,118,119,120,121,122,123,52,124,125,126,127,104,105,128],"documentation","documentation writer","writer","https","quality","technical","technical writer","expert","documentation expert","structure","authoring","software","principles","high",{"skillNo":130,"name":131,"nameZh":6,"description":132,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":142,"publishedAt":38},"01M6QJC0V3C7C4R9768J1AJYWY","doc-coauthoring","Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.","https:\u002F\u002Fgithub.com\u002FImaginerLabs\u002Fskill-manager\u002Fblob\u002Fmain\u002Fskills\u002Fwriting\u002Fdoc-coauthoring\u002FSKILL.md",[135,138,139],{"categoryNo":136,"categoryName":137,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},{"categoryNo":140,"categoryName":141,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000036","内容创作者",[143,144,93,145,146,115,147,148,149,150,151,152,52,153,154,125,155,156,104,107],"doc coauthoring","doc","workflow","official","tasks","decision","write","context","proposals","guide","refine","iteration","trigger","co",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":173,"publishedAt":38},"01M6QJBJ0YPVEWGEXZH3PJRRTT","code-review-workflow","Executes comprehensive 4-phase code review: basic review, quality check, bundle analysis, and test coverage. Should be used when the user mentions comprehensive code review, checking code quality, or reviewing staged changes with multi-phase analysis. This is the comprehensive review workflow, distinct from focused skills like frontend-code-review, staged-code-review, or code-change-test-designer.","https:\u002F\u002Fgithub.com\u002FImaginerLabs\u002Fskill-manager\u002Fblob\u002Fmain\u002Fskills\u002Ftesting\u002Fcode-review-workflow\u002FSKILL.md",[163,166,169,170],{"categoryNo":164,"categoryName":165,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":167,"categoryName":168,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},{"categoryNo":171,"categoryName":172,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000030","开发工程师",[174,175,145,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192],"code review","review","code","code review workflow","testing","frontend","test","change","code quality","code-review","analysis","check","coverage","quality check","basic","multi","comprehensive code review","with","phase",{"skillNo":194,"name":195,"nameZh":6,"description":196,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":197,"categories":198,"keywords":208,"publishedAt":38},"01M6QJB7XNHV3VEEQF4W7FMWF6","code-change-test-designer","Analyzes code changes and designs comprehensive test cases. Reads diffs, summarizes capability changes, and designs test cases covering main flows and edge cases. Should be used when the user mentions test coverage, designing tests for code changes, or analyzing diff\u002Fcommit for testing purposes. Distinguished from code-review-workflow which provides comprehensive review, this skill focuses on test case design for code changes.","https:\u002F\u002Fgithub.com\u002FImaginerLabs\u002Fskill-manager\u002Fblob\u002Fmain\u002Fskills\u002Ftesting\u002Fcode-change-test-designer\u002FSKILL.md",[199,200,203,204,205],{"categoryNo":167,"categoryName":168,"taxonomyType":82,"taxonomyTypeDesc":83},{"categoryNo":201,"categoryName":202,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},{"categoryNo":171,"categoryName":172,"taxonomyType":87,"taxonomyTypeDesc":88},{"categoryNo":206,"categoryName":207,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000032","设计师",[180,181,176,209,210,178,211,212,145,213,183,214,186,215,52,216,217,218,107,192],"designer","code change test designer","design","diffs","commit","edge","diff","tests","flows","which",{"skillNo":220,"name":221,"nameZh":6,"description":222,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":223,"categories":224,"keywords":226,"publishedAt":38},"01M6QJB195WD7DCJWDMKWKB29S","skill-creator","Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.","https:\u002F\u002Fgithub.com\u002FImaginerLabs\u002Fskill-manager\u002Fblob\u002Fmain\u002Fskills\u002Fmeta-skills\u002Fskill-creator\u002FSKILL.md",[225],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},[227,228,229,230,146,231,232,233,234,235,184,236,237,238,52,239,240,104,107,221],"skill creator","creator","performance","run evals","variance analysis","create","run","benchmark","Meta","improve","edit","evals","optimize","existing skill"]