Skill-BidCreater/scripts/run_skill.py
2026-03-09 22:20:38 +08:00

59 lines
1.7 KiB
Python

from __future__ import annotations
import argparse
import subprocess
import sys
from pathlib import Path
def main() -> None:
parser = argparse.ArgumentParser()
parser.add_argument("--project", required=True)
parser.add_argument(
"--mode",
required=True,
help="低层开发辅助操作。真正 workflow 由 SKILL.md 定义,不由 CLI 固定。",
)
parser.add_argument("--outline")
parser.add_argument("--content")
parser.add_argument("--input")
parser.add_argument("--out")
parser.add_argument("--bundle")
args = parser.parse_args()
mode_aliases = {
"extract": "parse-rfp",
"review-outline": "render-outline",
"compose": "render-bid",
"scan-materials": "scan-project",
"safe-write-json": "write-large-json",
}
selected_mode = mode_aliases.get(args.mode, args.mode)
valid_modes = {"parse-rfp", "scan-project", "render-outline", "render-bid", "write-large-json"}
if selected_mode not in valid_modes:
raise ValueError(f"不支持的 mode: {args.mode}。允许值:{', '.join(sorted(valid_modes))}")
command = [
sys.executable,
str(Path(__file__).resolve().parent / "run_project_pipeline.py"),
"--project",
args.project,
"--tool",
selected_mode,
]
if args.outline:
command.extend(["--outline", args.outline])
if args.content:
command.extend(["--content", args.content])
if args.input:
command.extend(["--input", args.input])
if args.out:
command.extend(["--out", args.out])
if args.bundle:
command.extend(["--bundle", args.bundle])
subprocess.run(command, check=True)
if __name__ == "__main__":
main()