fix: harden unicode safety checks

This commit is contained in:
Affaan Mustafa
2026-03-29 08:59:06 -04:00
parent dd675d4258
commit 866d9ebb53
239 changed files with 3780 additions and 3962 deletions

View File

@@ -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 テストですべてのエッジケースをテスト(単体テストを使用します)
## 重要な注意事項

View File

@@ -92,7 +92,7 @@ instinctsが分離の恩恵を受ける複雑な複数ステップのプロセ
## 出力フォーマット
```
🧬 進化分析
進化分析
==================
進化の準備ができた3つのクラスターを発見:

View File

@@ -140,7 +140,7 @@ ok project/internal/handler 0.023s
| 変更されたファイル | 2 |
| 残存問題 | 0 |
ビルドステータス: 成功
ビルドステータス: PASS: 成功
```
## 修正される一般的なエラー

View File

@@ -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問題が発見された |
## 他のコマンドとの統合

View File

@@ -70,17 +70,17 @@ instincts:
## プライバシーに関する考慮事項
エクスポートに含まれる内容:
- トリガーパターン
- アクション
- 信頼度スコア
- ドメイン
- 観察回数
- PASS: トリガーパターン
- PASS: アクション
- PASS: 信頼度スコア
- PASS: ドメイン
- PASS: 観察回数
エクスポートに含まれない内容:
- 実際のコードスニペット
- ファイルパス
- セッション記録
- 個人識別情報
- FAIL: 実際のコードスニペット
- FAIL: ファイルパス
- FAIL: セッション記録
- FAIL: 個人識別情報
## フラグ

View File

@@ -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

View File

@@ -39,7 +39,7 @@ python3 ~/.claude/skills/continuous-learning-v2/scripts/instinct-cli.py status
## 出力形式
```
📊 instinctステータス
instinctステータス
==================
## コードスタイル (4 instincts)

View File

@@ -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. **現在のレスポンスを直ちに終了**(ここで停止。これ以上のツール呼び出しはありません。)

View File

@@ -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問題が発見された |
## 他のコマンドとの統合

View File

@@ -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: すべてをモック化(統合テストを優先)
## 含めるべきテストタイプ