173 lines
3.7 KiB
Bash
173 lines
3.7 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
AGENT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
ROOT_DIR="$(cd "$AGENT_DIR/.." && pwd)"
|
|
|
|
PASS_COUNT=0
|
|
FAIL_COUNT=0
|
|
|
|
pass() {
|
|
echo " [PASS] $1"
|
|
PASS_COUNT=$((PASS_COUNT + 1))
|
|
}
|
|
|
|
fail() {
|
|
echo " [FAIL] $1"
|
|
FAIL_COUNT=$((FAIL_COUNT + 1))
|
|
}
|
|
|
|
require_file() {
|
|
local path="$1"
|
|
if [ -f "$path" ]; then
|
|
pass "File exists: $path"
|
|
else
|
|
fail "Missing file: $path"
|
|
fi
|
|
}
|
|
|
|
require_absent() {
|
|
local path="$1"
|
|
if [ ! -e "$path" ]; then
|
|
pass "File absent (as expected): $path"
|
|
else
|
|
fail "File should be absent: $path"
|
|
fi
|
|
}
|
|
|
|
echo "========================================"
|
|
echo " Antigravity Profile Checks"
|
|
echo "========================================"
|
|
echo ""
|
|
|
|
echo "Checking required files..."
|
|
|
|
required_files=(
|
|
"$AGENT_DIR/AGENTS.md"
|
|
"$AGENT_DIR/INSTALL.md"
|
|
"$AGENT_DIR/task.md"
|
|
"$AGENT_DIR/workflows/brainstorm.md"
|
|
"$AGENT_DIR/workflows/write-plan.md"
|
|
"$AGENT_DIR/workflows/execute-plan.md"
|
|
"$AGENT_DIR/agents/code-reviewer.md"
|
|
"$SCRIPT_DIR/check-antigravity-profile.sh"
|
|
"$SCRIPT_DIR/run-tests.sh"
|
|
)
|
|
|
|
for file in "${required_files[@]}"; do
|
|
require_file "$file"
|
|
done
|
|
|
|
require_absent "$ROOT_DIR/docs/plans/task.md"
|
|
|
|
required_skills=(
|
|
"brainstorming"
|
|
"executing-plans"
|
|
"finishing-a-development-branch"
|
|
"receiving-code-review"
|
|
"requesting-code-review"
|
|
"systematic-debugging"
|
|
"test-driven-development"
|
|
"using-git-worktrees"
|
|
"using-superpowers"
|
|
"verification-before-completion"
|
|
"writing-plans"
|
|
"writing-skills"
|
|
"single-flow-task-execution"
|
|
)
|
|
|
|
for skill in "${required_skills[@]}"; do
|
|
require_file "$AGENT_DIR/skills/$skill/SKILL.md"
|
|
done
|
|
|
|
# Verify prompt template files for single-flow-task-execution
|
|
require_file "$AGENT_DIR/skills/single-flow-task-execution/implementer-prompt.md"
|
|
require_file "$AGENT_DIR/skills/single-flow-task-execution/spec-reviewer-prompt.md"
|
|
require_file "$AGENT_DIR/skills/single-flow-task-execution/code-quality-reviewer-prompt.md"
|
|
|
|
echo ""
|
|
echo "Checking frontmatter..."
|
|
|
|
for skill in "${required_skills[@]}"; do
|
|
file="$AGENT_DIR/skills/$skill/SKILL.md"
|
|
|
|
if rg -q '^---$' "$file"; then
|
|
pass "$skill has frontmatter delimiters"
|
|
else
|
|
fail "$skill missing frontmatter delimiters"
|
|
fi
|
|
|
|
if rg -q '^name:\s*[^[:space:]].*$' "$file"; then
|
|
pass "$skill has name field"
|
|
else
|
|
fail "$skill missing name field"
|
|
fi
|
|
|
|
if rg -q '^description:\s*[^[:space:]].*$' "$file"; then
|
|
pass "$skill has description field"
|
|
else
|
|
fail "$skill missing description field"
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "Checking for unsupported legacy instructions..."
|
|
|
|
legacy_patterns=(
|
|
'Skill tool'
|
|
'Task tool with'
|
|
'Task\("'
|
|
'Dispatch implementer subagent'
|
|
'Dispatch code-reviewer subagent'
|
|
'Create TodoWrite'
|
|
'Mark task complete in TodoWrite'
|
|
'Use TodoWrite'
|
|
'superpowers:'
|
|
)
|
|
|
|
for pattern in "${legacy_patterns[@]}"; do
|
|
if rg -q "$pattern" "$AGENT_DIR/skills"; then
|
|
fail "Legacy pattern found in skills: $pattern"
|
|
else
|
|
pass "Legacy pattern absent: $pattern"
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "Checking AGENTS mapping contract..."
|
|
|
|
mapping_checks=(
|
|
'Task.*task_boundary'
|
|
'browser_subagent'
|
|
'Skill.*view_file'
|
|
'TodoWrite.*docs/plans/task\.md'
|
|
'run_command'
|
|
'grep_search'
|
|
'find_by_name'
|
|
'mcp_\*'
|
|
)
|
|
|
|
for pattern in "${mapping_checks[@]}"; do
|
|
if rg -q "$pattern" "$AGENT_DIR/AGENTS.md"; then
|
|
pass "AGENTS includes mapping: $pattern"
|
|
else
|
|
fail "AGENTS missing mapping: $pattern"
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "========================================"
|
|
echo " Summary"
|
|
echo "========================================"
|
|
echo " Passed: $PASS_COUNT"
|
|
echo " Failed: $FAIL_COUNT"
|
|
echo ""
|
|
|
|
if [ "$FAIL_COUNT" -gt 0 ]; then
|
|
echo "STATUS: FAILED"
|
|
exit 1
|
|
fi
|
|
|
|
echo "STATUS: PASSED"
|