Ctrl K
ComunidadGuías…

scripts/butler-demo-lead-smoke.sh

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
#!/usr/bin/env bash
# C3: 普通试点项目 Lead 冒烟(第二 Lead 项目)
set -euo pipefail

ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$ROOT"
PROJECT="普通试点项目"

if [[ -f .env ]]; then
  set -a
  # shellcheck disable=SC1091
  source .env 2>/dev/null || true
  set +a
fi
export PYTHONPATH="${PYTHONPATH:-.}:."

echo "== sync demo project skills =="
bash "$ROOT/scripts/sync-project-skills.sh" DemoPilot

echo ""
echo "== 1/3 preflight =="
butler project preflight --project "$PROJECT"

echo ""
echo "== 2/3 lead allowlist =="
python3 <<'PY'
from butler.project.lead import gateway_loop_role, is_lead_project
from butler.project.manager import get_project_manager
from butler.tools.project_tools import allowed_tool_names_for_project

pm = get_project_manager()
proj = pm.get_project("普通试点项目")
assert proj is not None
assert is_lead_project("普通试点项目", project=proj), "expected lead:true on 普通试点项目"
assert gateway_loop_role("普通试点项目", project=proj) == "lead"
allowed = allowed_tool_names_for_project(proj, role="lead")
assert allowed is not None
for name in ("read_file", "delegate_task", "run_workflow"):
    assert name in allowed
for forbidden in ("patch", "terminal", "write_file"):
    assert forbidden not in allowed
print("demo lead allowlist OK")
PY

echo ""
echo "== 3/3 lead skill on disk =="
test -f "projects/DemoPilot/skills/demo-project-lead.md"

echo ""
echo "Demo lead smoke: ALL PASSED"