docs: align agent linting with OpenClaw section split (#230)

Fixes OpenClaw section classification in lint script — correctly routes Learning & Memory section.
This commit is contained in:
Ryanba 2026-04-12 12:25:50 +08:00 committed by GitHub
parent a4ec4a0d13
commit 3d574c9aac
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -35,6 +35,21 @@ RECOMMENDED_SECTIONS=("Identity" "Core Mission" "Critical Rules")
errors=0
warnings=0
classify_header_target() {
local header_lower="$1"
if [[ "$header_lower" =~ identity ]] ||
[[ "$header_lower" =~ learning.*memory ]] ||
[[ "$header_lower" =~ communication ]] ||
[[ "$header_lower" =~ style ]] ||
[[ "$header_lower" =~ critical.rule ]] ||
[[ "$header_lower" =~ rules.you.must.follow ]]; then
printf 'soul'
else
printf 'agents'
fi
}
lint_file() {
local file="$1"
@ -89,6 +104,32 @@ lint_file() {
echo "WARN $file: body seems very short (< 50 words)"
warnings=$((warnings + 1))
fi
local soul_headers=0
local agents_headers=0
while IFS= read -r line; do
if [[ "$line" =~ ^##[[:space:]] ]]; then
local header_lower
header_lower=$(printf '%s' "$line" | tr '[:upper:]' '[:lower:]')
local target
target=$(classify_header_target "$header_lower")
if [[ "$target" == "soul" ]]; then
soul_headers=$((soul_headers + 1))
else
agents_headers=$((agents_headers + 1))
fi
fi
done <<< "$body"
if [[ $soul_headers -eq 0 ]]; then
echo "WARN $file: no section headers map to SOUL.md in convert.sh"
warnings=$((warnings + 1))
fi
if [[ $agents_headers -eq 0 ]]; then
echo "WARN $file: no section headers map to AGENTS.md in convert.sh"
warnings=$((warnings + 1))
fi
}
# Collect files to lint