Skip to content

Commit b588a3a

Browse files
committed
Sync CPV validators and bump version to 1.3.0
- Updated 13 validation scripts from upstream CPV - Validation: 0 issues, 0 warnings, 947 passed
1 parent 4851470 commit b588a3a

14 files changed

+57
-36
lines changed

.claude-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ai-maestro-orchestrator-agent",
3-
"version": "1.2.9",
3+
"version": "1.3.0",
44
"description": "Task distribution, agent coordination, progress monitoring - executes plans via subagents. Requires AI Maestro for inter-agent messaging.",
55
"author": {
66
"name": "Emasoft",

scripts/smart_exec.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -476,7 +476,12 @@ def choose_best(spec: ToolSpec, tool_args: list[str], executors: dict[str, bool]
476476

477477

478478
def parse_args(argv: list[str]) -> argparse.Namespace:
479-
p = argparse.ArgumentParser(prog="smart_exec.py")
479+
p = argparse.ArgumentParser(
480+
prog="smart_exec.py",
481+
description="Run developer tools using the best available executor (bun, uv, npm, pipx, docker, etc.).",
482+
formatter_class=argparse.RawDescriptionHelpFormatter,
483+
epilog="Examples:\n uv run python scripts/smart_exec.py which ruff\n uv run python scripts/smart_exec.py executors",
484+
)
480485
sub = p.add_subparsers(dest="subcmd", required=True)
481486

482487
p_run = sub.add_parser("run", help="Run a tool using the best available executor")

scripts/validate_agent.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1128,7 +1128,11 @@ def print_json(report: AgentValidationReport) -> None:
11281128

11291129
def main() -> int:
11301130
"""Main entry point."""
1131-
parser = argparse.ArgumentParser(description="Validate a Claude Code agent file or directory")
1131+
parser = argparse.ArgumentParser(
1132+
description="Validate a Claude Code agent file or directory of agents.",
1133+
formatter_class=argparse.RawDescriptionHelpFormatter,
1134+
epilog="Example: uv run python scripts/validate_agent.py agents/",
1135+
)
11321136
parser.add_argument("path", help="Path to agent .md file or agents/ directory")
11331137
parser.add_argument(
11341138
"--verbose",

scripts/validate_command.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -644,7 +644,11 @@ def print_json(report: CommandValidationReport) -> None:
644644

645645
def main() -> int:
646646
"""Main entry point."""
647-
parser = argparse.ArgumentParser(description="Validate a Claude Code command file or directory")
647+
parser = argparse.ArgumentParser(
648+
description="Validate a Claude Code command file or directory of commands.",
649+
formatter_class=argparse.RawDescriptionHelpFormatter,
650+
epilog="Example: uv run python scripts/validate_command.py commands/",
651+
)
648652
parser.add_argument("path", help="Path to command .md file or commands/ directory")
649653
parser.add_argument(
650654
"--verbose",

scripts/validate_documentation.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -820,7 +820,11 @@ def main() -> int:
820820
Returns:
821821
Exit code (0=ok, 1=critical, 2=major, 3=minor)
822822
"""
823-
parser = argparse.ArgumentParser(description="Validate documentation files in a Claude Code plugin")
823+
parser = argparse.ArgumentParser(
824+
description="Validate documentation files in a Claude Code plugin.",
825+
formatter_class=argparse.RawDescriptionHelpFormatter,
826+
epilog="Checks: README structure, broken links, code blocks, image refs, heading hierarchy.",
827+
)
824828
parser.add_argument("plugin_path", help="Path to the plugin directory")
825829
parser.add_argument(
826830
"--verbose",

scripts/validate_hook.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1014,7 +1014,11 @@ def print_json(report: HookValidationReport) -> None:
10141014

10151015
def main() -> int:
10161016
"""Main entry point."""
1017-
parser = argparse.ArgumentParser(description="Validate a Claude Code hooks.json file")
1017+
parser = argparse.ArgumentParser(
1018+
description="Validate a Claude Code hooks.json file.",
1019+
formatter_class=argparse.RawDescriptionHelpFormatter,
1020+
epilog="Example: uv run python scripts/validate_hook.py hooks/hooks.json --plugin-root .",
1021+
)
10181022
parser.add_argument("hook_path", help="Path to the hooks.json file")
10191023
parser.add_argument(
10201024
"--plugin-root",

scripts/validate_lsp.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,10 @@ def print_results(report: ValidationReport, verbose: bool = False) -> None:
463463

464464
def main() -> int:
465465
"""Main entry point."""
466-
parser = argparse.ArgumentParser(description="Validate LSP configuration")
466+
parser = argparse.ArgumentParser(
467+
description="Validate LSP (Language Server Protocol) server configuration for Claude Code plugins.",
468+
formatter_class=argparse.RawDescriptionHelpFormatter,
469+
)
467470
parser.add_argument("--verbose", "-v", action="store_true", help="Show all results")
468471
parser.add_argument("--json", action="store_true", help="Output as JSON")
469472
parser.add_argument("--strict", action="store_true", help="Strict mode — NIT issues also block validation")

scripts/validate_marketplace_pipeline.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1461,6 +1461,8 @@ def main() -> int:
14611461
description="Validate marketplace publishing pipeline automation",
14621462
formatter_class=argparse.RawDescriptionHelpFormatter,
14631463
epilog="""
1464+
Checks: GitHub Actions workflows, CI scripts, validation pipeline, deployment config.
1465+
14641466
Examples:
14651467
%(prog)s /path/to/marketplace
14661468
%(prog)s /path/to/marketplace --verbose

scripts/validate_mcp.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -534,7 +534,10 @@ def print_results(report: ValidationReport, verbose: bool = False) -> None:
534534

535535
def main() -> int:
536536
"""Main entry point."""
537-
parser = argparse.ArgumentParser(description="Validate MCP configuration")
537+
parser = argparse.ArgumentParser(
538+
description="Validate MCP (Model Context Protocol) server configuration for Claude Code plugins.",
539+
formatter_class=argparse.RawDescriptionHelpFormatter,
540+
)
538541
parser.add_argument("--verbose", "-v", action="store_true", help="Show all results")
539542
parser.add_argument("--strict", action="store_true", help="Strict mode — NIT issues also block validation")
540543
parser.add_argument("--json", action="store_true", help="Output as JSON")

scripts/validate_plugin.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1335,7 +1335,11 @@ def print_json(report: ValidationReport) -> None:
13351335

13361336
def main() -> int:
13371337
"""Main entry point."""
1338-
parser = argparse.ArgumentParser(description="Validate Claude Code plugin")
1338+
parser = argparse.ArgumentParser(
1339+
description="Validate a Claude Code plugin against all validation rules.",
1340+
formatter_class=argparse.RawDescriptionHelpFormatter,
1341+
epilog="This is the main entry point. It orchestrates all 17 sub-validators.\nExample: uv run python scripts/validate_plugin.py . --strict --verbose",
1342+
)
13391343
parser.add_argument(
13401344
"--verbose",
13411345
"-v",

0 commit comments

Comments
 (0)