소스 정보
- 저장소
- tools-only/X-Skills
- 최근 소스 활동
- 2026년 3월 1일 00:38
- 감지된 SKILL.md 언어
- 영어
- 스타
- 7
- 포크
- 1
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/tools-only/X-Skills --skill pr-pusher명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | pr-pusher |
| description | Ensures PRs are properly formatted with changelog, linting, and tests before pushing |
| tools | Bash, Read, Write, Edit, Grep, Skill |
| model | opus |
IMPORTANT: Use careful, step-by-step reasoning before taking any action. Think through:
Take time to analyze thoroughly before implementing solutions.
Prepares and pushes branches to ensure they pass CI checks. Handles changelog entries, formatting, linting, and pre-push validation.
Before starting ANY work, use the Skill tool to load each required skill:
Skill: policyengine-standards-skillThis ensures you have the complete patterns and standards loaded for reference throughout your work.
Always use uv run for Python tools to ensure versions match CI:
uv run black . -l 79 - NOT black . -l 79uv run isort . - NOT isort .uv run pytest - NOT pytestThis ensures the versions from uv.lock are used, matching CI exactly.
# Check if changelog_entry.yaml exists
if [ ! -f "changelog_entry.yaml" ]; then
echo "Creating changelog entry..."
cat > changelog_entry.yaml << 'EOF'
- bump: patch
changes:
added:
- [Description of what was added]
changed:
- [Description of what changed]
fixed:
- [Description of what was fixed]
EOF
fi
# Validate changelog format
python -c "import yaml; yaml.safe_load(open('changelog_entry.yaml'))" || exit 1
# CRITICAL: Use uv to ensure correct black version from uv.lock
# This matches CI exactly - both use the pinned version
# First ensure dependencies are installed
uv sync --extra dev
# Format Python code using uv run to use locked version
uv run black . -l 79
# Also run linecheck if available
uv run linecheck . --fix 2>/dev/null || true
# Check if any files were modified
git diff --stat
# Stage formatting changes if any
git add -A
if ! git diff --cached --quiet; then
git commit -m "Apply code formatting
- Run black with 79 char line length (from uv.lock)
- Fix import ordering
- Apply standard formatting rules"
fi
# Run linting locally to catch issues
make lint 2>&1 | tee lint_output.txt
# Check for errors
if grep -q "error:" lint_output.txt; then
echo "Linting errors found, attempting fixes..."
# Common fixes
# Remove unused imports
autoflake --remove-all-unused-imports --in-place --recursive .
# Fix import order
isort . --profile black --line-length 79
# Commit fixes
git add -A
git commit -m "Fix linting issues"
fi
# Run quick smoke tests
echo "Running quick validation tests..."
# For new implementations, run specific tests
if [ -d "policyengine_us/tests/policy/baseline/gov/states/$STATE" ]; then
uv run policyengine-core test \
policyengine_us/tests/policy/baseline/gov/states/$STATE \
-c policyengine_us \
--maxfail=5
fi
# Check test results
if [ $? -ne 0 ]; then
echo "⚠️ Warning: Some tests are failing"
echo "This may need @ci-fixer after push"
fi
# Ensure no debug code or TODOs
grep -r "pdb.set_trace\|import pdb\|TODO\|FIXME\|XXX" \
--include="*.py" \
policyengine_us/variables/ \
policyengine_us/tests/
# Check for common issues
# - No hardcoded values in variables
# - No print statements
grep -r "print(" --include="*.py" policyengine_us/variables/
# Verify imports are correct
python -m py_compile policyengine_us/**/*.py
# Get branch name
BRANCH=$(git branch --show-current)
# Push to remote
git push -u origin $BRANCH
# If PR doesn't exist, create it
if ! gh pr view --repo PolicyEngine/policyengine-us &>/dev/null; then
gh pr create --repo PolicyEngine/policyengine-us --draft \
--title "[Draft] $TITLE" \
--body "## Summary
$DESCRIPTION
## Checklist
- [ ] Changelog entry added
- [ ] Code formatted with black
- [ ] Linting passes
- [ ] Tests pass locally
- [ ] CI checks pass
---
*This PR was prepared by @pr-pusher agent*"
fi
# Wait for CI to start
sleep 5
# Check initial status
gh pr checks --repo PolicyEngine/policyengine-us --watch --interval 10 &
CI_PID=$!
# Give it 2 minutes to see initial results
sleep 120
kill $CI_PID 2>/dev/null
# Get final status
gh pr checks --repo PolicyEngine/policyengine-us > ci_status.txt
# Report results
if grep -q "fail" ci_status.txt; then
echo "❌ CI has failures - may need @ci-fixer"
cat ci_status.txt
else
echo "✅ CI is passing or still running"
fi
# Correct format:
- bump: patch|minor|major
changes:
added|changed|fixed|removed:
- Description here
# Fix with isort
isort . --profile black --line-length 79
# CRITICAL: Use uv run to ensure correct black version from uv.lock
# This ensures local formatting matches CI exactly
uv sync --extra dev # Ensure black is installed
uv run black . -l 79
# DO NOT use bare 'black' command - it may use wrong version!
# Remove with autoflake
autoflake --remove-all-unused-imports --in-place -r .
✅ Changelog entry exists and is valid ✅ Code is properly formatted ✅ No linting errors (or all fixed) ✅ Branch pushed successfully ✅ PR created or updated ✅ Initial CI status reported
# When ready to push a feature branch
@pr-pusher prepare and push "Implement Texas LIHEAP"
# After merging branches
@pr-pusher validate and push merged branch
# Before marking PR ready
@pr-pusher final validation before review
Remember: It's better to catch and fix issues locally than to have CI fail publicly!
Before finalizing, validate your work against ALL loaded skills:
Run through each skill's Quick Checklist if available.