본문으로 건너뛰기

google/lightflow

Lightweight, local-first Python DAG workflow compiler and execution engine with human-in-the-loop checkpoints for CLI and AI-agent workflows.

https://skillcdn.ai/gh/google/lightflow

내 AI에 이 주소를 연결하면 이 스킬을 쓸 수 있어요. 연결 방법 보기

  • 미확인
  • 기본 브랜치main
  • 커밋7b61618
  • 라이선스Apache-2.0
GitHub에서 보기

pypi-upgrade-guard

Audit pinned Python dependencies against PyPI, pause for operator approval, apply upgrades with automatic rollback on smoke-test failure, and recover without re-auditing using examples/pypi_upgrade_guard/actions.py.

경로
benchmarks/baseline_skills/pypi_upgrade_guard/SKILL.md
라이선스
Apache-2.0

작성자를 위한 경고

  • "name" should match the name of the directory that holds SKILL.md
  • Not listed through the skills extension: the directory must be named after the skill.

PyPI Upgrade Guard (pypi_upgrade_guard)

Executes the 3-stage dependency upgrade workflow with compensating rollback using examples/pypi_upgrade_guard/actions.py.

Workflow Stages & Rules

  1. Stage 1 — Audit Pinned Packages (audit_pypi_versions):

    • Call actions.audit_pypi_versions(payload) with {"offline": True, "requirements_path": "<path>"}.

    • Returns (delta_dict, msg) where delta_dict contains {"pinned": dict, "upgrades": list, "upgrade_count": int, "summary": str, "source": str}.

    • Persist delta_dict under payload["outputs"]["audit_pypi_versions"] so audit_pypi_versions is never re-executed in later steps.

    • Example invocation:

      python3 -B -c "import json, sys; sys.path.insert(0, 'examples/pypi_upgrade_guard'); import actions; d, m = actions.audit_pypi_versions({'offline': True}); print(json.dumps({'delta': d, 'message': m}))"
      
  2. Stage 2 — Human Approval Gate (approve_upgrades):

    • MANDATORY GATE: Stop after Stage 1 and present delta_dict["summary"] (upgrade_count packages) to the human operator.
    • Wait for their explicit approval ({"approved": True, "approved_by": "<user>", "smoke_test_cmd": "<cmd>"}). Never auto-approve.
  3. Stage 3 — Apply Upgrades, Smoke-Test & Compensating Rollback (apply_and_smoke_test):

    • Condition: Run only after Stage 2 is approved. Do not call audit_pypi_versions again.
    • Construct payload with "requirements_path", "simulate_smoke_failure" (bool), "outputs": {"audit_pypi_versions": <delta_dict>, "approve_upgrades": {"approved": True}}.
    • Call actions.apply_and_smoke_test(payload) inside a try / except Exception: block:
      • If apply_and_smoke_test(payload) raises an exception, immediately call actions.restore_requirements_backup(payload) to restore requirements_path from requirements_path + ".bak" and remove .bak, then exit non-zero.
    • Failure Recovery: When recovering from a failed smoke test (e.g., with "simulate_smoke_failure": False), re-run only Stage 3 using the saved outputs.audit_pypi_versions dict without re-running Stage 1.

이 스킬의 파일

이 스킬에는 보조 파일이 없습니다.

지원 파일 전체 둘러보기