Source profileQuality 95/100

longsizhuo/openInvest/plugin/skills/invest-setup/SKILL.md

invest-setup

Use it for engineering and research tasks; the detail page covers purpose, installation, and practical steps.

Source repository stars
82
Declared platforms
0
Static risk flags
1
Last source update
2026-08-28
Source checked
2026-08-28

Decision brief

What it does: where it fits

Single responsibility: turn an empty openInvest deployment into a working one. Triggers only on the user's first-time setup — run once, then step aside (the invest skill takes over all day-to-day interaction).

Best for

  • User explicitly says "set up invest" / "initialize invest" / "帮我初始化 invest"
  • The invest skill's doctor returns status: "needssetup" (memory / userprofile missing)
  • User wants a full reconfiguration (explicitly says "reset" / "重新配置"; requires --force)

Not for

  • User is already onboarded (doctor returns status: "ready") → switch to the invest skill
  • User wants to view holdings / P&L / run the committee → use the invest skill

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/longsizhuo/openInvest --skill "plugin/skills/invest-setup"
Safe inspection promptEditorial

Inspect the Agent Skill "invest-setup" from https://github.com/longsizhuo/openInvest/blob/e2b68f3e745c849f7a544cd12d1a329caca0fab2/plugin/skills/invest-setup/SKILL.md at commit e2b68f3e745c849f7a544cd12d1a329caca0fab2. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    1. Run doctor first to confirm setup is really needed

    Returns status: "ready" → exit immediately and tell the user "you're already onboarded — just use the invest skill".

    Returns status: "ready" → exit immediately and tell the user "you're already onboarded — just use the invest skill".Returns status: "needssetup" → go to step 2.
  2. 02

    When to Use

    User explicitly says "set up invest" / "initialize invest" / "帮我初始化 invest"

    User explicitly says "set up invest" / "initialize invest" / "帮我初始化 invest"The invest skill's doctor returns status: "needssetup" (memory / userprofile missing)User wants a full reconfiguration (explicitly says "reset" / "重新配置"; requires --force)
  3. 03

    When NOT to Use

    If you (the agent) entered this skill by mistake, exit immediately and tell the user to use the invest skill instead.

    User is already onboarded (doctor returns status: "ready") → switch to the invest skillUser wants to view holdings / P&L / run the committee → use the invest skillUser wants to track a new asset but is already onboarded → the invest skill's POST /api/holdings endpoint
  4. 04

    Two onboarding paths

    Phrasings that trigger Path B: "connect to my hub / 连接我的 hub" / "it's already installed on my server / 我服务器上已经装好了" / "share one portfolio across machines / 多台电脑共用持仓" / "connect to my existing deployment".

    Phrasings that trigger Path B: "connect to my hub / 连接我的 hub" / "it's already installed on my server / 我服务器上已经装好了" / "share one portfolio across machines / 多台电脑共用持仓" / "connect to my existing deployment".
  5. 05

    Path B: connect to an existing hub (no init)

    1. Ask two questions: - Hub address? (e.g. https://invest.example.com or http://10.0.0.6:8765) - Does the hub have auth enabled? A token (INVESTAPITOKEN) or a Cloudflare Access service token (CFACCESSCLIENTID/SECRET)? Skip if not enabled. 2. Write the answers into $INVESTHOME/.e…

    Ask two questions:Hub address? (e.g. https://invest.example.com or http://10.0.0.6:8765)Does the hub have auth enabled? A token (INVESTAPITOKEN) or a Cloudflare

Permission review

Static risk signals and limitations

Network access

medium · line 45

The documentation includes network, browsing, or remote request actions.

INVEST_API_BASE=https://invest.example.com

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score95/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars82SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
longsizhuo/openInvest
Skill path
plugin/skills/invest-setup/SKILL.md
Commit
e2b68f3e745c849f7a544cd12d1a329caca0fab2
License
MIT
Collected
2026-08-28
Default branch
main
View the original SKILL.md

Invest Setup Skill

Single responsibility: turn an empty openInvest deployment into a working one. Triggers only on the user's first-time setup — run once, then step aside (the invest skill takes over all day-to-day interaction).

When to Use

  • User explicitly says "set up invest" / "initialize invest" / "帮我初始化 invest"
  • The invest skill's doctor returns status: "needs_setup" (memory / user_profile missing)
  • User wants a full reconfiguration (explicitly says "reset" / "重新配置"; requires --force)
  • v1 → v2 schema migration (the user's portfolio.md is in the old format)

When NOT to Use

  • User is already onboarded (doctor returns status: "ready") → switch to the invest skill
  • User wants to view holdings / P&L / run the committee → use the invest skill
  • User wants to track a new asset but is already onboarded → the invest skill's POST /api/holdings endpoint
  • User wants to commit / push code → that's a git operation, unrelated to setup

If you (the agent) entered this skill by mistake, exit immediately and tell the user to use the invest skill instead.

Two onboarding paths

PathScenarioFlow
A. Fresh deployment (default)User's first time with openInvest; data lives on this machine"Flow (4 steps)" below
B. Connect to an existing hubUser already runs openInvest on another machine (a server) and wants this machine to share the same data (multi-device)"Path B" below, 2 minutes

Phrasings that trigger Path B: "connect to my hub / 连接我的 hub" / "it's already installed on my server / 我服务器上已经装好了" / "share one portfolio across machines / 多台电脑共用持仓" / "connect to my existing deployment".

Path B: connect to an existing hub (no init)

  1. Ask two questions:
    • Hub address? (e.g. https://invest.example.com or http://10.0.0.6:8765)
    • Does the hub have auth enabled? A token (INVEST_API_TOKEN) or a Cloudflare Access service token (CF_ACCESS_CLIENT_ID/SECRET)? Skip if not enabled.
  2. Write the answers into $INVEST_HOME/.env (only these two or three lines are needed; no DeepSeek key / Gmail / 5-question flow — those all live on the hub):
    INVEST_API_BASE=https://invest.example.com
    INVEST_API_TOKEN=...        # optional
    
  3. Verify: run run.sh doctor → it should return status: "ready" plus a remote section (api_base / auth method). If it can't connect, the error JSON's hint tells you whether the problem is the address, the token, or the hub service not running.
  4. Done — hand over to the invest skill.

Note: Path B must not run init (init is disabled in remote mode and will error); no memory/ is created on this machine — all data stays on the hub.

Flow (4 steps)

1. Run doctor first to confirm setup is really needed

~/.claude/skills/invest-setup/scripts/run.sh doctor

Returns status: "ready"exit immediately and tell the user "you're already onboarded — just use the invest skill".

Returns status: "needs_setup" → go to step 2.

2. Ask the user 5 questions (use AskUserQuestion on the Coordinator path, your conversational tool on the Direct path)

#AskNotes
Q1What should we call you?display name; Anonymous if they'd rather not say
Q2Risk tolerance?Conservative / Balanced / Aggressive
Q3Monthly income / monthly expenses / FX working buffer (CNY)?three numbers; all can be 0 to skip
Q4What do you currently hold? (free-form description)natural language, see below
Q5DeepSeek API key & Gmail App Password?Optional. Not needed on the Coordinator path

Q4 natural language (key change 2026-05)

Do not ask field by field. Let the user describe their holdings in one sentence:

"510300 CSI 300 ETF, 3000 shares at 4.2 CNY; 80k in CMB Zhaozhaobao; 50 grams of ICBC gold accumulation at 750 average cost" "AAPL 100 shares at 150 USD cost, 0.3 BTC, 50k CNY cash" "Nothing at all, just 10k CNY"

When the backend cmd_init sees a holdings_description field it calls DeepSeek to parse it into the v2 schema. Without a DeepSeek key it falls back to v1 fields (only cash_cny / aud_cash get written into the portfolio) — tell the user about this.

Boundary rules to tell the user (not enforced):

  • For A-shares, just say the code (510300) — no .SS suffix needed
  • For HK / US stocks, say the ticker (0700.HK or "Tencent")
  • For crypto, just say the coin (BTC / ETH)
  • Yu'ebao / Zhaozhaobao / money-market funds → the parser routes them into cash, not holdings

3. wealth_context (optional but recommended)

If the user reveals "this account is pocket money" / "I have an emergency reserve" / "family backup" → ask one more question:

Do you have an emergency fund / family backup outside this portfolio? Roughly how much? (Family funds cannot be used for investing — they only serve to prevent the "low cash = high risk" misjudgment.)

Record it into wealth_context:

wealth_context:
  emergency_buffer_cny: 200000  # or whatever number the user gives
  family_backup_available: true
  account_purpose: "pocket-money account"  # the user's own words
  lifestyle_notes: "..."

See docs/wiki/12-verification.md claim 7 (WealthContextOfficer) for details.

4. Assemble the payload + run init

echo '{
  "display_name": "...",
  "risk_tolerance": "Balanced",
  "monthly_income_cny": 30000,
  "monthly_expense_cny": 15000,
  "exchange_buffer_cny": 10000,
  "holdings_description": "<the user's exact words from Q4>",
  "wealth_context": { ... },   # optional
  "deepseek_api_key": "...",   # optional
  "gmail_app_password": "..."  # optional
}' | ~/.claude/skills/invest-setup/scripts/run.sh init --from-stdin

Returns JSON:

{
  "status": "ok",
  "holdings_parse_note": "...",  // natural-language parse result, **show it to the user**
  "memory_root": "/path/...",
  "next_step": "run status via the invest skill to view holdings"
}

5. Confirm + hand over

After it finishes:

  1. Render holdings_parse_note to the user (so they can confirm the parse is correct)
  2. Run doctor again to confirm status: "ready"
  3. Tell the user: "✓ Onboarding complete. Next time you say 'show portfolio' / 'analyze X', the invest skill kicks in automatically. To reconfigure, say 'reset invest'."

Error handling

  • DeepSeek parse timeout: report the error to the user and have them re-enter using v1 fields (aud / cny / ndq_units / gold_grams)
  • schema validation fail: usually a wrong field type — check the error field in the init response
  • user_profile.json already exists: refuse to overwrite; have the user add --force to confirm explicitly

FAQ

Q: I swapped DeepSeek for Qwen / Zhipu and it doesn't work

A: When editing .env, the model name must change too:

LLM_API_KEY=...
LLM_BASE_URL=...
LLM_MODEL=qwen-max         # ← don't forget this

Changing only the API key + base_url while the model stays deepseek-chat → the upstream returns 400 "model not found". Every provider names its models differently — check the provider's own site.

Q: The committee decision replay is blank after a run

A: Check whether the memory/.committee/<today>/<asset>.md file was generated. If not, something failed during the call — run run.sh doctor and see which item's hint is red.

Q: The code seems older than the demo site

A: Run run.sh update (pulls the latest release from PyPI). openInvest is still iterating quickly.

References

The detailed 5-step flow lives in the original references/onboarding.md (179 lines). This SKILL.md is the condensed agent-trigger guide.

Frequently asked questions

What to verify before installation and use

What does the invest-setup source document cover?

Single responsibility: turn an empty openInvest deployment into a working one. Triggers only on the user's first-time setup — run once, then step aside (the invest skill takes over all day-to-day interaction).

How do I install invest-setup?

The source record exposes this install command: npx skills add https://github.com/longsizhuo/openInvest --skill "plugin/skills/invest-setup". Inspect the command and pinned source before running it.

Which permission-related actions were detected?

Static rules flagged network in the source; the page lists the matching lines and excerpts.

Alternatives

Compare before choosing

Computed 10045,960

coreyhaines31/marketingskills

ab-testing

When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program

Computed 10025,136

alirezarezvani/claude-skills

app-store-optimization

App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist

Computed 100147

equinor/neqsim

neqsim-professional-reporting

Engineering deliverable quality — the nine analytical-depth moves (contributor ranking, adjudicating the source document, quantitative rule-outs, robustness crossover, conservatism direction, discriminating test), results.json schema, figure→discussion→linked_results traceability, evidence matrices, assumptions/gaps registers, citation conventions, KaTeX math formatting, units consistency, executive-summary structure, AACE class declaration. USE WHEN: producing a task report, a PEPR/M1/root-caus

Computed 100133

JasonColapietro/suede-creator-skills

suede-ab-testing

Suede-owned experimentation discipline for hypotheses, sample sizing, test duration, significance, and repeatable experiment programs. Use when comparing variants, deciding whether a result is reliable, or building an experiment backlog and cadence. NOT FOR: analytics instrumentation (use suede-analytics), post-click conversion diagnosis (use suede-site-alchemy), or writing the variant copy itself (use suede-copy).