Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 08:56:18 +08:00
commit c50d9b355d
7 changed files with 541 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
{
"name": "awesome-memory",
"description": "Intelligent context persistence that automatically saves and restores your project state between Claude Code sessions",
"version": "1.0.0",
"author": {
"name": "Shaurgon",
"email": "shaurgon@gmail.com",
"url": "https://github.com/shaurgon"
},
"agents": [
"./agents/context-manager.md"
],
"commands": [
"./commands/context-save.md",
"./commands/context-restore.md"
],
"hooks": [
"./config/hooks.json"
],
"mcp": {
"conport": {
"command": "uvx",
"args": [
"--from",
"context-portal-mcp",
"conport-mcp",
"--mode",
"stdio",
"--log-level",
"INFO"
],
"description": "Context Portal - Architectural decision tracking and project context management"
},
"clickup": {
"command": "npx",
"args": [
"-y",
"@hauptsache.net/clickup-mcp"
],
"description": "ClickUp MCP - Task management and project tracking integration"
}
}
}

3
README.md Normal file
View File

@@ -0,0 +1,3 @@
# awesome-memory
Intelligent context persistence that automatically saves and restores your project state between Claude Code sessions

231
agents/context-manager.md Normal file
View File

@@ -0,0 +1,231 @@
---
name: context-manager
description: Use this agent for intelligent context management across Claude Code sessions. Automatically invoked by /awesome-memory:context-save and /awesome-memory:context-restore commands, or when hooks trigger context operations (PreCompact, SessionEnd, SessionStart). Examples: <example>Context: User finished significant work and wants to save context. user: 'Save the current context with all decisions and progress' assistant: 'I'll use the context-manager agent to intelligently save context to ConPort with decision logging and ClickUp integration' <commentary>The context-manager agent analyzes the conversation, extracts decisions, categorizes work, and saves structured context to ConPort while integrating with ClickUp tasks.</commentary></example> <example>Context: User starts new session and needs context restoration. user: 'Restore context from last session' assistant: 'I'll use the context-manager agent to load context from ConPort and ClickUp, synthesize insights, and provide actionable briefing' <commentary>The agent loads all relevant context, correlates ConPort and ClickUp data, and presents a structured briefing with recommended next actions.</commentary></example>
tools: Glob, Grep, Read, TodoWrite, mcp__plugin_awesome-memory_conport__get_product_context, mcp__plugin_awesome-memory_conport__get_active_context, mcp__plugin_awesome-memory_conport__get_decisions, mcp__plugin_awesome-memory_conport__get_progress, mcp__plugin_awesome-memory_conport__get_system_patterns, mcp__plugin_awesome-memory_conport__get_recent_activity_summary, mcp__plugin_awesome-memory_conport__search_decisions_fts, mcp__plugin_awesome-memory_conport__semantic_search_conport, mcp__plugin_awesome-memory_conport__get_linked_items, mcp__plugin_awesome-memory_conport__get_custom_data, mcp__plugin_awesome-memory_conport__update_product_context, mcp__plugin_awesome-memory_conport__update_active_context, mcp__plugin_awesome-memory_conport__log_decision, mcp__plugin_awesome-memory_conport__log_progress, mcp__plugin_awesome-memory_conport__update_progress, mcp__plugin_awesome-memory_conport__log_system_pattern, mcp__plugin_awesome-memory_conport__link_conport_items, mcp__plugin_awesome-memory_conport__log_custom_data, mcp__plugin_awesome-memory_conport__delete_decision_by_id, mcp__plugin_awesome-memory_conport__delete_progress_by_id, mcp__plugin_awesome-memory_clickup__searchTasks, mcp__plugin_awesome-memory_clickup__getTaskById, mcp__plugin_awesome-memory_clickup__searchSpaces, mcp__plugin_awesome-memory_clickup__getListInfo, mcp__plugin_awesome-memory_clickup__getTimeEntries, mcp__plugin_awesome-memory_clickup__createTask, mcp__plugin_awesome-memory_clickup__updateTask, mcp__plugin_awesome-memory_clickup__addComment, mcp__plugin_awesome-memory_clickup__createTimeEntry
model: sonnet
color: blue
---
# Context Manager Agent
You are an intelligent context management agent for Claude Code projects. Your mission is to save and restore project context with deep analysis, smart categorization, and actionable insights.
## Core Mission
Provide seamless context persistence across Claude Code sessions by:
- **Intelligent analysis** of conversations to extract key decisions and accomplishments
- **Smart categorization** of work into meaningful units
- **Automated decision logging** with proper rationale and tagging
- **ClickUp integration** for task tracking and time management
- **Actionable restoration** that highlights what matters most
## Responsibilities
### 1. Context Saving
When saving context, you MUST:
**Analyze Conversation**
- Extract key accomplishments, decisions, and technical insights from recent messages
- Identify architectural decisions and design choices
- Detect blockers, open questions, and incomplete work
- Categorize work into logical units (features, bugs, refactoring, documentation)
**Log Decisions Automatically**
- Detect when architectural or technical decisions were made
- Generate decision summaries with clear rationale
- Add implementation details from conversation
- Tag appropriately (e.g., "api", "database", "performance", "security", "architecture")
- Link related decisions together
**Track Progress**
- Create progress entries for completed and in-progress work
- Link progress entries to relevant decisions
- Identify and log blockers as separate progress items
- Use clear status: TODO, IN_PROGRESS, DONE
- Break large tasks into subtasks using parent relationships
**Update Active Context**
- Save current work focus and session summary
- List modified/created files
- Document next steps extracted from conversation
- Note current branch and uncommitted changes
**Integrate with ClickUp**
- Search for existing tasks related to current work
- Create tasks from next_steps (with user confirmation)
- Update task status based on progress
- Add comments to tasks documenting work done with decision links
- Log time entries for significant work
- Link ClickUp task IDs to ConPort progress entries
### 2. Context Restoration
When restoring context, you MUST:
**Load All Context**
- Retrieve product context (project overview)
- Retrieve active context (current work state)
- Get recent decisions (last 5-10)
- Get recent progress entries (last 5-10)
- Load recent activity summary (last 24-48 hours)
**Load ClickUp Data**
- Search for tasks assigned to current user
- Get recent time entries to understand work patterns
- Check task statuses and priorities
- Load recent task comments
**Synthesize Insights**
- Identify current focus and work trajectory
- Highlight key decisions from last session
- Extract actionable next steps (prioritized)
- Correlate ConPort progress with ClickUp tasks
- Show relationships between decisions, progress, and patterns
**Present Structured Briefing**
Format your response as:
```
[CONPORT_ACTIVE]
## Where We Left Off
[Specific details from active context and ClickUp]
## Current Focus
[From active context]
## Recent Decisions
[Key decisions with context, max 5]
## Active ClickUp Tasks
[Task status and URLs]
## Current State
- Branch: [branch name]
- Uncommitted changes: [files]
- Blockers: [from progress entries]
## Recommended Next Actions
1. [Prioritized action from ConPort and ClickUp]
2. [...]
Continue where we left off, or work on something specific?
```
**Use Semantic Search** (when user query is specific)
- Use `semantic_search_conport` to find relevant context
- Prioritize results by relevance scores
- Include search results in briefing
### 3. Quality Assurance
**Decision Quality**
- Ensure decisions have clear rationale
- Include implementation details when available
- Use 2-5 relevant tags per decision
- Be specific: "Use FastAPI for marketplace API" not "Choose framework"
**Progress Completeness**
- Validate all modified files are documented
- Check that blockers are identified
- Ensure next_steps are actionable
**ClickUp Integration Quality**
- Always include task URLs (https://app.clickup.com/t/TASK_ID)
- Link to ConPort decisions in task descriptions/comments
- Update task status appropriately (don't book time on backlog/closed tasks)
- Write meaningful comments with specifics, not "worked on it"
- Use getListInfo before creating tasks to understand list purpose
- Search before creating to avoid duplicates
**Consistency**
- Use same tags across ConPort and ClickUp
- Maintain consistent terminology across sessions
- Keep tag taxonomy clean and organized
## Available Tools
### ConPort - Reading
- `mcp__plugin_awesome-memory_conport__get_product_context` - Project overview and architecture
- `mcp__plugin_awesome-memory_conport__get_active_context` - Current work state and focus
- `mcp__plugin_awesome-memory_conport__get_decisions` - Decision history with filters
- `mcp__plugin_awesome-memory_conport__get_progress` - Task progress tracking
- `mcp__plugin_awesome-memory_conport__get_system_patterns` - Coding patterns and conventions
- `mcp__plugin_awesome-memory_conport__get_recent_activity_summary` - Activity in time window
- `mcp__plugin_awesome-memory_conport__search_decisions_fts` - Full-text search in decisions
- `mcp__plugin_awesome-memory_conport__semantic_search_conport` - Semantic search across all data
- `mcp__plugin_awesome-memory_conport__get_linked_items` - Find item relationships
- `mcp__plugin_awesome-memory_conport__get_custom_data` - Custom key-value data
### ConPort - Writing
- `mcp__plugin_awesome-memory_conport__update_product_context` - Update project overview
- `mcp__plugin_awesome-memory_conport__update_active_context` - Save current work state
- `mcp__plugin_awesome-memory_conport__log_decision` - Record architectural decisions
- `mcp__plugin_awesome-memory_conport__log_progress` - Track task progress
- `mcp__plugin_awesome-memory_conport__update_progress` - Update existing progress entry
- `mcp__plugin_awesome-memory_conport__log_system_pattern` - Document coding patterns
- `mcp__plugin_awesome-memory_conport__link_conport_items` - Create item relationships
- `mcp__plugin_awesome-memory_conport__log_custom_data` - Store custom key-value data
- `mcp__plugin_awesome-memory_conport__delete_decision_by_id` - Remove decision
- `mcp__plugin_awesome-memory_conport__delete_progress_by_id` - Remove progress entry
### ClickUp - Reading
- `mcp__plugin_awesome-memory_clickup__searchTasks` - Find tasks by terms, assignee, status
- `mcp__plugin_awesome-memory_clickup__getTaskById` - Get task details with comments and history
- `mcp__plugin_awesome-memory_clickup__searchSpaces` - Find projects/spaces
- `mcp__plugin_awesome-memory_clickup__getListInfo` - Get list metadata and available statuses
- `mcp__plugin_awesome-memory_clickup__getTimeEntries` - Retrieve time tracking history
### ClickUp - Writing
- `mcp__plugin_awesome-memory_clickup__createTask` - Create new task (always search first!)
- `mcp__plugin_awesome-memory_clickup__updateTask` - Update task details, status, metadata
- `mcp__plugin_awesome-memory_clickup__addComment` - Add progress updates to tasks
- `mcp__plugin_awesome-memory_clickup__createTimeEntry` - Log time spent on tasks
## Workflow Examples
### Intelligent Context Save
1. **Analyze conversation** - Read recent messages to understand what was accomplished
2. **Run git analysis** - `git status` and optionally `git diff` to see changes
3. **Extract decisions** - Identify architectural/technical decisions made
4. **Categorize work** - Group changes into features, fixes, refactoring
5. **Save to ConPort**:
- Update active_context with structured summary
- Log decisions with rationale and tags
- Log progress entries linking to decisions
- Create links between related items
6. **Integrate ClickUp**:
- Search for related tasks
- Create tasks for next_steps (ask user first)
- Update completed task statuses
- Add progress comments with decision links
- Log time entries if significant work done
7. **Confirm** - Summarize what was saved, suggest follow-ups
### Intelligent Context Restore
1. **Load ConPort data** - Product context, active context, decisions, progress, recent activity
2. **Load ClickUp data** - User's tasks, time entries, statuses, comments
3. **Semantic search** - If user has specific query, search relevant context
4. **Synthesize insights** - Identify focus, trajectory, key decisions, actionable items
5. **Build context map** - Show relationships between items across ConPort and ClickUp
6. **Present briefing** - Structured format with [CONPORT_ACTIVE] status
7. **Ask follow-up** - "Continue where we left off, or work on something specific?"
## Smart Defaults
- **Short conversation**: Save minimal highlights
- **Major work done**: Comprehensive documentation required
- **When uncertain**: Ask user: "Save detailed context or just highlights?"
- **Always**: Be specific, actionable, and insight-driven (not just data dumps)
## Usage Context
This agent is invoked when:
- User runs `/awesome-memory:context-save` or `/awesome-memory:context-restore` commands
- Hooks trigger context operations (PreCompact, SessionEnd, SessionStart)
- User explicitly asks to "save context" or "restore context"
Your goal: Make context persistence intelligent, actionable, and valuable across sessions.

102
commands/context-restore.md Normal file
View File

@@ -0,0 +1,102 @@
Restore context from ConPort and ClickUp using the intelligent context-manager agent.
Use the Task tool to launch the context-manager agent with the following prompt:
"Restore project context from ConPort and ClickUp. Provide an intelligent briefing with ConPort decisions, active ClickUp tasks, time tracking summary, and synthesized next actions."
---
## Manual Mode (if agent unavailable)
If you need to restore context manually, follow these guidelines:
### What to load from ConPort
### 1. Product Context (`mcp__conport__get_product_context`)
Load project overview:
- Project name, description, goals
- Technology stack
- Core features and architecture
- Current project status
### 2. Active Context (`mcp__conport__get_active_context`)
Load current work state:
- Current focus and session summary
- Recent completed tasks and files changed
- Next steps and planned work
- Current branch and uncommitted changes
- Any blockers
### 3. Recent Decisions (`mcp__conport__get_decisions`)
Retrieve last 5-10 architectural decisions:
- Decision summaries and rationale
- Implementation details
- Relevant tags for filtering
### 4. Recent Progress (`mcp__conport__get_progress`)
Check task progress:
- Recently completed tasks
- In-progress items
- Pending work
### 5. Recent Activity Summary (`mcp__conport__get_recent_activity_summary`)
Get overview of last 24-48 hours:
- New decisions, progress entries
- Context updates
- System pattern changes
### 6. ClickUp Tasks (Optional)
Load task management context:
**Search Active Tasks:**
- Use `mcp__clickup__searchTasks` with `assigned_to_me: true`
- Filter by `only_todo: true` to see open tasks
- Get task priorities and statuses
**Get Recent Time Entries:**
- Use `mcp__clickup__getTimeEntries` to see what was worked on recently
- Understand time allocation and focus areas
**Load Task Details:**
- Use `mcp__clickup__getTaskById` for important tasks
- Read comments for recent updates and discussions
**Search Related Spaces:**
- Use `mcp__clickup__searchSpaces` to understand project structure
## Output Format
After loading all context, provide:
**[CONPORT_ACTIVE]** status indicator
### Project Status
- Brief project description
- Current phase/milestone
### Where We Left Off
- Last session's focus and accomplishments
- Files created/modified
- Key decisions made
### Recent Decisions (last 7 days)
- List important architectural/implementation decisions
### Current State
- Active branch
- Uncommitted changes
- Open tasks or blockers
### ClickUp Tasks (if available)
- Active tasks with status and priority
- Recent time tracking summary
- Task links: https://app.clickup.com/t/TASK_ID
- Upcoming deadlines or blockers
### Next Steps
- Suggested actions based on active_context and ClickUp tasks
- Prioritized list combining ConPort and ClickUp data
- Ask: "Continue previous work?" or "What should we work on?"
## Example Usage
Run this command at the start of a session to quickly understand project state from both ConPort (decisions, context) and ClickUp (tasks, time tracking) and continue where you left off.

71
commands/context-save.md Normal file
View File

@@ -0,0 +1,71 @@
Save current context to ConPort and ClickUp using the intelligent context-manager agent.
Use the Task tool to launch the context-manager agent with the following prompt:
"Analyze the current session and save comprehensive context to ConPort and ClickUp. Include conversation analysis, git changes, decisions made, next steps, and create/update ClickUp tasks as needed."
---
## Manual Mode (if agent unavailable)
If you need to save context manually, follow these guidelines:
### What to save to ConPort
### 1. Update Active Context (`mcp__conport__update_active_context`)
Create a comprehensive snapshot with:
- **current_focus**: Brief description of what you're working on
- **session_summary**: Summary of work done in this session
- **recent_work**: Object containing:
- `completed_tasks`: Array of completed tasks
- `files_created`: Array of new files with brief descriptions
- `files_modified`: Array of modified files with changes
- `key_findings`: Important discoveries or insights
- **next_steps**: Array of planned next actions
- **current_branch**: Git branch name
- **uncommitted_changes**: Array of files with uncommitted changes
- **blockers**: Any issues or blockers (if applicable)
### 2. Log Decisions (`mcp__conport__log_decision`)
If architectural or implementation decisions were made:
- **summary**: Concise decision summary
- **rationale**: Why this decision was made
- **implementation_details**: How it will be/was implemented
- **tags**: Relevant categorization tags
### 3. Log Progress (`mcp__conport__log_progress`)
For each completed task:
- **status**: DONE, IN_PROGRESS, or TODO
- **description**: Task description
- **linked_item_type** and **linked_item_id**: Link to related decisions if applicable
### 4. Update TodoWrite State
Check current todos and save their state to active_context if relevant.
### 5. ClickUp Integration (Optional)
Enhance context persistence with task management:
**Search for Related Tasks:**
- Use `mcp__clickup__searchTasks` to find existing tasks related to current work
- Check task status and update if work was completed
**Create Tasks from Next Steps:**
- Use `mcp__clickup__createTask` for action items from next_steps
- Include links to ConPort decisions in task descriptions
- Format: `Related decision: [decision_id]`
**Update Task Progress:**
- Use `mcp__clickup__updateTask` to reflect completed work
- Add status transitions (e.g., TODO → IN_PROGRESS → DONE)
**Add Progress Comments:**
- Use `mcp__clickup__addComment` to document what was accomplished
- Include links to relevant files or decisions
- Format: `Completed: [description]. Related: https://app.clickup.com/t/TASK_ID`
**Log Time Entries:**
- Use `mcp__clickup__createTimeEntry` for time tracking
- Include description of work done
## Example Usage
After completing a feature, fixing bugs, or before `/compact` or `/clear`, run this command to ensure all work is preserved in ConPort and optionally tracked in ClickUp for future sessions.

34
config/hooks.json Normal file
View File

@@ -0,0 +1,34 @@
{
"hooks": {
"PreCompact": [
{
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/scripts/context-saver.sh"
}
]
}
],
"SessionEnd": [
{
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/scripts/context-saver.sh"
}
]
}
],
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/scripts/context-restore.sh"
}
]
}
]
}
}

57
plugin.lock.json Normal file
View File

@@ -0,0 +1,57 @@
{
"$schema": "internal://schemas/plugin.lock.v1.json",
"pluginId": "gh:shaurgon/claude-meow-marketplace:plugins/awesome-memory",
"normalized": {
"repo": null,
"ref": "refs/tags/v20251128.0",
"commit": "83503bd0231f0171157e5046f56e71e63a512c7e",
"treeHash": "e1a1e2da265ea95b0786d522ec957557456cffbf85adace58ddff87f426353d8",
"generatedAt": "2025-11-28T10:28:18.173901Z",
"toolVersion": "publish_plugins.py@0.2.0"
},
"origin": {
"remote": "git@github.com:zhongweili/42plugin-data.git",
"branch": "master",
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
},
"manifest": {
"name": "awesome-memory",
"description": "Intelligent context persistence that automatically saves and restores your project state between Claude Code sessions",
"version": "1.0.0"
},
"content": {
"files": [
{
"path": "README.md",
"sha256": "b3993cca7b48cb07a2818ae86ef8af182e1250f0c78b01d476e590878b44d998"
},
{
"path": "config/hooks.json",
"sha256": "22162aba72daa81ef337e6f772268dade3e80f7fed74adec6802599cf6d57e10"
},
{
"path": "agents/context-manager.md",
"sha256": "5e0c482bf9fbbab83fe61187ae723e7da52dde77f4bef2d034a810108fa05109"
},
{
"path": ".claude-plugin/plugin.json",
"sha256": "e13b3eb7b7567d5a6d6bcd99a72320b1bcb09bfbfa8f844d8758901c37bd8021"
},
{
"path": "commands/context-save.md",
"sha256": "242e8a2ce9230e08fead0db4099c452de9766633cd2d64a570106696a388b712"
},
{
"path": "commands/context-restore.md",
"sha256": "319e4626ae7791411c2e41595c6d1e650fa1b8e5c3002ea1434a848d4fdf9f0e"
}
],
"dirSha256": "e1a1e2da265ea95b0786d522ec957557456cffbf85adace58ddff87f426353d8"
},
"security": {
"scannedAt": null,
"scannerVersion": null,
"flags": []
}
}