diff --git a/skills/auto-tmux/AGENTS.md b/skills/auto-tmux/AGENTS.md index c57b8a9..80b72f3 100644 --- a/skills/auto-tmux/AGENTS.md +++ b/skills/auto-tmux/AGENTS.md @@ -32,6 +32,7 @@ skills/auto-tmux/ │ ├── review-checklist.sh │ ├── verify-report-pack.sh │ ├── incident-report.sh +│ ├── audit-package.sh │ ├── completion.bash │ ├── safety-check.sh │ ├── render-swarm-prompt.sh diff --git a/skills/auto-tmux/SKILL.md b/skills/auto-tmux/SKILL.md index d8cdf23..0b945c4 100644 --- a/skills/auto-tmux/SKILL.md +++ b/skills/auto-tmux/SKILL.md @@ -317,6 +317,7 @@ skills/auto-tmux/scripts/swarm-dispatch.sh --role worker --target :&2 + exit 1 + ;; +esac + +failures=0 + +fail() { + printf '[FAIL] %s\n' "$*" >&2 + failures=$((failures + 1)) +} + +pass() { + printf '[OK] %s\n' "$*" +} + +require_contains() { + local file="$1" + local pattern="$2" + local label="$3" + if grep -Fq "$pattern" "$file"; then + pass "$label mentions $pattern" + else + fail "$label missing $pattern" + fi +} + +for script_path in "$script_dir"/*.sh; do + script_name="$(basename "$script_path")" + if [[ -x "$script_path" ]]; then + pass "executable script: $script_name" + else + fail "script is not executable: $script_name" + fi + require_contains "$skill_dir/SKILL.md" "scripts/$script_name" "SKILL.md" + require_contains "$script_dir/README.md" "$script_name" "scripts/README.md" + require_contains "$script_dir/AGENTS.md" "$script_name" "scripts/AGENTS.md" + require_contains "$script_dir/validate-auto-tmux.sh" "$script_name" "validate-auto-tmux.sh" +done + +require_contains "$skill_dir/SKILL.md" "scripts/completion.bash" "SKILL.md" +require_contains "$script_dir/README.md" "completion.bash" "scripts/README.md" +require_contains "$script_dir/AGENTS.md" "completion.bash" "scripts/AGENTS.md" +require_contains "$script_dir/validate-auto-tmux.sh" "completion.bash" "validate-auto-tmux.sh" + +for ref_path in "$ref_dir"/*.md; do + ref_name="$(basename "$ref_path")" + case "$ref_name" in + AGENTS.md|README.md) + continue + ;; + index.md) + require_contains "$skill_dir/SKILL.md" "references/$ref_name" "SKILL.md" + require_contains "$ref_dir/README.md" "$ref_name" "references/README.md" + continue + ;; + esac + require_contains "$skill_dir/SKILL.md" "references/$ref_name" "SKILL.md" + require_contains "$ref_dir/README.md" "$ref_name" "references/README.md" + require_contains "$ref_dir/index.md" "$ref_name" "references/index.md" +done + +if (( failures > 0 )); then + printf 'auto-tmux package audit failed: %s issue(s)\n' "$failures" >&2 + exit 1 +fi + +printf 'auto-tmux package audit ok\n' diff --git a/skills/auto-tmux/scripts/validate-auto-tmux.sh b/skills/auto-tmux/scripts/validate-auto-tmux.sh index f6f6f67..5cb3d8c 100755 --- a/skills/auto-tmux/scripts/validate-auto-tmux.sh +++ b/skills/auto-tmux/scripts/validate-auto-tmux.sh @@ -118,6 +118,7 @@ scripts=( "$script_dir/review-checklist.sh" "$script_dir/verify-report-pack.sh" "$script_dir/incident-report.sh" + "$script_dir/audit-package.sh" "$script_dir/safety-check.sh" "$script_dir/render-swarm-prompt.sh" "$script_dir/swarm-dispatch.sh" @@ -201,6 +202,8 @@ run_gate "review-checklist strict failure" bash -c ' run_gate "verify-report-pack help" "$script_dir/verify-report-pack.sh" --help run_gate "incident-report help" "$script_dir/incident-report.sh" --help run_gate "incident-report render" "$script_dir/incident-report.sh" --type mis-send +run_gate "audit-package help" "$script_dir/audit-package.sh" --help +run_gate "audit-package consistency" "$script_dir/audit-package.sh" 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 @@ -230,6 +233,7 @@ 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/incident-report.sh" +require_contains "$skill_dir/SKILL.md" "scripts/audit-package.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" @@ -281,6 +285,7 @@ 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" "incident-report.sh" +require_contains "$script_dir/README.md" "audit-package.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" @@ -302,6 +307,7 @@ 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" "incident-report.sh" +require_contains "$script_dir/AGENTS.md" "audit-package.sh" require_contains "$script_dir/AGENTS.md" "completion.bash" require_contains "$script_dir/AGENTS.md" "safety-check.sh"