5.9 KiB
Agent Test Spec: community-manager
Agent Summary
- Domain: Player-facing communications — patch notes text (player-friendly), social media post drafts, community update announcements, crisis communication response plans, bug triage and routing from player reports (not fixing)
- Does NOT own: Technical patch content (devops-engineer), QA verification and test execution (qa-lead), bug fixes (programmers), brand strategy direction (creative-director)
- Model tier: Sonnet
- Gate IDs: None; escalates brand voice conflicts to creative-director
Static Assertions (Structural)
description:field is present and domain-specific (references player communication, patch notes, community management)allowed-tools:list matches the agent's role (Read/Write for production/releases/patch-notes/ and communication drafts; no code or build tools)- Model tier is Sonnet (default for operations specialists)
- Agent definition does not claim authority over technical content, QA strategy, or bug fixing
Test Cases
Case 1: In-domain request — patch notes for a bug fix
Input: "Write player-facing patch notes for this fix: 'JIRA-4821: Fixed NullReferenceException in InventoryManager.LoadSave() when save file was created on a previous version without the new equipment slot field.'" Expected behavior:
- Produces a player-friendly patch note — no internal ticket IDs (JIRA-4821 is removed), no class names (InventoryManager.LoadSave()), no technical stack trace language
- Uses clear player-facing language: e.g., "Fixed a crash that could occur when loading save files created before the last update."
- Conveys the user impact (game crashed on load) without exposing internal implementation details
- Output is formatted for the project's patch notes style (bullet, or numbered, depending on established format)
Case 2: Out-of-domain request — fixing a reported bug
Input: "A player reported that their save file is corrupted. Can you fix the save system?" Expected behavior:
- Does not produce any code or attempt to diagnose the save system implementation
- Triages the report: acknowledges it as a potential bug affecting player data (high severity)
- Routes it: "This requires investigation by the appropriate programmer; I'm routing this to [gameplay-programmer or lead-programmer] for technical triage"
- Optionally drafts a player-facing acknowledgment post ("We're aware of reports of save corruption and are investigating") if requested
Case 3: Community crisis — backlash over a game change
Input: "Players are angry about our latest patch. We nerfed a popular character's damage by 40% and the community is calling for a rollback. Forum posts, tweets, and Discord are all very negative." Expected behavior:
- Produces a crisis communication response plan (not just a single tweet)
- Plan includes: (1) immediate acknowledgment post — acknowledge the feedback without being defensive; (2) timeline for developer response — commit to a specific timeframe for a design team statement; (3) developer statement template — explain the reasoning behind the nerf without dismissing player concerns; (4) follow-up structure — if rollback or adjustment is planned, communicate it with a timeline
- Does NOT commit to a rollback on behalf of the design team — flags this as a creative-director decision
- Tone is empathetic but not apologetic for intentional design decisions
Case 4: Brand voice conflict in patch notes
Input: "Here is our patch note draft: 'We have annihilated the egregious framerate catastrophe that plagued the loading screen.' Our brand voice guide specifies: clear, warm, slightly humorous — not dramatic or hyperbolic." Expected behavior:
- Identifies the conflict: "annihilated," "egregious," and "catastrophe" are dramatic/hyperbolic — inconsistent with the specified brand voice
- Does NOT approve the draft as-is
- Produces a revised version: e.g., "Fixed a performance issue that was causing the loading screen to run slowly — things should feel snappier now."
- Flags the inconsistency explicitly rather than silently rewriting without noting the problem
Case 5: Context pass — using a brand voice document
Input context: Brand voice guide specifies: direct language, second-person ("you"), light humor is encouraged, avoid corporate jargon, game-specific slang from the in-world glossary is appropriate. Input: "Write a social media post announcing a new hero character named Velk, a shadow assassin." Expected behavior:
- Uses second-person address ("Meet your next favorite assassin")
- Incorporates light humor if it fits naturally
- Avoids corporate language ("We are pleased to announce" → "Meet Velk")
- Uses in-world language if the context includes a glossary (e.g., if assassins are called "Shadowwalkers" in-world, uses that term)
- Output matches the specified tone — not a generic press-release announcement
Protocol Compliance
- Stays within declared domain (player-facing communication, patch note text, crisis response, bug routing)
- Strips internal IDs, class names, and technical jargon from all player-facing output
- Redirects bug fix requests to appropriate programmers rather than attempting technical solutions
- Does NOT commit to design rollbacks without creative-director authority
- Applies brand voice specifications from context; flags violations rather than silently accepting them
Coverage Notes
- Case 1 (patch note sanitization) is the most frequently used behavior — test on every new patch cycle
- Case 3 (crisis communication) is a brand-safety test — verify the agent de-escalates rather than inflames
- Case 4 requires a brand voice document to be in context; test is incomplete without it
- Case 5 is the most important context-awareness test for tone consistency
- No automated runner; review manually or via
/skill-test