convert.sh's OpenClaw conversion routes persona sections (Identity,
Communication, Critical Rules, Style, Learning & Memory) to SOUL.md and
everything else to AGENTS.md by matching `## ` header keywords. 15 agents
produced an empty SOUL.md because no header matched — the same class as the
#670 fix. Two distinct causes, two minimal fixes:
- 13 agents used a `##`-level persona section under a non-canonical name
("Role Definition" / "Core Expertise"). Renamed to "Identity & Role
Definition" / "Identity & Core Expertise" — header text only, zero content
change (each is a clean +1/-1 diff).
- 2 agents (french-consulting-market, salesforce-architect) had full persona
sections but at `#` (H1) with no title — the literal #670 bug. Shifted every
header one level deeper (fence-aware, so code-block content is untouched) and
added a `# <Name>` title. These now lint 0/0.
Verified: 0 "no section headers map to SOUL.md" warnings remain (was 15);
regenerated OpenClaw output confirms all 15 SOUL.md files are now populated
with the persona; AGENTS.md retains operations; no agent content changed;
guards green. Total lint warnings 87 -> 59 (remaining are advisory
"missing Core Mission/Critical Rules", intentionally not forced).
Claude-Session: https://claude.ai/code/session_01WKnDRWM4izsB8WAXKszhsq
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Solution architecture agent for Salesforce platform — multi-cloud design,
integration patterns, governor limits, deployment strategy, and data model
governance for enterprise-scale orgs.