EVL · Evaluation
EVL is a generic, versioned, evidence-cited rubric scoring engine. It consumes a character's existing profile (MAT materials + PSY clinical profile + GRO growth data — never CRE) and scores the character against pluggable rubrics, emitting a standardized scorecard + verdict. Two layers ride the same engine: decision and fit rubrics (casting, role-fit, suitability) and standardized psychometric and clinical batteries (Big Five, Dark Triad, attachment, DSM-5/ICD-11 severity). EVL is a forward-only sink — it feeds CRE and never back-edges to PSY or GRO. EVL là một engine chấm điểm rubric tổng quát, có phiên bản, có trích dẫn bằng chứng. Nó tiêu thụ hồ sơ nhân vật hiện có (tư liệu MAT + hồ sơ lâm sàng PSY + dữ liệu phát triển GRO — không bao giờ CRE) và chấm điểm nhân vật theo các rubric có thể cắm vào, phát ra một scorecard chuẩn hóa + phán quyết. Hai tầng chạy trên cùng một engine: rubric quyết định và phù hợp (diễn xuất, phù hợp vai, phù hợp) và các bộ đo tâm lý và lâm sàng chuẩn hóa (Big Five, Dark Triad, gắn bó, mức độ nghiêm trọng DSM-5/ICD-11). EVL là một sink chỉ đi về phía trước — nó nuôi CRE và không bao giờ có cạnh quay lại PSY hoặc GRO.
The 4 rubric types4 loại rubric
All four kinds are validated by the same JSON Schema Draft-7 engine (.claude/schemas/evl-rubric.schema.json) and versioned independently. External frameworks can be imported as canonical drafts under docs/rubrics/imported/ via evl:rubric-import, then human-reviewed before scoring use.
Cả bốn loại đều được xác nhận bởi cùng một engine JSON Schema Draft-7 (.claude/schemas/evl-rubric.schema.json) và có phiên bản độc lập. Các framework bên ngoài có thể được nhập dưới dạng bản nháp chính tắc vào docs/rubrics/imported/ qua evl:rubric-import, sau đó được người xem xét trước khi dùng để chấm điểm.
PsychometricTâm lý đo lường
evl:standardize.Big Five nhân cách + Dark Triad (SD3) + Gắn bó (ECR-R). Chuẩn hóa z-score. Preset qua evl:standardize.Decision / role-fitQuyết định / phù hợp vai
target_profile + red_flags. Verdict: CAST / CONDITIONAL / NO. A single red-flag veto overrides the numeric score. Run via evl:fit.target_profile + red_flags. Phán quyết: CAST / CONDITIONAL / NO. Một veto red-flag duy nhất ghi đè điểm số. Chạy qua evl:fit.Clinical-riskRủi ro lâm sàng
min_judges: 2, tri-state verdict, cache: never. A stale risk scorecard is never reused. DIVERGED → mandatory manual review.Độ rủi ro cao: min_judges: 2, phán quyết ba trạng thái, cache: never. Scorecard rủi ro cũ không bao giờ tái dùng. DIVERGED → xem xét thủ công bắt buộc.DyadCặp đôi
subject: dyad. Gottman Four Horsemen + repair + 5:1 ratio + attachment pairing. Evidence pooled from both characters. Run via evl:compatibility.subject: dyad. Gottman Four Horsemen + sửa chữa + tỉ lệ 5:1 + cặp gắn bó. Bằng chứng gộp từ cả hai nhân vật. Chạy qua evl:compatibility.The gather → judge → aggregate flowLuồng gather → judge → aggregate
Design law (non-negotiable): scripts do deterministic gathering and weighted aggregation only; the LLM does per-criterion judgment. Reasoning is never delegated to a script — and a script's gather output is never treated as a verdict. Quy luật thiết kế (không thể thương lượng): script chỉ thực hiện gom bằng chứng tất định và tổng hợp có trọng số; LLM thực hiện phán xử từng tiêu chí. Lý luận không bao giờ được ủy quyền cho script — và kết quả gom của script không bao giờ được coi là phán quyết.
Each scoring run writes to docs/profiles/{char}/eval/{rubric-id}.json (authoritative) and .md (derived). Prior runs snapshot to eval/history/ — evl:track diffs them. The JSON carries the full frontmatter: character, rubric, rubric_version, verdict, overall, coverage, confidence, cache policy, last_updated.
Mỗi lần chạy chấm điểm ghi vào docs/profiles/{char}/eval/{rubric-id}.json (có thẩm quyền) và .md (dẫn xuất). Các lần chạy trước snapshot vào eval/history/ — evl:track so sánh chúng. JSON mang đầy đủ frontmatter: character, rubric, rubric_version, verdict, overall, coverage, confidence, chính sách cache, last_updated.
Every criterion cites a MAT tier — uncited = [UNVERIFIED]Mọi tiêu chí trích bậc MAT — không trích = [UNVERIFIED]
This is not advisory — it is the honesty contract of the entire engine. An uncited score is excluded from the roll-up, counted in the coverage metric, and flagged loudly. Coverage percentage headlines every scorecard so the reader immediately knows how much of the verdict rests on verified evidence. Đây không phải là tư vấn — đây là hợp đồng trung thực của toàn bộ engine. Điểm không trích nguồn bị loại khỏi tổng hợp, được đếm trong số liệu coverage, và được cờ rõ ràng. Phần trăm coverage được đặt ở đầu mỗi scorecard để người đọc biết ngay bao nhiêu phán quyết dựa trên bằng chứng đã xác minh.
Evidence tier → EVL usageBậc bằng chứng → cách EVL dùng
| Tier | EVL UsageCách EVL dùng |
|---|---|
| T1 | Direct first-person material grounding the scoreTư liệu người thứ nhất trực tiếp làm nền điểm |
| T2 | Corroborated assessment / clinical observationĐánh giá được corroborate / quan sát lâm sàng |
| T3 | Single-source or social-signal groundingNền đơn nguồn hoặc tín hiệu xã hội |
| T4 | Third-party / reported groundingNền bên thứ ba / được báo cáo |
| T5 | Inference/metadata — typically below a rubric's min_tierSuy luận/metadata — thường dưới min_tier của rubric |
below_min_tier — loud, counted, never a silent pass. Different from [UNVERIFIED] (which means no citation at all).
tiêu chí bị loại là below_min_tier — rõ ràng, được đếm, không bao giờ pass im lặng. Khác với [UNVERIFIED] (có nghĩa là không trích nguồn nào cả).
High-stakes: ≥2 input-isolated judgesĐộ rủi ro cao: ≥2 thẩm phán cô lập đầu vào
Clinical-risk and role-fit rubrics run min_judges: 2 — two subagent instances each receive the same evidence without seeing the other's scoring. Convergence → verdict accepted. Disagreement → scorecard records DIVERGED and sets manual_review_required: true. Auto-averaging a disagreement is never allowed.Rubric rủi ro lâm sàng và phù hợp vai chạy min_judges: 2 — hai instance subagent mỗi cái nhận cùng bằng chứng mà không thấy chấm điểm của cái kia. Hội tụ → phán quyết được chấp nhận. Bất đồng → scorecard ghi DIVERGED và đặt manual_review_required: true. Tự động lấy trung bình bất đồng không bao giờ được phép.
Live scorecard validationXác nhận scorecard thực tiễn
The token below renders a real rubric validation output from evl:validate — structural check on rubric shape + invariants, or a finished scorecard against its rubric. A malformed rubric or tampered scorecard fails here and cannot be scored.
Token bên dưới render kết quả xác nhận rubric thật từ evl:validate — kiểm tra cấu trúc hình dạng rubric + bất biến, hoặc scorecard đã hoàn thành đối chiếu với rubric của nó. Rubric sai dạng hoặc scorecard bị giả mạo thất bại ở đây và không thể được chấm điểm.
$ evl:validate --all [PASS] clinical-risk-safety [PASS] psychometric-big-five [PASS] relationship-compatibility [PASS] role-casting-fit PASS — 4 rubric(s) valid · exit 0
EVL is a forward-only sink — it never consumes CREEVL là sink chỉ đi về phía trước — không bao giờ tiêu thụ CRE
docs/profiles/ (identity/, psychology/, growth/, relationships/ — read-only), docs/materials/, and writes only to docs/profiles/{char}/eval/ and docs/rubrics/. It emits EVL.scored which CRE may subscribe to for content recalibration. The edge is forward only — CRE output never flows back into EVL as input. This keeps the event cascade acyclic.
Ranh giới miền (Rule 12, Rule 17): EVL đọc docs/profiles/ (identity/, psychology/, growth/, relationships/ — chỉ đọc), docs/materials/, và chỉ ghi vào docs/profiles/{char}/eval/ và docs/rubrics/. Nó phát EVL.scored mà CRE có thể subscribe để hiệu chỉnh nội dung. Cạnh là chỉ về phía trước — đầu ra CRE không bao giờ chảy ngược lại vào EVL như đầu vào. Điều này giữ cho chuỗi sự kiện không có chu kỳ.
Event cascadeChuỗi sự kiện
PSY.refreshEVL.rescoreevl:scoreEVL.scoredCRE.recalibrateGRO.assessed also triggers EVL.rescore via the same path. A change to docs/profiles/*/eval/ classifies as EVL.scored (announcing a scorecard), never a rescore — preventing the cascade from looping.GRO.assessed cũng kích hoạt EVL.rescore qua cùng đường. Thay đổi với docs/profiles/*/eval/ phân loại là EVL.scored (thông báo scorecard), không bao giờ là rescore — ngăn chuỗi lặp.
All 8 EVL skillsToàn bộ 8 skill EVL
evl:score
Generic rubric scoring engine — gather evidence, LLM judges each criterion with a MAT-tier citation, aggregate to an evidence-cited scorecard + verdict. Works on all four rubric types.Engine chấm điểm rubric tổng quát — gom bằng chứng, LLM phán xử từng tiêu chí kèm trích dẫn bậc MAT, tổng hợp thành scorecard có trích dẫn + phán quyết. Hoạt động trên cả bốn loại rubric.
evl:standardize
Psychometric battery preset — Big Five + Dark Triad (SD3) + Attachment (ECR-R). LLM narrates the attachment quadrant and flags Dark Triad elevations. Runs atop evl:score.Preset bộ đo tâm lý — Big Five + Dark Triad (SD3) + Gắn bó (ECR-R). LLM trần thuật góc phần tư gắn bó và cờ nâng cao Dark Triad. Chạy trên evl:score.
evl:fit
Role / casting-fit decision against a target profile — CAST / CONDITIONAL / NO with a RED safety-flag veto. High-stakes → ≥2 input-isolated judges + convergence required.Quyết định phù hợp vai / diễn xuất đối chiếu hồ sơ mục tiêu — CAST / CONDITIONAL / NO với veto cờ an toàn ĐỎ. Độ rủi ro cao → ≥2 thẩm phán cô lập đầu vào + yêu cầu hội tụ.
evl:compatibility
Dyad compatibility scoring on the relationship rubric — Gottman Four Horsemen + repair capacity + 5:1 positivity ratio + attachment pairing. Evidence pooled from both characters.Chấm điểm tương thích cặp đôi trên rubric mối quan hệ — Gottman Four Horsemen + năng lực sửa chữa + tỉ lệ tích cực 5:1 + cặp gắn bó. Bằng chứng gộp từ cả hai nhân vật.
evl:compare
Cross-character ranking on one rubric — reads already-written scorecards, computes raw + z-score + percentile ranks. Missing scorecards are surfaced, never silently dropped from the comparison.Xếp hạng liên nhân vật trên một rubric — đọc scorecard đã viết, tính xếp hạng thô + z-score + phần trăm. Scorecard thiếu được đưa ra, không bao giờ im lặng bị loại khỏi so sánh.
evl:track
Score-over-time diff — compares a character's current scorecard vs. the latest snapshot in eval/history/. Lists profile-change events in the window for the LLM to narrate the delta with deterministic event attribution.So sánh điểm theo thời gian — so sánh scorecard hiện tại của nhân vật với snapshot mới nhất trong eval/history/. Liệt kê các sự kiện thay đổi hồ sơ trong cửa sổ để LLM trần thuật delta với quy kết sự kiện tất định.
evl:validate
Deterministic structural checker — rubric shape + invariants, or a finished scorecard against its rubric. Blocks malformed or tampered artifacts before they enter the scoring pipeline. Runs automatically before any evl:score invocation.Kiểm tra cấu trúc tất định — hình dạng rubric + bất biến, hoặc scorecard hoàn chỉnh đối chiếu rubric của nó. Chặn artifact sai dạng hoặc bị giả mạo trước khi vào pipeline chấm điểm. Chạy tự động trước mọi lần gọi evl:score.
evl:rubric-import
Ingest an external evaluation framework (file / text / URL) → canonical rubric draft under docs/rubrics/imported/. The evl-rubric-importer subagent performs semantic mapping — the draft is human-reviewed before any scoring use.Nhập framework đánh giá bên ngoài (file / text / URL) → bản nháp rubric chính tắc dưới docs/rubrics/imported/. Subagent evl-rubric-importer thực hiện ánh xạ ngữ nghĩa — bản nháp được người xem xét trước khi dùng chấm điểm.
The honesty contractHợp đồng trung thực
- Uncited ⇒ [UNVERIFIED] — excluded from roll-up, counted, coverage% headlines every scorecard.
- High-stakes rubrics run ≥2 input-isolated judges — disagreement is
DIVERGED+manual_review_required, never auto-averaged. - Clinical rubrics are
cache: never— a stale risk verdict is never reused;reassess_requiredstamps every prior snapshot. - A malformed rubric or tampered scorecard fails
evl:validateand cannot be scored or trusted — the structural check is the first gate, not the last.
- Không trích ⇒ [UNVERIFIED] — bị loại khỏi tổng hợp, được đếm, coverage% đứng đầu mọi scorecard.
- Rubric rủi ro cao chạy ≥2 thẩm phán cô lập đầu vào — bất đồng là
DIVERGED+manual_review_required, không bao giờ tự trung bình. - Rubric lâm sàng là
cache: never— phán quyết rủi ro cũ không bao giờ tái dùng;reassess_requiredđóng dấu mọi snapshot trước. - Rubric sai dạng hoặc scorecard bị giả mạo thất bại ở
evl:validatevà không thể được chấm điểm hoặc tin tưởng — kiểm tra cấu trúc là cổng đầu tiên, không phải cuối cùng.
Browse the rubric libraryDuyệt thư viện rubric
The 4 reference rubrics, their schema, and how to import an external framework via evl:rubric-import.4 rubric tham chiếu, schema của chúng, và cách nhập framework bên ngoài qua evl:rubric-import.
Full skill catalogDanh mục skill đầy đủ
All 68 skills across 7 frameworks — with a use-case finder and one-line descriptions for rapid lookup.Toàn bộ 68 skill trên 7 framework — kèm bộ chọn theo use-case và mô tả một dòng để tra nhanh.