diff --git a/skills/auto-tmux/AGENTS.md b/skills/auto-tmux/AGENTS.md index 4929e1c..929c94d 100644 --- a/skills/auto-tmux/AGENTS.md +++ b/skills/auto-tmux/AGENTS.md @@ -30,6 +30,7 @@ skills/auto-tmux/ │ ├── record-summary.sh │ ├── check-jsonl.sh │ ├── review-checklist.sh +│ ├── verify-report-pack.sh │ ├── completion.bash │ ├── safety-check.sh │ ├── render-swarm-prompt.sh @@ -75,6 +76,7 @@ skills/auto-tmux/ - `scripts/record-summary.sh` 是复盘摘要层,将 pane 录制日志整理为 Markdown。 - `scripts/check-jsonl.sh` 是轻量 JSONL 字段门禁层,不替代完整 JSON parser。 - `scripts/review-checklist.sh` 是报告包审计层,为 reviewer 生成固定检查清单。 +- `scripts/verify-report-pack.sh` 是报告包统一验证层,组合 manifest、JSONL 和审计清单门禁。 - `scripts/completion.bash` 是本地补全层,补全 `auto-tmux.sh` 与 `swarm-state.sh`。 - `scripts/safety-check.sh` 是安全预检层,检查待发送 payload 的危险命令、敏感信息和大小。 - `scripts/render-swarm-prompt.sh` 是提示词渲染层,生成 commander/worker/reviewer 协议文本。 @@ -89,4 +91,4 @@ skills/auto-tmux/ - 上游来源:`tools/external/.tmux` 与 `tools/external/tmux`。 - 下游使用:`SKILL.md` 和 `references/` 中的命令示例。 - 验证入口:`skills/auto-skill/scripts/validate-skill.sh skills/auto-tmux --strict`。 -- 脚本验证:`skills/auto-tmux/scripts/validate-auto-tmux.sh`、`bash -n skills/auto-tmux/scripts/auto-tmux.sh`、`bash -n skills/auto-tmux/scripts/swarm-state.sh`、`bash -n skills/auto-tmux/scripts/swarm-brief.sh`、`bash -n skills/auto-tmux/scripts/swarm-watch.sh`、`bash -n skills/auto-tmux/scripts/swarm-archive.sh`、`bash -n skills/auto-tmux/scripts/swarm-board.sh`、`bash -n skills/auto-tmux/scripts/swarm-deps-graph.sh`、`bash -n skills/auto-tmux/scripts/swarm-export.sh`、`bash -n skills/auto-tmux/scripts/swarm-timeline.sh`、`bash -n skills/auto-tmux/scripts/swarm-blockers.sh`、`bash -n skills/auto-tmux/scripts/swarm-results.sh`、`bash -n skills/auto-tmux/scripts/swarm-report-pack.sh`、`bash -n skills/auto-tmux/scripts/swarm-assign.sh`、`bash -n skills/auto-tmux/scripts/swarm-health.sh`、`bash -n skills/auto-tmux/scripts/remote-readonly.sh`、`bash -n skills/auto-tmux/scripts/record-summary.sh`、`bash -n skills/auto-tmux/scripts/check-jsonl.sh`、`bash -n skills/auto-tmux/scripts/review-checklist.sh`、`bash -n skills/auto-tmux/scripts/completion.bash`、`bash -n skills/auto-tmux/scripts/safety-check.sh`、`bash -n skills/auto-tmux/scripts/render-swarm-prompt.sh`、`bash -n skills/auto-tmux/scripts/swarm-dispatch.sh`、`skills/auto-tmux/scripts/auto-tmux-smoke-test.sh`。 +- 脚本验证:`skills/auto-tmux/scripts/validate-auto-tmux.sh`、`bash -n skills/auto-tmux/scripts/auto-tmux.sh`、`bash -n skills/auto-tmux/scripts/swarm-state.sh`、`bash -n skills/auto-tmux/scripts/swarm-brief.sh`、`bash -n skills/auto-tmux/scripts/swarm-watch.sh`、`bash -n skills/auto-tmux/scripts/swarm-archive.sh`、`bash -n skills/auto-tmux/scripts/swarm-board.sh`、`bash -n skills/auto-tmux/scripts/swarm-deps-graph.sh`、`bash -n skills/auto-tmux/scripts/swarm-export.sh`、`bash -n skills/auto-tmux/scripts/swarm-timeline.sh`、`bash -n skills/auto-tmux/scripts/swarm-blockers.sh`、`bash -n skills/auto-tmux/scripts/swarm-results.sh`、`bash -n skills/auto-tmux/scripts/swarm-report-pack.sh`、`bash -n skills/auto-tmux/scripts/swarm-assign.sh`、`bash -n skills/auto-tmux/scripts/swarm-health.sh`、`bash -n skills/auto-tmux/scripts/remote-readonly.sh`、`bash -n skills/auto-tmux/scripts/record-summary.sh`、`bash -n skills/auto-tmux/scripts/check-jsonl.sh`、`bash -n skills/auto-tmux/scripts/review-checklist.sh`、`bash -n skills/auto-tmux/scripts/verify-report-pack.sh`、`bash -n skills/auto-tmux/scripts/completion.bash`、`bash -n skills/auto-tmux/scripts/safety-check.sh`、`bash -n skills/auto-tmux/scripts/render-swarm-prompt.sh`、`bash -n skills/auto-tmux/scripts/swarm-dispatch.sh`、`skills/auto-tmux/scripts/auto-tmux-smoke-test.sh`。 diff --git a/skills/auto-tmux/README.md b/skills/auto-tmux/README.md index 433d8f1..9b46b92 100644 --- a/skills/auto-tmux/README.md +++ b/skills/auto-tmux/README.md @@ -37,6 +37,7 @@ bash -n skills/auto-tmux/scripts/remote-readonly.sh bash -n skills/auto-tmux/scripts/record-summary.sh bash -n skills/auto-tmux/scripts/check-jsonl.sh bash -n skills/auto-tmux/scripts/review-checklist.sh +bash -n skills/auto-tmux/scripts/verify-report-pack.sh bash -n skills/auto-tmux/scripts/completion.bash bash -n skills/auto-tmux/scripts/safety-check.sh bash -n skills/auto-tmux/scripts/render-swarm-prompt.sh diff --git a/skills/auto-tmux/SKILL.md b/skills/auto-tmux/SKILL.md index 0cc4b06..e0a48aa 100644 --- a/skills/auto-tmux/SKILL.md +++ b/skills/auto-tmux/SKILL.md @@ -51,6 +51,7 @@ bash -n skills/auto-tmux/scripts/remote-readonly.sh bash -n skills/auto-tmux/scripts/record-summary.sh bash -n skills/auto-tmux/scripts/check-jsonl.sh bash -n skills/auto-tmux/scripts/review-checklist.sh +bash -n skills/auto-tmux/scripts/verify-report-pack.sh bash -n skills/auto-tmux/scripts/completion.bash bash -n skills/auto-tmux/scripts/safety-check.sh bash -n skills/auto-tmux/scripts/render-swarm-prompt.sh @@ -175,6 +176,7 @@ skills/auto-tmux/scripts/record-summary.sh --dir /tmp/auto-tmux-records --out /t skills/auto-tmux/scripts/check-jsonl.sh /tmp/ai-swarm-results.jsonl --require-key type --require-key id --require-key status skills/auto-tmux/scripts/review-checklist.sh --pack /tmp/ai-swarm-report-pack --out /tmp/ai-swarm-report-pack/review-checklist.md skills/auto-tmux/scripts/review-checklist.sh --pack /tmp/ai-swarm-report-pack --strict +skills/auto-tmux/scripts/verify-report-pack.sh --pack /tmp/ai-swarm-report-pack ``` **等待 pane 出现完成信号** @@ -307,6 +309,7 @@ skills/auto-tmux/scripts/swarm-dispatch.sh --role worker --target ::/dev/null "$1" --dir "$tmp/swarm" --out "$tmp/out-tar" --attach "$tmp/remote" --tar >/dev/null test -f "$tmp/out-tar.tar.gz" rm -rf "$tmp" -' _ "$script_dir/swarm-report-pack.sh" +' _ "$script_dir/swarm-report-pack.sh" "$script_dir/verify-report-pack.sh" run_gate "swarm-assign help" "$script_dir/swarm-assign.sh" --help run_gate "swarm-health help" "$script_dir/swarm-health.sh" --help run_gate "remote-readonly help" "$script_dir/remote-readonly.sh" --help @@ -195,6 +197,7 @@ run_gate "review-checklist strict failure" bash -c ' grep -Fq "missing required files" /tmp/auto-tmux-review-check.log rm -rf "$tmp" /tmp/auto-tmux-review-check.log ' _ "$script_dir/review-checklist.sh" +run_gate "verify-report-pack help" "$script_dir/verify-report-pack.sh" --help run_gate "safety-check help" "$script_dir/safety-check.sh" --help run_gate "safety-check clean text" "$script_dir/safety-check.sh" --text "make test" if "$script_dir/safety-check.sh" --text "rm -rf /tmp/example" >/tmp/auto-tmux-validate-gate.log 2>&1; then @@ -222,6 +225,7 @@ require_contains "$skill_dir/SKILL.md" "scripts/remote-readonly.sh" require_contains "$skill_dir/SKILL.md" "scripts/record-summary.sh" require_contains "$skill_dir/SKILL.md" "scripts/check-jsonl.sh" require_contains "$skill_dir/SKILL.md" "scripts/review-checklist.sh" +require_contains "$skill_dir/SKILL.md" "scripts/verify-report-pack.sh" require_contains "$skill_dir/SKILL.md" "scripts/completion.bash" require_contains "$skill_dir/SKILL.md" "scripts/safety-check.sh" require_contains "$skill_dir/SKILL.md" "scripts/swarm-dispatch.sh" @@ -256,6 +260,7 @@ require_contains "$script_dir/README.md" "metadata.jsonl" require_contains "$script_dir/README.md" "record-summary.sh" require_contains "$script_dir/README.md" "check-jsonl.sh" require_contains "$script_dir/README.md" "review-checklist.sh" +require_contains "$script_dir/README.md" "verify-report-pack.sh" require_contains "$script_dir/README.md" "completion.bash" require_contains "$script_dir/README.md" "safety-check.sh" require_contains "$script_dir/AGENTS.md" "validate-auto-tmux.sh" @@ -275,6 +280,7 @@ require_contains "$script_dir/AGENTS.md" "remote-readonly.sh" require_contains "$script_dir/AGENTS.md" "record-summary.sh" require_contains "$script_dir/AGENTS.md" "check-jsonl.sh" require_contains "$script_dir/AGENTS.md" "review-checklist.sh" +require_contains "$script_dir/AGENTS.md" "verify-report-pack.sh" require_contains "$script_dir/AGENTS.md" "completion.bash" require_contains "$script_dir/AGENTS.md" "safety-check.sh" diff --git a/skills/auto-tmux/scripts/verify-report-pack.sh b/skills/auto-tmux/scripts/verify-report-pack.sh new file mode 100755 index 0000000..e711053 --- /dev/null +++ b/skills/auto-tmux/scripts/verify-report-pack.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash +# verify-report-pack: verify an auto-tmux report pack with local gates. +set -euo pipefail + +usage() { + cat <<'EOF' +verify-report-pack: verify an auto-tmux report pack + +Usage: + verify-report-pack.sh --pack DIR + +Checks: + - required report pack files via review-checklist --strict + - root manifest type + - results.jsonl required fields +EOF +} + +die() { + printf 'error: %s\n' "$*" >&2 + exit 1 +} + +script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +pack_dir="" + +while [[ $# -gt 0 ]]; do + case "$1" in + --pack) + pack_dir="${2:-}" + shift 2 + ;; + -h|--help) + usage + exit 0 + ;; + *) + die "unknown option: $1" + ;; + esac +done + +[[ -n "$pack_dir" ]] || die "missing --pack" +[[ -d "$pack_dir" ]] || die "pack dir not found: $pack_dir" + +"$script_dir/review-checklist.sh" --pack "$pack_dir" --strict >/dev/null +grep -Fq '"type": "auto-tmux-swarm-report-pack"' "$pack_dir/manifest.json" || die "invalid manifest type" +"$script_dir/check-jsonl.sh" "$pack_dir/results.jsonl" --require-key type --require-key id --require-key status >/dev/null + +printf 'report pack ok: %s\n' "$pack_dir"