Provides secure task planning, validation, approval, and execution for AI agents with safety checks, rollback, dry runs, and error handling using pure Python.
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install task-panner-validator或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install task-panner-validator⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/task-panner-validator/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
This skill provides a secure, step-by-step task management system for AI Agents.
# Clone the repository
git clone https://github.com/cerbug45/task-planner-validator.git
cd task-planner-validator
# That's it! No dependencies needed - pure Python standard library
# Run tests
python test_basic.py
# Run examples
python examples.py
from task_planner import TaskPlanner
# Create planner
planner = TaskPlanner(auto_approve=False)
def my_executor(action: str, parameters: dict):
"""Your custom execution logic"""
if action == "fetch_data":
# Fetch data from API, database, etc.
return {"data": [1, 2, 3]}
elif action == "process_data":
# Process the data
return {"processed": True}
else:
return {"status": "completed"}
steps = [
{
"description": "Fetch user data",
"action": "fetch_data",
"parameters": {"source": "database"},
"expected_output": "List of users"
},
{
"description": "Process users",
"action": "process_data",
"parameters": {"validation": True},
"expected_output": "Processed data"
}
]
plan = planner.create_plan(
title="Data Processing Pipeline",
description="Fetch and process user data",
steps=steps
)
# Validate
is_valid, warnings = planner.validate_plan(plan)
if warnings:
print("Warnings:", warnings)
# Approve
planner.approve_plan(plan, approved_by="admin")
# Execute
success, results = planner.execute_plan(plan, my_executor)
# Get summary
summary = planner.get_execution_summary(plan)
print(f"Progress: {summary['progress_percentage']}%")
Automatically detects dangerous operations:
steps = [
{
"description": "Delete old files",
"action": "delete_files", # ⚠️ Dangerous!
"parameters": {"path": "/data/old"},
"safety_check": True, # System will warn
"rollback_possible": False # Cannot undo
}
]
Test without executing:
success, results = planner.execute_plan(
plan,
my_executor,
dry_run=True # Simulate only
)
Persist plans for reuse:
# Save
planner.save_plan(plan, "my_plan.json")
# Load later
loaded_plan = planner.load_plan("my_plan.json")
# Verify integrity
if loaded_plan.verify_integrity():
planner.execute_plan(loaded_plan, my_executor)
Control error behavior:
success, results = planner.execute_plan(
plan,
my_executor,
stop_on_error=False # Continue on failures
)
# Check results
for result in results:
if not result['success']:
print(f"Step {result['order']} failed: {result['error']}")
Each step supports these parameters:
{
"description": str, # Required: Human-readable description
"action": str, # Required: Action identifier
"parameters": dict, # Required: Action parameters
"expected_output": str, # Required: Expected result
"safety_check": bool, # Optional: Enable validation (default: True)
"rollback_possible": bool, # Optional: Can be rolled back (default: True)
"max_retries": int # Optional: Retry attempts (default: 3)
}
steps = [
{
"description": "Authenticate",
"action": "api_auth",
"parameters": {"service": "github"},
"expected_output": "Auth token"
},
{
"description": "Fetch data",
"action": "api_fetch",
"parameters": {"endpoint": "/repos"},
"expected_output": "Repository list"
}
]
steps = [
{
"description": "Extract data",
"action": "extract",
"parameters": {"source": "database"},
"expected_output": "Raw data"
},
{
"description": "Transform data",
"action": "transform",
"parameters": {"rules": ["normalize", "validate"]},
"expected_output": "Clean data"
},
{
"description": "Load data",
"action": "load",
"parameters": {"destination": "warehouse"},
"expected_output": "Success confirmation"
}
]
steps = [
{
"description": "Backup database",
"action": "backup",
"parameters": {"target": "postgres"},
"expected_output": "Backup file path",
"rollback_possible": True
},
{
"description": "Update schema",
"action": "migrate",
"parameters": {"version": "2.0"},
"expected_output": "Migration complete",
"rollback_possible": True
},
{
"description": "Verify integrity",
"action": "verify",
"parameters": {"checks": ["all"]},
"expected_output": "All checks passed"
}
]
is_valid, warnings = planner.validate_plan(plan)
if not is_valid:
print("Plan validation failed!")
for warning in warnings:
print(f" - {warning}")
exit(1)
# Good ✅
{
"description": "Fetch active users from PostgreSQL production database",
"action": "fetch_active_users_postgres_prod",
...
}
# Bad ❌
{
"description": "Get data",
"action": "get",
...
}
{
"description": "Delete temporary files older than 30 days",
"action": "cleanup_temp_files",
"parameters": {"age_days": 30, "path": "/tmp"},
"safety_check": True, # ⚠️ Will trigger warnings
"rollback_possible": False # ⚠️ Cannot undo!
}
# Always test first
success, results = planner.execute_plan(plan, my_executor, dry_run=True)
if success:
# Now run for real
success, results = planner.execute_plan(plan, my_executor, dry_run=False)
def safe_executor(action: str, parameters: dict):
try:
result = execute_action(action, parameters)
return result
except Exception as e:
logging.error(f"Failed to execute {action}: {e}")
raise # Re-raise to let planner handle it
# Skip manual approval for automated workflows
planner = TaskPlanner(auto_approve=True)
# Checkpoints are automatically created for rollback-capable steps
# Access checkpoint history
checkpoints = planner.executor.checkpoint_stack
# View execution history
history = planner.executor.execution_history
for entry in history:
print(f"{entry['timestamp']}: {entry['step_id']} - {entry['status']}")
# Add custom validation to SafetyValidator
planner.safety_validator.dangerous_operations.append('my_dangerous_op')
planner.safety_validator.sensitive_paths.append('/my/sensitive/path')
# Solution: Approve the plan first
planner.approve_plan(plan, approved_by="admin")
# Or use auto-approve mode
planner = TaskPlanner(auto_approve=True)
# Review warnings and ensure operations are intentional
is_valid, warnings = planner.validate_plan(plan)
for warning in warnings:
print(warning)
# If operations are safe, approve anyway
if is_valid: # Still valid, just warnings
planner.approve_plan(plan)
...
安装 Task Panner Validator for Agents 后,可以对 AI 说这些话来触发它
Help me get started with Task Panner Validator for Agents
Explains what Task Panner Validator for Agents does, walks through the setup, and runs a quick demo based on your current project
Use Task Panner Validator for Agents to secure task planning, validation, approval, and execution for AI ag...
Invokes Task Panner Validator for Agents with the right parameters and returns the result directly in the conversation
What can I do with Task Panner Validator for Agents in my product manager workflow?
Lists the top use cases for Task Panner Validator for Agents, with example commands for each scenario
将技能文件夹放到 ~/.claude/skills/task-panner-validator/ 目录(个人级,所有项目可用),或 .claude/skills/task-panner-validator/(项目级)。重启 AI 客户端后,用 /task-panner-validator 主动调用,或让 AI 根据上下文自动发现并使用。
Task Panner Validator for Agents 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
Task Panner Validator for Agents 可免费安装使用。请查阅仓库了解许可证信息。
Provides secure task planning, validation, approval, and execution for AI agents with safety checks, rollback, dry runs, and error handling using pure Python.
Automate my product manager tasks using Task Panner Validator for Agents
Identifies repetitive steps in your workflow and sets up Task Panner Validator for Agents to handle them automatically
Task Panner Validator for Agents 属于「Product Manager」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。