Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
b9264e0
feat: add CLAUDE.md
offich May 2, 2026
c954b25
feat: add mcp json
offich May 2, 2026
d6109a3
dev: use serena
offich May 2, 2026
069af0f
dev: add CLAUDE skills
offich May 2, 2026
c4ad979
Merge pull request #43 from offich/claude/init
offich May 2, 2026
83d0727
dev: flutter 3.38.10
offich May 2, 2026
8ec5dad
Merge pull request #44 from offich/dev/flutter-version-up
offich May 2, 2026
794957c
dev: pinned at the latest
offich May 2, 2026
d56cde3
Merge pull request #45 from offich/dev/github-workflow
offich May 2, 2026
6928b61
dev: install markdownlint-cli
offich May 2, 2026
b43e499
chore: lintfix
offich May 2, 2026
188637a
dev: add docs-analysis workflow
offich May 2, 2026
18e40dd
Merge pull request #46 from offich/dev/markdown-lint
offich May 2, 2026
73429c9
dev: bump minor
offich May 2, 2026
31a4693
Merge pull request #47 from offich/dev/bump-minor
offich May 2, 2026
5df369a
dev: add create release pr
offich May 2, 2026
de435f3
Merge pull request #48 from offich/dev/create-release-pr
offich May 2, 2026
07ff755
dev: create tag and release
offich May 2, 2026
67565d9
Merge pull request #50 from offich/dev/create-tag-and-release
offich May 2, 2026
36ee744
dev: update markdownlint config
offich May 2, 2026
36b92d8
chore: lintfix
offich May 2, 2026
70fef6f
fix: fix cache path
offich May 2, 2026
7a8a35b
Merge pull request #51 from offich/dev/missing-markdownlint
offich May 2, 2026
0fe96c6
dev: install cider
offich May 2, 2026
2f8e829
docs: format CHANGELOG.md
offich May 2, 2026
b3a6f06
docs: update changelog
offich May 2, 2026
293acde
Merge pull request #52 from offich/dev/cider
offich May 2, 2026
1cbb6e9
release 0.4.0
offich May 2, 2026
c821f30
Merge pull request #53 from offich/bump-release
offich May 2, 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
63 changes: 63 additions & 0 deletions .claude/skills/create-pr/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
name: create-pr
description: GitHub PR作成コマンド
---

# GitHub PR作成コマンド

現在のブランチの変更内容を確認し、PR テンプレートに従って GitHub 上に Pull Request を作成してください。

## 実行手順

1. 現在のブランチ名とベースブランチ(通常は develop)を確認し、差分を理解してください

2. コードの変更内容を分析し、以下の情報を自動的に生成してください:
- PR タイトル(変更内容から適切なタイトルを推測)
- Description(変更内容の概要を説明)
- やったこと(実際の変更内容を箇条書きで)
- やらなかったこと/スコープ外の内容(推測できる範囲で)
- 備考・関連URL(関連する issue やドキュメントがあれば)

3. 生成した内容を私に提示し、以下の項目について確認・質問してください:
- 生成した内容に修正・追加が必要か
- その他、追加すべき情報があるか

4. 収集した情報を以下のテンプレートに当てはめて、PR本文を作成してください:

```markdown
# Description
<!--このPRがどういうものかの説明を記載してください-->
[ここに説明を記載]

# やったこと
<!--このPRで具体的に行ったことを箇条書きで明記して下さい-->
- [箇条書きで記載]

# やらなかったこと
<!--このPRで意図的にやっていないこと・スコープ外としているものを箇条書きで明記して下さい-->
- [箇条書きで記載、なければ「特になし」]

# Operation Confirmation
<!--このPRでの改修範囲を動かすために必要な操作を記載してください-->

## 事前準備・実行操作
[手順を記載]

# 備考・関連URL
[関連URLまたは「特になし」]
```

<!-- markdownlint-disable-next-line MD029 -->
5. 作成したPR内容を私に最終確認してもらい、問題なければ以下を実行:
- 未コミットの変更があれば、対象ファイルについて、私に対して「コミット」が必要なファイルか確認してください
- 現在のブランチをリモートにプッシュ
- `mcp__github__create_pull_request` ツールを使用してPRを作成

<!-- markdownlint-disable-next-line MD029 -->
6. PR作成後、作成されたPRのURLを表示してください

## 注意事項

- ベースブランチは通常 `develop` ですが、確認してください
- PR 本文には必ず PR-Agent のコマンドを含めてください
- 必要に応じて、複数のコミットに分けることも検討してください
119 changes: 119 additions & 0 deletions .claude/skills/review-pr/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
---
name: review-pr
description: GitHub PRをコーディングガイドラインに基づいて自動レビューするコマンド
---

# 概要

Github Pull Request をコーディングガイドラインに基づいて自動レビューし、改善点を指摘するコマンド。
Github MCP を用いて PR の内容を取得し、品質憲章や各種ガイドラインに照らし合わせてレビューを実施する。

## 必須引数

- `$PR_URL`: Github Pull Request URL (例: <https://github.com/offich/sangria/pull/1>)

## 動作フロー

1. **PR 情報取得** - MCP経由でPullRequestの基本情報を取得
2. **変更ファイル取得** - 変更されたファイルの一覧とdiffを取得
3. **コード解析** - 各ファイルの変更内容を解析
4. **ガイドライン照合** - コード品質憲章、DB設計ガイドライン等と照合
5. **レビューコメント生成** - 改善点・指摘事項をまとめる
6. **レビュー投稿** - GitHub上にレビューコメントを投稿

### 🔍 基本チェック項目

- **命名規則の遵守**
- 変数・関数・クラス名が意図を明確に表現しているか
<!-- - ユビキタス言語を使用しているか -->
- 日本語のローマ字変換を避けているか

- **CLEANなコード**
- 凝集度(Cohesion)が高いか
- 疎結合(Loose Coupling)になっているか
- 適切にカプセル化されているか
- 抽象化のレベルが適切か
- 冗長性がないか(DRY原則)
- **関数・クラス設計**
- 単一責任の原則を守っているか
- 引数の数が適切か
- フラグ引数を使っていないか

### 📝 コメント・ドキュメント

- コメントよりコードで表現されているか
- 必要なコメントは背景・理由を説明しているか
- テーブル・カラムにコメントが記載されているか

### 🧪 テスト

- テストコードが追加・修正されているか
- F.I.R.S.Tなテストになっているか
- Fast(高速)
- Independent(独立)
- Repeatable(再現性)
- Self-Validating(自己検証)
- Timely(適時性)

## プロダクト構成とドキュメント

PR の diff 箇所に合わせて、下記を参照してください。

### 📋 ガイドライン

- **レビューガイドライン**: `docs/dev/review-guideline.md`

## レビューお作法

- Github MCPを通じてレビューを行うこと
- `mcp__github__pull_request_review_write` で pending review を作成
- `mcp__github__add_comment_to_pending_review` を用いてファイル、行指定で該当箇所にコメントを入れていくこと
- 一通りのコメントを終えたタイミングで、 `submit_pending_pull_request_review` を用いてレビュー送信すること
- すでにインラインでPR作成車によってコメントがされている箇所がある場合、そのコメントに対して反応すること
- いずれの場合も、「Claude Code によるコメント」である旨を明記すること

### `submit_pending_pull_request_review` 時のテンプレート

```text
## 📋 コードレビュー結果

### ✅ 良い点
-

### ⚠️ 改善提案
-

### 🚨 必須修正項目
-

### 📚 参考ドキュメント
- [レビューガイドライン](docs/dev/review-guideline.md)

*Generated by Claude Code with `/review-pr` command*
```

## エラーハンドリング

- **PR が存在しない場合**: エラーメッセージを表示し、PR番号の確認を促す
- **アクセス権限がない場合**: 権限設定の確認を促す
- **ネットワークエラー**: リトライまたは手動でのレビューを促す
- **差分が大きすぎる場合**: 重要な変更に絞ってレビューを実施

## 使用例

### 基本的な使用方法

```bash
/review:review-pr https://github.com/offich/sangria/pull/10
```

- PRの変更内容を取得
- コーディングガイドラインに基づいてレビュー
- 改善点をGitHubにコメント投稿

## 注意事項

- レビューは自動生成の提案であり、最終的な判断は人間が行うこと
- ビジネスロジックの妥当性は判断できないため、技術的な観点のみレビュー
- 大規模なPRの場合、重要度の高い指摘に絞ってコメント
- 既存コードのスタイルに合わせることを優先
2 changes: 1 addition & 1 deletion .fvmrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"flutter": "3.29.1"
"flutter": "3.38.10"
}
9 changes: 9 additions & 0 deletions .github/templates/git-pr-release.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
【Production Release】<%= Time.now.strftime('%Y-%m-%d %H:%M') %>

## Description
Distribute DevTool extension :rocket:

## Target PR
<% pull_requests.each do |pr| -%>
- #<%= pr.number %> by <%= pr.mention %>
<% end -%>
16 changes: 8 additions & 8 deletions .github/workflows/code-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,25 +19,25 @@ jobs:
timeout-minutes: 10

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 1

- name: make ssh directory
run: |
mkdir -p $HOME/.ssh/

- uses: kuhnroyal/flutter-fvm-config-action@v2
- uses: kuhnroyal/flutter-fvm-config-action@c378498f1d1962d33039c3989411093ef8a17b2c # v3.3
id: fvm-config-action

- uses: subosito/flutter-action@v2.18.0
- uses: subosito/flutter-action@1a449444c387b1966244ae4d4f8c696479add0b2 # v2.23.0
with:
channel: ${{ steps.fvm-config-action.outputs.FLUTTER_CHANNEL }}
flutter-version: ${{ steps.fvm-config-action.outputs.FLUTTER_VERSION }}
cache: true

- name: restore pubspec dependencies cache
uses: actions/cache@v4
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
id: pubspec_cache_id
with:
path: |
Expand All @@ -58,21 +58,21 @@ jobs:
needs: setup

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 1

- uses: kuhnroyal/flutter-fvm-config-action@v3
- uses: kuhnroyal/flutter-fvm-config-action@c378498f1d1962d33039c3989411093ef8a17b2c # v3.3
id: fvm-config-action

- uses: subosito/flutter-action@v2.18.0
- uses: subosito/flutter-action@1a449444c387b1966244ae4d4f8c696479add0b2 # v2.23.0
with:
channel: ${{ steps.fvm-config-action.outputs.FLUTTER_CHANNEL }}
flutter-version: ${{ steps.fvm-config-action.outputs.FLUTTER_VERSION }}
cache: true

- name: restore pubspec dependencies cache
uses: actions/cache@v4
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
id: pubspec_cache_id
with:
path: |
Expand Down
33 changes: 33 additions & 0 deletions .github/workflows/create-release-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Create Production Release PR

on:
push:
branches: [develop]

permissions:
contents: read
pull-requests: write

jobs:
release-pull-request:
runs-on: ubuntu-latest
steps:
- name: Checkout Branch
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Setup Ruby
uses: ruby/setup-ruby@3ff19f5e2baf30647122352b96108b1fbe250c64 # v1.299.0
with:
ruby-version: 3.3
bundler-cache: true

- run: gem install --no-document git-pr-release

- run: git-pr-release
env:
GIT_PR_RELEASE_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GIT_PR_RELEASE_BRANCH_PRODUCTION: release
GIT_PR_RELEASE_BRANCH_STAGING: develop
GIT_PR_RELEASE_LABELS: release
GIT_PR_RELEASE_TEMPLATE: .github/templates/git-pr-release.erb
TZ: Asia/Tokyo
51 changes: 51 additions & 0 deletions .github/workflows/docs-analysis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: 'docs-analysis'

on:
push:
paths:
- 'CHANGELOG.md'
- '.claude/**/*.md'
- 'docs/**/*.md'
- 'package.json'
- 'pnpm-lock.yaml'
- '.markdownlint-cli2.yaml'
- '.github/workflows/docs-analysis.yml'

branches-ignore:
- release

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
lint-markdown:
runs-on: ubuntu-24.04
timeout-minutes: 10

steps:
- name: checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 1

- uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1

- uses: pnpm/action-setup@b307475762933b98ed359c036b0e51f26b63b74b # v5.0.0

- name: get pnpm store path
id: pnpm-store
run: echo "path=$(pnpm store path)" >> $GITHUB_OUTPUT

- uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
id: pnpm-cache
with:
path: './node_modules'
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}

- name: install dependencies
if: steps.pnpm-cache.outputs.cache-hit != 'true'
run: pnpm install

- name: lint markdown
run: pnpm run lint:markdown
Loading