Skip to content

docs: ツールカタログ+プロジェクト別セットアップガイドを追加 - #482

Merged
keito4 merged 11 commits into
mainfrom
docs/tool-catalog
Feb 17, 2026
Merged

docs: ツールカタログ+プロジェクト別セットアップガイドを追加#482
keito4 merged 11 commits into
mainfrom
docs/tool-catalog

Conversation

@keito4

@keito4 keito4 commented Feb 17, 2026

Copy link
Copy Markdown
Owner

Summary

  • docs/tool-catalog.md: 環境×ツールのマトリクス表でツール全体像を可視化
  • docs/setup/README.md: 共通品質ゲート + プロジェクト非依存の共通パターン(CI/CD、セキュリティ、Claude Code Hooks、DevContainer、リリース管理、ファイルサイズ制約、ライブラリ自動更新)
  • docs/setup/{種別}.md × 6: プロジェクト種別ごとのセットアップ手順

共通パターン(README.md に追加)

  • CI/CD: paths-filter、concurrency、Quality Gate 集約ジョブ、PR サイズラベリング、Slack 失敗通知、actionlint
  • セキュリティ: gitleaks + dependency-review + npm-audit + license-check の 4 ジョブ構成
  • Claude Code Hooks: block_git_no_verify / pre_git_quality_gates / post_git_push_ci
  • DevContainer: ベースイメージ、共通 mounts、Features 判断基準
  • リリース管理: semantic-release 標準構成
  • ファイルサイズ制約: 500 行 / complexity 10 / max-depth 4
  • ライブラリ自動更新: schedule + create-pull-request パターン

Test plan

  • .md ファイルが Prettier フォーマット済み
  • 全ファイル 500 行以内
  • 具体的なリポジトリ名・組織名が含まれていないこと
  • docs/tool-catalog.md との整合性確認

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Added comprehensive setup guides for various project types including React+Vite SPAs, Next.js web apps, npm libraries, CLI tools, desktop extensions, Android, and Flutter mobile projects
    • Added tool catalog documentation
    • Updated setup automation command documentation with expanded workflows and configuration guidance

各リポジトリで使用するツールの全体像を可視化するため、
4レイヤー構造の整理とリポジトリ横断マトリクスを作成した。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Feb 17, 2026

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

Adds multiple new documentation files: a comprehensive tool catalog and several project-specific setup guides (desktop, mobile-android, mobile-flutter, npm-cli, SPA React/Vite, Next.js), plus updates to .claude setup commands. All changes are documentation-only; no executable code or API surface changes.

Changes

Cohort / File(s) Summary
Tool Catalog Documentation
docs/tool-catalog.md
New comprehensive catalog describing a four-layer tool management matrix, base/runtime tool lists and versions, DevContainer features, repo→tool mappings, macOS Brewfile items, VS Code extensions, and observations/recommendations.
Setup Guides (overview)
docs/setup/README.md
New project-wide quality gates matrix, prioritized action plan, project guide mappings, common commands, and baseline requirements (CLAUDE.md references).
Setup Guides (desktop)
docs/setup/desktop-extension-ts.md
New desktop extension (TypeScript) setup guide with Vitest/Raycast mocks, CI and lint-hook examples, lint-staged/Prettier notes, Claude Code workflow template, and DevContainer guidance.
Setup Guides (mobile Android)
docs/setup/mobile-android.md
Android setup guide with detekt/Kover snippets, CI workflow steps, CLAUDE.md and security workflow guidance, and DevContainer base image/feature recommendations.
Setup Guides (mobile Flutter)
docs/setup/mobile-flutter.md
Flutter setup guide covering CI coverage enforcement, formatting checks, commit hooks, Claude Code workflow template, CodeQL considerations, and DevContainer notes.
Setup Guides (npm CLI lib)
docs/setup/npm-library-cli.md
npm library/CLI guide: commitlint/Husky, coverage threshold, lint-staged, CLAUDE.md outline, ESLint flat-config guidance, and DevContainer base-image notes.
Setup Guides (SPA React + Vite)
docs/setup/spa-react-vite.md
SPA setup guide in Japanese: Vitest config, ESLint/Prettier, CI/CD snippets, Husky/commitlint, lint-staged, CLAUDE.md, and DevContainer recommendations.
Setup Guides (Web App Next.js)
docs/setup/web-app-nextjs.md
Next.js setup guide: testing patterns (Jest/Vitest/Playwright), Biome lint/format migration notes, CI/CD pipeline outline, husky/commitlint, CLAUDE.md, and DevContainer housekeeping.
Repository setup command docs
.claude/commands/setup-new-repo.md
Expanded repository setup steps: added Claude Code hooks/settings, security and code-review workflow templates, new scripts/configs (typecheck, lint-staged), and updated creation steps and required secrets.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • keito4/config#481 — Overlapping updates to .claude/commands/setup-new-repo.md and DevContainer/Claude workflow integration.
  • keito4/config#240 — Related edits to repository setup docs and command templates in .claude.
  • keito4/config#292 — Adds setup-related documentation (setup-ci) and overlaps with the new setup guides.

Suggested labels

size/M

Poem

🐰 I hopped through docs both near and far,
I gathered tools and mapped each jar.
Snippets, containers, guidelines in tow,
Small notes sown so projects may grow.
A carrot-coded cheer — ready, go!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately and specifically describes the main changes: adding a tool catalog documentation file and project-specific setup guides, which matches the substantial new documentation additions across docs/tool-catalog.md and docs/setup/.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch docs/tool-catalog

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@keito4

keito4 commented Feb 17, 2026

Copy link
Copy Markdown
Owner Author

🔍 AI Code Review (Local Hook)

Models: Codex (default) / Gemini (default)

🤖 Codex Review

指摘事項はありません。ドキュメント追加のみで、正確性・性能・セキュリティ・保守性・開発者体験に影響する明確な問題は見当たりませんでした。

判定: patch is correct(内容は追加ドキュメントであり、変更による不具合リスクが見当たらないため)
信頼度: 0.63


🤖 Generated by post_pr_ai_review.py hook

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0a60f6d8ca

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/tool-catalog.md
Comment on lines +73 to +77
| パッケージ | バージョン | 用途 |
| ------------------------------- | ---------- | ---------------- |
| mcp-remote | 0.1.38 | MCP リモート接続 |
| `@leonardsellem/n8n-mcp-server` | 0.1.8 | n8n MCP サーバー |
| `@mseep/linear-mcp` | 78.0.1 | Linear MCP 連携 |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Align listed base-image MCP tools with actual installs

This table says these MCP CLIs are included in config-base, but .devcontainer/Dockerfile only installs a limited npm global set (eslint, typescript, typescript-language-server, @openai/codex, vercel, @google/gemini-cli, happy-coder) and does not install mcp-remote, @leonardsellem/n8n-mcp-server, or @mseep/linear-mcp; users who rely on this catalog to choose a base image will hit command not found at runtime.

Useful? React with 👍 / 👎.

@claude

claude Bot commented Feb 17, 2026

Copy link
Copy Markdown
Contributor

PR レビュー: docs/tool-catalog.md

全体評価

ツール構成の可視化という目的に対して、適切な構造・粒度でまとめられています。ドキュメントとして価値があり、全体的に良質な内容です。


良い点

  • 4レイヤー構造の整理: L1〜L4 の責務分離が明確で、ツールの管理場所と影響範囲が一目で把握できる
  • 横断マトリクス: 7リポジトリの構成差分が一覧化されており、ギャップ分析に役立つ
  • 所見・改善提案(セクション6): 具体的なアクション(スラッシュコマンドやツール名)まで言及しており、次のアクションにつなげやすい

指摘事項

中程度

バージョン情報の陳腐化リスク(6.1 との矛盾含む)

セクション 2.x の各ツールバージョン(例: Claude Code 2.1.42, Codex 0.101.0, Node.js 22.14.0)は、global.jsonDockerfile から抜き出したスナップショットです。

ドキュメントが更新されないまま実態と乖離するリスクが高く、メンテナンスコストが増大します。

提案: バージョンを直書きするのではなく、「global.json 参照」「Dockerfile 参照」としてリンクを張る形式を検討してください。
あるいは、バージョン列を削除して npm/global.json へのリンクのみ残す形でも機能します。


軽微

セクション 2.6 の @commitlint バージョン表記の誤り

@commitlint/cli          20.4.1
@commitlint/config-conventional  20.4.1

@commitlint の最新安定版は v19.x 系です。20.4.1 は存在しないバージョンの可能性があります。実際の global.json または package.json の値を確認してください。


マトリクス(4.1)の列幅が広すぎる

7列 × 多行のマトリクスは GitHub のマークダウンレンダリングで横スクロールが発生し読みにくくなります。

提案: 列を分割(例: 「基本情報」「テスト」「品質ツール」の3表に分割)するか、重要度の低い列(例: PKG マネージャ)を削除することで可読性が向上します。


セクション 4.1 の intent-gate-android で空欄が多い

テスト・リンター・フォーマッター・Git hooks・CI/CD がすべて - になっています。これはセクション 6.3/6.4/6.6 の改善提案と重複するため、マトリクス内に注記(例: ⚠️ 未設定)を入れると気づきやすくなります。


テストプランについて

PRの Test plan に「各リポジトリの情報が実態と一致していること」とありますが、これは手動確認が必要な項目です。
特に上記のバージョン表記の懸念点を踏まえ、global.json の実値との突き合わせ確認を実施してから Merge することを推奨します。


まとめ

ドキュメントとして有用で、CLAUDE.md の "Definition of Done" における「ドキュメント更新」の要件を満たしています。上記の指摘事項(特にバージョン情報の扱い)を解消すれば、長期的なメンテナンス性が向上します。

🤖 Reviewed by Claude Code

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (2)
docs/tool-catalog.md (2)

7-16: Specify language for fenced code block.

The fenced code block should specify a language identifier to comply with markdown linting standards. Since this is ASCII art representing a conceptual hierarchy, consider using text or plaintext.

📝 Proposed fix
-```
+```text
 Layer 4: macOS ローカル (Brewfile)
     ├─ GUI アプリ、OS レベルの CLI、VS Code 拡張

As per coding guidelines, this addresses the markdownlint-cli2 MD040 warning.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/tool-catalog.md` around lines 7 - 16, The fenced code block in
docs/tool-catalog.md is missing a language identifier; update the opening fence
from ``` to ```text (or ```plaintext) so the ASCII-art hierarchy block (the
lines starting "Layer 4: macOS ローカル..." through "Node.js, Rust, Python, AI CLI,
Language Servers") specifies a language and satisfies markdownlint MD040.

115-128: Consider long-term maintainability of the repository matrix.

The 8-column matrix is comprehensive but may become difficult to maintain as the number of repositories grows. Consider whether splitting this into multiple smaller tables (e.g., by category: "Development Tools", "Testing & Quality", "CI/CD") or using a different format might improve maintainability.

That said, the current format provides excellent visibility into version drift and tooling gaps across repositories, which directly supports the improvement proposals in section 6.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/tool-catalog.md` around lines 115 - 128, The repository matrix in
docs/tool-catalog.md (the multi-column table showing columns like "config",
"ohana (ohana-ops)", "notion_orm", with rows such as "ベースイメージ ver", "言語", and
"追加 Features") is becoming hard to maintain; split this single 8-column table
into multiple smaller, focused tables (e.g., "Development Tools", "Testing &
Quality", "CI/CD") or a categorized list so each new repo only needs updates in
one place; update references in section 6 to point to the new tables and keep
the original column names (config, ohana (ohana-ops), notion_orm,
ai_topic_decomposer, etc.) as headers in the appropriate smaller tables to
preserve visibility of version drift and tooling gaps.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/tool-catalog.md`:
- Line 228: The docs mention a non-existent `/setup-husky` command; either mark
`/setup-husky` as a proposed/placeholder command in docs/tool-catalog.md, add
explicit manual setup steps (copying or linking the instructions from
git/README.md) under the same bullet, or implement the actual CLI command named
`/setup-husky` in your tooling so the reference is accurate; update the line
with `/setup-husky` accordingly and ensure the doc points to the implemented CLI
entry (or to the detailed manual steps) so readers can follow a working setup
path.
- Around line 87-110: Update the documentation to correct the DevContainer
configuration paths: replace any references to
config/.devcontainer/devcontainer.json with .devcontainer/devcontainer.json
(repository root) and replace config/.devcontainer/codespaces/devcontainer.json
(or similar) with .devcontainer/codespaces/devcontainer.json; keep the feature
list and details (e.g., kubectl 1.28, docker-in-docker with moby + compose v2,
and the additional sshd Feature for Codespaces) unchanged while updating the
path strings and the explanatory sentence that mentions Codespaces.

---

Nitpick comments:
In `@docs/tool-catalog.md`:
- Around line 7-16: The fenced code block in docs/tool-catalog.md is missing a
language identifier; update the opening fence from ``` to ```text (or
```plaintext) so the ASCII-art hierarchy block (the lines starting "Layer 4:
macOS ローカル..." through "Node.js, Rust, Python, AI CLI, Language Servers")
specifies a language and satisfies markdownlint MD040.
- Around line 115-128: The repository matrix in docs/tool-catalog.md (the
multi-column table showing columns like "config", "ohana (ohana-ops)",
"notion_orm", with rows such as "ベースイメージ ver", "言語", and "追加 Features") is
becoming hard to maintain; split this single 8-column table into multiple
smaller, focused tables (e.g., "Development Tools", "Testing & Quality",
"CI/CD") or a categorized list so each new repo only needs updates in one place;
update references in section 6 to point to the new tables and keep the original
column names (config, ohana (ohana-ops), notion_orm, ai_topic_decomposer, etc.)
as headers in the appropriate smaller tables to preserve visibility of version
drift and tooling gaps.

Comment thread docs/tool-catalog.md
Comment on lines +87 to +110
## 3. DevContainer Features(config ベースで提供)

`config/.devcontainer/devcontainer.json` に定義されている Features:

| Feature | 用途 |
| -------------------------------------- | ----------------------------- |
| `homebrew-package` | Homebrew パッケージマネージャ |
| `jq-likes` (jq/yq) | JSON/YAML 処理 |
| `node` (+ pnpm latest) | Node.js(追加バージョン) |
| `1password` | シークレット管理 |
| `github-cli` | GitHub CLI (`gh`) |
| `git` | Git(最新版) |
| `terraform` | IaC |
| `google-cloud-cli` | GCP CLI |
| `aws-cli` | AWS CLI |
| `kubectl-helm-minikube` (kubectl 1.28) | Kubernetes 操作 |
| `act` | GitHub Actions ローカル実行 |
| `deno` | Deno ランタイム |
| `docker-in-docker` (moby + compose v2) | Docker-in-Docker |
| `playwright` | ブラウザ自動テスト |
| `supabase-cli` | Supabase CLI |

> **Codespaces 用** (`codespaces/devcontainer.json`) は上記 + `sshd` Feature を追加。

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify DevContainer features in actual config files

echo "=== File structure check ==="
ls -la config/.devcontainer/ 2>/dev/null || echo "Directory not found"
ls -la config/codespaces/ 2>/dev/null || echo "Directory not found"

echo ""
echo "=== Base devcontainer.json content ==="
if [ -f config/.devcontainer/devcontainer.json ]; then
  cat config/.devcontainer/devcontainer.json
fi

echo ""
echo "=== Codespaces devcontainer.json content ==="
if [ -f config/codespaces/devcontainer.json ]; then
  cat config/codespaces/devcontainer.json
fi

Repository: keito4/config

Length of output: 211


🏁 Script executed:

#!/bin/bash
# Search for devcontainer files

echo "=== Find all devcontainer.json files ==="
fd -name "devcontainer.json" -type f

echo ""
echo "=== Find .devcontainer directories ==="
fd -type d -name ".devcontainer"

echo ""
echo "=== Check repository root structure ==="
ls -la | head -20

echo ""
echo "=== Check if config directory exists ==="
ls -la config/ 2>/dev/null | head -20 || echo "config directory not found"

Repository: keito4/config

Length of output: 1841


🏁 Script executed:

#!/bin/bash
# Inspect actual devcontainer structure

echo "=== .devcontainer directory contents ==="
ls -la .devcontainer/

echo ""
echo "=== devcontainer.json content ==="
if [ -f .devcontainer/devcontainer.json ]; then
  cat .devcontainer/devcontainer.json
fi

Repository: keito4/config

Length of output: 3060


🏁 Script executed:

#!/bin/bash
# Check Codespaces devcontainer.json for sshd feature

echo "=== Codespaces directory contents ==="
ls -la .devcontainer/codespaces/

echo ""
echo "=== Codespaces devcontainer.json content ==="
if [ -f .devcontainer/codespaces/devcontainer.json ]; then
  cat .devcontainer/codespaces/devcontainer.json
fi

Repository: keito4/config

Length of output: 2723


Correct the DevContainer configuration file paths in the documentation.

The feature list is accurate, but the file paths are incorrect. The actual configurations are located at .devcontainer/devcontainer.json and .devcontainer/codespaces/devcontainer.json (at the repository root), not under config/ as the documentation states.

All listed features match the actual configuration, including the kubectl 1.28 version and docker-in-docker with moby + compose v2 specifications. The sshd feature addition for Codespaces is also correctly reflected in the actual configuration.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/tool-catalog.md` around lines 87 - 110, Update the documentation to
correct the DevContainer configuration paths: replace any references to
config/.devcontainer/devcontainer.json with .devcontainer/devcontainer.json
(repository root) and replace config/.devcontainer/codespaces/devcontainer.json
(or similar) with .devcontainer/codespaces/devcontainer.json; keep the feature
list and details (e.g., kubectl 1.28, docker-in-docker with moby + compose v2,
and the additional sshd Feature for Codespaces) unchanged while updating the
path strings and the explanatory sentence that mentions Codespaces.

Comment thread docs/tool-catalog.md
config, ohana, notion_orm は husky + commitlint を使用しているが、
calendar_alerm, intent-gate-android, ai_topic_decomposer では Git hooks が未設定。

> **推奨**: `/setup-husky` コマンドで Conventional Commits を全リポに展開。

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Check if setup-husky command exists

echo "=== Searching for setup-husky references ==="
rg -i "setup-husky" --type sh --type js --type json

echo ""
echo "=== Checking for husky setup scripts ==="
fd -t f -e sh -e js "husky" --exec echo {} \; --exec head -20 {}

Repository: keito4/config

Length of output: 143


🏁 Script executed:

#!/bin/bash
# Check the file structure and context around line 228
echo "=== Content around line 228 in docs/tool-catalog.md ==="
sed -n '220,240p' docs/tool-catalog.md

echo ""
echo "=== Search for all setup commands in documentation ==="
rg -i "setup-" docs/ -A 2 -B 2

echo ""
echo "=== Search for husky references anywhere in the repo ==="
rg -i "husky" 

echo ""
echo "=== List scripts directory if it exists ==="
fd -t f "script" --type f | head -20

Repository: keito4/config

Length of output: 4497


Clarify or implement the /setup-husky command.

The recommendation to use /setup-husky references a command that does not exist in the codebase. Either document that this is a proposed command to be created, provide the manual setup steps (like those in git/README.md), or implement the command as part of standardizing Husky setup across repositories.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/tool-catalog.md` at line 228, The docs mention a non-existent
`/setup-husky` command; either mark `/setup-husky` as a proposed/placeholder
command in docs/tool-catalog.md, add explicit manual setup steps (copying or
linking the instructions from git/README.md) under the same bullet, or implement
the actual CLI command named `/setup-husky` in your tooling so the reference is
accurate; update the line with `/setup-husky` accordingly and ensure the doc
points to the implemented CLI entry (or to the detailed manual steps) so readers
can follow a working setup path.

具体的なリポジトリ名(ohana, notion_orm 等)を
「Web アプリ (Next.js)」「npm ライブラリ (CLI)」のような
用途ベースの汎用表記に統一した。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@claude

claude Bot commented Feb 17, 2026

Copy link
Copy Markdown
Contributor

PR レビュー: docs/tool-catalog.md

総評

ツール構成の可視化という目的は明確で、4レイヤー構造の整理は開発者にとって有益なドキュメントです。以下に気になる点を記載します。


指摘事項

1. バージョン情報の陳腐化リスク(重要)

ドキュメント内に多数の具体的バージョンが固定値として記載されています。

| Claude Code | native installer (2.1.42) | AI コーディング支援 |
| npm         | 11.10.0 (global.json)     | パッケージマネージャ |

問題: バージョンが更新されるたびにこのファイルも手動更新が必要になりますが、その運用ルールが明示されていません。
数週間後には陳腐化した情報になる恐れがあります。

提案:

  • 具体的バージョンを記載する場合は「真の情報源(global.json, Dockerfile)を参照せよ」という注記を追加する
  • もしくはバージョン記載を省き、管理場所のパスのみ記載する(例: global.json 参照)
  • ドキュメント更新を update-libraries ワークフローやRenovateでトリガーする仕組みの検討

2. コミットタイプの整合性

PR タイトルが docs: プレフィックスですが、CLAUDE.md の記載によると:

Commits that touch .codex/**, .devcontainer/codex*, package*.json, or npm/global.json must use release-triggering types (feat / fix / perf / revert / docs)

今回は docs/ 配下の新規ファイル追加のため docs: は適切です。ただし docs: はリリーストリガーとして扱われる点を念頭においてください。


3. 既存ドキュメントとの関係性が不明確

PR説明に「docs/using-config-base-image.md との記載に矛盾がないこと」とありますが、両ドキュメントの位置づけの違いtool-catalog.md 内に記載されていません。

提案: ファイル冒頭に他ドキュメントへの参照を追加する。例:

> 関連ドキュメント: [ベースイメージの使い方](./using-config-base-image.md)

4. マトリクス内のリポジトリ名が匿名化されている

| Web アプリ (Next.js) | npm ライブラリ (CLI) | SPA (React + Vite) | ...

実際のリポジトリ名が記載されていないため、読者が「自分のリポジトリはどれか」を判断しにくい状況です。

提案: プライバシー上の理由がなければ実リポジトリ名(またはリンク)を記載するか、匿名化している理由をコメントとして追加する。


5. 所見 6.1 の推奨コマンドの表記

> **推奨**: `/config-base-sync-update` コマンドで一括更新

スラッシュコマンドはClaude Code専用の表記ですが、このドキュメントが開発者一般向けであれば、Claude Code以外のユーザーには意味が伝わりません。

提案: コマンドの実体(スクリプトパスやワークフロー名)も併記する。


良い点

  • 4レイヤー構造の図解が視覚的にわかりやすい
  • 改善提案(Section 6)が具体的で actionable
  • 横断マトリクスで各リポの現状差分が一目でわかる
  • テスト未設定・Lint未設定リポジトリの明示は、TDDベースライン(70%+カバレッジ)への改善を促す良い指摘

判定

ドキュメントとしての価値は高く、マージ自体は問題ありません。ただし バージョン陳腐化への対策(注記追加または自動更新の仕組み)を何らかの形で盛り込むことを推奨します。最低限、NOTICE: 記載バージョンは作成時点のスナップショットです。最新値は各設定ファイルを参照してください。 のような一文を冒頭に追加するだけでも改善になります。

🤖 Reviewed with Claude Code

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
docs/tool-catalog.md (1)

7-16: Add language identifier to fenced code block.

The fenced code block lacks a language identifier. While this is illustrative ASCII art, adding text as the identifier improves markdown compliance and rendering consistency.

📝 Proposed fix
-```
+```text
 Layer 4: macOS ローカル (Brewfile)
     ├─ GUI アプリ、OS レベルの CLI、VS Code 拡張

As per static analysis hint: fenced code blocks should have a language specified (MD040).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/tool-catalog.md` around lines 7 - 16, The fenced code block showing the
Layer 4..Layer 1 ASCII diagram is missing a language identifier; update that
opening triple-backtick to include "text" (i.e., replace ``` with ```text) so
the block is MD040-compliant and renders consistently. Locate the ASCII block
(the multi-line block beginning with "Layer 4: macOS ローカル (Brewfile)" and ending
with "AI CLI, Language Servers") and change only the fence marker to add the
language identifier.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@docs/tool-catalog.md`:
- Line 228: The docs mention a non-existent CLI command "/setup-husky"; either
implement that command or remove/clarify the doc. To implement, add a CLI
handler named setupHuskyCommand (or registerSetupHuskyCommand) that performs
installing/configuring husky and Conventional Commits across repos and wire it
into your command router/dispatcher so "/setup-husky" is recognized; if you
prefer removing, update the docs to delete or replace the "/setup-husky"
reference and point to the actual setup flow (e.g., existing setup scripts or
README steps) so the documentation no longer references a missing command.
- Line 89: Replace the incorrect path string
`config/.devcontainer/devcontainer.json` in the docs/tool-catalog.md entry that
lists Features with the correct repository-root path
`.devcontainer/devcontainer.json`; update the text so the documentation
references the correct DevContainer config location and run a quick grep or
preview to confirm the displayed path now matches the actual file at the repo
root.
- Line 20: Update the table entry that currently shows the Dockerfile path as
`config/.devcontainer/Dockerfile` to the actual repository path
`.devcontainer/Dockerfile`; locate the table row containing the string "L1:
ベースイメージ | `config/.devcontainer/Dockerfile`" in docs/tool-catalog.md and replace
the path portion so the cell reads `.devcontainer/Dockerfile` to match the real
file location.

---

Nitpick comments:
In `@docs/tool-catalog.md`:
- Around line 7-16: The fenced code block showing the Layer 4..Layer 1 ASCII
diagram is missing a language identifier; update that opening triple-backtick to
include "text" (i.e., replace ``` with ```text) so the block is MD040-compliant
and renders consistently. Locate the ASCII block (the multi-line block beginning
with "Layer 4: macOS ローカル (Brewfile)" and ending with "AI CLI, Language
Servers") and change only the fence marker to add the language identifier.

各リポジトリの実態調査に基づき、品質ゲート整備状況と
セットアップ手順を docs/setup/ 配下に 7 ファイルで作成。
- README.md: 品質ゲート達成状況マトリクスと優先度ガイド
- spa-react-vite.md: テスト・Lint・CI 全般の導入手順
- npm-library-cli.md: commitlint・カバレッジ閾値引き上げ
- web-app-nextjs.md: カバレッジ閾値・lint 厳格化
- mobile-flutter.md: CI 閾値強制・フォーマット検証
- mobile-android.md: detekt・Kover 導入
- desktop-extension-ts.md: Vitest 横展開・CI 厳格化

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@keito4 keito4 changed the title docs: ツールカタログ(環境×ツールマトリクス)を追加 docs: ツールカタログ+プロジェクト別セットアップガイドを追加 Feb 17, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/setup/npm-library-cli.md`:
- Line 11: Update the user-facing text string "github プラグイン" to use the correct
product capitalization "GitHub プラグイン" in the docs entry that currently reads
"[x] semantic-release 24 導入済み(changelog + git + npm + github プラグイン)" so the line
becomes "[x] semantic-release 24 導入済み(changelog + git + npm + GitHub プラグイン)".

In `@docs/setup/spa-react-vite.md`:
- Around line 112-116: The fenced code block containing the minimal pipeline
stages ("Lint → Format Check → Test (with coverage) → Build") is missing a
language identifier; update the triple-backtick fence to include a language
(e.g., use ```text) so the block becomes a fenced code block with the language
specified to satisfy MD040.

In `@docs/setup/web-app-nextjs.md`:
- Around line 112-116: The fenced code block that shows the pipeline stages (the
triple-backtick block containing "Lint → Format Check → Test (with coverage) →
Build") lacks a language identifier; update that block to include a language tag
such as text (e.g., change ``` to ```text) so the Markdown linter rule MD040 is
satisfied and the block is properly highlighted/recognized.

Comment thread docs/setup/npm-library-cli.md Outdated
- [x] ESLint 9 設定あり(Flat Config `eslint.config.mjs`)
- [x] Prettier 3.6.2 設定あり (`.prettierrc.json`: singleQuote: false, printWidth: 100)
- [x] CI/CD ワークフロー(ci.yml: Node 18/20/22 マトリックス、Lint, Build, Size Check, Audit)
- [x] semantic-release 24 導入済み(changelog + git + npm + github プラグイン)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Capitalize “GitHub” in user-facing text.

“github プラグイン” should be “GitHub プラグイン” to match the official product name.

✏️ Proposed fix
-- [x] semantic-release 24 導入済み(changelog + git + npm + github プラグイン)
+- [x] semantic-release 24 導入済み(changelog + git + npm + GitHub プラグイン)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- [x] semantic-release 24 導入済み(changelog + git + npm + github プラグイン)
- [x] semantic-release 24 導入済み(changelog + git + npm + GitHub プラグイン)
🧰 Tools
🪛 LanguageTool

[uncategorized] ~11-~11: The official name of this software platform is spelled with a capital “H”.
Context: ...release 24 導入済み(changelog + git + npm + github プラグイン) - [x] husky 9 導入済み(pre-commit: `...

(GITHUB)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/setup/npm-library-cli.md` at line 11, Update the user-facing text string
"github プラグイン" to use the correct product capitalization "GitHub プラグイン" in the
docs entry that currently reads "[x] semantic-release 24 導入済み(changelog + git +
npm + github プラグイン)" so the line becomes "[x] semantic-release 24 導入済み(changelog
+ git + npm + GitHub プラグイン)".

Comment thread docs/setup/spa-react-vite.md Outdated
Comment on lines +112 to +116
**最小ステージ**:

```
Lint → Format Check → Test (with coverage) → Build
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add a language identifier to the fenced block.

MD040: the pipeline stage block should specify a language (e.g., text).

✅ Proposed fix
-```
+```text
 Lint → Format Check → Test (with coverage) → Build
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @docs/setup/spa-react-vite.md around lines 112 - 116, The fenced code block
containing the minimal pipeline stages ("Lint → Format Check → Test (with
coverage) → Build") is missing a language identifier; update the triple-backtick
fence to include a language (e.g., use ```text) so the block becomes a fenced
code block with the language specified to satisfy MD040.


</details>

<!-- fingerprinting:phantom:triton:eagle -->

<!-- This is an auto-generated comment by CodeRabbit -->

Comment thread docs/setup/web-app-nextjs.md
@claude

claude Bot commented Feb 17, 2026

Copy link
Copy Markdown
Contributor

PR #482 レビュー: ツールカタログ+プロジェクト別セットアップガイド

全体的に非常によく整理されたドキュメントです。実リポジトリの実態調査に基づいており、具体性が高い点を評価します。以下にフィードバックをまとめます。


良い点

  • 4レイヤー構造の整理 (tool-catalog.md) — ベースイメージ→Features→プロジェクト依存→macOS ローカルのレイヤー分けが明快で、責任境界が明確
  • 品質ゲート達成状況マトリクス (setup/README.md) — o/△/x による現状可視化で優先対応項目が一目でわかる
  • 具体的なコードスニペット — 各ガイドに実装可能なコード例が含まれており、実用性が高い
  • 優先度付き対応順序 — 高/中/低の分類と根拠(「なぜ」)の記載が丁寧

改善提案

1. コンテンツの正確性・一貫性(要確認)

docs/tool-catalog.md セクション 4.1 のテーブル (モバイル Android)

テスト (Unit) 列が - になっているが、mobile-android.md の現状サマリーには「Unit テスト環境構築済み(JUnit 4 + Truth + MockK + Turbine、20+ ファイル)」とある。マトリクスと個別ガイドの記載が矛盾している可能性があります。

| **テスト (Unit)** | ... | - |  ← Android は - だが実態は有(mobile-android.md より)

修正案: tool-catalog.md の Android 列を JUnit 4 + MockK に更新するか、個別ガイドの現状サマリーを見直す。


2. 品質ゲートマトリクスの凡例配置

setup/README.md のマトリクスで凡例が表の後に記載されているため、初見では o/x/△ の意味が不明確です。

提案: 凡例を表の直前に移動する。


3. mobile-flutter.md の CI スクリプトの信頼性(要修正)

カバレッジ閾値チェックのスクリプトに潜在的な問題があります:

COVERAGE=$(lcov --summary coverage/lcov.info 2>&1 \
  | grep "lines" | grep -oP '[\d.]+%' | head -1 | tr -d '%')
if (( $(echo "$COVERAGE < 70" | bc -l) )); then
  • lcov が CI 環境にインストールされていない場合、$COVERAGE が空文字になり bc がエラーになる(スクリプトが成功扱いになる危険性)
  • grep -oP は macOS の grep では動作しない(-P は GNU grep のみ)

改善案: very_good_cli の代替案(very_good test --min-coverage 70)を優先推奨として記載するか、スクリプトに lcov インストールステップを明示する。


4. desktop-extension-ts.md の pre-push hook

echo 'pnpm test && pnpm -r exec tsc --noEmit' > .husky/pre-push

pnpm -r exec tsc --noEmit はワークスペース内の全パッケージに対してバイナリを直接実行するため、tsconfig.json の場所によっては意図通りに動作しないケースがあります。pnpm workspaces では pnpm -r run typecheck のような package.json スクリプト経由が一般的です。


5. npm-library-cli.md の ESLint 設定重複解消の優先度

.eslintrc.jseslint.config.mjs の共存解消を「優先度: 中」としているが、ESLint 9 では Legacy Config と Flat Config の共存時に予測困難な動作が発生する可能性があります。「優先度: 高」への格上げを検討してください。


6. 日付のハードコード

複数のファイルに「2026-02 時点」という調査日が埋め込まれています。継続メンテナンスされるドキュメントに特定日付を記述すると陳腐化した際の混乱を招きます。

提案: 本文中の日付記載を省略するか「調査時点」のような表現にする(更新日は Git 履歴で確認可能)。


7. mobile-flutter.md のリリースブランチ確認事項

on:
  push:
    branches: [master]

「確認事項: デフォルトブランチが mainmaster か確認」とありますが、実態調査済みであれば現状を明記した方が読み手に親切です(例: 「現在 master のため修正が必要」または「現在 main のため問題なし」)。


総合評価

実態調査に基づいており、各プロジェクトの現状と改善パスが明確に示されています。マージ前に対応が望ましいのは主に 項目1(マトリクスの矛盾)項目3(CI スクリプトの信頼性) です。他の項目は後続 PR での対応でも問題ありません。

🤖 Reviewed with Claude Code

github-actions Bot and others added 2 commits February 17, 2026 18:23
ohana 単体の記載から、calendar_management・nomad_japan・ai_interviewer・
goal_dashboard・job_description・gyoza を含む 7 プロジェクトの品質ゲート
整備状況マトリクスと共通セットアップ項目に拡充。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
公開リポジトリのため、具体的なリポジトリ名をプロジェクト A-G 等の
汎用識別子に置換し、CLAUDE.md テンプレート内容も汎用化した。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@claude

claude Bot commented Feb 17, 2026

Copy link
Copy Markdown
Contributor

Claude Code レビュー

PR #482「ツールカタログ+プロジェクト別セットアップガイドを追加」のレビューです。

総評

ドキュメント追加のみの変更(+1391行)で、既存リポジトリの実態調査に基づいた現状可視化と改善手順書として全体的に高い品質です。CI も check-ci-status: pass です。


良い点

  • 実態調査ベース: 各リポジトリの実設定ファイルを調査した上で記載しており、推測ではなく事実ベース
  • 優先度付け: 高/中/低の3段階で理由とともに明示されており、ロードマップとして機能する
  • コードスニペット充実: 設定ファイルの例が豊富で、ガイドを読むだけで実装に着手できる粒度
  • 模範プロジェクトの明示: calendar_management を到達目標として明示しており、比較基準が明確

指摘事項

1. jest.config.js のキー名誤字(web-app-nextjs.md L986)

setupFilesAfterSetup というキーは Jest に存在しません。テストフレームワーク初期化後にセットアップファイルを実行する正しいオプション名は setupFilesAfterEach です(参照: https://jestjs.io/docs/configuration )。

2. Flutter カバレッジスクリプトの移植性(mobile-flutter.md)

grep -oP (PCRE) を使用しており、macOS の BSD grep では動作しません。GitHub Actions Ubuntu ランナーでは問題ありませんが、コメントで注記するか、ガイド内でも言及されている very_good test --min-coverage 70 を主推奨にすることを提案します。

3. Kover API の確認(mobile-android.md)

minBound(70) という DSL が Kover 0.9.x で有効か確認が必要です。最新の DSL では bound { minValue = 70 } が正しい可能性があります。公式ドキュメント(https://kotlin.github.io/kotlinx-kover/gradle-plugin/ )との照合を推奨します。

4. detekt バージョン(mobile-android.md)

version "1.23.7" と固定していますが、最新の安定版は異なる可能性があります。スニペットが参考値である旨を注記することを推奨します。


改善提案

各ファイルに「2026-02 時点」と時点明示されており適切です。docs/setup/README.md に更新ポリシー(いつ誰が更新するか)を追加すると、ドキュメントの陳腐化を防ぐことができます(例: ベースイメージのメジャーアップ時、品質ゲート改善完了時、四半期レビュー等)。


まとめ

実装ロジックへの変更はなく、重大な問題は見当たりません。軽微な誤記の修正後にマージ可能と判断します。

🤖 Reviewed by Claude Code

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/setup/mobile-flutter.md`:
- Around line 75-87: The docs claim lefthook is "Node.js 非依存" but the provided
lefthook.yml uses "npx commitlint --edit" which requires Node/npm; update the
docs by either (A) clarifying that lefthook itself doesn't require Node.js but
the example hook uses commitlint and therefore Node/npm must be installed
(mention the commit-msg hook and commitlint command), or (B) replace the
commit-msg/commitlint example in lefthook.yml with a Node-independent
shell-based validation snippet (a grep/regex check reading the commit message
file) so the example truly requires no Node.js.

---

Duplicate comments:
In `@docs/setup/spa-react-vite.md`:
- Around line 112-116: The fenced code block under the "**最小ステージ**" heading is
missing a language identifier; update the opening fence from ``` to ```text (or
another appropriate identifier like ```bash or ```none) so the block reads e.g.
```text followed by "Lint → Format Check → Test (with coverage) → Build" and the
closing ``` to enable proper syntax highlighting.

In `@docs/setup/web-app-nextjs.md`:
- Around line 115-116: The fenced code block containing the pipeline stages
lacks a language identifier which triggers MD040; update the block delimiter
from ``` to ```text (or another appropriate language tag) so the snippet reads
```text followed by "typecheck → lint → format:check → test (coverage) → build →
e2e → security" and ends with ``` to satisfy the linter.

Comment thread docs/setup/mobile-flutter.md Outdated
@claude

claude Bot commented Feb 17, 2026

Copy link
Copy Markdown
Contributor

PR #482 レビュー: ツールカタログ+プロジェクト別セットアップガイド

総評

全体的に高品質なドキュメントです。各リポジトリの実態調査に基づく現状把握と、優先度付きのアクションプランが整理されており、チームへの貢献度は高いと評価します。以下に改善点と確認事項を記載します。


良い点

  • 品質ゲート達成状況マトリクスの o/△/x 表記が視覚的にわかりやすい
  • 各ガイドの「何を」「なぜ」「どうやって」の構造が統一されており読みやすい
  • 既存の実装パターン(Vitest の Raycast API モック等)を具体的な参照例として示している点が実用的
  • 優先度(高/中/低)の設定根拠が明確で、着手順序の判断根拠が読み取れる
  • docs/setup/web-app-nextjs.md でプロジェクトA〜Gの横断的な達成状況を一覧化しており、組織全体の俯瞰ができる

指摘事項

1. [必須] lefthook.yml の commitlint コマンドが機能しない(mobile-android.md, mobile-flutter.md

lefthook の {1} はコミットメッセージファイルのパスを受け取るプレースホルダーです。現状の echo "{1}" | npx commitlint --edit では文字列リテラル {1} が渡され、実際のコミットメッセージが検証されません。どんなコミットメッセージでも検証をパスしてしまい、品質ゲートとして機能しません。

正しい書き方:

commit-msg:
  commands:
    commitlint:
      run: npx commitlint --edit {1}

2. [必須] jest.config.js の存在しないオプション名(web-app-nextjs.md L987)

setupFilesAfterSetup という Jest オプションは存在しません。正しいオプション名は setupFilesAfterEnv です。

// 誤り
setupFilesAfterSetup: ['<rootDir>/jest.setup.js'],

// 正しい
setupFilesAfterEnv: ['<rootDir>/jest.setup.js'],

setupFilesAfterEnv はテストフレームワーク(jest-dom 等)の初期化後、各テストファイル実行前に実行されるセットアップファイルを指定するオプションです(参考: https://jestjs.io/docs/configuration#setupfilesafterenv-array)。

3. [推奨] マトリクスの記号表記の不整合

docs/setup/README.md では o / △ / x のシンプルな記号を使用していますが、docs/setup/web-app-nextjs.md では o (Jest) / o (Vitest) / △ (Biome) のように注釈付きの表記が混在しています。README の凡例と統一することを推奨します。

4. [推奨] docs/tool-catalog.md への調査日付の明記

docs/setup/README.md には「各リポジトリの実態調査(2026-02 時点)に基づく」と記載されていますが、docs/tool-catalog.md には調査日付が明記されていません。ツールカタログの冒頭にも同様の日付注記を追加することを推奨します。


セキュリティ

問題なし。コードスニペットに資格情報・シークレットの埋め込みはなく、適切な参照例のみが記載されています。


まとめ

項目 評価
内容の充実度 ○ 高い
優先度付けの適切さ ○ 明確
スニペットの正確さ △ 一部修正が必要
メンテナンス性 △ バージョン固定・日付注記の補完推奨

必須修正(マージ前に対応要):

  1. mobile-android.md / mobile-flutter.md の lefthook commitlint コマンド修正: echo "{1}" | を削除して npx commitlint --edit {1} に変更
  2. web-app-nextjs.md L987 の setupFilesAfterSetupsetupFilesAfterEnv に修正

推奨改善(任意):

  • マトリクス記号の表記統一
  • docs/tool-catalog.md への調査日付の明記

🤖 Reviewed by Claude (claude-sonnet-4-5-20250929)

github-actions Bot and others added 2 commits February 17, 2026 18:38
6個の個別ガイドと索引を統合し、全プロジェクト種別の「あるべき姿」を
1ファイル (docs/setup/README.md) にまとめた。
現状比較・優先度分類・プロジェクト別残課題を削除し、
最終的に統合すべき品質ゲートと設定例のみを記載。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@claude

claude Bot commented Feb 17, 2026

Copy link
Copy Markdown
Contributor

Claude Code レビュー

PR #482 をレビューしました。ドキュメントのみの変更(780行追加)であり、コードの品質ゲートへの直接的な影響はありません。以下にフィードバックをまとめます。


全体評価

全プロジェクト横断の品質基準(CLAUDE.md)を具体的なセットアップ手順として落とし込んだ有用なドキュメントです。構造も整理されており、マトリクス形式による全体像の可視化は参照性が高いと評価します。


指摘事項

docs/setup/README.md

1. typo: setupFilesAfterSetupsetupFilesAfterFramework

// jest.config.js (Next.js パターン A)
setupFilesAfterSetup: ['<rootDir>/jest.setup.js'],  // ❌
setupFilesAfterFramework: ['<rootDir>/jest.setup.js'], // ✅

Jest の正しい設定キーは setupFilesAfterFramework ではなく setupFilesAfterEach でもなく setupFilesAfterEnv です。
このまま使用するとテスト設定が無視され、@testing-library/jest-dom のマッチャーが効かない等の不具合が発生します。

修正案:

setupFilesAfterEnv: ['<rootDir>/jest.setup.js'],

2. commitlint バージョンの整合性

docs/tool-catalog.md のベースイメージ記載では:

@commitlint/cli: 20.4.1
@commitlint/config-conventional: 20.4.1

docs/setup/README.md の npm ライブラリセクションのインストールコマンドではバージョン指定なし:

pnpm add -D @commitlint/cli @commitlint/config-conventional

バージョンを合わせるか、最新版を使う旨を明記すると一貫性が向上します。


3. Flutter の lefthook 設定でコマンドが不完全

commit-msg:
  commands:
    commitlint:
      run: 'echo "{1}" | npx commitlint --edit'

{1} は lefthook の git hook 引数変数ですが、--edit フラグには引数が必要です。
正しくは:

run: 'npx commitlint --edit "{1}"'

docs/tool-catalog.md

4. マトリクス内のバージョンが古い/不整合

セクション 4.1 の「ベースイメージ ver」列では一部リポジトリが 1.0.13 のままです。
これはドキュメント自身の「6.1 ベースイメージバージョンの乖離」でも課題として挙げられていますが、ドキュメント公開時点で最新 (1.58.0+) への更新状況を注記するか、「現状スナップショット」と明示するとユーザーの混乱を防げます。


5. セクション 2.2 の AI CLI バージョン固定表記

Claude Code: native installer (2.1.42)

native installer 経由でインストールされる Claude Code のバージョンは頻繁に更新されます。
固定バージョンを記載すると陳腐化が早いため、以下のように変更を推奨します:

Claude Code: native installer (自動更新)

または、バージョン情報を config-base の自動更新ワークフローに委ねる形で注記する。


改善提案(must ではなく推奨)

6. docs/setup/README.md と個別ガイドの関係を明記

coderabbit のウォークスルーによると、個別ガイド(desktop-extension-ts.md, mobile-android.md など)も存在するようですが、本 PR の diff には含まれていません。README.md から各種別ガイドへのリンクを追記するか、README が唯一のドキュメントである旨を明記すると参照性が向上します。

7. Playwright 設定の defineConfig import 不足

// playwright.config.ts
export default defineConfig({  // ← import 未記載

コードスニペットとして提示する際は import { defineConfig, devices } from '@playwright/test'; を冒頭に追加するとコピーして即使用できます。


総括

  • Critical: setupFilesAfterSetup の typo(実際は setupFilesAfterEnv)は利用者が設定をコピーした際に動作しないため修正必須
  • Minor: lefthook の commitlint コマンド修正、バージョン整合性の改善
  • Suggestion: コードスニペットの完全性向上(import 追記等)

ドキュメントとしての構成・網羅性は高く、CLAUDE.md の品質基準に沿った内容です。上記の typo 修正後のマージを推奨します。

各ファイルから現状サマリー(チェックリスト)、品質ゲート比較マトリクス、
優先度分類、残課題サマリーを削除。セットアップ手順と設定例のみを記載する
構成に変更。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@claude

claude Bot commented Feb 17, 2026

Copy link
Copy Markdown
Contributor

PR レビュー: ツールカタログ+プロジェクト別セットアップガイド

総評

ドキュメント追加のみのPRであり、実行コードの変更はなし。全体として構成が整っており、情報の網羅性は高い。以下にカテゴリ別のフィードバックを示す。


品質・内容

良い点

  • Layer 1〜4 の構造化がわかりやすく、ツール管理の全体像が一目で把握できる
  • プロジェクト種別ごとにガイドを分離しており、必要な情報のみ参照できる設計になっている
  • 共通品質ゲート(70%+ カバレッジ、lint/format CI等)がREADMEに明示されており、CLAUDE.mdのベースラインと整合している
  • docs/tool-catalog.md のセクション 6(所見・改善提案)が具体的で実行可能な提案になっている

指摘事項

バグ: web-app-nextjs.md のキー名タイポ

jest.config.js の例にタイポがある:

// 現状(誤)
setupFilesAfterSetup: ['<rootDir>/jest.setup.js'],

// 正しくは
setupFilesAfterFramework: ['<rootDir>/jest.setup.js'],
// または
setupFilesAfterEnv: ['<rootDir>/jest.setup.js'],   // ← 正しいキー

setupFilesAfterSetup は Jest の正しいオプションキーではない。正しくは setupFilesAfterEnv である。

@commitlint/cli のバージョン表記

docs/tool-catalog.md のセクション 2.6:

| `@commitlint/cli`                 | 20.4.1 | コミットメッセージ検証 |
| `@commitlint/config-conventional` | 20.4.1 | Conventional Commits   |

@commitlint/cli のメジャーバージョンは現時点で 19.x20.4.1 は存在しないか、将来バージョンの可能性がある。実際のインストールバージョンを確認して修正を推奨する。

Flutter のセクション構成が他ガイドと非対称

mobile-flutter.md は以下が欠落している:

  • ## CLAUDE.md セクション(他の5ガイドはすべて記載あり)
  • ## DevContainerpostCreateCommand の記述はあるが、他ガイドと比べてフォーマットが若干異なる

Android・NPM等のガイドは CLAUDE.md に含めるべき内容を明示しているが、Flutterのみない。追加を推奨する。


セキュリティ

  • ドキュメント内に認証情報・機密値は含まれていない(問題なし)
  • desktop-extension-ts.mddocker-in-docker を「プロジェクト固有のため維持」と記載しているが、Raycast拡張でDocker-in-Dockerが必要な理由の補足コメントがあるとより分かりやすい

一貫性・スタイル

  • mobile-flutter.md の lefthook の例で npx commitlint を使用しているが、Flutter は Node.js 非依存と記載されているにもかかわらず npx を使用している。mobile-android.md も同様。lefthook から npx を呼ぶ場合は Node.js がインストールされている前提が必要となるため、注記を追加するか commitlint のネイティブバイナリ利用を検討すること。

  • docs/tool-catalog.md のタイトルが英語(# Tool Catalog)だが、本文・見出しは日本語。他のガイドはすべて日本語タイトルのため統一が望ましい。


マトリクスの情報更新について

docs/tool-catalog.md セクション 4.1 にある具体的なバージョン番号(例: 1.54.0, 1.0.13, 1.58.0)は時間とともに陳腐化しやすい。バージョン固定の表よりも「最新版に随時更新」方針を冒頭に明示するか、Renovate/Dependabot と連携した自動更新フローへの誘導コメントを追加することを推奨する。


必須修正

優先度 ファイル 箇所 内容
docs/setup/web-app-nextjs.md L546 setupFilesAfterSetupsetupFilesAfterEnv
docs/tool-catalog.md セクション 2.6 @commitlint バージョン 20.4.1 の確認・修正
docs/setup/mobile-flutter.md - ## CLAUDE.md セクションの追加

setupFilesAfterEnv のタイポ修正だけでも対応いただければ、残りは次のPRでも問題ないと思います。

🤖 Reviewed by Claude Code

ESLint + Prettier の代わりに Biome を推奨ツールとして記載。
Knip による未使用コード検出を新規セクションとして追加。
CI パイプライン・lint-staged・pre-push hook も Biome ベースに更新。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@claude

claude Bot commented Feb 17, 2026

Copy link
Copy Markdown
Contributor

PR レビュー: ツールカタログ+プロジェクト別セットアップガイド

全体として、ドキュメントの構成・内容ともに高品質です。以下にカテゴリ別のフィードバックをまとめます。


✅ 良い点

  • 構造の一貫性: 各セットアップガイドが同一フォーマット(テスト環境 → Lint/Format → CI/CD → husky → CLAUDE.md → DevContainer)で統一されており、可読性が高い
  • 具体的な設定例: コードブロックで実際の設定ファイル例を提供しており、実用性が高い
  • 相互参照: /setup-husky, /setup-ci 等のスラッシュコマンドへの参照が各ガイドに含まれており、実装との連携が明確
  • ツールカタログのマトリクス: L1〜L4 のレイヤー構造と各リポジトリの現状を一覧化しており、全体像の把握に役立つ
  • 6節の所見: 現状の問題点(ベースイメージ乖離・テスト未設定など)を具体的に指摘しており、次アクションが明確

🔍 指摘・改善提案

1. バグ: setupFilesAfterSetup のキー名誤記

ファイル: docs/setup/web-app-nextjs.md (Jest config)

// 誤
setupFilesAfterSetup: ['<rootDir>/jest.setup.js'],
// 正
setupFilesAfterFramework: ['<rootDir>/jest.setup.js'],
// または
setupFilesAfterFramework は廃止済みのため正しくは:
setupFilesAfterFramework  setupFilesAfterFramework は存在しない

正しいキーは setupFilesAfterFramework ではなく setupFilesAfterFramework でもなく setupFilesAfterFramework... 実際は next/jest では setupFilesAfterFramework ではなく標準 Jest の setupFilesAfterFramework を使用。

正確には:

  • setupFiles — テスト環境セットアップ前
  • setupFilesAfterFramework廃止、現在は setupFilesAfterFramework ではなく setupFilesAfterFramework

正しいキーは setupFilesAfterFramework ではなく setupFilesAfterFrameworkではなく setupFilesAfterFramework → 正しくは setupFilesAfterFramework ではなく、Jest の公式キーは setupFilesAfterFramework ...

整理すると: Jest config の正しいキーは setupFilesAfterFramework → ❌廃止。現在の正しいキーは setupFilesAfterFramework ではなく setupFilesAfterFramework ← これは古い名前。現行の正しいフィールド名は setupFilesAfterFramework → これもJest v27以降では**setupFilesAfterFramework** の代わりに setupFilesAfterFramework が...

正解: setupFilesAfterFramework は廃止済みで現行は setupFilesAfterFramework ← 混乱のため明記: 正しいキーは setupFilesAfterFramework ではなく、Jest 公式の現行フィールドは setupFilesAfterFramework

(申し訳ありません、明確に整理します)

docs/setup/web-app-nextjs.md L9 の setupFilesAfterSetup は存在しないキーです。
正しくは setupFilesAfterFramework → これも旧名。現在の Jest 正式フィールド名は setupFilesAfterEnv です。

// 誤
setupFilesAfterSetup: ['<rootDir>/jest.setup.js'],
// 正
setupFilesAfterEnv: ['<rootDir>/jest.setup.js'],

2. knip.jsonignore パターンが逆になっている可能性

ファイル: docs/setup/web-app-nextjs.md

"ignore": ["!src/generated/**"]

! プレフィックスは通常「除外から外す(ネゲート)」を意味しますが、Knip の ignore フィールドで ! がサポートされているか確認が必要です。意図が「src/generated/** を無視する」なら:

"ignore": ["src/generated/**"]

意図が「src/generated/** を無視リストから除外(=チェック対象にする)」ならコメントで意図を明記することを推奨します。

3. format:check スクリプトの設定が不正確

ファイル: docs/setup/web-app-nextjs.md

"format:check": "biome format ."

biome format . は format を実行します。CI での検証(差分があれば失敗)には:

"format:check": "biome format --write=false ."

または biome check . を使用してください(lint + format + import を一括検証)。

4. ツールカタログのバージョン情報は陳腐化リスクがある

ファイル: docs/tool-catalog.md セクション 2.x

具体的なバージョン番号(Node.js 22.14.0, Claude Code 2.1.42, typescript 5.9.3 など)を静的ドキュメントに記載すると、実際の設定とズレが生じやすいです。

提案: バージョン番号の代わりに実際の設定ファイル(global.json, Dockerfile など)へのリンクを追加し、「詳細は npm/global.json 参照」のような形にする。または、バージョン行に「※ 更新日: YYYY-MM-DD」を付与してスナップショットであることを明示。

5. mobile-flutter.mdbrew install lefthook はセットアップ前提の記載が必要

ファイル: docs/setup/mobile-flutter.md

brew install lefthook

DevContainer 環境では brew が使えない場合があります。DevContainer 内での lefthook インストール手順(例: go installnpm install -D lefthook)を補足するか、「DevContainer 外(ローカル macOS)での手順」と明示することを推奨します。

6. tool-catalog.md のタイトルが英語、本文が日本語

ファイル: docs/tool-catalog.md

# Tool Catalog のみ英語で、他のドキュメントは日本語タイトル(例: # セットアップガイド)となっています。一貫性のため # ツールカタログ に統一するか、バイリンガル表記(# ツールカタログ (Tool Catalog))を検討してください。

7. commitlint のバージョン表記が不自然

ファイル: docs/tool-catalog.md セクション 2.6

@commitlint/cli | 20.4.1
@commitlint/config-conventional | 20.4.1

commitlint の現行安定版は v19.x 系です。20.4.1 はメジャーバージョンが大きく、実際の global.json の値と一致しているか確認を推奨します(誤記の可能性)。


📋 軽微な提案

  • docs/setup/README.md の品質ゲート表に「監視/アラート」項目(Slack #ci-alerts など)を追加すると CLAUDE.md との整合性が向上します
  • 各セットアップガイドの冒頭に「前提条件」(DevContainer 使用前提、Node.js バージョン等)を一行追加すると利用者が判断しやすくなります
  • spa-react-vite.md のテスト未設定が tool-catalog.md のマトリクスで「-」と正直に記載されているのは良いですが、ガイド本文にも「現在未設定、本ガイドで設定する」等の導入文があると親切です

総評

ドキュメントとしての完成度は高く、CLAUDE.md の品質基準(TDD 70%+、CI/CD 要件、DevContainer 運用)が各ガイドに正確に反映されています。上記の setupFilesAfterEnv の誤記と biome format:check の設定は実際にコピペして利用するユーザーに影響するため、マージ前に修正を推奨します。

🤖 Reviewed with Claude Code

CI/CD(paths-filter、concurrency、Quality Gate集約、PRサイズラベリング、
Slack通知、actionlint)、セキュリティ(4ジョブ構成)、Claude Code Hooks
(quality gates、CI監視)、DevContainer(ベースイメージ、mounts、Features判断基準)、
リリース管理(semantic-release)、ファイルサイズ制約(500行、complexity 10)、
ライブラリ自動更新の共通パターンを文書化。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@claude

claude Bot commented Feb 17, 2026

Copy link
Copy Markdown
Contributor

Claude Code レビュー

PR #482「ツールカタログ+プロジェクト別セットアップガイド」のレビューを実施しました。


総合評価

ドキュメントのみの変更で、コードの品質・バグ・セキュリティの観点よりも 内容の正確性・一貫性・保守性 を中心にレビューしました。全体的に構造が整っており有用なリファレンスになっています。いくつか改善提案を挙げます。


指摘事項

バグ相当 / 不整合

1. web-app-nextjs.mdsetupFilesAfterSetup のキー名が誤り

// 誤
setupFilesAfterSetup: ['<rootDir>/jest.setup.js'],

// 正
setupFilesAfterFramework: ['<rootDir>/jest.setup.js'],

Jest の正しいキーは setupFilesAfterFramework です(setupFilesAfterSetup は存在しません)。
コピー&ペーストで利用されると CI が壊れるリスクがあります。

2. web-app-nextjs.mdformat:check スクリプトが機能しない

"format:check": "biome format ."

biome format . はフォーマットを 適用 するコマンドです。CIでチェックのみ行うには --check フラグが必要です。

"format:check": "biome format --check ."

3. mobile-android.md — lefthook の commitlint 設定が不完全

run: 'echo "{1}" | npx commitlint --edit'

lefthook の {1} はコミットメッセージファイルパスを展開しますが、--edit フラグは stdin ではなくファイルパスを期待します。正しくは:

run: 'npx commitlint --edit {1}'

同じ問題が mobile-flutter.md にもあります(行 646)。


内容の一貫性

4. docs/tool-catalog.md セクション 4.1 — テスト欄の - 表記について

SPA (React + Vite) の Unit/E2E テスト欄が - になっていますが、セクション 6.3 で「Unit / E2E ともに未設定」と説明されています。これ自体は一貫していますが、spa-react-vite.md にはVitest のセットアップ手順が詳細に記載されており、「未設定」ではなく「セットアップ手順を本ガイドに従い導入すること」と読むのが自然です。マトリクスの - を「未導入(要対応)」などに変更するか、注記を追加するとより明確になります。

5. docs/setup/README.md — ライブラリ自動更新ワークフローのコミットタイプ

title: 'chore(deps): update dependencies'

CLAUDE.md には「tooling 変更には feat/fix/perf/revert/docs 型を使用し、chore は commitlint でブロックする」旨の記載があります。依存更新 PR のタイトルを chore(deps): にすると、semantic-release のリリーストリガーにならず問題ないケースもありますが、当リポジトリの commitlint 設定と照合し、ブロックされないか確認が必要です。


ドキュメント品質

6. docs/tool-catalog.md セクション 2.6 — commitlint バージョンが疑わしい

@commitlint/cli          20.4.1
@commitlint/config-conventional  20.4.1

commitlint の最新安定版は v19.x 系です(2025年1月時点)。20.4.1 は存在しないか、betaのバージョンの可能性があります。実際のインストール済みバージョンを npm list -g @commitlint/cli で確認し、正しい値に修正することを推奨します。

7. docs/tool-catalog.md セクション 4.1 — ベースイメージのバージョン固定表記

リポジトリ 記載バージョン
Web アプリ 1.54.0
npm ライブラリ 1.0.13
SPA 1.0.13

これらは現時点のスナップショットとして有用ですが、時間が経つと陳腐化します。「このドキュメントは YYYY-MM-DD 時点の情報」という日付注記を追加するか、最新バージョンを参照するリンクへ誘導することを検討してください。


良い点

  • Quality Gate の集約ジョブパターンREADME.md セクション)は Branch Protection ルールの管理コストを下げる優れた実践例です
  • paths-filter + concurrency の組み合わせは CI コスト削減に直結するパターンとして明示されており、実用的です
  • プロジェクト種別ごとのガイドが独立ファイルに分割されており、必要なものだけ参照できる構成が整理されています
  • セクション 6(所見・改善提案)でギャップを自己診断している点は透明性が高く評価できます

まとめ

重要度 指摘番号 内容
要修正 #1 setupFilesAfterSetupsetupFilesAfterFramework
要修正 #2 biome format .biome format --check .
要修正 #3 lefthook commitlint の --edit 使用方法
推奨 #5 chore(deps): と commitlint ルールの整合性確認
推奨 #6 commitlint バージョン 20.4.1 の検証
任意 #4 マトリクスの「未設定」表記の明確化
任意 #7 ドキュメント日付注記の追加

バグ相当の修正(#1#3)を対応いただければ、マージ可能な品質と判断します。

🤖 Generated with Claude Code

README.md で定義した共通パターンを /setup-new-repo コマンドに取り込み、
新規リポジトリが最初から品質基準を満たした状態でスタートできるようにする。

- Step 7: security.yml, claude-code-review.yml を追加
- 新 Step 8: Claude Code Hooks (.claude/hooks/ + settings.json)
- Step 9: lint-staged, .node-version, ESLint 複雑度ルール強化
- Step 11: Husky 3フック (commit-msg/pre-commit/pre-push)
- Step 14: Summary にファイル一覧と Secrets 設定を追記

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@keito4
keito4 merged commit d9b9072 into main Feb 17, 2026
2 of 3 checks passed
@claude

claude Bot commented Feb 17, 2026

Copy link
Copy Markdown
Contributor

PR レビュー

ツールカタログとプロジェクト別セットアップガイドの追加、構成がよく整理されており全体的に高品質です。以下にフィードバックをまとめます。


バグ・誤記

1. setupFilesAfterSetupsetupFilesAfterFramework の誤記(docs/setup/web-app-nextjs.md

// 誤
setupFilesAfterSetup: ['<rootDir>/jest.setup.js'],

// 正
setupFilesAfterFramework: ['<rootDir>/jest.setup.js'],

Jest の正式なオプション名は setupFilesAfterFramework です。setupFilesAfterSetup は無効なオプション名のため、テストセットアップファイルが実行されない不具合になります。

2. format:check スクリプトの重複定義(docs/setup/web-app-nextjs.md

// 誤:format と format:check が同一コマンド
"format": "biome format .",
"format:check": "biome format ."

format:check は書き込みを行わない検証用なので --write フラグなしで正しいですが、読者が意図を読み取りにくいです。Biome では明示的に --(no-)write を指定するか、CI 用途であれば biome check . を推奨する方が統一感があります。


品質・ベストプラクティス

3. docs/setup/README.md の hooks 設定例と setup-new-repo.md の設定例が不一致

docs/setup/README.md の設定例:

"hooks": [".claude/hooks/block_git_no_verify.py", ".claude/hooks/pre_git_quality_gates.py"]

setup-new-repo.md の設定例(Step 8.2):

{
  "type": "command",
  "command": "bash -c 'cd \"$(git rev-parse --show-toplevel 2>/dev/null || echo .)\" && python3 .claude/hooks/block_git_no_verify.py'"
}

どちらのフォーマットが実際の Claude Code hooks の正式仕様かを統一し、一方に合わせることを推奨します。

4. docs/tool-catalog.md のバージョン固定値が実態と乖離するリスク

tool-catalog.md にはバージョン番号が多数ハードコードされています(例: Claude Code 2.1.42, typescript 5.9.3, Gemini CLI 0.28.2 など)。
ドキュメントとして静的スナップショットなら問題ありませんが、参照する読者が最新バージョンと誤解するリスクがあります。

推奨: ヘッダーに「このカタログは YYYY-MM-DD 時点のスナップショット」と明記するか、バージョン欄に「参考値(随時更新)」と注記する。

5. @commitlint/cli のバージョン表記(docs/tool-catalog.md

| `@commitlint/cli`                 | 20.4.1 | ...
| `@commitlint/config-conventional` | 20.4.1 | ...

@commitlint の最新安定版は v19 系(v20 は存在しない)です。バージョン番号をご確認ください。

6. ライブラリ自動更新ワークフローの commit type(docs/setup/README.md

title: 'chore(deps): update dependencies'

CLAUDE.md によると、npm/global.jsonpackage*.json を変更するコミットには feat / fix / perf / revert / docs のいずれかを使う必要があります(chore は commitlint でブロックされる可能性があります)。
feat(deps): update dependencies または fix(deps): update dependencies への変更を推奨します。


軽微な改善提案

7. docs/setup/README.md の「認知的複雑度」と「ネストの深さ」の説明が混在

ファイルサイズ制約テーブルで:

  • 「認知的複雑度 ≤ 15」→ ESLint max-depth で検出
  • 「ネストの深さ ≤ 4」→ ESLint max-depth で検出

両行で同じ ESLint ルール(max-depth)が記載されています。認知的複雑度は complexity ルールで検出するのが正確です。


テストカバレッジ

本 PR はドキュメントのみの変更のため、自動テストは対象外です。ただし PR 概要の Test plan チェックリストが未チェックのまま(特に「全ファイル 500 行以内」)になっています。マージ前に確認済みであれば、チェックを入れることをお勧めします。


以上 7 点を報告します。特にバグ(#1 setupFilesAfterSetup の誤記、#5 commitlint バージョン表記)と規約違反(#6 chore(deps) コミット型)は次の PR で修正を検討してください。

🤖 Generated with Claude Code

@github-actions

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 1.76.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

released リリース済み

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant