Files
CASAN/optimize-docs/FABLE5_PROMPT.md
T
thanhnvandClaude Opus 4.8 fbcef967e5 chore(freeze): snapshot demo state before Plan-07 hardening work
Freeze current submission/demo baseline:
- casan-next-plans/: full task-level plan set (Plan 00 index + 02/04/06/07/08/09/12, QA, slide deck)
- optimize-docs/video-steps/: per-vector scene breakdown (commands/screen-text/script) + start-tmux
- run-all.sh / scorecard.sh / map-live.sh: REAL=1 live-battery wiring
- regenerated evidence + audit/telemetry logs from live REAL=1 run
- submission README + video recording guide updates
- dry-run pipeline logs for 001-okr-web-app

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-03 22:03:44 +09:00

9.5 KiB
Raw Blame History

Prompt gửi Fable 5 — Tối ưu "live demo" giống chạy thật + Log level cho full pipeline

Copy toàn bộ phần trong khung dưới đây gửi cho Fable 5 (đang mở repo AINative_OKR_CASAN5 làm context).


Bạn là senior engineer làm việc trực tiếp trong repo AINative_OKR_CASAN5 (đã có sẵn trong context). Tôi cần bạn làm 2 việc trên chính codebase này, ưu tiên không phá vỡ gate/exit code/test hiện có và tương thích ngược (hành vi mặc định giữ nguyên).

Bối cảnh kiến trúc (đọc trước khi sửa)

Pipeline thật là AI-SDLC bọc trong CASAN Harness. Hãy đọc các file sau để nắm luồng:

  • scripts/run-casan-pipeline.mjs — Boss orchestrator: chạy tuần tự 13 STEP, mỗi step gọi casan-harness.sh ... -- node scripts/casan-step.mjs <step> <attempt>. Ghi docs/output/output_logs/001-okr-web-app/00-boss.log.md, pipeline-context.yaml, và đọc trace ở .specify/logs/trace/agentops-*.json.
  • scripts/casan-step.mjs — logic một agent step: judge (H3, gọi model-router.sh), checkpoint/rollback (rollback-manager.sh), sinh artifact.
  • .specify/scripts/bash/casan-harness.sh — wrapper bọc mọi lời gọi agent: thứ tự H4 input security → H5 governance → H6 metrics (quanh exec) → chạy command → H4 output filter. Idempotency cache ở .specify/logs/idempotency.
  • .specify/scripts/bash/*.sh — các control: security-check.sh, artifact-scan.sh, governance-check.sh, verify-audit-chain.sh, sign-audit-head.sh, cost-spike-detect.sh, drift-detect.sh, model-router.sh, validate-tool-input.sh, tool-exec.sh, circuit-breaker-check.sh, secrets-scan.sh, verify-tool-audit.sh, hallucination-scan.py, agent-metrics.sh.
  • Log/evidence hiện có: .specify/logs/audit/audit.jsonl (hash-chain + ký RSA head), .specify/logs/audit/tool-calls.jsonl, .specify/logs/level5/provider-usage.jsonl (token thật), .specify/logs/trace/agentops-*.json.
  • Sơ đồ FULL (optimize-docs/CASAN_PIPELINE_WORKFLOW.md mục 1–2): 13 STEP với 2 vòng lặp tự sửa — STEP5 review-spec (REJECTED→STEP3), STEP7 review-plan (BACK-TO-PLAN→STEP6), STEP11 review-code (REJECTED→STEP10), STEP12 run-tests (FAIL→STEP6). Mỗi lời gọi agent đi xuyên 7 harness rồi mới sinh artifact.
  • Demo "live" hiện tại nằm ở optimize-docs/video-steps/: run-all.sh (battery tấn công H4/H5/H6 + cross-layer + scorecard.sh), map-live.sh (bản đồ tiến độ), scorecard.sh (chấm điểm), start-tmux.sh, LAYOUT.md.

Ràng buộc chung:

  • KHÔNG được làm hỏng: bash .specify/scripts/bash/security-gate.sh, .specify/tests/adversarial-harness-tests.sh, vitest, và mọi exit code hiện tại (nhiều control cố ý trả exit=2 khi chặn — giữ nguyên).
  • Chạy được offline (không Ollama) và có Ollama (127.0.0.1:11434, model ornith:9b). Khi thiếu model thì degrade rõ ràng (SKIP/mock), không crash.
  • Giữ tính deterministic cho phần logic; token/verdict model là dữ liệu thật.
  • Mặc định hành vi cũ không đổi; tính năng mới bật qua env/flag.
  • Không thêm dependency nặng; ưu tiên Node built-in + bash sẵn có.

VIỆC 1 — Làm "live demo" chạy đúng đường sản xuất nhất có thể

Vấn đề: optimize-docs/video-steps/run-all.sh hiện gọi trực tiếp từng sub-script với input tự nạp. Nó dùng gate thật nhưng không đi qua entry-point sản xuất (casan-harness.sh / casan-step.mjs), nên chưa phản ánh đúng luồng Boss→harness→verdict.

Yêu cầu: thêm chế độ REAL=1 (giữ chế độ hiện tại làm mặc định) cho run-all.sh sao cho:

  1. Mỗi vector tấn công được nạp làm input của một agent step chạy qua casan-harness.sh (đúng đường sản xuất), thay vì gọi thẳng security-check.sh. Kết quả BLOCK/PASS phải do chính wrapper sinh ra → giống hệt lúc pipeline thật gặp input độc.
  2. Sau battery, chạy một lát cắt pipeline thật: ít nhất STEP1 (okr.srs) đi qua casan-harness.sh -- node scripts/casan-step.mjs, cho thấy: artifact thật được sinh, audit.jsonl + provider-usage.jsonl được ghi thêm THẬT, verdict thật. Nếu không có model → dùng mock step nhưng vẫn đi qua wrapper (ghi rõ "mock agent, harness thật").
  3. Đồng bộ map-live.sh: khi ở REAL=1, ngoài A/B/D còn hiển thị được các STEP thật (STEP1…) nếu có chạy lát cắt pipeline.
  4. Rà soát run-all.sh và liệt kê mọi chỗ đang "đi tắt" không qua wrapper; chuyển sang gọi qua casan-harness.sh khi hợp lý, hoặc ghi chú rõ vì sao giữ gọi trực tiếp (vd để minh hoạ một control đơn lẻ).

Nghiệm thu Việc 1:

  • REAL=1 bash optimize-docs/video-steps/run-all.sh chạy trọn, mọi verdict/exit do wrapper/pipeline thật sinh; audit.jsonl và provider-usage.jsonl có bản ghi mới sau khi chạy.
  • Chế độ mặc định (không REAL) vẫn y như cũ.
  • Nêu bảng đối chiếu "vector demo → entry-point sản xuất tương ứng".

VIỆC 2 — Log level cho full pipeline + xem log theo từng bước

Vấn đề: hiện chưa có log level. Cần thấy rõ pipeline đi qua STEP nào, mỗi step qua harness nào, verdict/thời gian/token, và ở mức debug xem được log chi tiết từng bước theo đúng sơ đồ FULL.

Yêu cầu: thêm biến CASAN_LOG_LEVEL (thang: error < warn < info < debug < trace, mặc định info) xuyên suốt 3 tầng:

  1. Boss (scripts/run-casan-pipeline.mjs):
    • info: mỗi STEP một dòng gọn — STEP<id> · <agent> · verdict=<...> · <ms>ms · attempt=<n>, và log rõ khi vòng lặp kích hoạt (STEP5 retry, STEP7 BACK-TO-PLAN, STEP11 retry, STEP12 FAIL→STEP6).
    • debug: thêm input/output path, trace_id, kết quả từng harness, quyết định đi tiếp/lặp.
    • trace: thêm trích payload (đã redact secret/PII).
    • Cuối run: in bảng tổng kết per-step (khớp 13 STEP của sơ đồ) + vòng lặp nào đã chạy.
  2. Agent step (scripts/casan-step.mjs): ở debug log judge verdict + note, checkpoint/rollback, lời gọi model (role, tokens).
  3. Harness wrapper (.specify/scripts/bash/casan-harness.sh): ở debug log từng pha H4-in → H5 → H6 → exec → H4-out với rc mỗi pha (đúng sequence diagram mục 2). Dùng biến CASAN_LOG_LEVEL chung; viết một hàm log bash gọn (in ra stderr, có prefix [LEVEL] + timestamp).
  4. Log máy đọc được: ngoài log người-đọc, ghi thêm một dòng JSONL/step vào .specify/logs/pipeline-run.jsonl (step id, agent, verdict, rc từng harness, ms, tokens, trace_id) để có thể replay/xem lại theo từng bước. Cung cấp cách xem nhanh (vd jq lọc theo step).

Ràng buộc Việc 2:

  • Mặc định info → output không ồn hơn hiện tại đáng kể; stdio:'inherit' và exit code giữ nguyên.
  • Không log secret/PII ở bất kỳ mức nào ngoài trace, và ở trace phải redact.
  • Thống nhất một taxonomy log level dùng chung cho cả Node lẫn bash.

Nghiệm thu Việc 2:

  • CASAN_LOG_LEVEL=debug node scripts/run-casan-pipeline.mjs (hoặc chế độ --dry-run/mock nếu full run cần model/lâu) in log từng STEP + từng harness; CASAN_LOG_LEVEL=info gọn; error gần như im.
  • .specify/logs/pipeline-run.jsonl có 1 dòng/step, xem lại được.
  • Nếu full run cần model, hãy thêm --dry-run (stub mọi lời gọi agent, đi đúng 13 STEP + wrapper) để minh hoạ log level deterministic, offline.

Việc cần làm & bàn giao

  1. Trước tiên: đọc các file nêu trên, rồi trình bày ngắn (a) taxonomy log level thống nhất, (b) bảng map "log line ↔ STEP/harness của sơ đồ FULL", (c) danh sách file sẽ sửa. Chờ không cần — cứ implement luôn theo thiết kế đó.
  2. Implement Việc 1 và Việc 2.
  3. Tự verify và dán kết quả:
    • bash .specify/scripts/bash/security-gate.sh | tail -6 (phải vẫn PASS, FAIL=0)
    • bash .specify/tests/adversarial-harness-tests.sh; echo exit=$?
    • CASAN_LOG_LEVEL=debug <lệnh chạy pipeline hoặc --dry-run> — dán ~30 dòng log minh hoạ per-step + per-harness
    • REAL=1 bash optimize-docs/video-steps/run-all.sh (hoặc AUTO=1 STEP_DELAY=0) — xác nhận đi qua wrapper thật + audit/telemetry có bản ghi mới
    • tail -3 .specify/logs/pipeline-run.jsonl
  4. Liệt kê rõ file đã đổi và tóm tắt cách bật tính năng mới. Nếu có chỗ buộc phải đánh đổi (vd full run cần Ollama), nói rõ và cung cấp đường mock/dry-run.

Giữ commit message rõ ràng, không đụng tới logic tính điểm/verdict của các gate. Nếu phát hiện script nào chưa hỗ trợ được yêu cầu (thiếu tham số, chưa có hook log), hãy nêu và đề xuất cách sửa tối thiểu thay vì viết lại lớn.


Ghi chú cho tôi (không gửi Fable): prompt này giả định Fable 5 có quyền đọc/sửa repo. Nếu Fable chạy ở phiên khác không thấy repo, cần đính kèm nội dung các file: scripts/run-casan-pipeline.mjs, scripts/casan-step.mjs, .specify/scripts/bash/casan-harness.sh, optimize-docs/video-steps/run-all.sh, optimize-docs/CASAN_PIPELINE_WORKFLOW.md.