1natsu-create-pr — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited 1natsu-create-pr (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Conventional Commitsフォーマットと構造化されたdescriptionで高品質なGitHub PRを作成する。
意味のあるPRを書くために必要な情報をすべて収集する。最新のコミットだけでなく、マージベースからのすべてのコミットを分析する。
#### ベースブランチの自動解決
PRのマージ先(ベースブランチ)は以下の優先順位で決定する。featブランチを直接mainにマージするのではなく、Epicブランチ(機能集積ブランチ)に合流させるワークフローに対応するため、ブランチ名の階層構造を活用する。
1. スラッシュネストによる親ブランチ推論(優先)
現在のブランチ名にスラッシュが2つ以上含まれる場合(= 階層がネストしている場合)、末尾のセグメントを1つずつ除去しながら、リモートに存在する親ブランチを探す。
例: epic/hoge-1234/feat/auth
→ "epic/hoge-1234/feat" が origin に存在する? → No
→ "epic/hoge-1234" が origin に存在する? → Yes → ベースブランチ決定CURRENT_BRANCH=$(git branch --show-current)
BASE_BRANCH=""
# スラッシュが2つ以上あれば親ブランチを探索
SLASH_COUNT=$(echo "$CURRENT_BRANCH" | tr -cd '/' | wc -c | tr -d ' ')
if [ "$SLASH_COUNT" -ge 2 ]; then
CANDIDATE="$CURRENT_BRANCH"
while [ "$SLASH_COUNT" -ge 1 ]; do
CANDIDATE=$(echo "$CANDIDATE" | sed 's|/[^/]*$||')
if git show-ref --verify --quiet "refs/remotes/origin/$CANDIDATE"; then
BASE_BRANCH="$CANDIDATE"
break
fi
SLASH_COUNT=$(echo "$CANDIDATE" | tr -cd '/' | wc -c | tr -d ' ')
done
fi2. Git設定によるフォールバック(スラッシュネストなし or 親が見つからない場合)
if [ -z "$BASE_BRANCH" ]; then
# 追跡ブランチの設定を確認
TRACKING=$(git config "branch.$CURRENT_BRANCH.merge" 2>/dev/null | sed 's|^refs/heads/||')
if [ -n "$TRACKING" ] && [ "$TRACKING" != "$CURRENT_BRANCH" ]; then
BASE_BRANCH="$TRACKING"
else
# リポジトリのデフォルトブランチにフォールバック
BASE_BRANCH=$(git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@')
fi
fi#### 変更の収集
MERGE_BASE=$(git merge-base "origin/$BASE_BRANCH" HEAD)
# 並列実行
git status &
git diff --cached &
git log --oneline "$MERGE_BASE..HEAD" &
git diff --stat "$MERGE_BASE..HEAD" &
wait解決した BASE_BRANCH はステップ6の gh pr create で --base オプションに指定する。
以下の優先順位で言語を決定する:
$ARGUMENTS)で指定された言語コードen(英語)使用例:
/1natsu-create-pr → 英語(デフォルト)/1natsu-create-pr ja → 日本語/1natsu-create-pr en → 英語(明示指定)対応言語:
en — English(Summary, Test plan)ja — Japanese(概要, テスト計画)一貫性を保つ — 1つのPR内で言語を混ぜない。
Conventional Commits フォーマットに従う(タイプやdescriptionの詳細ルールは 1natsu-conventional-commits スキルを参照):
<type>(<scope>): <description>例:
feat(auth): add OAuth2 authentication
fix(api): resolve timeout on large requests
docs(readme): update installation instructions
refactor(db): extract query builder into module基本構成:
## Summary
- 変更の簡潔な説明(1-3箇条書き)
- whatとwhyに焦点を当て、howには触れない
## Test plan
- [ ] テストケース1
- [ ] テストケース2
- [ ] リグレッションがないことを確認複雑なPRでは必要に応じてセクションを追加:
## Summary
- 主な変更点
## Background
コンテキストや動機
## Implementation Details
アプローチの概要
## Test plan
- [ ] テスト重要な原則:
.github/pull_request_template.md が存在する場合:
gh pr create --draft --base "$BASE_BRANCH" --title "feat(scope): description" --body "$(cat <<'EOF'
## Summary
- Changes
## Test plan
- [ ] Tests
EOF
)"重要:
--draft フラグを使用する--base にステップ1で解決した BASE_BRANCH を指定するcat <<'EOF')を使うgit push -u origin <branch> でpushする## Summary
- Add user authentication with OAuth2
- Implement token refresh mechanism
## Test plan
- [ ] Test OAuth2 login flow
- [ ] Test token refresh
- [ ] Verify error handling## 概要
- OAuth2によるユーザー認証を追加
- トークンリフレッシュ機能を実装
## テスト計画
- [ ] OAuth2ログインフローのテスト
- [ ] トークンリフレッシュのテスト
- [ ] エラーハンドリングの確認| 間違い | 修正 |
|---|---|
リモートにpushせずに gh pr create する | 先に git push -u origin <branch> を実行する |
| ベースブランチを常にmain/developにする | ステップ1の自動解決ロジックに従い、Epicブランチ等の親ブランチを正しく特定する |
--base を指定しない | 自動解決した BASE_BRANCH を必ず --base で明示する |
| タイトルに絵文字を使う | 絵文字は使わない |
Add new feature(タイプなし) | feat: add new feature |
| 最新のコミットだけを分析 | マージベースからのすべてのコミットを分析 |
| 曖昧な説明 | whatとwhyを具体的に書く |
| 言語の混在 | PR内で一貫した言語を使う |
各種シナリオ(機能追加、バグ修正、リファクタリング、セキュリティ修正、破壊的変更)のPR descriptionテンプレート(英語・日本語)は references/pr-templates.md を参照。
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.