Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
47bf7cd
設定: setting.local.jsonをgit対象外に追加
kiyotis Jan 22, 2026
cbde3b6
NTFコンテキスト: テストの基礎を追加
kiyotis Jan 22, 2026
dac1f33
Claude Code拡張: workスキルを追加
kiyotis Jan 22, 2026
94ced4f
Claude Code拡張: 通知機能を追加
kiyotis Jan 22, 2026
b6027a3
作業管理: Git履歴整理作業を完了
kiyotis Jan 22, 2026
360faf1
NTFコンテキスト: テストの基礎ドキュメントを改善 (#2)
kiyotis Jan 23, 2026
a34da8a
作業管理: テスト基礎ドキュメント更新作業を完了
kiyotis Jan 23, 2026
7c8c9ff
NTFコンテキスト: 5.3 リクエスト単体テスト(Batch)を追加 (#3)
kiyotis Jan 23, 2026
7241593
NTFコンテキスト: データベーステスト (5.4) を追加 (#5)
kiyotis Jan 23, 2026
09cef9d
NTFコンテキスト: 5.8ファイル処理テストを追加 (#4)
kiyotis Jan 26, 2026
7863bc5
作業管理: 5.8ファイル処理テストコンテキスト作成を完了
kiyotis Jan 26, 2026
fe1923f
context/README.md: 全セクションの見出しをリンク化 (#6)
kiyotis Jan 26, 2026
a8a5246
NTFコンテキスト: 5.4にsetUpDbシートの説明を追加 (#8)
kiyotis Jan 27, 2026
17cd83b
作業管理: setUpDbシート追加作業を完了
kiyotis Jan 27, 2026
c59bf0b
作業管理: リモートブランチ削除を記録
kiyotis Jan 27, 2026
7be631e
workスキル: 承認フローと固定チェックリストを追加 (#9)
kiyotis Jan 29, 2026
e434d2e
作業管理: workスキル承認フロー改善を完了
kiyotis Jan 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .claude/hooks/notify-stop.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/bash

# プロジェクト名を取得
PROJECT_NAME=$(basename "$CLAUDE_PROJECT_DIR")

# ブランチ名を取得
BRANCH_NAME=$(git -C "$CLAUDE_PROJECT_DIR" branch --show-current 2>/dev/null || echo "unknown")

# PowerShell通知を実行
powershell.exe -Command "
Add-Type -AssemblyName System.Windows.Forms;
Add-Type -AssemblyName System.Drawing;
\$notification = New-Object System.Windows.Forms.NotifyIcon;
\$notification.Icon = [System.Drawing.SystemIcons]::Information;
\$notification.BalloonTipTitle = 'Claude Code - $PROJECT_NAME';
\$notification.BalloonTipText = '$BRANCH_NAME: Ready!';
\$notification.Visible = \$true;
\$notification.ShowBalloonTip(5000);
Start-Sleep -Seconds 5;
\$notification.Dispose()
"
47 changes: 47 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
{
"permissions": {
"allow": [
"Write",
"WebFetch(domain:fintan.jp)",
"WebFetch(domain:nablarch.github.io)",
"Bash(git worktree:*)",
"Bash(git add:*)",
"Bash(git commit:*)",
"Bash(git push)",
"Bash(git show)",
"Bash(git rev-parse:*)",
"Bash(gh api:*)",
"Bash(gh pr view:*)",
"Bash(gh pr list:*)",
"Bash(gh pr comment:*)",
"Bash(gh pr ready:*)",
"Bash(gh pr review:*)",
"Bash(gh pr create:*)",
"Bash(gh pr edit:*)"
]
},
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "bash .claude/hooks/notify-stop.sh",
"timeout": 10
}
]
}
],
"Notification": [
{
"hooks": [
{
"type": "command",
"command": "bash .claude/hooks/notify-stop.sh",
"timeout": 10
}
]
}
]
}
}
114 changes: 114 additions & 0 deletions .claude/skills/resolve-pr/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
---
name: resolve-pr
description: PRのunresolvedなレビューコメントに対応する。修正→コミット→コミットリンク付きリプライを実行。「PRレビュー対応して」「レビューコメント直して」「PR 123 のフィードバック対応」などで使用。gh CLI必須。
context: fork
allowed-tools: Bash, Read, Edit, Write, AskUserQuestion
---

# PRレビューコメント対応

## 前提条件

gh CLI認証を確認する:
```bash
gh auth status
```
未認証なら `gh auth login` を案内して終了する。

## ワークフロー概要

1. unresolvedなレビュースレッドを取得する
2. 各スレッド: 分析 → 修正 → コミット → プッシュ → リプライ
3. PRリンク付きサマリーを出力する

※ resolveはレビュアーが行う

## Step 1: 入力

`$ARGUMENTS`からPR番号を取得する。空ならユーザーに確認する。

リポジトリ情報を取得する:
```bash
gh repo view --json owner,name -q '.owner.login + "/" + .name'
```

## Step 2: unresolvedスレッド取得

`scripts/get-unresolved-threads.sh`を実行する:
```bash
bash scripts/get-unresolved-threads.sh {owner} {repo} {pr_number}
```

空なら「すべてのレビューコメントが解決済みです」と報告して終了する。

## Step 3: 各スレッドを処理

### 3a. 分析
- コメント本文から指摘内容を理解する
- Readツールで `{path}:{line}` 周辺を確認する

### 3b. 判断

| 状況 | 対応 |
|------|------|
| 修正が必要 | 3c へ |
| 不明点あり | 質問をリプライする |
| 同意できない | ユーザーに確認する |

### 3c. 修正・コミット・プッシュ

1. ファイルを修正する
2. `git add {path}`
3. `git commit -m "fix: {要約}"`
4. `git push`
5. `git rev-parse HEAD` でSHAを取得する

### 3d. リプライ

```bash
gh api --method POST \
"repos/{owner}/{repo}/pulls/{pr_number}/comments/{comment_db_id}/replies" \
-f body="修正しました ✅

**コミット**: https://github.com/{owner}/{repo}/commit/{sha}

{修正内容}

---
Co-Authored-By: Claude <noreply@anthropic.com>"
```

質問の場合:
```bash
gh api --method POST \
"repos/{owner}/{repo}/pulls/{pr_number}/comments/{comment_db_id}/replies" \
-f body="確認させてください 🤔

{質問内容}

---
Co-Authored-By: Claude <noreply@anthropic.com>"
```

## Step 4: サマリー

全スレッド処理後に出力する:
```
## PR Review対応完了

**PR**: https://github.com/{owner}/{repo}/pull/{pr_number}

### 結果
- ✅ 修正: {n}件
- ❓ 質問: {n}件

再レビューをお願いします 🙏
```

## エラー処理

| エラー | 対応 |
|--------|------|
| gh未認証 | `gh auth login` を案内して終了する |
| PR番号無効 | 正しい番号を確認する |
| プッシュ失敗 | force pushが必要か確認する |
55 changes: 55 additions & 0 deletions .claude/skills/resolve-pr/scripts/get-unresolved-threads.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#!/bin/bash
# get-unresolved-threads.sh
# Fetch unresolved PR review threads via GraphQL
# Usage: ./get-unresolved-threads.sh <owner> <repo> <pr_number>

set -e

OWNER="$1"
REPO="$2"
PR_NUMBER="$3"

if [ -z "$OWNER" ] || [ -z "$REPO" ] || [ -z "$PR_NUMBER" ]; then
echo "Usage: $0 <owner> <repo> <pr_number>" >&2
exit 1
fi

gh api graphql -f query='
query($owner: String!, $repo: String!, $number: Int!) {
repository(owner: $owner, name: $repo) {
pullRequest(number: $number) {
id
url
reviewThreads(first: 100) {
nodes {
id
isResolved
path
line
comments(first: 10) {
nodes {
id
databaseId
body
author { login }
}
}
}
}
}
}
}' -F owner="$OWNER" -F repo="$REPO" -F number="$PR_NUMBER" | jq '
.data.repository.pullRequest.reviewThreads.nodes
| map(select(.isResolved == false))
| map({
threadId: .id,
path: .path,
line: .line,
comments: .comments.nodes | map({
id: .id,
databaseId: .databaseId,
body: .body,
author: .author.login
})
})
'
108 changes: 108 additions & 0 deletions .claude/skills/work/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
---
name: work
description: Start, resume, pause, or complete long-running tasks using work management files. Use with "/work" command, or when user says "作業開始", "作業再開", "作業中断", or "作業完了".
argument-hint: [work-file-name]
disable-model-invocation: true
allowed-tools: Read, Write, Edit, Bash, AskUserQuestion
---

# 作業管理(Work Management)

`.work/`ディレクトリの作業管理ファイルを使って、長期タスクや複数セッションにまたがる作業を管理します。

## 用語

- **作業(Work)**: workスキルで管理する単位(.work/*.mdファイル1つ)
- **タスク(Task)**: 作業内の個別チェックリスト項目

詳細は [terminology.md](terminology.md) を参照してください。

## 使用タイミング

1. **作業開始** - 新しい作業を開始する
2. **作業再開** - 既存の作業を再開する
3. **作業中断** - 作業を一時停止し、成果を保護する(Git commit & push)
4. **作業完了** - 作業を終了する(完了確認 & Git commit & push)

## 実行フロー

### 1. 準備

**引数が指定されている場合**(`$ARGUMENTS`が空でない):
- 引数をファイルパスとして解釈
- Readツールでそのファイルを読み込み、作業再開処理へ

**引数がない場合**:
- `.work/`ディレクトリを確認し、既存の作業ファイル(`*.md`)を検索
- 次のステップ「作業選択」へ

### 2. 作業選択

AskUserQuestionツールで以下の選択肢を提示:
- 作業開始
- 作業再開
- 作業中断
- 作業完了

### 3. 選択に応じた処理

各処理の詳細は [workflows.md](workflows.md) を参照:

- **作業開始**: template.md使用 → ファイル作成 → **ユーザー承認** → ブランチ作成
- **作業再開**: ファイル選択 → ステータス確認 → 次のタスク確認
- **作業中断**: ヒアリング → ファイル更新 → Git commit & push
- **作業完了**: チェックリスト確認 → **PR作成・レビュー・マージ** → ブランチ削除 → ファイル更新

## 重要な原則

### ユーザー承認

**作業開始時は必ずユーザー承認を得てください:**
1. 作業ファイル作成後、Readツールで内容を読み込む
2. ファイル内容をユーザーに提示
3. 「この内容で作業を開始してよろしいですか?」と口頭確認
4. 承認が得られてから作業ブランチを作成
5. 修正が必要な場合は、修正後に再度承認を得る

### ステータスセクション優先

作業再開時は必ず**「ステータス」セクション**を確認してください。ここに全ての現在状況が集約されています:
- 最終更新日時・進捗率・フェーズ
- 作業中ファイル
- 課題・懸念事項

### チェックリスト駆動

作業計画のチェックリストに記載されているタスクを優先して実行してください。

**固定チェックリスト:**
- 全作業に共通する固定チェックリストが定義されています
- **作業開始時**: ファイル作成 → 承認 → ブランチ作成
- **作業完了時**: PR作成 → レビュー対応 → マージ → ブランチ削除
- 個別タスクはこれらの間に配置されます

### Git保護

作業中断・完了時は必ずGit commit & pushを実行し、成果を保護してください:
- **作業中断**: 未完了の変更も含めてコミット(WIP: Work In Progress)
- **作業完了**: コミット漏れがないか必ず確認

### 進捗記録

作業ログに主要な決定と変更を記録してください。次回再開時や引き継ぎに必要です。

## 作業ファイル規則

| 項目 | 内容 |
|:-----|:-----|
| **配置** | `.work/` |
| **命名** | `YYYY-MM-DD_作業名.md` |
| **日付** | 作業開始日(更新日ではない) |
| **Git管理** | 対象内(履歴追跡のため) |
| **並行作業** | 複数ファイルで並行管理可能 |

## Supporting Files

- [terminology.md](terminology.md) - 用語定義と使い分け
- [workflows.md](workflows.md) - 各処理の詳細手順
- [template.md](template.md) - 作業ファイルのテンプレート
Loading