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

11 KiB
Raw Blame History

description
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ツールで読み込み、設定作業の結果を確認
    • 環境変数の確認
    • 設定ファイルの内容確認
    • 依存関係のインストール状況確認
    • サービスの起動状況確認
  4. コンパイル・構文確認

    • TypeScript/JavaScript構文エラーチェック該当する場合
    • 設定ファイルの構文確認JSON, YAML等
    • SQL構文確認該当する場合
    • 最低限のコンパイルエラー解消
  5. 動作テストの実行

    • @agent-symbol-searcher で既存のテストケースや検証スクリプトを検索し、見つかったファイルをReadツールで読み込み
    • 基本的な動作確認
    • 接続テスト
    • 権限の確認
    • エラーケースの確認
  6. 品質チェック

    • セキュリティ設定の確認
    • パフォーマンス基準の確認
    • ログの確認

出力先

確認記録は docs/implements/{要件名}/{TASK-ID}/ ディレクトリに以下のファイルとして作成されます:

  • verify-report.md: 設定確認・動作テスト記録

出力フォーマット例

# {TASK-ID} 設定確認・動作テスト

## 確認概要

- **タスクID**: {TASK-ID}
- **確認内容**: {設定確認の概要}
- **実行日時**: {実行日時}
- **実行者**: {実行者}

## 設定確認結果

### 1. 環境変数の確認

```bash
# 実行したコマンド
echo $NODE_ENV
echo $DATABASE_URL
```

確認結果:

  • NODE_ENV: development (期待値: development)
  • DATABASE_URL: postgresql://localhost:5432/mydb (期待値: 正しいDB URL)

2. 設定ファイルの確認

確認ファイル: config/database.json

# 実行したコマンド
cat config/database.json | jq .

確認結果:

  • ファイルが存在する
  • JSON形式が正しい
  • 必要な設定項目が含まれている

コンパイル・構文チェック結果

1. TypeScript/JavaScript構文チェック

# TypeScriptファイルがある場合
npx tsc --noEmit --skipLibCheck

# JavaScript構文チェック
node --check *.js

チェック結果:

  • TypeScript構文エラー: なし
  • JavaScript構文エラー: なし
  • import/require文: 正常

2. 設定ファイル構文チェック

# JSON設定ファイルの構文チェック
cat config/*.json | jq empty

# YAML設定ファイルの構文チェック該当する場合
yamllint config/*.yml

チェック結果:

  • JSON構文: 正常
  • YAML構文: 正常(該当する場合)
  • 設定項目の妥当性: 確認済み

3. SQL構文チェック該当する場合

# SQL構文の基本チェック
psql -d mydb --single-transaction --set ON_ERROR_STOP=on -f schema.sql --dry-run

チェック結果:

  • SQL構文: 正常
  • テーブル定義: 正常
  • 制約定義: 正常

3. 依存関係の確認

# 実行したコマンド
npm list express pg

確認結果:

  • express: インストール済み
  • pg: インストール済み

4. データベース接続テスト

# 実行したコマンド
psql -d mydb -c "SELECT 1;"

確認結果:

  • データベース接続成功
  • クエリ実行成功

動作テスト結果

1. 基本動作テスト

# 実行したテストコマンド
node -e "console.log('Hello, World!');"

テスト結果:

  • Node.js実行環境: 正常
  • 基本的なJavaScript実行: 正常

2. データベース接続テスト

// テストスクリプト
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();
});

テスト結果:

  • データベース接続: 正常
  • クエリ実行: 正常
  • 接続終了: 正常

3. セキュリティ設定テスト

# 実行したコマンド
ls -la config/
ps aux | grep node

テスト結果:

  • 設定ファイルの権限: 適切
  • プロセスの実行権限: 適切
  • 機密情報の保護: 適切

品質チェック結果

パフォーマンス確認

  • 起動時間: 2秒以内
  • メモリ使用量: 256MB以内
  • CPU使用率: 10%以内

ログ確認

  • エラーログ: 異常なし
  • 警告ログ: 問題なし
  • 情報ログ: 適切に出力

全体的な確認結果

  • 設定作業が正しく完了している
  • 全ての動作テストが成功している
  • 品質基準を満たしている
  • 次のタスクに進む準備が整っている

発見された問題と解決

構文エラー・コンパイルエラーの解決

自動解決を試行する問題:

  • TypeScript/JavaScript構文エラー
  • JSON/YAML構文エラー
  • 基本的なSQL構文エラー
  • import/require文の問題

問題1: {問題があれば記載}

  • 問題内容: {問題の詳細}
  • 発見方法: {構文チェック/コンパイル/動作テスト}
  • 重要度: {高/中/低}
  • 自動解決: {実行した解決コマンド・修正内容}
  • 解決結果: {解決済み/手動対応が必要}

解決実行ログ

# 実行した解決コマンド例
# 構文エラー修正
sed -i 's/typo/correct/g' config.js

# 依存関係の修正
npm install missing-package

# 設定ファイル修正
jq '.port = 3000' config.json > temp.json && mv temp.json config.json

解決結果:

  • 問題1: 解決済み
  • 問題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
# 依存関係のインストール
{インストールコマンド}

# 環境変数の設定
{環境変数設定}

起動方法

# 開発サーバーの起動
{起動コマンド}

設定

環境変数

  • {環境変数名}: {説明}

設定ファイル

  • {設定ファイルパス}: {説明}

使用方法

{使用方法の説明}

開発

開発環境の準備

{開発環境の準備手順}

テスト

{テストの実行方法}

トラブルシューティング

よくある問題

  • 問題: {問題の内容}
  • 解決方法: {解決方法}

更新履歴

  • {日付}: {TASK-ID} {変更内容}

### 実行手順
1. 現在のREADME.mdを確認存在しない場合は新規作成
2. 完了したタスクの情報を追加
3. 必要に応じて他のセクションも更新
4. 変更内容をコミット