.claude/skills/implement/SKILL.md
Issue番号を受け取り、ブランチ作成→TDD→実装→テスト確認→コミット→PRまでの開発サイクルを一貫して実行する。
npx skillsauth add rikunisikawa/health-logger implementInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Issue番号: $ARGUMENTS
以下のステップを順番に実行してください。
gh issue view $ARGUMENTS --repo rikunisikawa/health-logger
Lambda(Athena クエリを変更・追加する場合は必須):
docs/DATABASE_SCHEMA.md でテーブルスキーマ・カラム名・型を確認するdt カラムはパーティションキーのため WHERE 句で直接使用不可(DATE(recorded_at) を使う)フロントエンド(API 呼び出しを変更・追加する場合):
docs/API_REFERENCE.md でエンドポイント仕様・クエリパラメータ・レスポンス型を確認するfrontend/src/types.ts の型定義と API レスポンスの整合性を確認するgit switch main && git pull origin main
git switch -c feature/$ARGUMENTS-<簡潔な説明>
ブランチ命名規則:
| prefix | 用途 |
|--------|------|
| feature/ | 新機能追加 |
| fix/ | バグ修正 |
| chore/ | 設定・依存・リファクタ |
| terraform/ | インフラ変更のみ |
重要: テストは実装の「写し」になってはいけない。 「何が正しい動作か」をスキーマ・仕様から先に決め、それを assert するテストを書く。 実装前に pytest を実行して FAILED(RED)になることを必ず確認する。 FAILED にならない場合はテストが実装を検証できていない可能性がある。
Lambda(Python):
pytest lambda/<fn>/test_handler.py -v
# → FAILED であることを確認してから実装へ進む
テストで必ずカバーすること:
Athena クエリを追加・変更する場合は追加で必須:
call_args[1]["QueryString"] で取り出してアサートするDATE(recorded_at) vs dt)assert "dt >=" not in qs のような否定アサートも書く).claude/rules/python/testing.md の「Athena クエリを生成する Lambda の必須ルール」を参照フロントエンド(TypeScript):
npx tsc --noEmit
# → 型エラーが出る状態でOK(型定義だけ先に書く)
実装チェックリスト:
Python Lambda:
user_id を UUID 正規表現で検証(_UUID_RE.match())models.py に分離(handler.py に書かない)_json(status, body) ヘルパーで統一TypeScript フロントエンド:
strict: true を維持(tsconfig.json を緩めない)import.meta.env.VITE_* 経由useOfflineQueue フック経由のみ# Lambda
pytest lambda/<fn>/test_handler.py -v # 全件 PASSED を確認
# フロントエンド
npx tsc --noEmit # エラーなしを確認
# Lambda 全体
pytest lambda/ -v
# フロントエンド ビルド確認
cd frontend && npm run build
1件でも FAILED / ビルドエラーがあれば修正してから次へ進む。
差分全体を以下の観点でチェックする:
strict: true 維持sensitive = true 付与(Terraform 変数が対象の場合)問題があれば修正してステップ 5 に戻る。
# 対象ファイルを個別にステージング(git add -A は使わない)
git add <ファイル1> <ファイル2> ...
git commit -m "<type>: <変更内容の要約>"
コミットタイプ:
| type | 用途 |
|------|------|
| feat | 新機能 |
| fix | バグ修正 |
| test | テスト追加・修正 |
| refactor | リファクタ |
| chore | 設定・依存更新 |
git push -u origin <ブランチ名>
gh pr create \
--repo rikunisikawa/health-logger \
--title "<変更内容>" \
--body "$(cat <<'EOF'
## 関連イシュー
Closes #$ARGUMENTS
## 変更内容
- ...
## テスト確認
- [ ] pytest lambda/ -v → 全件 PASSED
- [ ] npx tsc --noEmit → エラーなし
- [ ] npm run build → 成功
## レビュー観点
- ...
EOF
)"
Closes #$ARGUMENTS が含まれているdocumentation
実装変更を検知し、対応するドキュメントの更新が必要な箇所を特定する PM スキル。変更ファイルと既存ドキュメントを照合し、更新候補と更新案を提示する。PR 作成時や documentation エージェントがドキュメントを更新するときに自動参照される。
development
React 18 + TypeScript strict + Amplify Auth v6 のフロントエンド実装パターン集。コンポーネント・カスタムフック・API クライアント・オフラインキューの実装を含む。frontend/ ディレクトリを変更するときに自動適用する。
testing
Terraform による AWS インフラ定義のパターン集。モジュール構造・variables.tf・outputs.tf の設計、terraform plan/validate の実行、IAM ポリシー定義など、Terraform コードを書く・修正するときに自動適用する。
data-ai
大きな Issue をサブタスクに分解し、子 Issue として作成する PM スキル。要件を実装単位(S/M/L)に分割し、依存関係を整理する。pm-agent がエピックを分割するときや実装着手前の分解フェーズで自動参照される。