diff --git a/tests/test_llm_workflow_split.py b/tests/test_llm_workflow_split.py index 327b17d..e9827b8 100644 --- a/tests/test_llm_workflow_split.py +++ b/tests/test_llm_workflow_split.py @@ -1,4 +1,4 @@ -"""Doc-contract checks for task-specific LLM workflow split (#333).""" +"""Doc-contract checks for task-specific LLM workflow split (#333, #334).""" from pathlib import Path REPO_ROOT = Path(__file__).resolve().parent.parent @@ -46,15 +46,33 @@ def test_skill_is_router_not_monolithic_review_body(): assert "gitea_submit_pr_review" not in SKILL +def test_skill_still_declares_controller_handoff_contract(): + assert "## Controller Handoff" in SKILL + assert "assess_controller_handoff" in SKILL + assert "## Global LLM Worktree Rule" in SKILL + + def test_review_merge_workflow_contract(): text = (SKILL_DIR / "workflows" / "review-merge-pr.md").read_text(encoding="utf-8") assert "canonical: true" in text + assert "## 0. Load the canonical workflow first" in text assert "## 26A. Terminal review mutation hard-stop" in text assert "## 11A. Skipped PRs are read-only" in text assert "## 35. Duplicate request-changes prevention" in text + assert "## 37. Controller handoff schema" in text + assert "INVENTORY_PAGINATION_UNPROVEN" in text assert "ALREADY_LANDED_RECONCILE_REQUIRED" in text +def test_review_merge_final_report_schema_exists(): + path = SKILL_DIR / "schemas" / "review-merge-final-report.md" + text = path.read_text(encoding="utf-8") + assert "Controller Handoff" in text + assert "Candidate head SHA:" in text + assert "Terminal review mutation:" in text + assert "Workspace mutations" in text + + def test_reconcile_landed_workflow_contract(): text = (SKILL_DIR / "workflows" / "reconcile-landed-pr.md").read_text(encoding="utf-8") assert "canonical: true" in text