Problem
The CLI enforces a ^[a-z0-9_]+$ regex on agent names (in the Zod schema), but the AI builder in apper creates agents via the FileTree path which has no name validation. This means agents created by the AI (e.g., with uppercase letters or dashes) can't be pulled by the CLI.
The same pattern constraint exists on the apper API side (builder_api.py), but only affects the REST endpoints — not the FileTree/AI builder code path.
Additionally, the LLM prompt (agents.xml) has no explicit naming rule — only an example using snake_case, so the AI is free to pick any format.
Fix
Remove the regex pattern constraint from both CLI and apper, keeping only min/max length. Add toFileSlug() in the CLI to create filesystem-safe filenames from arbitrary agent names.
PRs