configure-git-repository
О программе
Этот навык настраивает Git-репозиторий с языково-специфичными файлами .gitignore, стратегиями ветвления, соглашениями о коммитах и хуками. Он предоставляет шаблоны настройки для проектов на R, Node.js и Python при первоначальной конфигурации системы контроля версий. Используйте его для создания надлежащей основы Git или для добавления фреймворк-специфичных исключений и автоматизации в существующий проект.
Быстрая установка
Claude Code
Рекомендуетсяnpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/configure-git-repositoryСкопируйте и вставьте эту команду в Claude Code для установки этого навыка
Документация
Configure Git Repository
Set up Git repo w/ appropriate config for project type.
Use When
- Init version control for new project
- Add
.gitignorefor specific language/framework - Set up branch protection + conventions
- Configure commit hooks
In
- Required: Project dir
- Required: Project type (R pkg, Node.js, Python, general)
- Optional: Remote repo URL
- Optional: Branch strategy (trunk-based, Git Flow)
- Optional: Commit msg convention
Do
Step 1: Initialize Repo
cd /path/to/project
git init
git branch -M main
→ .git/ dir created. Default branch = main.
If err: git init fails → ensure Git installed (git --version). Dir already has .git/ → repo already init'd → skip step.
Step 2: Create .gitignore
R Package:
# R artifacts
.Rhistory
.RData
.Rproj.user/
*.Rproj
# Environment (sensitive)
.Renviron
# renv library (machine-specific)
renv/library/
renv/staging/
renv/cache/
# Build artifacts
*.tar.gz
src/*.o
src/*.so
src/*.dll
# Documentation build
docs/
inst/doc/
# IDE
.vscode/
.idea/
# OS
.DS_Store
Thumbs.db
Node.js/TypeScript:
node_modules/
dist/
build/
.next/
.env
.env.local
.env.*.local
*.log
npm-debug.log*
.DS_Store
Thumbs.db
.vscode/
.idea/
coverage/
Python:
__pycache__/
*.py[cod]
*.egg-info/
dist/
build/
.eggs/
.venv/
venv/
.env
*.log
.mypy_cache/
.pytest_cache/
htmlcov/
.coverage
.DS_Store
.idea/
.vscode/
→ .gitignore created w/ entries for project type. Sensitive files (.Renviron, .env) + generated artifacts excluded.
If err: Unsure which entries → use gitignore.io or GitHub's .gitignore templates as starting point, customize.
Step 3: Create Initial Commit
git add .gitignore
git add . # Review what's being added first with git status
git commit -m "Initial project setup"
→ First commit w/ .gitignore + initial project files. git log shows one commit.
If err: "Nothing to commit" → ensure files staged w/ git add. Author identity err → set git config user.name + git config user.email.
Step 4: Connect Remote
# Add remote
git remote add origin [email protected]:username/repo.git
# Push
git push -u origin main
→ Remote origin config'd. git remote -v shows fetch + push URLs. Initial commit pushed.
If err: Push fails "Permission denied (publickey)" → configure SSH keys (see setup-wsl-dev-environment). Remote already exists → update w/ git remote set-url origin <url>.
Step 5: Set Up Branch Conventions
Trunk-based (rec'd for small teams):
main: prod-ready code- Feature branches:
feature/description - Bug fixes:
fix/description
# Create feature branch
git checkout -b feature/add-authentication
# After work is done, merge or create PR
git checkout main
git merge feature/add-authentication
→ Branch naming convention established + doc'd. Team knows which prefix to use for each work type.
If err: Branches already named inconsistent → rename w/ git branch -m old-name new-name + update any open PRs.
Step 6: Configure Commit Conventions
Conventional Commits format:
type(scope): description
feat: add user authentication
fix: correct calculation in weighted_mean
docs: update README installation section
test: add edge case tests for parser
refactor: extract helper function
chore: update dependencies
→ Commit msg convention doc'd + agreed. Future commits follow type: description format.
If err: Team not following → enforce w/ commit-msg hook validating format (see Step 7).
Step 7: Set Up Pre-Commit Hooks (Optional)
Create .githooks/pre-commit:
#!/bin/bash
# Run linter before commit
# For R packages
if [ -f "DESCRIPTION" ]; then
Rscript -e "lintr::lint_package()" || exit 1
fi
# For Node.js
if [ -f "package.json" ]; then
npm run lint || exit 1
fi
chmod +x .githooks/pre-commit
git config core.hooksPath .githooks
→ Pre-commit hook runs auto on each git commit. Lint errs block commit until fixed.
If err: Hook doesn't run → valid. core.hooksPath set (git config core.hooksPath) + hook file executable (chmod +x).
Step 8: Create README
# Minimal README
echo "# Project Name" > README.md
echo "" >> README.md
echo "Brief description of the project." >> README.md
git add README.md
git commit -m "Add README"
→ README.md committed. Project has minimal but informative landing page on GitHub.
If err: README.md already exists → update vs. overwrite. R projects → use usethis::use_readme_md() for template w/ badges.
Check
-
.gitignoreexcludes sensitive + generated files - No sensitive data (tokens, passwords) in tracked files
- Remote repo connected + accessible
- Branch naming conventions doc'd
- Initial commit clean
Traps
- Commit before .gitignore: Add
.gitignorefirst. Files already tracked unaffected by later.gitignoreentries. - Sensitive data in history: Secrets committed → remain in history even after deletion. Use
git filter-repoor BFG to clean. - Large binary files: Don't commit large binaries. Use Git LFS for files > 1MB.
- Line endings: Set
core.autocrlf=inputon Windows/WSL → prevent CRLF/LF issues.
→
commit-changes- staging + committing workflowmanage-git-branches- branch creation + conventionscreate-r-package- Git setup as part of R pkg creationsetup-wsl-dev-environment- Git install + SSH keyscreate-github-release- creating releases from reposecurity-audit-codebase- check for committed secrets
GitHub репозиторий
Похожие навыки
llamaguard
ДругоеLlamaGuard — это модель от Meta с 7–8 миллиардами параметров для модерации входных и выходных данных больших языковых моделей по шести категориям безопасности, таким как насилие и разжигание ненависти. Она обеспечивает точность 94–95% и может быть развернута с помощью vLLM, Hugging Face или Amazon SageMaker. Используйте этот навык, чтобы легко интегрировать фильтрацию контента и защитные механизмы в ваши ИИ-приложения.
cost-optimization
ДругоеЭтот навык Claude помогает разработчикам оптимизировать облачные расходы за счет правильного подбора ресурсов, стратегий тегирования и анализа затрат. Он предоставляет framework для сокращения облачных расходов и внедрения управления затратами в AWS, Azure и GCP. Используйте его, когда вам нужно проанализировать расходы на инфраструктуру, оптимизировать ресурсы или уложиться в бюджетные ограничения.
quantizing-models-bitsandbytes
ДругоеЭтот навык выполняет квантизацию LLM до 8-битной или 4-битной точности с использованием библиотеки bitsandbytes, обеспечивая сокращение использования памяти на 50-75% при минимальной потере точности. Он идеально подходит для запуска больших моделей при ограниченной памяти GPU или для ускорения вывода, поддерживая форматы INT8, NF4 и FP4. Навык интегрируется с HuggingFace Transformers и позволяет использовать обучение QLoRA и 8-битные оптимизаторы.
dispatching-parallel-agents
ДругоеЭтот навык Claude распределяет нескольких агентов для исследования и устранения трёх и более независимых проблем параллельно. Он предназначен для сценариев с несвязанными сбоями, которые можно устранить без общего состояния или зависимостей. Ключевая возможность — параллельное решение проблем, где за каждую независимую предметную область назначается отдельный агент для максимальной эффективности.
