بنقرة واحدة
user-profile
Manage user profile including watchlists, portfolio, and preferences.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Manage user profile including watchlists, portfolio, and preferences.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Workspace and research management — dispatch analyses, monitor running agents, manage workspaces and threads.
Draw price lines, trendlines, zones, and event markers directly on a stock's price chart — reach for it whenever you'd otherwise describe a level, pattern, or event in prose. Renders live on MarketView and as a clickable preview card in any other chat.
Event tracker: earnings dates, economic releases, conferences, regulatory events
Financial model audit: structural checks, formula validation, integrity testing
Comparable company analysis: operating metrics, valuation multiples, peer benchmarking
DCF valuation: free cash flow projections, WACC, terminal value, sensitivity analysis
| name | user-profile |
| description | Manage user profile including watchlists, portfolio, and preferences. |
This skill provides 3 unified tools for managing user data:
get_user_data - Read user dataupdate_user_data - Create or update user dataremove_user_data - Delete user dataYou should call these tools directly instead of using ExecuteCode tool.
Retrieve user data by entity type.
| Entity | Description | entity_id |
|---|---|---|
all | Complete user data (profile, preferences, watchlists with items, portfolio) | Not used |
profile | User info (name, timezone, locale) | Not used |
preferences | All preferences (risk, investment, agent) | Not used |
watchlists | List of all watchlists | Not used |
watchlist_items | Items in a specific watchlist | Optional watchlist_id |
portfolio | All portfolio holdings | Not used |
# Get complete user data (recommended for initial context)
get_user_data(entity="all")
# Returns: {
# "profile": {"name": "John", "timezone": "America/New_York", "locale": "en-US"},
# "preferences": {"risk_preference": {...}, "investment_preference": {...}, ...},
# "watchlists": [{"name": "Tech Stocks", "items": [...], ...}],
# "portfolio": [{"symbol": "AAPL", "quantity": 50, ...}]
# }
# Get user profile
get_user_data(entity="profile")
# Returns: {"name": "John", "timezone": "America/New_York", "locale": "en-US"}
# Get all preferences
get_user_data(entity="preferences")
# Returns: {"risk_preference": {...}, "investment_preference": {...}, "agent_preference": {...}}
# Get all watchlists
get_user_data(entity="watchlists")
# Returns: [{"watchlist_id": "abc", "name": "Tech Stocks", "is_default": true}, ...]
# Get items from default watchlist
get_user_data(entity="watchlist_items")
# Returns: [{"symbol": "AAPL", "notes": "..."}, {"symbol": "NVDA", ...}]
# Get items from specific watchlist
get_user_data(entity="watchlist_items", entity_id="abc-123")
# Get portfolio holdings
get_user_data(entity="portfolio")
# Returns: [{"symbol": "AAPL", "quantity": 50, "average_cost": 175.0}, ...]
Create or update user data (upsert semantics).
All preference entities (risk_preference, investment_preference, agent_preference) support:
| Parameter | Type | Description |
|---|---|---|
replace | bool | If True, completely replace the preference instead of merging with existing data |
The data dict accepts any fields. Extra fields like notes, instruction, avoid_sectors are stored alongside named fields.
# Merge with existing (default behavior)
update_user_data(entity="agent_preference", data={
"output_style": "Balanced summary with key numbers highlighted",
"notes": "User prefers brevity"
})
# Replace entire preference (delete all existing fields, set only new ones)
update_user_data(entity="agent_preference", data={
"output_style": "In-depth deep dive with full analysis"
}, replace=True)
Update user profile info.
| Field | Type | Description |
|---|---|---|
name | str | Display name |
timezone | str | e.g., "America/New_York" |
locale | str | Preferred language, e.g., "en-US", "zh-CN" |
onboarding_completed | bool | Mark onboarding done (write-only, not returned in get) |
# Update display name
update_user_data(entity="profile", data={"name": "John Doe"})
# Mark onboarding complete
update_user_data(entity="profile", data={"onboarding_completed": True})
Set risk tolerance settings. All fields accept any descriptive string.
| Field | Type | Description |
|---|---|---|
risk_tolerance | str | Risk tolerance description (any text) |
| (extra fields) | any | Additional context (notes, constraints, etc.) |
# Descriptive risk preference
update_user_data(
entity="risk_preference",
data={
"risk_tolerance": "Moderate - comfortable with market swings but avoids concentrated bets",
"notes": "Prefers diversification after 2022 tech losses"
}
)
Set investment style settings. All fields accept any descriptive string. At least one field is required.
| Field | Type | Description |
|---|---|---|
company_interest | str | Type of companies interested in (any text) |
holding_period | str | Preferred holding period (any text) |
analysis_focus | str | Primary analysis focus area (any text) |
| (extra fields) | any | Additional context (avoid_sectors, focus_sectors, notes, etc.) |
# Full investment profile with rich descriptions
update_user_data(
entity="investment_preference",
data={
"company_interest": "Dividend-paying blue chips and REITs for income",
"holding_period": "Long-term (5+ years), rarely sells",
"analysis_focus": "Dividend sustainability and balance sheet strength",
"avoid_sectors": "Crypto, speculative biotech"
}
)
Set agent behavior settings. All fields accept any descriptive string.
| Field | Type | Description |
|---|---|---|
output_style | str | Preferred output style (any text) |
data_visualization | str | Chart/visualization preferences (any text) |
proactive_questions | str | When to ask clarifying questions (any text) |
| (extra fields) | any | Additional context (instruction, notes, etc.) |
# Rich agent preferences
update_user_data(
entity="agent_preference",
data={
"output_style": "Balanced summary with key numbers highlighted",
"data_visualization": "Include charts when comparing multiple stocks",
"proactive_questions": "Use your judgment, only ask when critical"
}
)
Create or update a watchlist.
| Field | Type | Required | Description |
|---|---|---|---|
name | str | Yes | Watchlist name (used as key for upsert) |
description | str | No | Purpose of the watchlist |
is_default | bool | No | Set as default watchlist |
# Create a watchlist
update_user_data(
entity="watchlist",
data={"name": "AI Companies", "description": "Companies focused on AI"}
)
# Create and set as default
update_user_data(
entity="watchlist",
data={"name": "My Watchlist", "is_default": True}
)
Add or update an item in a watchlist.
| Field | Type | Required | Description |
|---|---|---|---|
symbol | str | Yes | Stock symbol (used as key) |
watchlist_id | str | No | Target watchlist (uses default if omitted) |
instrument_type | str | No | Free-form. Common: "stock", "etf", "index", "crypto", "future", "commodity", "currency". Other values accepted (default: "stock") |
exchange | str | No | e.g., "NASDAQ" |
name | str | No | Company name |
notes | str | No | Why you're watching |
# Add to default watchlist
update_user_data(
entity="watchlist_item",
data={"symbol": "NVDA", "notes": "Watching for AI chip growth"}
)
# Add to specific watchlist with full details
update_user_data(
entity="watchlist_item",
data={
"symbol": "AAPL",
"watchlist_id": "abc-123",
"name": "Apple Inc.",
"exchange": "NASDAQ",
"notes": "iPhone revenue growth"
}
)
# Add an ETF
update_user_data(
entity="watchlist_item",
data={"symbol": "QQQ", "instrument_type": "etf", "notes": "Tech exposure"}
)
Add or update a portfolio holding.
| Field | Type | Required | Description |
|---|---|---|---|
symbol | str | Yes | Stock symbol (used as key) |
quantity | float | Yes | Number of shares |
average_cost | float | No | Cost per share |
account_name | str | No | e.g., "Robinhood", "Fidelity IRA" (part of key) |
instrument_type | str | No | Free-form. Common: "stock", "etf", "index", "crypto", "future", "commodity", "currency". Other values accepted (default: "stock") |
currency | str | No | Default: "USD" |
notes | str | No | Additional notes |
# Add basic holding
update_user_data(
entity="portfolio_holding",
data={"symbol": "AAPL", "quantity": 50, "average_cost": 175.0}
)
# Add holding with account
update_user_data(
entity="portfolio_holding",
data={
"symbol": "VTI",
"quantity": 100,
"average_cost": 220.50,
"account_name": "Fidelity 401k",
"instrument_type": "etf",
"notes": "Long-term retirement holding"
}
)
# Same symbol in different accounts
update_user_data(
entity="portfolio_holding",
data={"symbol": "MSFT", "quantity": 25, "account_name": "Robinhood"}
)
update_user_data(
entity="portfolio_holding",
data={"symbol": "MSFT", "quantity": 50, "account_name": "Schwab IRA"}
)
Delete user data by entity type.
Delete an entire watchlist.
| Field | Type | Required | Description |
|---|---|---|---|
watchlist_id | str | Either | Watchlist ID |
name | str | Either | Watchlist name |
# Delete by ID
remove_user_data(
entity="watchlist",
identifier={"watchlist_id": "abc-123"}
)
# Delete by name
remove_user_data(
entity="watchlist",
identifier={"name": "Tech Stocks"}
)
Remove an item from a watchlist.
| Field | Type | Required | Description |
|---|---|---|---|
symbol | str | Yes | Stock symbol |
watchlist_id | str | No | Uses default if omitted |
# Remove from default watchlist
remove_user_data(
entity="watchlist_item",
identifier={"symbol": "NVDA"}
)
# Remove from specific watchlist
remove_user_data(
entity="watchlist_item",
identifier={"symbol": "AAPL", "watchlist_id": "abc-123"}
)
Remove a portfolio holding.
| Field | Type | Required | Description |
|---|---|---|---|
symbol | str | Yes | Stock symbol |
account_name | str | No | For disambiguation if same symbol in multiple accounts |
# Remove holding (when only one account)
remove_user_data(
entity="portfolio_holding",
identifier={"symbol": "AAPL"}
)
# Remove from specific account
remove_user_data(
entity="portfolio_holding",
identifier={"symbol": "MSFT", "account_name": "Robinhood"}
)