소스 정보
- 저장소
- theyoungastronauts/polaris
- 최근 소스 활동
- 2026년 7월 3일 23:05
- 감지된 SKILL.md 언어
- 영어
- 스타
- 4
- 포크
- 1
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/theyoungastronauts/polaris --skill worktrees명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
SOC 직업 분류 기준
| name | worktrees |
| description | Set up git worktrees for working on multiple independent features in parallel. |
| disable-model-invocation | true |
Inspired by obra/superpowers, adapted for feature-based workflow.
Git worktrees let you have multiple branches checked out simultaneously in separate directories. Each worktree is a full working copy with its own branch, dependencies, and state.
Before creating any worktrees, verify the source branch is clean:
# Ensure we're on the base branch (usually main or develop)
git checkout main
git pull origin main
# Verify clean working tree
git status --porcelain
# If not clean: stash or commit before proceeding
Worktrees are created as sibling directories to the repo within the project root. Example with two features in flight:
~/prj/my-project/
api/ # git repo (main branch)
api-notifications/ # worktree (feature/notifications branch)
api-billing/ # worktree (feature/billing branch)
web/ # git repo (main branch)
web-notifications/ # worktree (feature/notifications branch)
Naming convention: {repo-name}-{feature-name} for clarity.
# From the repo root
REPO_NAME=$(basename $(pwd))
FEATURE="notifications"
git worktree add "../${REPO_NAME}-${FEATURE}" -b "feature/${FEATURE}"
After creating a worktree, detect the project type and install dependencies:
cd "../${REPO_NAME}-${FEATURE}"
# Python
if [ -f "pyproject.toml" ]; then
poetry install 2>/dev/null || pip install -e ".[dev]" 2>/dev/null
elif [ -f "requirements.txt" ]; then
pip install -r requirements.txt
fi
# Node.js
if [ -f "package-lock.json" ]; then
npm ci
elif [ -f "yarn.lock" ]; then
yarn install --frozen-lockfile
elif [ -f "pnpm-lock.yaml" ]; then
pnpm install --frozen-lockfile
elif [ -f "package.json" ]; then
npm install
fi
# Flutter/Dart
if [ -f "pubspec.yaml" ]; then
flutter pub get
fi
Run the test suite to confirm everything passes before making changes. This is critical — if tests fail before you start, you know it's not your fault.
# Python/Django
if [ -f "pytest.ini" ] || [ -f "pyproject.toml" ]; then
pytest --tb=short -q
fi
# Node.js/Next.js
if [ -f "package.json" ]; then
npm test -- --watchAll=false 2>/dev/null || npx jest --passWithNoTests 2>/dev/null
fi
# Flutter
if [ -f "pubspec.yaml" ]; then
flutter test
fi
If tests fail: Report the failures. Ask whether to proceed anyway or investigate first. Do not silently continue with a broken baseline — that makes verification meaningless later.
If tests pass: Report readiness:
✓ Worktree ready: ../api-notifications
Branch: feature/notifications
Base: main (abc1234)
Tests: 47 passing, 0 failures
Ready for development
# From the worktree directory
polaris project --profile django-api
Generate a .code-workspace file so all active worktrees are accessible from a single VS Code window.
# From the project root (parent of repos)
PROJECT_DIR=$(pwd)
cat > "${PROJECT_DIR}/dev.code-workspace" << EOF
{
"folders": [
{ "path": "api", "name": "API (main)" },
{ "path": "api-notifications", "name": "API - Notifications" },
{ "path": "api-billing", "name": "API - Billing" },
{ "path": "web", "name": "Web (main)" },
{ "path": "web-notifications", "name": "Web - Notifications" }
],
"settings": {}
}
EOF
Only include folders that exist. Update this file as worktrees are created and removed.
Open with:
code "${PROJECT_DIR}/dev.code-workspace"
The sidebar shows each worktree as a labeled root with separate SCM panels per worktree.
Each worktree is a regular directory. Switch between them like any other project:
cd ../api-notifications # work on notifications
cd ../api-billing # switch to billing
cd ../api # back to main
Commits in a worktree happen on that worktree's branch. Normal git workflow applies:
git add .
git commit -m "feat(notifications): add push notification service"
git push origin feature/notifications
gh pr create --title "feat: add push notifications" \
--body "Implements notification service and delivery queue."
After a feature is merged and the PR is closed:
# From the main repo
git worktree remove ../api-notifications
git branch -d feature/notifications # delete local branch
git worktree prune
git worktree list
# /home/tyler/prj/my-project/api abc1234 [main]
# /home/tyler/prj/my-project/api-notifications def5678 [feature/notifications]
# /home/tyler/prj/my-project/api-billing ghi9012 [feature/billing]
For features that span both backend and frontend repos:
# From the project root (~/prj/my-project/)
cd api
git worktree add ../api-notifications -b feature/notifications
cd ../web
git worktree add ../web-notifications -b feature/notifications
Then generate a single workspace file covering both repos and their worktrees (see step 7 above).
"fatal: is already checked out" — You're trying to create a worktree for a branch that's already checked out somewhere. Use a new branch name.
Shared node_modules/venv — Each worktree has its own working directory but shares .git. Dependency directories (node_modules, .venv, build/) are per-worktree and need separate installs.
IDE confusion — Use the generated .code-workspace file to open all worktrees in a single VS Code window with proper isolation. Avoid opening worktrees individually within the same window without a workspace file.