feat: onboard service desk as second CASAN project

This commit is contained in:
thanhnv
2026-07-10 17:00:35 +09:00
parent 040af64191
commit f8215cd2eb
20 changed files with 208 additions and 13 deletions
@@ -137,6 +137,7 @@ run "phase-sec24-supplychain" bash "$TESTS/phase-sec24-tests.sh"
run "phase-sec25-attestation" bash "$TESTS/phase-sec25-tests.sh"
run "phase-production-handoff" bash "$TESTS/phase-production-preflight-tests.sh"
run "phase-release-provenance" bash "$TESTS/phase-release-provenance-tests.sh"
run "phase-service-desk-onboard" bash "$TESTS/phase-service-desk-onboard-tests.sh"
# Plan-17 loop engineering (Agentic Loop Governance) — each primitive fail-closed.
run "phase-loop-governor" bash "$TESTS/phase-loop-governor-tests.sh"
@@ -11,6 +11,7 @@ PACKAGE="$CASAN_HARNESS_ROOT/level5/harness-package.json"
python - "$REGISTRY" "$PACKAGE" <<'PY'
import json
import os
import sys
registry = json.load(open(sys.argv[1], encoding="utf-8"))
package = json.load(open(sys.argv[2], encoding="utf-8"))
@@ -18,9 +19,22 @@ name = package["package"]
version = package["version"]
projects = [
p for p in registry["projects"]
if p.get("harness_package") == name and p.get("harness_version") == version
if p.get("status") == "active"
and p.get("harness_package") == name and p.get("harness_version") == version
]
if len(projects) < 2:
raise SystemExit(f"HARNESS_REUSE_INSUFFICIENT package={name} version={version} count={len(projects)}")
print(f"HARNESS_REUSE_VALID package={name} version={version} project_count={len(projects)}")
roots = set()
required = ("domain-pack.yaml", "input", "golden-runs", "corpus", "traceability-map.json")
hub = os.path.abspath(os.path.join(os.path.dirname(registry_path := sys.argv[1]), "..", "..", ".."))
for project in projects:
root = project.get("domain_root", "")
if not root or root in roots:
raise SystemExit(f"HARNESS_REUSE_INVALID_DOMAIN_ROOT project={project.get('project_id')} root={root}")
roots.add(root)
full = os.path.join(hub, root)
missing = [entry for entry in required if not os.path.exists(os.path.join(full, entry))]
if missing:
raise SystemExit(f"HARNESS_REUSE_DOMAIN_INCOMPLETE project={project.get('project_id')} missing={','.join(missing)}")
print(f"HARNESS_REUSE_VALID package={name} version={version} project_count={len(projects)} active_projects={','.join(p['project_id'] for p in projects)}")
PY