The previous commit only landed the research-folder rename — a multi-path git add silently failed and left CONTEXT.md, ADR-0012, and the actual skill files unstaged. This lands them: the agentsmd-audit skill itself (three deterministic validators for secrets, structure, and drift against a target repo's AGENTS.md), its bats test suite, provenance record, and the CONTEXT.md/ADR entries documenting why this lives in core rather than kyberforge. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
77 lines
1.7 KiB
Bash
77 lines
1.7 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
setup() {
|
|
REPO_ROOT="$(cd "$BATS_TEST_DIRNAME/../../../../../" && pwd)"
|
|
load "$REPO_ROOT/tests/test_helper/bats-support/load"
|
|
load "$REPO_ROOT/tests/test_helper/bats-assert/load"
|
|
|
|
SCRIPT="$(cd "$BATS_TEST_DIRNAME/../scripts" && pwd)/validate-structure.sh"
|
|
TMPDIR="$(mktemp -d)"
|
|
}
|
|
|
|
teardown() {
|
|
rm -rf "$TMPDIR"
|
|
}
|
|
|
|
@test "fails on an empty AGENTS.md" {
|
|
: > "$TMPDIR/AGENTS.md"
|
|
run bash "$SCRIPT" "$TMPDIR"
|
|
assert_failure
|
|
assert_output --partial "empty"
|
|
}
|
|
|
|
@test "fails on an unfilled placeholder AGENTS.md" {
|
|
cat > "$TMPDIR/AGENTS.md" <<'EOF'
|
|
# AGENTS.md
|
|
|
|
## Setup
|
|
FILL IN: describe setup commands here.
|
|
EOF
|
|
run bash "$SCRIPT" "$TMPDIR"
|
|
assert_failure
|
|
assert_output --partial "placeholder"
|
|
}
|
|
|
|
@test "passes with INFO on real content missing an optional section" {
|
|
cat > "$TMPDIR/AGENTS.md" <<'EOF'
|
|
# AGENTS.md
|
|
|
|
## Setup commands
|
|
- Install deps: `pnpm install`
|
|
- Run tests: `pnpm test`
|
|
|
|
## Code style
|
|
- TypeScript strict mode, single quotes, no semicolons.
|
|
EOF
|
|
run bash "$SCRIPT" "$TMPDIR"
|
|
assert_success
|
|
assert_output --partial "INFO"
|
|
assert_output --partial "security"
|
|
}
|
|
|
|
@test "suggests trimming a nested AGENTS.md that duplicates the root file" {
|
|
mkdir -p "$TMPDIR/packages/api"
|
|
cat > "$TMPDIR/AGENTS.md" <<'EOF'
|
|
# AGENTS.md
|
|
|
|
## Setup commands
|
|
- Install deps: `pnpm install`
|
|
- Run tests: `pnpm test`
|
|
- Lint: `pnpm lint`
|
|
- Build: `pnpm build`
|
|
EOF
|
|
cat > "$TMPDIR/packages/api/AGENTS.md" <<'EOF'
|
|
# AGENTS.md
|
|
|
|
## Setup commands
|
|
- Install deps: `pnpm install`
|
|
- Run tests: `pnpm test`
|
|
- Lint: `pnpm lint`
|
|
- Build: `pnpm build`
|
|
EOF
|
|
run bash "$SCRIPT" "$TMPDIR"
|
|
assert_success
|
|
assert_output --partial "SUGGESTION"
|
|
assert_output --partial "packages/api/AGENTS.md"
|
|
}
|