Files
gh-classmethod-tsumiki/commands/direct-verify.md
2025-11-29 18:09:29 +08:00

428 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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. 変更内容をコミット
```