feat: make Core reports commercially production-ready

This commit is contained in:
thanhnv
2026-07-29 13:12:11 +07:00
parent 67d482ae7f
commit 7f01cf980a
27 changed files with 1197 additions and 23 deletions
@@ -80,6 +80,7 @@ for required in (
"packages/casan-harness/scripts/python/local_report.py",
"packages/casan-harness/scripts/python/local_viewer.py",
"packages/casan-harness/scripts/python/report_cli.py",
"packages/casan-harness/scripts/python/readiness.py",
):
assert (root / required).is_file(), required
registry = json.loads(
@@ -148,6 +149,7 @@ for required in (
"packages/casan-harness/config/tool-registry.yaml",
"packages/casan-harness/scripts/bash/casan-harness.sh",
"packages/casan-harness/scripts/python/local_viewer.py",
"packages/casan-harness/scripts/python/readiness.py",
"packaging/runtime-layout.json",
"scripts/copy-runtime.py",
"install.sh",
@@ -159,9 +161,31 @@ echo "===== ② casan init (config only, no harness copy) ====="
PROJ="$WORK/proj/my-app"; mkdir -p "$PROJ"; echo '{"name":"x"}' > "$PROJ/package.json"
( cd "$PROJ" && "$CASAN" init --project my-app --mode enforce >/dev/null 2>&1 ) \
&& pass "casan init completes" || fail "casan init failed"
for f in .casan/config.json .casan/version.lock .casan/agentic.env .casan/casan-hook.py .claude/settings.json .codex/hooks.json .vscode/extensions.json .specify/.gitignore; do
for f in .casan/config.json .casan/version.lock .casan/agentic.env .casan/casan-hook.py .casan/discovery.json .casan/readiness.json .claude/settings.json .codex/hooks.json .vscode/extensions.json .specify/.gitignore; do
[[ -f "$PROJ/$f" ]] && pass "init wrote $f" || fail "init missing $f"
done
python3 - "$PROJ/.casan/readiness.json" <<'PY' \
&& pass "Core readiness is independent from optional Domain/Provider states" \
|| fail "commercial readiness contract is invalid"
import json
import sys
d = json.load(open(sys.argv[1], encoding="utf-8"))
assert d["dimensions"]["core"]["status"] in {"ready", "ready_with_attention"}
assert d["dimensions"]["domain_pipeline"]["status"] == "not_configured"
assert d["dimensions"]["provider_telemetry"]["status"] == "optional_unavailable"
PY
CASAN_APP_ROOT="$PROJ" "$CASAN" pipeline --help 2>&1 \
| grep -q "optional Domain Pack" \
&& pass "pipeline help describes the optional capability without executing it" \
|| fail "pipeline help executed or hid the Core/Domain boundary"
set +e
PIPELINE_MISSING="$(CASAN_APP_ROOT="$PROJ" "$CASAN" pipeline 2>&1)"
PIPELINE_RC=$?
set -e
[[ "$PIPELINE_RC" -eq 2 && "$PIPELINE_MISSING" == *"CASAN_PIPELINE_NOT_CONFIGURED"* ]] \
&& pass "missing Domain Pipeline is explicit and does not impersonate a Core failure" \
|| fail "missing Domain Pipeline capability was not reported truthfully"
python3 - "$PROJ/.casan/config.json" <<'PY' \
&& pass "config declares supported and excluded client surfaces" \
|| fail "config client surface contract is incomplete"