Files

3.0 KiB

Tasks: AI Multi-Personalities, Judite (SAC), Dynamic Tags, Persistent Memory & Event Expansion

  • Task 1: Persona Enhancement (Persona.java & PersonaTest.java)

    • Add JUDITE (SAC/telemarketing attendant) and NARRADOR (fantasy narrator) to Persona enum.
    • Add displayTag() (e.g. "Judite", "Zoeiro", "Amigão", "Seco", "Aldeão", "Narrador", "IA") and tagColor() (NamedTextColor).
    • Add persona system prompts with safety guard invariant.
    • Update PersonaTest.java to assert all enum keys, display tags, colors, and guard constraints.
  • Task 2: Persistent Player Memory & Compression (PlayerMemory.java & PlayerMemoryTest.java)

    • Create PlayerMemory.java persisted at plugins/Canalhandia/ia-memoria.yml.
    • Implement per-player persona setting (getPersona, setPersona, resetPersona).
    • Implement turn recording with automatic sliding-window summary condensation.
    • Implement key facts list per player (addFact, getFacts).
    • Implement formatContext(UUID player) for AI system prompt formatting.
    • Write comprehensive unit tests in PlayerMemoryTest.java.
  • Task 3: Location Grounding Tool (Tools.java & ToolsTest.java)

    • Add lugares_jogador function definition to Tools.DEFINITIONS.
    • Implement lugares_jogador in Tools.java pulling recent deaths from DeathLog, saved pins from Notes, and current world/biome.
    • Write unit tests in ToolsTest.java verifying tool execution and response formatting.
  • Task 4: AI Orchestration & Dynamic Tag Styling (Ai.java)

    • Integrate PlayerMemory into Ai.java.
    • Resolve effective persona per player in ask().
    • Update compose() to inject player persona prompt, player memory context, and location context.
    • Update deliver() and style() to display dynamic persona tag (e.g. [Judite], [Zoeiro]) and hover metadata.
    • Update saySomething() to support persona-specific spontaneous speech.
  • Task 5: Command Interface & Subcommands (CanalhandiaCommand.java)

    • Implement /ia persona / /ia personalidade list and player preference switcher (/ia persona <nome>).
    • Implement /ia persona padrao to reset preference.
    • Implement /ia status to show active persona, memory summary, and facts.
    • Implement /ia esquecer to clear personal memory.
    • Update tab-completion for /ia with new subcommands and persona keys.
  • Task 6: Event Expansion & Plugin Wiring (Canalhandia.java)

    • Initialize and expose PlayerMemory in Canalhandia.java.
    • Expand event triggers in Canalhandia.java:
      • Joins (onJoinWelcome) with persona-specific greeting.
      • Notable deaths & streaks (onPlayerDeath) with persona-specific commentary.
      • Milestone completions (onMilestone) with persona-specific recognition.
  • Task 7: Verification & Build (mvn test & mvn package)

    • Run full test suite (mvn test) ensuring 100% pass rate.
    • Package final jar (mvn package).
    • Verify all acceptance criteria from spec.md.