ワンクリックで
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