원클릭으로
commit
Create a git commit with proper message formatting. Use when asked to commit changes, handles sandbox heredoc limitations.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Create a git commit with proper message formatting. Use when asked to commit changes, handles sandbox heredoc limitations.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Keep the Threa Pi remote-control extension in `extensions/pi-remote/` aligned with the current Pi extension API and Threa bot-runtime public API. Use when asked to update, verify, sync, or troubleshoot the Pi remote plugin, `/remote-control`, or `threa-remote.ts`.
Create a well-structured pull request with proper description, design decisions, and file changes. Use when asked to create a PR, open a PR, or submit changes for review.
Call Threa's public REST API (send/list/search/update/delete messages, list streams/users/members, search memos/attachments) with curl or a Bun script. Use when asked to post messages to a stream, seed a stream with test data, drive the API from automation, dedupe by metadata, inspect a production workspace (streams, messages, members) for troubleshooting, or otherwise hit https://staging.threa.io / https://app.threa.io endpoints with an API key. Reads from production should use the read-only prod key.
Rewrite user-facing copy (marketing pages, docs, headings, UI microcopy, READMEs, PR descriptions) to strip AI-slop and salesy tone, leaving plain, understated, factual prose. Use when asked to "deslopify", "deslop", "remove the AI slop", "make this less salesy/less AI-sounding", "make the copy plainer", or when reviewing copy for slop tells.
Run multi-perspective code review on a PR or the local branch
Write a session handover doc for the next agent picking up this line of work. Use when asked to "write a handover", "hand over", "handoff doc", or at the end of a session whose work continues in a future session.
| name | commit |
| description | Create a git commit with proper message formatting. Use when asked to commit changes, handles sandbox heredoc limitations. |
Create a git commit with a properly formatted message, working around sandbox heredoc limitations.
Determine which AI harness is in use, then detect the model:
# Harness detection
if [ -n "$OPENCODE" ]; then
HARNESS="opencode"
elif [ -n "$CODEX" ] || [ -n "$CODEX_CLI" ]; then
HARNESS="codex"
else
HARNESS="claude"
fi
echo "HARNESS=$HARNESS"
Model detection by harness:
| Harness | Detection method |
|---|---|
| OpenCode | Check the system prompt for "You are powered by the model named X" |
| Codex | Check the system prompt for model name (e.g. "ChatGPT 5.5") |
| Claude Code | Check the system prompt for model version (e.g. "Claude Opus 4.7") |
Set MODEL to the detected model name (e.g. DeepSeek V4 Pro, ChatGPT 5.5, Claude Opus 4.7).
Build the commit footer lines from $HARNESS and $MODEL:
| Harness | Generated with | Co-Authored-By |
|---|---|---|
| claude | 🤖 Generated with [Claude Code](https://claude.com/claude-code) | Co-Authored-By: $MODEL <noreply@anthropic.com> |
| codex | 🤖 Generated with [Codex](https://github.com/openai/codex) | Co-authored-by: codex <codex@users.noreply.github.com> |
| opencode | 🤖 Generated with [OpenCode](https://opencode.ai) | Co-Authored-By: $MODEL <noreply@opencode.ai> |
# See status
git status
# See staged changes
git diff --cached --stat
# See recent commits for style reference
git log --oneline -5
# Extract Linear ticket ID from branch name (if present)
git branch --show-current | grep -oiE 'thr-[0-9]+' | tr '[:lower:]' '[:upper:]'
Use .tmp/ (gitignored, no sandbox approval needed):
mkdir -p .tmp
# Single-line message
printf '%s\n' 'type: short description' > .tmp/commit-msg.txt
# Multi-line message (each line as a separate argument)
printf '%s\n' \
'type: short description' \
'' \
'- Detail 1' \
'- Detail 2' \
'' \
'🤖 Generated with [OpenCode](https://opencode.ai)' \
'' \
'Co-Authored-By: DeepSeek V4 Pro <noreply@opencode.ai>' \
> .tmp/commit-msg.txt
# Stage specific files (never use git add .)
git add path/to/file1.ts path/to/file2.ts
# Commit using the file
git commit -F .tmp/commit-msg.txt
rm -rf .tmp
Follow conventional commits with Linear ticket ID when available:
feat(THR-XX): - New featurefix(THR-XX): - Bug fixrefactor(THR-XX): - Code restructuringdocs(THR-XX): - Documentationtest(THR-XX): - Testschore(THR-XX): - MaintenanceIf no Linear ticket exists, omit the parenthetical: feat: description
The harness attribution footer is resolved dynamically per section 2 above.
Heredoc fails with "can't create temp file": This is expected in sandbox mode. Use printf approach instead.
Sandbox approval for /tmp writes:
Use .tmp/ inside the repo (already gitignored) to avoid sandbox prompts.
Special characters in message: Use single quotes to prevent shell expansion. For apostrophes, end the quote, add escaped apostrophe, restart quote:
printf '%s\n' "Don't do this" > .tmp/commit-msg.txt
Simple commit (OpenCode example):
mkdir -p .tmp
printf '%s\n' 'fix: correct typo in README' '' '🤖 Generated with [OpenCode](https://opencode.ai)' '' 'Co-Authored-By: DeepSeek V4 Pro <noreply@opencode.ai>' > .tmp/commit-msg.txt
git add README.md && git commit -F .tmp/commit-msg.txt
Multi-line commit (Codex example):
mkdir -p .tmp
printf '%s\n' \
'refactor: extract helper function' \
'' \
'- Moved validation logic to separate function' \
'- Added unit tests' \
'- Updated callers' \
'' \
'🤖 Generated with [Codex](https://github.com/openai/codex)' \
'' \
'Co-authored-by: codex <codex@users.noreply.github.com>' \
> .tmp/commit-msg.txt
git add src/utils.ts src/utils.test.ts && git commit -F .tmp/commit-msg.txt