docs(ja-JP): translate plain text code blocks to Japanese

Translate English prose inside plain text code blocks (```text, ```)
across ja-JP documentation to Japanese, following the same approach
as PR #753 (zh-CN translation).

Translated content includes:
- Output template labels and status messages
- Folder tree inline comments
- CLI workflow descriptions
- Error/warning message examples
- Commit message templates and PR title examples

Technical identifiers, file paths, and actual code remain untranslated.
This commit is contained in:
Hirokazu Tanaka
2026-03-25 08:20:14 +09:00
parent 2166d80d58
commit bf7ed1fce2
24 changed files with 267 additions and 267 deletions

View File

@@ -356,11 +356,11 @@ description: /help に表示される短い説明
### 1. PRタイトル形式 ### 1. PRタイトル形式
``` ```
feat(skills): add rust-patterns skill feat(skills): Rustパターンスキルを追加
feat(agents): add api-designer agent feat(agents): APIデザイナーエージェントを追加
feat(hooks): add auto-format hook feat(hooks): 自動フォーマットフックを追加
fix(skills): update React patterns fix(skills): Reactパターンを更新
docs: improve contributing guide docs: 貢献ガイドを改善
``` ```
### 2. PR説明 ### 2. PR説明

View File

@@ -409,7 +409,7 @@ claude --version
Claude Code v2.1+は、インストール済みプラグインの`hooks/hooks.json`(規約)を自動読み込みします。`plugin.json`で明示的に宣言するとエラーが発生します: Claude Code v2.1+は、インストール済みプラグインの`hooks/hooks.json`(規約)を自動読み込みします。`plugin.json`で明示的に宣言するとエラーが発生します:
``` ```
Duplicate hooks file detected: ./hooks/hooks.json resolves to already-loaded file 重複するフックファイルを検出: ./hooks/hooks.json は既に読み込まれたファイルに解決されます
``` ```
**背景:** これは本リポジトリで複数の修正/リバート循環を引き起こしました([#29](https://github.com/affaan-m/everything-claude-code/issues/29), [#52](https://github.com/affaan-m/everything-claude-code/issues/52), [#103](https://github.com/affaan-m/everything-claude-code/issues/103)。Claude Codeバージョン間で動作が変わったため混乱がありました。今後を防ぐため回帰テストがあります。 **背景:** これは本リポジトリで複数の修正/リバート循環を引き起こしました([#29](https://github.com/affaan-m/everything-claude-code/issues/29), [#52](https://github.com/affaan-m/everything-claude-code/issues/52), [#103](https://github.com/affaan-m/everything-claude-code/issues/103)。Claude Codeバージョン間で動作が変わったため混乱がありました。今後を防ぐため回帰テストがあります。

View File

@@ -77,9 +77,9 @@ model: opus
各問題について: 各問題について:
``` ```
[CRITICAL] ハードコードされたAPIキー [CRITICAL] ハードコードされたAPIキー
File: src/api/client.ts:42 ファイル: src/api/client.ts:42
Issue: APIキーがソースコードに公開されている 問題: APIキーがソースコードに公開されている
Fix: 環境変数に移動 修正: 環境変数に移動
const apiKey = "sk-abc123"; // ❌ Bad const apiKey = "sk-abc123"; // ❌ Bad
const apiKey = process.env.API_KEY; // ✓ Good const apiKey = process.env.API_KEY; // ✓ Good

View File

@@ -341,20 +341,20 @@ x = x // 無意味な代入を削除
各修正試行後: 各修正試行後:
```text ```text
[FIXED] internal/handler/user.go:42 [修正済] internal/handler/user.go:42
Error: undefined: UserService エラー: undefined: UserService
Fix: Added import "project/internal/service" 修正: import を追加 "project/internal/service"
Remaining errors: 3 残りのエラー: 3
``` ```
最終サマリー: 最終サマリー:
```text ```text
Build Status: SUCCESS/FAILED ビルドステータス: SUCCESS/FAILED
Errors Fixed: N 修正済みエラー: N
Vet Warnings Fixed: N Vet 警告修正済み: N
Files Modified: list 変更ファイル: list
Remaining Issues: list (if any) 残りの問題: list (ある場合)
``` ```
## 重要な注意事項 ## 重要な注意事項

View File

@@ -228,9 +228,9 @@ model: opus
各問題について: 各問題について:
```text ```text
[CRITICAL] SQLインジェクション脆弱性 [CRITICAL] SQLインジェクション脆弱性
File: internal/repository/user.go:42 ファイル: internal/repository/user.go:42
Issue: ユーザー入力がSQLクエリに直接連結されている 問題: ユーザー入力がSQLクエリに直接連結されている
Fix: パラメータ化クエリを使用 修正: パラメータ化クエリを使用
query := "SELECT * FROM users WHERE id = " + userID // Bad query := "SELECT * FROM users WHERE id = " + userID // Bad
query := "SELECT * FROM users WHERE id = $1" // Good query := "SELECT * FROM users WHERE id = $1" // Good

View File

@@ -399,9 +399,9 @@ model: opus
各問題について: 各問題について:
```text ```text
[CRITICAL] SQLインジェクション脆弱性 [CRITICAL] SQLインジェクション脆弱性
File: app/routes/user.py:42 ファイル: app/routes/user.py:42
Issue: ユーザー入力がSQLクエリに直接補間されている 問題: ユーザー入力がSQLクエリに直接補間されている
Fix: パラメータ化クエリを使用 修正: パラメータ化クエリを使用
query = f"SELECT * FROM users WHERE id = {user_id}" # Bad query = f"SELECT * FROM users WHERE id = {user_id}" # Bad
query = "SELECT * FROM users WHERE id = %s" # Good query = "SELECT * FROM users WHERE id = %s" # Good

View File

@@ -35,12 +35,12 @@ echo "$(date +%Y-%m-%d-%H:%M) | $CHECKPOINT_NAME | $(git rev-parse --short HEAD)
3. レポート: 3. レポート:
``` ```
CHECKPOINT COMPARISON: $NAME チェックポイント比較: $NAME
============================ ============================
Files changed: X 変更されたファイル: X
Tests: +Y passed / -Z failed テスト: +Y 合格 / -Z 失敗
Coverage: +X% / -Y% カバレッジ: +X% / -Y%
Build: [PASS/FAIL] ビルド: [PASS/FAIL]
``` ```
## チェックポイント一覧表示 ## チェックポイント一覧表示
@@ -57,13 +57,13 @@ Build: [PASS/FAIL]
一般的なチェックポイント流: 一般的なチェックポイント流:
``` ```
[Start] --> /checkpoint create "feature-start" [開始] --> /checkpoint create "feature-start"
| |
[Implement] --> /checkpoint create "core-done" [実装] --> /checkpoint create "core-done"
| |
[Test] --> /checkpoint verify "core-done" [テスト] --> /checkpoint verify "core-done"
| |
[Refactor] --> /checkpoint create "refactor-done" [リファクタリング] --> /checkpoint create "refactor-done"
| |
[PR] --> /checkpoint verify "feature-start" [PR] --> /checkpoint verify "feature-start"
``` ```

View File

@@ -38,24 +38,24 @@ e2e-runner エージェントは:
## 使用します示例 ## 使用します示例
```` ````
User: /e2e Test the market search and view flow User: /e2e マーケット検索と表示フローをテスト
Agent (e2e-runner): Agent (e2e-runner):
# E2E Test Generation: Market Search and View Flow # E2Eテスト生成: マーケット検索と表示フロー
## Test Scenario Identified ## 特定されたテストシナリオ
**User Journey:** Market Search → View Results → Click Market → View Details **ユーザージャーニー:** マーケット検索 → 結果表示 → マーケットクリック → 詳細表示
**Test Coverage:** **テストカバレッジ:**
1. Navigate to markets page 1. マーケットページに遷移
2. Perform semantic search 2. セマンティック検索を実行
3. Verify search results 3. 検索結果を検証
4. Click on first result 4. 最初の結果をクリック
5. Verify market details page loads 5. マーケット詳細ページの読み込みを検証
6. Verify chart renders 6. チャートの描画を検証
## Generated Test Code ## 生成されたテストコード
```typescript ```typescript
// tests/e2e/markets/search-and-view.spec.ts // tests/e2e/markets/search-and-view.spec.ts
@@ -160,18 +160,18 @@ test.describe('Market Search and View Flow', () => {
## テスト実行 ## テスト実行
```bash ```bash
# Run the generated test # 生成されたテストを実行
npx playwright test tests/e2e/markets/search-and-view.spec.ts npx playwright test tests/e2e/markets/search-and-view.spec.ts
Running 3 tests using 3 workers 3つのテストを3ワーカーで実行中
✓ [chromium] search-and-view.spec.ts:5:3 user can search markets and view details (4.2s) ✓ [chromium] search-and-view.spec.ts:5:3 user can search markets and view details (4.2s)
✓ [chromium] search-and-view.spec.ts:52:3 search with no results shows empty state (1.8s) ✓ [chromium] search-and-view.spec.ts:52:3 search with no results shows empty state (1.8s)
✓ [chromium] search-and-view.spec.ts:67:3 can clear search and see all markets again (2.9s) ✓ [chromium] search-and-view.spec.ts:67:3 can clear search and see all markets again (2.9s)
3 passed (9.1s) 3件合格 (9.1s)
Artifacts generated: 生成されたアーティファクト:
- artifacts/search-results.png - artifacts/search-results.png
- artifacts/market-details.png - artifacts/market-details.png
- playwright-report/index.html - playwright-report/index.html
@@ -181,54 +181,54 @@ Artifacts generated:
``` ```
╔══════════════════════════════════════════════════════════════╗ ╔══════════════════════════════════════════════════════════════╗
║ E2E Test Results ║ E2Eテスト結果
╠══════════════════════════════════════════════════════════════╣ ╠══════════════════════════════════════════════════════════════╣
Status: ✅ ALL TESTS PASSED ステータス: ✅ 全テスト合格
Total: 3 tests 合計: 3テスト
Passed: 3 (100%) ║ 合格: 3 (100%) ║
Failed: 0 ║ 失敗: 0 ║
Flaky: 0 ║ 不安定: 0 ║
Duration: 9.1s ║ 所要時間: 9.1s ║
╚══════════════════════════════════════════════════════════════╝ ╚══════════════════════════════════════════════════════════════╝
Artifacts: アーティファクト:
📸 Screenshots: 2 files 📸 スクリーンショット: 2ファイル
📹 Videos: 0 files (only on failure) 📹 ビデオ: 0ファイル (失敗時のみ)
🔍 Traces: 0 files (only on failure) 🔍 トレース: 0ファイル (失敗時のみ)
📊 HTML Report: playwright-report/index.html 📊 HTMLレポート: playwright-report/index.html
View report: npx playwright show-report レポート表示: npx playwright show-report
``` ```
✅ E2E テストスイートは CI/CD 統合の準備ができました! ✅ E2E テストスイートは CI/CD 統合の準備ができました!
```` ````
## Test Artifacts ## テストアーティファクト
When tests run, the following artifacts are captured: テスト実行時、以下のアーティファクトがキャプチャされます:
**On All Tests:** **全テスト共通:**
- HTML Report with timeline and results - タイムラインと結果を含むHTMLレポート
- JUnit XML for CI integration - CI統合用のJUnit XML
**On Failure Only:** **失敗時のみ:**
- Screenshot of the failing state - 失敗状態のスクリーンショット
- Video recording of the test - テストのビデオ録画
- Trace file for debugging (step-by-step replay) - デバッグ用トレースファイル (ステップバイステップ再生)
- Network logs - ネットワークログ
- Console logs - コンソールログ
## Viewing Artifacts ## アーティファクトの確認
```bash ```bash
# View HTML report in browser # ブラウザでHTMLレポートを表示
npx playwright show-report npx playwright show-report
# View specific trace file # 特定のトレースファイルを表示
npx playwright show-trace artifacts/trace-abc123.zip npx playwright show-trace artifacts/trace-abc123.zip
# Screenshots are saved in artifacts/ directory # スクリーンショットはartifacts/ディレクトリに保存
open artifacts/search-results.png open artifacts/search-results.png
```` ````
@@ -239,18 +239,18 @@ open artifacts/search-results.png
``` ```
⚠️ FLAKY TEST DETECTED: tests/e2e/markets/trade.spec.ts ⚠️ FLAKY TEST DETECTED: tests/e2e/markets/trade.spec.ts
Test passed 7/10 runs (70% pass rate) テストは10回中7回合格 (合格率70%)
Common failure: よくある失敗:
"Timeout waiting for element '[data-testid="confirm-btn"]'" "Timeout waiting for element '[data-testid="confirm-btn"]'"
Recommended fixes: 推奨修正:
1. Add explicit wait: await page.waitForSelector('[data-testid="confirm-btn"]') 1. 明示的な待機を追加: await page.waitForSelector('[data-testid="confirm-btn"]')
2. Increase timeout: { timeout: 10000 } 2. タイムアウトを増加: { timeout: 10000 }
3. Check for race conditions in component 3. コンポーネントの競合状態を確認
4. Verify element is not hidden by animation 4. 要素がアニメーションで隠れていないか確認
Quarantine recommendation: Mark as test.fixme() until fixed 隔離推奨: 修正されるまでtest.fixme()としてマーク
``` ```
## ブラウザ設定 ## ブラウザ設定
@@ -350,21 +350,21 @@ PMX の場合、以下の E2E テストを優先:
## 快速命令 ## 快速命令
```bash ```bash
# Run all E2E tests # 全E2Eテストを実行
npx playwright test npx playwright test
# Run specific test file # 特定のテストファイルを実行
npx playwright test tests/e2e/markets/search.spec.ts npx playwright test tests/e2e/markets/search.spec.ts
# Run in headed mode (see browser) # ヘッドモードで実行 (ブラウザ表示)
npx playwright test --headed npx playwright test --headed
# Debug test # テストをデバッグ
npx playwright test --debug npx playwright test --debug
# Generate test code # テストコードを生成
npx playwright codegen http://localhost:3000 npx playwright codegen http://localhost:3000
# View report # レポートを表示
npx playwright show-report npx playwright show-report
``` ```

View File

@@ -92,36 +92,36 @@ instinctsが分離の恩恵を受ける複雑な複数ステップのプロセ
## 出力フォーマット ## 出力フォーマット
``` ```
🧬 Evolve Analysis 🧬 進化分析
================== ==================
進化の準備ができた3つのクラスターを発見: 進化の準備ができた3つのクラスターを発見:
## クラスター1: データベースマイグレーションワークフロー ## クラスター1: データベースマイグレーションワークフロー
Instincts: new-table-migration, update-schema, regenerate-types Instincts: new-table-migration, update-schema, regenerate-types
Type: Command タイプ: Command
Confidence: 85%(12件の観測に基づく) 信頼度: 85%(12件の観測に基づく)
作成: /new-tableコマンド 作成: /new-tableコマンド
Files: ファイル:
- ~/.claude/homunculus/evolved/commands/new-table.md - ~/.claude/homunculus/evolved/commands/new-table.md
## クラスター2: 関数型コードスタイル ## クラスター2: 関数型コードスタイル
Instincts: prefer-functional, use-immutable, avoid-classes, pure-functions Instincts: prefer-functional, use-immutable, avoid-classes, pure-functions
Type: Skill タイプ: Skill
Confidence: 78%(8件の観測に基づく) 信頼度: 78%(8件の観測に基づく)
作成: functional-patternsスキル 作成: functional-patternsスキル
Files: ファイル:
- ~/.claude/homunculus/evolved/skills/functional-patterns.md - ~/.claude/homunculus/evolved/skills/functional-patterns.md
## クラスター3: デバッグプロセス ## クラスター3: デバッグプロセス
Instincts: debug-check-logs, debug-isolate, debug-reproduce, debug-verify Instincts: debug-check-logs, debug-isolate, debug-reproduce, debug-verify
Type: Agent タイプ: Agent
Confidence: 72%(6件の観測に基づく) 信頼度: 72%(6件の観測に基づく)
作成: debuggerエージェント 作成: debuggerエージェント
Files: ファイル:
- ~/.claude/homunculus/evolved/agents/debugger.md - ~/.claude/homunculus/evolved/agents/debugger.md
--- ---

View File

@@ -62,9 +62,9 @@ internal/handler/api.go:58:2: missing return at end of function
## 修正1: 未定義の識別子 ## 修正1: 未定義の識別子
File: internal/service/user.go:25 ファイル: internal/service/user.go:25
Error: undefined: UserRepository エラー: undefined: UserRepository
Cause: インポート欠落 原因: インポート欠落
```go ```go
// インポートを追加 // インポートを追加
@@ -83,8 +83,8 @@ $ go build ./...
## 修正2: 型の不一致 ## 修正2: 型の不一致
File: internal/handler/api.go:42 ファイル: internal/handler/api.go:42
Error: cannot use x (type string) as type int エラー: cannot use x (type string) as type int
```go ```go
// 変更前 // 変更前
@@ -101,8 +101,8 @@ $ go build ./...
## 修正3: 戻り値の欠落 ## 修正3: 戻り値の欠落
File: internal/handler/api.go:58 ファイル: internal/handler/api.go:58
Error: missing return at end of function エラー: missing return at end of function
```go ```go
func GetUser(id string) (*User, error) { func GetUser(id string) (*User, error) {

View File

@@ -85,8 +85,8 @@ Agent:
## 発見された問題 ## 発見された問題
[CRITICAL] 競合状態 [CRITICAL] 競合状態
File: internal/service/auth.go:45 ファイル: internal/service/auth.go:45
Issue: 同期化なしで共有マップにアクセス 問題: 同期化なしで共有マップにアクセス
```go ```go
var cache = map[string]*Session{} // 並行アクセス! var cache = map[string]*Session{} // 並行アクセス!
@@ -94,7 +94,7 @@ func GetSession(id string) *Session {
return cache[id] // 競合状態 return cache[id] // 競合状態
} }
``` ```
Fix: sync.RWMutexまたはsync.Mapを使用 修正: sync.RWMutexまたはsync.Mapを使用
```go ```go
var ( var (
cache = map[string]*Session{} cache = map[string]*Session{}
@@ -109,12 +109,12 @@ func GetSession(id string) *Session {
``` ```
[HIGH] エラーコンテキストの欠落 [HIGH] エラーコンテキストの欠落
File: internal/handler/user.go:28 ファイル: internal/handler/user.go:28
Issue: コンテキストなしでエラーを返す 問題: コンテキストなしでエラーを返す
```go ```go
return err // コンテキストなし return err // コンテキストなし
``` ```
Fix: コンテキストでラップ 修正: コンテキストでラップ
```go ```go
return fmt.Errorf("get user %s: %w", userID, err) return fmt.Errorf("get user %s: %w", userID, err)
``` ```

View File

@@ -45,40 +45,40 @@ python3 ~/.claude/skills/continuous-learning-v2/scripts/instinct-cli.py import <
## インポートプロセス ## インポートプロセス
``` ```
📥 Importing instincts from: team-instincts.yaml 📥 instinctsをインポート中: team-instincts.yaml
================================================ ================================================
Found 12 instincts to import. 12件のinstinctsが見つかりました。
Analyzing conflicts... 競合を分析中...
## New Instincts (8) ## 新規instincts (8)
These will be added: 以下が追加されます:
✓ use-zod-validation (confidence: 0.7) ✓ use-zod-validation (confidence: 0.7)
✓ prefer-named-exports (confidence: 0.65) ✓ prefer-named-exports (confidence: 0.65)
✓ test-async-functions (confidence: 0.8) ✓ test-async-functions (confidence: 0.8)
... ...
## Duplicate Instincts (3) ## 重複instincts (3)
Already have similar instincts: 類似のinstinctsが既に存在:
⚠️ prefer-functional-style ⚠️ prefer-functional-style
Local: 0.8 confidence, 12 observations ローカル: 信頼度0.8, 12回の観測
Import: 0.7 confidence インポート: 信頼度0.7
Keep local (higher confidence) ローカルを保持 (信頼度が高い)
⚠️ test-first-workflow ⚠️ test-first-workflow
Local: 0.75 confidence ローカル: 信頼度0.75
Import: 0.9 confidence インポート: 信頼度0.9
Update to import (higher confidence) インポートに更新 (信頼度が高い)
## Conflicting Instincts (1) ## 競合instincts (1)
These contradict local instincts: ローカルのinstinctsと矛盾:
❌ use-classes-for-services ❌ use-classes-for-services
Conflicts with: avoid-classes 競合: avoid-classes
Skip (requires manual resolution) スキップ (手動解決が必要)
--- ---
Import 8 new, update 1, skip 3? 8件を新規追加、1件を更新、3件をスキップしますか?
``` ```
## マージ戦略 ## マージ戦略
@@ -130,13 +130,13 @@ Skill Creatorからインポートする場合:
インポート後: インポート後:
``` ```
Import complete! インポート完了!
Added: 8 instincts 追加: 8件のinstincts
Updated: 1 instinct 更新: 1件のinstinct
Skipped: 3 instincts (2 duplicates, 1 conflict) スキップ: 3件のinstincts (2件の重複, 1件の競合)
New instincts saved to: ~/.claude/homunculus/instincts/inherited/ 新規instinctsの保存先: ~/.claude/homunculus/instincts/inherited/
Run /instinct-status to see all instincts. /instinct-statusを実行してすべてのinstinctsを確認できます。
``` ```

View File

@@ -39,42 +39,42 @@ python3 ~/.claude/skills/continuous-learning-v2/scripts/instinct-cli.py status
## 出力形式 ## 出力形式
``` ```
📊 Instinct Status 📊 instinctステータス
================== ==================
## Code Style (4 instincts) ## コードスタイル (4 instincts)
### prefer-functional-style ### prefer-functional-style
Trigger: when writing new functions トリガー: 新しい関数を書くとき
Action: Use functional patterns over classes アクション: クラスより関数型パターンを使用
Confidence: ████████░░ 80% 信頼度: ████████░░ 80%
Source: session-observation | Last updated: 2025-01-22 ソース: session-observation | 最終更新: 2025-01-22
### use-path-aliases ### use-path-aliases
Trigger: when importing modules トリガー: モジュールをインポートするとき
Action: Use @/ path aliases instead of relative imports アクション: 相対インポートの代わりに@/パスエイリアスを使用
Confidence: ██████░░░░ 60% 信頼度: ██████░░░░ 60%
Source: repo-analysis (github.com/acme/webapp) ソース: repo-analysis (github.com/acme/webapp)
## Testing (2 instincts) ## テスト (2 instincts)
### test-first-workflow ### test-first-workflow
Trigger: when adding new functionality トリガー: 新しい機能を追加するとき
Action: Write test first, then implementation アクション: テストを先に書き、次に実装
Confidence: █████████░ 90% 信頼度: █████████░ 90%
Source: session-observation ソース: session-observation
## Workflow (3 instincts) ## ワークフロー (3 instincts)
### grep-before-edit ### grep-before-edit
Trigger: when modifying code トリガー: コードを変更するとき
Action: Search with Grep, confirm with Read, then Edit アクション: Grepで検索、Readで確認、次にEdit
Confidence: ███████░░░ 70% 信頼度: ███████░░░ 70%
Source: session-observation ソース: session-observation
--- ---
Total: 9 instincts (4 personal, 5 inherited) 合計: 9 instincts (4個人, 5継承)
Observer: Running (last analysis: 5 min ago) オブザーバー: 実行中 (最終分析: 5分前)
``` ```
## フラグ ## フラグ

View File

@@ -99,36 +99,36 @@ security-reviewer -> code-reviewer -> architect
## 最終レポート形式 ## 最終レポート形式
``` ```
ORCHESTRATION REPORT オーケストレーションレポート
==================== ====================
Workflow: feature ワークフロー: feature
Task: Add user authentication タスク: ユーザー認証の追加
Agents: planner -> tdd-guide -> code-reviewer -> security-reviewer エージェント: planner -> tdd-guide -> code-reviewer -> security-reviewer
SUMMARY サマリー
------- -------
[1段落の要約] [1段落の要約]
AGENT OUTPUTS エージェント出力
------------- -------------
Planner: [要約] Planner: [要約]
TDD Guide: [要約] TDD Guide: [要約]
Code Reviewer: [要約] Code Reviewer: [要約]
Security Reviewer: [要約] Security Reviewer: [要約]
FILES CHANGED 変更ファイル
------------- -------------
[変更されたすべてのファイルをリスト] [変更されたすべてのファイルをリスト]
TEST RESULTS テスト結果
------------ ------------
[テスト合格/不合格の要約] [テスト合格/不合格の要約]
SECURITY STATUS セキュリティステータス
--------------- ---------------
[セキュリティの発見事項] [セキュリティの発見事項]
RECOMMENDATION 推奨事項
-------------- --------------
[リリース可 / 要修正 / ブロック中] [リリース可 / 要修正 / ブロック中]
``` ```

View File

@@ -95,26 +95,26 @@ Agent:
## 発見された問題 ## 発見された問題
[CRITICAL] SQLインジェクション脆弱性 [CRITICAL] SQLインジェクション脆弱性
File: app/routes/user.py:42 ファイル: app/routes/user.py:42
Issue: ユーザー入力が直接SQLクエリに挿入されている 問題: ユーザー入力が直接SQLクエリに挿入されている
```python ```python
query = f"SELECT * FROM users WHERE id = {user_id}" # 悪い query = f"SELECT * FROM users WHERE id = {user_id}" # 悪い
``` ```
Fix: パラメータ化クエリを使用 修正: パラメータ化クエリを使用
```python ```python
query = "SELECT * FROM users WHERE id = %s" # 良い query = "SELECT * FROM users WHERE id = %s" # 良い
cursor.execute(query, (user_id,)) cursor.execute(query, (user_id,))
``` ```
[HIGH] 可変デフォルト引数 [HIGH] 可変デフォルト引数
File: app/services/auth.py:18 ファイル: app/services/auth.py:18
Issue: 可変デフォルト引数が共有状態を引き起こす 問題: 可変デフォルト引数が共有状態を引き起こす
```python ```python
def process_items(items=[]): # 悪い def process_items(items=[]): # 悪い
items.append("new") items.append("new")
return items return items
``` ```
Fix: デフォルトにNoneを使用 修正: デフォルトにNoneを使用
```python ```python
def process_items(items=None): # 良い def process_items(items=None): # 良い
if items is None: if items is None:
@@ -124,27 +124,27 @@ def process_items(items=None): # 良い
``` ```
[MEDIUM] 型ヒントの欠落 [MEDIUM] 型ヒントの欠落
File: app/services/auth.py:25 ファイル: app/services/auth.py:25
Issue: 型アノテーションのない公開関数 問題: 型アノテーションのない公開関数
```python ```python
def get_user(user_id): # 悪い def get_user(user_id): # 悪い
return db.find(user_id) return db.find(user_id)
``` ```
Fix: 型ヒントを追加 修正: 型ヒントを追加
```python ```python
def get_user(user_id: str) -> Optional[User]: # 良い def get_user(user_id: str) -> Optional[User]: # 良い
return db.find(user_id) return db.find(user_id)
``` ```
[MEDIUM] コンテキストマネージャーを使用していない [MEDIUM] コンテキストマネージャーを使用していない
File: app/routes/user.py:55 ファイル: app/routes/user.py:55
Issue: 例外時にファイルがクローズされない 問題: 例外時にファイルがクローズされない
```python ```python
f = open("config.json") # 悪い f = open("config.json") # 悪い
data = f.read() data = f.read()
f.close() f.close()
``` ```
Fix: コンテキストマネージャーを使用 修正: コンテキストマネージャーを使用
```python ```python
with open("config.json") as f: # 良い with open("config.json") as f: # 良い
data = f.read() data = f.read()

View File

@@ -36,16 +36,16 @@
簡潔な検証レポートを生成します: 簡潔な検証レポートを生成します:
``` ```
VERIFICATION: [PASS/FAIL] 検証結果: [PASS/FAIL]
Build: [OK/FAIL] ビルド: [OK/FAIL]
Types: [OK/X errors] 型: [OK/Xエラー]
Lint: [OK/X issues] Lint: [OK/X件の問題]
Tests: [X/Y passed, Z% coverage] テスト: [X/Y合格, Z%カバレッジ]
Secrets: [OK/X found] シークレット: [OK/X件発見]
Logs: [OK/X console.logs] ログ: [OK/X件のconsole.log]
Ready for PR: [YES/NO] PR準備完了: [YES/NO]
``` ```
重大な問題がある場合は、修正案とともにリストアップします。 重大な問題がある場合は、修正案とともにリストアップします。

View File

@@ -43,7 +43,7 @@
``` ```
src/ src/
|-- app/ # Next.js app router |-- app/ # Next.js App Router
|-- components/ # 再利用可能なUIコンポーネント |-- components/ # 再利用可能なUIコンポーネント
|-- hooks/ # カスタムReactフック |-- hooks/ # カスタムReactフック
|-- lib/ # ユーティリティライブラリ |-- lib/ # ユーティリティライブラリ

View File

@@ -3,9 +3,9 @@
## コミットメッセージフォーマット ## コミットメッセージフォーマット
``` ```
<type>: <description> <type>: <説明>
<optional body> <任意の本文>
``` ```
タイプ: feat, fix, refactor, docs, test, chore, perf, ci タイプ: feat, fix, refactor, docs, test, chore, perf, ci

View File

@@ -234,14 +234,14 @@ setCount(count + 1) // Can be stale in async scenarios
### REST API規約 ### REST API規約
``` ```
GET /api/markets # List all markets GET /api/markets # すべてのマーケットを一覧
GET /api/markets/:id # Get specific market GET /api/markets/:id # 特定のマーケットを取得
POST /api/markets # Create new market POST /api/markets # 新しいマーケットを作成
PUT /api/markets/:id # Update market (full) PUT /api/markets/:id # マーケットを更新(全体)
PATCH /api/markets/:id # Update market (partial) PATCH /api/markets/:id # マーケットを更新(部分)
DELETE /api/markets/:id # Delete market DELETE /api/markets/:id # マーケットを削除
# Query parameters for filtering # フィルタリング用クエリパラメータ
GET /api/markets?status=active&limit=10&offset=0 GET /api/markets?status=active&limit=10&offset=0
``` ```
@@ -312,29 +312,29 @@ export async function POST(request: Request) {
``` ```
src/ src/
├── app/ # Next.js App Router ├── app/ # Next.js App Router
│ ├── api/ # API routes │ ├── api/ # API ルート
│ ├── markets/ # Market pages │ ├── markets/ # マーケットページ
│ └── (auth)/ # Auth pages (route groups) │ └── (auth)/ # 認証ページ(ルートグループ)
├── components/ # React components ├── components/ # React コンポーネント
│ ├── ui/ # Generic UI components │ ├── ui/ # 汎用 UI コンポーネント
│ ├── forms/ # Form components │ ├── forms/ # フォームコンポーネント
│ └── layouts/ # Layout components │ └── layouts/ # レイアウトコンポーネント
├── hooks/ # Custom React hooks ├── hooks/ # カスタム React フック
├── lib/ # Utilities and configs ├── lib/ # ユーティリティと設定
│ ├── api/ # API clients │ ├── api/ # API クライアント
│ ├── utils/ # Helper functions │ ├── utils/ # ヘルパー関数
│ └── constants/ # Constants │ └── constants/ # 定数
├── types/ # TypeScript types ├── types/ # TypeScript 型定義
└── styles/ # Global styles └── styles/ # グローバルスタイル
``` ```
### ファイル命名 ### ファイル命名
``` ```
components/Button.tsx # PascalCase for components components/Button.tsx # コンポーネントは PascalCase
hooks/useAuth.ts # camelCase with 'use' prefix hooks/useAuth.ts # フックは 'use' プレフィックス付き camelCase
lib/formatDate.ts # camelCase for utilities lib/formatDate.ts # ユーティリティは camelCase
types/market.types.ts # camelCase with .types suffix types/market.types.ts # 型定義は .types サフィックス付き camelCase
``` ```
## コメントとドキュメント ## コメントとドキュメント

View File

@@ -51,13 +51,13 @@ source: "session-observation"
## 仕組み ## 仕組み
``` ```
Session Activity セッションアクティビティ
│ フックがプロンプト + ツール使用をキャプチャ100%信頼性) │ フックがプロンプト + ツール使用をキャプチャ100%信頼性)
┌─────────────────────────────────────────┐ ┌─────────────────────────────────────────┐
│ observations.jsonl │ │ observations.jsonl │
(prompts, tool calls, outcomes) (プロンプト、ツール呼び出し、結果)
└─────────────────────────────────────────┘ └─────────────────────────────────────────┘
│ Observerエージェントが読み取りバックグラウンド、Haiku │ Observerエージェントが読み取りバックグラウンド、Haiku

View File

@@ -22,24 +22,24 @@ Claude Codeセッションの正式な評価フレームワークで、評価駆
Claudeが以前できなかったことができるようになったかをテスト Claudeが以前できなかったことができるようになったかをテスト
```markdown ```markdown
[CAPABILITY EVAL: feature-name] [CAPABILITY EVAL: feature-name]
Task: Claudeが達成すべきことの説明 タスク: Claudeが達成すべきことの説明
Success Criteria: 成功基準:
- [ ] 基準1 - [ ] 基準1
- [ ] 基準2 - [ ] 基準2
- [ ] 基準3 - [ ] 基準3
Expected Output: 期待される結果の説明 期待される出力: 期待される結果の説明
``` ```
### リグレッション評価 ### リグレッション評価
変更が既存の機能を破壊しないことを確認: 変更が既存の機能を破壊しないことを確認:
```markdown ```markdown
[REGRESSION EVAL: feature-name] [REGRESSION EVAL: feature-name]
Baseline: SHAまたはチェックポイント名 ベースライン: SHAまたはチェックポイント名
Tests: テスト:
- existing-test-1: PASS/FAIL - existing-test-1: PASS/FAIL
- existing-test-2: PASS/FAIL - existing-test-2: PASS/FAIL
- existing-test-3: PASS/FAIL - existing-test-3: PASS/FAIL
Result: X/Y passed (previously Y/Y) 結果: X/Y 成功(以前は Y/Y
``` ```
## 評価者タイプ ## 評価者タイプ
@@ -67,17 +67,17 @@ Claudeを使用して自由形式の出力を評価
3. エッジケースは処理されていますか? 3. エッジケースは処理されていますか?
4. エラー処理は適切ですか? 4. エラー処理は適切ですか?
Score: 1-5 (1=poor, 5=excellent) スコア: 1-51=不良、5=優秀)
Reasoning: [説明] 理由: [説明]
``` ```
### 3. 人間評価者 ### 3. 人間評価者
手動レビューのためにフラグを立てる: 手動レビューのためにフラグを立てる:
```markdown ```markdown
[HUMAN REVIEW REQUIRED] [HUMAN REVIEW REQUIRED]
Change: 何が変更されたかの説明 変更内容: 何が変更されたかの説明
Reason: 人間のレビューが必要な理由 理由: 人間のレビューが必要な理由
Risk Level: LOW/MEDIUM/HIGH リスクレベル: LOW/MEDIUM/HIGH
``` ```
## メトリクス ## メトリクス
@@ -98,21 +98,21 @@ Risk Level: LOW/MEDIUM/HIGH
### 1. 定義(コーディング前) ### 1. 定義(コーディング前)
```markdown ```markdown
## EVAL DEFINITION: feature-xyz ## 評価定義: feature-xyz
### Capability Evals ### 能力評価
1. 新しいユーザーアカウントを作成できる 1. 新しいユーザーアカウントを作成できる
2. メール形式を検証できる 2. メール形式を検証できる
3. パスワードを安全にハッシュ化できる 3. パスワードを安全にハッシュ化できる
### Regression Evals ### リグレッション評価
1. 既存のログインが引き続き機能する 1. 既存のログインが引き続き機能する
2. セッション管理が変更されていない 2. セッション管理が変更されていない
3. ログアウトフローが維持されている 3. ログアウトフローが維持されている
### Success Metrics ### 成功メトリクス
- pass@3 > 90% for capability evals - 能力評価で pass@3 > 90%
- pass^3 = 100% for regression evals - リグレッション評価で pass^3 = 100%
``` ```
### 2. 実装 ### 2. 実装
@@ -131,26 +131,26 @@ npm test -- --testPathPattern="existing"
### 4. レポート ### 4. レポート
```markdown ```markdown
EVAL REPORT: feature-xyz 評価レポート: feature-xyz
======================== ========================
Capability Evals: 能力評価:
create-user: PASS (pass@1) create-user: PASS (pass@1)
validate-email: PASS (pass@2) validate-email: PASS (pass@2)
hash-password: PASS (pass@1) hash-password: PASS (pass@1)
Overall: 3/3 passed 全体: 3/3 成功
Regression Evals: リグレッション評価:
login-flow: PASS login-flow: PASS
session-mgmt: PASS session-mgmt: PASS
logout-flow: PASS logout-flow: PASS
Overall: 3/3 passed 全体: 3/3 成功
Metrics: メトリクス:
pass@1: 67% (2/3) pass@1: 67% (2/3)
pass@3: 100% (3/3) pass@3: 100% (3/3)
Status: READY FOR REVIEW ステータス: レビュー準備完了
``` ```
## 統合パターン ## 統合パターン
@@ -199,29 +199,29 @@ Status: READY FOR REVIEW
```markdown ```markdown
## EVAL: add-authentication ## EVAL: add-authentication
### Phase 1: Define (10 min) ### フェーズ 1: 定義10分
Capability Evals: 能力評価:
- [ ] ユーザーはメール/パスワードで登録できる - [ ] ユーザーはメール/パスワードで登録できる
- [ ] ユーザーは有効な資格情報でログインできる - [ ] ユーザーは有効な資格情報でログインできる
- [ ] 無効な資格情報は適切なエラーで拒否される - [ ] 無効な資格情報は適切なエラーで拒否される
- [ ] セッションはページリロード後も持続する - [ ] セッションはページリロード後も持続する
- [ ] ログアウトはセッションをクリアする - [ ] ログアウトはセッションをクリアする
Regression Evals: リグレッション評価:
- [ ] 公開ルートは引き続きアクセス可能 - [ ] 公開ルートは引き続きアクセス可能
- [ ] APIレスポンスは変更されていない - [ ] APIレスポンスは変更されていない
- [ ] データベーススキーマは互換性がある - [ ] データベーススキーマは互換性がある
### Phase 2: Implement (varies) ### フェーズ 2: 実装(可変)
[コードを書く] [コードを書く]
### Phase 3: Evaluate ### フェーズ 3: 評価
Run: /eval check add-authentication Run: /eval check add-authentication
### Phase 4: Report ### フェーズ 4: レポート
EVAL REPORT: add-authentication 評価レポート: add-authentication
============================== ==============================
Capability: 5/5 passed (pass@3: 100%) 能力: 5/5 成功(pass@3: 100%
Regression: 3/3 passed (pass^3: 100%) リグレッション: 3/3 成功(pass^3: 100%
Status: SHIP IT ステータス: 出荷可能
``` ```

View File

@@ -368,17 +368,17 @@ func WriteAndFlush(w io.Writer, data []byte) error {
myproject/ myproject/
├── cmd/ ├── cmd/
│ └── myapp/ │ └── myapp/
│ └── main.go # Entry point │ └── main.go # エントリポイント
├── internal/ ├── internal/
│ ├── handler/ # HTTP handlers │ ├── handler/ # HTTP ハンドラー
│ ├── service/ # Business logic │ ├── service/ # ビジネスロジック
│ ├── repository/ # Data access │ ├── repository/ # データアクセス
│ └── config/ # Configuration │ └── config/ # 設定
├── pkg/ ├── pkg/
│ └── client/ # Public API client │ └── client/ # 公開 API クライアント
├── api/ ├── api/
│ └── v1/ # API definitions (proto, OpenAPI) │ └── v1/ # API 定義(protoOpenAPI
├── testdata/ # Test fixtures ├── testdata/ # テストフィクスチャ
├── go.mod ├── go.mod
├── go.sum ├── go.sum
└── Makefile └── Makefile

View File

@@ -113,7 +113,7 @@ mypackage/
├── testdata/ # テストフィクスチャ ├── testdata/ # テストフィクスチャ
│ ├── valid_user.json │ ├── valid_user.json
│ └── invalid_user.json │ └── invalid_user.json
└── export_test.go # 内部テストのための非公開エクスポート └── export_test.go # 内部テストの非公開エクスポート
``` ```
### テストパッケージ ### テストパッケージ

View File

@@ -594,18 +594,18 @@ def test_with_tmpdir(tmpdir):
``` ```
tests/ tests/
├── conftest.py # Shared fixtures ├── conftest.py # 共有フィクスチャ
├── __init__.py ├── __init__.py
├── unit/ # Unit tests ├── unit/ # ユニットテスト
│ ├── __init__.py │ ├── __init__.py
│ ├── test_models.py │ ├── test_models.py
│ ├── test_utils.py │ ├── test_utils.py
│ └── test_services.py │ └── test_services.py
├── integration/ # Integration tests ├── integration/ # 統合テスト
│ ├── __init__.py │ ├── __init__.py
│ ├── test_api.py │ ├── test_api.py
│ └── test_database.py │ └── test_database.py
└── e2e/ # End-to-end tests └── e2e/ # エンドツーエンドテスト
├── __init__.py ├── __init__.py
└── test_user_flow.py └── test_user_flow.py
``` ```