Closes #334 - Add workflows/review-merge-pr.md with reviewer-only gates and steps - Add schemas/review-merge-final-report.md with mutation ledger fields - Turn SKILL.md into task-mode router; replace inlined §F/§G with links - Point review/merge templates at extracted workflow - Add doc-contract tests for split structure Part of #333. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
47 lines
1.8 KiB
Python
47 lines
1.8 KiB
Python
"""Doc-contract checks for task-specific LLM workflow split (#333, #334)."""
|
|
from pathlib import Path
|
|
|
|
REPO_ROOT = Path(__file__).resolve().parent.parent
|
|
SKILL_DIR = REPO_ROOT / "skills" / "llm-project-workflow"
|
|
|
|
|
|
def test_review_merge_workflow_file_exists():
|
|
path = SKILL_DIR / "workflows" / "review-merge-pr.md"
|
|
text = path.read_text(encoding="utf-8")
|
|
assert "Task mode:" in text
|
|
assert "review-merge-pr" in text
|
|
assert "gitea-reviewer" in text
|
|
assert "scripts/worktree-review" 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 "Worktree/index mutations" in text
|
|
assert "Workspace mutations" in text # documented as rejected
|
|
|
|
|
|
def test_skill_router_points_to_review_merge_workflow():
|
|
skill = (SKILL_DIR / "SKILL.md").read_text(encoding="utf-8")
|
|
assert "## Task mode router" in skill
|
|
assert "workflows/review-merge-pr.md" in skill
|
|
assert "schemas/review-merge-final-report.md" in skill
|
|
assert "Identify task mode before any mutation" in skill
|
|
|
|
|
|
def test_skill_still_declares_controller_handoff_contract():
|
|
skill = (SKILL_DIR / "SKILL.md").read_text(encoding="utf-8")
|
|
assert "## Controller Handoff" in skill
|
|
assert "assess_controller_handoff" in skill
|
|
assert "## Global LLM Worktree Rule" in skill
|
|
|
|
|
|
def test_review_pr_template_references_extracted_workflow():
|
|
text = (SKILL_DIR / "templates" / "review-pr.md").read_text(encoding="utf-8")
|
|
assert "workflows/review-merge-pr.md" in text
|
|
|
|
|
|
def test_merge_pr_template_references_extracted_workflow():
|
|
text = (SKILL_DIR / "templates" / "merge-pr.md").read_text(encoding="utf-8")
|
|
assert "workflows/review-merge-pr.md" in text |