scorecard: chấm live 2 mục hardcode; pipeline: fallback real + honest scoring doc

Hướng A — scorecard.sh (video demo):
- h5_1 approval workflow: hardcode 0 → governance-check deploy live (approval_required)
- h6_2 hallucination rate: hardcode 0 → hallucination-scan phân biệt dirty>clean live
- "N/5 mục" chuyển từ text cứng sang đếm động
- H4/H5/H6 → 100/100 (5/5 gate live), Average 57.9 → 90.0

Hướng B — run-casan-pipeline.mjs:
- fallback: stub 'exit 9' → 'cat /nonexistent' (real failure, nhất quán adversarial T3)
- drift: giữ so fallback-output vs golden (clean run=1.0); năng lực phát hiện
  drift thật chứng minh ở adversarial suite
- Full 12-step run verify: H1 CONTEXT_VALID=24, H2 tool-audit records=25 signed,
  H5 audit-chain records=22 signed, H6 provider_telemetry per-step thật, H7 rollback real

phase3-real-run-scoring.md: giải thích vì sao scorecard cũ cho H5=60/H6=80
(hardcode), phân biệt scorecard-90 vs re-score-84 (2 mục đích khác nhau).

Verify: adversarial 44/0, security-gate 11/0/0, pipeline 12 steps OK.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
thanhnv
2026-07-03 00:18:43 +09:00
co-authored by Claude Sonnet 4.6
parent fda0d6447d
commit 2f06662f5d
26 changed files with 469 additions and 189 deletions
@@ -1,10 +1,38 @@
{"timestamp": "2026-07-01T08:22:21Z", "harness": "L5-provider-telemetry", "provider": "sample-provider", "model": "sample-model-large", "run_id": "provider-run-001", "step": "speckit.implement", "input_tokens": 1842, "output_tokens": 936, "total_tokens": 2778, "cost_usd": 0.08334, "latency_ms": 4210, "status": "success"}
{"timestamp": "2026-07-01T08:22:37Z", "harness": "L5-provider-telemetry", "provider": "sample-provider", "model": "sample-model-large", "run_id": "provider-run-001", "step": "speckit.implement", "input_tokens": 1842, "output_tokens": 936, "total_tokens": 2778, "cost_usd": 0.08334, "latency_ms": 4210, "status": "success"}
{"timestamp": "2026-07-01T08:23:24Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "judge", "role": "judge", "input_tokens": 168, "output_tokens": 3, "total_tokens": 171, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1611, "status": "success"}
{"timestamp": "2026-07-01T08:23:33Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "t4-telemetry-test", "role": "classify", "input_tokens": 208, "output_tokens": 2, "total_tokens": 210, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 4879, "status": "success"}
{"timestamp": "2026-07-01T08:23:42Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "generate", "role": "generate", "input_tokens": 72, "output_tokens": 26, "total_tokens": 98, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 2289, "status": "success"}
{"timestamp": "2026-07-01T08:23:44Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 218, "output_tokens": 3, "total_tokens": 221, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1598, "status": "success"}
{"timestamp": "2026-07-01T08:23:48Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "generate", "role": "generate", "input_tokens": 72, "output_tokens": 27, "total_tokens": 99, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 2490, "status": "success"}
{"timestamp": "2026-07-01T08:24:01Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 220, "output_tokens": 3, "total_tokens": 223, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1747, "status": "success"}
{"timestamp": "2026-07-01T08:24:03Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 219, "output_tokens": 3, "total_tokens": 222, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1484, "status": "success"}
{"timestamp": "2026-07-01T08:24:07Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 218, "output_tokens": 3, "total_tokens": 221, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1686, "status": "success"}
{"timestamp": "2026-07-02T15:15:41Z", "harness": "L5-provider-telemetry", "provider": "sample-provider", "model": "sample-model-large", "run_id": "provider-run-001", "step": "speckit.implement", "input_tokens": 1842, "output_tokens": 936, "total_tokens": 2778, "cost_usd": 0.08334, "latency_ms": 4210, "status": "success"}
{"timestamp": "2026-07-02T15:15:47Z", "harness": "L5-provider-telemetry", "provider": "sample-provider", "model": "sample-model-large", "run_id": "provider-run-001", "step": "speckit.implement", "input_tokens": 1842, "output_tokens": 936, "total_tokens": 2778, "cost_usd": 0.08334, "latency_ms": 4210, "status": "success"}
{"timestamp": "2026-07-02T15:16:08Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "judge", "role": "judge", "input_tokens": 168, "output_tokens": 3, "total_tokens": 171, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1418, "status": "success"}
{"timestamp": "2026-07-02T15:16:12Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "t4-telemetry-test", "role": "classify", "input_tokens": 208, "output_tokens": 2, "total_tokens": 210, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 455, "status": "success"}
{"timestamp": "2026-07-02T15:16:16Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "generate", "role": "generate", "input_tokens": 72, "output_tokens": 26, "total_tokens": 98, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 2260, "status": "success"}
{"timestamp": "2026-07-02T15:16:18Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 218, "output_tokens": 3, "total_tokens": 221, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1677, "status": "success"}
{"timestamp": "2026-07-02T15:16:21Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "generate", "role": "generate", "input_tokens": 72, "output_tokens": 27, "total_tokens": 99, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 2305, "status": "success"}
{"timestamp": "2026-07-02T15:16:24Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 220, "output_tokens": 3, "total_tokens": 223, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1627, "status": "success"}
{"timestamp": "2026-07-02T15:16:26Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 219, "output_tokens": 3, "total_tokens": 222, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1626, "status": "success"}
{"timestamp": "2026-07-02T15:16:29Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 218, "output_tokens": 3, "total_tokens": 221, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1675, "status": "success"}
{"timestamp": "2026-07-02T15:16:32Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 220, "output_tokens": 3, "total_tokens": 223, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1666, "status": "success"}
{"timestamp": "2026-07-02T15:16:34Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 219, "output_tokens": 3, "total_tokens": 222, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1625, "status": "success"}
{"timestamp": "2026-07-02T15:16:37Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 217, "output_tokens": 3, "total_tokens": 220, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1610, "status": "success"}
{"timestamp": "2026-07-02T15:16:39Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 217, "output_tokens": 3, "total_tokens": 220, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1619, "status": "success"}
{"timestamp": "2026-07-02T15:16:42Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 215, "output_tokens": 2, "total_tokens": 217, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1548, "status": "success"}
{"timestamp": "2026-07-02T15:16:44Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 219, "output_tokens": 3, "total_tokens": 222, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1653, "status": "success"}
{"timestamp": "2026-07-02T15:16:47Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 219, "output_tokens": 3, "total_tokens": 222, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1614, "status": "success"}
{"timestamp": "2026-07-02T15:16:49Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 216, "output_tokens": 2, "total_tokens": 218, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1614, "status": "success"}
{"timestamp": "2026-07-02T15:16:52Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 217, "output_tokens": 2, "total_tokens": 219, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1525, "status": "success"}
{"timestamp": "2026-07-02T15:16:54Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 218, "output_tokens": 2, "total_tokens": 220, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1561, "status": "success"}
{"timestamp": "2026-07-02T15:16:57Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 216, "output_tokens": 2, "total_tokens": 218, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1597, "status": "success"}
{"timestamp": "2026-07-02T15:16:59Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 218, "output_tokens": 2, "total_tokens": 220, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1565, "status": "success"}
{"timestamp": "2026-07-02T15:17:02Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 214, "output_tokens": 2, "total_tokens": 216, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1484, "status": "success"}
{"timestamp": "2026-07-02T15:17:05Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 232, "output_tokens": 3, "total_tokens": 235, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1705, "status": "success"}
{"timestamp": "2026-07-02T15:17:07Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 231, "output_tokens": 3, "total_tokens": 234, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1714, "status": "success"}
{"timestamp": "2026-07-02T15:17:10Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 231, "output_tokens": 3, "total_tokens": 234, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1702, "status": "success"}
{"timestamp": "2026-07-02T15:17:13Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 232, "output_tokens": 3, "total_tokens": 235, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1682, "status": "success"}
{"timestamp": "2026-07-02T15:17:15Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 226, "output_tokens": 2, "total_tokens": 228, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1511, "status": "success"}
{"timestamp": "2026-07-02T15:17:18Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 234, "output_tokens": 3, "total_tokens": 237, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1691, "status": "success"}
{"timestamp": "2026-07-02T15:17:20Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 229, "output_tokens": 3, "total_tokens": 232, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1697, "status": "success"}
{"timestamp": "2026-07-02T15:17:23Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 237, "output_tokens": 3, "total_tokens": 240, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1697, "status": "success"}
{"timestamp": "2026-07-02T15:17:25Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 231, "output_tokens": 2, "total_tokens": 233, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1645, "status": "success"}
{"timestamp": "2026-07-02T15:17:28Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 228, "output_tokens": 3, "total_tokens": 231, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1550, "status": "success"}
{"timestamp": "2026-07-02T15:17:30Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 226, "output_tokens": 2, "total_tokens": 228, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1530, "status": "success"}
{"timestamp": "2026-07-02T15:17:33Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 229, "output_tokens": 2, "total_tokens": 231, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1639, "status": "success"}
{"timestamp": "2026-07-02T15:17:35Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 227, "output_tokens": 2, "total_tokens": 229, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1549, "status": "success"}
{"timestamp": "2026-07-02T15:17:38Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 228, "output_tokens": 2, "total_tokens": 230, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1502, "status": "success"}
{"timestamp": "2026-07-02T15:17:41Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "judge", "role": "judge", "input_tokens": 168, "output_tokens": 3, "total_tokens": 171, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 1403, "status": "success"}