4.0 KiB
4.0 KiB
type, status, updated, tags
| type | status | updated | tags | ||
|---|---|---|---|---|---|
| agent-integration | active | 2026-05-20 |
|
Communication Sources
Communication connectors extract evidence. The agent decides what to promote.
Live Communication
Mattermost is the current live communication connector.
- Primary local evidence is the Mattermost proxy mirror under
ai/inbox/mattermost-mirror/when present. - Prefer
ai/inbox/mattermost-mirror/latest.md/latest.jsonlfor latest-message context,by-date/YYYY/MM/YYYY-MM-DD.jsonlfor daily/standup context,channels/<channel>/YYYY/MM/YYYY-MM-DD.jsonlfor channel-specific context, andthreads/<root-or-post-id>.jsonlfor thread-specific context. - Use
scripts/mattermost-proxy/read-context.pyfrom commands/workflows instead of reading ad hoc files; it prefers the proxy mirror and falls back to legacy sync artifacts. - Legacy fresh output may still go to
ai/inbox/mattermost-latest.md. - Legacy generated extraction artifacts stay under
scripts/mattermost/generated/. - Failed syncs must not update project knowledge.
- Latest-message requests must refresh Mattermost before answering.
- Latest-message requests are read-first. The agent may identify a memory update candidate, but should not edit
project-knowledge/from the latest-message command unless the user explicitly asks to promote the fact. - Standup generation is a separate required-refresh flow: it must fetch Mattermost before drafting, even though general prompts should not sync automatically.
- Standup reads should use the focused reader mode,
scripts/mattermost-proxy/read-context.py --mode standup --today YYYY-MM-DD, which reads date-bucketed previous-workday/today records and should use the active profile's configuredAIW_MATTERMOST_CONTEXT_CHANNELSwhen available. Avoid loading broad mirrorlatest.mdinto standup prompts because it may include stale or unrelated channels and waste tokens. Keep project-specific channel names out of reusable connector code. - If adding MCP support for Mattermost, treat it as a read-only query wrapper over the existing proxy mirror and
read-context.py, not as a replacement for the capture/mirror pipeline. Keep the mirror's file layout as canonical raw evidence and expose only narrow tools such as latest, standup/date, channel, and thread reads with channel filters and limits. - Do not build a write-capable Mattermost MCP or expose tokens, cookies, raw headers, or broad unfiltered raw dumps through MCP. MCP output should remain evidence for agent reasoning; promotion to
project-knowledge/still follows normal memory rules. - If the proxy mirror is running, treat it as fresher than legacy
mattermost-latest.md/ generated JSONL. Do not ignore mirror evidence merely because a legacy sync command also ran. - Do not refresh Mattermost just because a prompt mentions a manager or stakeholder.
- Treat document review, message polishing, translation, and "does this align with Jeff's expectations?" prompts as normal drafting tasks unless the user explicitly asks for the latest message or fresh Mattermost evidence.
- The OpenCode plugin syncs automatically only for explicit latest-message requests by default.
- Optional aggressive sync can be enabled with
AIW_MATTERMOST_SYNC_ON_SESSION=trueorAIW_MATTERMOST_SYNC_ON_PROMPT=true, but these should stay off for low-latency daily use. - When invoking Mattermost sync from OpenCode, do not use parameter expansion that places a command with spaces into a single shell word, such as
${VAR:-bash scripts/mattermost/sync.sh}. Run configured command strings viabash -lc "$AIW_MATTERMOST_SYNC_CMD"/bash -lc "$FIDELITY_MATTERMOST_SYNC_CMD", and run the fallback as separate words:bash scripts/mattermost/sync.sh.
Historical Archive
Slack export import is the current historical archive connector.
- Archive evidence stays outside
project-knowledge/. - Promote only durable project facts, people context, process rules, or historical architecture lessons.
- Do not promote dated status details unless they explain current context.