fix(agent-ops): Milestone 표기 검증 오탐을 수정한다

This commit is contained in:
toki 2026-08-10 00:50:16 +09:00
parent f9915ffc89
commit df0ecdbf1d
2 changed files with 27 additions and 1 deletions

View file

@ -343,7 +343,7 @@ def validate_pairs(
pairs.append((plan, review, header))
union.update(target_ids)
contents = plan.read_text(encoding="utf-8") + "\n" + review.read_text(encoding="utf-8")
if "[TODO" in contents or "<task_group>" in contents or "<milestone-slug>" in contents:
if "[TODO" in contents or "<task_group>" in contents:
raise CycleError(f"unresolved template token: {plan.parent}")
if dispatcher.is_file():
run(

View file

@ -260,6 +260,32 @@ class EpicCycleContractTest(unittest.TestCase):
self.assertEqual([pair[0].parent.name for pair in pairs], ["02_second"])
self.assertEqual(union, {"second-task"})
def test_validate_pair_allows_documented_milestone_slug_notation(self) -> None:
with tempfile.TemporaryDirectory() as raw:
workspace = Path(raw)
command(workspace, "git", "init")
task = workspace / "agent-task" / "m-sample" / "01_work"
task.mkdir(parents=True)
header = (
"<!-- task=m-sample/01_work plan=0 tag=TEST "
"milestone-task=inside -->\n"
)
(task / "PLAN-local-G01.md").write_text(
header + "# Plan\n",
encoding="utf-8",
)
(task / "CODE_REVIEW-local-G01.md").write_text(
header
+ "# Review\n\n"
+ "For task groups matching `m-<milestone-slug>`, preserve metadata.\n",
encoding="utf-8",
)
pairs, union = MODULE.validate_pairs(workspace, "m-sample", {"inside"})
self.assertEqual(len(pairs), 1)
self.assertEqual(union, {"inside"})
def test_validate_pair_rejects_foreign_pair_outside_selected_batch(self) -> None:
with tempfile.TemporaryDirectory() as raw:
workspace = Path(raw)