mirror of
https://github.com/msitarzewski/agency-agents
synced 2026-04-25 03:08:24 +00:00
fix: align agent lint with convert.sh and CI (#333)
Expands CI lint workflow to trigger on academic/ changes. Hardens lint-agents.sh with file existence checks and portable word-count handling (macOS/BSD compatibility).
This commit is contained in:
parent
37e5c521c9
commit
618582cdcc
27
.github/workflows/lint-agents.yml
vendored
27
.github/workflows/lint-agents.yml
vendored
@ -3,18 +3,19 @@ name: Lint Agent Files
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- 'design/**'
|
||||
- 'engineering/**'
|
||||
- 'game-development/**'
|
||||
- 'marketing/**'
|
||||
- 'paid-media/**'
|
||||
- 'sales/**'
|
||||
- 'product/**'
|
||||
- 'project-management/**'
|
||||
- 'testing/**'
|
||||
- 'support/**'
|
||||
- 'spatial-computing/**'
|
||||
- 'specialized/**'
|
||||
- "academic/**"
|
||||
- "design/**"
|
||||
- "engineering/**"
|
||||
- "game-development/**"
|
||||
- "marketing/**"
|
||||
- "paid-media/**"
|
||||
- "sales/**"
|
||||
- "product/**"
|
||||
- "project-management/**"
|
||||
- "testing/**"
|
||||
- "support/**"
|
||||
- "spatial-computing/**"
|
||||
- "specialized/**"
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
@ -29,7 +30,7 @@ jobs:
|
||||
id: changed
|
||||
run: |
|
||||
FILES=$(git diff --name-only --diff-filter=ACMR origin/${{ github.base_ref }}...HEAD -- \
|
||||
'design/**/*.md' 'engineering/**/*.md' 'game-development/**/*.md' 'marketing/**/*.md' 'paid-media/**/*.md' 'sales/**/*.md' 'product/**/*.md' \
|
||||
'academic/**/*.md' 'design/**/*.md' 'engineering/**/*.md' 'game-development/**/*.md' 'marketing/**/*.md' 'paid-media/**/*.md' 'sales/**/*.md' 'product/**/*.md' \
|
||||
'project-management/**/*.md' 'testing/**/*.md' 'support/**/*.md' \
|
||||
'spatial-computing/**/*.md' 'specialized/**/*.md')
|
||||
{
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# Keep in sync with AGENT_DIRS in scripts/convert.sh
|
||||
AGENT_DIRS=(
|
||||
academic
|
||||
design
|
||||
@ -17,6 +18,7 @@ AGENT_DIRS=(
|
||||
game-development
|
||||
marketing
|
||||
paid-media
|
||||
sales
|
||||
product
|
||||
project-management
|
||||
sales
|
||||
@ -36,6 +38,12 @@ warnings=0
|
||||
lint_file() {
|
||||
local file="$1"
|
||||
|
||||
if [[ ! -f "$file" ]]; then
|
||||
echo "ERROR $file: not a file or does not exist"
|
||||
errors=$((errors + 1))
|
||||
return
|
||||
fi
|
||||
|
||||
# 1. Check frontmatter delimiters
|
||||
local first_line
|
||||
first_line=$(head -1 "$file")
|
||||
@ -74,8 +82,10 @@ lint_file() {
|
||||
fi
|
||||
done
|
||||
|
||||
# 4. Check file has meaningful content
|
||||
if [[ $(echo "$body" | wc -w) -lt 50 ]]; then
|
||||
# 4. Check file has meaningful content (awk strips wc's leading whitespace on macOS/BSD)
|
||||
local word_count
|
||||
word_count=$(echo "$body" | wc -w | awk '{print $1}')
|
||||
if [[ "${word_count:-0}" -lt 50 ]]; then
|
||||
echo "WARN $file: body seems very short (< 50 words)"
|
||||
warnings=$((warnings + 1))
|
||||
fi
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user