--- description: DIRECTタスクで実行した設定作業の動作確認とテストを行います。設定が正しく適用され、システムが期待通りに動作することを確認します。 --- # direct-verify ## 目的 DIRECTタスクで実行した設定作業の動作確認とテストを行います。設定が正しく適用され、システムが期待通りに動作することを確認します。 ## 前提条件 - `/tsumiki:direct-setup` が実行済み - タスクIDが提供されている - 設定作業の記録が存在する ## 実行内容 **【重要】**: direct-setupで作成されたファイルについて、コンパイルエラーや構文エラーが見つかった場合は自動的に解決を試行します。 1. **追加ルールの読み込み** - `docs/rule` ディレクトリが存在する場合は読み込み - `docs/rule/direct` ディレクトリが存在する場合は読み込み - `docs/rule/direct/verify` ディレクトリが存在する場合は読み込み - 各ディレクトリ内のすべてのファイルを読み込み、追加ルールとして適用 2. **技術スタック定義の読み込み** - `docs/tech-stack.md` が存在する場合は読み込み - 存在しない場合は `CLAUDE.md` から技術スタックセクションを読み込み - どちらも存在しない場合は `.claude/commands/tech-stack.md` のデフォルト定義を使用 3. **設定の確認** - 読み込んだ技術スタック定義に基づいて検証項目を特定 - @agent-symbol-searcher で関連設定や検証パターンを検索し、見つかったファイルをReadツールで読み込み - `docs/implements/{要件名}/{TASK-ID}/setup-report.md` をReadツールで読み込み、設定作業の結果を確認 - 環境変数の確認 - 設定ファイルの内容確認 - 依存関係のインストール状況確認 - サービスの起動状況確認 3. **コンパイル・構文確認** - TypeScript/JavaScript構文エラーチェック(該当する場合) - 設定ファイルの構文確認(JSON, YAML等) - SQL構文確認(該当する場合) - 最低限のコンパイルエラー解消 4. **動作テストの実行** - @agent-symbol-searcher で既存のテストケースや検証スクリプトを検索し、見つかったファイルをReadツールで読み込み - 基本的な動作確認 - 接続テスト - 権限の確認 - エラーケースの確認 5. **品質チェック** - セキュリティ設定の確認 - パフォーマンス基準の確認 - ログの確認 ## 出力先 確認記録は `docs/implements/{要件名}/{TASK-ID}/` ディレクトリに以下のファイルとして作成されます: - `verify-report.md`: 設定確認・動作テスト記録 ## 出力フォーマット例 ````markdown # {TASK-ID} 設定確認・動作テスト ## 確認概要 - **タスクID**: {TASK-ID} - **確認内容**: {設定確認の概要} - **実行日時**: {実行日時} - **実行者**: {実行者} ## 設定確認結果 ### 1. 環境変数の確認 ```bash # 実行したコマンド echo $NODE_ENV echo $DATABASE_URL ``` ```` **確認結果**: - [x] NODE_ENV: development (期待値: development) - [x] DATABASE_URL: postgresql://localhost:5432/mydb (期待値: 正しいDB URL) ### 2. 設定ファイルの確認 **確認ファイル**: `config/database.json` ```bash # 実行したコマンド cat config/database.json | jq . ``` **確認結果**: - [x] ファイルが存在する - [x] JSON形式が正しい - [x] 必要な設定項目が含まれている ## コンパイル・構文チェック結果 ### 1. TypeScript/JavaScript構文チェック ```bash # TypeScriptファイルがある場合 npx tsc --noEmit --skipLibCheck # JavaScript構文チェック node --check *.js ``` **チェック結果**: - [x] TypeScript構文エラー: なし - [x] JavaScript構文エラー: なし - [x] import/require文: 正常 ### 2. 設定ファイル構文チェック ```bash # JSON設定ファイルの構文チェック cat config/*.json | jq empty # YAML設定ファイルの構文チェック(該当する場合) yamllint config/*.yml ``` **チェック結果**: - [x] JSON構文: 正常 - [x] YAML構文: 正常(該当する場合) - [x] 設定項目の妥当性: 確認済み ### 3. SQL構文チェック(該当する場合) ```bash # SQL構文の基本チェック psql -d mydb --single-transaction --set ON_ERROR_STOP=on -f schema.sql --dry-run ``` **チェック結果**: - [x] SQL構文: 正常 - [x] テーブル定義: 正常 - [x] 制約定義: 正常 ### 3. 依存関係の確認 ```bash # 実行したコマンド npm list express pg ``` **確認結果**: - [x] express: インストール済み - [x] pg: インストール済み ### 4. データベース接続テスト ```bash # 実行したコマンド psql -d mydb -c "SELECT 1;" ``` **確認結果**: - [x] データベース接続成功 - [x] クエリ実行成功 ## 動作テスト結果 ### 1. 基本動作テスト ```bash # 実行したテストコマンド node -e "console.log('Hello, World!');" ``` **テスト結果**: - [x] Node.js実行環境: 正常 - [x] 基本的なJavaScript実行: 正常 ### 2. データベース接続テスト ```javascript // テストスクリプト const { Pool } = require('pg'); const pool = new Pool({ connectionString: process.env.DATABASE_URL, }); pool.query('SELECT NOW()', (err, res) => { if (err) { console.error('Error:', err); } else { console.log('Connected:', res.rows[0]); } pool.end(); }); ``` **テスト結果**: - [x] データベース接続: 正常 - [x] クエリ実行: 正常 - [x] 接続終了: 正常 ### 3. セキュリティ設定テスト ```bash # 実行したコマンド ls -la config/ ps aux | grep node ``` **テスト結果**: - [x] 設定ファイルの権限: 適切 - [x] プロセスの実行権限: 適切 - [x] 機密情報の保護: 適切 ## 品質チェック結果 ### パフォーマンス確認 - [x] 起動時間: 2秒以内 - [x] メモリ使用量: 256MB以内 - [x] CPU使用率: 10%以内 ### ログ確認 - [x] エラーログ: 異常なし - [x] 警告ログ: 問題なし - [x] 情報ログ: 適切に出力 ## 全体的な確認結果 - [x] 設定作業が正しく完了している - [x] 全ての動作テストが成功している - [x] 品質基準を満たしている - [x] 次のタスクに進む準備が整っている ## 発見された問題と解決 ### 構文エラー・コンパイルエラーの解決 **自動解決を試行する問題**: - TypeScript/JavaScript構文エラー - JSON/YAML構文エラー - 基本的なSQL構文エラー - import/require文の問題 ### 問題1: {問題があれば記載} - **問題内容**: {問題の詳細} - **発見方法**: {構文チェック/コンパイル/動作テスト} - **重要度**: {高/中/低} - **自動解決**: {実行した解決コマンド・修正内容} - **解決結果**: {解決済み/手動対応が必要} ### 解決実行ログ ```bash # 実行した解決コマンド例 # 構文エラー修正 sed -i 's/typo/correct/g' config.js # 依存関係の修正 npm install missing-package # 設定ファイル修正 jq '.port = 3000' config.json > temp.json && mv temp.json config.json ``` **解決結果**: - [x] 問題1: 解決済み - [x] 問題2: 解決済み - [ ] 問題3: 手動対応が必要(詳細は推奨事項に記載) ## 推奨事項 - {改善提案があれば記載} - {最適化の提案があれば記載} ## 次のステップ - タスクの完了報告 - 関連するタスクの開始準備 - 必要に応じて設定の微調整 ```` ## 実行後の確認 - `docs/implements/{要件名}/{TASK-ID}/verify-report.md` ファイルが作成されていることを確認 - 全ての確認項目が完了していることを確認 - 問題が発見された場合は適切に対処されていることを確認 - タスクの完了条件を満たしていることを確認 - 次のタスクに進む準備が整っていることを確認 ## ディレクトリ確認 `docs/implements/{要件名}/{TASK-ID}/` ディレクトリが存在することを確認してください(direct-setupで作成済みのはず) ## タスクの完了マーキング 品質チェックが十分で、全ての確認項目がクリアされた場合は、**自動的に**tasksディレクトリの該当するタスクファイルに完了マークを付けてください。 ### 完了条件 以下の条件を全て満たす場合にタスクを完了とマークします: - [ ] 全ての設定確認項目がクリア - [ ] コンパイル・構文チェックが成功(エラーがすべて解決済み) - [ ] 全ての動作テストが成功 - [ ] 品質チェック項目が基準を満たしている - [ ] 発見された問題が適切に対処されている - [ ] セキュリティ設定が適切 - [ ] パフォーマンス基準を満たしている ### 完了マークの付け方 1. `docs/implements/{要件名}/{TASK-ID}/verify-report.md` で完了条件を確認 2. 該当するタスクファイル(taskman-phase*.md)を特定 3. タスクの完了状況を以下のように更新: - `- [ ] **タスク完了**` → `- [x] **タスク完了** ✅ 完了 (YYYY-MM-DD)` - 完了条件のチェックボックスも `[x]` に変更 4. 必要に応じて進捗概要(taskman-overview.md)も更新 ## README.mdの更新 タスクが完了した場合、プロジェクトのルートディレクトリの `README.md` を作成または更新してください。 ### 更新内容 1. **現在のREADME.mdの確認**: 既存のREADME.mdがある場合は内容を確認 2. **完了したタスクの情報を追加**: - 実装した機能の概要 - 設定手順 - 動作確認方法 - 使用方法 3. **プロジェクト全体の情報を更新**: - セットアップ手順 - 依存関係 - 環境要件 - 開発・運用手順 ### README.md更新フォーマット例 ```markdown # プロジェクト名 ## 概要 {プロジェクトの概要} ## 完了した機能 ### {TASK-ID}: {タスク名} - **実装日**: {実装日} - **概要**: {機能の概要} - **設定内容**: {設定した内容} - **動作確認**: {動作確認の結果} ## セットアップ手順 ### 前提条件 - {必要な環境・ツール} ### インストール ```bash # 依存関係のインストール {インストールコマンド} # 環境変数の設定 {環境変数設定} ```` ### 起動方法 ```bash # 開発サーバーの起動 {起動コマンド} ``` ## 設定 ### 環境変数 - `{環境変数名}`: {説明} ### 設定ファイル - `{設定ファイルパス}`: {説明} ## 使用方法 {使用方法の説明} ## 開発 ### 開発環境の準備 {開発環境の準備手順} ### テスト {テストの実行方法} ## トラブルシューティング ### よくある問題 - **問題**: {問題の内容} - **解決方法**: {解決方法} ## 更新履歴 - {日付}: {TASK-ID} {変更内容} ``` ### 実行手順 1. 現在のREADME.mdを確認(存在しない場合は新規作成) 2. 完了したタスクの情報を追加 3. 必要に応じて他のセクションも更新 4. 変更内容をコミット ```