assign-prompt-design-evaluator · v2.1.0 · 2026-07-12 · sha256 c3a6c002021c0390
assign-prompt-design-evaluator v2.1.0A
Immutable. This exact content is served forever at /api/v1/blob/c3a6c002021c0390.
---
name: assign-prompt-design-evaluator
description: 生成済みプロンプトを C1-C4 と 4 パスで評価したいとき、context:fork で独立評価結果 findings.json を取得したいときに使う。
disable-model-invocation: false
user-invocable: false
context: fork
argument-hint: "[--prompt-path <path>] [--brief <path>] [--output <findings_path>]"
arguments: [prompt_path, brief, output]
allowed-tools:
- Read
- Write
- Glob
- Grep
- Bash(python3 *)
- Task
kind: assign
version: 2.1.0
effect: local-artifact
owner: team-platform
contract:
intent: 生成済みプロンプトを親 context のバイアスから切り離して独立評価し、findings.json を返すため、C1-C4 + 4 パスの採点専用 evaluator を提供する。
interface:
inputs: [prompt_path, brief, output]
outputs: [findings.json]
invariant:
- 必ず context:fork で起動し、親 context の解釈バイアスを引き継がないこと
- 評価対象を書き換えず findings の出力のみ行うこと (write=findings only、Goodhart 防止)
- C1-C4 verdict を全付与し、空 findings を残さない (PASS でも info を 1 件以上) こと
- high severity が 1 件でもあれば全体を FAIL とすること
since: 2026-05-22
script_refs:
- ../run-prompt-creator-7layer/scripts/verify-completeness.py
- ../run-prompt-creator-7layer/scripts/validate-prompt.py
rubric_refs:
- ref-skill-design-rubric # L0: 共通設計 rubric (harness-creator 正本, 固定)
- references/prompt-rubric.json # L2: 本 evaluator 固有 (C1-C4 prompt 判定)
reference_refs:
- references/resource-map.yaml
- references/c1-c4-criteria.md
source: ../run-prompt-creator-7layer/references/quality-criteria.md
source-tier: internal
last-audited: 2026-05-22
audit-trigger: quarterly
responsibility_refs:
- prompts/R1-evaluate.md
schema_refs:
- ../run-prompt-create/schemas/findings.schema.json
responsibilities:
- id: R1
name: evaluate
prompt_required: true
pair: run-prompt-creator-7layer
role_suffix: evaluator
---
# assign-prompt-design-evaluator
> 生成プロンプトを **C1-C4 + 4 パス** で評価し `findings.json` を返す independent evaluator。`context:fork` で起動して Sycophancy を防ぐ。
## Purpose & Output Contract
**入力**: prompt_path (評価対象 .md/.yaml) / brief (eval-log/prompt-brief.json) / output (省略時 `eval-log/docs/<NN>-<timestamp>.json`)
**出力**: `eval-log/docs/<NN>-<timestamp>.json` (`../run-prompt-create/schemas/findings.schema.json` 準拠)
**完了条件**: C1-C4 verdict 全付与 + findings[] に高/中/低の severity 配列。
## C1-C4 評価軸
| Gate | 観点 | 合格条件 |
|---|---|---|
| **C1** | Layer 整合 | L1-L7 が seven-layer-format.md と整合、Layer 番号と役割の対応が崩れていない |
| **C2** | 依存方向 | L7→L1 の単方向参照のみ。Layer N が Layer N-1 以外を参照していない |
| **C3** | 再現性 | reproducible=true。再現性根拠 (output_schema / script_refs / 検証可能な完了チェックリスト) が揃い、5.2 ゴール定義が成果状態で固定手順列挙を含まない (l5-contract v2.0.0) |
| **C4** | Self-Evaluation 充足 | L5.3 完了チェックリスト (停止条件) が非空で、全項目が第三者に YES/NO 判定可能 (数量レンジは l5-contract v2.0.0 で廃止) |
## 4 パスレビュー (Pass 0-4)
`../run-prompt-creator-7layer/references/quality-criteria.md` §7 由来:
- **Pass 0** 動的評価基準生成: `evaluation_priorities` から重み付けし以下 Pass を調整
- **Pass 1** 網羅性: 必須フィールド漏れがないか
- **Pass 2** 整合性: Layer 間/メタ/responsibility_id が矛盾しないか
- **Pass 3** 深度: 意味的に十分か (抽象的な空文句に終わっていないか)
- **Pass 4** 実用性: そのまま実行/注入できるか (placeholder 残存ゼロ)
## Key Rules
1. **context:fork 必須**: 親 context から評価対象の解釈バイアスを引き継がない。
2. **客観判定優先**: スクリプト検証可能な項目は必ずスクリプトで判定し、LLM は意味判定のみ。
3. **findings 必出**: severity ∈ {high, medium, low, info}、bucket は C1-C4 か rubric id (PR-001 等)。
4. **suggested_fix 明示**: high/medium には修正方針を 1-2 文で明記。
5. **空 findings 禁止**: PASS でも info severity で「確認した観点」を 1 件以上残す。
6. **mass_production_risk**: 同型 prompt 量産でリスクが高い設計欠陥は high を付ける。
## ゴール駆動評価 (固定手順なし)
> 正本責務は `prompts/R1-evaluate.md` Layer 5 (l5-contract v2.0.0)。単発評価 (read-only、runtime loop なし。goal-seek-paradigm 適用マトリクス: `assign-*` はループ非対象) で、検査の実施内容と順序は下記局面カタログから都度導出する。
**ゴール**: C1-C4 verdict + 4 パス結果が `findings.schema.json` 準拠 JSON として保存され、呼出元が `global_thresholds` で auto-approve 可否を機械判定できる状態。
**完了条件** (停止条件の正本 = `prompts/R1-evaluate.md` 5.3): verdicts 全付与 / scripted checks の実行証跡 / findings 非空 (PASS 時も info) / high・medium への suggested_fix / schema 検証通過 / 評価対象への書換 0 件。
**局面カタログ** (順序は都度判断):
- **客観検証 (script)**: `verify-completeness.py --input ${PROMPT_PATH}` / `validate-prompt.py --input ${PROMPT_PATH} --phase prompt` を実行し exit code を証跡化。
- **C1-C4 機械評価**: `references/prompt-rubric.json` の scripted checks (regex_match / regex_absent) を prompt_path の Layer 構造と突合。
- **意味判定 (LLM)**: non-scripted checks と Pass 0-4 (`references/c1-c4-criteria.md` / quality-criteria.md §7 準拠) を評価し findings に集約。
- **findings 出力**: `schemas/findings.schema.json` 準拠で Write。verdicts に C1-C4 PASS/FAIL/N/A、findings に severity-bucket-observations。
## Gotchas
1. C1 と C2 を混同しない (Layer 整合 vs 依存方向)。
2. Pass 3 深度判定は「具体例があるか」「checklist が客観条件か」が基準。
3. evaluation_priorities が空なら Pass 0 で標準重み (1.0) を全 Pass に付与。
4. high severity が 1 件でもあれば全体は FAIL。
## Additional Resources
- `references/prompt-rubric.json` — C1-C4 機械判定ルール
- `references/c1-c4-criteria.md` — 人間向け詳細基準
- `../run-prompt-create/schemas/findings.schema.json` — 出力スキーマ
- caller: `run-prompt-create` (Step 3b)