[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71E3XVT4WDEZ0DYF0CQ1JY6":3,"skill-same:01M71E3XVT4WDEZ0DYF0CQ1JY6":62},{"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":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":44,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":47,"install":48,"resources":61},"01M71E3XVT4WDEZ0DYF0CQ1JY6","using-git-worktrees",null,"Use when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees with smart directory selection and safety verification","nedaktov-ops\u002FStenoMD","nedaktov-ops","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F278162618?v=4","01M71E3AH7DPHT6DWEMFZ3HGS0","01M71E3AHW95CTVBFY3EEA7QJS",1,"MIT","https:\u002F\u002Fgithub.com\u002Fnedaktov-ops\u002FStenoMD\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fusing-git-worktrees\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"git worktrees","worktrees","git","Using git","using git worktrees","implementation","workspace","with","use","plans","feature","isolation","Safety","directory","work","verification","when","selection","2026-11-10 10:12:30",false,"---\nname: using-git-worktrees\ndescription: Use when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees with smart directory selection and safety verification\n---\n\n# Using Git Worktrees\n\n## Overview\n\nGit worktrees create isolated workspaces sharing the same repository, allowing work on multiple branches simultaneously without switching.\n\n**Core principle:** Systematic directory selection + safety verification = reliable isolation.\n\n**Announce at start:** \"I'm using the using-git-worktrees skill to set up an isolated workspace.\"\n\n## Directory Selection Process\n\nFollow this priority order:\n\n### 1. Check Existing Directories\n\n```bash\n# Check in priority order\nls -d .worktrees 2>\u002Fdev\u002Fnull     # Preferred (hidden)\nls -d worktrees 2>\u002Fdev\u002Fnull      # Alternative\n```\n\n**If found:** Use that directory. If both exist, `.worktrees` wins.\n\n### 2. Check CLAUDE.md\n\n```bash\ngrep -i \"worktree.*director\" CLAUDE.md 2>\u002Fdev\u002Fnull\n```\n\n**If preference specified:** Use it without asking.\n\n### 3. Ask User\n\nIf no directory exists and no CLAUDE.md preference:\n\n```\nNo worktree directory found. Where should I create worktrees?\n\n1. .worktrees\u002F (project-local, hidden)\n2. ~\u002F.config\u002Fsuperpowers\u002Fworktrees\u002F\u003Cproject-name>\u002F (global location)\n\nWhich would you prefer?\n```\n\n## Safety Verification\n\n### For Project-Local Directories (.worktrees or worktrees)\n\n**MUST verify directory is ignored before creating worktree:**\n\n```bash\n# Check if directory is ignored (respects local, global, and system gitignore)\ngit check-ignore -q .worktrees 2>\u002Fdev\u002Fnull || git check-ignore -q worktrees 2>\u002Fdev\u002Fnull\n```\n\n**If NOT ignored:**\n\nPer Jesse's rule \"Fix broken things immediately\":\n1. Add appropriate line to .gitignore\n2. Commit the change\n3. Proceed with worktree creation\n\n**Why critical:** Prevents accidentally committing worktree contents to repository.\n\n### For Global Directory (~\u002F.config\u002Fsuperpowers\u002Fworktrees)\n\nNo .gitignore verification needed - outside project entirely.\n\n## Creation Steps\n\n### 1. Detect Project Name\n\n```bash\nproject=$(basename \"$(git rev-parse --show-toplevel)\")\n```\n\n### 2. Create Worktree\n\n```bash\n# Determine full path\ncase $LOCATION in\n  .worktrees|worktrees)\n    path=\"$LOCATION\u002F$BRANCH_NAME\"\n    ;;\n  ~\u002F.config\u002Fsuperpowers\u002Fworktrees\u002F*)\n    path=\"~\u002F.config\u002Fsuperpowers\u002Fworktrees\u002F$project\u002F$BRANCH_NAME\"\n    ;;\nesac\n\n# Create worktree with new branch\ngit worktree add \"$path\" -b \"$BRANCH_NAME\"\ncd \"$path\"\n```\n\n### 3. Run Project Setup\n\nAuto-detect and run appropriate setup:\n\n```bash\n# Node.js\nif [ -f package.json ]; then npm install; fi\n\n# Rust\nif [ -f Cargo.toml ]; then cargo build; fi\n\n# Python\nif [ -f requirements.txt ]; then pip install -r requirements.txt; fi\nif [ -f pyproject.toml ]; then poetry install; fi\n\n# Go\nif [ -f go.mod ]; then go mod download; fi\n```\n\n### 4. Verify Clean Baseline\n\nRun tests to ensure worktree starts clean:\n\n```bash\n# Examples - use project-appropriate command\nnpm test\ncargo test\npytest\ngo test .\u002F...\n```\n\n**If tests fail:** Report failures, ask whether to proceed or investigate.\n\n**If tests pass:** Report ready.\n\n### 5. Report Location\n\n```\nWorktree ready at \u003Cfull-path>\nTests passing (\u003CN> tests, 0 failures)\nReady to implement \u003Cfeature-name>\n```\n\n## Quick Reference\n\n| Situation | Action |\n|-----------|--------|\n| `.worktrees\u002F` exists | Use it (verify ignored) |\n| `worktrees\u002F` exists | Use it (verify ignored) |\n| Both exist | Use `.worktrees\u002F` |\n| Neither exists | Check CLAUDE.md → Ask user |\n| Directory not ignored | Add to .gitignore + commit |\n| Tests fail during baseline | Report failures + ask |\n| No package.json\u002FCargo.toml | Skip dependency install |\n\n## Common Mistakes\n\n### Skipping ignore verification\n\n- **Problem:** Worktree contents get tracked, pollute git status\n- **Fix:** Always use `git check-ignore` before creating project-local worktree\n\n### Assuming directory location\n\n- **Problem:** Creates inconsistency, violates project conventions\n- **Fix:** Follow priority: existing > CLAUDE.md > ask\n\n### Proceeding with failing tests\n\n- **Problem:** Can't distinguish new bugs from pre-existing issues\n- **Fix:** Report failures, get explicit permission to proceed\n\n### Hardcoding setup commands\n\n- **Problem:** Breaks on projects using different tools\n- **Fix:** Auto-detect from project files (package.json, etc.)\n\n## Example Workflow\n\n```\nYou: I'm using the using-git-worktrees skill to set up an isolated workspace.\n\n[Check .worktrees\u002F - exists]\n[Verify ignored - git check-ignore confirms .worktrees\u002F is ignored]\n[Create worktree: git worktree add .worktrees\u002Fauth -b feature\u002Fauth]\n[Run npm install]\n[Run npm test - 47 passing]\n\nWorktree ready at \u002FUsers\u002Fjesse\u002Fmyproject\u002F.worktrees\u002Fauth\nTests passing (47 tests, 0 failures)\nReady to implement auth feature\n```\n\n## Red Flags\n\n**Never:**\n- Create worktree without verifying it's ignored (project-local)\n- Skip baseline test verification\n- Proceed with failing tests without asking\n- Assume directory location when ambiguous\n- Skip CLAUDE.md check\n\n**Always:**\n- Follow directory priority: existing > CLAUDE.md > ask\n- Verify directory is ignored for project-local\n- Auto-detect and run project setup\n- Verify clean test baseline\n\n## Integration\n\n**Called by:**\n- **brainstorming** (Phase 4) - REQUIRED when design is approved and implementation follows\n- **subagent-driven-development** - REQUIRED before executing any tasks\n- **executing-plans** - REQUIRED before executing any tasks\n- Any skill needing isolated workspace\n\n**Pairs with:**\n- **finishing-a-development-branch** - REQUIRED for cleanup after work complete\n","# Using Git Worktrees\n\n## Overview\n\nGit worktrees create isolated workspaces sharing the same repository, allowing work on multiple branches simultaneously without switching.\n\n**Core principle:** Systematic directory selection + safety verification = reliable isolation.\n\n**Announce at start:** \"I'm using the using-git-worktrees skill to set up an isolated workspace.\"\n\n## Directory Selection Process\n\nFollow this priority order:\n\n### 1. Check Existing Directories\n\n```bash\n# Check in priority order\nls -d .worktrees 2>\u002Fdev\u002Fnull     # Preferred (hidden)\nls -d worktrees 2>\u002Fdev\u002Fnull      # Alternative\n```\n\n**If found:** Use that directory. If both exist, `.worktrees` wins.\n\n### 2. Check CLAUDE.md\n\n```bash\ngrep -i \"worktree.*director\" CLAUDE.md 2>\u002Fdev\u002Fnull\n```\n\n**If preference specified:** Use it without asking.\n\n### 3. Ask User\n\nIf no directory exists and no CLAUDE.md preference:\n\n```\nNo worktree directory found. Where should I create worktrees?\n\n1. .worktrees\u002F (project-local, hidden)\n2. ~\u002F.config\u002Fsuperpowers\u002Fworktrees\u002F\u003Cproject-name>\u002F (global location)\n\nWhich would you prefer?\n```\n\n## Safety Verification\n\n### For Project-Local Directories (.worktrees or worktrees)\n\n**MUST verify directory is ignored before creating worktree:**\n\n```bash\n# Check if directory is ignored (respects local, global, and system gitignore)\ngit check-ignore -q .worktrees 2>\u002Fdev\u002Fnull || git check-ignore -q worktrees 2>\u002Fdev\u002Fnull\n```\n\n**If NOT ignored:**\n\nPer Jesse's rule \"Fix broken things immediately\":\n1. Add appropriate line to .gitignore\n2. Commit the change\n3. Proceed with worktree creation\n\n**Why critical:** Prevents accidentally committing worktree contents to repository.\n\n### For Global Directory (~\u002F.config\u002Fsuperpowers\u002Fworktrees)\n\nNo .gitignore verification needed - outside project entirely.\n\n## Creation Steps\n\n### 1. Detect Project Name\n\n```bash\nproject=$(basename \"$(git rev-parse --show-toplevel)\")\n```\n\n### 2. Create Worktree\n\n```bash\n# Determine full path\ncase $LOCATION in\n  .worktrees|worktrees)\n    path=\"$LOCATION\u002F$BRANCH_NAME\"\n    ;;\n  ~\u002F.config\u002Fsuperpowers\u002Fworktrees\u002F*)\n    path=\"~\u002F.config\u002Fsuperpowers\u002Fworktrees\u002F$project\u002F$BRANCH_NAME\"\n    ;;\nesac\n\n# Create worktree with new branch\ngit worktree add \"$path\" -b \"$BRANCH_NAME\"\ncd \"$path\"\n```\n\n### 3. Run Project Setup\n\nAuto-detect and run appropriate setup:\n\n```bash\n# Node.js\nif [ -f package.json ]; then npm install; fi\n\n# Rust\nif [ -f Cargo.toml ]; then cargo build; fi\n\n# Python\nif [ -f requirements.txt ]; then pip install -r requirements.txt; fi\nif [ -f pyproject.toml ]; then poetry install; fi\n\n# Go\nif [ -f go.mod ]; then go mod download; fi\n```\n\n### 4. Verify Clean Baseline\n\nRun tests to ensure worktree starts clean:\n\n```bash\n# Examples - use project-appropriate command\nnpm test\ncargo test\npytest\ngo test .\u002F...\n```\n\n**If tests fail:** Report failures, ask whether to proceed or investigate.\n\n**If tests pass:** Report ready.\n\n### 5. Report Location\n\n```\nWorktree ready at \u003Cfull-path>\nTests passing (\u003CN> tests, 0 failures)\nReady to implement \u003Cfeature-name>\n```\n\n## Quick Reference\n\n| Situation | Action |\n|-----------|--------|\n| `.worktrees\u002F` exists | Use it (verify ignored) |\n| `worktrees\u002F` exists | Use it (verify ignored) |\n| Both exist | Use `.worktrees\u002F` |\n| Neither exists | Check CLAUDE.md → Ask user |\n| Directory not ignored | Add to .gitignore + commit |\n| Tests fail during baseline | Report failures + ask |\n| No package.json\u002FCargo.toml | Skip dependency install |\n\n## Common Mistakes\n\n### Skipping ignore verification\n\n- **Problem:** Worktree contents get tracked, pollute git status\n- **Fix:** Always use `git check-ignore` before creating project-local worktree\n\n### Assuming directory location\n\n- **Problem:** Creates inconsistency, violates project conventions\n- **Fix:** Follow priority: existing > CLAUDE.md > ask\n\n### Proceeding with failing tests\n\n- **Problem:** Can't distinguish new bugs from pre-existing issues\n- **Fix:** Report failures, get explicit permission to proceed\n\n### Hardcoding setup commands\n\n- **Problem:** Breaks on projects using different tools\n- **Fix:** Auto-detect from project files (package.json, etc.)\n\n## Example Workflow\n\n```\nYou: I'm using the using-git-worktrees skill to set up an isolated workspace.\n\n[Check .worktrees\u002F - exists]\n[Verify ignored - git check-ignore confirms .worktrees\u002F is ignored]\n[Create worktree: git worktree add .worktrees\u002Fauth -b feature\u002Fauth]\n[Run npm install]\n[Run npm test - 47 passing]\n\nWorktree ready at \u002FUsers\u002Fjesse\u002Fmyproject\u002F.worktrees\u002Fauth\nTests passing (47 tests, 0 failures)\nReady to implement auth feature\n```\n\n## Red Flags\n\n**Never:**\n- Create worktree without verifying it's ignored (project-local)\n- Skip baseline test verification\n- Proceed with failing tests without asking\n- Assume directory location when ambiguous\n- Skip CLAUDE.md check\n\n**Always:**\n- Follow directory priority: existing > CLAUDE.md > ask\n- Verify directory is ignored for project-local\n- Auto-detect and run project setup\n- Verify clean test baseline\n\n## Integration\n\n**Called by:**\n- **brainstorming** (Phase 4) - REQUIRED when design is approved and implementation follows\n- **subagent-driven-development** - REQUIRED before executing any tasks\n- **executing-plans** - REQUIRED before executing any tasks\n- Any skill needing isolated workspace\n\n**Pairs with:**\n- **finishing-a-development-branch** - REQUIRED for cleanup after work complete\n",{"name":5,"description":7},"main","c06eba56f283919a52c239cebc4bfab12b55b801",".opencode\u002Fskills\u002Fusing-git-worktrees",0,"https:\u002F\u002Fgithub.com\u002Fnedaktov-ops\u002FStenoMD","https:\u002F\u002Fgithub.com\u002Fnedaktov-ops","2026-04-29 00:24:34",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add nedaktov-ops\u002FStenoMD --skill using-git-worktrees",{"tool":54,"command":55},"bunx","bunx skills add nedaktov-ops\u002FStenoMD --skill using-git-worktrees",{"tool":57,"command":58},"pnpm","pnpm dlx skills add nedaktov-ops\u002FStenoMD --skill using-git-worktrees","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fnedaktov-ops\u002FStenoMD\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fusing-git-worktrees\u002FSKILL.md",true,[],[63,77,90,105,123,135],{"skillNo":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":69,"publishedAt":36},"01M71E4X513GHPM7QZXV03H9KV","status","Show MemPalace status — room counts, storage usage, and palace health.","https:\u002F\u002Fgithub.com\u002Fnedaktov-ops\u002FStenoMD\u002Fblob\u002Fmain\u002Fknowledge_graph\u002F.codex-plugin\u002Fskills\u002Fstatus\u002FSKILL.md",[],[65,70,71,72,73,74,75,76],"read","storage","Bash","show","mempalace","usage","health",{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":36},"01M71E4V12G9Z9YCDZB49C8VHF","search","Search your MemPalace — semantic search across all mined memories, projects, and conversations.","https:\u002F\u002Fgithub.com\u002Fnedaktov-ops\u002FStenoMD\u002Fblob\u002Fmain\u002Fknowledge_graph\u002F.codex-plugin\u002Fskills\u002Fsearch\u002FSKILL.md",[],[79,70,84,85,86,72,87,74,88,89],"across","semantic search","semantic","conversations","memories","projects",{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":36},"01M71E4RQ58GXRK2E41SQWZHQN","scrape-senat","Scrape Romanian Senate (senat.ro) for senate sessions, senator profiles, and legislation. Use when user says \"scrape senate\", \"senat.ro\", \"senate sessions\".","https:\u002F\u002Fgithub.com\u002Fnedaktov-ops\u002FStenoMD\u002Fblob\u002Fmain\u002Fknowledge_graph\u002F.codex-plugin\u002Fskills\u002Fscrape-senat\u002FSKILL.md",[],[97,98,99,70,100,101,102,26,34,103,104,72],"scrape","scrape senat","for","write","profiles","sessions","task","user",{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":36},"01M71E4P57QERC9NPJNZTBCT77","scrape-parliament","Complete parliamentary data scrape - scrapes both cdep.ro and senat.ro, processes data, updates knowledge graph. Use when user says \"scrape parliament\", \"update parliament data\", \"refresh parliamentary knowledge\", \"full scrape\".","https:\u002F\u002Fgithub.com\u002Fnedaktov-ops\u002FStenoMD\u002Fblob\u002Fmain\u002Fknowledge_graph\u002F.codex-plugin\u002Fskills\u002Fscrape-parliament\u002FSKILL.md",[],[97,112,113,104,114,115,116,117,118,119,72,120,34,26,121,122,103],"scrape parliament","full","processes","data","graph","update","refresh","knowledge graph","updates","knowledge","complete",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"publishedAt":36},"01M71E4KNE915MJT5QVPFMVFSA","scrape-cdep","Scrape Romanian Chamber of Deputies (cdep.ro) for parliamentary transcripts, MP profiles, and session data. Use when user says \"scrape cdep\", \"chamber deputies\", \"parliamentary sessions\", \"update parliament data\".","https:\u002F\u002Fgithub.com\u002Fnedaktov-ops\u002FStenoMD\u002Fblob\u002Fmain\u002Fknowledge_graph\u002F.codex-plugin\u002Fskills\u002Fscrape-cdep\u002FSKILL.md",[],[130,97,131,132,99,101,133,104,134,115,100,70,117,103,72,34,26,102],"scrape cdep","session","chamber","mp","transcripts",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":141,"publishedAt":36},"01M71E4HWY057QBGRN7EN5W9VC","parliament-query","Query the complete parliamentary knowledge graph - MPs, sessions, laws, debates. Use when user asks \"who said\", \"what law\", \"when session\", \"parliamentary data\", \"find mp\".","https:\u002F\u002Fgithub.com\u002Fnedaktov-ops\u002FStenoMD\u002Fblob\u002Fmain\u002Fknowledge_graph\u002F.codex-plugin\u002Fskills\u002Fparliament-query\u002FSKILL.md",[],[142,143,144,116,104,115,133,145,70,119,72,34,26,121,102,131,122],"parliament query","query","find","grep"]