test: lock task lifecycle protections
This commit is contained in:
@@ -6,6 +6,7 @@ class TaskBreakdownPolicyTest(unittest.TestCase):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def setUpClass(cls):
|
def setUpClass(cls):
|
||||||
cls.skill = Path(__file__).parents[1].joinpath("SKILL.md").read_text()
|
cls.skill = Path(__file__).parents[1].joinpath("SKILL.md").read_text()
|
||||||
|
cls.task_section = cls.skill.split("## Task and Dependency Breakdown", 1)[1].split("## Version Allocation", 1)[0]
|
||||||
|
|
||||||
def test_architecture_owns_complete_release_task_breakdown(self):
|
def test_architecture_owns_complete_release_task_breakdown(self):
|
||||||
required = [
|
required = [
|
||||||
@@ -18,11 +19,10 @@ class TaskBreakdownPolicyTest(unittest.TestCase):
|
|||||||
"must not report planning readiness",
|
"must not report planning readiness",
|
||||||
]
|
]
|
||||||
for marker in required:
|
for marker in required:
|
||||||
self.assertIn(marker, self.skill)
|
self.assertIn(marker, self.task_section)
|
||||||
|
|
||||||
def test_task_lifecycle_and_readiness_rules_are_fail_closed(self):
|
def test_task_lifecycle_and_readiness_rules_are_fail_closed(self):
|
||||||
required = [
|
required = [
|
||||||
"version: 1.7.0",
|
|
||||||
"repository/component owner",
|
"repository/component owner",
|
||||||
"acceptance-evidence requirements",
|
"acceptance-evidence requirements",
|
||||||
"implementation artifacts",
|
"implementation artifacts",
|
||||||
@@ -42,9 +42,13 @@ class TaskBreakdownPolicyTest(unittest.TestCase):
|
|||||||
"pre-approval state",
|
"pre-approval state",
|
||||||
"renewed human `Approved for Implementation`",
|
"renewed human `Approved for Implementation`",
|
||||||
"separate exact-task Kanban Focus admission",
|
"separate exact-task Kanban Focus admission",
|
||||||
|
"Approved, Kanban-admitted, in-progress, or completed Tasks must not be deleted or silently rewritten.",
|
||||||
|
"Retain an obsolete Task with a terminal Superseded or Cancelled status, its prior evidence and history, and explicit replacement links.",
|
||||||
|
"A material change to Task scope, outcome, dependency, repository, or component must invalidate prior readiness evidence",
|
||||||
]
|
]
|
||||||
|
self.assertIn("version: 1.7.0", self.skill)
|
||||||
for marker in required:
|
for marker in required:
|
||||||
self.assertIn(marker, self.skill)
|
self.assertIn(marker, self.task_section)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
Reference in New Issue
Block a user