mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-04-07 01:33:31 +08:00
fix: harden unicode safety checks
This commit is contained in:
@@ -183,7 +183,7 @@ Artifacts generated:
|
||||
╔══════════════════════════════════════════════════════════════╗
|
||||
║ E2Eテスト結果 ║
|
||||
╠══════════════════════════════════════════════════════════════╣
|
||||
║ ステータス: ✅ 全テスト合格 ║
|
||||
║ ステータス: PASS: 全テスト合格 ║
|
||||
║ 合計: 3テスト ║
|
||||
║ 合格: 3 (100%) ║
|
||||
║ 失敗: 0 ║
|
||||
@@ -192,15 +192,15 @@ Artifacts generated:
|
||||
╚══════════════════════════════════════════════════════════════╝
|
||||
|
||||
アーティファクト:
|
||||
📸 スクリーンショット: 2ファイル
|
||||
📹 ビデオ: 0ファイル (失敗時のみ)
|
||||
🔍 トレース: 0ファイル (失敗時のみ)
|
||||
📊 HTMLレポート: playwright-report/index.html
|
||||
スクリーンショット: 2ファイル
|
||||
ビデオ: 0ファイル (失敗時のみ)
|
||||
トレース: 0ファイル (失敗時のみ)
|
||||
HTMLレポート: playwright-report/index.html
|
||||
|
||||
レポート表示: npx playwright show-report
|
||||
```
|
||||
|
||||
✅ E2E テストスイートは CI/CD 統合の準備ができました!
|
||||
PASS: E2E テストスイートは CI/CD 統合の準備ができました!
|
||||
|
||||
````
|
||||
|
||||
@@ -237,7 +237,7 @@ open artifacts/search-results.png
|
||||
テストが断続的に失敗する場合:
|
||||
|
||||
```
|
||||
⚠️ FLAKY TEST DETECTED: tests/e2e/markets/trade.spec.ts
|
||||
WARNING: FLAKY TEST DETECTED: tests/e2e/markets/trade.spec.ts
|
||||
|
||||
テストは10回中7回合格 (合格率70%)
|
||||
|
||||
@@ -257,10 +257,10 @@ open artifacts/search-results.png
|
||||
|
||||
デフォルトでは、テストは複数のブラウザで実行されます:
|
||||
|
||||
* ✅ Chromium(デスクトップ Chrome)
|
||||
* ✅ Firefox(デスクトップ)
|
||||
* ✅ WebKit(デスクトップ Safari)
|
||||
* ✅ Mobile Chrome(オプション)
|
||||
* PASS: Chromium(デスクトップ Chrome)
|
||||
* PASS: Firefox(デスクトップ)
|
||||
* PASS: WebKit(デスクトップ Safari)
|
||||
* PASS: Mobile Chrome(オプション)
|
||||
|
||||
`playwright.config.ts` で設定してブラウザを調整します。
|
||||
|
||||
@@ -288,7 +288,7 @@ CI パイプラインに追加:
|
||||
|
||||
PMX の場合、以下の E2E テストを優先:
|
||||
|
||||
**🔴 重大(常に成功する必要):**
|
||||
**重大(常に成功する必要):**
|
||||
|
||||
1. ユーザーがウォレットを接続できる
|
||||
2. ユーザーが市場をブラウズできる
|
||||
@@ -298,7 +298,7 @@ PMX の場合、以下の E2E テストを優先:
|
||||
6. 市場が正しく決済される
|
||||
7. ユーザーが資金を引き出せる
|
||||
|
||||
**🟡 重要:**
|
||||
**重要:**
|
||||
|
||||
1. 市場作成フロー
|
||||
2. ユーザープロフィール更新
|
||||
@@ -311,21 +311,21 @@ PMX の場合、以下の E2E テストを優先:
|
||||
|
||||
**すべき事:**
|
||||
|
||||
* ✅ 保守性を高めるためページオブジェクトモデルを使用します
|
||||
* ✅ セレクタとして data-testid 属性を使用します
|
||||
* ✅ 任意のタイムアウトではなく API レスポンスを待機
|
||||
* ✅ 重要なユーザージャーニーのエンドツーエンドテスト
|
||||
* ✅ main にマージする前にテストを実行
|
||||
* ✅ テスト失敗時にアーティファクトをレビュー
|
||||
* PASS: 保守性を高めるためページオブジェクトモデルを使用します
|
||||
* PASS: セレクタとして data-testid 属性を使用します
|
||||
* PASS: 任意のタイムアウトではなく API レスポンスを待機
|
||||
* PASS: 重要なユーザージャーニーのエンドツーエンドテスト
|
||||
* PASS: main にマージする前にテストを実行
|
||||
* PASS: テスト失敗時にアーティファクトをレビュー
|
||||
|
||||
**すべきでない事:**
|
||||
|
||||
* ❌ 不安定なセレクタを使用します(CSS クラスは変わる可能性)
|
||||
* ❌ 実装の詳細をテスト
|
||||
* ❌ 本番環境に対してテストを実行
|
||||
* ❌ 不安定なテストを無視
|
||||
* ❌ 失敗時にアーティファクトレビューをスキップ
|
||||
* ❌ E2E テストですべてのエッジケースをテスト(単体テストを使用します)
|
||||
* FAIL: 不安定なセレクタを使用します(CSS クラスは変わる可能性)
|
||||
* FAIL: 実装の詳細をテスト
|
||||
* FAIL: 本番環境に対してテストを実行
|
||||
* FAIL: 不安定なテストを無視
|
||||
* FAIL: 失敗時にアーティファクトレビューをスキップ
|
||||
* FAIL: E2E テストですべてのエッジケースをテスト(単体テストを使用します)
|
||||
|
||||
## 重要な注意事項
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@ instinctsが分離の恩恵を受ける複雑な複数ステップのプロセ
|
||||
## 出力フォーマット
|
||||
|
||||
```
|
||||
🧬 進化分析
|
||||
進化分析
|
||||
==================
|
||||
|
||||
進化の準備ができた3つのクラスターを発見:
|
||||
|
||||
@@ -140,7 +140,7 @@ ok project/internal/handler 0.023s
|
||||
| 変更されたファイル | 2 |
|
||||
| 残存問題 | 0 |
|
||||
|
||||
ビルドステータス: ✅ 成功
|
||||
ビルドステータス: PASS: 成功
|
||||
```
|
||||
|
||||
## 修正される一般的なエラー
|
||||
|
||||
@@ -124,16 +124,16 @@ return fmt.Errorf("get user %s: %w", userID, err)
|
||||
- HIGH: 1
|
||||
- MEDIUM: 0
|
||||
|
||||
推奨: ❌ CRITICAL問題が修正されるまでマージをブロック
|
||||
推奨: FAIL: CRITICAL問題が修正されるまでマージをブロック
|
||||
```
|
||||
|
||||
## 承認基準
|
||||
|
||||
| ステータス | 条件 |
|
||||
|--------|-----------|
|
||||
| ✅ 承認 | CRITICALまたはHIGH問題なし |
|
||||
| ⚠️ 警告 | MEDIUM問題のみ(注意してマージ) |
|
||||
| ❌ ブロック | CRITICALまたはHIGH問題が発見された |
|
||||
| PASS: 承認 | CRITICALまたはHIGH問題なし |
|
||||
| WARNING: 警告 | MEDIUM問題のみ(注意してマージ) |
|
||||
| FAIL: ブロック | CRITICALまたはHIGH問題が発見された |
|
||||
|
||||
## 他のコマンドとの統合
|
||||
|
||||
|
||||
@@ -70,17 +70,17 @@ instincts:
|
||||
## プライバシーに関する考慮事項
|
||||
|
||||
エクスポートに含まれる内容:
|
||||
- ✅ トリガーパターン
|
||||
- ✅ アクション
|
||||
- ✅ 信頼度スコア
|
||||
- ✅ ドメイン
|
||||
- ✅ 観察回数
|
||||
- PASS: トリガーパターン
|
||||
- PASS: アクション
|
||||
- PASS: 信頼度スコア
|
||||
- PASS: ドメイン
|
||||
- PASS: 観察回数
|
||||
|
||||
エクスポートに含まれない内容:
|
||||
- ❌ 実際のコードスニペット
|
||||
- ❌ ファイルパス
|
||||
- ❌ セッション記録
|
||||
- ❌ 個人識別情報
|
||||
- FAIL: 実際のコードスニペット
|
||||
- FAIL: ファイルパス
|
||||
- FAIL: セッション記録
|
||||
- FAIL: 個人識別情報
|
||||
|
||||
## フラグ
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ python3 ~/.claude/skills/continuous-learning-v2/scripts/instinct-cli.py import <
|
||||
## インポートプロセス
|
||||
|
||||
```
|
||||
📥 instinctsをインポート中: team-instincts.yaml
|
||||
instinctsをインポート中: team-instincts.yaml
|
||||
================================================
|
||||
|
||||
12件のinstinctsが見つかりました。
|
||||
@@ -61,19 +61,19 @@ python3 ~/.claude/skills/continuous-learning-v2/scripts/instinct-cli.py import <
|
||||
|
||||
## 重複instincts (3)
|
||||
類似のinstinctsが既に存在:
|
||||
⚠️ prefer-functional-style
|
||||
WARNING: prefer-functional-style
|
||||
ローカル: 信頼度0.8, 12回の観測
|
||||
インポート: 信頼度0.7
|
||||
→ ローカルを保持 (信頼度が高い)
|
||||
|
||||
⚠️ test-first-workflow
|
||||
WARNING: test-first-workflow
|
||||
ローカル: 信頼度0.75
|
||||
インポート: 信頼度0.9
|
||||
→ インポートに更新 (信頼度が高い)
|
||||
|
||||
## 競合instincts (1)
|
||||
ローカルのinstinctsと矛盾:
|
||||
❌ use-classes-for-services
|
||||
FAIL: use-classes-for-services
|
||||
競合: avoid-classes
|
||||
→ スキップ (手動解決が必要)
|
||||
|
||||
@@ -130,7 +130,7 @@ Skill Creatorからインポートする場合:
|
||||
|
||||
インポート後:
|
||||
```
|
||||
✅ インポート完了!
|
||||
PASS: インポート完了!
|
||||
|
||||
追加: 8件のinstincts
|
||||
更新: 1件のinstinct
|
||||
|
||||
@@ -39,7 +39,7 @@ python3 ~/.claude/skills/continuous-learning-v2/scripts/instinct-cli.py status
|
||||
## 出力形式
|
||||
|
||||
```
|
||||
📊 instinctステータス
|
||||
instinctステータス
|
||||
==================
|
||||
|
||||
## コードスタイル (4 instincts)
|
||||
|
||||
@@ -204,9 +204,9 @@ Claudeの統合計画での欠落リスクを減らすために、両方のモ
|
||||
3. **太字テキスト**でプロンプトを出力(**保存された実際のファイルパスを使用する必要があります**):
|
||||
|
||||
---
|
||||
**計画が生成され、`.claude/plan/actual-feature-name.md`に保存されました**
|
||||
**計画が生成され、`.claude/plan/actual-feature-name.md`に保存されました**
|
||||
|
||||
**上記の計画をレビューしてください。以下のことができます:**
|
||||
**上記の計画をレビューしてください。以下のことができます:**
|
||||
- **計画を変更**: 調整が必要なことを教えてください、計画を更新します
|
||||
- **計画を実行**: 以下のコマンドを新しいセッションにコピー
|
||||
|
||||
@@ -215,7 +215,7 @@ Claudeの統合計画での欠落リスクを減らすために、両方のモ
|
||||
```
|
||||
---
|
||||
|
||||
**注意**: 上記の`actual-feature-name.md`は実際に保存されたファイル名で置き換える必要があります!
|
||||
**注意**: 上記の`actual-feature-name.md`は実際に保存されたファイル名で置き換える必要があります!
|
||||
|
||||
4. **現在のレスポンスを直ちに終了**(ここで停止。これ以上のツール呼び出しはありません。)
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ Agent:
|
||||
## 静的解析結果
|
||||
✓ ruff: 問題なし
|
||||
✓ mypy: エラーなし
|
||||
⚠️ black: 2ファイルが再フォーマット必要
|
||||
WARNING: black: 2ファイルが再フォーマット必要
|
||||
✓ bandit: セキュリティ問題なし
|
||||
|
||||
## 発見された問題
|
||||
@@ -155,7 +155,7 @@ with open("config.json") as f: # 良い
|
||||
- HIGH: 1
|
||||
- MEDIUM: 2
|
||||
|
||||
推奨: ❌ CRITICAL問題が修正されるまでマージをブロック
|
||||
推奨: FAIL: CRITICAL問題が修正されるまでマージをブロック
|
||||
|
||||
## フォーマット必要
|
||||
実行: `black app/routes/user.py app/services/auth.py`
|
||||
@@ -165,9 +165,9 @@ with open("config.json") as f: # 良い
|
||||
|
||||
| ステータス | 条件 |
|
||||
|--------|-----------|
|
||||
| ✅ 承認 | CRITICALまたはHIGH問題なし |
|
||||
| ⚠️ 警告 | MEDIUM問題のみ(注意してマージ) |
|
||||
| ❌ ブロック | CRITICALまたはHIGH問題が発見された |
|
||||
| PASS: 承認 | CRITICALまたはHIGH問題なし |
|
||||
| WARNING: 警告 | MEDIUM問題のみ(注意してマージ) |
|
||||
| FAIL: ブロック | CRITICALまたはHIGH問題が発見された |
|
||||
|
||||
## 他のコマンドとの統合
|
||||
|
||||
|
||||
@@ -133,7 +133,7 @@ FAIL lib/liquidity.test.ts
|
||||
1 test failed, 0 passed
|
||||
```
|
||||
|
||||
✅ テストは期待通りに失敗しました。実装の準備ができました。
|
||||
PASS: テストは期待通りに失敗しました。実装の準備ができました。
|
||||
|
||||
## ステップ4: 最小限のコードを実装(GREEN)
|
||||
|
||||
@@ -179,7 +179,7 @@ PASS lib/liquidity.test.ts
|
||||
3 tests passed
|
||||
```
|
||||
|
||||
✅ すべてのテストが合格しました!
|
||||
PASS: すべてのテストが合格しました!
|
||||
|
||||
## ステップ6: リファクタリング(IMPROVE)
|
||||
|
||||
@@ -236,7 +236,7 @@ PASS lib/liquidity.test.ts
|
||||
3 tests passed
|
||||
```
|
||||
|
||||
✅ リファクタリング完了、テストはまだ合格しています!
|
||||
PASS: リファクタリング完了、テストはまだ合格しています!
|
||||
|
||||
## ステップ8: カバレッジの確認
|
||||
|
||||
@@ -247,29 +247,29 @@ File | % Stmts | % Branch | % Funcs | % Lines
|
||||
---------------|---------|----------|---------|--------
|
||||
liquidity.ts | 100 | 100 | 100 | 100
|
||||
|
||||
Coverage: 100% ✅ (Target: 80%)
|
||||
Coverage: 100% PASS: (Target: 80%)
|
||||
```
|
||||
|
||||
✅ TDDセッション完了!
|
||||
PASS: TDDセッション完了!
|
||||
```
|
||||
|
||||
## TDDベストプラクティス
|
||||
|
||||
**すべきこと:**
|
||||
- ✅ 実装の前にまずテストを書く
|
||||
- ✅ テストを実行し、実装前に失敗することを確認
|
||||
- ✅ テストに合格するための最小限のコードを書く
|
||||
- ✅ テストが緑色になってからのみリファクタリング
|
||||
- ✅ エッジケースとエラーシナリオを追加
|
||||
- ✅ 80%以上のカバレッジを目指す(重要なコードは100%)
|
||||
- PASS: 実装の前にまずテストを書く
|
||||
- PASS: テストを実行し、実装前に失敗することを確認
|
||||
- PASS: テストに合格するための最小限のコードを書く
|
||||
- PASS: テストが緑色になってからのみリファクタリング
|
||||
- PASS: エッジケースとエラーシナリオを追加
|
||||
- PASS: 80%以上のカバレッジを目指す(重要なコードは100%)
|
||||
|
||||
**してはいけないこと:**
|
||||
- ❌ テストの前に実装を書く
|
||||
- ❌ 各変更後のテスト実行をスキップ
|
||||
- ❌ 一度に多くのコードを書く
|
||||
- ❌ 失敗するテストを無視
|
||||
- ❌ 実装の詳細をテスト(動作をテスト)
|
||||
- ❌ すべてをモック化(統合テストを優先)
|
||||
- FAIL: テストの前に実装を書く
|
||||
- FAIL: 各変更後のテスト実行をスキップ
|
||||
- FAIL: 一度に多くのコードを書く
|
||||
- FAIL: 失敗するテストを無視
|
||||
- FAIL: 実装の詳細をテスト(動作をテスト)
|
||||
- FAIL: すべてをモック化(統合テストを優先)
|
||||
|
||||
## 含めるべきテストタイプ
|
||||
|
||||
|
||||
Reference in New Issue
Block a user