mirror of
https://github.com/msitarzewski/agency-agents
synced 2026-04-25 03:08:24 +00:00
Address review feedback on CI lint workflow
- Fix ((errors++)) causing early exit under set -e - Fix command injection in workflow by using env variable - Add strategy/ directory to lint paths and AGENT_DIRS
This commit is contained in:
parent
976c08e4c3
commit
2ded8e99a8
7
.github/workflows/lint-agents.yml
vendored
7
.github/workflows/lint-agents.yml
vendored
@ -12,6 +12,7 @@ on:
|
||||
- 'support/**'
|
||||
- 'spatial-computing/**'
|
||||
- 'specialized/**'
|
||||
- 'strategy/**'
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
@ -28,7 +29,7 @@ jobs:
|
||||
FILES=$(git diff --name-only --diff-filter=ACMR origin/${{ github.base_ref }}...HEAD -- \
|
||||
'design/*.md' 'engineering/*.md' 'marketing/*.md' 'product/*.md' \
|
||||
'project-management/*.md' 'testing/*.md' 'support/*.md' \
|
||||
'spatial-computing/*.md' 'specialized/*.md')
|
||||
'spatial-computing/*.md' 'specialized/*.md' 'strategy/*.md')
|
||||
echo "files=$FILES" >> "$GITHUB_OUTPUT"
|
||||
if [ -z "$FILES" ]; then
|
||||
echo "No agent files changed."
|
||||
@ -39,6 +40,8 @@ jobs:
|
||||
|
||||
- name: Run agent linter
|
||||
if: steps.changed.outputs.files != ''
|
||||
env:
|
||||
CHANGED_FILES: ${{ steps.changed.outputs.files }}
|
||||
run: |
|
||||
chmod +x scripts/lint-agents.sh
|
||||
./scripts/lint-agents.sh ${{ steps.changed.outputs.files }}
|
||||
./scripts/lint-agents.sh $CHANGED_FILES
|
||||
|
||||
@ -20,6 +20,7 @@ AGENT_DIRS=(
|
||||
support
|
||||
spatial-computing
|
||||
specialized
|
||||
strategy
|
||||
)
|
||||
|
||||
REQUIRED_FRONTMATTER=("name" "description" "color")
|
||||
@ -36,7 +37,7 @@ lint_file() {
|
||||
first_line=$(head -1 "$file")
|
||||
if [[ "$first_line" != "---" ]]; then
|
||||
echo "ERROR $file: missing frontmatter opening ---"
|
||||
((errors++))
|
||||
errors=$((errors + 1))
|
||||
return
|
||||
fi
|
||||
|
||||
@ -46,7 +47,7 @@ lint_file() {
|
||||
|
||||
if [[ -z "$frontmatter" ]]; then
|
||||
echo "ERROR $file: empty or malformed frontmatter"
|
||||
((errors++))
|
||||
errors=$((errors + 1))
|
||||
return
|
||||
fi
|
||||
|
||||
@ -54,7 +55,7 @@ lint_file() {
|
||||
for field in "${REQUIRED_FRONTMATTER[@]}"; do
|
||||
if ! echo "$frontmatter" | grep -qE "^${field}:"; then
|
||||
echo "ERROR $file: missing frontmatter field '${field}'"
|
||||
((errors++))
|
||||
errors=$((errors + 1))
|
||||
fi
|
||||
done
|
||||
|
||||
@ -65,14 +66,14 @@ lint_file() {
|
||||
for section in "${RECOMMENDED_SECTIONS[@]}"; do
|
||||
if ! echo "$body" | grep -qi "$section"; then
|
||||
echo "WARN $file: missing recommended section '${section}'"
|
||||
((warnings++))
|
||||
warnings=$((warnings + 1))
|
||||
fi
|
||||
done
|
||||
|
||||
# 4. Check file has meaningful content
|
||||
if [[ $(echo "$body" | wc -w) -lt 50 ]]; then
|
||||
echo "WARN $file: body seems very short (< 50 words)"
|
||||
((warnings++))
|
||||
warnings=$((warnings + 1))
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user