From emasoft-assistant-manager-agent
User preference and communication style persistence. Use when restoring user context, tracking decisions, or managing availability states. Trigger with session start.
npx claudepluginhub emasoft/emasoft-plugins --plugin emasoft-assistant-manager-agentThis skill uses the workspace's default tool permissions.
Session memory for the Emasoft Assistant Manager Agent (EAMA) serves a unique purpose: maintaining continuity in the user relationship across sessions. Unlike orchestration memory that tracks tasks and patterns, EAMA session memory focuses on user-centric data that enables the assistant to communicate effectively with the user regardless of context compaction or session interruptions.
Proactively saves decisions, conventions, bugs, discoveries, and preferences to persistent Engram memory across sessions using mem_save and related tools.
Manages persistent state across agent sessions: loads context/progress/decisions/learnings from .harness files at start, tracks throughout, saves at end/milestones. For multi-session work.
Persists architectural decisions, conventions, and progress across sessions by auto-saving to .rune/ files. Loads state at session start for continuity when skills establish patterns.
Share bugs, ideas, or general feedback.
Session memory for the Emasoft Assistant Manager Agent (EAMA) serves a unique purpose: maintaining continuity in the user relationship across sessions. Unlike orchestration memory that tracks tasks and patterns, EAMA session memory focuses on user-centric data that enables the assistant to communicate effectively with the user regardless of context compaction or session interruptions.
Purpose: Enable EAMA to remember the user across sessions, maintaining relationship continuity and avoiding repetitive clarification requests.
Scope: User preferences, communication style, approval history, pending items, and availability states.
thoughts/shared/handoffs/eama/)EAMA session memory is structured around the user relationship, not technical task state.
Data that helps EAMA communicate in ways the user prefers:
| Preference Type | Example Data | Why Stored |
|---|---|---|
| Verbosity level | "prefers concise responses" | Avoid over-explaining |
| Technical depth | "wants implementation details" | Match expertise level |
| Format preference | "likes bullet points over prose" | Match reading style |
| Language quirks | "uses 'ship it' to mean 'approve'" | Understand user jargon |
| Communication channel | "prefers GitHub comments over chat" | Route responses correctly |
Historical record of user decisions to avoid re-asking:
| Decision Type | Example Data | Why Stored |
|---|---|---|
| Architecture approvals | "approved microservices pattern for auth" | Avoid re-proposing |
| Tool selections | "chose PostgreSQL over MySQL" | Remember constraints |
| Style decisions | "prefers function-based over class-based" | Maintain consistency |
| Scope decisions | "deferred OAuth until Phase 2" | Track deferrals |
| Rejection reasons | "rejected Redis caching due to cost" | Avoid repeating proposals |
Items waiting for user input or action:
| Pending Type | Example Data | Why Stored |
|---|---|---|
| Unanswered questions | "waiting for database schema preference" | Resume asking |
| Deferred decisions | "OAuth scope question deferred to later" | Re-raise appropriately |
| Review requests | "PR #45 awaiting user review" | Track open items |
| Approval requests | "deploy to staging pending approval" | Remind when appropriate |
| Blockers needing user | "external API key needed from user" | Track dependencies |
State-based availability tracking (not time-based):
| State | Description | EAMA Behavior |
|---|---|---|
active | User is actively engaged | Full interaction, ask questions freely |
monitoring | User is available but not actively working | Batch non-urgent items, summarize |
away | User is temporarily unavailable | Queue items, avoid interruptions |
do-not-disturb | User explicitly requested no interruptions | Only critical escalations |
unknown | Availability not established | Assume monitoring, ask if needed |
EAMA stores session memory in two persistent locations.
Location: thoughts/shared/handoffs/eama/
Structure:
thoughts/shared/handoffs/eama/
current.md # Current session state
user-preferences.md # Accumulated user preferences
decision-log.md # Historical decisions
pending-items.md # Items awaiting user action
Why Handoff Documents: They survive context compaction, are human-readable, and can be shared across EAMA sessions.
Location: Comments on open issues with eama-context label.
Use Case: When working on a specific issue, EAMA records user decisions and preferences as issue comments to preserve context within the GitHub thread.
Format in Issue Comments:
<!-- EAMA-CONTEXT
user_preference: prefers detailed error messages
decision: approved retry logic with exponential backoff
pending: awaiting input on max retry count
availability_state: active
-->
EAMA retrieves session memory based on state changes, not time intervals.
Condition: EAMA agent initializes or resumes after compaction.
Actions:
thoughts/shared/handoffs/eama/current.mduser-preferences.mdpending-items.md for items needing attentionExample:
## Session Restored
I've loaded your previous context:
- You prefer concise responses
- Pending: database schema choice (deferred)
- Last state: monitoring
Would you like to continue where we left off?
Condition: User sends a request that EAMA must route to another role.
Actions:
Condition: User references a GitHub issue number.
Actions:
Condition: EAMA needs to request user approval.
Actions:
EAMA updates session memory based on user actions, not time intervals.
Condition: User indicates communication or decision preference.
Detection Signals:
Actions:
Example Update:
## User Preferences - Updated
### Communication Style
- Response length: concise (expressed 2025-01-30)
- Technical depth: implementation-level (inferred from responses)
- Format: bullet points preferred (expressed 2025-01-28)
Condition: User approves, rejects, or defers something.
Actions:
Example Decision Log Entry:
## Decision: Database Selection - 2025-01-30
**Context**: Architect proposed PostgreSQL vs MySQL for user data
**Decision**: APPROVED PostgreSQL
**Reason**: "We need JSON support and better concurrent writes"
**Constraints Added**: Must use pgvector for embeddings
**Related Issues**: #45, #47
Condition: User indicates availability state change.
Detection Signals:
Actions:
Condition: Pending item is addressed (answered, decided, or cancelled).
Actions:
Condition: Session is ending or context approaching limit.
Actions:
When EAMA session ends or context compacts, a handoff document ensures continuity.
File: thoughts/shared/handoffs/eama/current.md
# EAMA Session Handoff
## Session Metadata
- Session ID: eama-20250130-001
- Last Updated: 2025-01-30
- Previous Session: eama-20250129-003
## User State
- Availability: monitoring
- Last Interaction: responded to architecture question
- Engagement Level: high (multiple detailed responses)
## Active Context
- Current Project: authentication-module
- Active Issue: #45 (user auth implementation)
- Active Role Handoff: Architect designing OAuth flow
## Pending Items Requiring User Attention
1. Database schema choice - deferred, re-raise when design phase starts
2. OAuth provider selection - awaiting user research
3. PR #47 review - submitted, no response yet
## Recent Decisions
- 2025-01-30: Approved PostgreSQL for user data (see decision-log.md)
- 2025-01-29: Approved microservices pattern (see decision-log.md)
## Communication Notes
- User prefers concise responses
- Technical detail level: high
- Prefers bullet points over paragraphs
- Uses "LGTM" for lightweight approvals
## Resume Instructions
When resuming:
1. Check pending-items.md for items that may need attention
2. Reference recent decisions before proposing alternatives
3. Maintain concise communication style
4. Check if user availability has changed
Follow these steps to maintain session memory:
Checklist for session memory management:
Copy this checklist and track your progress:
thoughts/shared/handoffs/eama/ directory structurecurrent.md with session metadatauser-preferences.md with empty sectionsdecision-log.md with headerpending-items.md with empty sections| Output Type | Format | When Generated |
|---|---|---|
| Session restored message | Markdown summary of loaded context | At session start |
| Preference recorded confirmation | "Noted: brief responses preferred" | When preference detected |
| Decision logged confirmation | "Recorded: PostgreSQL approved" | When user makes decision |
| Availability state change | "Understood - I'll queue items" | When user indicates away/DND |
| Handoff document | Structured markdown file | At session end or compaction |
| Pending items reminder | List of items needing attention | When resuming or user asks |
Copy this checklist to track implementation:
thoughts/shared/handoffs/eama/ directory structurecurrent.md with session metadatauser-preferences.md with empty sectionsdecision-log.md with headerpending-items.md with empty sectionsScenario: EAMA starts and finds previous session data.
## Session Restored
I've loaded your context from our previous session:
**Your Preferences**:
- Concise responses preferred
- High technical detail
**Pending Items**:
- Database schema choice (deferred)
- PR #47 awaiting your review
**Recent Decisions**:
- PostgreSQL approved for user data
Would you like to address the pending items, or continue with something else?
User Input: "Can you be more brief? I don't need all the explanation."
EAMA Actions:
### Communication Style
- Response length: brief/concise (expressed 2025-01-30)
Got it - keeping responses brief from now on.
User Input: "Let's go with PostgreSQL. We need the JSON support."
EAMA Actions:
## Decision: Database Selection - 2025-01-30
**Decision**: APPROVED PostgreSQL
**Reason**: "We need the JSON support"
**Context**: User data storage for authentication module
**Related Issues**: #45
Noted: PostgreSQL selected for user data (JSON support).
User Input: "I need to step away for a while. Don't wait for me on the PR reviews."
EAMA Actions:
## User State
- Availability: away
- Last Interaction: indicated stepping away
Understood - I'll continue with autonomous work and queue items for your return.
| Error | Cause | Resolution |
|---|---|---|
| Handoff directory not found | First session or deleted | Create directory structure |
| Handoff file corrupted | Write failure or manual edit | Use backup or reinitialize |
| Conflicting preferences | User changed mind | Most recent preference wins |
| Stale pending items | Items no longer relevant | Prompt user to confirm or remove |
| GitHub context unavailable | API failure or private repo | Rely on handoff documents only |
| Memory files too large | Too much history | Archive old decisions, keep recent |
Version: 1.0.0 Last Updated: 2025-02-04 Target Audience: Emasoft Assistant Manager Agent Difficulty Level: Intermediate