Files
2026-05-15 14:52:29 +08:00

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