Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
b50f57d
"Claude PR Assistant workflow"
ippei-shimizu Mar 27, 2026
060f122
"Claude Code Review workflow"
ippei-shimizu Mar 27, 2026
6560200
Merge pull request #185 from ippei-shimizu/add-claude-github-actions-…
ippei-shimizu Mar 27, 2026
8370d7f
Merge pull request #187 from ippei-shimizu/chore/claude-code-plugin-s…
ippei-shimizu Mar 27, 2026
62dab8e
"Claude PR Assistant workflow"
ippei-shimizu Mar 27, 2026
1467482
"Claude Code Review workflow"
ippei-shimizu Mar 27, 2026
755f27d
Merge branch 'stg' of github.com:ippei-shimizu/buzzbase into stg
ippei-shimizu Mar 31, 2026
3440835
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 2, 2026
a7a6b44
Fix: 各スキルの説明を更新し、cdコマンドの使用をgit -Cに変更
ippei-shimizu Apr 2, 2026
82f6247
Docs: App Storeレビュー促進施策の設計書を追加
ippei-shimizu Apr 2, 2026
bc8929f
Docs: App Storeレビュー促進施策の実装計画を追加
ippei-shimizu Apr 2, 2026
fbe3d50
Docs: 成績ページの設計書を追加
ippei-shimizu Apr 3, 2026
d187c52
Docs: 成績ページの実装計画を追加
ippei-shimizu Apr 3, 2026
680561f
Add market research and growth strategy report for BUZZ BASE iOS app …
ippei-shimizu Apr 3, 2026
bdbc958
Add: UI系スキルを追加しサブプロジェクトのコミットIDを更新
ippei-shimizu Apr 4, 2026
9fc04ef
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 4, 2026
840f343
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 4, 2026
5aafed3
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 4, 2026
b551d11
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 4, 2026
66207a1
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 4, 2026
86f2389
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 4, 2026
d83cbab
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 4, 2026
1e648d5
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 4, 2026
f6d965f
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 4, 2026
91f6f6b
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 4, 2026
bb94bfd
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 6, 2026
18f1a56
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 6, 2026
05a63d2
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 6, 2026
b105f5a
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 6, 2026
735f40e
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 6, 2026
0419b77
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 6, 2026
a65b71c
Remove: gstackプラグインをプロジェクトから削除
ippei-shimizu Apr 12, 2026
06c1554
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 12, 2026
94059fe
Add: モバイルアプリユーザー獲得 × SNS戦略の統合レポートを作成
ippei-shimizu Apr 12, 2026
524b3df
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 13, 2026
396d1d6
Fix: サブモジュールのコミットIDを更新し、ignore設定を削除
ippei-shimizu Apr 18, 2026
6264070
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 18, 2026
c257209
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 18, 2026
885c762
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 18, 2026
3415f97
Fix: サブプロジェクトのコミットIDを更新し、不要な設定を削除
ippei-shimizu Apr 19, 2026
7232bd0
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 21, 2026
39889c1
Add: PostToolUse hookによるリンター・フォーマッター自動実行を追加
ippei-shimizu Apr 21, 2026
b54aaee
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 21, 2026
124c1ba
Add: デフォルトブランチに切り替えてpullするスキルを追加
ippei-shimizu Apr 21, 2026
c2c5228
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 21, 2026
16340fa
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 23, 2026
4fc980e
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 25, 2026
0d5b200
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 25, 2026
b201de3
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 25, 2026
934dd5f
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 25, 2026
0a7e546
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 25, 2026
de102fb
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 27, 2026
03e9e48
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 27, 2026
14ef484
Remove outdated CSV files related to search performance data for buzz…
ippei-shimizu Apr 27, 2026
db710ec
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 27, 2026
6d4757b
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 27, 2026
37288e5
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 27, 2026
31e9656
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 29, 2026
9fe8ee9
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 29, 2026
13a5a66
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 29, 2026
064eb57
Remove: GA/SC分析データレポートを削除(MCPで都度取得するためファイル保存不要)
ippei-shimizu Apr 29, 2026
d003f95
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 29, 2026
a523366
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 29, 2026
d65d221
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 29, 2026
ab0301e
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 29, 2026
34580cd
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 29, 2026
25682d0
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 29, 2026
8d40168
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 29, 2026
48128fb
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 29, 2026
e5897dd
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu Apr 29, 2026
e2ad418
Docs: CLAUDE.md にコードコメント方針を追記
ippei-shimizu Apr 30, 2026
019736e
Add web-to-app master plan for iOS app registration strategy (2026-04)
ippei-shimizu May 9, 2026
2857a68
Chore: superpowers プラグインを無効化リストから削除
ippei-shimizu May 9, 2026
332046d
Refactor: smart-commit/create-pr/checkout-branch スキルのトークン消費を削減
ippei-shimizu May 9, 2026
18d90b2
Refactor: sync-default スキルのトークン消費を削減
ippei-shimizu May 9, 2026
5978639
Fix: サブプロジェクトのコミットIDを更新
ippei-shimizu May 9, 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
1 change: 0 additions & 1 deletion .claude/docs/plugin/installed-plugins.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,3 @@
| `commit-commands` | `smart-commit`(削除済み) | `/commit` で同等機能。CLAUDE.mdの日本語ルール優先 |
| `code-review` | — | `/create-pr` と組み合わせて使う |
| `frontend-design` | — | 既存の ui-ux-pro-max スキルと補完関係 |
| `typescript-lsp` / `ruby-lsp` | — | serena MCPと補完関係 |
46 changes: 46 additions & 0 deletions .claude/hooks/auto-lint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#!/bin/bash

# PostToolUse hook: Edit/Write 後に変更ファイルのリンター・フォーマッターを自動実行

set -e

INPUT=$(cat)
FILE=$(echo "$INPUT" | jq -r '.tool_input.file_path // empty')

if [ -z "$FILE" ] || [ "$FILE" = "null" ]; then
exit 0
fi

if [ ! -f "$FILE" ]; then
exit 0
fi

PROJECT_DIR="${CLAUDE_PROJECT_DIR:-/Users/shimizuippei/projects/dev/buzzbase}"

# front/
if [[ "$FILE" == *"/front/"* ]]; then
cd "$PROJECT_DIR/front"
npx prettier --write "$FILE" 2>/dev/null || true
npx eslint --fix "$FILE" 2>/dev/null || true
npx tsc --noEmit 2>/dev/null || true
exit 0
fi

# back/ (.rb のみ)
if [[ "$FILE" == *"/back/"* && "$FILE" == *.rb ]]; then
RELATIVE="${FILE#*back/}"
cd "$PROJECT_DIR"
docker compose exec -T back bundle exec rubocop -a "$RELATIVE" 2>/dev/null || true
exit 0
fi

# mobile/
if [[ "$FILE" == *"/mobile/"* ]]; then
cd "$PROJECT_DIR/mobile"
npx prettier --write "$FILE" 2>/dev/null || true
npx eslint --fix "$FILE" 2>/dev/null || true
npx tsc --noEmit 2>/dev/null || true
exit 0
fi

exit 0
22 changes: 19 additions & 3 deletions .claude/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,16 +35,19 @@
"Bash(head *)",
"Bash(tail *)",
"Bash(grep *)",
"Bash(cd /Users/shimizuippei/projects/dev/buzzbase*)",
"Bash(cd /Users/shimizuippei/projects/dev/buzzbase && *)",
"Bash(cd /Users/shimizuippei/projects/dev/buzzbase/back && *)",
"Bash(cd /Users/shimizuippei/projects/dev/buzzbase/back*)",
"Bash(cd /Users/shimizuippei/projects/dev/buzzbase/front && *)",
"Bash(cd /Users/shimizuippei/projects/dev/buzzbase/front*)",
"Bash(cd /Users/shimizuippei/projects/dev/buzzbase/mobile && *)",
"Bash(cd /Users/shimizuippei/projects/dev/buzzbase/mobile*)",
"Bash(ISSUE_NODE_ID=$(gh issue view * --repo ippei-shimizu/buzzbase *) && gh api graphql *)",
"Bash(gh api graphql *)",
"Bash(gh issue view *)",
"Bash(gh issue list *)",
"Bash(ls -la * 2>/dev/null)",
"mcp__serena__*"
"Bash(ls -la * 2>/dev/null)"
],
"deny": [
"Bash(curl *)",
Expand All @@ -57,8 +60,21 @@
"Bash(git merge *)"
]
},
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "\"$CLAUDE_PROJECT_DIR/.claude/hooks/auto-lint.sh\"",
"timeout": 120
}
]
}
]
},
"enabledPlugins": {
"superpowers@claude-plugins-official": true,
"claude-md-management@claude-plugins-official": true,
"feature-dev@claude-plugins-official": true,
"commit-commands@claude-plugins-official": true,
Expand Down
91 changes: 0 additions & 91 deletions .claude/skills/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,97 +79,6 @@ issue番号からgit worktreeを作成。front/backサブモジュールのworkt

---

## gstack (外部プラグイン)

Garry Tan製のClaude Codeエンジニアリングツールスイート。AIエージェントに組織的な役割を割り当て、開発プロセスを自動化する。

### 開発フロー

```
/office-hours → /plan-ceo-review → /plan-eng-review → 実装 → /review → /qa → /ship
```

### コマンド一覧

#### 企画・設計

| コマンド | 役割 | 内容 |
|----------|------|------|
| `/office-hours` | プロダクト思考家 | 要件を再考し実装案を生成 |
| `/plan-ceo-review` | CEO | スコープと製品ビジョンを評価 |
| `/plan-eng-review` | EM | アーキテクチャ設計・技術検証 |
| `/plan-design-review` | デザインレビュー | UIデザイン監査(レポートのみ) |
| `/design-review` | デザインレビュー | UIデザイン監査 + 修正ループ |
| `/design-consultation` | デザインコンサル | デザインシステムをゼロから構築 |
| `/autoplan` | 自動レビュー | CEO → デザイン → EMレビューを自動パイプライン実行 |

#### 実装・レビュー

| コマンド | 役割 | 内容 |
|----------|------|------|
| `/review` | スタッフエンジニア | コードレビューと自動修正 |
| `/cso` | セキュリティ責任者 | OWASP Top 10 / STRIDE脅威モデル分析 |
| `/investigate` | デバッガー | 体系的な根本原因分析 |

#### テスト・QA

| コマンド | 役割 | 内容 |
|----------|------|------|
| `/qa` | QAリード | ヘッドレスブラウザでテスト実行・バグ修正 |
| `/qa-only` | QAリード | テスト実行・レポートのみ(修正なし) |
| `/browse` | QAエンジニア | ヘッドレスブラウザ操作(ページ遷移、スクショ等) |
| `/benchmark` | パフォーマンス | パフォーマンスリグレッション検出 |

#### デプロイ・運用

| コマンド | 役割 | 内容 |
|----------|------|------|
| `/ship` | リリースエンジニア | テスト → PR作成 → デプロイ |
| `/land-and-deploy` | リリース | マージ → デプロイ → canary検証 |
| `/canary` | 監視 | デプロイ後の監視ループ |
| `/setup-deploy` | セットアップ | デプロイ設定の初期化 |
| `/document-release` | ドキュメント | リリース後のドキュメント更新 |

#### ユーティリティ

| コマンド | 内容 |
|----------|------|
| `/retro` | 振り返り・レトロスペクティブ |
| `/freeze` | デプロイフリーズ |
| `/unfreeze` | デプロイフリーズ解除 |
| `/careful` | 慎重モード有効化 |
| `/guard` | ガードレール有効化 |
| `/connect-chrome` | ブラウザ接続設定 |
| `/setup-browser-cookies` | ブラウザCookie設定 |
| `/gstack-upgrade` | gstack自体のアップデート |

### 使い方の例

```
# 新機能の企画から始める
/office-hours

# コードレビューを依頼
/review

# ブラウザでQAテスト
/qa

# セキュリティ監査
/cso

# PR作成からデプロイまで一気に
/ship
```

### 管理

- インストール先: `.claude/skills/gstack/`(プロジェクトローカル)
- アップデート: `/gstack-upgrade`
- `.gitignore` でリポジトリからは除外済み

---

## 自動トリガー型スキル

以下のスキルは手動呼び出し不要。対象作業時に自動で適用される。
Expand Down
86 changes: 86 additions & 0 deletions .claude/skills/app-release-notes/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
---
name: app-release-notes
description: App Store Connect / Google Playの「このバージョンの最新情報」リリースノートを自動生成する。mobile/app.jsonのexpo.versionを現在バージョンとし、前回バージョンとのGit差分からユーザー向けリリースノートを作成する。「リリースノートを作成して」「ストアの更新情報を書いて」「app-release-notes」などで起動する。
---

# App Release Notes

App Store Connect / Google Playストア向けのリリースノート(「このバージョンの最新情報」)を自動生成する。

## ワークフロー

### 1. バージョン情報を取得

`mobile/app.json`を読み、`expo.version`を現在のリリースバージョンとして取得する。

### 2. 前回バージョンのコミットを特定

mobileサブモジュール内でバージョン更新コミットを検索する:

```bash
cd mobile
git log --oneline --all --grep="<前回バージョン番号>"
```

バージョン番号はセマンティックバージョニング(例: 1.0.4 → 1.0.5)で管理されているため、現在バージョンの1つ前のマイナーバージョンを検索する。

### 3. 差分コミットを取得

前回バージョン更新コミットから現在バージョン更新コミットまでのコミット一覧を取得する:

```bash
git log --oneline <前回バージョンコミットハッシュ>..<現在バージョンコミットハッシュ>
```

必要に応じてマージPRの詳細も確認する:

```bash
gh pr view <PR番号> --repo ippei-shimizu/buzzbase_mobile
```

### 4. リリースノートを生成

コミットメッセージとPR内容を分析し、以下のカテゴリに分類して日本語のリリースノートを作成する。

#### カテゴリ分類ルール

| コミットプレフィックス | カテゴリ |
|---|---|
| `Add:` | 新機能 |
| `Update:`, `Change:`, `Refactor:`, `Chore:` | 改善 |
| `Fix:` | バグ修正 |
| `Remove:` | 削除(内容に応じて改善に含めてもよい) |

#### 除外するコミット

- バージョン更新コミット(`バージョンを X から Y に更新`)
- マージコミット(`Merge pull request`)
- ビルド番号更新(`ビルド番号を更新`)
- READMEの更新
- CI/CD設定の変更
- lint/format修正のみのコミット

#### 出力フォーマット

```
【新機能】
・{ユーザーが理解できる機能説明}

【改善】
・{改善内容の説明}

【バグ修正】
・{修正内容の説明}
```

#### 文章作成ルール

- ユーザー視点で書く(技術的な内部実装の詳細は書かない)
- 「〜しました。」で統一する
- 関連する複数コミットは1つの項目にまとめる
- カテゴリに該当するコミットがない場合、そのカテゴリは省略する
- 1項目は1行で簡潔に書く

### 5. 出力

生成したリリースノートをそのままコピーして使えるようにプレーンテキストで出力する。
85 changes: 85 additions & 0 deletions .claude/skills/baseline-ui/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
---
name: baseline-ui
description: Validates animation durations, enforces typography scale, checks component accessibility, and prevents layout anti-patterns in Tailwind CSS projects. Use when building UI components, reviewing CSS utilities, styling React views, or enforcing design consistency.
---

# Baseline UI

Enforces an opinionated UI baseline to prevent AI-generated interface slop.

## How to use

- `/baseline-ui`
Apply these constraints to any UI work in this conversation.

- `/baseline-ui <file>`
Review the file against all constraints below and output:
- violations (quote the exact line/snippet)
- why it matters (1 short sentence)
- a concrete fix (code-level suggestion)

## Stack

- MUST use Tailwind CSS defaults unless custom values already exist or are explicitly requested
- MUST use `motion/react` (formerly `framer-motion`) when JavaScript animation is required
- SHOULD use `tw-animate-css` for entrance and micro-animations in Tailwind CSS
- MUST use `cn` utility (`clsx` + `tailwind-merge`) for class logic

## Components

- MUST use accessible component primitives for anything with keyboard or focus behavior (`Base UI`, `React Aria`, `Radix`)
- MUST use the project’s existing component primitives first
- NEVER mix primitive systems within the same interaction surface
- SHOULD prefer [`Base UI`](https://base-ui.com/react/components) for new primitives if compatible with the stack
- MUST add an `aria-label` to icon-only buttons
- NEVER rebuild keyboard or focus behavior by hand unless explicitly requested

## Interaction

- MUST use an `AlertDialog` for destructive or irreversible actions
- SHOULD use structural skeletons for loading states
- NEVER use `h-screen`, use `h-dvh`
- MUST respect `safe-area-inset` for fixed elements
- MUST show errors next to where the action happens
- NEVER block paste in `input` or `textarea` elements

## Animation

- NEVER add animation unless it is explicitly requested
- MUST animate only compositor props (`transform`, `opacity`)
- NEVER animate layout properties (`width`, `height`, `top`, `left`, `margin`, `padding`)
- SHOULD avoid animating paint properties (`background`, `color`) except for small, local UI (text, icons)
- SHOULD use `ease-out` on entrance
- NEVER exceed `200ms` for interaction feedback
- MUST pause looping animations when off-screen
- SHOULD respect `prefers-reduced-motion`
- NEVER introduce custom easing curves unless explicitly requested
- SHOULD avoid animating large images or full-screen surfaces

## Typography

- MUST use `text-balance` for headings and `text-pretty` for body/paragraphs
- MUST use `tabular-nums` for data
- SHOULD use `truncate` or `line-clamp` for dense UI
- NEVER modify `letter-spacing` (`tracking-*`) unless explicitly requested

## Layout

- MUST use a fixed `z-index` scale (no arbitrary `z-*`)
- SHOULD use `size-*` for square elements instead of `w-*` + `h-*`

## Performance

- NEVER animate large `blur()` or `backdrop-filter` surfaces
- NEVER apply `will-change` outside an active animation
- NEVER use `useEffect` for anything that can be expressed as render logic

## Design

- NEVER use gradients unless explicitly requested
- NEVER use purple or multicolor gradients
- NEVER use glow effects as primary affordances
- SHOULD use Tailwind CSS default shadow scale unless explicitly requested
- MUST give empty states one clear next action
- SHOULD limit accent color usage to one per view
- SHOULD use existing theme or Tailwind CSS color tokens before introducing new ones
Loading
Loading