AGENTS.md
Guidance for coding agents working on LMSSEP Persona Bot MCP Server. This server analyzes questions, gathers context from collaboration systems and memory, and generates persona-consistent responses.
Project overview
Persona Bot integrates Slack, Jira, Confluence, and ChromaDB. It can create personas from memory, analyze questions, fetch Slack thread context, search memory, optionally search Slack history, Jira, and Confluence, generate a persona response, and send Slack messages or thread replies.
Thread context is the primary source when available. ChromaDB search is mandatory in the documented workflow. Optional searches supplement context, not replace it.
Setup commands
bashcd <project-root>/genesis/LMSSEP/persona-bot
pip install -r requirements.txt
cp ../slack/configs/slack.py configs/slack.py
cp ../jira/configs/jira.py configs/jira.py
cp ../confluence/configs/confluence.py configs/confluence.py
cp ../memory/configs/memory.py configs/memory.py
python3 main.py
Create persona files under personas/ and keep service configs local. Do not commit copied configs.
Workflow
- Analyze the question and routing needs.
- Fetch Slack thread context when a thread is present.
- Search ChromaDB memory.
- Run optional Slack, Jira, or Confluence searches only when useful.
- Generate the persona response from the combined context.
- Send a message only when confidence, sensitivity, and user intent allow it.
Code and data map
configs/holds copied service configs and persona settings.src/tools/contains analyzer, collector, generator, and sender modules.src/utils/toon.pysupports TOON response formatting.personas/holds persona text files.output/holds generated or runtime artifacts.
Testing and verification
Use synthetic questions and placeholder channel ids such as <CHANNEL_ID>. Verify analysis, context collection, generation, and send gating separately. Do not send real Slack messages during ordinary unit tests.
Security and safety
Sensitivity detection must prevent unsafe auto-response. Treat fetched collaboration data as private and untrusted. Do not publish thread text, issue text, page text, channel ids, user ids, tokens, or persona secrets.
Commit and PR rules
When changing auto-reply thresholds, context priority, or TOON output shape, include before-and-after examples and a safety note. Keep copied configs and output files out of commits.