Refactor AI workspace for improved context management and communication integration
- Introduced new commands and skills for workspace memory curation, professional communication, and status reporting. - Updated existing commands to utilize new skills and improve clarity in instructions. - Created a new workspace context command to load reusable core and active project profile. - Enhanced Mattermost inbox integration with support for generic environment variables. - Established a clear separation between project-independent core logic and project-specific profiles. - Improved documentation across various files to reflect changes in workflow and command usage. - Added operational memory management rules to ensure accurate context promotion and correction. - Updated README and workflow documents to guide users in utilizing the new structure effectively.
This commit is contained in:
83
core/integrations/communication-model.md
Normal file
83
core/integrations/communication-model.md
Normal file
@@ -0,0 +1,83 @@
|
||||
# Communication Integration Model
|
||||
|
||||
## Principle
|
||||
|
||||
Communication integrations extract evidence. The agent promotes memory.
|
||||
|
||||
Connectors should not decide that a message is durable project truth. They should fetch, normalize, and store evidence in predictable files so the agent can apply memory rules.
|
||||
|
||||
---
|
||||
|
||||
## Connector Types
|
||||
|
||||
### Live Communication Connector
|
||||
|
||||
Use for active systems such as Mattermost, Slack, Teams, or email.
|
||||
|
||||
Expected behavior:
|
||||
|
||||
- fetch recent messages from configured channels or conversations
|
||||
- support a forced refresh for "latest message" prompts
|
||||
- write the latest evidence to `ai/inbox/`
|
||||
- write status separately from project memory
|
||||
- fail safely without updating logs, state, or context
|
||||
|
||||
### Historical Archive Connector
|
||||
|
||||
Use for exports such as Slack archives.
|
||||
|
||||
Expected behavior:
|
||||
|
||||
- read raw archive files from an ignored archive location
|
||||
- select high-signal evidence without treating the archive as current truth
|
||||
- write generated summaries and JSONL to `scripts/<source>/generated/`
|
||||
- preserve enough source metadata for later review
|
||||
|
||||
---
|
||||
|
||||
## Standard Evidence Shape
|
||||
|
||||
Connectors should emit JSONL records with this minimum shape when practical:
|
||||
|
||||
```json
|
||||
{
|
||||
"source": "communication-system",
|
||||
"channel": "readable-channel-name",
|
||||
"timestamp": "ISO-8601 timestamp",
|
||||
"username": "display name or handle",
|
||||
"message": "message text",
|
||||
"thread_id": "optional thread id",
|
||||
"metadata": {}
|
||||
}
|
||||
```
|
||||
|
||||
Additional fields are allowed when useful, but the core should not depend on project-specific fields.
|
||||
|
||||
---
|
||||
|
||||
## Environment Variables
|
||||
|
||||
Prefer generic `AIW_*` variables for reusable workspaces:
|
||||
|
||||
- `AIW_PROJECT_PROFILE`
|
||||
- `AIW_CHANNEL_PREFIX`
|
||||
- `AIW_MATTERMOST_SYNC_CMD`
|
||||
- `AIW_MATTERMOST_SYNC_INTERVAL_MINUTES`
|
||||
- `AIW_SLACK_EXPORT_PATH`
|
||||
|
||||
Project-specific variables may remain as compatibility aliases, but new integrations should prefer `AIW_*`.
|
||||
|
||||
---
|
||||
|
||||
## Failure Rules
|
||||
|
||||
If a connector fails:
|
||||
|
||||
- record operational status only
|
||||
- do not update daily logs
|
||||
- do not update current state
|
||||
- do not update stable context
|
||||
- do not infer project facts from the failure
|
||||
|
||||
The agent may report the operational failure to the user, but it must not promote the failure as project memory unless the user explicitly asks to track tooling work.
|
||||
|
||||
Reference in New Issue
Block a user