Manage community member profiles to build persistent understanding of who community members are over time.
Scanned 2/12/2026
Install to Claude Code
npx -y skills add lycfyi/community-agent-plugin --skill member-profile --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Member Profile?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/lycfyi-member-profile)More formats (shields.io, HTML) on the badges page.
# Member Profile Management
Manage community member profiles to build persistent understanding of who community members are over time.
## When to Use
- User asks to "remember" something about a community member
- User wants to look up information about a specific member
- User asks "who is @username" or wants member context
- User wants to search for members with specific interests/skills
- User asks for a list of community members
- When building context for personalized responses to members
- After gathering profile-relevant information from chat activity
## Smart Defaults
| User Says | Default Action |
|-----------|----------------|
| "remember that @alice works in fintech" | Save observation to Alice's profile |
| "who is @bob" | Get Bob's profile and display |
| "who knows Python" | Search profiles for "python" |
| "list members" | List all profiles (default platform: discord) |
## Commands
### Save or Update a Profile
```bash
python {{PLUGIN_DIR}}/tools/member_profile.py save \
--platform discord \
--member-id "123456789" \
--name "Alice Smith" \
--observation "Works at a fintech startup"
```
**Parameters:**
- `--platform`: Required. Platform identifier (`discord` or `telegram`)
- `--member-id`: Required. The member's platform-specific ID
- `--name`: Required for new profiles. Display name (max 100 chars)
- `--observation`: Optional. Initial observation to record
- `--notes`: Optional. Free-form notes about the member
- `--keywords`: Optional. Keywords for search (space-separated)
- `--json`: Optional. Output in JSON format
### Get a Profile
```bash
python {{PLUGIN_DIR}}/tools/member_profile.py get \
--platform discord \
--member-id "123456789"
```
**Parameters:**
- `--platform`: Required. Platform identifier
- `--member-id`: Required. The member's ID
- `--json`: Optional. Output in JSON format
### Add an Observation
Use this to record new information learned about a member without needing to reload their full profile.
```bash
python {{PLUGIN_DIR}}/tools/member_profile.py add-observation \
--platform discord \
--member-id "123456789" \
--text "Interested in Python and machine learning"
```
**Parameters:**
- `--platform`: Required. Platform identifier
- `--member-id`: Required. The member's ID
- `--text`: Required. Observation text (max 500 chars)
- `--name`: Optional. Display name (required if profile doesn't exist yet)
- `--json`: Optional. Output in JSON format
### Search Profiles
```bash
python {{PLUGIN_DIR}}/tools/member_profile.py search \
--platform discord \
--query "python developer" \
--limit 20
```
**Parameters:**
- `--platform`: Required. Platform identifier
- `--query`: Required. Search query string
- `--limit`: Optional. Maximum results (default: 20)
- `--json`: Optional. Output in JSON format
### List All Profiles
```bash
python {{PLUGIN_DIR}}/tools/member_profile.py list \
--platform discord \
--offset 0 \
--limit 50
```
**Parameters:**
- `--platform`: Required. Platform identifier
- `--offset`: Optional. Skip first N profiles (default: 0)
- `--limit`: Optional. Maximum results (default: 50)
- `--json`: Optional. Output in JSON format
### Count Profiles
```bash
python {{PLUGIN_DIR}}/tools/member_profile.py count \
--platform discord
```
### Rebuild Index
Use if the index becomes corrupted or out of sync with profile files.
```bash
python {{PLUGIN_DIR}}/tools/member_profile.py rebuild-index \
--platform discord
```
## Profile Data Structure
Each profile contains:
| Field | Description |
|-------|-------------|
| `member_id` | Platform-specific unique identifier |
| `platform` | "discord" or "telegram" |
| `display_name` | Current display name |
| `first_seen` | When profile was created |
| `last_updated` | When profile was last modified |
| `observations` | Timestamped facts about the member (max 50) |
| `notes` | Free-form agent notes |
| `keywords` | Extracted keywords for search (max 10) |
## Storage Location
Profiles are stored in:
```
profiles/
├── discord/
│ ├── index.yaml # Fast lookup index
│ └── {member_id}.yaml # Individual profiles
└── telegram/
├── index.yaml
└── {member_id}.yaml
```
## Examples
### Remember information about a member
When a user shares that "@alice works in fintech":
```bash
# First check if profile exists
python {{PLUGIN_DIR}}/tools/member_profile.py get \
--platform discord \
--member-id "123456789" \
--json
# If exists, add observation:
python {{PLUGIN_DIR}}/tools/member_profile.py add-observation \
--platform discord \
--member-id "123456789" \
--text "Works at a fintech startup"
# If new, create profile:
python {{PLUGIN_DIR}}/tools/member_profile.py save \
--platform discord \
--member-id "123456789" \
--name "Alice" \
--observation "Works at a fintech startup"
```
### Look up a member
When user asks "who is @bob":
```bash
python {{PLUGIN_DIR}}/tools/member_profile.py get \
--platform discord \
--member-id "987654321" \
--json
```
### Find members with specific skills
When user asks "who knows Python here":
```bash
python {{PLUGIN_DIR}}/tools/member_profile.py search \
--platform discord \
--query "python" \
--json
```
## Limits
- **Observations**: Max 50 per profile (oldest trimmed automatically)
- **Keywords**: Max 10 per profile
- **Display name**: Max 100 characters
- **Observation text**: Max 500 characters
- **Notes**: Max 2000 characters
- **Profiles**: Supports up to 100,000 per platform
## Notes
- Profiles are **platform-scoped**: One profile per member per platform
- A member active in multiple Discord servers shares **one Discord profile**
- Observations are **append-only** - conflicting info is preserved with timestamps
- The index enables **fast search** without loading all profiles
- Use `--json` flag for programmatic access to output
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!