Agent Skills › ginlix-ai/LangAlpha › onboarding

onboarding

GitHub

引导新用户完成投资档案初始化,通过导入券商持仓和关注列表,以及询问市场偏好、风险承受力等,将信息保存至本地 profile 文件。

plugins/langalpha_service/skills/onboarding/SKILL.md ginlix-ai/LangAlpha

Trigger Scenarios

新用户首次使用 需要初始化或更新用户投资档案

Install

npx skills add ginlix-ai/LangAlpha --skill onboarding -g -y
More Options

Non-standard path

npx skills add https://github.com/ginlix-ai/LangAlpha/tree/main/plugins/langalpha_service/skills/onboarding -g -y

Use without installing

npx skills use ginlix-ai/LangAlpha@onboarding

指定 Agent (Claude Code)

npx skills add ginlix-ai/LangAlpha --skill onboarding -a claude-code -g -y

安装 repo 全部 skill

npx skills add ginlix-ai/LangAlpha --all -g -y

预览 repo 内 skill

npx skills add ginlix-ai/LangAlpha --list

SKILL.md

Frontmatter
{
    "name": "onboarding",
    "description": "First-time setup. Import holdings and watchlists from a connected brokerage, learn the markets the user follows, and save it all to their profile files."
}

Onboarding

Set up a new user's profile in one short conversation. Everything you learn goes into the files under .agents/user/profile/, which the app and every later conversation read. Read .agents/user/profile/README.md before your first write: it has each file's schema and the reasons a save is refused.

1. Start from what is there

Read user.json, portfolio.json, watchlist.json and preference.json. Skip any question they already answer, and keep the rows the user already has when you write a file back.

2. Import from the brokerage

A connected brokerage is listed in <mcp-servers>. Read its tool docs, then fetch every account's positions and every watchlist in one execute_code call, printing a compact summary rather than the raw answers.

  • Show the user what you found: the accounts, how many positions, the largest few, and the watchlists. Ask with AskUserQuestion whether to import all of it, pick, or skip.
  • Holdings go into portfolio.json. Set account_name to the brokerage's name followed by the account's last four digits (moomoo 1234), or the name alone when the brokerage reports no account number, so the name stays the same when a later import finds more accounts. Replace the rows with that account_name and keep every other row, so a later import updates the account instead of doubling it.
  • Map each position to an instrument_type (stock, etf, option, crypto, bond, fund) and carry quantity, average cost and currency as the brokerage reports them. Leave out a field the brokerage does not give rather than guessing it.
  • Each brokerage watchlist becomes its own list in watchlist.json, named after it with the brokerage in front (moomoo: Favorites), and is replaced the same way on a later import. The dashboard shows only the default list, so when the user's default list is empty, make the largest imported list the default.
  • If a call fails or there is nothing to import, say so in one line and move on.

With no brokerage connected, ask which stocks the user owns or follows. Add them to the default watchlist, or to the portfolio when they give a quantity.

3. Learn the markets they follow

Ask with AskUserQuestion, a few related choices at a time, each leaving room for their own answer:

  • Markets: regions (US, Hong Kong, mainland China, Japan, Europe) and asset classes (stocks, ETFs, options, crypto, bonds).
  • Focus: the sectors and themes they watch, and any they avoid.
  • Style and horizon: growth, value, income or trading; holding for days, months or years.
  • Risk: how deep a drawdown they can sit through, and what shaped that.
  • Answers: brief or in depth, charts or text.

Save their words, not a label: "moderate, but sold everything in March 2020 and regretted it" tells a later conversation more than "moderate". Markets, focus and style go in investment_preference, risk in risk_preference, and how they want answers in agent_preference.

4. Who they are

If user.json has no name, ask what to call them. Confirm the timezone it holds, or ask for their city when it is empty: their turns and new automations run in that zone.

5. Finish

  1. Sum up in a few lines what you saved.
  2. Set onboarding_completed to true in user.json.
  3. Offer a first piece of work built on what they told you, tied to their largest holding or main market. If they accept, create a workspace for it with manage_workspaces(action="create") and hand the question to its analyst with delegate_to_analyst.

Keep it a conversation, not a form: combine related questions, follow up when an answer is vague, and let the user skip anything.

Version History

  • 8e0dce9 Current 2026-10-18 20:18

    移除 profile 工具调用,改为直接读写本地文件;支持从连接券商导入持仓和关注列表;优化了访谈逻辑以获取更丰富的描述性偏好数据。

  • c2ebaa6 2026-08-27 11:26

Same Skill Collection

plugins/alternative_data/skills/web-scraping/SKILL.md
plugins/alternative_data/skills/x-api/SKILL.md
plugins/langalpha_deliverables/skills/chart-annotation/SKILL.md
plugins/langalpha_deliverables/skills/docx/SKILL.md
plugins/langalpha_deliverables/skills/html-report/SKILL.md
plugins/langalpha_deliverables/skills/inline-widget/SKILL.md
plugins/langalpha_deliverables/skills/interactive-dashboard/SKILL.md
plugins/langalpha_deliverables/skills/pdf/SKILL.md
plugins/langalpha_deliverables/skills/pptx/SKILL.md
plugins/langalpha_deliverables/skills/ui-design/SKILL.md
plugins/langalpha_deliverables/skills/xlsx/SKILL.md
plugins/langalpha_research/skills/3-statements/SKILL.md
plugins/langalpha_research/skills/catalyst-calendar/SKILL.md
plugins/langalpha_research/skills/check-deck/SKILL.md
plugins/langalpha_research/skills/check-model/SKILL.md
plugins/langalpha_research/skills/company-profile/SKILL.md
plugins/langalpha_research/skills/competitive-analysis/SKILL.md
plugins/langalpha_research/skills/comps-analysis/SKILL.md
plugins/langalpha_research/skills/dcf-model/SKILL.md
plugins/langalpha_research/skills/earnings-analysis/SKILL.md
plugins/langalpha_research/skills/earnings-preview/SKILL.md
plugins/langalpha_research/skills/idea-generation/SKILL.md
plugins/langalpha_research/skills/impact-analysis/SKILL.md
plugins/langalpha_research/skills/initiating-coverage/SKILL.md
plugins/langalpha_research/skills/market-watch/SKILL.md
plugins/langalpha_research/skills/model-update/SKILL.md
plugins/langalpha_research/skills/morning-note/SKILL.md
plugins/langalpha_research/skills/research-conventions/SKILL.md
plugins/langalpha_research/skills/sector-overview/SKILL.md
plugins/langalpha_research/skills/thesis-tracker/SKILL.md
plugins/langalpha_research/skills/trade-pitch/SKILL.md
plugins/langalpha_service/skills/automation/SKILL.md
plugins/langalpha_service/skills/langalpha-doc/SKILL.md
plugins/langalpha_service/skills/run-workflow/SKILL.md
plugins/langalpha_service/skills/secretary/SKILL.md
plugins/langalpha_service/skills/self-improve/SKILL.md
plugins/langalpha_service/skills/user-profile/SKILL.md
skills/3-statements/SKILL.md
skills/automation/SKILL.md
skills/catalyst-calendar/SKILL.md
skills/chart-annotation/SKILL.md
skills/check-deck/SKILL.md
skills/check-model/SKILL.md
skills/competitive-analysis/SKILL.md
skills/comps-analysis/SKILL.md
skills/dcf-model/SKILL.md
skills/earnings-analysis/SKILL.md
skills/earnings-preview/SKILL.md
skills/html-report/SKILL.md

Metadata

Files
0
Version
8e0dce9
Hash
fbbf8261
Indexed
2026-08-27 11:26

Home - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-10-20 07:16
浙ICP备14020137号-1