diff --git a/.claude/settings.json b/.claude/settings.json index bc49141de..0edc5ffd2 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -12,6 +12,13 @@ "Bash(curl *)", "Bash(wget *)", "Bash(git push *)", + "Bash(gh pr merge *)", + "Bash(gh pr close *)", + "Bash(gh issue close *)", + "Bash(gh issue delete *)", + "Bash(gh release create *)", + "Bash(gh release delete *)", + "Bash(gh repo delete *)", "Bash(chmod 777 *)", "Read(**/.env)", "Read(**/.env.*)", diff --git a/.devcontainer/devcontainer-lock.json b/.devcontainer/devcontainer-lock.json new file mode 100644 index 000000000..cdd61126b --- /dev/null +++ b/.devcontainer/devcontainer-lock.json @@ -0,0 +1,9 @@ +{ + "features": { + "ghcr.io/devcontainers/features/github-cli:1": { + "version": "1.1.0", + "resolved": "ghcr.io/devcontainers/features/github-cli@sha256:d22f50b70ed75339b4eed1ba9ecde3a1791f90e88d37936517e3bace0bbad671", + "integrity": "sha256:d22f50b70ed75339b4eed1ba9ecde3a1791f90e88d37936517e3bace0bbad671" + } + } +} diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index aa076add2..937ab0897 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -8,10 +8,13 @@ "dockerComposeFile": ["../compose.yaml"], "mounts": [ "source=${localEnv:HOME}/.ssh,target=/home/node/.ssh,type=bind,consistency=cached", - "source=${localEnv:HOME}/.claude,target=/home/node/.claude,type=bind,consistency=cached" + "source=${localEnv:HOME}/.claude,target=/home/node/.claude,type=bind,consistency=cached", + "source=${localEnv:HOME}/.gitconfig,target=/home/node/.gitconfig,type=bind,consistency=cached" ], // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, + "features": { + "ghcr.io/devcontainers/features/github-cli:1": {} + }, // // Use 'forwardPorts' to make a list of ports inside the container available locally. "forwardPorts": [ @@ -22,10 +25,10 @@ // "shutdownAction": "none", // // Use 'initializeCommand' to run commands before the container is created. - "initializeCommand": "mkdir -p ~/.claude", + "initializeCommand": "mkdir -p ~/.claude && touch ~/.gitconfig", // // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "npm install -g @anthropic-ai/claude-code && (curl -fsSL https://cli.coderabbit.ai/install.sh | sh || echo 'CodeRabbit CLI installation failed, continuing...') && pnpm install", + "postCreateCommand": "bash .devcontainer/setup-devcontainer.sh", // // Configure tool-specific properties. "customizations": { diff --git a/.devcontainer/setup-devcontainer.sh b/.devcontainer/setup-devcontainer.sh new file mode 100644 index 000000000..4a4f1fd2d --- /dev/null +++ b/.devcontainer/setup-devcontainer.sh @@ -0,0 +1,15 @@ +#!/bin/bash +set -euo pipefail + +# Install Claude Code CLI +npm install -g @anthropic-ai/claude-code + +# Install CodeRabbit CLI (continue if fails) +curl -fsSL https://cli.coderabbit.ai/install.sh | sh || echo 'CodeRabbit CLI installation failed, continuing...' + +# Install RTK — token optimization proxy for AI coding assistants (60-90% reduction) +curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/master/install.sh | sh || echo 'RTK installation failed, continuing...' +rtk init -g --auto-patch || echo 'RTK init failed, continuing...' + +# Install project dependencies +pnpm install diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 63c04f796..31068f5a0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -70,6 +70,7 @@ - [Claude Code](https://docs.anthropic.com/en/docs/claude-code) - AI コーディングアシスタント(VS Code 拡張: `anthropic.claude-code`) - [superpowers plugin](https://github.com/obra/superpowers) - `/writing-plans` スキルによる実装前の詳細計画生成 + - [RTK](https://github.com/rtk-ai/rtk) - AI コーディングアシスタント向けトークン最適化プロキシ(60–90% 削減) - [CodeRabbit](https://coderabbit.ai/) - AI コードレビュー - CodeRabbit CLI (`coderabbit review --plain`) — milestone 区切りでのローカルレビュー - CodeRabbit CI — PR 作成後の自動レビュー(最終品質ゲート)