CtrlK
BlogDocsLog inGet started
Tessl Logo

nitinjain999/platform-skills

Production-grade platform engineering handbook — Kubernetes, Terraform, Flux CD, GitHub Actions, AWS, and more.

64

Quality

80%

Does it follow best practices?

Impact

No eval scenarios have been run

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

verify-agents.shassets/

#!/usr/bin/env bash
# Generated by platform-skills setup-agents — copy verbatim, do not regenerate
# Run: bash scripts/verify-agents.sh
# Add to CI: exits non-zero on missing references
PASS=0; FAIL=0

check() {
  if eval "$2" &>/dev/null; then
    echo "✓ $1"
    PASS=$((PASS+1))
  else
    echo "✗ $1"
    FAIL=$((FAIL+1))
  fi
}

info() { echo "ℹ️  $1 (not generated for this repo)"; }

echo "=== Agent setup verification ==="
check "AGENTS.md present" "test -f AGENTS.md"

# Read which tool targets were generated from .platform-skills/manifest
# Valid tokens: copilot-vscode, copilot-cloud, copilot-app, cursor, codex, windsurf, vscode-mcp
# One token per line; lines starting with # are comments.

while read -r target; do
  case "$target" in
    copilot-vscode|copilot-cloud) check "Copilot agent files" "ls .github/agents/*.agent.md" ;;
    copilot-app)  check "Copilot App setup"  "test -f .github/copilot-setup-steps.yml" ;;
    cursor)       check "Cursor rules"        "test -d .cursor/rules && ls .cursor/rules/*.mdc" ;;
    codex)        check "Codex config"        "test -f agents/openai.yaml" ;;
    windsurf)     check "Windsurf rules"      "test -f .windsurfrules" ;;
    vscode-mcp)   check "MCP wired (VS Code)" "grep -qr '\"servers\"\|mcpServers' .vscode/" ;;
  esac
done < <(grep -vE '^#|^[[:space:]]*$' .platform-skills/manifest 2>/dev/null)

if [ ! -f .platform-skills/manifest ]; then
  echo "ℹ️  .platform-skills/manifest not found — run setup-agents generate to create it"
fi

echo "--- Checking agent file references (staleness) ---"
# Extract only backtick-quoted tokens from agent files — prose mentions of filenames
# are not checked. Real path references in agent prompts live in backticks.
for agent in .github/agents/*.agent.md .cursor/rules/*.mdc; do
  [ -f "$agent" ] || continue
  # Strip fenced code blocks and URL lines before extracting tokens.
  AGENT_LINES=$(awk '/^```/{skip=!skip; next} !skip{print}' "$agent" \
    | grep -vE 'https?://')
  # Extract backtick-quoted content only
  BACKTICK_REFS=$(echo "$AGENT_LINES" | grep -oE '`[^`]+`' | tr -d '`')
  # Check file paths (must contain a / to avoid bare filename false positives)
  while read -r p; do
    [ -z "$p" ] && continue
    test -f "$p" || { echo "⚠️  $agent references missing file: $p"; FAIL=$((FAIL+1)); }
  done < <(echo "$BACKTICK_REFS" \
    | grep -oE '[a-zA-Z0-9_./-]*(/[a-zA-Z0-9_.@-]+)+\.(py|ts|go|tf|yaml|yml|json|md|sh|kt|kts|rs|cs|rb|php)' \
    | grep -vE '<[a-zA-Z]')
  # Check directory paths (trailing slash; single segment like src/ is valid)
  while read -r d; do
    [ -z "$d" ] && continue
    test -d "${d%/}" || { echo "⚠️  $agent references missing directory: $d"; FAIL=$((FAIL+1)); }
  done < <(echo "$BACKTICK_REFS" \
    | grep -oE '[a-zA-Z][a-zA-Z0-9_.-]*(/[a-zA-Z0-9_.-]*)/' \
    | grep -vE '<[a-zA-Z]' \
    | sort -u)
done

echo "--- $PASS passed, $FAIL issues ---"
exit $((FAIL > 0))

BEFORE_AFTER.md

CHANGELOG.md

CODE_OF_CONDUCT.md

COMMANDS.md

CONTRIBUTING.md

EDITOR_INTEGRATIONS.md

GETTING_STARTED.md

HOW_IT_WORKS.md

install.sh

INSTALLATION.md

LAUNCH.md

PROMPTS.md

QUICKSTART.md

README.md

renovate.json

SECURITY.md

SKILL.md

tessl.json

tile.json