plugins/cp/skills/cp/SKILL.md
Commit and push in one step. Use when user says "/cp", "commit and push", "커밋하고 푸시", "커밋 푸시", "변경사항 올려줘", or wants to stage, commit, and push changes in a single action. Optionally accepts a commit message as argument. Not for creating, reviewing, or merging pull requests — commit and push only.
npx skillsauth add october-academy/agent-plugins cpInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Streamlined git workflow: stage, commit, and push in one command. Does not create, review, or merge pull requests — for those, use a different skill.
/cp # Auto-generate commit message
/cp "fix: resolve bug" # Use provided message
<current-branch> anywhere below means the output of git branch --show-current.
git branch --show-current
If the result is main, master, or otherwise matches the remote's default
branch (origin/HEAD), stop and ask the user to confirm before doing
anything else. Do not commit or push to a protected branch without explicit
confirmation.
git status # See all changes
git diff # Unstaged changes
git log -5 # Recent commits — also check trailer conventions (used in step 4)
Prefer specific files over git add -A:
git add src/component.tsx src/utils.ts
Never stage:
.env filesSecret scan — after staging, check what's actually going into the commit:
git diff --staged | grep -iEn "(api[_-]?key|secret|password|passwd|token)[a-z0-9_-]*[\"']?[[:space:]]*[:=][[:space:]]*[\"']?[a-z0-9_/+.-]{6,}|ghp_[a-z0-9]{20,}|github_pat_[a-z0-9_]{20,}|(^|[^a-z0-9])sk-[a-z0-9-]{16,}|AKIA[0-9A-Z]{16}|xox[baprs]-[a-z0-9-]+|BEGIN (RSA|EC|OPENSSH|PGP) PRIVATE KEY"
The pattern matches assignment context (KEY=value, key: value, JSON pairs) with a 6+ char value, well-known token prefixes (GitHub ghp_/github_pat_, OpenAI sk-, AWS AKIA, Slack xox*), and private key blocks — prose like "password reset guide" or identifiers like tokenizer don't trip it. If this matches anything, stop and confirm with the user before committing.
Base the message on what's actually staged, not the full working tree:
git diff --staged
Follow Conventional Commits:
| Prefix | Use Case |
|--------|----------|
| feat: | New feature |
| fix: | Bug fix |
| docs: | Documentation |
| refactor: | Code restructuring |
| style: | Formatting (no logic change) |
| test: | Adding tests |
| chore: | Maintenance tasks |
Trailers: only add a trailer like Co-Authored-By: Claude <[email protected]>
if git log -5 (step 2) shows the repo already uses that convention on recent
commits. Don't insert it unconditionally.
Use HEREDOC for proper formatting:
git commit -m "$(cat <<'EOF'
type: concise description
Optional body with more details.
EOF
)"
Include the Co-Authored-By trailer (or any other trailer) only per the
convention check in step 4.
git push origin <current-branch>
If upstream not set:
git push -u origin <current-branch>
If this is rejected, see Push Rejected Recovery below.
If git push is rejected (non-fast-forward), never run a bare git pull —
it can silently create a merge commit or, on a rebase-configured branch,
rewrite history in a way that's hard to walk back. Instead:
git fetchgit status -sb
git log HEAD..@{u} --oneline # commits on the remote you don't have
git log @{u}..HEAD --oneline # commits you have that the remote doesn't
git status -sb
shows behind N with no ahead): run git pull --ff-only, then retry the push.git status -sb shows both ahead and behind, both log
commands above are non-empty): do not merge or rebase automatically.
Report the situation to the user — ahead/behind counts and the commits on
each side — and wait for instructions.| Error | Solution |
|-------|----------|
| "Nothing to commit" | No changes detected, inform user |
| "Push rejected" | Follow Push Rejected Recovery above — never bare git pull |
| "Pre-commit hook failed" | Fix issues, stage again, create NEW commit |
development
This skill should be used when the user's request or requirement is ambiguous and needs an iterative interview to become actionable — vague feature requests ("add notifications"), incomplete bug reports ("the export is broken"), underspecified tasks and migrations ("make it faster", "convert this to TypeScript"), or any build request the user hasn't fully thought through. Trigger on "clarify requirements", "refine requirements", "요구사항 명확히", "요구사항 정리", "요구사항 인터뷰", "인터뷰해줘", "interview me", "ask me questions before building", "make this clearer", "spec this out", "scope this", "/clarify:interview". Turns vague inputs into concrete specs and surfaces considerations the user hasn't thought of. For strategy blind spots use unknown; for content-vs-form reframing use metamedium.
data-ai
블로그 초안/최종 원고를 빠르게 보수 윤문하는 병렬 strict 워크플로. humanize-korean --strict의 검증 분리(fidelity, naturalness, 잔존 S1/S2 탐지)는 유지하면서 청크 병렬화로 속도를 줄인다. 트리거: "블로그 최종 윤문", "윤문 빠르게", "blog-humanize-fast", "humanize-korean strict 너무 느려", "병렬 strict 윤문", "AI 티 줄이되 의미는 건드리지 마", "최종 교열 후 윤문". 아닌 것(negative scope): 초안 대필·내용 추가/삭제·사실 수정이 아니다 — 문체·리듬·표현만 의미 불변으로 손본다. 라우팅: 새 글 집필은 blog-prep, 더 깊은 검증·낮은 등급 재검증이 필요하면 humanize-korean --strict, 맞춤법·오탈자만이면 직접 교정으로 보낸다.
tools
Reddit, HN, GitHub, RSS, npm, Bluesky, Mastodon, 한국 커뮤니티까지 어제~오늘 뜨는 빌더/AI/오픈소스 시그널을 수집하고 Threads 포스트용으로 큐레이션. GitHub는 gh CLI 우선, 없으면 공개 REST API로 폴백. '지금 뜨는 것'을 넓게 스캔해 후보를 뽑는 큐레이션 전용 스킬이다. 특정 주제를 다각도로 파고드는 심층 리서치는 이 스킬이 아니라 deep-research(다중 소스 fact-check 리포트)·last30days(한 주제의 최근 30일 여론) 영역이다. 트리거: '트렌드', '인기글', 'trend scout', '쓰레드 리서치', 'threads 소재', '오늘 뭐 올리지', '콘텐츠 소재', 'reddit 인기글', 'HN 인기글', '깃허브 트렌드', '오픈소스 소재', '해커뉴스', '트렌드 스카우트', 'github trending', 'what is hot on hacker news', 'open source radar', 'reddit trending', 'trending packages', 'daily tech digest', 'tech news today', 'developer trends'. /trend-scout로 실행.
content-media
This skill should be used when the user's request or requirement is ambiguous and needs iterative questioning to become actionable. Trigger on "clarify requirements", "refine requirements", "요구사항 명확히", "요구사항 정리", "make this clearer", "spec this out", "scope this", "/clarify". Turns vague inputs into concrete specs. For strategy blind spots use unknown; for content-vs-form reframing use metamedium.