The app can't reliably resolve runbook rosters from display names (catalog
slugs are inconsistently division-prefixed, and names drift). This adds a
machine-readable manifest so the app reads rosters as data and maps each
slug to a catalog agent for one-click team deploy.
- strategy/runbooks.json: the 4 NEXUS scenarios (startup-mvp,
enterprise-feature, marketing-campaign, incident-response), each with
mode, duration, summary, doc, and a grouped roster. Every agents[] entry
is a verified slug = the agent .md filename stem (the corpus id), resolved
against the live roster — not a slugified display name. (Notably
"Senior Project Manager" is project-manager-senior, NOT
project-management-senior-project-manager, which naive mapping assumes.)
- scripts/check-runbooks.sh + .github/workflows/check-runbooks.yml: guard
(mirrors check-divisions.sh) failing the build if any roster slug doesn't
resolve to a real agent file, a doc path is missing, or JSON is malformed —
so renaming/removing an agent can't silently break the app's deploy.
All 64 slug references verified; guard passes and fails correctly.
Claude-Session: https://claude.ai/code/session_01WKnDRWM4izsB8WAXKszhsq
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
The strategy documentation references a 'Data Analytics Reporter' agent
that does not exist. The actual agent is 'Analytics Reporter' defined in
support/support-analytics-reporter.md. This fixes all 6 occurrences
across 4 strategy files.
Fixes#291
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove all hardcoded "51" agent counts from README and strategy docs to
avoid future maintenance burden as new agents are contributed. Add Image
Prompt Engineer (Design), Sales Data Extraction Agent, Data Consolidation
Agent, and Report Distribution Agent (Specialized) to all roster listings.
Fix slug-style name on Image Prompt Engineer frontmatter.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>