The validator rule in skills/ai-gateway/SKILL.md used `\d+-\d+[)'"]`,
which matched any digit-hyphen-digit followed by a closing bracket,
quote, or apostrophe — much broader than the intended error class
(hyphenated model version slugs like "claude-sonnet-4-5").
False positives seen in real usage:
- `(line 13-21):` — matches `13-21)` in markdown line-range references
- `"00000000-0000-0000-0000-000000000000"` — matches `0-0"` in UUIDs
- `"192.168.1.1-2"` — matches `1-2"` in IP ranges
- `"1-2"` — matches `1-2"` in semver pairs
Fix: anchor the pattern on known model-family keywords with `\b` word
boundaries, matching the convention used by other patterns in the same
file (e.g., line 15: `\bvercel\s+env\s+pull\b`).
\b(claude|gpt|gemini|llama|mistral|qwen|deepseek)[a-z0-9-]*-\d+-\d+[a-z0-9-]*\b
Still catches the intended case ("claude-sonnet-4-5",
"openai/gpt-5-4", "anthropic/claude-sonnet-4-5-20250514") while
leaving line ranges, UUIDs, IP ranges, and other incidental
digit-hyphen-digit patterns alone.
generated/skill-manifest.json regenerated via `bun run build:manifest`.
Regenerate the skill manifest so the new micro and deployments-cicd validate rules use the canonical escaping emitted by build:manifest.
The prior shared-index commit captured non-canonical escaping in generated/skill-manifest.json.
Verified: bun run build:manifest
Verified: git diff --cached -- generated/skill-manifest.json shows only the 2 regex escaping normalizations
Swarm-Agent: codex-rules-wave2b
Add focused fixture tests for each current upgradeToSkill validate rule.
Each case asserts the positive trigger and the skipIfFileContains path so future SKILL.md changes do not silently break upgrade guidance.
Verified: bun test tests/upgrade-rules.test.ts
How to test: bun test tests/upgrade-rules.test.ts
Swarm-Agent: codex-test-fixtures
Add top-level validate blocks to react-best-practices, auth, and routing-middleware so the manifest can recommend SWR, Sign in with Vercel, and Vercel Firewall/WAF when legacy patterns are detected.
Verified: bun run build:manifest
Verified: git diff -- generated/skill-manifest.json shows only these three skills gained validate entries
Swarm-Agent: codex-rules-wave2a
Add three Next.js validate rules that recommend upgrading legacy auth, Pages Router API routes, and in-memory caches to dedicated Vercel skills.
Regenerate the static skill manifest so the new upgrade metadata is available at runtime; this also syncs a few pre-existing source-of-truth manifest entries that were stale in the generated file.
Verified: bun run build:manifest (isolated clean checkout based on HEAD + skills/nextjs/SKILL.md)
Verified: git diff --cached --check
Swarm-Agent: codex-commit-nextjs